/* v2 components: components.css plus the audit's corrections and the new advisor-screen parts. */
@import url("components.css");
body { line-height: 1.43; background: var(--bg-secondary); }
/* Product headings: Geist 600, as Enter's own app title (D4). The serif stays on the letter and marketing */ h1, h2, h3 { font-family: var(--font-body); font-weight: 600; letter-spacing: -.25px; }
h1 { font-size: var(--size-20); letter-spacing: -.25px; } h2 { font-size: var(--size-16); } h3 { font-size: var(--size-14); }
.secondary { color: var(--text-secondary); font-size: var(--size-13); }
.num { font-variant-numeric: tabular-nums; }
/* Controls are exactly 40 px (D1); uppercase only on the primary button (U4) */ .btn { height: var(--control-height); min-height: 0; padding: 0 var(--space-4); line-height: 17.36px; white-space: nowrap; }
.btn-secondary, .btn-ghost, .btn-small { text-transform: none; }
.btn-small { height: 1.5rem; padding: 0 var(--space-2); border-radius: var(--radius-4); font-size: var(--size-13); }
.btn-primary:disabled, .btn-secondary:disabled { opacity: 1; background: var(--neutral-00); color: var(--text-secondary); border-color: transparent; }
.btn[aria-pressed="true"] { background: var(--neutral-90); color: var(--white); }
.input { height: var(--control-height); min-height: 0; padding: 0 var(--space-3); line-height: 20px; border-color: var(--stroke-input); }
textarea.input { height: auto; padding-block: var(--space-2); resize: vertical; }
.input.has-error, .input[aria-invalid="true"] { border-color: var(--text-critical); }
.field-error { font-size: var(--size-13); }
.check input { flex: none; width: 20px; height: 20px; margin: 2px; }
/* One meaning per colour, with a glyph so state survives without colour (U6) */ .chip { font-size: var(--size-13); line-height: 18px; }
.chip::before { width: auto; height: auto; background: none; content: "·"; font-weight: 600; }
.chip-ok::before { content: "✓"; } .chip-warn::before { content: "!"; } .chip-error::before { content: "×"; } .chip-info::before { content: "◇"; }
/* The hatch marks fiction in grey, so it no longer shares a hue with the primary action or XP's yellow (D3, L2) */ .ilu { background: repeating-linear-gradient(135deg, #0000000d 0 3px, #00000021 3px 5px); }
.proto-tag { padding: 2px var(--space-2); font-size: var(--size-12); letter-spacing: var(--ls-plus-2); white-space: nowrap; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.skip { position: absolute; left: -999px; z-index: 30; padding: var(--space-2) var(--space-3); background: var(--white); } .skip:focus { left: var(--space-2); top: var(--space-2); }
/* Figure with a trail: looks like a number, behaves like a button */ .fig { padding: 0; border: 0; font: inherit; color: inherit; cursor: pointer; border-bottom: 1px dotted currentColor; }
.fig:hover { background: var(--hover); }
/* Queue rail */ .filter { display: flex; justify-content: space-between; width: 100%; padding: var(--space-1) var(--space-2); min-height: 1.75rem; border: 0; border-radius: var(--radius-4); font: inherit; color: inherit; background: none; cursor: pointer; text-align: left; } .filter:hover { background: var(--hover); } .filter[aria-pressed="true"] { background: var(--neutral-90); color: var(--white); }
.rail-row { display: grid; grid-template-columns: 1fr auto; gap: 2px var(--space-2); min-height: var(--row-height); padding: var(--space-2) var(--space-3); text-decoration: none; border-bottom: 1px solid var(--stroke); } .rail-row:hover { background: var(--hover); } .rail-row[aria-current] { background: var(--white); box-shadow: inset 2px 0 0 var(--neutral-90); } .rail-row .who { font-weight: 500; } .rail-row .who small { font-size: var(--size-13); font-weight: 400; color: var(--text-secondary); }
/* Popover, toast and progress steps */ .popover { position: fixed; z-index: 20; width: min(20rem, calc(100vw - 1rem)); display: grid; gap: var(--space-2); padding: var(--space-4); background: var(--white); border: 1px solid var(--stroke-strong); border-radius: var(--radius-8); box-shadow: var(--shadow-float); } .popover dl { display: grid; grid-template-columns: auto 1fr; gap: var(--space-1) var(--space-3); margin: 0; } .popover dt { color: var(--text-secondary); } .popover dd { margin: 0; }
.toast { position: fixed; z-index: 25; left: 50%; bottom: var(--space-4); transform: translateX(-50%); display: flex; align-items: center; gap: var(--space-3); max-width: calc(100vw - 1rem); padding: var(--space-2) var(--space-4); border-radius: var(--radius-8); color: var(--white); background: var(--neutral-90); } .toast button { padding: var(--space-1) var(--space-2); border: 1px solid var(--white-64); border-radius: var(--radius-4); font: inherit; color: inherit; background: none; cursor: pointer; }
.steps-live { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; } .steps-live li { display: flex; gap: var(--space-2); color: var(--text-secondary); } .steps-live li::before { content: "○"; width: 1em; } .steps-live li.done { color: var(--text); } .steps-live li.done::before { content: "✓"; } .steps-live li.now { color: var(--text); font-weight: 500; } .steps-live li.now::before { content: "●"; }
/* Phone: 44 px for primary actions (X6) */
@media (max-width: 960px) {
  .btn, .btn-small { height: 2.75rem; }
  .filter, .rail-row { min-height: 2.75rem; }
}
