/* Intake owns only these surfaces. Shared tokens, shell and figure libraries stay unchanged. */
[data-v31-root="intake"] { color: var(--ink); font: var(--fs-body)/var(--lh-body) var(--font-sans); }
[data-v31-root="intake"] [hidden] { display: none !important; }
.vi-shell { max-width: 1120px; margin: var(--s-6) auto; padding: var(--s-6); background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-xl); }
.vi-top, .vi-progress-summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap; }
.vi-eyebrow { color: var(--accent-ink); font-size: var(--fs-small); font-weight: 600; letter-spacing: .04em; }
.vi-meta { color: var(--ink-2); font-size: var(--fs-small); line-height: var(--lh-small); overflow-wrap: anywhere; }
.vi-shell .t-heading { margin: var(--s-3) 0 var(--s-4); }
.vi-shell p + p { margin-top: var(--s-2); }
.vi-modes { display: flex; gap: var(--s-2); margin: var(--s-4) 0; flex-wrap: wrap; }
.vi-modes button, .vi-steps button { min-height: 44px; padding: var(--s-2) var(--s-4); border: 1px solid var(--hairline-strong); background: var(--raised); color: var(--ink); border-radius: var(--r-md); font: var(--fs-ui)/var(--lh-ui) var(--font-sans); }
.vi-modes button[aria-pressed="true"] { background: var(--accent-tint); border-color: var(--accent); color: var(--accent-ink); font-weight: 600; }
.vi-shell button:not(.btn-primary):hover:not(:disabled), .vi-shell summary:hover { background-color: var(--hover-tint); }
.vi-shell :is(button,input,select,textarea,summary,a):focus-visible { outline: var(--focus-outline); outline-offset: var(--focus-offset); }
.vi-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--s-2); border-bottom: 1px solid var(--hairline); padding-bottom: var(--s-4); }
.vi-steps button { display: flex; gap: var(--s-2); align-items: center; text-align: left; border-color: transparent; }
.vi-steps span { font-size: var(--fs-small); color: var(--ink-2); }
.vi-steps [aria-current] { border-color: var(--accent); background: var(--accent-tint); color: var(--accent-ink); }
.vi-progress-summary { margin: var(--s-4) 0; color: var(--ink-2); font-size: var(--fs-small); }
.vi-progress-summary .vi-label { margin: 0 0 0 auto; }
.vi-shell .vi-progress-summary select { width: auto; max-width: 420px; }
.vi-progress-summary select { width: auto; max-width: 100%; }
.vi-status { margin: var(--s-3) 0; min-height: 24px; color: var(--ink-2); font-size: var(--fs-desc); }
.vi-stage { display: grid; gap: var(--s-4); min-width: 0; }
.vi-shell fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.vi-shell legend, .vi-label { display: block; color: var(--ink); font-size: var(--fs-ui); font-weight: 600; margin: var(--s-3) 0 var(--s-2); }
.vi-files { display: grid; gap: var(--s-3); }
.vi-file { border: 1px solid var(--hairline-strong); border-radius: var(--r-lg); background: var(--raised); min-width: 0; }
.vi-file.is-selected { border-color: var(--accent); background: var(--accent-tint); }
.vi-check { display: flex; align-items: flex-start; gap: var(--s-3); min-height: 44px; padding: var(--s-3); cursor: pointer; color: var(--ink); font-size: var(--fs-ui); line-height: var(--lh-ui); }
.vi-check input { position: static; opacity: 1; width: 20px; height: 20px; accent-color: var(--accent); flex: none; margin: var(--s-1) 0; }
.vi-check > span { min-width: 0; overflow-wrap: anywhere; }
.vi-check b { font-weight: 600; }
.vi-check .vi-meta { display: block; margin-top: var(--s-1); }
.vi-check .vi-selected { margin-left: auto; align-self: center; color: var(--accent-ink); font-size: var(--fs-small); font-weight: 600; flex-shrink: 0; }
.vi-file-tools { border-top: 1px solid var(--hairline); padding: 0 var(--s-3); }
.vi-shell summary { min-height: 44px; padding: var(--s-3) var(--s-1); font-size: var(--fs-ui); color: var(--accent-ink); cursor: pointer; overflow-wrap: anywhere; }
.vi-shell details pre { max-height: 320px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: var(--fs-mono)/var(--lh-mono) var(--font-mono); padding: var(--s-4); background: var(--raised); border: 1px solid var(--hairline); }
.vi-private { padding-left: 0; }
.vi-drop { display: grid; gap: var(--s-2); padding: var(--s-5); background: var(--sunken); border: 1px dashed var(--hairline-strong); border-radius: var(--r-lg); font-size: var(--fs-desc); }
.vi-drop.is-dragging { border-color: var(--accent); background: var(--accent-tint); }
.vi-shell input:not([type="checkbox"]):not([type="radio"]), .vi-shell select, .vi-shell textarea { width: 100%; max-width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--hairline-strong); border-radius: var(--r-md); padding: var(--s-3); background: var(--raised); color: var(--ink); font: var(--fs-body)/var(--lh-row) var(--font-sans); }
.vi-shell input[type="file"] { font-size: var(--fs-ui); }
.vi-shell textarea { resize: vertical; }
.vi-local { list-style: none; display: grid; gap: var(--s-4); padding: 0; }
.vi-local li { padding: var(--s-4); border: 1px solid var(--warning-line); border-radius: var(--r-lg); overflow-wrap: anywhere; }
.vi-parse { margin: var(--s-4) 0; display: grid; gap: var(--s-3); }
.vi-empty, .vi-note { padding: var(--s-4); background: var(--sunken); border: 1px solid var(--hairline); border-radius: var(--r-lg); font-size: var(--fs-desc); }
.vi-error { padding: var(--s-3); color: var(--danger); background: var(--danger-tint); border-radius: var(--r-md); font-size: var(--fs-desc); }
.vi-success { padding: var(--s-4); color: var(--success); background: var(--success-tint); border-radius: var(--r-md); font-size: var(--fs-desc); }
.vi-intents { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-2); }
.vi-intent { border: 1px solid var(--hairline-strong); border-radius: var(--r-md); }
.vi-intent:has(input:checked) { border-color: var(--accent); background: var(--accent-tint); }
.vi-plan-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.6fr); gap: var(--s-6); }
.vi-plan-grid > * { min-width: 0; }
.vi-plan { list-style: decimal; margin: var(--s-4) 0; padding-left: var(--s-5); }
.vi-plan li { padding-bottom: var(--s-4); border-bottom: 1px solid var(--hairline); }
.vi-plan-coverage { margin: var(--s-4) 0; }
.vi-quote { margin-top: var(--s-4); padding: var(--s-5); border: 1px solid var(--hairline-strong); border-radius: var(--r-lg); background: var(--sunken); }
.vi-metrics { display: grid; margin: var(--s-4) 0; font-size: var(--fs-desc); }
.vi-metrics > div { padding: var(--s-3) 0; border-bottom: 1px solid var(--hairline-strong); }
.vi-metrics dt { color: var(--ink-2); font-size: var(--fs-small); }
.vi-metrics dd { margin: var(--s-1) 0 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.vi-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); margin: var(--s-5) 0; border-top: 1px solid var(--hairline); padding-top: var(--s-4); }
.vi-action-hint { color: var(--ink-2); font-size: var(--fs-small); }
.vi-actions button { white-space: normal; min-height: 48px; }
.vi-actions button:disabled { opacity: 1; color: var(--ink-2); background: var(--sunken-2); border-color: var(--hairline-strong); }
.vi-foot, .vi-pack-actions { display: flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; }
.vi-link { display: inline-flex; align-items: center; min-height: 44px; padding: var(--s-2); font-size: var(--fs-ui); color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.vi-pack-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-5); margin-top: var(--s-5); }
.vi-pack { padding: var(--s-5); border: 1px solid var(--hairline-strong); border-radius: var(--r-lg); min-width: 0; background: var(--raised); display: flex; flex-direction: column; gap: var(--s-3); }
.vi-pack details { border-top: 1px solid var(--hairline); }
.vi-pack .v31-disclaimer { margin-top: var(--s-4); }
.vi-pack .v31-effect-ci { margin: var(--s-4) 0; }
[data-flow="onboarding"] [data-v31-root="intake"] { grid-column: 1 / -1; width: 100%; padding-bottom: var(--safe-bottom,0px); }
[data-flow="onboarding"] .vi-shell { background: var(--paper); }
[data-flow="onboarding"] .focus-foot { padding-bottom: calc(var(--safe-bottom,0px) + var(--s-4)); }
@media (max-width: 760px) {
  .vi-shell { margin: var(--s-4) auto; padding: var(--s-4); }
  .vi-plan-grid, .vi-pack-grid { grid-template-columns: minmax(0,1fr); }
  .vi-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vi-steps button { padding: var(--s-2); }
  .vi-progress-summary { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--s-2); }
  .vi-progress-summary .vi-label { margin: var(--s-2) 0 0; }
  .vi-shell .vi-progress-summary select { width: 100%; max-width: 100%; }
  .vi-check { padding: var(--s-3) var(--s-2); }
  .vi-file-tools { padding: 0 var(--s-2); }
  .vi-check .vi-selected { align-self: flex-start; }
  .vi-actions { position: fixed; left: 0; right: 0; bottom: var(--dock-offset,0px); z-index: 65; margin: 0; background: var(--paper); border-top: 1px solid var(--hairline-strong); padding: var(--s-3) var(--s-4) calc(var(--s-3) + var(--dock-inset,env(safe-area-inset-bottom))); }
  .vi-actions .btn-primary { flex: 1; }
  .vi-pack-actions { align-items: stretch; }
  .vi-pack-actions .btn { flex: 1; white-space: normal; }
  [data-flow="onboarding"] [data-v31-root="intake"] { padding: 0 var(--s-4) var(--safe-bottom,0px); }
  [data-flow="onboarding"] .vi-shell { margin-bottom: var(--s-4); }
}
@media (prefers-reduced-motion: reduce) { .vi-shell *, .vi-shell *::before, .vi-shell *::after { transition: none !important; animation: none !important; } }
/* Checkbox values are not rendered text; labels carry their accessible names. */
.vi-check input { -webkit-text-fill-color: transparent; }
/* Source previews scroll with the page, keeping the final lines reachable above phone actions. */
.vi-shell details pre { max-height: none; overflow: visible; }
/* Keep inspector prose on an opaque reading surface beneath its scrolling footer. */
[data-page="templates"] .tp-card li { background: var(--raised); }
/* Let catalogue inspector prose follow document scrolling on desktop; its actions remain sticky. */
@media (min-width: 1181px) {
  [data-page="templates"] .tp-preview { position: static; }
  [data-page="templates"] .tp-card { max-height: none; overflow: visible; }
}
[data-page="templates"] .tpp-actions { background: var(--raised); }

