* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--color-bg-primary);
  color: var(--color-text-primary);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }
.num, td.num, .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* ---------- 顶栏 ---------- */
.topbar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: var(--space-6);
  height: 56px; padding: 0 var(--space-6);
  background: var(--color-bg-secondary);
  border-bottom: 1px solid var(--color-border-default);
}
.topbar .brand { font-weight: 600; white-space: nowrap; }
.topbar nav { display: flex; gap: var(--space-1); flex: 1; flex-wrap: nowrap; min-width: 0; }
.topbar nav a {
  padding: var(--space-2) var(--space-3);
  min-height: 44px; display: inline-flex; align-items: center;
  color: var(--color-text-secondary); text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color var(--duration-fast) var(--easing-default);
}
.topbar nav a:hover { color: var(--color-text-primary); }
.topbar nav a.on { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.batchinfo { font-size: var(--text-xs); color: var(--color-text-muted); text-align: right; }
.batchinfo .demo { color: var(--color-warning); }
.session-actions { margin: 0; }
.session-actions .btn { min-height: 44px; padding: var(--space-1) var(--space-3); font-size: var(--text-xs); }
.v2-subnav {
  display: flex;
  justify-content: center;
  gap: var(--space-1);
  min-height: 44px;
  padding: 0 var(--space-6);
  border-bottom: 1px solid var(--color-border-subtle);
  background: var(--color-bg-primary);
}
.v2-subnav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--space-4);
  border-bottom: 2px solid transparent;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  text-decoration: none;
}
.v2-subnav a:hover { color: var(--color-text-primary); }
.v2-subnav a.on { border-bottom-color: var(--color-accent); color: var(--color-text-primary); }

.wrap { max-width: 1280px; margin: 0 auto; padding: var(--space-6); }
h1 { font-size: var(--text-xl); margin: 0 0 var(--space-2); text-wrap: balance; }
h2 { font-size: var(--text-lg); margin: var(--space-8) 0 var(--space-3); }
h3 { font-size: var(--text-base); margin: var(--space-5) 0 var(--space-2); color: var(--color-text-secondary); }
p { margin: 0 0 var(--space-3); color: var(--color-text-secondary); }
.lead { color: var(--color-text-secondary); margin-bottom: var(--space-5); }

/* ---------- 应用内邀请码登录 ---------- */
.import-login-shell {
  min-height: min(68vh, 620px);
  display: grid;
  place-items: center;
  padding: var(--space-10) var(--space-4);
}
.import-login-card {
  width: min(100%, 440px);
  margin: 0;
  padding: var(--space-8);
  box-shadow: var(--shadow-lg);
}
.import-login-card h1 { margin-top: var(--space-2); }
.import-login-form { display: grid; gap: var(--space-5); margin-top: var(--space-6); }
.import-login-form input { width: 100%; }
.import-login-form button { width: 100%; }
.import-login-error { margin: 0; }
.import-login-note { margin: var(--space-5) 0 0; font-size: var(--text-xs); color: var(--color-text-muted); }

/* ---------- 卡片与筛选条 ---------- */
.card {
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  margin-bottom: var(--space-4);
}
.filters {
  display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-5);
  align-items: flex-end;
  position: sticky; top: 56px; z-index: 10;
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-4);
}
.field { display: flex; flex-direction: column; gap: var(--space-1); }
.field > label { font-size: var(--text-xs); color: var(--color-text-secondary); }
.field .err { font-size: var(--text-xs); color: var(--color-danger); }
input[type="text"], input[type="number"], input[type="date"], select, textarea {
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
  min-height: 44px; font-size: var(--text-sm);
  font-family: var(--font-sans);
}
textarea { resize: vertical; line-height: 1.6; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] {
  border-color: var(--color-danger);
}
.field-help { color: var(--color-text-muted); font-size: var(--text-xs); }
.check { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; font-size: var(--text-sm); color: var(--color-text-secondary); cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--color-accent); }

button, .btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-md); border: 1px solid transparent;
  font-size: var(--text-sm); font-family: var(--font-sans); cursor: pointer;
  background: var(--color-accent); color: #1a0d09; font-weight: 600;
  transition: background var(--duration-fast) var(--easing-default);
  text-decoration: none;
}
button:hover, .btn:hover { background: var(--color-accent-hover); }
button:active, .btn:active { transform: translateY(1px); }
button:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-ghost {
  background: transparent; color: var(--color-text-secondary);
  border-color: var(--color-border-default); font-weight: 400;
}
.btn-ghost:hover { background: transparent; border-color: var(--color-accent); color: var(--color-accent); }
.btn.disabled, .btn[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

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

/* ---------- 表格 ---------- */
.tablewrap { overflow-x: auto; border: 1px solid var(--color-border-default); border-radius: var(--radius-lg); background: var(--color-bg-secondary); }
table { border-collapse: collapse; width: 100%; min-width: 900px; font-size: var(--text-sm); }
th, td { text-align: left; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border-subtle); vertical-align: top; }
th { background: var(--color-bg-tertiary); color: var(--color-text-secondary); font-weight: 600; font-size: var(--text-xs); white-space: nowrap; position: sticky; top: 0; }
th a { color: inherit; text-decoration: none; }
th.on a { color: var(--color-accent); }
tbody tr { transition: background var(--duration-fast) var(--easing-default); }
tbody tr:hover { background: var(--color-bg-tertiary); }
tr.weak td { opacity: 0.72; }
tr.divider td { background: var(--color-bg-tertiary); color: var(--color-warning); font-size: var(--text-xs); text-align: center; }
td a.name { color: var(--color-text-primary); text-decoration: none; font-weight: 600; }
td a.name:hover { color: var(--color-accent); }
.sub { display: block; font-size: var(--text-xs); color: var(--color-text-muted); font-family: var(--font-mono); }

/* ---------- 指标单元格 ---------- */
.metric .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.metric .n { display: block; font-size: var(--text-xs); color: var(--color-text-muted); font-family: var(--font-mono); }
.metric.thin .v { color: var(--color-text-muted); }
.metric.thin .n { color: var(--color-danger); }
.metric.miss .v { color: var(--color-text-muted); }

.badge { display: inline-block; font-size: var(--text-xs); font-family: var(--font-mono); padding: 1px 6px; border-radius: var(--radius-sm); margin-left: var(--space-1); }
.badge.est { background: var(--color-warning-subtle); color: var(--color-warning); }
.badge.real { background: var(--color-success-subtle); color: var(--color-success); }
.badge.star { background: var(--color-info-subtle); color: var(--color-info); }
.badge.warn { background: var(--color-danger-subtle); color: var(--color-danger); }

.evi { color: var(--color-text-muted); text-decoration: none; font-size: var(--text-xs); margin-left: var(--space-1); }
.evi:hover { color: var(--color-accent); }

/* ---------- 综合分条 ---------- */
.bar { display: inline-block; width: 84px; height: 6px; background: var(--color-bg-tertiary); border-radius: var(--radius-full); overflow: hidden; vertical-align: middle; margin-right: var(--space-2); }
.bar > i { display: block; height: 100%; background: var(--color-accent); }

.dimrow { display: grid; grid-template-columns: 92px 96px 60px 1fr; gap: var(--space-3); align-items: center; padding: var(--space-2) 0; border-bottom: 1px solid var(--color-border-subtle); font-size: var(--text-sm); }
.dimrow:last-child { border-bottom: none; }
.dimrow .miss { color: var(--color-danger); font-size: var(--text-xs); }
.formula { background: var(--color-bg-tertiary); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); font-family: var(--font-mono); font-size: var(--text-xs); margin-top: var(--space-3); overflow-x: auto; white-space: nowrap; }

