/* Automotive Service Estimate Follow-Up - Swiss brutalist regulatory datasheet */

:root {
  --canvas: #E5E0D8;
  --paper: #FFFFFF;
  --mast: #111111;
  --mast-text: #FFFFFF;
  --ink: #111111;
  --muted: #262626;
  --crimson: #B91C1C;
  --crimson-dark: #991B1B;
  --accent: #1D4ED8;
  --focus: #FEF9C3;
  --rule: 1.5px solid #111111;
  --shadow: 4px 4px 0 #111111;
  --positive: #166534;
  --warn: #92400E;
  /* Commercial (Pro/upgrade) accent: ink-on-paper, never the alarm crimson */
  --commercial-bg: #FFFFFF;
  --commercial-ink: #111111;
  --commercial-hover: #FEF9C3;
  --font-display: 'Archivo', 'Arial Narrow', Arial, sans-serif;
  --font-body: 'Work Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'Inconsolata', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --hud-h: 56px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.45;
}

h1, h2, h3, h4, h5 { font-family: var(--font-display); line-height: 1.15; margin: 0; color: var(--ink); }
p { margin: 0; }
a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
a:hover { color: var(--ink); }
button, select, input, textarea { font: inherit; color: inherit; }
button, select, label[for], summary, [role="button"], [data-edit-target], .dropzone-trigger, a { cursor: pointer; }
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], textarea { cursor: text; }
svg.icon { flex: 0 0 auto; display: inline-block; vertical-align: middle; }
.num, .kpi-value, .total-value, td.num, .mm-value { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
body, input, select, textarea, table, .hud-open, .hz-telemetry { font-variant-numeric: tabular-nums; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 8px; top: 8px; z-index: 100; padding: 10px 14px; background: var(--paper); color: var(--ink); border: var(--rule); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
* { min-width: 0; }

/* ---------- header stack ---------- */

.app-header-stack { flex-shrink: 0; background: var(--paper); }

.masthead {
  background-color: #111111;
  color: #FFFFFF;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  border: 2px solid #111111;
  min-height: 52px;
}
.mast-cell { display: flex; align-items: center; gap: 8px; padding: 0 18px; min-height: 48px; color: #FFFFFF; }
.mast-brand { border-right: 2px solid #111111; box-shadow: inset -1px 0 0 #3F3F3F; }
.brand-wordmark {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1.15;
  color: #FFFFFF;
  max-height: 52px;
}
.mast-status { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: #FFFFFF; }
.mast-cell.mast-upgrade-cell {
  background: var(--commercial-bg);
  border-left: 2px solid #111111;
  padding: 8px 0;
}
.mast-upgrade-cell:has(.mast-upgrade:hover) { background: var(--commercial-hover); }
.mast-upgrade-cell:has(.mast-upgrade:active) { background: var(--canvas); }
.mast-upgrade {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: auto;
  background: transparent;
  color: var(--commercial-ink);
  border: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  min-height: 44px;
  padding: 8px 20px;
}
.mast-upgrade span { white-space: nowrap; line-height: 1.2; }
.mast-upgrade:focus-visible { outline: 3px solid var(--accent); outline-offset: -5px; }

.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 34px;
  padding: 8px 18px;
  border-bottom: var(--rule);
  background: var(--paper);
}
.value-prop { font-size: 13.5px; font-weight: 500; color: var(--ink); line-height: 1.3; }
.save-state { flex: 0 0 auto; font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); white-space: nowrap; }

.workflow-bar { background: var(--canvas); border-bottom: var(--rule); }
.workflow-bar ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; list-style: none; margin: 0; padding: 0 18px; min-height: 26px; }
.workflow-bar a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
}
.workflow-bar a:hover { text-decoration: underline; }
.wf-num { font-family: var(--font-mono); font-weight: 700; color: var(--accent); }
.wf-arrow { display: inline-flex; color: var(--muted); }

/* ---------- shared controls ---------- */

.btn-primary, .btn-secondary, .btn-danger, .btn-ghost, .btn-shelf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 6px 14px;
  border: var(--rule);
  border-radius: 0;
  box-shadow: var(--shadow);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1.2;
  transition: transform 80ms ease, box-shadow 80ms ease, background-color 120ms ease;
}
.btn-primary { background: var(--crimson); color: #FFFFFF; }
.btn-primary:hover { background: var(--crimson-dark); color: #FFFFFF; }
.btn-secondary, .btn-shelf { background: var(--paper); color: var(--ink); }
.btn-secondary:hover, .btn-shelf:hover { background: var(--focus); }
.btn-danger { background: var(--ink); color: #FFFFFF; }
.btn-danger:hover { background: #2B2B2B; }
.btn-ghost { background: var(--canvas); color: var(--ink); }
.btn-ghost:hover { background: var(--focus); }
.btn-primary:active, .btn-secondary:active, .btn-danger:active, .btn-ghost:active, .btn-shelf:active {
  transform: translate(3px, 3px);
  box-shadow: 1px 1px 0 #111111;
}
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 6px;
  border: var(--rule);
  background: var(--paper);
  color: var(--ink);
  border-radius: 0;
}
.btn-icon:hover { background: var(--focus); }
.btn-icon:active { background: var(--canvas); }

.role-badge {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid #111111;
  border-radius: 999px;
  padding: 4px 10px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
}
.role-badge-in { background: #111111; color: #FFFFFF; }
.role-badge-out { background: #1D4ED8; color: #FFFFFF; border-color: #111111; }

.req-tag, .opt-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 1px 6px;
  border: 1px solid #111111;
  line-height: 1.3;
}
.req-tag { background: var(--ink); color: #FFFFFF; }
.opt-tag { background: var(--paper); color: var(--muted); }

/* ---------- cockpit layout ---------- */

.cockpit { background: var(--canvas); }
.inspector-pane { background: var(--paper); }

.inspector-dock { background: var(--paper); border-bottom: var(--rule); }
.pane-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 7px 16px; border-bottom: var(--rule); }
.live-note { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 12.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.live-note svg { color: var(--positive); fill: currentColor; }

.mobile-metrics { display: none; }

.benchmark-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--paper); }
.bench-index {
  grid-column: 1 / 2;
  display: flex;
  align-items: center;
  padding: 0 12px;
  min-height: 30px;
  background: var(--ink);
  color: #FFFFFF;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 0.06em;
}
.bench-caption {
  grid-column: 2 / 4;
  display: flex;
  align-items: center;
  padding: 0 12px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted);
  border-bottom: var(--rule);
}
.bench-chips { display: contents; }
.bench-tools { display: contents; }
.sample-badge {
  grid-column: 4 / 5;
  grid-row: 1 / 2;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--focus);
  color: var(--ink);
  border-left: var(--rule);
  border-bottom: var(--rule);
}
.sample-badge[data-active="false"] { visibility: hidden; }
.preset-chip, #reset-btn {
  grid-row: 2 / 3;
  min-height: 48px;
  padding: 6px 10px;
  border: 0;
  border-right: var(--rule);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 13px;
  line-height: 1.2;
  text-align: left;
}
.preset-chip:hover { background: var(--focus); }
.preset-chip:active, #reset-btn:active { background: var(--canvas); }
.preset-chip[aria-pressed="true"] { background: var(--ink); color: #FFFFFF; }
.preset-chip[aria-pressed="true"]::before { content: '■ '; font-size: 10px; }
#reset-btn { border-right: 0; background: var(--canvas); font-weight: 700; }
#reset-btn:hover { background: var(--focus); }
.preset-chip:focus-visible, #reset-btn:focus-visible { outline-offset: -4px; }

.trust-reassurance-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  padding: 7px 16px;
  border-top: var(--rule);
  background: var(--canvas);
}
.trust-badge {
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 8px;
  border: 1.5px solid #111111;
  background: var(--paper);
  color: var(--positive);
}
.trust-reassurance-bar p { font-size: 12.5px; color: var(--muted); }

