/* CreditCompass — project identity: professional fintech, cool neutrals, navy/blue. */
:root {
  --bg: #f5f6f8;
  --surface: #ffffff;
  --surface-2: #f0f2f5;
  --surface-3: #e3e7ec;
  --border: #e1e5ea;
  --border-strong: #c7cdd5;
  --text: #121a24;
  --text-muted: #4f5b6a;
  --text-faint: #8691a0;
  --accent: #12355b;
  --accent-hover: #0c2744;
  --accent-soft: #e5edf6;
  --blue: #2563c9;
  --risk: #b4321f;
}
.page-title { font-weight: 600; letter-spacing: -0.025em; }
.scope-note { margin-top: var(--sp-5); max-width: 82ch; }
.grow { flex: 1 1 220px; }
.check { gap: 8px; cursor: pointer; }

.assess-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr); gap: var(--sp-5); align-items: start; }
.result-panel { position: sticky; top: calc(var(--header-h) + 16px); }
@media (max-width: 980px) { .assess-grid { grid-template-columns: minmax(0, 1fr); } .result-panel { position: static; } }

.form-section { padding: var(--sp-5); border-bottom: 1px solid var(--border); }
.form-section legend {
  float: left; width: 100%; margin-bottom: var(--sp-4);
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted);
}
.form-grid { clear: both; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-5); }
@media (max-width: 600px) { .form-grid { grid-template-columns: minmax(0, 1fr); } .form-section { padding: var(--sp-4); } }
.field-code { font-family: var(--font-mono); font-size: 10.5px; color: var(--text-faint); font-weight: 400; }
.field-warn { font-size: var(--fs-xs); color: var(--warn); }
.field-warn:empty { display: none; }
.lock-toggle { border: 0; background: none; padding: 0; color: var(--blue); font-size: var(--fs-xs); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.form-actions { display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-5); flex-wrap: wrap; }

/* Result */
.prob-figure { display: flex; align-items: baseline; gap: 10px; }
.prob-figure b { font-size: 52px; font-weight: 600; letter-spacing: -0.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.prob-figure span { color: var(--text-muted); font-size: var(--fs-sm); }
.scale { position: relative; margin: 26px 0 30px; }
.scale-track { height: 12px; border-radius: 999px; background: linear-gradient(90deg, #dfe8f2 0%, #e9eef4 60%, #f3dcd6 100%); border: 1px solid var(--border); }
.scale-marker { position: absolute; top: -6px; width: 3px; height: 24px; background: var(--text); border-radius: 2px; transform: translateX(-50%); transition: left .5s cubic-bezier(.2,.7,.2,1); }
.scale-threshold { position: absolute; top: -4px; height: 20px; border-left: 2px dashed var(--risk); }
.scale-threshold span { position: absolute; top: -18px; left: 4px; font-family: var(--font-mono); font-size: 10px; color: var(--risk); white-space: nowrap; }
.scale-ticks { display: flex; justify-content: space-between; margin-top: 6px; font-family: var(--font-mono); font-size: 10px; color: var(--text-faint); }
.verdict-row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.verdict-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: var(--radius-md); font-weight: 600; font-size: var(--fs-sm); }
.verdict-chip.low { background: var(--accent-soft); color: var(--accent); }
.verdict-chip.high { background: var(--err-soft); color: var(--risk); }
.context-box { padding: var(--sp-3) var(--sp-4); background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md); font-size: var(--fs-sm); }
.context-box strong { font-variant-numeric: tabular-nums; }

/* What-if */
.whatif-controls { align-items: flex-end; margin-bottom: var(--sp-5); }
.whatif-out { min-height: 220px; }
.whatif-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
@media (max-width: 900px) { .whatif-grid { grid-template-columns: minmax(0, 1fr); } }

/* Evaluation */
.eval-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-5); margin-top: var(--sp-5); }
.eval-grid .span-all { grid-column: 1 / -1; }
@media (max-width: 1000px) { .eval-grid { grid-template-columns: minmax(0, 1fr); } }
.thr-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
@media (max-width: 820px) { .thr-layout { grid-template-columns: minmax(0, 1fr); } }
.range { width: 100%; accent-color: var(--accent); }
.cm2 { display: grid; grid-template-columns: auto 1fr 1fr; gap: 3px; font-size: var(--fs-xs); }
.cm2 > div { padding: 10px; text-align: center; border-radius: 4px; }
.cm2 .h { color: var(--text-muted); background: none; padding: 4px; }
.cm2 .c { font-family: var(--font-mono); font-size: var(--fs-sm); background: var(--surface-2); }
.cm2 .c.ok { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.cm2 .c.bad { background: var(--err-soft); color: var(--risk); }
.cm2 .c small { display: block; font-family: var(--font-sans); font-size: 10px; color: var(--text-muted); font-weight: 400; }

.card-grid { align-items: start; }
.pipe { margin: 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 10px; font-size: var(--fs-sm); color: var(--text-muted); }
.pipe b { color: var(--text); font-weight: 600; margin-right: 6px; }
.notes { margin: 0; padding-left: 1.2em; font-size: var(--fs-sm); color: var(--text-muted); display: flex; flex-direction: column; gap: 10px; }
.notes strong { color: var(--text); }
.repro { margin-top: var(--sp-5); }