/* ---------- 方案生成 ---------- */
.case-entry, .case-summary, .case-result-guide {
  background: linear-gradient(135deg, var(--color-accent-subtle), var(--color-bg-secondary) 56%);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  margin-bottom: var(--space-5);
}
.case-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 260px);
  grid-template-areas:
    "copy action"
    "details action";
  gap: var(--space-5);
  align-items: center;
}
.case-entry-copy { grid-area: copy; }
.case-entry-action { grid-area: action; }
.case-entry-details { grid-area: details; }
.case-entry.unavailable { border-color: var(--color-border-default); }
.case-entry-secondary {
  border-color: var(--color-border-default);
  background: var(--color-bg-secondary);
}
.case-entry-secondary .case-kicker { color: var(--color-text-muted); }
.case-entry h2, .case-summary h2, .case-result-guide h2 {
  margin: var(--space-1) 0 var(--space-2);
  color: var(--color-text-primary);
  text-wrap: balance;
}
.case-problem { font-size: var(--text-lg); color: var(--color-text-primary); }
.plain-term-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.plain-term-pair p {
  margin: 0;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}
.plain-term-pair strong { color: var(--color-accent); margin-right: var(--space-2); }
.plain-term-pair span { display: inline; }
.target-explanation {
  margin: var(--space-3) 0 0;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}
.term-ledger strong { color: var(--color-text-primary); }
.term-ledger span { color: var(--color-text-muted); }
.case-kicker {
  color: var(--color-accent);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.case-conditions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2);
  list-style: none;
  margin: var(--space-4) 0 0;
  padding: 0;
}
.case-conditions li {
  min-width: 0;
  background: var(--color-bg-tertiary);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3);
}
.case-conditions span, .case-conditions strong { display: block; }
.case-conditions span { color: var(--color-text-muted); font-size: var(--text-xs); }
.case-conditions strong { color: var(--color-text-primary); font-size: var(--text-sm); }
.case-conditions small {
  display: block;
  margin-top: var(--space-1);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: 1.5;
}
.case-entry-action, .case-summary-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
}
.case-entry-action .sub { text-align: center; }
.case-disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--space-10) + var(--space-1));
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  color: var(--color-text-muted);
}
.case-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-5);
  align-items: center;
}
.case-summary .case-conditions { margin-top: var(--space-3); }
.case-status {
  align-self: center;
  color: var(--color-success);
  font-size: var(--text-sm);
  font-weight: 700;
  text-align: center;
}
.case-status.modified { color: var(--color-warning); }
.case-result-guide { background: var(--color-bg-secondary); }
.case-result-numbers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin: var(--space-3) 0 var(--space-4);
}
.case-result-numbers div {
  background: var(--color-bg-tertiary);
  border-radius: var(--radius-md);
  padding: var(--space-3);
}
.case-result-numbers dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.case-result-numbers dd { margin: 0; color: var(--color-text-primary); font-size: var(--text-lg); }
.case-result-links { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.current-conclusion {
  color: var(--color-text-primary);
  font-size: var(--text-lg);
  font-weight: 600;
}
.representative-reason {
  margin: 0 0 var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-md);
  background: var(--color-accent-subtle);
}
.representative-reason > span {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}
.representative-reason p { margin: var(--space-1) 0 0; color: var(--color-text-primary); }
.reading-path { margin-bottom: var(--space-4); }
.reading-path ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.reading-path .btn { width: 100%; }
.reading-path .btn span { color: var(--color-accent); margin-right: var(--space-2); }
.secondary-evidence-links { margin-bottom: var(--space-4); }
.secondary-evidence-links summary {
  display: flex;
  align-items: center;
  min-height: calc(var(--space-10) + var(--space-1));
  color: var(--color-text-secondary);
  cursor: pointer;
}
.secondary-evidence-links summary:hover { color: var(--color-accent); }
.secondary-evidence-links .case-result-links { padding-top: var(--space-2); }
.term-translations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-4) 0 0;
}
.term-translations div {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.term-translations dt { color: var(--color-text-primary); font-weight: 600; }
.term-translations dd { margin: 0; color: var(--color-text-secondary); font-size: var(--text-sm); }
.case-evidence-note { margin: var(--space-3) 0 0; font-size: var(--text-xs); }
.case-compare-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-md);
  background: var(--color-accent-subtle);
}
.case-compare-entry strong { color: var(--color-text-primary); }
.case-compare-entry p { margin: var(--space-1) 0 0; font-size: var(--text-sm); }
.case-compare-entry .btn { flex: 0 0 auto; }
#result, #current-conclusion, #representative-reason, #selected-results, #key-rejects { scroll-margin-top: calc(var(--space-12) + var(--space-6)); }

.plan-layout { display: grid; grid-template-columns: 360px 1fr; gap: var(--space-6); align-items: start; }
.plan-layout > * { min-width: 0; }
.result-column { min-width: 0; }
.result-status {
  margin: 0 0 var(--space-3);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-info);
  border-radius: var(--radius-md);
  background: var(--color-info-subtle);
  color: var(--color-text-primary);
  font-size: var(--text-sm);
}
.params { position: static; }
.slider { display: grid; grid-template-columns: 72px 1fr 44px; gap: var(--space-2); align-items: center; font-size: var(--text-sm); margin-bottom: var(--space-2); }
.slider input[type="range"] { width: 100%; accent-color: var(--color-accent); min-height: 32px; }
.slider .val { font-family: var(--font-mono); text-align: right; color: var(--color-text-secondary); }

.plan-cards { display: flex; gap: var(--space-4); overflow-x: auto; padding-bottom: var(--space-2); }
.plan-card { flex: 1 1 0; min-width: 240px; background: var(--color-bg-secondary); border: 1px solid var(--color-border-default); border-radius: var(--radius-lg); padding: var(--space-4); }
.plan-card.on { border-color: var(--color-accent); box-shadow: var(--shadow-md); }
.plan-card .t { font-weight: 600; margin-bottom: var(--space-1); }
.plan-card .hint { font-size: var(--text-xs); color: var(--color-text-muted); margin-bottom: var(--space-3); }
.plan-card .big { font-size: var(--text-2xl); font-family: var(--font-mono); line-height: 1.2; }
.plan-card .kv { font-size: var(--text-sm); color: var(--color-text-secondary); font-family: var(--font-mono); }

.pick { border: 1px solid var(--color-border-subtle); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-3); background: var(--color-bg-secondary); }
.pick .head { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: baseline; }
.pick .head .nm { font-weight: 600; }
.pick ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.pick li { color: var(--color-text-secondary); font-size: var(--text-sm); margin-bottom: var(--space-1); }

details.group { border: 1px solid var(--color-border-subtle); border-radius: var(--radius-md); margin-bottom: var(--space-3); background: var(--color-bg-secondary); }
details.group > summary { padding: var(--space-3) var(--space-4); cursor: pointer; font-size: var(--text-sm); min-height: 44px; display: flex; align-items: center; gap: var(--space-2); }
details.group > summary:hover { color: var(--color-accent); }
details.group .body { padding: 0 var(--space-4) var(--space-3); }

.tabs { display: flex; gap: var(--space-2); margin: var(--space-5) 0 var(--space-3); }
.tabs button { background: transparent; color: var(--color-text-secondary); border: 1px solid var(--color-border-default); font-weight: 400; }
.tabs button.on { background: var(--color-accent-subtle); color: var(--color-accent); border-color: var(--color-accent); }

.notice { border-left: 3px solid var(--color-accent); background: var(--color-accent-subtle); padding: var(--space-3) var(--space-4); border-radius: 0 var(--radius-md) var(--radius-md) 0; margin-bottom: var(--space-4); font-size: var(--text-sm); }
.notice.calm { border-left-color: var(--color-info); background: var(--color-info-subtle); }
.notice.warn { border-left-color: var(--color-warning); background: var(--color-warning-subtle); }
.notice p { color: var(--color-text-primary); margin-bottom: 0; }

