:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: #1b252f;
  background: #f5f6f7;
  font-synthesis: none;
  --canvas: #f5f6f7;
  --panel: #ffffff;
  --panel-muted: #f6f7f8;
  --ink: #1b252f;
  --muted: #697583;
  --border: #d9dee4;
  --border-strong: #c8d0d8;
  --navy: #0e2442;
  --navy-2: #17365f;
  --green: #426b62;
  --green-dark: #315a52;
  --green-soft: #edf3f1;
  --blue: #456985;
  --blue-soft: #edf2f5;
  --amber: #8a6b32;
  --amber-soft: #f7f3e9;
  --red: #b42318;
  --red-soft: #fef0ef;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
* { box-sizing: border-box; }
body { min-width: 320px; margin: 0; color: var(--ink); background: var(--canvas); font-size: 14px; line-height: 1.55; }
button, select, input { font: inherit; letter-spacing: 0; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 200px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 20px 14px; overflow-y: auto; border-right: 1px solid #d3dae3; background: #e9edf1; color: #24364b; }
.brand { display: flex; align-items: center; gap: 10px; padding: 0 0 22px; color: #24364b; }
.brand-mark { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #d4dce5; border-radius: 6px; background: #f9fbfd; color: #365675; font-size: 14px; font-weight: 760; }
.brand strong, .brand small { display: block; letter-spacing: 0; }
.brand small { margin-top: 2px; color: #6c7a89; font-size: 11px; }
.model-picker { display: grid; gap: 6px; padding: 0 0 18px; color: #6c7a89; font-size: 11px; }
.model-picker select { width: 100%; min-height: 32px; border: 1px solid #ccd4dc; border-radius: 4px; padding: 0 9px; background: #f8fafb; color: #24364b; font-size: 11px; }
#model-nav { display: grid; gap: 4px; overflow: auto; }
.nav-group { margin-top: 12px; padding: 4px; border-bottom: 1px solid #cbd5df; background: rgba(255,255,255,.26); color: #30465d; font-size: 12px; font-weight: 700; }
.nav-item { width: 100%; min-height: 34px; border: 1px solid transparent; border-radius: 4px; padding: 7px 9px; background: transparent; color: #24364b; text-align: left; cursor: pointer; }
.nav-item:hover { border-color: #d1d9e0; background: rgba(247,249,250,.72); }
.nav-item.is-active { border-color: #d1d9e0; border-left: 3px solid #587795; background: #f7f9fa; color: #24364b; font-weight: 680; }
.nav-item-child { padding-left: 21px; color: #52677b; font-size: 12px; }
.nav-item-child::first-letter { color: #7890a5; }
.sidebar-foot { margin-top: auto; display: flex; align-items: center; gap: 8px; padding: 14px 0 0; border-top: 1px solid #cbd5df; color: #6c7a89; font-size: 11px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #789d93; }
main { min-width: 0; width: min(1280px, calc(100% - 40px)); margin: 0 auto; padding: 24px 0 48px; }
.page-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin: 0 0 20px; }
.page-header p { margin: 0 0 5px; color: var(--muted); font-size: 13px; }
h1 { margin: 0; color: #24364b; font-size: 25px; font-weight: 690; line-height: 1.25; letter-spacing: 0; }
.header-meta { display: flex; gap: 10px; align-items: center; min-width: 0; margin-top: 9px; color: var(--muted); font-size: 12px; }
.header-meta span { min-width: 0; overflow-wrap: anywhere; }
#model-version { overflow-wrap: anywhere; }
.status-tag, .state-label, .source-label { display: inline-flex; align-items: center; min-height: 24px; border-radius: 4px; padding: 3px 8px; font-size: 12px; font-weight: 650; }
.status-tag { background: #e9eff4; color: var(--blue); }
.header-actions button { min-height: 36px; border: 1px solid var(--border); border-radius: 6px; padding: 0 12px; background: #fff; color: #24323e; white-space: nowrap; cursor: pointer; }
.model-workbench { display: grid; gap: 18px; }
.summary-section, .page-section { margin: 0; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 4px; background: #fff; }
.section-heading { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 5px 14px; border-bottom: 1px solid var(--border); }
.summary-section .section-heading { border-bottom-color: #7893ad; background: #e3ebf3; }
.page-section .section-heading { background: #eef3f6; }
.section-heading h2 { margin: 0; color: #263b4d; font-size: 14px; font-weight: 650; line-height: 1.35; letter-spacing: 0; }
.section-heading p { margin: 1px 0 0; color: var(--muted); font-size: 10px; }
.source-label { background: #edf2f5; color: #526371; }
.heading-actions { display: flex; align-items: center; gap: 8px; }
.heading-actions button { min-height: 28px; border: 1px solid #ccd7e2; border-radius: 4px; padding: 0 9px; color: #43566d; background: #fff; cursor: pointer; }
.state-label { background: #f0f2f4; color: #5d6872; }
.state-label.is-available { background: #e7f1ed; color: var(--green); }
.state-label.is-pending { background: #f6efdf; color: var(--amber); }
.state-label.is-disabled { background: #f4e9e7; color: var(--red); }
.metric-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-strip article { min-height: 72px; padding: 13px 16px 12px; border-top: 3px solid #9aaec0; border-right: 1px solid var(--border); }
.metric-strip article:nth-child(1) { border-top-color: #587795; }
.metric-strip article:nth-child(2) { border-top-color: #6c8da8; }
.metric-strip article:nth-child(3) { border-top-color: #789d93; }
.metric-strip article:nth-child(4) { border-top-color: #4d7d72; }
.metric-strip article:last-child { border-right: 0; }
.metric-strip span, .settlement-grid span { display: block; color: #34445d; font-size: 12px; font-weight: 650; }
.metric-strip strong { display: block; margin-top: 5px; color: #244f6b; font-family: var(--mono); font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.metric-strip article:nth-child(3) strong { color: var(--green); }
.metric-strip article:nth-child(4) strong { color: var(--blue); }
.scope-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.scope-grid div { min-height: 74px; padding: 14px 18px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.scope-grid div:nth-child(4n) { border-right: 0; }
.scope-grid dt { color: var(--muted); font-size: 12px; }
.scope-grid dd { margin: 7px 0 0; font-size: 14px; font-weight: 620; overflow-wrap: anywhere; }
.scope-grid dd.is-missing { color: var(--amber); font-weight: 550; }
.actual-ltv-observation { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border-strong); background: #f4f8f6; }
.actual-ltv-observation > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--border); }
.actual-ltv-observation > div:last-child { border-right: 0; }
.actual-ltv-observation span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.actual-ltv-observation strong { display: block; color: #244e43; font-size: 13px; overflow-wrap: anywhere; }
.fit-recommendation { display: grid; grid-template-columns: .85fr 1.3fr 1.65fr .8fr; border-top: 1px solid var(--border-strong); background: #f7f9fb; }
.fit-recommendation > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--border); }
.fit-recommendation > div:last-child { border-right: 0; }
.fit-recommendation span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.fit-recommendation strong, .fit-recommendation code, .fit-recommendation p { display: block; margin: 0; color: #30465d; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.fit-recommendation code { color: #244f6b; font-family: var(--mono); }
.fit-validation strong { color: var(--green-dark); }
.acquisition-inputs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 14px; border-bottom: 1px solid var(--border); background: #fbfcfd; }
.acquisition-inputs label { min-width: 0; }
.acquisition-inputs label > span { display: block; margin-bottom: 5px; color: #52627a; font-size: 11px; font-weight: 650; }
.acquisition-inputs input { width: 100%; height: 36px; min-width: 0; border: 1px solid #c4d0db; border-radius: 4px; padding: 0 10px; outline: none; color: #17365f; background: #fff; font-family: var(--mono); font-size: 12px; text-align: right; }
.acquisition-inputs input:focus { border-color: #6d879f; box-shadow: 0 0 0 2px #dbe5ed; }
.input-with-unit { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; min-width: 0; border: 1px solid #c4d0db; border-radius: 4px; background: #fff; }
.input-with-unit:focus-within { border-color: #6d879f; box-shadow: 0 0 0 2px #dbe5ed; }
.input-with-unit input { border: 0; box-shadow: none; }
.input-with-unit input:focus { box-shadow: none; }
.input-with-unit i { padding: 0 10px; color: var(--muted); font-family: var(--mono); font-size: 11px; font-style: normal; }
.input-with-unit input + i { order: 2; }
.acquisition-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid var(--border); }
.acquisition-summary > div { min-height: 82px; padding: 12px 16px; border-right: 1px solid var(--border); }
.acquisition-summary > div:last-child { border-right: 0; }
.acquisition-summary span, .acquisition-summary strong, .acquisition-summary small { display: block; }
.acquisition-summary span { color: var(--muted); font-size: 10px; }
.acquisition-summary strong { margin-top: 3px; color: #244f6b; font-family: var(--mono); font-size: 18px; }
.acquisition-summary small { margin-top: 2px; color: #7a8692; font-size: 9px; }
.acquisition-table-wrap { max-height: none; overflow-x: auto; }
.acquisition-table-wrap table { min-width: 1120px; }
.acquisition-table-wrap .focus-horizon td { background: #eef4ff; font-weight: 650; }
.maturity-layout { display: grid; grid-template-columns: minmax(420px, 1.12fr) minmax(420px, .88fr); }
.curve-model-summary { display: grid; grid-template-columns: 1.4fr .8fr .8fr; border-bottom: 1px solid var(--border); background: #f8fafc; }
.curve-model-summary > div { min-height: 62px; padding: 10px 16px; border-right: 1px solid var(--border); }
.curve-model-summary > div:last-child { border-right: 0; }
.curve-model-summary span { display: block; color: var(--muted); font-size: 11px; }
.curve-model-summary strong { display: block; margin-top: 3px; color: #17365f; font-family: var(--mono); font-size: 18px; }
.curve-comparison-controls { min-height: 54px; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, .8fr) auto auto; gap: 10px; align-items: center; padding: 8px 14px; border-bottom: 1px solid var(--border); background: #fbfcfd; }
.curve-comparison-controls strong, .curve-comparison-controls small { display: block; }
.curve-comparison-controls strong { color: #30465d; font-size: 12px; }
.curve-comparison-controls small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.curve-comparison-controls label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; color: var(--muted); font-size: 10px; }
.curve-comparison-controls select { min-width: 0; height: 32px; border: 1px solid #ccd4dc; border-radius: 4px; padding: 0 8px; color: #30465d; background: #fff; font-size: 11px; }
.curve-comparison-controls button { min-height: 32px; border: 1px solid #ccd7e2; border-radius: 4px; padding: 0 10px; color: #43566d; background: #fff; cursor: pointer; }
.curve-legend { display: flex; flex-wrap: wrap; gap: 18px; padding: 8px 16px; border-bottom: 1px solid var(--border); color: #5e6c79; font-size: 11px; }
.curve-legend span { display: inline-flex; align-items: center; gap: 7px; }
.curve-legend [hidden] { display: none; }
.curve-legend i { display: inline-block; }
.train-dot, .holdout-dot { width: 9px; height: 9px; border-radius: 50%; }
.train-dot { background: var(--blue); }
.holdout-dot { background: #3f746c; }
.fit-line, .comparison-line { width: 22px; height: 0; border-top: 2px solid #35526f; }
.comparison-line { border-top-color: #c75a35; border-top-style: dashed; }
.chart-wrap { min-height: 310px; display: grid; place-items: center; padding: 18px; border-right: 1px solid var(--border); }
#renewal-chart { width: 100%; height: auto; }
.chart-grid { stroke: #e7ebee; stroke-width: 1; }
.chart-axis { fill: #76838d; font-size: 11px; }
.chart-line { fill: none; stroke: var(--blue); stroke-width: 2.5; }
.chart-point { fill: #fff; stroke: var(--blue); stroke-width: 2.5; }
.holdout-point { fill: #fff; stroke: #3f746c; stroke-width: 2.5; }
.comparison-chart-line { fill: none; stroke: #c75a35; stroke-width: 2; stroke-dasharray: 6 4; }
.table-wrap { max-height: 310px; overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { position: sticky; top: 0; z-index: 1; background: #f4f6f7; color: #52606c; font-weight: 650; text-align: left; }
th, td { padding: 11px 13px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.number { text-align: right; font-variant-numeric: tabular-nums; }
.cell-state { color: var(--green); }
.cell-state.is-pending { color: var(--amber); }
.parameter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.parameter-group { min-width: 0; padding: 14px 16px 16px; border-right: 1px solid var(--border); background: #fff; }
.parameter-group:nth-child(2) { background: #fbfcfd; }
.parameter-group:last-child { border-right: 0; }
.parameter-group > h3 { margin: 0 0 10px; padding: 0 0 8px; border-bottom: 1px solid #dfe5eb; color: #30465d; font-size: 12px; font-weight: 700; }
.parameter-item { min-height: 34px; display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 12px; align-items: center; margin-bottom: 5px; }
.parameter-item:last-child { margin-bottom: 0; }
.parameter-item label { min-width: 0; }
.parameter-item label span { display: block; color: #52627a; font-size: 12px; font-weight: 540; }
.parameter-item label small { display: block; margin-top: 1px; color: var(--muted); font-size: 9px; line-height: 1.25; overflow-wrap: anywhere; }
.parameter-item input { width: 100%; min-height: 32px; border: 1px solid #c4d0db; border-radius: 4px; padding: 0 9px; background: #f5f8fb; color: #17365f; font-family: var(--mono); font-size: 12px; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums; }
.derived-parameter-item { margin-top: 8px; padding-top: 8px; border-top: 1px solid #dfe5eb; }
.derived-parameter-item output { display: grid; place-items: center end; min-height: 32px; padding: 0 9px; border: 1px solid #bfd1c9; border-radius: 4px; color: var(--green-dark); background: var(--green-soft); font-family: var(--mono); font-size: 12px; font-weight: 750; font-variant-numeric: tabular-nums; }
.parameter-group-missing { margin: 0; padding: 18px; color: var(--amber); font-size: 12px; }
.evidence-accordion { display: grid; }
.evidence-details { border-bottom: 1px solid var(--border); background: #fff; }
.evidence-details:last-child { border-bottom: 0; }
.evidence-details summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 8px 14px; color: #263b4d; cursor: pointer; list-style: none; }
.evidence-details summary::-webkit-details-marker { display: none; }
.evidence-details summary::after { content: "+"; display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 auto; border: 1px solid #ccd7e2; border-radius: 4px; color: #43566d; background: #fff; font-size: 16px; }
.evidence-details[open] summary::after { content: "−"; }
.evidence-details summary > span:first-child { min-width: 0; margin-right: auto; }
.evidence-details summary strong, .evidence-details summary small { display: block; }
.evidence-details summary strong { font-size: 13px; }
.evidence-details summary small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.evidence-detail-body { border-top: 1px solid var(--border); background: #fbfcfd; }
.evidence-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.evidence-process li { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; padding: 14px; border-right: 1px solid var(--border); }
.evidence-process li:last-child { border-right: 0; }
.process-marker { display: grid; place-items: center; align-self: start; width: 26px; height: 26px; border: 1px solid #c7d5e2; border-radius: 50%; color: #456985; background: #edf3f8; font-family: var(--mono); font-size: 9px; font-weight: 700; }
.evidence-process strong { display: block; margin: 3px 0 6px; color: #30465d; font-size: 12px; }
.evidence-process p { margin: 0; color: #5c6975; font-size: 11px; line-height: 1.65; }
.addon-evidence-body { background: #fff; }
.addon-meta { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 12px 16px; border-bottom: 1px solid var(--border); background: #f8faf9; color: #4f5f5a; font-size: 11px; }
.addon-meta span { display: inline-flex; gap: 7px; }
.addon-meta b { color: #30465d; }
.addon-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid var(--border); }
.addon-summary > div { min-height: 72px; padding: 12px 16px; border-right: 1px solid var(--border); }
.addon-summary > div:last-child { border-right: 0; }
.addon-summary span, .addon-summary strong { display: block; }
.addon-summary span { color: var(--muted); font-size: 11px; }
.addon-summary strong { margin-top: 5px; color: #30465d; font-family: var(--mono); font-size: 17px; }
.addon-summary .is-complete { color: var(--green-dark); font-family: inherit; font-size: 14px; }
.addon-summary .is-incomplete { color: var(--amber); font-family: inherit; font-size: 14px; }
.addon-table-wrap { overflow-x: auto; }
.addon-data-table { min-width: 980px; }
.addon-data-table th { background: #eef3f1; }
.addon-data-table td { font-family: var(--mono); }
.addon-data-table td:first-child, .addon-data-table td:nth-child(2) { font-family: inherit; font-weight: 650; }
.addon-usage { display: inline-flex; padding: 3px 7px; border-radius: 4px; color: #53667a; background: #edf1f5; font-size: 10px; }
.addon-usage.is-mature { color: var(--green-dark); background: var(--green-soft); }
.addon-recalc-title { padding: 10px 16px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: #30465d; background: #f3f6f8; font-size: 12px; font-weight: 700; }
.addon-recalc-table { min-width: 720px; }
.addon-recalc-table td { white-space: normal; }
.addon-template-empty { padding: 20px; color: #596874; }
.addon-template-empty > strong { color: #30465d; font-size: 13px; }
.addon-template-empty p { max-width: 760px; margin: 6px 0 14px; font-size: 11px; }
.addon-template-empty div { display: grid; grid-template-columns: 110px minmax(0, 1fr); max-width: 760px; padding: 8px 0; border-top: 1px solid var(--border); font-size: 11px; }
.addon-template-empty span { color: var(--muted); }
.empty-state { display: grid; justify-items: center; gap: 6px; padding: 38px 20px; color: var(--muted); text-align: center; }
.empty-state strong { color: #374653; font-size: 14px; }
.empty-state span { font-size: 12px; }
.detail-table-wrap { max-height: none; }
.detail-table-wrap .focus-horizon td { background: #eef4ff; font-weight: 650; }
.scenario-error { margin: 0; padding: 10px 14px; border-top: 1px solid #f1c5c1; color: var(--red); background: var(--red-soft); font-size: 11px; }
.settlement-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 12px; }
.settlement-comparison.is-single-stage { grid-template-columns: minmax(0, 1fr); }
.metric-strip.is-three-stage { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.settlement-tax-block { min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 4px; background: #fff; }
.settlement-tax-heading { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 12px; border-bottom: 1px solid var(--border); }
.blue-tax-block .settlement-tax-heading { border-bottom-color: #c7d5e2; background: #edf3f8; }
.green-tax-block .settlement-tax-heading { border-bottom-color: #c9d9d3; background: #eef5f2; }
.settlement-tax-heading h3 { margin: 0; color: #263b4d; font-size: 13px; font-weight: 680; }
.settlement-tax-heading small { color: var(--muted); font-size: 10px; }
.settlement-table-wrap { overflow-x: auto; }
.settlement-table { min-width: 430px; table-layout: fixed; }
.settlement-table th, .settlement-table td { height: 36px; padding: 7px 11px; }
.settlement-table th { color: #41516b; background: #eef2f7; font-size: 11px; }
.settlement-table td { font-family: var(--mono); font-size: 12px; }
.settlement-table th:first-child, .settlement-table td:first-child { width: 22%; font-family: inherit; text-align: left; }
.blue-tax-block .total-column { color: #244f6b; background: #edf3f8; font-weight: 700; }
.green-tax-block .total-column { color: var(--green-dark); background: #eef5f2; font-weight: 700; }
.settlement-table .focus-horizon td { background: #eef4ff; }
.settlement-table .focus-horizon .total-column { color: var(--green-dark); }
.lineage-layout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lineage-layout > div { padding: 18px; border-right: 1px solid var(--border); }
.lineage-layout > div:last-child { border-right: 0; }
.lineage-layout h3 { margin: 0 0 10px; font-size: 13px; }
.lineage-layout ul, .lineage-layout ol { margin: 0; padding-left: 18px; color: #4f5d69; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.version-workbench { border-top: 1px solid var(--border); }
.candidate-workbench { border-top: 1px solid var(--border); background: #fbfcfd; }
.candidate-heading { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 18px; cursor: pointer; list-style: none; }
.candidate-heading::-webkit-details-marker { display: none; }
.candidate-heading:hover { background: #f7f9fb; }
.candidate-heading h3 { margin: 0; color: #2b3d4e; font-size: 13px; font-weight: 670; }
.candidate-heading p { margin: 1px 0 0; color: var(--muted); font-size: 10px; }
.candidate-heading-meta { display: flex; align-items: center; gap: 12px; color: #5b6b79; font-size: 11px; }
.candidate-heading-meta i { width: 8px; height: 8px; border-right: 1.5px solid #6d7b88; border-bottom: 1.5px solid #6d7b88; transform: rotate(45deg); transition: transform .15s ease; }
.candidate-workbench[open] .candidate-heading-meta i { transform: rotate(225deg); }
.candidate-body { padding: 12px 18px 14px; border-top: 1px solid var(--border); background: #f7f9fb; }
.candidate-fields { display: grid; grid-template-columns: minmax(180px, .72fr) minmax(280px, 1.28fr) auto; gap: 10px; align-items: end; }
.candidate-fields label, .candidate-actions label { min-width: 0; }
.candidate-fields label span, .candidate-actions label span { display: block; margin-bottom: 4px; color: #536170; font-size: 10px; font-weight: 650; }
.candidate-fields input, .candidate-actions select { width: 100%; height: 34px; border: 1px solid #cbd3dc; border-radius: 4px; padding: 0 9px; outline: none; background: #fff; color: #293b4c; font-size: 11px; }
.candidate-fields input:focus, .candidate-actions select:focus { border-color: #6d879f; box-shadow: 0 0 0 2px #dbe5ed; }
.candidate-fields button, .candidate-actions button { min-height: 34px; border: 1px solid #c7d0d9; border-radius: 4px; padding: 0 11px; color: #43566d; background: #fff; font-size: 11px; font-weight: 620; cursor: pointer; }
.candidate-fields button:hover, .candidate-actions button:hover { background: #f3f6f8; }
.candidate-fields .candidate-primary { border-color: #496b85; background: #496b85; color: #fff; }
.candidate-fields .candidate-primary:hover { background: #3d5f79; }
.candidate-actions { display: grid; grid-template-columns: minmax(300px, 1fr) auto auto; align-items: end; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #e1e6eb; }
.candidate-actions .candidate-delete { border-color: transparent; background: transparent; color: #8d514b; }
.candidate-actions .candidate-delete:hover { background: #f8ecea; }
.candidate-detail { min-height: 15px; margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.version-compare-controls { display: grid; grid-template-columns: auto minmax(280px, 1fr) auto; align-items: center; gap: 12px; padding: 12px 18px; background: #f7f9fb; }
.version-compare-controls label { color: #435365; font-size: 11px; font-weight: 700; }
.version-compare-controls select { min-width: 0; height: 34px; border: 1px solid var(--border-strong); border-radius: 4px; padding: 0 10px; background: #fff; color: #293b4c; }
.version-diff-wrap { overflow-x: auto; }
.version-diff-table { min-width: 720px; }
.version-diff-table th { background: #eef2f6; }
.version-diff-table td:first-child { font-weight: 650; }
.version-diff-table .is-positive { color: var(--green-dark); }
.version-diff-table .is-negative { color: var(--red); }
#toast { position: fixed; right: 20px; bottom: 20px; display: none; border-radius: 6px; padding: 10px 14px; background: #17212b; color: #fff; font-size: 12px; box-shadow: 0 8px 24px #17212b33; }
#toast.is-visible { display: block; }
.header-actions { display: flex; align-items: center; gap: 8px; }
.header-link { display: inline-flex; align-items: center; min-height: 34px; border: 1px solid #b9c8d5; border-radius: 4px; padding: 0 11px; color: #365a74; background: #edf3f8; font-size: 11px; font-weight: 650; text-decoration: none; }
.header-link:hover { background: #e2ebf2; }
@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 210px minmax(0, 1fr); }
  .metric-strip, .scope-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-strip article:nth-child(2) { border-right: 0; }
  .metric-strip article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .scope-grid div:nth-child(2n) { border-right: 0; }
  .maturity-layout { grid-template-columns: 1fr; }
  .chart-wrap { border-right: 0; border-bottom: 1px solid var(--border); }
  .parameter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .parameter-group:nth-child(2n) { border-right: 0; }
  .parameter-group:last-child { border-top: 1px solid var(--border); }
  .evidence-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curve-comparison-controls { grid-template-columns: 1fr 1fr; }
  .fit-recommendation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .actual-ltv-observation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .acquisition-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .acquisition-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fit-recommendation > div:nth-child(2) { border-right: 0; }
  .fit-recommendation > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .candidate-fields { grid-template-columns: 1fr 1fr; }
  .candidate-fields button { grid-column: 1 / -1; }
  .candidate-actions { grid-template-columns: minmax(220px, 1fr) auto auto; }
  .addon-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .addon-summary > div:nth-child(2n) { border-right: 0; }
  .evidence-process li:nth-child(2n) { border-right: 0; }
  .evidence-process li:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; padding: 14px; }
  .candidate-fields, .candidate-actions { grid-template-columns: 1fr; }
  .candidate-fields button { width: 100%; }
  .brand { padding-bottom: 12px; }
  #model-nav, .sidebar-foot { display: none; }
  .model-picker { padding-bottom: 0; }
  main { padding: 16px 12px 36px; }
  .page-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
  .header-meta { flex-wrap: wrap; }
  h1 { font-size: 21px; }
  .metric-strip, .scope-grid, .parameter-grid, .lineage-layout { grid-template-columns: 1fr; }
  .metric-strip article, .scope-grid div, .lineage-layout > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .settlement-comparison { grid-template-columns: 1fr; }
  .evidence-process { grid-template-columns: 1fr; }
  .curve-comparison-controls { grid-template-columns: 1fr; }
  .fit-recommendation { grid-template-columns: 1fr; }
  .actual-ltv-observation { grid-template-columns: 1fr; }
  .acquisition-inputs, .acquisition-summary { grid-template-columns: 1fr; }
  .acquisition-summary > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .actual-ltv-observation > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .fit-recommendation > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .addon-summary { grid-template-columns: 1fr; }
  .addon-summary > div { border-right: 0; }
  .evidence-process li { border-right: 0; border-bottom: 1px solid var(--border); }
  .evidence-process li:last-child { border-bottom: 0; }
  .parameter-group { border-right: 0; border-top: 1px solid var(--border); }
  .version-compare-controls { grid-template-columns: 1fr; }
  .parameter-group:first-child { border-top: 0; }
  .metric-strip article { min-height: 88px; padding: 15px 17px; }
  .metric-strip strong { margin-top: 8px; font-size: 22px; }
  .parameter-item { grid-template-columns: minmax(0, 1fr) 112px; }
  .maturity-layout { display: block; }
  .chart-wrap { min-height: 220px; }
  th, td { padding: 9px 10px; }
}
