/* ═══════════════════════════════════════════════════════════════════════════
   CGM — 브랜드 AI 검색 분석
   병원 전용 AI 검색 가시성 진단·처방 서비스

   설계 방향: 대시보드가 아니라 계측기.
   ---------------------------------------------------------------------------
   이 제품이 파는 것은 숫자가 아니라 "그 숫자를 얼마나 믿을 수 있는가"다.
   질문 세트를 동결하고, 난수 시드를 보존하고, 감사 로그를 해시로 잇는 이유가
   전부 그것이다. 그래서 화면도 점 추정치를 크게 띄우는 카드형 KPI 대신,
   0–100% 공통 눈금자 위에 신뢰구간 띠와 바늘을 얹는 계기판으로 만든다.
   같은 화면의 모든 눈금이 같은 축에 정렬되므로 서로 견주어 읽을 수 있다.

   색: 단청(丹靑) — 청·적·황·흑·백.
   장식이 아니라 심각도 체계에 그대로 대응시킨다.
     청 = 측정값과 정상,  적 = 심각,  황 = 경고,  흑 = 본문,  백 = 지면.

   서체: Noto Sans KR.
   수치는 같은 서체의 tabular figures 로 세로 정렬한다.
   ═══════════════════════════════════════════════════════════════════════════ */

@import url("/assets/typography.css?v=20260911-noto-1");

:root {
  /* ── 단청 팔레트 ──────────────────────────────────────────────────────── */
  --cheong:        #1f5f52;   /* 청 — 측정값, 정상, 강조 */
  --cheong-deep:   #143d35;
  --cheong-pale:   #e6efeb;
  --cheong-band:   #b9cfc7;   /* 신뢰구간 띠 */

  --jeok:          #a8402c;   /* 적 — critical, block, 감소 */
  --jeok-pale:     #f7ece9;
  --hwang:         #8a6420;   /* 황 — high, warn */
  --hwang-pale:    #f8f2e4;

  --ink:           #14181b;   /* 흑 — 본문 */
  --ink-2:         #444d54;   /* 보조 텍스트 */
  --ink-3:         #78838c;   /* 라벨, 캡션 */
  --paper:         #faf9f6;   /* 백 — 지면 */
  --surface:       #ffffff;
  --rule:          #dfe0da;   /* 괘선 */
  --rule-strong:   #c3c6bd;

  /* ── 타이포 ───────────────────────────────────────────────────────────── */
  --sans: "Noto Sans KR", sans-serif;
  --mono: var(--sans);

  /* ── 치수 ─────────────────────────────────────────────────────────────── */
  --rail: 216px;              /* 좌측 계기판 레일 */
  --gutter: 28px;
  /* 계기판 행 배치. 모든 지표가 같은 열 구조를 공유하므로 세로로 정렬된다. */
  --rl-label: 190px;
  --rl-figures: 108px;
  --rl-delta: 168px;
  --radius: 2px;              /* 계측 장비에 둥근 모서리는 없다 */
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.65;
  font-feature-settings: "tnum" 0;
  -webkit-font-smoothing: antialiased;
}

/* 수치도 동일한 서체와 tabular figures 사용. 눈금이 세로로 맞는다. */
.num, td.num, th.num, .mono, code, kbd, samp,
.scale-value, .stat-value, .delta {
  font-family: var(--mono);
  font-feature-settings: "tnum" 1, "zero" 1;
  font-variant-numeric: tabular-nums slashed-zero;
}

a { color: var(--cheong); text-underline-offset: 2px; text-decoration-thickness: 1px; }
a:hover { color: var(--cheong-deep); }

h1, h2, h3, h4 {
  margin: 0;
  font-weight: 600;
  letter-spacing: -0.014em;
  line-height: 1.3;
}
h1 { font-size: 20px; }
h2 { font-size: 15px; }
h3 { font-size: 13px; }

p { margin: 0 0 .6em; }

/* ── 눈금 라벨 (eyebrow) ───────────────────────────────────────────────────
   구획의 성격을 알리는 짧은 표식. 대문자·자간 확장은 계측 장비의 실크스크린
   라벨에서 왔다. 내용이 아니라 구조를 표시하는 자리이므로 크기를 억제한다. */
.eyebrow {
  font-size: 11px; font-weight: 600;
  letter-spacing: .02em;
  color: var(--ink-3);
}
/* 라틴 문자 전용 라벨. 계측 장비의 실크스크린 표기에서 왔다. */
.eyebrow-mono {
  font-family: var(--mono); font-size: 10px; font-weight: 500;
  letter-spacing: .13em; text-transform: uppercase; color: var(--ink-3);
}

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
  left: 8px; top: 8px; z-index: 100;
  background: var(--ink); color: var(--paper);
  padding: 8px 14px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ═══ 레이아웃 ══════════════════════════════════════════════════════════ */

.topbar {
  display: flex; align-items: center; gap: 18px;
  height: 52px; padding: 0 var(--gutter);
  background: var(--surface);
  border-bottom: 1px solid var(--rule);
  position: sticky; top: 0; z-index: 20;
}

.brand {
  font-family: var(--mono);
  font-weight: 600; font-size: 15px;
  letter-spacing: .1em;
  color: var(--ink); text-decoration: none;
  display: flex; align-items: center; gap: 9px;
}
/* 브랜드 표식: 눈금 위의 바늘. 제품이 하는 일 그 자체다. */
.brand::before {
  content: ""; width: 15px; height: 15px;
  background:
    linear-gradient(var(--cheong), var(--cheong)) 8px 0/1.5px 15px no-repeat,
    linear-gradient(var(--rule-strong), var(--rule-strong)) 0 7px/15px 1.5px no-repeat;
}

.client-picker {
  font-family: var(--sans); font-size: 13px; font-weight: 500;
  padding: 5px 26px 5px 10px;
  border: 1px solid var(--rule-strong); border-radius: var(--radius);
  background: var(--surface) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6'%3E%3Cpath d='M0 0l4.5 6L9 0z' fill='%2378838c'/%3E%3C/svg%3E") right 9px center no-repeat;
  color: var(--ink);
  appearance: none; -webkit-appearance: none;
  max-width: 260px;
}

.topbar-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.user-chip { font-size: 12px; color: var(--ink-2); }
.user-chip small { color: var(--ink-3); }

.shell { display: flex; align-items: stretch; min-height: calc(100vh - 52px); }

/* 좌측 레일 — 조용하게. 시선은 눈금자가 가져간다. */
.sidenav {
  width: var(--rail); flex: 0 0 var(--rail);
  padding: 18px 0;
  background: var(--surface);
  border-right: 1px solid var(--rule);
}
.sidenav a, .nav-disabled {
  display: flex; align-items: center; gap: 10px;
  padding: 7px var(--gutter);
  font-size: 13px; font-weight: 450;
  color: var(--ink-2); text-decoration: none;
  border-left: 2px solid transparent;
}
.sidenav a::before, .nav-disabled::before {
  content: ""; width: 5px; height: 5px; flex: 0 0 5px;
  background: var(--rule-strong);
}
.sidenav a:hover { color: var(--ink); background: var(--paper); }
.sidenav a[aria-current="page"] {
  color: var(--ink); font-weight: 600;
  border-left-color: var(--cheong);
  background: var(--cheong-pale);
}
.sidenav a[aria-current="page"]::before { background: var(--cheong); }
.nav-disabled { color: #b7bcc1; cursor: not-allowed; }

.badge {
  margin-left: auto;
  font-family: var(--mono); font-size: 10px; font-weight: 600;
  min-width: 17px; height: 17px; padding: 0 4px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--jeok); color: #fff;
}

.content { flex: 1; min-width: 0; padding: 22px var(--gutter) 64px; }
.content > * + * { margin-top: 16px; }

.centered { display: grid; place-items: center; min-height: 100vh; padding: 20px; }

/* ═══ 패널 ═══════════════════════════════════════════════════════════════
   그림자 없음. 계측기 패널은 지면 위에 얹힌 것이 아니라 지면에 새겨진 것이다. */

.panel {
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 16px 18px;
}
.panel.narrow { width: min(400px, 94vw); padding: 26px 28px; }
.panel + .panel { margin-top: 16px; }

.panel-header {
  display: flex; align-items: baseline; gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 10px; margin-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}
.panel-header .spacer { margin-left: auto; }

.page-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.page-head .spacer { margin-left: auto; }
.page-sub { font-size: 12.5px; color: var(--ink-3); }

.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; }

.muted { color: var(--ink-3); }
.small { font-size: 12px; }

/* ═══ 측정 눈금자 ════════════════════════════════════════════════════════
   이 화면의 시그니처.

   0–100% 축을 모든 지표가 공유한다. 신뢰구간 띠 → 눈금선 → 이전 런 고스트
   → 현재 바늘 순으로 쌓는다. 구간이 없으면 바늘만 서고, 그 사실이 눈에 보인다.

   SVG로 그린다. CSP가 style-src 'self' 라 인라인 style 속성이 차단되므로
   막대 폭을 CSS로 줄 수 없다 (10.7). SVG의 x·width 는 CSS가 아니라 통과한다. */

.readout {
  display: grid;
  grid-template-columns: var(--rl-label) minmax(200px, 1fr) var(--rl-figures) var(--rl-delta);
  align-items: center;
  gap: 0 18px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
}
.readout:last-of-type { border-bottom: 0; }
.readout-group + .readout-group { margin-top: 2px; }

/* 지표 묶음 사이의 구분. 엔진별 지표와 세트 지표는 성격이 다르다. */
.readout-divider {
  display: grid;
  grid-template-columns: var(--rl-label) 1fr;
  gap: 0 18px;
  padding: 14px 0 4px;
  border-top: 1px solid var(--rule-strong);
  margin-top: 6px;
}
.readout-divider .eyebrow { grid-column: 1 / -1; }

.readout-label { font-size: 13px; font-weight: 500; line-height: 1.35; }
.readout-label .proxy-mark { color: var(--hwang); font-weight: 600; }
.readout-sub { display: block; font-size: 11px; color: var(--ink-3); font-weight: 400; }

.scale { width: 100%; height: 28px; display: block; overflow: visible; }
.sv-band   { fill: var(--cheong-band); opacity: .55; }
.sv-tick   { stroke: var(--rule-strong); stroke-width: 1; }
.sv-axis   { stroke: var(--rule-strong); stroke-width: 1; }
.sv-ghost  { stroke: var(--ink-3); stroke-width: 1.5; stroke-dasharray: 3 2; }
.sv-needle { stroke: var(--cheong); stroke-width: 3; stroke-linecap: butt; }

.scale-figures {
  display: flex; flex-direction: column; align-items: flex-end;
  line-height: 1.35; white-space: nowrap;
}
.scale-value { font-size: 16px; font-weight: 600; color: var(--ink); }
.scale-ci  { color: var(--ink-3); font-size: 11px; }
.scale-n   { color: var(--ink-3); font-size: 10.5px; }
.scale-empty { color: var(--ink-3); font-size: 12px; }