.empty { text-align: center; padding: var(--space-12) var(--space-4); color: var(--color-text-secondary); }
.empty .big { font-size: var(--text-lg); color: var(--color-text-primary); margin-bottom: var(--space-2); }
.empty code { background: var(--color-bg-tertiary); padding: 2px 6px; border-radius: var(--radius-sm); font-family: var(--font-mono); }
.error-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }

/* ---------- V2投放项目 ---------- */
.v2-entry,
.brief-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-accent-subtle), var(--color-bg-secondary) 64%);
}
.v2-entry h2,
.brief-summary h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.v2-entry p,
.brief-summary p { margin: 0; }
.page-heading-actions,
.brief-detail-heading,
.section-heading-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.page-heading-actions .lead,
.brief-detail-heading .lead { margin-bottom: 0; }
.back-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}
.back-link:hover { color: var(--color-accent); }
.brief-list { display: grid; gap: var(--space-3); }
.brief-list-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, auto) auto;
  align-items: center;
  gap: var(--space-5);
  margin-bottom: 0;
}
.brief-list-card h2 { margin: var(--space-1) 0; }
.brief-list-card h2 a { text-decoration: none; }
.brief-list-card h2 a:hover { color: var(--color-accent); }
.brief-card-facts,
.brief-summary-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(110px, 1fr));
  gap: var(--space-2);
  margin: 0;
}
.brief-card-facts div,
.brief-summary-facts div {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.brief-card-facts dt,
.brief-summary-facts dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.brief-card-facts dd,
.brief-summary-facts dd { margin: 0; color: var(--color-text-primary); }
.brief-summary-facts small { display: block; color: var(--color-warning); font-size: var(--text-xs); }
.brief-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  max-width: 900px;
}
.brief-form-heading { max-width: 900px; }
.brief-span-2 { grid-column: 1 / -1; }
.brief-fieldset,
.candidate-picker fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.brief-fieldset legend,
.candidate-picker legend {
  margin-bottom: var(--space-2);
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
}
.brief-form-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.brief-overview h2,
.brief-candidates h2 { margin-top: 0; }
.brief-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  margin: 0;
}
.brief-overview-grid div {
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.brief-overview-grid dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.brief-overview-grid dd { margin: 0; overflow-wrap: anywhere; }
.selected-candidate-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-2);
  margin: 0 0 var(--space-5);
  padding: 0;
  list-style: none;
}
.selected-candidate-list li {
  padding: var(--space-3);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.selected-candidate-list a,
.selected-candidate-list span,
.selected-candidate-list small { display: block; }
.selected-candidate-list small { color: var(--color-text-muted); }
.candidate-option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-2);
  max-height: 480px;
  margin-bottom: var(--space-4);
  overflow: auto;
}
.candidate-option {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 64px;
  padding: var(--space-3);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  cursor: pointer;
}
.candidate-option:hover { border-color: var(--color-accent); }
.candidate-option.selected { opacity: 0.58; cursor: default; }
.candidate-option input { width: 18px; height: 18px; accent-color: var(--color-accent); }
.candidate-option span,
.candidate-option strong,
.candidate-option small { display: block; min-width: 0; }
.candidate-option small { color: var(--color-text-muted); }
.candidate-error { margin-bottom: var(--space-3); color: var(--color-danger); }
.compact-empty { padding: var(--space-6) var(--space-3); }

/* ---------- V2目标评分拆解 ---------- */
.brief-detail-actions,
.score-page-heading,
.score-results-heading,
.score-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.brief-detail-actions { flex-wrap: wrap; }
.score-page-heading { align-items: flex-start; margin-bottom: var(--space-5); }
.score-page-heading .lead { margin-bottom: 0; }
.score-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
  gap: var(--space-6);
  overflow: hidden;
  margin-bottom: var(--space-4);
  padding: var(--space-6);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(120deg, var(--color-accent-subtle), transparent 54%),
    var(--color-bg-secondary);
}
.score-hero::after {
  position: absolute;
  right: -56px;
  bottom: -92px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(255, 106, 77, 0.28);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}