.inspector-scroll-body { padding: 0 16px 56px; background: var(--paper); }

.sheet-section { padding-top: 24px; }
.sheet-section + .sheet-section { margin-top: 72px; }
.section-head {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding-bottom: 10px;
  border-bottom: 2px solid #111111;
  margin-bottom: 12px;
}
.sec-num { font-family: var(--font-mono); font-weight: 700; color: var(--crimson); }
.section-note { font-size: 13px; color: var(--muted); margin: 0 0 12px; max-width: 64ch; }
.sub-head { font-family: var(--font-display); font-size: 14px; text-transform: uppercase; letter-spacing: 0.04em; margin: 28px 0 6px; }
.section-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 0 6px; }
.empty-note { font-size: 13px; color: var(--muted); padding: 12px; border: var(--rule); background: var(--canvas); }

/* datasheet rows: stone label cell | white live cell */
.prop-grid { display: grid; grid-template-columns: minmax(0, 1fr); border: var(--rule); border-bottom: 0; }
.field { display: grid; grid-template-columns: minmax(132px, 36%) minmax(0, 1fr); border-bottom: var(--rule); }
.field > label, .field > .check-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  padding: 8px 12px;
  background: var(--canvas);
  border-right: var(--rule);
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.label-text small { font-weight: 500; }
.field-control { position: relative; display: flex; flex-direction: column; justify-content: center; background: var(--paper); min-width: 0; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="date"], .field select, .field textarea {
  display: block;
  width: 100%;
  min-width: 180px;
  min-height: 46px;
  padding: 8px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 15px;
  outline: none;
}
.field textarea { resize: vertical; min-height: 64px; line-height: 1.4; }
.field select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  background-image: linear-gradient(45deg, transparent 50%, #111111 50%), linear-gradient(135deg, #111111 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px;
  background-repeat: no-repeat;
}
.field input:focus, .field select:focus, .field textarea:focus { background-color: #FEF9C3; box-shadow: inset 0 0 0 2px #1D4ED8; }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: #DC2626; box-shadow: inset 0 0 0 2px #DC2626; }
.field-control:has([aria-invalid="true"]) { background: #FFF5F5; }
.money-input { display: flex; flex-direction: row; align-items: stretch; width: 100%; }
.money-prefix {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding: 0 2px 0 12px;
  font-family: var(--font-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--muted);
}
.money-input input[type="text"] { flex: 1 1 auto; padding-left: 4px; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 16px; }
.money-input:focus-within { background: #FEF9C3; box-shadow: inset 0 0 0 2px #1D4ED8; }
.money-input:focus-within input { box-shadow: none; }
.money-input:has([aria-invalid="true"]) { box-shadow: inset 0 0 0 2px #DC2626; }
.validation-cue { min-height: 25px; padding: 0 12px 8px; font-size: 12.5px; line-height: 17px; font-weight: 600; color: var(--crimson); }
/* Reserve the cue line from first paint so showing or clearing a cue never changes form height. */
.validation-cue[hidden] { display: block; visibility: hidden; }
.validation-cue::before { content: '! '; font-family: var(--font-mono); }
.derived-note { padding: 0 12px 8px; font-size: 12px; color: var(--muted); }

.check-row { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 6px 12px; font-size: 13px; color: var(--muted); }
.check-row input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 auto; accent-color: #111111; margin: 0; }
.check-row:hover { background: var(--focus); }

.prop-collapsible { margin-top: 14px; border: var(--rule); }
.step-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 6px 12px;
  background: var(--canvas);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  list-style: none;
}
.step-tab::-webkit-details-marker { display: none; }
.step-tab::before { content: '+'; font-family: var(--font-mono); font-size: 16px; width: 14px; }
.prop-collapsible[open] > .step-tab::before { content: '−'; }
.step-tab:hover { background: var(--focus); }
.prop-collapsible > .prop-grid { border-left: 0; border-right: 0; }
.prop-collapsible:not([open]) > :not(summary) { display: none; }

.line-list, .contact-list { display: flex; flex-direction: column; gap: 24px; }
.line-head { display: flex; align-items: center; gap: 10px; padding: 0 0 6px; }
.line-title { font-family: var(--font-mono); font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.line-head .btn-icon { margin-left: auto; }
fieldset.line-block, fieldset.contact-block { border: 0; margin: 0; padding: 0; min-width: 0; }
.safety-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 7px;
  border: 1.5px solid #B91C1C;
  color: #B91C1C;
  background: var(--paper);
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.safety-tag[data-show="false"] { display: none; }

.file-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.dropzone-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  min-height: 44px;
  margin: 6px 12px;
  padding: 6px 12px;
  border: 1.5px dashed #111111;
  background: var(--paper);
  font-size: 13px;
  font-weight: 600;
}
.dropzone-trigger:hover { background: var(--focus); }
.dropzone-trigger:active { background: var(--canvas); }
.field-control:has(.file-input:focus-visible) .dropzone-trigger { outline: 3px solid var(--accent); outline-offset: 2px; }
.chip-list { list-style: none; margin: 0; padding: 0 12px 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.chip-empty { font-size: 12.5px; color: var(--muted); }
.evidence-chip { display: inline-flex; align-items: center; gap: 8px; border: var(--rule); background: var(--canvas); padding-left: 10px; max-width: 100%; }
.chip-name { font-size: 12.5px; font-weight: 600; overflow-wrap: anywhere; }
.chip-meta { font-size: 12px; color: var(--muted); white-space: nowrap; }
.chip-remove { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 6px; border: 0; border-left: var(--rule); background: var(--paper); }
.chip-remove:hover { background: var(--focus); }
.chip-remove:active { background: var(--canvas); }

.locked-field input[readonly] { cursor: pointer; color: var(--muted); }
.lock-note { display: flex; align-items: center; gap: 6px; padding: 0 12px 8px; font-size: 12.5px; color: var(--muted); }

.dock-jump-shelf { background: var(--paper); border-top: var(--rule); }
.shelf-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 6px 16px 10px; }
.shelf-label { font-family: var(--font-mono); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.btn-shelf { min-height: 44px; padding: 6px 12px; font-size: 12px; }
.notice-region:empty { display: none; }
.notice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 8px 12px 8px 16px;
  background: var(--focus);
  border-bottom: var(--rule);
}
.notice p { flex: 1 1 220px; font-size: 13px; font-weight: 600; }
.notice .btn-icon { background: transparent; }

/* ---------- right pane ---------- */

.deliverable-zone { background: var(--canvas); padding-bottom: 56px; }

.action-dock { position: sticky; top: 0; z-index: 30; background: var(--paper); border-bottom: var(--rule); }
.dock-summary { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); border-bottom: var(--rule); }
.dock-verdict, .dock-kpi { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 5px 10px; min-height: 54px; border-right: var(--rule); }
.dock-kpi:last-child { border-right: 0; }
.dock-verdict:hover, .dock-kpi:hover { background: var(--focus); }
.dock-verdict:active, .dock-kpi:active, [data-edit-target]:active { background: var(--canvas); }
.workflow-bar a:active { background: var(--canvas); }
.verdict-state { font-family: var(--font-display); font-weight: 800; font-size: 15px; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.12; }
.verdict-reason { font-size: 12px; line-height: 1.25; color: var(--muted); }
.kpi-label { font-family: var(--font-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.kpi-value { font-size: 18px; font-weight: 700; line-height: 1.1; }
.dock-kpi[data-flag="aging"] .kpi-value { color: var(--crimson); }
.dock-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 3px 12px 6px; }
.dock-buttons { display: flex; flex-wrap: wrap; gap: 10px; }

[data-tone="positive"] .verdict-state, .verdict-state[data-tone="positive"] { color: var(--positive); }
.dock-verdict[data-tone="positive"] { box-shadow: inset 6px 0 0 var(--positive); }
.dock-verdict[data-tone="info"] { box-shadow: inset 6px 0 0 var(--accent); }
.dock-verdict[data-tone="info"] .verdict-state { color: var(--accent); }
.dock-verdict[data-tone="warn"] { box-shadow: inset 6px 0 0 #B45309; }
.dock-verdict[data-tone="warn"] .verdict-state { color: var(--warn); }
.dock-verdict[data-tone="danger"] { box-shadow: inset 6px 0 0 var(--crimson); }
.dock-verdict[data-tone="danger"] .verdict-state { color: var(--crimson); }
.dock-verdict[data-tone="critical"] { background: var(--crimson); }
.dock-verdict[data-tone="critical"] .verdict-state, .dock-verdict[data-tone="critical"] .verdict-reason { color: #FFFFFF; }
.dock-verdict[data-tone="critical"]:hover { background: var(--crimson-dark); }
.dock-verdict[data-tone="invalid"] { box-shadow: inset 6px 0 0 var(--crimson); background: #FFF5F5; }
.dock-verdict[data-tone="invalid"] .verdict-state { color: var(--crimson); }
.dock-verdict[data-tone="calm"] .verdict-state { color: var(--muted); }

#executive-deliverable { padding: 14px 18px 0; }
.seal-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 14px; }
.cert-seal { display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px; border: 2px solid #111111; background: var(--paper); }
.cert-seal[data-mode="official"] { border-color: var(--positive); }
.seal-text { display: flex; flex-direction: column; line-height: 1.25; }
.seal-text strong { font-family: var(--font-display); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; }
.seal-text span { font-size: 12px; color: var(--muted); }
.pro-unlock-line { margin-top: 8px; font-size: 13px; color: var(--muted); }
.link-quiet {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 2px;
  border: 0;
  background: none;
  color: var(--ink);
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.link-quiet:hover { background: var(--focus); }

.doc-sheet { position: relative; background: var(--paper); border: var(--rule); padding: 24px 24px 18px; }
.doc-head { border-bottom: 2px solid #111111; padding-bottom: 12px; margin-bottom: 0; }
.doc-kicker { font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.doc-title { font-family: var(--font-display); font-weight: 800; font-size: 22px; line-height: 1.15; }
.doc-marker { display: inline-block; margin-top: 8px; padding: 4px 10px; border: 2px solid #B91C1C; color: #B91C1C; font-family: var(--font-mono); font-weight: 700; letter-spacing: 0.08em; font-size: 13px; }
.doc-marker[data-show="false"] { display: none; }

.doc-identity { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-left: var(--rule); }
.id-cell { display: grid; grid-template-columns: minmax(96px, 38%) minmax(0, 1fr); border-right: var(--rule); border-bottom: var(--rule); }
.id-cell dt { padding: 6px 10px; background: var(--canvas); border-right: var(--rule); font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
.id-cell dd { margin: 0; padding: 6px 10px; font-size: 13px; overflow-wrap: anywhere; }
.id-cell:hover dd, .total-cell:hover, .status-cell:hover { background: var(--focus); }

.doc-block { margin-top: 32px; }
.doc-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font-family: var(--font-display); font-weight: 800; font-size: 14px; letter-spacing: 0.05em; text-transform: uppercase; padding-bottom: 6px; border-bottom: 2px solid #111111; break-after: avoid; page-break-after: avoid; }
.h-count { margin-left: auto; font-family: var(--font-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.02em; text-transform: none; }

.status-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); border-left: var(--rule); }
.status-cell { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-right: var(--rule); border-bottom: var(--rule); }
.cell-label { font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
.status-value { font-family: var(--font-display); font-size: 18px; font-weight: 800; line-height: 1.15; }
.status-sub { font-size: 13px; color: var(--muted); }
.status-verdict[data-tone="positive"] .status-value { color: var(--positive); }
.status-verdict[data-tone="info"] .status-value { color: var(--accent); }
.status-verdict[data-tone="warn"] .status-value { color: var(--warn); }
.status-verdict[data-tone="danger"] .status-value, .status-verdict[data-tone="invalid"] .status-value { color: var(--crimson); }
.status-verdict[data-tone="critical"] { background: var(--crimson); }
.status-verdict[data-tone="critical"] .status-value, .status-verdict[data-tone="critical"] .status-sub, .status-verdict[data-tone="critical"] .cell-label { color: #FFFFFF; }
.status-verdict[data-tone="critical"]:hover { background: var(--crimson-dark); }

.conflict-slot { margin-top: 10px; }
.calm-line { font-size: 13px; color: var(--muted); padding: 8px 12px; border: 1.5px dashed #111111; }
.conflict-banner { display: flex; gap: 10px; padding: 10px 12px; border: 2px solid #B91C1C; background: #FFF5F5; color: #7F1D1D; }
.conflict-banner strong { display: block; font-size: 13px; text-transform: uppercase; letter-spacing: 0.03em; }
.conflict-banner ul { margin: 4px 0 0; padding-left: 18px; font-size: 13px; }

.totals-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: var(--rule); }
.total-cell { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-right: var(--rule); border-bottom: var(--rule); }
.total-value { font-size: 19px; font-weight: 700; }

.table-wrap { width: 100%; }
.ledger-table, .holds-table, .evidence-table { table-layout: fixed; }
.ledger-table th:nth-child(1), .evidence-table th:nth-child(1), .holds-table th:nth-child(1) { width: 52px; }
.ledger-table th:nth-child(2) { width: 28%; }
.ledger-table th:nth-child(3) { width: 92px; }
.ledger-table th:nth-child(4) { width: 22%; }
.holds-table th:nth-child(2) { width: 118px; }
.holds-table th:nth-child(3) { width: 26%; }
.evidence-table th:nth-child(2) { width: 52%; }
.doc-sheet table, .free-vs-pro-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.doc-sheet th, .doc-sheet td { border: var(--rule); padding: 7px 9px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.doc-sheet thead th { overflow-wrap: normal; word-break: normal; background: var(--canvas); font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.doc-sheet td.num-col, .doc-sheet th.num-col { text-align: right; white-space: nowrap; }
.doc-sheet tbody tr:hover td { background: var(--focus); }
.doc-sheet tbody tr { break-inside: avoid; page-break-inside: avoid; }
.ledger-table td:first-child, .holds-table td:first-child, .evidence-table td:first-child { width: 52px; }
.cell-main { display: block; }
.is-invalid { color: var(--crimson); font-weight: 700; }
.is-missing { color: var(--crimson); font-weight: 600; }
.muted { color: var(--muted); }
.ledger-row .safety-tag { padding: 0 5px; font-size: 11px; vertical-align: 1px; }
.row-flag { display: inline-block; margin-bottom: 4px; padding: 0 6px; border: 1.5px solid currentColor; font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.row-flag[data-flag="critical"] { background: var(--crimson); color: #FFFFFF; border-color: var(--crimson); }
.row-flag[data-flag="hold"], .row-flag[data-flag="overdue"] { color: var(--warn); }
.row-flag[data-flag="conflict"] { color: var(--crimson); }
.ledger-row[data-flag="critical"] td:first-child { box-shadow: inset 5px 0 0 var(--crimson); }
.sev-badge { display: inline-flex; align-items: center; gap: 4px; padding: 0 6px; border: 1.5px solid currentColor; font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.sev-badge[data-severity="critical"] { background: var(--crimson); color: #FFFFFF; border-color: var(--crimson); }
.sev-badge[data-severity="invalid"], .sev-badge[data-severity="missing"], .sev-badge[data-severity="conflict"] { color: var(--crimson); }
.sev-badge[data-severity="hold"] { color: var(--warn); }
.hold-row[data-severity="critical"] td { font-weight: 600; }

.doc-two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.action-list, .assumption-list { margin: 8px 0 0; padding-left: 20px; font-size: 13px; }
.action-list li, .assumption-list li { padding: 4px 0; }
.action-list li:hover, .assumption-list li:hover { background: var(--focus); }

.doc-disclaimer { margin-top: 32px; padding: 10px 12px; border: var(--rule); background: var(--canvas); font-size: 12.5px; color: var(--muted); }
.doc-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin-top: 18px; padding-top: 10px; border-top: 2px solid #111111; }
.free-watermark { font-family: var(--font-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); }
.doc-foot-meta { font-size: 12.5px; color: var(--muted); }

.pro-tools { margin: 72px 18px 0; padding: 20px 18px 24px; background: var(--paper); border: var(--rule); }

.flash-recalc { animation: flash-recalc 1.1s ease-out; }
@keyframes flash-recalc {
  0% { background-color: #FEF9C3; box-shadow: inset 0 0 0 3px #1D4ED8; }
  100% { background-color: transparent; box-shadow: inset 0 0 0 0 transparent; }
}

[data-edit-target]:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }

/* ---------- horizon bar & HUD ---------- */

.cockpit-horizon-bar {
  flex: 0 0 28px;
  height: 28px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 16px;
  background: #111111;
  color: #FFFFFF;
  font-family: var(--font-mono);
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
}
.hz-scroll { margin-left: auto; }

.mobile-hud { display: none; }

/* ---------- dialogs ---------- */

.brut-dialog {
  width: min(640px, calc(100vw - 24px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  padding: 22px 22px 18px;
  border: 2px solid #111111;
  border-radius: 0;
  box-shadow: 8px 8px 0 #111111;
  background: var(--paper);
  color: var(--ink);
}
.brut-dialog::backdrop { background: rgba(17, 17, 17, 0.62); }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dialog-title { font-family: var(--font-display); font-weight: 800; font-size: 21px; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.15; margin-bottom: 10px; }
.brut-dialog p { font-size: 14px; }
.dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.dialog-fine { margin-top: 12px; font-size: 12.5px !important; color: var(--muted); }
.pro-price { margin-bottom: 14px; }
.pro-price strong { font-family: var(--font-display); font-size: 17px; }
.free-vs-pro-table th, .free-vs-pro-table td { border: var(--rule); padding: 8px 10px; text-align: left; vertical-align: top; font-size: 13px; }
.free-vs-pro-table thead th { background: #111111; color: #FFFFFF; font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; }
.free-vs-pro-table tbody th { background: var(--canvas); font-weight: 700; }
.free-vs-pro-table td:last-child { background: #EFF6FF; }

/* ---------- desktop cockpit ---------- */

@media (min-width: 901px) {
  html, body { height: 100vh; height: 100dvh; overflow: hidden; }
  body { display: flex; flex-direction: column; }
  .app-header-stack { flex-shrink: 0; }
  .cockpit {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: start;
  }
  .inspector-pane {
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-right: var(--rule);
  }
  .inspector-dock { flex: 0 0 auto; }
  .inspector-scroll-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
  .dock-jump-shelf { flex: 0 0 auto; }
  .deliverable-zone {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
  .scroll-pane {
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 36px), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 36px), transparent 100%);
  }
  .scroll-pane.is-at-end { -webkit-mask-image: none; mask-image: none; }
  /* Stable document rhythm: rows keep a consistent height when presets or decisions change. */
  .ledger-table tbody td { height: 86px; }
  .evidence-table tbody td { height: 56px; }
  .holds-table tbody td { height: 94px; }
  .status-cell { min-height: 132px; }
  .id-cell { min-height: 52px; }
  .doc-two-col .col-block { min-height: 300px; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .brand-wordmark { font-size: 14px; letter-spacing: 0.03em; }
  .mast-cell { padding: 0 12px; }
  .mast-upgrade { padding: 8px 14px; font-size: 13px; }
  .mast-status { font-size: 12px; }
  .value-prop { font-size: 12.5px; }
  .dock-summary { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); }
  .dock-verdict, .dock-kpi { padding: 4px 8px; }
  .kpi-value { font-size: 16px; }
  .kpi-label { font-size: 10.5px; letter-spacing: 0.02em; }
  .verdict-reason { font-size: 11.5px; }
  .bench-index { font-size: 11.5px; padding: 0 8px; }
  .doc-sheet { padding: 20px 16px 16px; }
  .doc-sheet th, .doc-sheet td { padding: 6px 6px; font-size: 12.5px; }
  .ledger-table th:nth-child(1), .evidence-table th:nth-child(1), .holds-table th:nth-child(1) { width: 40px; }
  .ledger-table th:nth-child(3) { width: 80px; }
  .ledger-table tbody td { height: 120px; }
  .evidence-table tbody td { height: 74px; }
  .holds-table tbody td { height: 150px; }
  .status-cell { min-height: 164px; }
  .doc-two-col .col-block { min-height: 330px; }
  .dock-actions .btn-secondary { padding: 6px 10px; font-size: 12px; }
}

/* ---------- tablet & mobile ---------- */

@media (max-width: 900px) {
  html, body { height: auto; overflow: visible; }
  body { padding-bottom: calc(var(--hud-h) + 12px); }
  .masthead { grid-template-columns: minmax(0, 1fr) auto; }
  .mast-brand { grid-column: 1 / -1; border-right: 0; box-shadow: inset 0 -1px 0 #3F3F3F; min-height: 44px; }
  .mast-cell { min-width: 0; }
  .mast-cell { min-height: 0; padding-top: 8px; padding-bottom: 8px; }
  .mast-status { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mast-status span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .brand-wordmark { font-size: clamp(12px, 3.3vw, 17px); letter-spacing: 0.02em; }
  .toolbar { flex-wrap: wrap; padding: 8px 14px; }
  .save-state { white-space: normal; }
  .workflow-bar ol { padding: 0 14px; }
  .workflow-bar a { min-height: 44px; }
  .cockpit { display: block; }
  .inspector-pane { border-bottom: 2px solid #111111; }
  .cockpit-horizon-bar { display: none; }
  .mobile-metrics {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 0;
    padding: 12px;
    border-bottom: var(--rule);
    background: var(--canvas);
  }
  .mm-item { flex: 0 1 48%; max-width: 48%; display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border: var(--rule); background: var(--paper); }
  .mm-label { font-family: var(--font-mono); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
  .mm-value { font-size: 16px; font-weight: 700; }
  .action-dock { position: relative; top: auto; }
  .dock-actions, .dock-buttons { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
  .dock-buttons button { width: 100%; min-height: 44px; justify-content: center; }
  .deliverable-zone { padding-bottom: 32px; }
  .mobile-hud {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    gap: 10px;
    height: var(--hud-h);
    padding: 6px 12px;
    padding-bottom: max(6px, env(safe-area-inset-bottom));
    background: #111111;
    color: #FFFFFF;
    border-top: 2px solid #111111;
    white-space: nowrap;
    overflow: hidden;
    transition: transform 180ms ease;
  }
  .mobile-hud[data-revealed="false"] { transform: translateY(calc(100% + 4px)); }
  .hud-verdict { font-family: var(--font-display); font-weight: 800; font-size: 14px; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; color: #FFFFFF; }
  .hud-verdict::before { content: '■ '; }
  .hud-verdict[data-tone="positive"]::before { color: #86EFAC; }
  .hud-verdict[data-tone="info"]::before { color: #93C5FD; }
  .hud-verdict[data-tone="warn"]::before { color: #FCD34D; }
  .hud-verdict[data-tone="danger"]::before, .hud-verdict[data-tone="critical"]::before, .hud-verdict[data-tone="invalid"]::before { color: #FCA5A5; }
  .hud-open { font-size: 13px; color: #FFFFFF; white-space: nowrap; }
  .hud-report {
    margin-left: auto;
    min-height: 44px;
    padding: 6px 14px;
    border: 1.5px solid #FFFFFF;
    background: var(--paper);
    color: var(--ink);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }
  .hud-report:hover { background: var(--focus); }
  .hud-report:active { background: var(--canvas); }
  .notice-region[data-show="true"] {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--hud-h) + 12px);
    z-index: 45;
    border: 2px solid #111111;
    box-shadow: var(--shadow);
  }
  .notice { border-bottom: 0; }
  .dock-jump-shelf { display: none; }
  .dock-jump-shelf:has(.notice-region[data-show="true"]) { display: block; border: 0; }
  .dock-jump-shelf:has(.notice-region[data-show="true"]) .shelf-row { display: none; }
}

@media (max-width: 680px) {
  fieldset [class*="grid"], form [class*="grid"], .field-pair, .prop-grid { grid-template-columns: minmax(0, 1fr); }
  .field { grid-template-columns: minmax(0, 1fr); }
  .field > label, .field > .check-label { border-right: 0; border-bottom: var(--rule); flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .inspector-scroll-body { padding: 0 12px 56px; }
  .pane-head, .trust-reassurance-bar { padding-left: 12px; padding-right: 12px; }
  /* Compact pre-form stack so the first input lands inside the first viewport */
  .workflow-bar ol { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
  .workflow-bar ol::-webkit-scrollbar { display: none; }
  .workflow-bar li { flex: 0 0 auto; }
  .pane-head { padding-top: 6px; padding-bottom: 6px; }
  .live-note { display: none; }
  .mobile-metrics { flex-wrap: nowrap; gap: 6px; padding: 8px 12px; }
  .mm-item { flex: 1 1 0; max-width: none; min-width: 0; padding: 6px 8px; }
  .mm-label { font-size: 10.5px; line-height: 1.2; }
  .mm-value { font-size: 14px; white-space: nowrap; }
  .benchmark-row { position: relative; display: flex; flex-wrap: wrap; }
  .bench-index { flex: 1 1 auto; min-height: 28px; }
  .sample-badge { flex: 0 0 auto; padding: 0 12px; border-bottom: 0; }
  .bench-caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .bench-chips, .bench-tools { display: flex; }
  .bench-chips { flex: 1 0 100%; overflow-x: auto; scrollbar-width: none; border-top: var(--rule); }
  .bench-chips::-webkit-scrollbar { display: none; }
  .bench-tools { flex: 1 0 100%; justify-content: flex-end; border-top: var(--rule); }
  .preset-chip, #reset-btn { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
  #reset-btn { flex: 1 1 auto; text-align: center; }
  .trust-reassurance-bar { position: relative; padding-top: 5px; padding-bottom: 5px; }
  .trust-reassurance-bar p { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .dock-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dock-verdict { grid-column: 1 / -1; border-right: 0; border-bottom: var(--rule); }
  .dock-kpi { border-bottom: var(--rule); }
  .dock-kpi:nth-child(3) { border-right: 0; }
  .dock-kpi:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .dock-actions { padding: 8px 12px 12px; }
  #executive-deliverable { padding: 12px 12px 0; }
  .doc-sheet { padding: 16px 12px 14px; }
  .doc-title { font-size: 19px; }
  .doc-identity, .status-grid, .doc-two-col { grid-template-columns: minmax(0, 1fr); }
  .totals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc-sheet table, .doc-sheet thead, .doc-sheet tbody, .doc-sheet tr, .doc-sheet td { display: block; width: 100%; }
  .doc-sheet thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .doc-sheet tr { border: var(--rule); margin-bottom: 8px; }
  .doc-sheet td { border: 0; border-bottom: 1px solid #111111; }
  .doc-sheet td:last-child { border-bottom: 0; }
  .doc-sheet td.num-col { text-align: left; }
  .ledger-table td:first-child, .holds-table td:first-child, .evidence-table td:first-child { width: 100%; font-weight: 700; background: var(--canvas); }
  .pro-tools { margin: 72px 12px 0; padding: 16px 12px 20px; }
  .brut-dialog { padding: 18px 14px 14px; }
  .free-vs-pro-table th, .free-vs-pro-table td { padding: 6px 7px; font-size: 12.5px; }
}

@media (max-width: 420px) {
  .hud-open { display: none; }
  .mast-cell { padding: 0 12px; }
  .mast-status { font-size: 11.5px; }
  .mast-upgrade { padding: 8px 12px; font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- print: the deliverable only ---------- */

@media print {
  @page { margin: 14mm; }
  html, body { height: auto !important; overflow: visible !important; background: #FFFFFF !important; color: #111827 !important; padding: 0 !important; }
  body { display: block !important; }
  .app-header-stack, .inspector-pane, .action-dock, .cockpit-horizon-bar, .mobile-hud, .pro-tools,
  dialog, .notice-region, .seal-unlock, button, .skip-link, .workflow-bar, .sr-only { display: none !important; }
  .cockpit, .deliverable-zone { display: block !important; height: auto !important; overflow: visible !important; background: #FFFFFF !important; padding: 0 !important; -webkit-mask-image: none !important; mask-image: none !important; }
  #executive-deliverable { display: block !important; padding: 0 !important; }
  .doc-sheet { border: 0; padding: 0; color: #111827; }
  .doc-sheet *, .cert-seal * { color: #111827 !important; border-color: #111827 !important; box-shadow: none !important; }
  .role-badge { display: none !important; }
  .conflict-banner { background: #FFFFFF !important; border-color: #111827 !important; }
  .doc-sheet th, .doc-sheet td, .doc-identity, .id-cell, .status-cell, .total-cell, .doc-disclaimer, .cert-seal { border-color: #111827 !important; }
  .doc-sheet thead th, .id-cell dt, .doc-disclaimer { background: #F3F4F6 !important; }
  .status-verdict[data-tone="critical"], .row-flag[data-flag="critical"], .sev-badge[data-severity="critical"] { background: #FFFFFF !important; border: 2px solid #111827 !important; }
  .doc-sheet tbody tr:hover td { background: transparent !important; }
  .doc-marker[data-show="true"] { display: inline-block !important; border-color: #111827 !important; }
  .free-watermark { display: block !important; }
  .doc-block, .doc-h { break-inside: avoid-page; }
  .doc-h { break-after: avoid; page-break-after: avoid; }
  table { page-break-inside: auto; }
  tr { break-inside: avoid; page-break-inside: avoid; }
  .doc-sheet::before {
    content: 'DRAFT';
    position: fixed;
    top: 40%;
    left: 0;
    right: 0;
    text-align: center;
    font-family: var(--font-display);
    font-size: 120px;
    font-weight: 800;
    letter-spacing: 0.2em;
    color: rgba(17, 24, 39, 0.08);
    transform: rotate(-24deg);
    pointer-events: none;
  }
  body.is-pro .doc-sheet::before { content: none; }
  .doc-identity { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .totals-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .doc-two-col { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Evidence field height stability: the dropzone + chip list must not collapse
   when a recalc re-renders line state (harness-measured 111px -> 83px shrink). */
.field-evidence .check-label, .field-evidence .field-control { min-height: 110px; }
