/* 정규식 테스터 — 공통 도구 스타일에 없는 것만 정의한다. */

.re-pattern-row { display: flex; align-items: center; gap: .375rem; }
.re-slash { color: var(--text-muted, #626977); font-family: monospace; font-size: 1.1rem; }
.re-pattern { flex: 1 1 auto; font-family: 'SFMono-Regular', Consolas, Menlo, monospace; }
.re-flags   { flex: 0 0 5.5rem; font-family: 'SFMono-Regular', Consolas, Menlo, monospace; text-align: center; }

.re-flag-list { display: flex; flex-wrap: wrap; gap: .25rem .75rem; }
.re-flag-list code {
    background: var(--primary-soft, #eef3fd);
    color: var(--primary-color, #3b6fe0);
    padding: 0 .25rem; border-radius: 3px;
}

/* 매치 표시 — 원문의 줄바꿈과 공백을 그대로 보여야 어디가 걸렸는지 알 수 있다 */
.re-highlight {
    border: 1px solid var(--border-color, #e5e8ed);
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-subtle, #f8f9fb);
    padding: .625rem .75rem;
    min-height: 4rem;
    max-height: 220px;
    overflow: auto;
    font-family: 'SFMono-Regular', Consolas, Menlo, monospace;
    font-size: var(--text-ui-sm, .8125rem);
    line-height: 1.7;
    white-space: pre-wrap;
    word-break: break-all;
}
.re-hit {
    background: #ffe58f;
    color: #613400;
    border-radius: 3px;
    padding: 0 .1rem;
}
.re-empty { color: var(--text-muted, #626977); }

.re-matches {
    list-style: none;
    counter-reset: rem;
    margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: .375rem;
    max-height: 260px; overflow-y: auto;
}
.re-match {
    counter-increment: rem;
    border: 1px solid var(--border-color, #e5e8ed);
    border-radius: var(--radius-sm, 6px);
    padding: .5rem .625rem;
    background: var(--bg-surface, #fff);
}
.re-match-head { display: flex; align-items: baseline; gap: .5rem; justify-content: space-between; }
.re-match-head code {
    font-size: var(--text-ui-sm, .8125rem);
    word-break: break-all;
}
.re-match-pos { flex: 0 0 auto; font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); }
.re-match::before {
    content: counter(rem) '.';
    float: left; margin-right: .375rem;
    color: var(--text-muted, #626977);
    font-size: var(--text-ui-sm, .8125rem);
}
.re-groups { margin-top: .25rem; display: flex; flex-wrap: wrap; gap: .25rem .75rem; }
.re-group { font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); }
.re-more { font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); padding: .25rem; }

.re-stats { margin-top: var(--spacing-md, 1rem); }
.re-alert { margin-top: var(--spacing-md, 1rem); }