.score-mode-label {
  color: var(--color-accent);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.score-hero h2 {
  max-width: 720px;
  margin: var(--space-2) 0;
  color: var(--color-text-primary);
  font-size: var(--text-2xl);
  line-height: 1.3;
  text-wrap: balance;
}
.score-warning-text { color: var(--color-warning); font-size: var(--text-sm); }
.score-hero-stats {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  align-self: end;
  margin: 0;
}
.score-hero-stats div {
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: rgba(15, 18, 22, 0.78);
}
.score-hero-stats dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-hero-stats dd { margin: 0; color: var(--color-text-primary); font-weight: 700; }
.score-definition-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}
.score-definition-grid article {
  min-width: 0;
  padding: var(--space-4);
  border-top: 2px solid var(--color-border-default);
  background: var(--color-bg-secondary);
}
.score-definition-grid article:last-child { border-top-color: var(--color-accent); }
.score-definition-grid span { color: var(--color-text-muted); font-family: var(--font-mono); font-size: var(--text-xs); }
.score-definition-grid h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.score-definition-grid p { margin: 0; font-size: var(--text-sm); }
.score-target-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.score-target-tabs a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 72px;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: border-color var(--duration-fast) var(--easing-default), background var(--duration-fast) var(--easing-default);
}
.score-target-tabs a:hover { border-color: var(--color-accent); }
.score-target-tabs a.on {
  border-color: var(--color-accent);
  color: var(--color-text-primary);
  background: var(--color-accent-subtle);
}
.score-target-tabs strong,
.score-target-tabs span { display: block; }
.score-target-tabs span { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-target-difference h2,
.score-controls h2 { margin: var(--space-1) 0 var(--space-2); color: var(--color-text-primary); }
.score-controls {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(300px, 1fr);
  gap: var(--space-5);
}
.score-brief-audience {
  margin: var(--space-2) 0 0;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
  color: var(--color-text-primary);
}
.score-toggle-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.score-control-label { display: block; margin-bottom: var(--space-1); color: var(--color-text-muted); font-size: var(--text-xs); }
.segmented-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.segmented-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--space-2);
  border: 1px solid var(--color-border-default);
  color: var(--color-text-secondary);
  text-align: center;
  text-decoration: none;
}
.segmented-links a:first-child { border-radius: var(--radius-md) 0 0 var(--radius-md); }
.segmented-links a:last-child { border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.segmented-links a + a { border-left: 0; }
.segmented-links a.on { color: var(--color-accent); background: var(--color-accent-subtle); border-color: var(--color-accent); }
.score-profile-form {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: var(--space-3);
  align-items: end;
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-subtle);
}
.score-profile-form select { width: 100%; }
.score-profile-status {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--color-info);
  font-size: var(--text-sm);
}
.score-run-meta summary,
.score-breakdown > summary,
.score-facts > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-text-secondary);
  cursor: pointer;
}
.score-run-meta summary:hover,
.score-breakdown > summary:hover,
.score-facts > summary:hover { color: var(--color-accent); }
.score-run-meta dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0 0;
}
.score-run-meta dl div {
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.score-run-meta dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-run-meta dd { margin: 0; overflow-wrap: anywhere; }
.score-run-meta code { white-space: normal; }
.score-results-heading { align-items: flex-end; margin: var(--space-8) 0 var(--space-4); }
.score-results-heading h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.score-results-heading p { margin: 0; }
.score-pagination { justify-content: flex-end; }
.score-pagination span { color: var(--color-text-muted); font-size: var(--text-sm); white-space: nowrap; }
.score-result-list { display: grid; gap: var(--space-4); }
.score-result-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-bg-secondary);
}
.score-result-card.eligible { border-color: var(--color-success); }
.score-result-card.ineligible { border-style: dashed; }
.score-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border-subtle);
  background: linear-gradient(100deg, var(--color-bg-tertiary), var(--color-bg-secondary));
}
.score-result-identity h3 { margin: var(--space-1) 0 0; color: var(--color-text-primary); font-size: var(--text-xl); }
.score-result-identity p { margin: 0; font-size: var(--text-sm); }
.status-pill.eligible { color: var(--color-success); background: var(--color-success-subtle); }
.status-pill.insufficient { color: var(--color-warning); background: var(--color-warning-subtle); }
.status-pill.ineligible { color: var(--color-danger); background: var(--color-danger-subtle); }
.score-triplet {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: 0;
  padding: var(--space-4) var(--space-5) 0;
}
.score-triplet div {
  min-width: 0;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.score-triplet .total { background: var(--color-accent-subtle); }
.score-triplet dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-triplet dd { margin: 0; color: var(--color-text-primary); font-family: var(--font-mono); font-size: var(--text-xl); }
.score-reason-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
}
.score-reason-grid section {
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border-left: 2px solid var(--color-success);
  background: var(--color-bg-tertiary);
}
.score-reason-grid section + section { border-left-color: var(--color-warning); }
.score-reason-grid h4 { margin: 0; color: var(--color-text-primary); }
.score-reason-grid ul,
.score-data-notes ul,
.score-suggestions ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.score-reason-grid li,
.score-data-notes li,
.score-suggestions li { margin-bottom: var(--space-1); color: var(--color-text-secondary); overflow-wrap: anywhere; }
.score-reason-grid p { margin: var(--space-2) 0 0; }
.score-data-notes,
.score-result-difference {
  margin: 0 var(--space-5) var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-warning-subtle);
}
.score-data-notes > strong,
.score-result-difference > strong,
.score-suggestions > strong { color: var(--color-text-primary); }
.score-data-notes p,
.score-result-difference p { margin: var(--space-2) 0 0; }
.score-result-difference { background: var(--color-info-subtle); }
.score-breakdown {
  margin: 0 var(--space-5) var(--space-5);
  border-top: 1px solid var(--color-border-default);
}
.score-breakdown > summary { font-weight: 600; }
.score-dimension-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  padding-top: var(--space-2);
}
.score-dimension-card {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-bg-primary);
}
.score-dimension-card.unavailable { border-style: dashed; }
.score-dimension-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.score-dimension-card > header span { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-dimension-card > header h4 { margin: 0; color: var(--color-text-primary); }
.score-dimension-card > header > strong { color: var(--color-accent); font-family: var(--font-mono); font-size: var(--text-lg); }
.score-dimension-card.unavailable > header > strong { color: var(--color-text-muted); font-family: var(--font-sans); font-size: var(--text-sm); }
.score-dimension-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-1);
  margin: var(--space-3) 0 0;
}
.score-dimension-meta div { min-width: 0; padding: var(--space-2); border-radius: var(--radius-sm); background: var(--color-bg-tertiary); }
.score-dimension-meta dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-dimension-meta dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-secondary); font-family: var(--font-mono); font-size: var(--text-xs); }
.score-facts { margin-top: var(--space-2); }
.score-fact-list { display: grid; gap: var(--space-2); }
.score-fact {
  min-width: 0;
  padding: var(--space-3);
  border-left: 2px solid var(--color-border-default);
  background: var(--color-bg-tertiary);
}
.score-fact > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.score-fact > header strong { min-width: 0; overflow-wrap: anywhere; }
.score-fact > header .badge { flex: 0 0 auto; margin-left: 0; }
.score-fact-value { margin: var(--space-1) 0; color: var(--color-text-primary); font-family: var(--font-mono); overflow-wrap: anywhere; }
.score-fact dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); margin: 0; }
.score-fact dl div { min-width: 0; }
.score-fact dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.score-fact dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-secondary); font-size: var(--text-xs); }
.score-fact-formula { margin: var(--space-2) 0 0; color: var(--color-info); font-size: var(--text-xs); }
.score-fact-evidence { display: grid; gap: var(--space-1); margin-top: var(--space-2); color: var(--color-text-muted); font-size: var(--text-xs); }
.score-fact-evidence a,
.score-fact-evidence code { overflow-wrap: anywhere; white-space: normal; }
.score-fact-evidence a { color: var(--color-info); }
.score-no-facts { margin: var(--space-3) 0 0; font-size: var(--text-sm); }
.score-suggestions { margin-top: var(--space-4); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--color-bg-tertiary); }
.score-pagination-bottom { margin-top: var(--space-5); }