/* 축 눈금. 지표 목록 아래에 한 번만 놓는다 — 계기판은 눈금을 반복하지 않는다. */
.scale-axis {
  display: grid;
  grid-template-columns: var(--rl-label) minmax(200px, 1fr) var(--rl-figures) var(--rl-delta);
  gap: 0 18px;
  padding-top: 4px;
  border-top: 1px solid var(--rule-strong);
  margin-top: 2px;
}
.scale-axis-ticks {
  grid-column: 2;
  position: relative; display: block; height: 13px;
}
.scale-axis-ticks .tick {
  position: absolute; top: 0;
  font-family: var(--mono); font-size: 9.5px; color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
/* 눈금은 0/25/50/75/100 로 고정이므로 위치도 클래스로 고정한다. */
.tick-0   { left: 0; }
.tick-25  { left: 25%; transform: translateX(-50%); }
.tick-50  { left: 50%; transform: translateX(-50%); }
.tick-75  { left: 75%; transform: translateX(-50%); }
.tick-100 { right: 0; }

.delta { font-size: 12px; white-space: nowrap; text-align: right; }
.delta-up { color: var(--cheong); }
.delta-down { color: var(--jeok); }
.delta-sig { font-weight: 600; }
.delta-nosig { color: var(--ink-3); font-weight: 400; }
.delta-none { color: var(--rule-strong); font-size: 11px; }

/* 구성비 막대 — 지표가 아니라 비중이므로 채움 막대로 형태를 달리한다. */
.share-bar { display: block; width: 100%; height: 8px; }
.spark-bar { display: inline-block; width: 30px; height: 6px; vertical-align: middle; }
.sv-share-track { fill: var(--cheong-pale); }
.sv-share-fill  { fill: var(--cheong); }

/* ═══ 표 ════════════════════════════════════════════════════════════════ */

table { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th {
  font-size: 11px; font-weight: 600;
  color: var(--ink-3);
  text-align: left; padding: 0 10px 7px 0;
  border-bottom: 1px solid var(--rule-strong);
  white-space: nowrap;
}
tbody td { padding: 8px 10px 8px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: var(--paper); }
td.num, th.num { text-align: right; padding-right: 0; }
th:last-child, td:last-child { padding-right: 0; }

/* ═══ 상태 표식 ═══════════════════════════════════════════════════════════
   12장 접근성: 색에만 의존하지 않는다. 기호와 텍스트를 함께 쓴다. */

.tag {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: var(--mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: .04em;
  padding: 2px 7px;
  border: 1px solid var(--rule-strong);
  border-radius: var(--radius);
  color: var(--ink-2);
  white-space: nowrap;
}
.tag-ok      { border-color: var(--cheong); color: var(--cheong); background: var(--cheong-pale); }
.tag-warn    { border-color: var(--hwang); color: var(--hwang); background: var(--hwang-pale); }
.tag-alert   { border-color: var(--jeok);  color: var(--jeok);  background: var(--jeok-pale); }
.tag-core    { border-color: var(--cheong); color: var(--cheong); }
.tag-solid   { background: var(--ink); border-color: var(--ink); color: var(--paper); }

.sev { font-family: var(--mono); font-size: 11px; font-weight: 600; white-space: nowrap; }
.sev-critical { color: var(--jeok); }
.sev-high     { color: var(--hwang); }
.sev-medium   { color: var(--cheong); }
.sev-low, .sev-info { color: var(--ink-3); }

/* ═══ 측정 한계 고지 ═════════════════════════════════════════════════════
   5.7 · 9.1. 이 문안은 제품의 태도다. 접어 두되 숨기지 않는다. */

.notice {
  border: 1px solid var(--rule);
  border-left: 2px solid var(--cheong);
  background: var(--surface);
  padding: 9px 14px;
  font-size: 12.5px;
}
.notice summary {
  cursor: pointer; list-style: none;
  display: flex; align-items: center; gap: 8px;
  color: var(--ink-2);
}
.notice summary::-webkit-details-marker { display: none; }
.notice summary::before {
  content: "측정 기준"; flex: 0 0 auto;
  font-family: var(--mono); font-size: 9.5px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--cheong);
  border: 1px solid var(--cheong-band); padding: 1px 5px;
}
.notice summary::after {
  content: "자세히"; margin-left: auto;
  font-size: 11.5px; color: var(--cheong); text-decoration: underline;
}
.notice[open] summary::after { content: "접기"; }
.notice p {
  margin: 9px 0 0; padding-top: 9px;
  border-top: 1px solid var(--rule);
  color: var(--ink-2); line-height: 1.7;
}

.callout {
  border: 1px solid var(--rule); border-left: 2px solid var(--ink-3);
  background: var(--surface); padding: 9px 14px; font-size: 12.5px; color: var(--ink-2);
}
.callout-alert { border-left-color: var(--jeok); background: var(--jeok-pale); color: var(--jeok); }
.callout-warn  { border-left-color: var(--hwang); background: var(--hwang-pale); color: var(--hwang); }

/* ═══ 폼·버튼 ═══════════════════════════════════════════════════════════ */

label { display: block; margin: 14px 0 5px; font-size: 12px; font-weight: 600; color: var(--ink-2); }
label.inline { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 450; }

input:not([type]), input[type=text], input[type=email], input[type=password], input[type=number],
input[type=url], input[type=date], select, textarea {
  width: 100%; padding: 7px 9px;
  font-family: var(--sans); font-size: 13px;
  color: var(--ink); background: var(--surface);
  border: 1px solid var(--rule-strong); border-radius: var(--radius);
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--cheong);
  box-shadow: 0 0 0 3px var(--cheong-pale);
}
input:disabled, select:disabled, button:disabled { opacity: .5; cursor: not-allowed; }
textarea { min-height: 6rem; font-family: var(--mono); font-size: 12.5px; }
select.compact, input.compact { width: auto; padding: 4px 8px; font-size: 12px; }

button, .button {
  font-family: var(--sans); font-size: 12.5px; font-weight: 500;
  padding: 6px 13px; cursor: pointer;
  color: var(--ink); background: var(--surface);
  border: 1px solid var(--rule-strong); border-radius: var(--radius);
  text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
button:hover:not(:disabled), .button:hover { border-color: var(--ink-3); background: var(--paper); }
.button-primary, button.primary {
  background: var(--cheong); border-color: var(--cheong); color: #fff; font-weight: 600;
}
.button-primary:hover, button.primary:hover:not(:disabled) {
  background: var(--cheong-deep); border-color: var(--cheong-deep);
}
button.danger { color: var(--jeok); border-color: #d9b8b0; }
button.danger:hover:not(:disabled) { background: var(--jeok-pale); border-color: var(--jeok); }
.link-button { border: 0; background: none; padding: 4px; color: var(--ink-3); }
.link-button:hover { color: var(--ink); background: none; }
.inline-form { display: inline; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.filters { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }

:focus-visible { outline: 2px solid var(--cheong); outline-offset: 2px; }

/* ═══ 데이터 표시 ════════════════════════════════════════════════════════ */

.stat-row { display: flex; gap: 28px; flex-wrap: wrap; }
.stat { display: flex; flex-direction: column; gap: 1px; }
.stat-label { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em;
              text-transform: uppercase; color: var(--ink-3); }
.stat-value { font-size: 17px; font-weight: 600; }

/* 점유율 막대 — 눈금자와 구별되게 채움 막대로. 지표가 아니라 구성비다. */

/* 행렬 셀 (9.5) */
.matrix td.cell { text-align: center; white-space: nowrap; font-family: var(--mono); font-size: 12px; }
.matrix .cell-rate { display: inline-flex; align-items: center; gap: 6px; }
.matrix .cell-zero { color: var(--ink-3); }
.competitor-note { font-size: 11.5px; color: var(--ink-3); margin-top: 2px; }

/* 답변 본문 하이라이트 (9.6) */
.answer { white-space: pre-wrap; line-height: 1.85; font-size: 13.5px; }
.mention { padding: 1px 2px; border-bottom: 2px solid; background: transparent; color: inherit; }
.mention-client     { border-color: var(--cheong); background: var(--cheong-pale); font-weight: 600; }
.mention-competitor { border-color: var(--hwang); background: var(--hwang-pale); }
.mention-unknown    { border-color: var(--rule-strong); background: var(--paper); }
.legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 14px;
          padding-top: 10px; border-top: 1px solid var(--rule); font-size: 12px; }

.list-plain { list-style: none; padding: 0; margin: 0; }
.list-plain > li { padding: 8px 0; border-bottom: 1px solid var(--rule); }
.list-plain > li:last-child { border-bottom: 0; }
.url { word-break: break-all; font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); }

pre.code {
  background: var(--ink); color: #e6ebe9;
  padding: 12px 14px; border-radius: var(--radius);
  overflow-x: auto; font-family: var(--mono); font-size: 12px; line-height: 1.6;
  margin: 0;
}

.review-body { white-space: pre-wrap; line-height: 1.9; font-size: 13.5px; }
.violation-hit { background: var(--jeok-pale); border-bottom: 2px solid var(--jeok); }
.violation-hit.warn { background: var(--hwang-pale); border-bottom-color: var(--hwang); }
.violation-card { border: 1px solid var(--rule); border-left: 2px solid var(--jeok);
                  padding: 10px 12px; margin-bottom: 10px; }
.violation-card.warn { border-left-color: var(--hwang); }
.violation-card .excerpt {
  font-family: var(--mono); font-size: 12px;
  background: var(--paper); padding: 4px 6px; margin: 6px 0;
  border-left: 2px solid var(--rule-strong);
}

details.finding { border-bottom: 1px solid var(--rule); padding: 8px 0; }
details.finding > summary {
  cursor: pointer; list-style: none;
  display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
}
details.finding > summary::-webkit-details-marker { display: none; }
details.finding > summary::before {
  content: "▸"; color: var(--ink-3); font-size: 10px; flex: 0 0 auto;
}
details.finding[open] > summary::before { content: "▾"; }
.finding-body { padding: 10px 0 6px 20px; }

/* 빈 상태 — 지시문이지 사과문이 아니다. */
.empty {
  padding: 34px 20px; text-align: center;
  color: var(--ink-3); font-size: 13px;
}
.empty strong { display: block; color: var(--ink-2); font-weight: 600; margin-bottom: 4px; }

/* ═══ 로그인 ═════════════════════════════════════════════════════════════ */

.auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 2px; }
.auth-brand h1 { font-family: var(--mono); font-size: 19px; letter-spacing: .12em; }
.auth-tag { font-size: 12px; color: var(--ink-3); margin-bottom: 18px; }

.tabs { display: flex; gap: 0; margin: 18px 0 4px; border-bottom: 1px solid var(--rule); }
.tab {
  padding: 7px 13px; font-size: 12.5px; color: var(--ink-3); text-decoration: none;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.tab:hover { color: var(--ink-2); }
.tab[aria-selected="true"] { color: var(--ink); font-weight: 600; border-bottom-color: var(--cheong); }

/* ═══ 반응형 ═════════════════════════════════════════════════════════════
   12장: 데스크톱 우선, 클라이언트 승인 화면은 모바일 대응. */

@media (max-width: 900px) {
  :root { --gutter: 16px; --scale-w: 170px; }
  .shell { flex-direction: column; }
  .sidenav {
    width: 100%; flex: none; display: flex; overflow-x: auto;
    padding: 0; border-right: 0; border-bottom: 1px solid var(--rule);
  }
  .sidenav a, .nav-disabled {
    padding: 10px 14px; white-space: nowrap;
    border-left: 0; border-bottom: 2px solid transparent;
  }
  .sidenav a[aria-current="page"] { border-left: 0; border-bottom-color: var(--cheong); }
  .sidenav a::before, .nav-disabled::before { display: none; }
  .badge { margin-left: 6px; }
  .readout { grid-template-columns: 1fr auto; gap: 2px 10px; padding: 12px 0; }
  .readout .scale-cell, .readout .scale { grid-column: 1 / -1; }
  .scale-figures { flex-direction: row; align-items: baseline; gap: 8px; }
  .scale-axis { display: none; }
  .readout-divider { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media print {
  .sidenav, .topbar-right, .actions, .filters { display: none; }
  .panel { border-color: #999; break-inside: avoid; }
}

/* ── 유틸리티 ──────────────────────────────────────────────────────────────
   CSP가 인라인 style 속성을 막으므로 (10.7), 템플릿에서 style="" 을 쓰지 않고
   여기 정의된 클래스만 쓴다. */
.u-mt-0  { margin-top: 0; }
.u-mt-1  { margin-top: 6px; }
.u-mt-2  { margin-top: 12px; }
.u-mt-3  { margin-top: 18px; }
.u-mb-2  { margin-bottom: 12px; }
.u-block { width: 100%; justify-content: center; }
.u-center { justify-content: center; }
.u-w-40  { width: 40%; }
.u-w-56  { width: 56px; }
.u-nowrap { white-space: nowrap; }
.u-flush { margin: 0; }
.otp {
  font-family: var(--mono); font-size: 20px;
  letter-spacing: .4em; text-align: center;
}

/* 승인 대기 항목 (9.11) */
.approval-item { padding: 12px 0; border-bottom: 1px solid var(--rule); }
.approval-item:last-child { border-bottom: 0; }

/* 엔진 선택 (9.4) */
.engine-set {
  border: 1px solid var(--rule); border-radius: var(--radius);
  margin-top: 14px; padding: 10px 14px;
}
.engine-set legend { font-size: 12px; font-weight: 600; color: var(--ink-2); padding: 0 6px; }
.engine-option { padding: 5px 0; font-size: 13px; }
.engine-option input { width: auto; margin: 0; }

.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.stat-row-compact { gap: 20px; }
.stat-value-sm { font-size: 13.5px; }

/* ── 필터 바 ────────────────────────────────────────────────────────────── */
.filterbar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 9px 14px;
  background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius);
  font-size: 12.5px;
}
.filterbar label { margin: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.filterbar select { width: auto; padding: 4px 8px; font-size: 12px; }
.filterbar input[type=checkbox] { width: auto; margin: 0; }
.filterbar .spacer { margin-left: auto; }

/* 핵심 질문 표식 — 테두리 없이 기호만. 표가 상자로 가득 차지 않게 한다. */
.core-mark { color: var(--cheong); font-size: 11px; }

/* 행렬 */
.matrix th.engine-col { text-align: right; }
.matrix td.cell { text-align: right; white-space: nowrap; font-family: var(--mono); font-size: 12.5px; }
.matrix td.cell .spark-bar { margin-left: 8px; }
.matrix .cell-zero { color: var(--ink-3); }
.matrix td.q { width: 60%; }

/* 긴 인용 URL. 줄바꿈은 허용하되 3줄을 넘기지 않는다. */
.url {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; word-break: break-all;
}

/* 검수 화면 (9.10). 본문을 고정해 두고 위반 목록을 훑는다 — 검수자는
   위반마다 본문의 그 자리를 다시 봐야 한다. */
.review-layout { display: grid; grid-template-columns: minmax(320px, 5fr) minmax(360px, 6fr); gap: 16px; align-items: start; }
.review-source { position: sticky; top: 68px; max-height: calc(100vh - 96px); overflow-y: auto; }
@media (max-width: 1100px) {
  .review-layout { grid-template-columns: 1fr; }
  .review-source { position: static; max-height: none; }
}

/* Workspace system: readable hierarchy, explicit actions, source-first evidence. */
:root { --cheong:#2859ce; --cheong-deep:#1d43a1; --cheong-pale:#edf2ff; --cheong-band:#b9cbf3; --paper:#f5f6f8; --ink:#202936; --ink-2:#475467; --ink-3:#667085; --rule:#e2e6ec; --rule-strong:#cbd2dc; --radius:6px; --rail:242px; --gutter:36px; --rl-label:210px; --rl-delta:130px; }
body { font-size:14px; line-height:1.65; }
a { text-underline-offset:3px; }
h1 { font-size:27px; font-weight:600; line-height:1.4; letter-spacing:-.8px; }
h2 { font-size:17px; font-weight:600; letter-spacing:-.3px; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #6d94ee; outline-offset:3px; }
.sidenav { position:fixed; inset:0 auto 0 0; z-index:40; width:var(--rail); padding:0 14px; background:#111e31; border:0; color:#c5cfde; overflow-y:auto; display:flex; flex-direction:column; }
.sidenav a, .nav-disabled { border:0; border-radius:5px; color:#b8c5d8; padding:9px 13px; min-height:40px; font-size:13px; font-weight:450; }
.sidenav a::before, .nav-disabled::before, .brand::before { display:none; }
.sidenav a:hover { background:#1b2c44; color:#fff; }
.sidenav a[aria-current=page] { background:#263e60; color:#fff; font-weight:500; }
.nav-icon { width:19px; text-align:center; font:20px/1 var(--mono); color:#93a8c5; flex:none; }
.sidenav a.active .nav-icon { color:#93b5ff; }
.sidenav .brand { height:87px; flex-shrink:0; padding:12px 10px; gap:11px; font-size:23px; font-weight:600; letter-spacing:.02em; color:#fff; }
.brand small { display:block; font:8px/1.6 var(--mono); color:#92a2b9; letter-spacing:.085em; }
.brand-symbol { width:31px; height:34px; display:grid; place-items:center; background:#3869e1; color:#fff; font:600 24px var(--mono); border-radius:3px; }
.workspace-picker { padding:0 9px 16px; margin-bottom:6px; border-bottom:1px solid #2a374b; }
.workspace-picker label { color:#97a8be; font-size:11px; margin:0 0 7px; }
.workspace-picker select { width:100%; min-width:0; max-width:100%; padding:9px 8px; color:#edf2fa; background:#1b2b42; border-color:#35455e; font-size:13px; }
.nav-group { padding:0 13px; margin:18px 0 6px; color:#8395af; font-size:10px; font-weight:500; letter-spacing:.06em; }
.nav-bottom { margin-top:auto; padding-top:24px; }
.nav-bottom p { border-top:1px solid #2a374b; margin:16px 9px 0; padding:18px 0; font:10px var(--mono); color:#a0b0c5; }
.nav-bottom p span { display:block; margin-top:7px; font:10px var(--sans); color:#899bb5; }
.app-body { margin-left:var(--rail); min-height:100vh; display:flex; flex-direction:column; }
.topbar { height:66px; padding:0 var(--gutter); background:#fff; gap:12px; }
.breadcrumb { display:flex; gap:15px; align-items:center; font-size:12px; color:var(--ink-3); min-width:0; }
.breadcrumb strong { font-weight:500; color:var(--ink-2); }
.topbar-right { gap:12px; }
.top-help { font-size:11px; color:var(--ink-3); text-decoration:none; margin-right:10px; }
.user-avatar { width:28px; height:28px; border:1px solid #dce2eb; border-radius:50%; display:grid; place-items:center; font-size:11px; background:#f0f3f8; }
.user-chip,.link-button { font-size:11px; }
.content { width:100%; max-width:1590px; margin:0 auto; padding:32px var(--gutter) 48px; }
.content > * + * { margin-top:22px; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-bottom:28px; }
.page-heading h1 { margin:6px 0 8px; }
.eyebrow-mono { color:var(--ink-3); font-size:10px; letter-spacing:.1em; }
.heading-description { color:var(--ink-3); font-size:13px; margin:0; }
.page-heading .button { flex-shrink:0; }
.button,button { border-radius:5px; min-height:36px; padding:8px 14px; font-size:12px; font-weight:500; }
.button-primary,button.primary,.button.primary { background:var(--cheong); border-color:var(--cheong); color:#fff; }
.button-primary:hover,button.primary:hover { background:var(--cheong-deep); color:#fff; }
.next-action { display:flex; align-items:center; gap:20px; border:1px solid #cfdaf1; border-left:3px solid var(--cheong); background:#fff; padding:23px 24px; border-radius:6px; }
.next-marker { width:42px; height:42px; background:#edf2ff; color:var(--cheong); display:grid; place-items:center; font:500 17px var(--mono); border-radius:6px; flex:none; }
.next-action .eyebrow { color:var(--cheong); font-size:11px; margin:0 0 3px; }
.next-action h2 { margin:0; font-size:17px; }
.next-action p:last-child { margin:5px 0 0; color:var(--ink-3); font-size:12px; }
.next-action .button { margin-left:auto; flex:none; }
.workflow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--rule); padding:4px 0 22px; gap:12px; }
.workflow a { display:flex; gap:10px; align-items:center; text-decoration:none; color:var(--ink-2); padding:7px 0; }
.workflow a:hover strong { color:var(--cheong); }
.step-number { display:grid; place-items:center; width:27px; height:27px; border:1px solid var(--rule-strong); border-radius:50%; font:11px var(--mono); flex:none; color:var(--ink-3); }
.is-done .step-number { background:#e9f2ef; border-color:#bcd6ca; color:#267557; }
.workflow strong { display:block; font-size:12px; font-weight:500; }
.workflow small { font-size:10px; color:var(--ink-3); display:block; margin-top:2px; }
.step-arrow { margin-left:auto; padding-right:15px; color:#9ba5b4; }
.workflow a:last-child .step-arrow { display:none; }
.panel { padding:22px 24px; border-radius:6px; }
.panel + .panel { margin-top:22px; }
.grid-2>.panel,.grid-3>.panel { margin-top:0; }
.panel-header { align-items:center; padding-bottom:15px; margin-bottom:17px; }
.panel-header h1,.panel-header h2 { margin:0; }
.section-note { font-size:10px; color:var(--ink-3); font-weight:400; margin-left:10px; }
.metric-context { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:22px; }
.metric-context p { margin:0; font-size:12px; color:var(--ink-3); }
.metric-context a { white-space:nowrap; font-size:11px; }
.readout { padding:17px 0; }
.readout-label { font-size:13px; }
.scale-value { font-size:21px; font-weight:500; }
.scale-ci,.scale-n { font-size:10px; }
.readout-sub { font-size:10px; }
.readout-divider { margin-top:14px; }
.notice { background:#f0f3f8; border:1px solid var(--rule); border-left:0; border-radius:5px; padding:11px 15px; color:var(--ink-3); font-size:11px; }
.notice summary { color:var(--ink-2); }
.notice summary::before { content:'측정 범위'; color:var(--ink-2); border-color:#c7d0dd; }
.notice p { max-width:1000px; }
.grid-3 { gap:18px; align-items:stretch; }
.grid-3 h2 { font-size:15px; }
.empty { font-size:12px; padding:26px 10px; color:var(--ink-3); }
.empty-state { padding:42px 24px; text-align:center; }
.empty-state p { color:var(--ink-3); font-size:13px; margin:10px auto 22px; max-width:600px; }
.empty-symbol { display:block; color:#7c97bd; font:36px var(--mono); margin-bottom:15px; }
table { font-size:12px; }
th { font-weight:500; font-size:11px; background:#f7f8fa; color:var(--ink-3); }
th,td { padding:13px 12px; }
tr:hover td { background:#fafbfe; }
.table-scroll { overflow-x:auto; }
input,select,textarea { border-radius:5px; min-height:39px; padding:9px 11px; font-size:13px; background:#fff; max-width:100%; }
textarea { min-height:100px; resize:vertical; }
input[type=checkbox],input[type=radio] { min-height:0; width:16px; height:16px; accent-color:var(--cheong); }
label { font-size:12px; font-weight:500; color:var(--ink-2); margin-top:16px; }
label.inline { margin-top:0; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; }
.form-grid .full { grid-column:1/-1; }
.form-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.form-layout>.panel { margin:0; }
.form-aside { padding:23px; background:#edf1f7; border:1px solid #dbe2ee; border-radius:6px; }
.form-aside h2 { margin-top:0; font-size:15px; }
.form-aside p,.form-aside li { color:var(--ink-2); font-size:12px; }
.form-aside ol { padding-left:19px; }
.form-aside li+li { margin-top:12px; }
.form-section { border:0; margin:0; padding:0 0 22px; }
.form-section+.form-section { padding-top:22px; border-top:1px solid var(--rule); }
.form-section legend { font-size:15px; font-weight:600; padding-top:8px; }
.help-text { font-size:11px; color:var(--ink-3); margin:6px 0 14px; }
.form-error { padding:12px; background:#fff0ec; border:1px solid #edc5bc; color:#963725; font-size:12px; border-radius:5px; }
.actions { flex-wrap:wrap; gap:10px; }
.engine-set { border:1px solid var(--rule); border-radius:5px; padding:13px; margin:20px 0; }
.engine-option { display:flex; flex-wrap:wrap; gap:10px; padding:8px 0; }
.estimate-box { background:#f5f8ff; border:1px solid #d2dff7; padding:18px; border-radius:5px; margin-top:20px; }
.estimate-box strong { font:500 24px var(--mono); color:var(--cheong); }
.estimate-box p { margin:5px 0; font-size:12px; }
.editor-tools { display:flex; gap:8px; align-items:center; }
.editor-row { padding:15px 0; border-bottom:1px solid var(--rule); }
.editor-row summary { cursor:pointer; display:flex; align-items:center; gap:12px; font-size:13px; }
.editor-row summary .tag { flex:none; }
.editor-row summary::after { content:'편집 ↓'; font-size:11px; color:var(--cheong); margin-left:auto; flex:none; }
.editor-row[open] { background:#f8faff; padding:16px; }
.editor-row[open] summary { margin-bottom:15px; }
.guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.guide-grid section { margin:0; }
.guide-grid h2 { margin:14px 0 10px; }
.guide-grid p { font-size:13px; color:var(--ink-2); }
.guide-index { font:500 22px var(--mono); color:var(--cheong); }
.guide-faq details { padding:17px 0; border-bottom:1px solid var(--rule); }
.guide-faq summary { font-size:13px; cursor:pointer; font-weight:500; }
.guide-faq p { color:var(--ink-3); font-size:12px; }
.app-footer { margin-top:auto; padding:16px var(--gutter); border-top:1px solid var(--rule); display:flex; justify-content:space-between; font-size:10px; color:var(--ink-3); }
.menu-toggle,.mobile-only { display:none; }
.auth-layout { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; background:#fff; }
.auth-story { background:#111e31; padding:64px 12%; color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.auth-story .auth-wordmark { font:600 26px var(--mono); letter-spacing:.1em; }
.auth-story h1 { color:#fff; font-size:37px; line-height:1.55; letter-spacing:-1.5px; margin:25px 0; }
.auth-story p { color:#acbcd1; font-size:14px; max-width:370px; }
.auth-story ol { list-style:none; padding:0; margin:35px 0; border-top:1px solid #344157; }
.auth-story li { display:flex; gap:20px; align-items:center; padding:17px 0; border-bottom:1px solid #344157; font-size:13px; }
.auth-story li span { font:12px var(--mono); color:#86aaff; }
.auth-story small { color:#8395b0; font-size:10px; }
.auth-form { display:grid; place-items:center; padding:35px; }
.auth-form .panel { border:0; width:min(400px,100%); padding:0; }
.auth-form h1 { margin:0 0 10px; }
.auth-form .tabs { margin:28px 0; }
.auth-form button.primary { width:100%; min-height:43px; }
.auth-form .actions { display:block; margin-top:25px; }
@media (min-width:1700px) { .content { padding-top:40px; } }
@media (max-width:1200px) { :root { --rail:215px; --gutter:24px; --rl-label:170px; --rl-delta:100px; } .readout { gap:0 12px; grid-template-columns:var(--rl-label) minmax(90px,1fr) 100px 100px; } .scale-axis { grid-template-columns:var(--rl-label) minmax(90px,1fr) 100px 100px; gap:0 12px; } .form-layout { grid-template-columns:1fr 260px; } .grid-3 { grid-template-columns:1fr; } .top-help { display:none; } .workflow small { font-size:9px; } }
@media (max-width:900px) { .next-action { flex-wrap:wrap; } .next-action .button { margin-left:62px; } .form-layout { grid-template-columns:1fr; } .form-aside { order:2; } .workflow { grid-template-columns:1fr 1fr; gap:7px 16px; } .readout { grid-template-columns:160px 1fr 94px; } .readout>.delta { grid-column:2/4; } .scale-axis { grid-template-columns:160px 1fr 94px; } .scale-axis>span:last-child { display:none; } .stat-row { flex-wrap:wrap; } .auth-story { padding:40px 10%; } .auth-story h1 { font-size:28px; } }
@media (max-width:700px) { :root { --gutter:20px; } .app-body { margin-left:0; } .sidenav { width:260px; transform:translateX(-100%); transition:transform .18s; } body.nav-open .sidenav { transform:translateX(0); box-shadow:0 0 0 100vmax #0b162b66; } .topbar { height:58px; padding:0 16px; } .menu-toggle { display:inline-flex; padding:4px 10px; font-size:18px; min-height:32px; z-index:45; } .breadcrumb { gap:8px; font-size:10px; flex-wrap:wrap; } .breadcrumb>span:first-child { max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .user-chip,.user-avatar { display:none; } .topbar-right { gap:4px; } .topbar .link-button { padding:0; font-size:10px; } .content { padding-top:25px; } h1 { font-size:24px; } .page-heading { align-items:flex-start; flex-wrap:wrap; gap:15px; margin-bottom:22px; } .page-heading h1 { font-size:24px; } .page-heading .button { font-size:11px; } .heading-description { font-size:12px; } .next-action { padding:18px; gap:12px; } .next-marker { width:32px; height:32px; font-size:13px; } .next-action>div:nth-child(2) { flex:1; min-width:180px; } .next-action h2 { font-size:15px; } .next-action p:last-child { font-size:11px; } .next-action .button { margin-left:44px; } .panel { padding:19px 16px; } .workflow strong { font-size:11px; } .workflow small { font-size:10px; } .step-arrow { padding-right:0; } .metric-context { flex-direction:column; gap:8px; } .readout { grid-template-columns:1fr 87px; gap:8px; } .readout-label { grid-column:1/-1; } .readout .scale { grid-column:1; } .readout .scale-figures { grid-column:2; } .readout>.delta { grid-column:1/-1; } .scale-axis { display:none; } .scale-value { font-size:20px; } .stat-row { gap:16px; } .panel-header { align-items:flex-start; } .section-note { display:block; margin:3px 0 0; } .grid-2,.grid-3,.form-grid,.guide-grid { grid-template-columns:minmax(0,1fr); } .form-grid .full { grid-column:auto; } .panel { min-width:0; } table { min-width:500px; } .grid-3 table { min-width:0; } .panel:has(>table) { overflow-x:auto; } .mobile-only { display:block; } .notice { font-size:10px; } .notice summary::before { display:none; } .app-footer { gap:14px; font-size:9px; } .auth-layout { grid-template-columns:1fr; } .auth-story { padding:28px; } .auth-story h1 { font-size:26px; margin:22px 0 15px; } .auth-story ol,.auth-story>small { display:none; } .auth-story p { font-size:12px; } .auth-form { padding:35px 28px; } .editor-row summary { flex-wrap:wrap; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; } }
@media (max-width:700px) { .readout .scale-figures { display:flex; flex-direction:column; align-items:flex-end; gap:1px; white-space:normal; } }
.nav-icon { display:inline-flex; align-items:center; justify-content:center; }
.delta-none { color:var(--ink-3); }
.stat-row .stat-value { font-variant-numeric:tabular-nums; }
.notice ul { padding-left:18px; }
pre.instruction-body { white-space:pre-wrap; overflow-wrap:anywhere; font-family:var(--sans); font-size:12px; line-height:1.85; background:#f7f9fc; color:var(--ink-2); border:1px solid var(--rule); max-height:none; }

/* CGM identity and shared Korean typography. */
.techlabs-logo{display:block;object-fit:contain;max-width:100%;height:auto}
.auth-story{background:#191919}
.auth-story .auth-wordmark{display:block;width:190px}
.auth-story .eyebrow-mono{font-family:var(--sans);letter-spacing:0;color:#b6b6b6}
.auth-story h1{font-family:var(--sans);font-weight:650;letter-spacing:-1.2px}
.auth-story p,.auth-story small{color:#b8b8b8}
.auth-story ol,.auth-story li{border-color:#3b3b3b}
.auth-story li span{color:#a3a3a3;font-family:var(--sans)}
.auth-form h1{font-family:var(--sans);font-size:27px;letter-spacing:-.6px}
.auth-form .auth-tag,.auth-form .muted{color:#72757c}
.auth-form button.primary{background:#282a2e;border-color:#282a2e}
.auth-form button.primary:hover{background:#45484e}
.auth-form .tab[aria-selected="true"]{border-bottom-color:#282a2e;color:#282a2e}
.auth-form input{border-color:#d3d6dc}
.auth-form input:focus{border-color:#797e87;box-shadow:0 0 0 2px #e9eaed}
@media(max-width:700px){.auth-layout{grid-template-rows:auto 1fr}.auth-story{padding:25px 28px}.auth-story>div{display:none}.auth-story .auth-wordmark{width:165px}.auth-form{align-items:start;padding-top:48px}.auth-form h1{font-size:25px}}
/* Marketing planning: editable inputs, inspectable drafts and explicit adoption. */
.brief-history{max-height:520px;overflow:auto}.brief-history-row{display:flex;justify-content:space-between;gap:20px;padding:17px 12px;border-bottom:1px solid var(--rule);font-size:12px}.brief-history-row small{display:block;color:var(--ink-3);font-size:11px;margin-top:5px;overflow-wrap:anywhere}.brief-history-row>span:last-child{text-align:right;flex-shrink:0}.brief-history-row.is-selected{background:#f0f3f8;border-left:2px solid var(--cheong)}.brief-summary{font-size:17px;line-height:1.85;margin-block:22px 10px;white-space:pre-wrap}.brief-section{border-top:1px solid var(--rule);padding-top:23px;margin-top:25px}.brief-section h3{font-size:18px;letter-spacing:-.3px;margin:0 0 18px}.brief-section ul,.brief-section ol{padding-left:20px;font-size:14px;line-height:1.9}.suggestion-row{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--rule);padding:16px 0;margin:0;font-weight:400}.suggestion-row input{flex-shrink:0;margin-top:4px}.suggestion-row strong{font-weight:550;font-size:14px}.suggestion-row small{display:block;font-size:12px;color:var(--ink-3);margin-top:5px}.content-brief{padding:22px;background:#f7f8fa;border:1px solid var(--rule)}.content-brief h4{font-size:16px;margin:0 0 13px}.content-brief>strong{font-size:12px}.brief-copy{font:14px/1.9 var(--sans);max-height:none;white-space:pre-wrap;overflow-wrap:anywhere}.marketing-result .panel-header{flex-wrap:wrap}.marketing-top .panel{min-width:0}@media(max-width:700px){.brief-history-row{gap:12px;padding-inline:7px}.brief-history-row>span:first-child{min-width:0}.brief-history-row>span:last-child{font-size:10px}.brief-history-row small{font-size:10px}.brief-summary{font-size:15px}.content-brief{padding:18px}.brief-section ul,.brief-section ol{font-size:13px}}
.answer .inline-citation{text-decoration:underline;text-underline-offset:3px;color:#2456a8;overflow-wrap:anywhere}

.marketing-top textarea { font-family: var(--sans); font-size: 13px; }
/* Campaign execution uses the existing document and table layout. */
.block{display:block}.campaign-strip{display:grid;grid-template-columns:1fr 1fr 1.5fr;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:24px 0 30px}.campaign-strip>span{padding:22px 24px;border-right:1px solid var(--rule);min-width:0}.campaign-strip>span:last-child{border:0}.campaign-strip small{display:block;font-size:11px;color:var(--ink-3);margin-bottom:9px}.campaign-strip strong{font-size:15px;font-weight:550;overflow-wrap:anywhere}.campaign-steps{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 30px}.campaign-steps a{font-size:13px;padding:8px 0;border-bottom:1px solid var(--rule)}.performance-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:25px 0;border-top:1px solid var(--rule)}.performance-metrics>div{padding:20px 10px;border-bottom:1px solid var(--rule)}.performance-metrics small{font-size:11px;color:var(--ink-3)}.performance-metrics strong{display:block;font-size:23px;font-weight:550;letter-spacing:-.6px;margin-top:10px}.performance-metrics strong span{font-size:12px;margin-left:4px;font-weight:400}details>summary{cursor:pointer;padding:12px 0;font-size:14px;font-weight:550}details>form{margin-top:14px}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.editor-sidebar{min-width:0}.editor-sidebar .panel{margin-bottom:18px}.editor-sidebar h2{font-size:16px}.editor-sidebar form{margin-top:14px}.editor-sidebar button{max-width:100%}.content-editor{font:15px/1.8 var(--sans);min-height:500px}.version-list{max-height:240px;overflow:auto}.version-list a{display:block;border-bottom:1px solid var(--rule);padding:12px 0;font-size:12px}.version-list a[aria-current=true]{font-weight:650}.version-list small{display:block;font-size:10px;color:var(--ink-3);margin-top:5px}.content-prose{font:15px/1.9 var(--sans);overflow-wrap:anywhere}.content-prose h2{font-size:24px;margin-top:30px}.content-prose h3{font-size:20px;margin-top:25px}.research-finding{border-bottom:1px solid var(--rule);padding:20px 0}.research-finding h4{font-size:16px;line-height:1.7;margin:10px 0}.research-finding p{font-size:14px;line-height:1.8}.research-link{display:inline-block;font-size:12px;margin:6px 15px 6px 0;text-decoration:underline}.report-facts{display:grid;grid-template-columns:120px 1fr;gap:15px;font-size:13px}.report-facts dt{color:var(--ink-3)}.report-facts dd{margin:0}input[type=datetime-local]{width:100%;border:1px solid var(--rule)}
@media(max-width:1100px){.editor-layout{grid-template-columns:minmax(0,1fr)}.editor-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.editor-sidebar .panel{margin:0}.campaign-strip{grid-template-columns:1fr 1fr}.campaign-strip>span:last-child{grid-column:1/-1;border-top:1px solid var(--rule)}}
@media(max-width:600px){.editor-sidebar{display:block}.editor-sidebar .panel{margin-bottom:16px}.campaign-strip>span{padding:18px 10px}.campaign-strip strong{font-size:13px}.campaign-strip small{font-size:10px}.performance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-metrics strong{font-size:21px}.campaign-steps{gap:5px 18px}.content-editor{font-size:14px;min-height:420px}.report-facts{grid-template-columns:85px 1fr}.marketing-result .table-scroll{max-width:100%}}
@media print{.sidenav,.topbar,.app-footer,.page-heading .actions,.page-heading>a,button,form,summary{display:none!important}.app-body{margin-left:0!important}.content{max-width:none!important;padding:0!important}.panel{box-shadow:none;border:0;border-bottom:1px solid #ccc;break-inside:avoid;padding:15px 0}.table-scroll{overflow:visible}table{min-width:0!important;font-size:10px}.performance-metrics{grid-template-columns:repeat(4,1fr)}.page-heading{margin:0 0 20px}body{background:white}a{color:inherit;text-decoration:none}}

.filterbar label{white-space:nowrap}.filterbar input[type=date]{width:auto;min-width:140px}.campaign-steps a,.brief-history-row{color:var(--ink-2);text-decoration:none}.campaign-steps a:hover,.brief-history-row:hover{color:var(--cheong)}

/* Question workbench: readable rows and one commit point. */
.question-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.question-section-title h2{margin:0 0 5px;font-size:17px}.question-section-title p{margin:0;color:var(--ink-3);font-size:13px}.question-step{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--rule);font-size:13px;flex:none}.question-start{margin-bottom:24px}.question-tabs{display:flex;gap:24px;border-bottom:1px solid var(--rule);margin-bottom:20px}.question-tabs button{border:0;border-radius:0;background:none;color:var(--ink-3);padding:10px 0;border-bottom:2px solid transparent}.question-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}.question-topic-line{display:grid;grid-template-columns:minmax(0,1fr) 155px 90px;gap:16px}.question-topic-line label{margin-top:0}.question-options{margin-top:12px;font-size:13px;color:var(--ink-3)}.question-options summary{cursor:pointer;padding:5px 0}.question-start-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.question-start-actions .help-text{margin:0}.question-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.question-workspace>.panel{margin:0}.question-list-panel{min-width:0}.question-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 0 14px;border-bottom:1px solid var(--rule)}.question-toolbar button{font-size:12px;padding:6px 8px}.question-toolbar .inline{margin:0;font-size:12px}.question-edit-row{display:flex;gap:10px;border-bottom:1px solid var(--rule);padding:18px 0}.question-edit-row>.question-select{margin-top:12px;flex:none}.question-edit-content{flex:1;min-width:0}.question-edit-content textarea{font-family:inherit;font-size:14px;line-height:1.6;min-height:65px;resize:vertical;margin:0}.question-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12px}.question-meta select{width:auto;max-width:150px;font-size:12px;padding:5px 8px;margin:0}.question-meta label.inline{margin:0}.question-meta summary{cursor:pointer;color:var(--ink-3)}.question-meta details[open]{flex-basis:100%;order:2}.question-meta details label{display:inline-block;width:48%;padding-right:10px}.question-meta input{font-size:12px}.question-empty{padding:45px 12px;text-align:center;font-size:15px;line-height:2}.question-empty span{color:var(--ink-3);font-size:13px}.question-save-bar{position:relative;background:#fff;border-top:1px solid var(--rule);padding:16px 0 0;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.question-save-bar>span{font-size:12px;color:var(--ink-3)}.question-save-bar .actions{margin:0}.question-finish{border-top:1px solid var(--rule);margin-top:24px;padding-top:20px}.question-finish h3{font-size:14px}.search-query{font-weight:600;font-size:13px}.search-result{border-top:1px solid var(--rule);padding:15px 0}.search-result a{font-size:13px;font-weight:600;line-height:1.6}.search-result small{display:block;color:var(--ink-3);font-size:11px;overflow-wrap:anywhere;margin-top:5px}.search-result p{font-size:12px;line-height:1.7;color:var(--ink-3);margin-bottom:0}#search-evidence>button{margin-top:10px}#search-evidence{max-height:min(48vh,360px);overflow:auto;overscroll-behavior:contain;margin-top:14px;padding-right:6px}.frozen-questions{padding-left:24px}.frozen-questions li{padding:12px 0;border-bottom:1px solid var(--rule)}.frozen-questions p{margin:0 0 6px}.frozen-questions small{color:var(--ink-3)}
@media(max-width:1150px){.question-workspace{gap:16px}.question-workspace .panel{padding:18px}}
@media(max-width:900px){.question-workspace{grid-template-columns:1fr}.question-topic-line{grid-template-columns:minmax(0,1fr) 135px 75px}}
@media(max-width:600px){.question-topic-line{grid-template-columns:1fr 90px}.question-topic-line>div:first-child{grid-column:1/-1}.question-start-actions .help-text{flex-basis:100%}.question-workspace .panel{padding:16px}.question-meta{gap:9px}.question-save-bar{padding-bottom:10px}.question-options .form-grid{grid-template-columns:1fr}}

/* The campaign is a working document: a next action and ordered, verifiable steps. */
.campaign-workflow{margin:24px 0 36px}.workflow-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}.workflow-intro h2{font-size:23px;letter-spacing:-.6px;margin:8px 0}.workflow-intro p{font-size:14px;color:var(--ink-3);line-height:1.8;margin:0}.workflow-intro form{flex-shrink:0}.workflow-list{list-style:none;margin:0;padding:0}.workflow-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:18px;align-items:center;border-bottom:1px solid var(--rule);padding:20px 0}.workflow-number{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.workflow-row h3{font-size:15px;margin:0 0 6px;font-weight:600}.workflow-row p{font-size:13px;color:var(--ink-3);margin:0;line-height:1.7}.workflow-state{display:inline-block;margin-left:12px;font-size:11px;font-weight:400;color:var(--ink-3)}.workflow-row.is-attention .workflow-state{color:#a82e20}.workflow-row.is-done .workflow-state{color:#256246}.workflow-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;font-size:13px}.workflow-actions a{white-space:nowrap}.workflow-row form{margin:0}.campaign-context{display:flex;flex-wrap:wrap;gap:12px 24px;padding:14px 0;margin-bottom:24px;border-bottom:1px solid var(--rule);font-size:13px}.campaign-context span{color:var(--ink-3)}.workflow-intro a{white-space:nowrap}.workflow-intro>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){.workflow-intro{align-items:flex-start;flex-direction:column;gap:16px}.workflow-row{grid-template-columns:24px minmax(0,1fr);gap:12px}.workflow-row>.workflow-actions,.workflow-row>form,.workflow-row>.help-text{grid-column:2}.workflow-row h3{line-height:1.8}.workflow-state{margin-left:8px}.campaign-context{font-size:12px}}

@media(max-width:650px){.workflow-actions{align-items:flex-start}}

/* Shared workspace navigation: quieter surfaces, readable labels. */
.sidenav { background:#f8faf7; color:#374d40; border-right:1px solid #e0e6dd; }
.sidenav a,.nav-disabled { color:#596a5c; font-family:var(--sans); font-size:14px; padding-block:10px; }
.sidenav a:hover { background:#edf2e9; color:#224432; }
.sidenav a[aria-current=page] { background:#e5ede0; color:#244d32; font-weight:650; }
.nav-icon { color:#85927f; }
.sidenav a.active .nav-icon { color:#426c44; }
.sidenav .brand { color:#253e2d; font-family:var(--sans); letter-spacing:-.7px; }
.brand-symbol { background:#244d3d; font-family:var(--sans); }
.brand small { color:#839079; font-family:var(--sans); letter-spacing:1px; }
.workspace-picker { border-color:#e0e6d9; }
.workspace-picker label,.nav-group { color:#66765d; font-family:var(--sans); font-size:11px; letter-spacing:0; }
.workspace-picker select { color:#2f4b36; background:#fff; border-color:#d8e0cf; font-size:14px; }
.nav-bottom p { background:#1a352d; border:0; padding:16px 13px; margin:17px 0 12px; border-radius:4px; }
.nav-bottom p span { color:#aac1b0; }
.breadcrumb { font-size:13px; }
.breadcrumb strong { font-weight:550; }
.user-chip { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-help,.user-chip,.topbar .link-button { font-size:12px; }
.app-body { background:#fbfcf9; }
.topbar { border-bottom-color:#e5e9e1; }
@media(max-width:700px) { .sidenav { width:260px; }.topbar .link-button { font-size:12px; }.breadcrumb { font-size:12px; } }

/* Workspace menus share readable type, compact starts and scrollable records. */
.app-body .content { --ink-3:#617066; --cheong:#285742; --cheong-deep:#1b3e2d; --cheong-pale:#edf3e8; --cheong-band:#b9cfc0; --rule:#dfe6da; }
.app-body .page-heading h1 { font-size:30px; letter-spacing:-.8px; }
.app-body .heading-description { font-size:15px; line-height:1.8; max-width:760px; }
.app-body .content label { font-size:14px; }
.app-body .content :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:15px; }
.app-body .content :is(button,.button) { font-size:14px; min-height:40px; }
.app-body .content :is(.help-text,.section-note,.small) { font-size:13px; line-height:1.75; }
.app-body .content :is(th,.chip,.tag) { font-size:12px; }
.app-body .content td { font-size:14px; line-height:1.65; }
.app-body .content .empty-state { padding:32px 20px; }
.app-body .content .empty-state p { font-size:14px; max-width:530px; margin-inline:auto; }
.app-body .content .empty-state h2 { font-size:18px; }
.app-body .panel-header { flex-wrap:wrap; }
.app-body .table-scroll { overflow-x:auto; max-width:100%; overscroll-behavior-x:contain; }
.app-body .table-scroll:focus-visible { outline:2px solid var(--cheong); outline-offset:3px; }
.app-body .content td :is(.chip,.tag) { white-space:nowrap; }
.marketing-top { align-items:start; }
.workspace-composer>summary { font-size:18px; letter-spacing:-.3px; padding:2px 0; }
.workspace-composer[open]>summary { margin-bottom:16px; }
.workspace-composer .heading-description { margin-bottom:22px; }
.brief-references { margin:20px 0; padding:10px 16px; border:1px solid var(--rule); background:#fafbf8; }
.brief-references[open] { padding-bottom:20px; }
.page-feedback { border-left:3px solid var(--cheong); padding:14px 18px; background:var(--cheong-pale); color:var(--cheong-deep); margin:0 0 24px; font-size:14px; }
@media(max-width:900px) { .marketing-top { grid-template-columns:minmax(0,1fr); } }
@media(max-width:700px) {
 .app-body .page-heading h1 { font-size:27px; }
 .app-body .heading-description { font-size:14px; }
 .app-body .content :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
 .app-body .content :is(button,.button) { min-height:44px; }
 .app-body .content .table-scroll table { min-width:560px; }
 .app-body .table-scroll::before { content:'표를 좌우로 밀어 전체 내용을 확인하세요'; display:block; position:sticky; left:0; padding:0 0 10px; color:var(--ink-3); font-size:12px; }
 .app-body .content .empty-state { padding:24px 8px; }
 .workspace-composer>summary { font-size:17px; }
 .brief-history-row>span:last-child,.brief-history-row small { font-size:12px; }
}
@media print { .page-feedback,.table-scroll::before { display:none!important; } }

/* Start with observed competitive exposure; actions follow the evidence. */
.exposure-panel { margin:28px 0 36px; padding:28px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.exposure-panel .overview-section-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:14px; }
.exposure-panel h2 { font-size:23px; letter-spacing:-.6px; }
.exposure-panel .overview-kicker { font-size:12px; color:var(--ink-3); margin:0 0 9px; }
.exposure-cases { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:24px 0; }
.exposure-case { border:1px solid var(--rule); border-top:3px solid #76907a; padding:22px 18px; background:#fff; }
.exposure-competitor_only { border-top-color:#b96b4e; }
.exposure-both { border-top-color:#4d7987; }
.exposure-neither { border-top-color:#a89566; }
.exposure-count { display:block; font-size:32px; font-weight:650; line-height:1.2; margin-bottom:22px; font-variant-numeric:tabular-nums; }
.exposure-count small { display:inline-block; font-size:12px; font-weight:400; color:var(--ink-3); margin-left:9px; }
.exposure-case h3 { font-size:17px; margin:0 0 12px; }
.exposure-case p { font-size:14px; line-height:1.8; margin:0 0 20px; }
.exposure-case>a,.exposure-case>small { font-size:12px; }
.exposure-caution { padding:14px 18px; background:#f7f1e5; border-left:3px solid #ad8d4f; font-size:13px; line-height:1.8; }
.exposure-filter { display:flex; flex-wrap:wrap; gap:8px; margin:25px 0; }
.exposure-filter a { padding:7px 12px; border:1px solid var(--rule); font-size:13px; text-decoration:none; background:#fff; }
.exposure-filter a[aria-current=page] { background:var(--cheong); color:white; border-color:var(--cheong); }
.exposure-row { padding:25px 0; border-top:1px solid var(--rule); }
.exposure-row-heading { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; font-size:13px; color:var(--ink-3); margin-bottom:14px; }
.exposure-row h3 { font-size:18px; line-height:1.7; overflow-wrap:anywhere; }
.exposure-observation { font-size:15px; margin-bottom:5px; }
.exposure-observation strong { font-variant-numeric:tabular-nums; }
.exposure-row details { background:#f0f4ec; padding:8px 18px; margin-top:16px; }
.exposure-row details p { font-size:14px; line-height:1.85; }
.exposure-followup { display:flex; justify-content:space-between; align-items:center; gap:22px; border-top:1px solid var(--rule); padding-top:24px; margin-top:20px; }
.exposure-followup h3 { font-size:18px; }
.exposure-followup p { font-size:13px; color:var(--ink-3); }
.exposure-followup .button { flex-shrink:0; }
.diagnosis-flow { display:flex; flex-wrap:wrap; gap:12px 24px; padding:18px 0; border-block:1px solid var(--rule); margin:0 0 26px; }
.diagnosis-flow a { text-decoration:none; font-size:13px; }.diagnosis-flow span { margin-right:10px; color:var(--ink-3); }
.diagnosis-method { margin:32px 0; }.diagnosis-method h2 { font-size:20px; margin-bottom:18px; }
.diagnosis-method ol { list-style:none; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:20px 30px; }
.diagnosis-method li { font-size:14px; line-height:1.9; color:var(--ink-2); }.diagnosis-method strong { display:block; color:var(--ink); font-size:15px; margin-bottom:4px; }
.diagnosis-details { margin-top:28px; }.diagnosis-details>summary { font-size:16px; margin-bottom:18px; }
.measurement-targets { background:#eef3e9; padding:22px 25px; margin:0 0 25px; }.measurement-targets h2 { font-size:18px; }
@media(max-width:1100px) { .exposure-cases { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .exposure-panel { padding:22px 0; }.exposure-panel .overview-section-heading,.exposure-followup { align-items:flex-start; flex-direction:column; }.exposure-panel h2 { font-size:21px; }.exposure-case { padding:18px 14px; }.exposure-count { font-size:28px; }.exposure-case h3 { font-size:16px; }.exposure-case p { font-size:13px; }.diagnosis-method ol { grid-template-columns:1fr; }.diagnosis-flow { gap:12px 18px; }.measurement-targets { padding:20px; }.exposure-row .actions { align-items:flex-start; } }
@media(max-width:360px) { .exposure-cases { grid-template-columns:1fr; } }

/* Search sources stay secondary to reviewing the question candidates. */
.evidence-disclosure{align-self:start;min-width:0}
.evidence-disclosure>summary{cursor:pointer;font-weight:700;font-size:15px;list-style-position:inside}
.evidence-disclosure>summary small{font-size:12px;font-weight:400;color:var(--ink-3);margin-left:8px}
.evidence-disclosure .search-query{margin:0 0 8px;overflow-wrap:anywhere}
.search-info{font-size:12px;margin-bottom:12px}.search-info>summary{cursor:pointer;color:var(--ink-3)}
.evidence-disclosure .search-result{padding:10px 0}
.search-result>summary{cursor:pointer;font-size:13px;line-height:1.6;display:flex;gap:8px;align-items:baseline}
.search-result>summary::before{content:'+';flex:none;color:var(--ink-3)}
.search-result[open]>summary::before{content:'−'}
.search-result>summary>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.search-result[open]>summary>span{display:block}
.search-result>p{margin:8px 0}.search-result>a{display:inline-block;margin-top:8px}
.evidence-disclosure summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

.candidate-explanation{margin-bottom:12px;font-size:13px}.candidate-explanation>summary{cursor:pointer;color:var(--ink-3)}
.candidate-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--rule)}
.candidate-toolbar label.inline{margin:0}.candidate-toolbar button{margin:0}
.candidate-list{max-height:min(52vh,400px);overflow:auto;overscroll-behavior:contain;padding-right:8px}
.question-candidate{padding:12px 0;border-bottom:1px solid var(--rule)}
.question-candidate>label{display:flex;gap:10px;align-items:flex-start;margin:0;cursor:pointer}
.question-candidate input{flex:none;margin-top:5px}.question-candidate strong{font-size:14px;font-weight:500;line-height:1.75;overflow-wrap:anywhere}
.question-candidate>details{margin:4px 0 0 25px;font-size:12px;color:var(--ink-3)}
.question-candidate summary{cursor:pointer}.question-candidate p{margin:8px 0;font-size:13px;line-height:1.7}
.question-candidate-panel #question-history{max-width:420px}
.candidate-list:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* The active run is a collection monitor; completed runs expose comparison evidence. */
.run-screen{max-width:1200px;margin:auto}.run-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}
.run-heading h1{font-size:30px;line-height:1.35;letter-spacing:-1px;max-width:740px;margin:8px 0 12px}.run-heading p{font-size:15px;line-height:1.75;color:var(--ink-3);margin:0}.run-heading>.button{flex:none;margin-top:6px}
.run-progress-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);border:1px solid var(--rule);background:white;border-radius:8px;overflow:hidden}
.run-progress-main{padding:32px}.run-state{display:inline-block;color:#235f4e;background:#edf4ed;padding:5px 10px;font-size:13px;font-weight:650;border-radius:4px}
.run-progress-main h2{font-size:22px;margin:18px 0 10px}.run-progress-main>p{color:var(--ink-3);font-size:14px;line-height:1.8}.run-count{display:flex;align-items:baseline;gap:12px;margin:26px 0 14px}.run-count>strong{font-size:48px;line-height:1;font-weight:650;letter-spacing:-2px}.run-count>span{font-size:15px;color:var(--ink-3)}
.run-progress-card progress{display:block;width:100%;height:9px;border:0;border-radius:8px;overflow:hidden;background:#e8eee8;accent-color:#2b6757}.run-progress-card progress::-webkit-progress-bar{background:#e8eee8}.run-progress-card progress::-webkit-progress-value{background:#2b6757}.run-progress-card progress::-moz-progress-bar{background:#2b6757}
.run-progress-caption{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-top:12px;color:var(--ink-3)}
.run-live-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 16px;padding-top:20px;border-top:1px solid var(--rule)}.run-live-facts dt{font-size:12px;color:var(--ink-3);margin-bottom:5px}.run-live-facts dd{font-size:14px;margin:0}.run-progress-main .run-poll-feedback{font-size:12px;margin-bottom:0}
.run-schedule{background:#f0f4ee;padding:32px;border-left:1px solid var(--rule)}.run-schedule dl{margin:20px 0}.run-schedule dl>div{margin-bottom:20px}.run-schedule dt{font-size:12px;color:var(--ink-3);margin-bottom:5px}.run-schedule dd{margin:0;font-size:15px;line-height:1.7;overflow-wrap:anywhere}.run-schedule>p:last-child{font-size:12px;line-height:1.8;color:var(--ink-3)}
.run-steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:24px 0;margin:0;border-bottom:1px solid var(--rule);gap:18px}.run-steps li{display:flex;align-items:center;gap:12px;color:var(--ink-3)}.run-steps li>span{font-size:13px;border:1px solid var(--rule);border-radius:50%;padding:6px}.run-steps strong{display:block;font-size:14px}.run-steps small{font-size:12px}.run-steps [aria-current=step]{color:#235f4e}
.run-next{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0}.run-next h2{font-size:18px;margin:0 0 8px}.run-next p{font-size:14px;line-height:1.8;color:var(--ink-3);max-width:720px;margin:0}.run-next .actions{flex:none}
.run-scope-details,.run-matrix-details{border-top:1px solid var(--rule);padding:16px 0}.run-scope-details>summary,.run-matrix-details>summary{cursor:pointer;font-size:14px;font-weight:600}.run-scope-details ol{max-height:340px;overflow:auto;padding-left:24px;font-size:14px;line-height:1.8}.run-scope-details li{padding:8px 0}
.run-result-tools{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:13px;margin-bottom:24px}.run-result-tools .actions{margin:0}.run-results .exposure-panel{margin-top:0}.run-results .exposure-case{padding:18px}.run-results .exposure-rows{max-height:640px;overflow:auto;overscroll-behavior:contain}
.exposure-row>summary{cursor:pointer;display:block;padding:4px 0}.exposure-row>summary h3{margin:10px 24px 4px 0;font-size:15px;line-height:1.7}.exposure-row>summary::after{content:'답변·다음 행동 펼치기 +';font-size:12px;color:var(--ink-3)}.exposure-row[open]>summary::after{content:'접기 −'}.exposure-advice{background:#f0f4ec;padding:16px;margin-top:16px}.exposure-advice h4{font-size:14px;margin:0 0 8px}.exposure-row>summary:focus-visible,.exposure-rows:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
@media(max-width:800px){.run-heading{flex-wrap:wrap;gap:12px}.run-heading h1{font-size:25px}.run-progress-card{grid-template-columns:1fr}.run-progress-main,.run-schedule{padding:22px}.run-schedule{border-left:0;border-top:1px solid var(--rule)}.run-schedule dl{display:grid;grid-template-columns:1fr 1fr;gap:16px}.run-schedule dl>div{margin:0}.run-steps{gap:12px}.run-steps li{align-items:flex-start}.run-steps small{display:none}.run-next{display:block}.run-next .actions{margin-top:16px}.run-result-tools{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:420px){.run-heading h1{font-size:23px}.run-steps li>span{display:none}.run-steps strong{font-size:12px}.run-live-facts{gap:12px}.run-progress-main,.run-schedule{padding:18px}.run-count>strong{font-size:42px}}

.run-mail-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;margin:0 0 24px;border:1px solid #ccdcd1;border-left:4px solid #2c6654;border-radius:6px;background:#f0f5ef}
.run-mail-notice strong{font-size:16px;color:#173f34}.run-mail-notice p{margin:5px 0 0;font-size:13px;color:#526b63;line-height:1.7;overflow-wrap:anywhere}.run-mail-notice .actions{flex-shrink:0}.run-mail-recipient{font-weight:600}
@media(max-width:850px){.run-mail-notice{align-items:flex-start;flex-direction:column;gap:14px;padding:18px}.run-mail-notice .actions{flex-wrap:wrap}}

/* Settings: active connections first; implementation and policy details on demand. */
.settings-screen{max-width:1120px;margin:0 auto;color:var(--ink)}
.settings-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:8px 0 46px}
.settings-heading h1{font-size:34px;font-weight:750;letter-spacing:-1.2px;line-height:1.25;margin:0 0 12px}
.settings-heading p{font-size:16px;line-height:1.6;color:#607068;margin:0}.settings-heading>.button{flex-shrink:0;font-size:14px;padding:11px 16px;background:#fff}
.settings-section{margin-bottom:38px}.settings-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.settings-section-heading h2{font-size:21px;letter-spacing:-.5px;line-height:1.4;margin:0 0 6px;font-weight:700}
.settings-section-heading p{font-size:14px;line-height:1.65;color:#607068;margin:0}.settings-section-meta{font-size:12px;color:#607068;flex:none}
.settings-engine-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.settings-engine{min-width:0;background:#fff;border:1px solid #dce2dc;border-radius:10px;padding:26px 28px 0;overflow:hidden}
.settings-engine-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.settings-provider-mark{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:10px;font-size:24px;font-weight:750;line-height:1;background:#f0f2f0;color:#35443d}
.settings-google{background:#eef3fd;color:#3868ba}.settings-openai{background:#edf2ef;color:#285444}.settings-naver{background:#e8f6ec;color:#19853c}
.settings-engine h3{font-size:26px;font-weight:700;letter-spacing:-.6px;line-height:1.3;margin:0 0 7px}
.settings-engine-purpose{font-size:15px;line-height:1.6;color:#607068;margin:0 0 23px}
.settings-model{margin:0 0 24px}.settings-model dt{font-size:12px;color:#607068;margin-bottom:7px}.settings-model dd{font-size:17px;font-weight:600;line-height:1.5;margin:0;overflow-wrap:anywhere}
.settings-status{display:inline-flex;align-items:center;flex:none;gap:7px;font-size:12px;font-weight:550;line-height:1.5;padding:5px 9px;border-radius:5px;white-space:nowrap;background:#f0f2ef;color:#59675e}
.settings-status.is-on{background:#edf5ee;color:#246341}.settings-status.is-on:before{content:'';width:6px;height:6px;border-radius:50%;background:#358156}.settings-status.is-review{background:#fbf1df;color:#815619}.settings-status.is-off{color:#67716a;background:#f0f1ef}
.settings-engine-help{margin:0 -28px;border-top:1px solid #e7ebe5;background:#fafbf8}.settings-engine-help>summary{list-style:none;cursor:pointer;position:relative;padding:15px 45px 15px 28px;font-size:13px;line-height:1.6;color:#53695d}.settings-engine-help>summary::after{content:'+';position:absolute;right:26px;top:13px;font-size:19px}.settings-engine-help[open]>summary::after{content:'−'}
.settings-engine-help>div{padding:0 28px 17px}.settings-engine-help p,.settings-connection-detail p{font-size:14px;line-height:1.85;color:#4e6155;margin:0 0 10px}.settings-engine-help p:last-child,.settings-connection-detail p:last-child{margin-bottom:0}
.settings-screen .settings-caption{font-size:12px;line-height:1.75;color:#607068;margin:12px 0 0}
.settings-connections{background:#fff;border:1px solid #dce2dc;border-radius:10px;overflow:hidden}.settings-connection+.settings-connection{border-top:1px solid #e4e9e2}
.settings-connection>summary{display:flex;align-items:center;gap:18px;padding:21px 26px;cursor:pointer;list-style:none}.settings-connection-name{flex:1;min-width:0}.settings-connection-name strong{display:block;font-size:16px;line-height:1.5;font-weight:650}.settings-connection-name small{display:block;font-size:13px;line-height:1.6;margin-top:3px;color:#607068}.settings-chevron{flex:none;font-size:19px;color:#6d7a71;width:18px;text-align:center}.settings-connection[open]>summary .settings-chevron,.settings-disclosure[open]>summary .settings-chevron{transform:rotate(180deg)}
.settings-connection-detail{padding:0 26px 22px 84px;max-width:850px}
.settings-secondary{margin-top:42px;border-top:1px solid #d8e0d6}.settings-disclosure{border-bottom:1px solid #d8e0d6}.settings-disclosure>summary{display:flex;align-items:center;gap:18px;padding:23px 0;list-style:none;cursor:pointer}.settings-disclosure>summary>span:first-child{flex:1;min-width:0}.settings-disclosure>summary strong{display:block;font-size:16px;font-weight:600;line-height:1.5}.settings-disclosure>summary small{display:block;font-size:13px;color:#607068;margin-top:4px;line-height:1.6}.settings-count{font-size:13px;color:#607068;background:#eef1ea;border-radius:4px;padding:4px 9px;flex:none}
.settings-disclosure-body{padding:0 0 22px}.settings-unavailable,.settings-ruleset{padding:18px 22px;background:#f2f4ee;border-bottom:1px solid #e0e6db}.settings-unavailable:first-child,.settings-ruleset:first-child{border-radius:6px 6px 0 0}.settings-unavailable:last-child,.settings-ruleset:last-of-type{border-bottom:0;border-radius:0 0 6px 6px}.settings-unavailable>div,.settings-ruleset>div{display:flex;gap:16px;align-items:center;justify-content:space-between}.settings-unavailable h3,.settings-ruleset h3{font-size:15px;line-height:1.6;margin:0;font-weight:650;overflow-wrap:anywhere}.settings-unavailable p{font-size:14px;line-height:1.75;color:#607068;margin:9px 0 0}.settings-ruleset dl{display:flex;gap:28px;flex-wrap:wrap;margin:12px 0 0;font-size:14px}.settings-ruleset dl>div{display:flex;gap:10px}.settings-ruleset dt{color:#607068}.settings-ruleset dd{margin:0}
.settings-screen summary::-webkit-details-marker{display:none}.settings-screen summary:focus-visible{outline:2px solid #285444;outline-offset:-3px}.settings-connection>summary:hover,.settings-disclosure>summary:hover{background:#f5f7f1}
@media(max-width:760px){.settings-heading{align-items:flex-start;margin-bottom:30px;gap:18px}.settings-heading h1{font-size:29px}.settings-heading p{font-size:14px}.settings-heading>.button{font-size:12px;padding:9px 11px}.settings-section-meta{display:none}.settings-engine-grid{gap:14px}.settings-engine{padding:22px 20px 0}.settings-engine-help{margin-inline:-20px}.settings-engine-help>summary{padding-left:20px}.settings-engine-help>div{padding-inline:20px}.settings-connection>summary{padding:19px 20px;gap:13px}.settings-connection-detail{padding-left:20px}.settings-secondary{margin-top:30px}}
@media(max-width:560px){.settings-heading{flex-wrap:wrap}.settings-engine-grid{grid-template-columns:1fr}.settings-section{margin-bottom:30px}.settings-section-heading h2{font-size:20px}.settings-engine-top{margin-bottom:15px}.settings-engine h3{font-size:24px}.settings-model{margin-bottom:18px}.settings-engine-purpose{margin-bottom:18px}.settings-connection>summary{display:grid;grid-template-columns:34px 1fr 18px;gap:8px 12px;padding:18px}.settings-connection .settings-provider-mark{width:34px;height:34px;font-size:21px;grid-row:1/3}.settings-connection .settings-connection-name{grid-column:2;grid-row:1}.settings-connection .settings-status{grid-column:2;grid-row:2;justify-self:start}.settings-connection .settings-chevron{grid-column:3;grid-row:1/3}.settings-connection-detail{padding:0 18px 20px}.settings-unavailable>div,.settings-ruleset>div{align-items:flex-start;flex-wrap:wrap;gap:8px}.settings-disclosure>summary{gap:12px}.settings-disclosure>summary strong{font-size:15px}}

/* Site audit: priority, affected pages, then optional evidence and crawler policy. */
.audit-screen{max-width:1120px;margin:0 auto;color:var(--ink)}
.audit-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:6px 0 20px}.audit-heading h1{font-size:34px;line-height:1.3;letter-spacing:-1px;margin:5px 0 12px}.audit-heading p{margin:0;font-size:15px;color:#607068;line-height:1.7}.audit-heading .audit-domain{font-size:14px;font-weight:600;color:#2a6250;overflow-wrap:anywhere}.audit-heading>.button{flex:none;font-size:14px}.audit-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;font-size:13px;color:#607068;margin-bottom:28px}
.audit-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:24px 0;border-block:1px solid #d8e1d7;gap:24px}.audit-overview>div+div{border-left:1px solid #d8e1d7;padding-left:28px}.audit-overview span{font-size:14px;color:#607068}.audit-overview strong{display:block;font-size:36px;line-height:1.5;margin-top:6px;letter-spacing:-1px}.audit-overview small{font-size:13px;font-weight:400;letter-spacing:0;color:#607068;margin-left:8px}.audit-overview .audit-urgent strong{color:#a44835}.audit-screen .audit-caption{font-size:12px;color:#607068;line-height:1.8;margin:12px 0}.audit-progress{padding:20px 24px;background:#eff5ee;border-left:3px solid #2e6552;margin-bottom:24px}.audit-progress p{font-size:14px;line-height:1.7;margin:8px 0 0}
.audit-results{margin-top:36px}.audit-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.audit-section-heading h2{font-size:22px;letter-spacing:-.5px;margin:0 0 7px}.audit-section-heading p{font-size:14px;line-height:1.7;color:#607068;margin:0}.audit-section-heading .button{flex:none;font-size:14px}
.audit-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:18px 0;border-top:1px solid #d8e1d7;margin:0}.audit-filters>div{width:170px}.audit-filters label{display:block;font-size:12px;margin:0 0 6px;color:#607068}.audit-filters select{width:100%;font-size:14px;height:40px;margin:0}.audit-filters .button{height:40px;font-size:13px}.audit-filters>a{font-size:13px;padding:10px 4px}.audit-filter-count{margin-left:auto;font-size:13px;color:#607068;padding:10px 0}
.audit-findings{background:#fff;border:1px solid #dae2d8;border-radius:8px;overflow:hidden}.audit-issue+.audit-issue{border-top:1px solid #e1e7de}.audit-issue>summary{list-style:none;display:flex;align-items:center;gap:18px;padding:23px 24px;cursor:pointer}.audit-issue-title{flex:1;min-width:0}.audit-issue-title strong{display:block;font-size:16px;font-weight:650;line-height:1.65;overflow-wrap:anywhere}.audit-issue-title small{display:block;font-size:12px;font-weight:400;line-height:1.6;color:#607068;margin-top:5px}.audit-issue-count{font-size:14px;white-space:nowrap;color:#607068}.audit-severity{font-size:12px;padding:5px 9px;background:#f0f3ed;border-radius:4px;flex:none;color:#53634f}.audit-severity-critical,.audit-severity-high{background:#faeee7;color:#9b432d}.audit-severity-medium{background:#faf3df;color:#87631e}.audit-toggle{font-size:22px;line-height:1;flex:none;color:#657669;width:18px;text-align:center}.audit-issue[open]>summary .audit-toggle,.audit-disclosure[open]>summary .audit-toggle{transform:rotate(45deg)}.audit-issue[open]>summary{background:#f6f8f2}
.audit-issue-body{padding:0 24px 24px;background:#f6f8f2}.audit-issue-body>p{font-size:14px;line-height:1.8;margin:0 0 18px;color:#526457}.audit-page-evidence{background:#fff;border:1px solid #dfe6dc;padding:17px 20px;margin-top:10px;border-radius:5px}.audit-evidence-heading strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere;line-height:1.7}.audit-evidence-heading>span{display:block;font-size:12px;color:#607068;margin-top:6px}.audit-evidence>summary{font-size:13px;color:#32614f;padding:10px 0 0}.audit-evidence pre{font-size:12px;line-height:1.8;background:#f3f5ef;padding:16px;max-height:300px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0}.audit-empty{padding:36px 24px}.audit-empty h3{font-size:17px;margin:0 0 10px}.audit-empty p{font-size:14px;line-height:1.8;color:#607068;margin:0}
.audit-secondary{border-top:1px solid #d8e1d7;margin-top:38px}.audit-disclosure{border-bottom:1px solid #d8e1d7}.audit-disclosure>summary{list-style:none;display:flex;align-items:center;gap:20px;padding:23px 0;font-size:13px;color:#607068}.audit-disclosure>summary>span:first-child{flex:1;min-width:0}.audit-disclosure>summary strong{display:block;font-size:16px;color:var(--ink);font-weight:600}.audit-disclosure>summary small{display:block;font-size:13px;font-weight:400;line-height:1.7;margin-top:5px}.audit-disclosure-body{padding:0 0 24px;font-size:14px;line-height:1.8}.audit-disclosure-body table{min-width:730px}.audit-disclosure-body th{font-size:12px;white-space:nowrap;padding:12px}.audit-disclosure-body td{font-size:13px;padding:14px 12px}.audit-disclosure-body td small{display:block;font-size:12px;color:#607068;margin-top:4px}.audit-disclosure-body li{margin:8px 0}.audit-screen summary:focus-visible{outline:2px solid #2e6552;outline-offset:-3px}.audit-issue>summary::-webkit-details-marker,.audit-disclosure>summary::-webkit-details-marker{display:none}
@media(max-width:700px){.audit-heading{align-items:flex-start;gap:16px}.audit-heading h1{font-size:29px}.audit-heading p{font-size:14px}.audit-section-heading{align-items:flex-start;flex-wrap:wrap}.audit-overview{gap:12px;padding:18px 0}.audit-overview>div+div{padding-left:14px}.audit-overview strong{font-size:28px}.audit-overview span{font-size:12px}.audit-overview small{font-size:11px;margin-left:5px}.audit-issue>summary{gap:12px;padding:19px 16px}.audit-issue-title strong{font-size:15px}.audit-issue-body{padding:0 16px 18px}.audit-page-evidence{padding:15px}.audit-disclosure>summary{gap:12px}.audit-filters>div{flex:1;width:auto;min-width:120px}}
@media(max-width:420px){.audit-heading{flex-wrap:wrap}.audit-meta{gap:9px 14px}.audit-overview strong{font-size:25px}.audit-overview small{display:block;margin:0}.audit-issue>summary{display:grid;grid-template-columns:auto 1fr 18px;gap:9px 12px}.audit-issue-title{grid-row:2;grid-column:1/3}.audit-issue-count{text-align:right;font-size:12px}.audit-toggle{grid-column:3;grid-row:1/3}.audit-severity{justify-self:start}.audit-filter-count{flex-basis:100%;margin:0;padding:0}.audit-disclosure>summary small{font-size:12px}}

/* First measurement: one visible route, optional advanced navigation. */
.first-measurement{display:flex;gap:8px;margin:0 0 28px;border-bottom:1px solid var(--rule);padding:0 0 18px;flex-wrap:wrap}
.first-measurement a{display:flex;align-items:center;gap:9px;padding:8px 14px;color:var(--ink-3);font-size:13px;text-decoration:none;border-radius:5px}
.first-measurement a span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--rule);border-radius:50%;font-size:12px}
.first-measurement a[aria-current=step]{background:#e7efe4;color:#234d3e;font-weight:650}.first-measurement a[aria-current=step] span{background:#2b5747;color:#fff;border-color:#2b5747}.first-measurement a:hover{background:#edf2e9}
.question-quickstart{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#eff4eb;border:1px solid #dbe5d5;border-radius:6px;padding:20px 22px;margin:0 0 24px}.question-quickstart strong{display:block;font-size:16px;line-height:1.6}.question-quickstart p{margin:6px 0 0;font-size:13px;line-height:1.8;color:#526457}.question-quickstart button{flex:none}
.nav-section{margin-top:18px}.nav-section>summary{padding:10px 12px;color:var(--ink-3);font-size:12px;cursor:pointer}.nav-section>summary:hover{color:var(--ink)}.nav-section>summary:focus-visible{outline:2px solid #2b5747;outline-offset:-2px}
@media(max-width:600px){.first-measurement{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:22px}.first-measurement a{padding:7px 8px;font-size:12px;gap:7px}.question-quickstart{align-items:flex-start;flex-direction:column;padding:17px;gap:14px}.question-quickstart strong{font-size:15px}}

/* Explain the finding before exposing its machine evidence. */
.audit-issue-preview{display:block;font-size:13px;line-height:1.75;color:#607068;margin-top:8px;max-width:800px}
.audit-guide{display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;padding:24px;background:#fff;border:1px solid #dfe6dc;border-radius:6px;margin-bottom:24px}.audit-guide h3,.audit-affected-title{font-size:16px;line-height:1.6;margin:0 0 9px;font-weight:650}.audit-guide p{font-size:14px;line-height:1.85;margin:0;color:#465d50}.audit-guide-caution,.audit-guide-steps,.audit-guide-source{grid-column:1/-1}.audit-guide-caution{border-left:3px solid #b69754;padding:14px 18px;background:#faf6ec}.audit-guide-caution strong{font-size:14px;color:#785b24}.audit-guide-caution p{margin-top:6px}.audit-guide ol{padding-left:22px;margin:12px 0 0;font-size:14px;line-height:1.85;color:#334c3e}.audit-guide li+li{margin-top:9px}.audit-guide-source{font-size:13px;justify-self:start}.audit-affected-title{margin:0 0 12px}.audit-evidence-heading>small{display:block;font-size:12px;color:#607068;margin-bottom:5px}.audit-observations{margin:14px 0 0;padding:13px 16px;background:#f4f6f0;font-size:13px;line-height:1.8}.audit-observations>div+div{margin-top:9px}.audit-observations dt{color:#607068;font-size:12px}.audit-observations dd{margin:3px 0 0;overflow-wrap:anywhere;color:#233e30}
@media(max-width:700px){.audit-guide{grid-template-columns:1fr;padding:18px;gap:20px}.audit-guide-caution{padding:12px 14px}.audit-issue-preview{font-size:12px}.audit-guide p,.audit-guide ol{font-size:13px}.audit-observations{padding:12px}}

.audit-url{min-width:0}.audit-url>a{font-weight:550;overflow-wrap:anywhere;line-height:1.8}.audit-url-preview{font-weight:400;margin-top:8px}.audit-url-preview>summary{font-size:12px;cursor:pointer;color:#35624f;width:fit-content;padding:4px 0}.audit-preview-content{background:#fff;border:1px solid #dce5d7;border-radius:6px;padding:18px;margin:9px 0 2px;max-width:620px;color:#344c3e}.audit-preview-content h4{font-size:16px;margin:0 0 8px;line-height:1.6}.audit-preview-content p{font-size:13px;line-height:1.85;margin:0 0 10px;overflow-wrap:anywhere}.audit-preview-content small{display:block;font-size:12px;line-height:1.8;color:#607068}.audit-preview-content figure{margin:0 0 16px}.audit-preview-content img{display:block;width:100%;max-height:220px;object-fit:contain;background:#f4f6f0;border-radius:4px}.audit-url-preview>summary:focus-visible{outline:2px solid #2b5747;outline-offset:3px}.audit-evidence-heading>span{display:block;margin-top:7px}

.measurement-runs th:last-child,.measurement-runs td:last-child{padding-left:24px;white-space:nowrap}

/* Actual collection stages and scheduled waiting; percentages never advance on a timer. */
.collection-stages{list-style:none;margin:24px 0;padding:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.collection-stages li{padding:14px 0;border-bottom:1px solid var(--rule)}
.collection-stages li>div{display:flex;align-items:center;gap:10px}.collection-stages strong{font-size:14px;font-weight:600}.stage-number{font-size:12px;width:23px;height:23px;border:1px solid var(--rule);border-radius:50%;display:grid;place-items:center}.stage-state{margin-left:auto;font-size:12px;color:var(--ink-3)}
.collection-stages p{margin:5px 0 0 33px;font-size:12px;color:var(--ink-3)}
.collection-stages [data-state=active] .stage-number{background:#276551;color:white;border-color:#276551}.collection-stages [data-state=active] .stage-state{color:#276551;font-weight:650}
.collection-stages [data-state=done] .stage-number{background:#e7f0e8;color:#276551}.collection-stages [data-state=stopped] .stage-state,.collection-stages [data-state=partial] .stage-state,.collection-stages [data-state=attention] .stage-state{color:#a5442e}
.collection-countdown{padding:18px 20px;background:#eef4ee;border-left:3px solid #2b6757;margin:20px 0}.collection-countdown[hidden]{display:none}.collection-countdown>span{font-size:12px;color:#426351}.collection-countdown strong{display:block;font-size:27px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums;margin:3px 0}.collection-countdown small{font-size:12px;color:var(--ink-3)}.collection-countdown[data-mode=checking]{background:#faf3e7;border-color:#ad8539}.collection-countdown[data-mode=checking] strong{font-size:17px}
.collection-percent{margin-left:auto;font-size:17px;color:#276551;white-space:nowrap}.count-updated>strong{animation:collection-received 1s ease-out}@keyframes collection-received{from{color:#189574;transform:translateY(-3px)}to{color:inherit;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.count-updated>strong{animation:none}}
@media(max-width:420px){.collection-countdown{padding:14px}.collection-countdown strong{font-size:24px}.run-count{gap:8px;flex-wrap:wrap}.run-count>span{font-size:13px}.collection-percent{font-size:15px}}
/* Hallmark · component: collection failure dialog · theme: locked Workbench
 * states: default, hover, focus, active, disabled, loading, error, success
 * pre-emit critique: P5 H5 E4 S5 R5 V4 */
.run-failure-trigger{border:0;background:transparent;color:var(--color-danger);font:inherit;font-size:var(--text-sm);padding:var(--space-3xs) var(--space-2xs);min-height:28px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.run-failure-trigger:disabled{color:var(--color-muted);text-decoration:none;cursor:default}
.run-failure-trigger:disabled>span{display:none}
.run-failure-trigger:focus-visible,.run-failure-dialog :focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.run-failure-trigger:not(:disabled):active{background:var(--color-danger-soft)}
.run-failure-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:var(--space-lg);border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);overflow:auto;overscroll-behavior:contain}
.run-failure-dialog::backdrop{background:var(--color-scrim)}
.run-failure-dialog>header,.run-failure-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}
.run-failure-dialog>header form{margin:0;flex:none}
.workspace-app .run-failure-dialog h2{font-size:var(--text-lg);margin:0 0 var(--space-2xs)}
.run-failure-dialog p{margin:0;line-height:1.7;overflow-wrap:anywhere}
.run-failure-dialog>header p,.run-failure-note{color:var(--color-muted);font-size:var(--text-sm)}
.run-failure-toolbar{align-items:center;margin:var(--space-sm) 0;font-size:var(--text-sm)}
.run-failure-toolbar .button{flex:none}
.run-failure-list{list-style:none;padding:0;margin:0}
.run-failure-list>li{border-top:1px solid var(--color-rule);padding:var(--space-sm) 0}
.workspace-app .run-failure-list h3{font-size:var(--text-base);font-weight:600;line-height:1.7;margin:var(--space-3xs) 0;overflow-wrap:anywhere}
.run-failure-meta{color:var(--color-muted);font-size:var(--text-xs)}
.run-failure-reason{color:var(--color-ink-2);font-size:var(--text-sm)}
.run-failure-list a{display:inline-block;font-size:var(--text-sm);margin-top:var(--space-2xs)}
.run-failure-dialog .run-failure-note{border-top:1px solid var(--color-rule);padding-top:var(--space-xs);margin-top:var(--space-sm)}
.run-failure-dialog[data-state=loading] [data-failure-status]{color:var(--color-muted)}
.run-failure-dialog[data-state=error] [data-failure-error]{border-left:2px solid var(--color-danger);padding-left:var(--space-xs)}
@media(hover:hover){.run-failure-trigger:not(:disabled):hover{background:var(--color-danger-soft)}}
@media(max-width:767px){.run-failure-trigger,.run-failure-dialog .button,.run-failure-list a{min-height:44px;align-content:center}.run-failure-dialog{padding:var(--space-sm)}}

.run-failure-dialog button[aria-disabled=true]{opacity:.5;cursor:wait}
/* Hallmark · component: saved JSON dialog · theme: locked Workbench
 * states: default, hover, focus, active, disabled, loading, error, success
 * pre-emit critique: P5 H5 E5 S5 R5 V4 */

/* Confirmation keeps the existing compact workbench controls and focus styles. */
.browser-confirmation{border-left:2px solid var(--color-accent);padding:var(--space-sm);margin:var(--space-sm) 0;background:var(--color-paper);overflow-wrap:anywhere}
.browser-confirmation li+li{margin-top:var(--space-xs)}
.browser-confirmation a{display:inline-block}
@media(max-width:767px){.browser-confirmation a,.browser-confirmation button{min-height:44px;align-content:center}}