/* v3.1 polish: hierarchy, density and phone ergonomics. Tokens only; no new type sizes. */
.vi-steps button > span { display: inline-grid; place-items: center; flex: none; width: 24px; height: 24px; border: 1px solid var(--hairline-strong); border-radius: var(--r-pill); background: var(--raised); color: var(--ink-2); line-height: 1; font-variant-numeric: tabular-nums; }
.vi-steps [aria-current] > span { background: var(--accent); border-color: var(--accent); color: var(--raised); }
.vi-steps .is-done > span { background: var(--accent-tint); border-color: var(--accent); color: var(--accent-ink); }
.vi-lead { margin-top: calc(-1 * var(--s-2)); color: var(--ink-2); font-size: var(--fs-desc); }
.vi-stage > .btn { justify-self: start; }
.vi-shell > p + .btn { margin-top: var(--s-4); }
.vi-file-tools .vi-check { padding-inline: 0; }
.vi-file:not(.is-selected):hover { border-color: var(--ink-4); }
.vi-check .vi-selected { padding: var(--s-1) var(--s-3); border: 1px solid var(--hairline-strong); border-radius: var(--r-pill); background: var(--raised); color: var(--ink-2); }
.vi-file.is-selected .vi-check .vi-selected { background: var(--accent-tint); border-color: var(--accent); color: var(--accent-ink); }
.vi-private { color: var(--ink-2); font-size: var(--fs-desc); }
.vi-drop input[type="file"]::file-selector-button { margin-right: var(--s-3); min-height: 32px; padding: 0 var(--s-3); border: 1px solid var(--hairline-strong); border-radius: var(--r-sm); background: var(--paper); color: var(--ink); font: inherit; cursor: pointer; }
.vi-drop input[type="file"]::file-selector-button:hover { background: var(--hover-tint); }
.vi-parse { margin: 0; padding: var(--s-4) 0 0; gap: var(--s-2); border-top: 1px solid var(--hairline); }
.vi-parse-head { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-3); }
.vi-pill { padding: 2px var(--s-3); border-radius: var(--r-pill); background: var(--sunken-2); color: var(--ink-2); font-size: var(--fs-small); font-weight: 600; text-transform: capitalize; }
.vi-pill--partial { background: var(--warning-tint); color: var(--warning); }
.vi-pill--parsed { background: var(--success-tint); color: var(--success); }
.vi-parse-body { color: var(--ink); font-size: var(--fs-desc); }
.vi-shell .v31-coverage { padding: var(--s-3) var(--s-4); }
.vi-shell .v31-coverage li + li { margin-top: var(--s-3); }
.vi-plan-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, .62fr); }
.vi-plan { list-style: none; padding: 0; margin: var(--s-4) 0; border-top: 1px solid var(--hairline); }
.vi-plan li { display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1.4fr); column-gap: var(--s-4); row-gap: var(--s-1); align-items: start; padding: var(--s-4) 0; }
.vi-plan .vi-label { margin: 0 0 var(--s-1); color: var(--ink-2); font-size: var(--fs-small); font-weight: 500; }
.vi-plan textarea { min-height: 64px; field-sizing: content; }
.vi-step-no { display: grid; place-items: center; width: 28px; height: 28px; margin-top: var(--s-1); border-radius: var(--r-pill); background: var(--sunken-2); color: var(--ink); font-size: var(--fs-small); font-weight: 600; font-variant-numeric: tabular-nums; }
.vi-step-ops { grid-column: 2 / -1; }
.vi-quote-brief { display: none; }
.vi-metrics { margin: var(--s-3) 0; }
.vi-metrics > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-4); padding: var(--s-2) 0; border-bottom: 1px solid var(--hairline); }
.vi-metrics dt { flex: none; }
.vi-metrics dd { margin: 0; text-align: right; }
.vi-ready { list-style: none; display: grid; gap: var(--s-2); margin: var(--s-4) 0 var(--s-2); padding: var(--s-3) var(--s-4); border: 1px solid var(--hairline); border-radius: var(--r-md); background: var(--raised); font-size: var(--fs-desc); }
.vi-ready li { display: flex; align-items: flex-start; gap: var(--s-3); color: var(--ink-2); }
.vi-ready .is-ok { color: var(--ink); }
.vi-mark { position: relative; flex: none; width: 18px; height: 18px; margin-top: 2px; border: 1.5px solid var(--ink-4); border-radius: var(--r-pill); background: var(--paper); }
.vi-ready .is-ok .vi-mark { background: var(--success); border-color: var(--success); }
.vi-ready .is-ok .vi-mark::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 9px; border: solid var(--raised); border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (min-width: 761px) and (min-height: 880px) { .vi-plan-aside { position: sticky; top: calc(var(--topbar-h) + var(--s-4)); align-self: start; } }
.vi-action-hint { flex: 1; padding: 0 var(--s-3); text-align: center; }
.vi-action-hint.is-attempted { color: var(--danger); font-weight: 600; }
.vi-actions [data-back]:disabled { visibility: hidden; }
.vi-foot { gap: var(--s-1) var(--s-4); }
.vi-foot .vi-link:first-child { margin-left: calc(-1 * var(--s-2)); }
.vi-foot [data-clear-draft] { margin-left: auto; padding-inline: var(--s-2); }
.vi-shell > .v31-disclaimer { padding-inline: 0; }
.vi-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2); margin: var(--s-1) 0; }
.vi-stats > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; padding: var(--s-2) var(--s-3); border-radius: var(--r-md); background: var(--sunken); }
.vi-stats dd { margin: 0; font-size: var(--fs-heading); line-height: var(--lh-heading); font-weight: 600; font-variant-numeric: tabular-nums; }
.vi-stats dt { color: var(--ink-2); font-size: var(--fs-small); line-height: var(--lh-small); }
@media (max-width: 760px) {
  .vi-plan-grid { grid-template-columns: minmax(0, 1fr); }
  .vi-quote-brief { display: block; padding: var(--s-3) var(--s-4); border: 1px solid var(--hairline-strong); border-radius: var(--r-md); background: var(--accent-tint); color: var(--accent-ink); font-size: var(--fs-desc); }
  .vi-plan li { grid-template-columns: 28px minmax(0, 1fr); row-gap: var(--s-2); padding: var(--s-4) 0; }
  .vi-plan li > div, .vi-step-ops { grid-column: 2; }
  .vi-step-no { grid-row: 1 / span 3; }
  .vi-actions { flex-wrap: wrap; row-gap: var(--s-2); }
  .vi-action-hint { display: block; order: -1; flex: 0 0 100%; padding: 0; text-align: left; }
  .vi-actions [data-back]:disabled { display: none; }
  .vi-foot [data-clear-draft] { margin-left: calc(-1 * var(--s-2)); }
  .vi-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vi-pack-actions { flex-direction: column; align-items: stretch; }
  .vi-pack-actions .btn { flex: none; width: 100%; }
}