/* ---------- V2预算组合与方案档案 ---------- */
.combination-page-heading,
.combination-results-heading,
.combination-form-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.combination-page-heading .lead,
.combination-results-heading p { margin-bottom: 0; }
.combination-ledger {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(440px, 0.8fr);
  gap: var(--space-6);
  margin-bottom: var(--space-4);
  padding: var(--space-5) var(--space-6);
  border-top: 2px solid var(--color-accent);
  border-bottom: 1px solid var(--color-border-default);
  background:
    linear-gradient(100deg, var(--color-accent-subtle), transparent 48%),
    var(--color-bg-secondary);
}
.combination-ledger h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.combination-ledger p { margin: 0; }
.combination-ledger dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  align-self: stretch;
  margin: 0;
  background: var(--color-border-default);
}
.combination-ledger dl div { min-width: 0; padding: var(--space-3); background: var(--color-bg-tertiary); }
.combination-ledger dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-ledger dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-primary); font-weight: 700; }
.combination-ledger code { font-size: var(--text-xs); }
.combination-conflict { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.combination-conflict p { margin: 0; }
.combination-empty { margin-top: var(--space-4); }
.combination-form { padding: 0; overflow: hidden; }
.combination-form-heading {
  align-items: center;
  margin: 0;
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border-default);
  background: var(--color-bg-tertiary);
}
.combination-form-heading h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.combination-fieldset {
  min-width: 0;
  margin: 0;
  padding: var(--space-5);
  border: 0;
  border-bottom: 1px solid var(--color-border-subtle);
}
.combination-fieldset:last-child { border-bottom: 0; }
.combination-fieldset legend {
  padding: 0;
  color: var(--color-accent);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.combination-field-grid,
.combination-profile-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}
.combination-profile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.combination-field-grid input,
.combination-field-grid select,
.combination-profile-grid select,
.combination-pick-grid select { width: 100%; }
.combination-span-2 { grid-column: span 2; }
.combination-checks { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-4); }
.combination-checks label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 44px;
  color: var(--color-text-secondary);
  cursor: pointer;
}
.combination-checks input { width: 18px; height: 18px; accent-color: var(--color-accent); }
.combination-field-note { margin: 0 0 var(--space-3); font-size: var(--text-sm); }
.combination-advanced { border-bottom: 1px solid var(--color-border-subtle); }
.combination-advanced > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--space-5);
  color: var(--color-text-secondary);
  cursor: pointer;
}
.combination-advanced > summary:hover { color: var(--color-accent); }
.combination-advanced .combination-fieldset { border-bottom: 0; padding-top: var(--space-2); }
.combination-pick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.combination-pick-grid select { min-height: 220px; }
.combination-state-card { margin-top: var(--space-5); border-left: 3px solid var(--color-warning); }
.combination-state-card h2 { margin: var(--space-2) 0; color: var(--color-text-primary); }
.combination-state-card ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.combination-suggestions { margin-top: var(--space-3); padding: var(--space-3); background: var(--color-bg-tertiary); }
.combination-results { margin-top: var(--space-8); }
.combination-results-heading h2 { margin: var(--space-1) 0; color: var(--color-text-primary); }
.combination-anchor-tabs {
  position: sticky;
  top: 56px;
  z-index: 8;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: var(--space-4);
  border: 1px solid var(--color-border-default);
  background: var(--color-bg-secondary);
}
.combination-anchor-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: var(--space-2) var(--space-3);
  color: var(--color-text-secondary);
  text-decoration: none;
}
.combination-anchor-tabs a + a { border-left: 1px solid var(--color-border-default); }
.combination-anchor-tabs a:hover { color: var(--color-accent); background: var(--color-accent-subtle); }
.combination-plan-list { display: grid; gap: var(--space-6); }
.combination-plan-card {
  min-width: 0;
  scroll-margin-top: 124px;
  border: 1px solid var(--color-border-default);
  border-top: 3px solid var(--color-accent);
  background: var(--color-bg-secondary);
}
.combination-plan-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  padding: var(--space-5);
  border-bottom: 1px solid var(--color-border-default);
  background: linear-gradient(110deg, var(--color-accent-subtle), transparent 44%);
}
.strategy-index { color: var(--color-accent); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.1em; }
.combination-plan-card h2,
.combination-plan-card h3 { margin: var(--space-1) 0; color: var(--color-text-primary); font-size: var(--text-xl); }
.combination-plan-card header p { margin: 0; }
.combination-save-form { flex: 0 0 auto; }
.combination-metric-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--color-border-default);
  border-bottom: 1px solid var(--color-border-default);
}
.combination-metric-grid div { min-width: 0; padding: var(--space-3); background: var(--color-bg-tertiary); }
.combination-metric-grid .primary { background: var(--color-accent-subtle); }
.combination-metric-grid dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-metric-grid dd { margin: 0; color: var(--color-text-primary); font-family: var(--font-mono); font-size: var(--text-lg); overflow-wrap: anywhere; }
.combination-creator-list { display: grid; }
.combination-creator-row { padding: var(--space-5); border-bottom: 1px solid var(--color-border-subtle); }
.combination-creator-identity { display: flex; align-items: flex-start; gap: var(--space-3); }
.creator-rank { min-width: 34px; color: var(--color-accent); font-family: var(--font-mono); font-size: var(--text-lg); }
.combination-creator-identity h3,
.combination-creator-identity h4 { margin: 0; color: var(--color-text-primary); font-size: var(--text-lg); }
.combination-creator-identity p { margin: 0; font-size: var(--text-sm); }
.combination-creator-identity .status-pill { margin-left: var(--space-2); vertical-align: middle; }
.combination-creator-row > dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0;
}
.combination-creator-row > dl div { min-width: 0; padding: var(--space-2) var(--space-3); background: var(--color-bg-tertiary); }
.combination-creator-row dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-creator-row dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-primary); font-family: var(--font-mono); }
.combination-creator-actions { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.combination-creator-actions details { flex: 1 1 auto; min-width: 0; }
.combination-creator-actions summary,
.combination-score-explainer summary,
.combination-rejections summary,
.combination-run-meta summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-text-secondary);
  cursor: pointer;
}
.combination-creator-actions summary:hover,
.combination-score-explainer summary:hover,
.combination-rejections summary:hover,
.combination-run-meta summary:hover { color: var(--color-accent); }
.combination-creator-actions ul { margin: var(--space-2) 0; padding-left: var(--space-5); }
.combination-fact { margin: var(--space-1) 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-score-explainer,
.combination-rejections,
.combination-run-meta { margin: 0 var(--space-5); padding: var(--space-2) 0; border-top: 1px solid var(--color-border-default); }
.combination-score-explainer dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-2) 0;
}
.combination-score-explainer dl div { min-width: 0; padding: var(--space-2) var(--space-3); background: var(--color-bg-tertiary); }
.combination-score-explainer dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-score-explainer dd { margin: 0; color: var(--color-text-primary); font-family: var(--font-mono); }
.combination-score-explainer p { font-size: var(--text-sm); }
.combination-rejections ul { columns: 2; margin: var(--space-2) 0; padding-left: var(--space-5); }
.combination-rejections li { break-inside: avoid; margin-bottom: var(--space-1); overflow-wrap: anywhere; color: var(--color-text-secondary); }
.combination-run-meta { margin-bottom: var(--space-4); }
.combination-run-meta dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-2) 0;
}
.combination-run-meta dl div { min-width: 0; padding: var(--space-2) var(--space-3); background: var(--color-bg-tertiary); }
.combination-run-meta dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.combination-run-meta dd { margin: 0; overflow-wrap: anywhere; }
.combination-run-meta code { white-space: normal; }
.saved-plan-list { display: grid; gap: var(--space-3); }
.saved-plan-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 0.7fr) auto;
  align-items: center;
  gap: var(--space-5);
  margin: 0;
  border-left: 3px solid var(--color-success);
}
.saved-plan-card.stale { border-left-color: var(--color-warning); }
.saved-plan-card.archived { opacity: 0.78; }
.saved-plan-card h2 { margin: var(--space-1) 0; }
.saved-plan-card h2 a { text-decoration: none; }
.saved-plan-card h2 a:hover { color: var(--color-accent); }
.saved-plan-card p { margin: 0; }
.saved-plan-badges { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.saved-plan-card > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--color-border-default); }
.saved-plan-card > dl div { min-width: 0; padding: var(--space-2); background: var(--color-bg-tertiary); }
.saved-plan-card dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.saved-plan-card dd { margin: 0; overflow-wrap: anywhere; font-family: var(--font-mono); }
.saved-detail-card { margin-top: var(--space-4); }

/* ---------- V2文件导入 ---------- */
.import-type-grid,
.demo-creator-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.import-type-card,
.demo-creator-card { min-width: 0; margin-bottom: 0; }
.import-type-card h2,
.demo-creator-card h3 { margin: var(--space-2) 0; color: var(--color-text-primary); }
.import-card-actions,
.import-upload-actions,
.mapping-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}
.demo-import-card,
.import-result-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  border-color: var(--color-accent);
  background: linear-gradient(135deg, var(--color-accent-subtle), var(--color-bg-secondary) 64%);
}
.demo-import-card h2,
.import-result-summary h2 { margin: var(--space-2) 0; }
.import-job-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  gap: var(--space-4);
  align-items: center;
}
.import-job-card h3 { margin: var(--space-1) 0; }
.import-job-card h3 a { text-decoration: none; }
.import-job-card h3 a:hover { color: var(--color-accent); }
.import-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(56px, 1fr));
  gap: var(--space-1);
  margin: 0;
}
.import-counts div {
  padding: var(--space-2);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.import-counts dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.import-counts dd { margin: 0; font-family: var(--font-mono); }
.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-full);
  color: var(--color-text-secondary);
  background: var(--color-bg-tertiary);
  font-size: var(--text-xs);
  white-space: nowrap;
}
.status-pill.completed,
.status-pill.imported { color: var(--color-success); background: var(--color-success-subtle); }
.status-pill.completed_with_errors,
.status-pill.error { color: var(--color-warning); background: var(--color-warning-subtle); }
.status-pill.failed { color: var(--color-danger); background: var(--color-danger-subtle); }
.status-pill.preview { color: var(--color-info); background: var(--color-info-subtle); }
.import-upload-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  max-width: 760px;
}
.import-upload-form .field,
.import-upload-actions { min-width: 0; }
.import-upload-form select,
.import-upload-form input[type="file"] {
  width: 100%;
  max-width: 100%;
}
input[type="file"] {
  min-height: 48px;
  padding: var(--space-2);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
  font: inherit;
}
input[type="file"]::file-selector-button {
  min-height: 44px;
  margin-right: var(--space-3);
  padding: var(--space-1) var(--space-3);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  color: var(--color-text-primary);
  background: var(--color-bg-secondary);
  cursor: pointer;
}
.import-detail-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.mapping-form { margin-top: var(--space-4); }
.mapping-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.required-mark {
  margin-left: var(--space-2);
  color: var(--color-warning);
  font-size: var(--text-xs);
}
.cancel-import-form {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border-subtle);
}
.import-preview-table td {
  max-width: 260px;
  overflow-wrap: anywhere;
}
.import-result-table table { min-width: 720px; }
.demo-comparison-table { min-width: 680px; }
.quote-history-list {
  margin: var(--space-3) 0 0;
  padding: 0;
  list-style: none;
}
.quote-history-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1) var(--space-3);
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-subtle);
}
.quote-history-list li:last-child { border-bottom: 0; }
.quote-history-list strong { color: var(--color-text-primary); }
.quote-history-list small {
  grid-column: 1 / -1;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
}

/* ---------- V2字段路由与成本 ---------- */
.data-heading-actions,
.empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.data-creator-list { display: grid; gap: var(--space-3); }
.data-creator-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: var(--space-5);
  align-items: center;
}
.data-creator-card h2 { margin: var(--space-1) 0; }
.data-creator-card h2 a { text-decoration: none; }
.data-counts {
  display: grid;
  grid-template-columns: repeat(2, minmax(88px, 1fr));
  gap: var(--space-2);
  margin: 0;
}
.data-counts div {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.data-counts dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.data-counts dd { margin: 0; font-family: var(--font-mono); }
.data-detail-heading,
.verification-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.routed-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}
.routed-field-card { min-width: 0; margin-bottom: 0; }
.routed-field-card.stale { border-color: var(--color-warning); }
.routed-field-card.missing { border-style: dashed; }
.routed-field-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.routed-value {
  margin: var(--space-1) 0;
  overflow-wrap: anywhere;
  color: var(--color-text-primary);
  font-family: var(--font-mono);
  font-size: var(--text-xl);
  font-variant-numeric: tabular-nums;
}
.field-state-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.routed-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-4) 0;
}
.routed-meta div {
  min-width: 0;
  padding: var(--space-2);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.routed-meta dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.routed-meta dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-secondary); }
.field-evidence {
  display: grid;
  gap: var(--space-1);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-subtle);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}
.field-evidence code { overflow-wrap: anywhere; white-space: normal; }
.verification-entry {
  margin-top: var(--space-6);
  border-color: var(--color-accent);
  background: linear-gradient(135deg, var(--color-accent-subtle), var(--color-bg-secondary) 64%);
}
.verification-entry h2,
.verification-cost-card h2,
.verification-confirm-card h2 { margin: var(--space-2) 0; }
.verification-preview-form { display: grid; gap: var(--space-4); }
.verification-preview-form fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-5);
  margin: 0;
  padding: var(--space-3);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
}
.verification-preview-form legend { padding: 0 var(--space-2); color: var(--color-text-secondary); }
.verification-provider-summary {
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.verification-provider-summary p:last-child { margin-bottom: 0; }
.verification-cost-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
  gap: var(--space-5);
  align-items: center;
}
.verification-cost-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2);
  margin: 0;
}
.verification-cost-grid div {
  min-width: 0;
  padding: var(--space-2);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.verification-cost-grid dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.verification-cost-grid dd { margin: 0; overflow-wrap: anywhere; font-family: var(--font-mono); }
.verification-cache-grid,
.cost-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}
.verification-cache-grid .card { margin-bottom: 0; }
.verification-cache-grid strong { display: block; margin: var(--space-1) 0; }
.cancel-verification-form { margin-top: var(--space-4); }
.cost-summary-grid { margin-bottom: var(--space-5); }
.cost-summary-grid .card { margin-bottom: 0; }
.cost-ledger-table table { min-width: 980px; }
.status-pill.success { color: var(--color-success); background: var(--color-success-subtle); }
.status-pill.failure,
.status-pill.completed_with_fallback { color: var(--color-warning); background: var(--color-warning-subtle); }
.status-pill.confirmed,
.status-pill.running { color: var(--color-info); background: var(--color-info-subtle); }

/* ---------- 当前报价离线呈现 ---------- */
.current-quote-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.current-quote-heading > * { min-width: 0; }
.current-quote-heading .lead { margin-bottom: 0; }
.current-quote-card { border-left: 3px solid var(--color-accent); }
.current-quote-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.current-quote-choice legend { grid-column: 1 / -1; }
.cooperation-option {
  display: flex;
  gap: var(--space-3);
  min-height: 88px;
  padding: var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  cursor: pointer;
  background: var(--color-bg-tertiary);
}
.cooperation-option:has(input:checked) { border-color: var(--color-accent); background: var(--color-accent-subtle); }
.cooperation-option input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--color-accent); }
.cooperation-option span { display: grid; gap: var(--space-1); }
.cooperation-option small { color: var(--color-text-secondary); font-size: var(--text-sm); }
.current-quote-confirm {
  display: none;
  grid-column: 1 / -1;
  margin: 0;
  padding: var(--space-3) var(--space-4);
  border-left: 3px solid var(--color-info);
  border-radius: var(--radius-md);
  background: var(--color-info-subtle);
  color: var(--color-text-secondary);
}
.current-quote-choice:has(input[value="douyin_short_video_custom"]:checked) .current-quote-confirm-custom,
.current-quote-choice:has(input[value="douyin_short_video_placement"]:checked) .current-quote-confirm-placement { display: block; }
.current-quote-confirm strong { color: var(--color-text-primary); }
.current-quote-status-grid,
.current-quote-candidate-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}
.current-quote-status-grid .card,
.current-quote-candidate-grid .card { min-width: 0; margin: 0; }
.current-quote-status-grid h2,
.current-quote-candidate-grid h2,
.current-quote-candidate-grid h3 { margin-top: var(--space-3); }
.current-quote-status-grid code,
.current-quote-facts code { overflow-wrap: anywhere; white-space: normal; }
.current-quote-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--color-border-default);
}
.current-quote-facts div { min-width: 0; padding: var(--space-3); background: var(--color-bg-tertiary); }
.current-quote-facts dt { color: var(--color-text-muted); font-size: var(--text-xs); }
.current-quote-facts dd { margin: 0; overflow-wrap: anywhere; }
.current-quote-amount { display: block; color: var(--color-text-primary); font-family: var(--font-mono); font-size: var(--text-xl); }
.current-quote-candidate-card .status-reason { color: var(--color-warning); }
.current-quote-plan-list { display: grid; gap: var(--space-3); }
.current-quote-plan-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(120px, 0.4fr) minmax(240px, 1.5fr) auto;
  align-items: center;
  gap: var(--space-4);
}
.current-quote-plan-row h3,
.current-quote-plan-row p { margin: 0; }
.current-quote-plan-row.focused { border-color: var(--color-accent); box-shadow: var(--shadow-md); }
.evidence-steps { display: grid; gap: var(--space-4); }
.evidence-steps .card { margin: 0; scroll-margin-top: 80px; }
.current-quote-error { max-width: 720px; margin: var(--space-10) auto; text-align: left; }

@media (max-width: 1023px) {
  .current-quote-status-grid,
  .current-quote-candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .current-quote-plan-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .current-quote-plan-row .btn { justify-self: start; }
}

.execution-result-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.execution-result-form { margin-bottom: 0; }
.execution-result-form h3 { margin-top: 0; color: var(--color-text-primary); }
.execution-result-form .combination-field-grid { margin-bottom: var(--space-3); }
.combination-metric-grid small { display: block; color: var(--color-text-muted); font-size: var(--text-xs); font-family: var(--font-sans); }

/* ---------- 固定场景A/B对比 ---------- */
.compare-back { display: flex; justify-content: flex-start; margin-bottom: var(--space-4); }
.compare-heading { max-width: 780px; margin-bottom: var(--space-6); }
.compare-heading h1 { margin-top: var(--space-1); }
.compare-section {
  min-width: 0;
  margin-bottom: var(--space-6);
  padding: var(--space-5);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-bg-secondary);
}
.compare-section > h2 { margin: var(--space-1) 0 var(--space-2); color: var(--color-text-primary); }
.compare-common { border-color: var(--color-accent); background: linear-gradient(135deg, var(--color-accent-subtle), var(--color-bg-secondary) 62%); }
.compare-condition-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-4) 0 0;
}
.compare-condition-grid div,
.compare-side-metrics div,
.compare-difference-counts div {
  min-width: 0;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.compare-condition-grid dt,
.compare-side-metrics dt,
.compare-difference-counts span { color: var(--color-text-muted); font-size: var(--text-xs); }
.compare-condition-grid dd,
.compare-side-metrics dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text-primary); }
.compare-side-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-4);
}
.compare-side {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-bg-primary);
}
.compare-side-a { border-top: 3px solid var(--color-accent); }
.compare-side-b { border-top: 3px solid var(--color-info); }
.compare-side-heading > span { color: var(--color-text-muted); font-size: var(--text-xs); font-weight: 700; }
.compare-side-heading h3 { margin: var(--space-1) 0; color: var(--color-text-primary); font-size: var(--text-lg); }
.compare-side-heading p { min-height: 3.4em; }
.compare-side-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0;
}
.compare-side-metrics dd { font-size: var(--text-lg); }
.compare-weights {
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-subtle);
}
.compare-weights > strong { color: var(--color-text-secondary); font-size: var(--text-sm); }
.compare-weights ul { display: grid; gap: var(--space-1); margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.compare-weights li { display: flex; justify-content: space-between; gap: var(--space-3); color: var(--color-text-secondary); }
.compare-difference-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0;
}
.compare-difference-counts span,
.compare-difference-counts strong { display: block; }
.compare-difference-counts strong { color: var(--color-text-primary); font-size: var(--text-lg); }
.compare-difference-counts small {
  display: block;
  margin-top: var(--space-1);
  color: var(--color-text-secondary);
  overflow-wrap: anywhere;
}
.compare-change-list { display: grid; gap: var(--space-4); }
.compare-change-card {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-bg-primary);
}
.compare-change-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.compare-change-card h3 { margin: var(--space-1) 0 0; color: var(--color-text-primary); font-size: var(--text-lg); }
.compare-reason-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}
.compare-reason-grid > section {
  min-width: 0;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-bg-tertiary);
}
.compare-status { display: flex; justify-content: space-between; gap: var(--space-3); color: var(--color-text-secondary); }
.compare-status strong { color: var(--color-text-primary); }
.compare-reason-grid ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.compare-reason-grid li { margin-bottom: var(--space-1); color: var(--color-text-secondary); overflow-wrap: anywhere; }
.compare-rank-sample {
  display: block;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}
.compare-context-note {
  margin: var(--space-2) 0 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border-subtle);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}
.compare-reason-missing,
.compare-evidence-missing { color: var(--color-text-muted); font-size: var(--text-sm); }
.compare-evidence-link { min-width: 96px; }
.compare-common-authors > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-text-secondary);
  cursor: pointer;
}
.compare-common-authors > summary:hover { color: var(--color-accent); }
.compare-common-authors ul,
.compare-evidence-guide ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-2);
  margin: var(--space-2) 0 0;
  padding: 0;
  list-style: none;
}
.compare-common-authors a,
.compare-evidence-guide a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--color-text-primary);
}
.compare-common-authors a:hover,
.compare-evidence-guide a:hover { color: var(--color-accent); }
.compare-footer-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.compare-unavailable { margin-top: var(--space-5); }

.skeleton { height: 132px; border-radius: var(--radius-lg); background: linear-gradient(90deg, var(--color-bg-secondary), var(--color-bg-tertiary), var(--color-bg-secondary)); background-size: 200% 100%; animation: sk 1.2s ease-in-out infinite; }
@keyframes sk { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
#result.busy { opacity: 0.6; }

.boxplot { display: block; margin: var(--space-2) 0; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-4); }
.dist { margin-bottom: var(--space-3); }
.dist .row { display: grid; grid-template-columns: 96px 1fr 52px; gap: var(--space-2); align-items: center; font-size: var(--text-sm); margin-bottom: var(--space-1); }
.dist .track { height: 10px; background: var(--color-bg-tertiary); border-radius: var(--radius-full); overflow: hidden; }
.dist .track > i { display: block; height: 100%; background: var(--color-info); }
.dist .track > i.target { background: var(--color-accent); }

footer.foot { color: var(--color-text-muted); font-size: var(--text-xs); padding: var(--space-8) var(--space-6); border-top: 1px solid var(--color-border-subtle); margin-top: var(--space-10); }

@media (max-width: 1023px) {
  .plan-layout { grid-template-columns: 1fr; }
  .combination-ledger { grid-template-columns: 1fr; }
  .combination-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .saved-plan-card { grid-template-columns: 1fr auto; }
  .saved-plan-card > dl { grid-column: 1 / -1; grid-row: 2; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .topbar {
    height: auto;
    min-height: 56px;
  }
  .topbar nav a { flex: 1 1 0; justify-content: center; }
  .topbar-with-batch {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    padding: var(--space-2) var(--space-6) 0;
    gap: var(--space-1) var(--space-4);
  }
  .topbar-with-batch nav { grid-column: 1 / -1; }
  .topbar-with-batch .batchinfo { grid-column: 2; grid-row: 1; align-self: center; }
  .filters,
  .combination-anchor-tabs { position: static; }
  .case-entry,
  .case-summary {
    grid-template-columns: 1fr;
    padding: var(--space-5);
  }
  .case-entry {
    grid-template-areas: "copy" "action" "details";
    gap: var(--space-3);
  }
  .case-entry-action { flex-direction: row; align-items: center; }
  .case-entry-action .btn { flex: 0 0 220px; }
  .case-entry-action .sub { text-align: left; }
  .case-conditions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brief-list-card { grid-template-columns: 1fr; }
  .combination-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .score-hero { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .wrap { padding: var(--space-4); }
  .topbar { height: auto; flex-direction: column; align-items: stretch; padding: var(--space-2) var(--space-4); gap: var(--space-1); }
  .topbar nav { justify-content: space-between; gap: 0; }
  .topbar nav a { flex: 1 1 0; justify-content: center; padding: var(--space-2); }
  .batchinfo { text-align: left; }
  .v2-subnav { justify-content: stretch; padding: 0 var(--space-4); }
  .v2-subnav a { flex: 1 1 0; justify-content: center; padding: 0 var(--space-2); }
  .filters { position: static; }
  .plan-card { min-width: 260px; }
  .case-entry, .case-summary { grid-template-columns: 1fr; padding: var(--space-4); }
  .case-entry { grid-template-areas: "copy" "action" "details"; }
  .case-entry { gap: var(--space-3); }
  .plain-term-pair, .term-translations { grid-template-columns: 1fr; }
  .case-entry-action, .case-summary-actions { flex-direction: row; flex-wrap: wrap; }
  .case-entry-action .btn, .case-disabled { flex: 1 0 100%; }
  .case-entry-action .sub { flex-basis: 100%; text-align: left; }
  .case-conditions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-result-guide { padding: var(--space-4); }
  .case-result-numbers { gap: var(--space-2); }
  .case-result-numbers div { padding: var(--space-2); }
  .case-result-numbers dd { font-size: var(--text-base); }
  .case-problem, .plain-term-pair p, .target-explanation,
  .current-conclusion, .representative-reason p, .term-translations dd { font-size: var(--text-base); }
  .reading-path .btn { padding: var(--space-2); }
  .case-result-links .btn { flex: 1 1 140px; }
  .case-compare-entry { align-items: stretch; flex-direction: column; }
  .case-compare-entry .btn { width: 100%; }
  .compare-section { padding: var(--space-4); }
  .compare-condition-grid,
  .compare-side-grid,
  .compare-reason-grid { grid-template-columns: 1fr; }
  .compare-side-heading p { min-height: 0; }
  .compare-side-metrics,
  .compare-difference-counts { gap: var(--space-1); }
  .compare-side-metrics dd,
  .compare-difference-counts strong { font-size: var(--text-base); }
  .compare-difference-counts small,
  .compare-rank-sample { font-size: var(--text-base); }
  .compare-change-card > header { align-items: stretch; flex-direction: column; }
  .compare-evidence-link { width: 100%; }
  .compare-heading .lead,
  .compare-section p,
  .compare-reason-grid li { font-size: var(--text-base); }
  .v2-entry,
  .brief-summary,
  .page-heading-actions,
  .brief-detail-heading,
  .section-heading-actions,
  .brief-list-card { align-items: stretch; flex-direction: column; grid-template-columns: 1fr; }
  .v2-entry,
  .brief-summary { flex-direction: column; }
  .v2-entry .btn,
  .brief-summary .btn,
  .page-heading-actions .btn,
  .brief-detail-heading > .btn,
  .section-heading-actions > .btn { width: 100%; }
  .brief-detail-actions,
  .score-page-heading,
  .score-results-heading,
  .score-result-header { align-items: stretch; flex-direction: column; }
  .brief-detail-actions .btn,
  .score-page-heading > .btn,
  .score-evidence-link { width: 100%; }
  .score-hero { grid-template-columns: 1fr; padding: var(--space-4); }
  .score-hero h2 { font-size: var(--text-xl); }
  .score-hero-stats,
  .score-definition-grid,
  .score-target-tabs,
  .score-controls,
  .score-toggle-groups,
  .score-profile-form,
  .score-run-meta dl,
  .score-reason-grid,
  .score-dimension-list { grid-template-columns: 1fr; }
  .score-profile-form { grid-column: auto; }
  .score-profile-status { grid-column: auto; }
  .score-profile-form button { width: 100%; }
  .score-pagination { width: 100%; justify-content: space-between; }
  .score-pagination .btn { flex: 1 1 0; padding: var(--space-2); }
  .score-result-header,
  .score-triplet,
  .score-reason-grid { padding-left: var(--space-4); padding-right: var(--space-4); }
  .score-data-notes,
  .score-result-difference,
  .score-breakdown { margin-left: var(--space-4); margin-right: var(--space-4); }
  .score-triplet { gap: var(--space-1); }
  .score-triplet div { padding: var(--space-2); }
  .score-triplet dd { font-size: var(--text-base); }
  .score-reason-grid section { padding: var(--space-3); }
  .score-dimension-meta,
  .score-fact dl { grid-template-columns: 1fr; }
  .score-definition-grid p,
  .score-target-tabs span,
  .score-result-identity p,
  .score-reason-grid p,
  .score-reason-grid li,
  .score-data-notes li,
  .score-data-notes p,
  .score-result-difference p,
  .score-no-facts,
  .score-suggestions li { font-size: var(--text-base); }
  .brief-form,
  .brief-overview-grid { grid-template-columns: 1fr; }
  .brief-span-2 { grid-column: auto; }
  .brief-card-facts,
  .brief-summary-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .candidate-option-grid { grid-template-columns: 1fr; max-height: 60vh; }
  .combination-page-heading,
  .combination-results-heading,
  .combination-form-heading,
  .combination-plan-card > header,
  .combination-conflict,
  .combination-creator-actions,
  .saved-plan-card { align-items: stretch; flex-direction: column; grid-template-columns: 1fr; }
  .combination-page-heading .brief-detail-actions,
  .combination-save-form,
  .combination-save-form button,
  .combination-form-heading button,
  .combination-conflict .btn,
  .saved-plan-card > .btn { width: 100%; }
  .combination-ledger { padding: var(--space-4); }
  .combination-ledger dl,
  .combination-field-grid,
  .combination-profile-grid,
  .combination-pick-grid,
  .combination-run-meta dl { grid-template-columns: 1fr; }
  .combination-span-2 { grid-column: auto; }
  .combination-fieldset,
  .combination-plan-card > header,
  .combination-creator-row { padding: var(--space-4); }
  .combination-field-note,
  .combination-state-card p,
  .combination-state-card li,
  .combination-results-heading p,
  .combination-plan-card header p,
  .combination-creator-identity p,
  .combination-creator-actions li,
  .combination-rejections li,
  .saved-plan-card p { font-size: var(--text-base); }
  .combination-anchor-tabs { position: static; }
  .combination-anchor-tabs a { padding: var(--space-2); }
  .combination-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .combination-metric-grid dd { font-size: var(--text-base); }
  .combination-creator-actions .btn { width: 100%; }
  .combination-rejections,
  .combination-score-explainer,
  .combination-run-meta { margin-left: var(--space-4); margin-right: var(--space-4); }
  .combination-score-explainer dl { grid-template-columns: 1fr; }
  .combination-rejections ul { columns: 1; }
  .saved-plan-card > dl { grid-column: auto; grid-row: auto; grid-template-columns: 1fr; }
  .current-quote-heading { align-items: stretch; flex-direction: column; }
  .current-quote-heading .btn { width: 100%; }
  .current-quote-choice,
  .current-quote-status-grid,
  .current-quote-candidate-grid,
  .current-quote-facts,
  .current-quote-plan-row { grid-template-columns: 1fr; }
  .current-quote-plan-row .btn { width: 100%; }
  .import-type-grid,
  .demo-creator-grid,
  .mapping-grid { grid-template-columns: 1fr; }
  .demo-import-card,
  .import-result-summary,
  .import-detail-heading,
  .import-job-card { align-items: stretch; flex-direction: column; grid-template-columns: 1fr; }
  .import-card-actions .btn,
  .import-upload-actions button,
  .import-upload-actions .btn,
  .demo-import-card button,
  .import-result-summary .btn { width: 100%; }
  .import-counts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .execution-result-form-grid { grid-template-columns: 1fr; }
  .data-heading-actions,
  .data-detail-heading,
  .verification-heading,
  .data-creator-card,
  .verification-cost-card { align-items: stretch; flex-direction: column; grid-template-columns: 1fr; }
  .data-heading-actions .btn,
  .data-detail-heading > .btn,
  .data-creator-card > .btn,
  .verification-preview-form button { width: 100%; }
  .routed-field-grid,
  .verification-cache-grid,
  .cost-summary-grid { grid-template-columns: 1fr; }
  .routed-meta { grid-template-columns: 1fr; }
  .verification-cost-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Public authentication shares the existing import card and design tokens. */
.import-login-form input[type="password"] {
  width: 100%; min-height: 44px; box-sizing: border-box;
  background: var(--color-bg-tertiary); color: var(--color-text-primary);
  border: 1px solid var(--color-border-default); border-radius: var(--radius-md);
  padding: var(--space-3); font: inherit;
  transition: border-color var(--duration-fast) var(--easing-default);
}
.import-login-form input[type="password"]:hover { border-color: var(--color-text-muted); }
.import-login-form input[type="password"]:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.import-login-form input { min-height: 44px; }
.public-login-links { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-5); }
.public-login-links a, .session-actions button { min-height: 44px; }
.session-actions { align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.session-identity { color: var(--color-text-secondary); font-size: var(--text-sm); }
@media (max-width: 767px) {
  .import-login-shell { padding-left: 0; padding-right: 0; }
  .import-login-card { padding-left: var(--space-5); padding-right: var(--space-5); min-width: 0; }
  .import-login-form input { font-size: var(--text-base); }
  .session-actions { flex-basis: 100%; }
}
