/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4 · macrostructure: instrument-panel reporting within existing Workbench · genre: modern-minimal · theme: Quiet + analytic green · number-free N9-compatible rail · contrast/slop: pass · responsive: code pass at 320/375/414/768 · no script/CDN dependency */
@import url("./tokens.4ba73056570f.css");

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-width: 0; overflow-x: clip; }
html { background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); }
body { min-height: 100dvh; background: var(--color-paper); color: var(--color-ink); line-height: 1.5; }
a { color: inherit; }
button, input { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

.wordmark { color: var(--color-ink); font-family: var(--font-wordmark); font-size: 1.35rem; font-weight: 600; line-height: 1; text-decoration: none; white-space: nowrap; }
.product-name, .section-kicker, .rail-label, .scope-note { color: var(--color-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.09em; margin: 0; text-transform: uppercase; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1, h2, h3 { color: var(--color-ink); font-family: var(--font-display); margin-block: 0; min-width: 0; }
h1 { font-size: clamp(2rem, 5vw, 3.75rem); letter-spacing: -0.045em; line-height: 1.02; }
h2 { font-size: clamp(1.2rem, 2vw, 1.55rem); letter-spacing: -0.025em; line-height: 1.18; }
h3 { font-size: 0.95rem; line-height: 1.3; }

.button, .text-button, .mobile-menu button, .mobile-menu a, .mobile-menu summary { align-items: center; border-radius: var(--radius-sm); display: inline-flex; justify-content: center; min-height: 44px; white-space: nowrap; }
.button { border: var(--line) solid var(--color-accent); cursor: pointer; font-weight: 700; padding: var(--space-2) var(--space-5); transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-instant) var(--ease-out); }
.button--primary { background: var(--color-accent); color: var(--color-accent-ink); width: 100%; }
.button--quiet { background: var(--color-paper-raised); color: var(--color-accent); }
.button:active:not(:disabled):not([aria-disabled="true"]),
.text-button:active:not(:disabled):not([aria-disabled="true"]),
.mobile-menu summary:active,
.mobile-menu nav a:active:not([aria-disabled="true"]),
.mobile-menu nav button:active:not(:disabled):not([aria-disabled="true"]),
.rail-nav a:active:not([aria-disabled="true"]) { transform: translateY(1px); }
.button:disabled, .button[aria-disabled="true"], .rail-disabled, .mobile-menu nav [aria-disabled="true"] { cursor: not-allowed; opacity: 0.56; }
.button:disabled, .button[aria-disabled="true"] { background: var(--color-paper-soft); border-color: var(--color-rule-strong); color: var(--color-ink-soft); }
.button[data-state="loading"] { cursor: wait; opacity: 0.72; }
.button[data-state="success"] { background: var(--color-success); border-color: var(--color-success); color: var(--color-paper-raised); }
.button[data-state="error"] { background: var(--color-error); border-color: var(--color-error); color: var(--color-paper-raised); }

/* Login: a two-zone workbench entry, not a centred hero. */
.login-page { background: var(--color-paper-soft); }
.login-shell { display: grid; min-height: calc(100dvh - 56px); }
.login-intro { background: var(--color-ink); color: var(--color-paper); display: flex; flex-direction: column; gap: var(--space-12); justify-content: space-between; padding: var(--space-8) max(var(--space-5), env(safe-area-inset-left)); }
.login-intro .wordmark, .login-intro h1 { color: var(--color-paper); }
.login-intro .product-name { color: var(--color-rule); margin-block-end: var(--space-4); }
.login-summary { color: var(--color-rule); font-size: 1.05rem; margin: var(--space-5) 0 0; max-width: 58ch; }
.access-note { color: var(--color-rule); font-size: 0.85rem; margin: 0; }
.login-panel { align-self: center; background: var(--color-paper-raised); color: var(--color-ink); margin: var(--space-5); max-width: 32rem; padding: var(--space-6); }
.panel-heading { border-block-end: var(--line) solid var(--color-rule); margin-block-end: var(--space-6); padding-block-end: var(--space-5); }
.panel-heading p { color: var(--color-muted); margin: var(--space-2) 0 0; }
.login-form { display: grid; gap: var(--space-5); }
.field { display: grid; gap: var(--space-2); }
.field label { font-size: 0.875rem; font-weight: 700; }
.field input { background: var(--color-paper); border: var(--line) solid var(--color-rule-strong); border-radius: var(--radius-sm); color: var(--color-ink); min-height: 44px; outline: 2px solid transparent; outline-offset: 1px; padding: 0 var(--space-10) 0 var(--space-3); width: 100%; }
.field input:focus-visible { border-color: var(--color-ink-soft); outline-color: var(--color-focus); }
.field input:disabled, .field input[aria-disabled="true"] { cursor: not-allowed; opacity: 0.55; }
.field input[aria-invalid="true"] { background: var(--color-error-soft); border-color: var(--color-error); }
.field-help, .field-error { font-size: 0.78rem; margin: 0; min-height: 1lh; }
.field-help { color: var(--color-muted); }
.field-error { color: var(--color-error); }
.field-error p { margin: 0; }
.form-alert, .service-error { background: var(--color-error-soft); border: var(--line) solid var(--color-error); color: var(--color-ink); margin-block-end: var(--space-5); padding: var(--space-4); }
.form-alert p { margin: 0; }
.login-footer, .workbench-footer { align-items: center; background: var(--color-paper); border-block-start: var(--line) solid var(--color-rule); color: var(--color-muted); display: flex; font-size: 0.75rem; justify-content: space-between; min-height: 56px; padding: var(--space-3) max(var(--space-5), env(safe-area-inset-right)); }

/* Workbench macrostructure. */
.mobile-bar { align-items: center; background: var(--color-paper-raised); border-block-end: var(--line) solid var(--color-rule); display: flex; justify-content: space-between; min-height: 64px; padding: var(--space-2) max(var(--space-4), env(safe-area-inset-right)); position: relative; z-index: var(--z-nav); }
.mobile-menu { position: relative; }
.mobile-menu summary { cursor: pointer; font-size: 0.875rem; font-weight: 700; list-style: none; padding-inline: var(--space-3); transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-instant) var(--ease-out); }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu[open] summary { background: var(--color-paper-soft); color: var(--color-accent); }
.mobile-menu nav { background: var(--color-paper-raised); border: var(--line) solid var(--color-rule); box-shadow: 0 var(--space-2) var(--space-6) var(--color-shadow); display: grid; inset-block-start: calc(100% + var(--space-2)); inset-inline-end: 0; min-width: 12rem; padding: var(--space-2); position: absolute; z-index: var(--z-menu); }
.mobile-menu nav a, .mobile-menu nav span, .mobile-menu nav button { background: var(--color-paper-raised); border: 0; color: var(--color-ink); justify-content: flex-start; padding-inline: var(--space-3); text-decoration: none; width: 100%; }
.mobile-menu nav span { align-items: center; display: flex; min-height: 44px; opacity: 0.55; white-space: nowrap; }
.mobile-menu form { margin: 0; }
.workbench { max-width: 100%; min-height: calc(100dvh - 56px); min-width: 0; width: 100%; }
.side-rail { display: none; }
.workbench-main { max-width: 100%; min-width: 0; padding: var(--space-6) max(var(--space-4), env(safe-area-inset-right)) var(--space-12); width: 100%; }
.workbench-header { align-items: flex-end; border-block-end: var(--line) solid var(--color-rule); display: flex; gap: var(--space-5); justify-content: space-between; padding-block-end: var(--space-6); }
.workbench-header > div { flex: 1 1 auto; min-width: 0; }
.workbench-header h1 { font-size: clamp(1.85rem, 4vw, 3rem); max-width: 100%; }
.workbench-header .product-name { margin-block-end: var(--space-3); }
.scope-note { border: var(--line) solid var(--color-rule-strong); border-radius: 999px; flex: 0 0 auto; padding: var(--space-2) var(--space-3); white-space: nowrap; }
.current-work { background: var(--color-paper-raised); border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-6); margin-inline: calc(var(--space-4) * -1); padding: var(--space-8) var(--space-4); }
.current-context, .next-action { max-width: 100%; min-width: 0; }
.current-context h2 { font-size: clamp(1.45rem, 3vw, 2.25rem); margin-block-start: var(--space-3); max-width: 100%; overflow-wrap: anywhere; }
.workshop-meta { align-items: center; color: var(--color-muted); display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-3) 0 0; }
.next-action { border-block-start: var(--line) solid var(--color-rule); padding-block-start: var(--space-5); }
.action-text { color: var(--color-ink); font-size: 1.05rem; font-weight: 600; margin: var(--space-3) 0 var(--space-4); }
.disabled-help { color: var(--color-muted); font-size: 0.78rem; margin: var(--space-2) 0 0; max-width: 68ch; }
.status-summary { border-block-end: var(--line) solid var(--color-rule); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.status-summary div { min-width: 0; padding: var(--space-5) var(--space-2); }
.status-summary div + div { border-inline-start: var(--line) solid var(--color-rule); }
.status-summary strong, .status-summary span { display: block; }
.status-summary strong { font-size: clamp(1.5rem, 5vw, 2rem); font-variant-numeric: tabular-nums; }
.status-summary span { color: var(--color-muted); font-size: 0.75rem; }
.dashboard-grid { display: grid; gap: var(--space-8); padding-block: var(--space-8); }
.readiness-panel, .support-column > section { min-width: 0; }
.section-heading { border-block-end: var(--line) solid var(--color-rule); margin-block-end: var(--space-5); padding-block-end: var(--space-4); }
.section-heading p { color: var(--color-muted); font-size: 0.82rem; margin: var(--space-2) 0 0; }
.step-sequence { list-style: none; margin: 0; padding: 0; }
.step { align-items: start; display: grid; gap: var(--space-3); grid-template-columns: 0.75rem minmax(0, 1fr); min-height: 64px; padding-block-end: var(--space-4); position: relative; }
.step:not(:last-child)::after { background: var(--color-rule); content: ""; inset-block: 1.1rem -0.15rem; inset-inline-start: 0.35rem; position: absolute; width: var(--line); }
.status-dot { background: var(--color-paper); border: 2px solid var(--color-rule-strong); border-radius: 50%; height: 0.75rem; margin-block-start: 0.25rem; width: 0.75rem; z-index: 1; }
.step p { color: var(--color-muted); font-size: 0.75rem; margin: var(--space-1) 0 0; }
.step--succeeded .status-dot { background: var(--color-success); border-color: var(--color-success); }
.step--needs_attention .status-dot { background: var(--color-warning); border-color: var(--color-warning); }
.step--failed .status-dot { background: var(--color-error); border-color: var(--color-error); }
.support-column { display: grid; gap: var(--space-8); min-width: 0; }
.exception-list { display: grid; gap: var(--space-3); list-style: none; margin: 0; padding: 0; }
.exception-list li { background: var(--color-warning-soft); border: var(--line) solid var(--color-warning); color: var(--color-ink); padding: var(--space-3); }
.empty-state { background: var(--color-paper-soft); color: var(--color-muted); margin: 0; padding: var(--space-5); }
.spec-list { margin: 0; }
.spec-list > div { border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-2); padding-block: var(--space-3); }
.spec-list dt { font-size: 0.875rem; font-weight: 700; }
.spec-list dd { align-items: flex-start; display: grid; gap: var(--space-1); margin: 0; }
.spec-list dd > span:last-child { color: var(--color-muted); font-size: 0.75rem; }
.health-status { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; }
.health-status--configured { color: var(--color-success); }
.health-status--needs_attention { color: var(--color-warning); }
.health-status--failed { color: var(--color-error); }
.service-error { margin-block-start: var(--space-8); }
.button--primary:focus-visible { outline-color: var(--color-paper-raised); box-shadow: 0 0 0 5px var(--color-focus); }

/* Workshop selection: a compact schedule ledger with one explicit action per row. */
.message-stack { display: grid; gap: var(--space-3); margin-block-start: var(--space-6); }
.message { border: var(--line) solid var(--color-rule-strong); margin: 0; padding: var(--space-4); }
.message--success { background: var(--color-success-soft); border-color: var(--color-success); }
.message--error { background: var(--color-error-soft); border-color: var(--color-error); }
.workshop-picker { padding-block: var(--space-8); }
.workshop-list { list-style: none; margin: 0; padding: 0; }
.workshop-option { align-items: start; border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-5); padding-block: var(--space-5); }
.workshop-option:first-child { border-block-start: var(--line) solid var(--color-rule); }
.workshop-option > div { min-width: 0; }
.workshop-option h3 { font-size: 1.05rem; }
.workshop-location { color: var(--color-ink); margin: var(--space-2) 0 0; }
.workshop-schedule { align-items: center; color: var(--color-muted); display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-1) 0 0; }
.workshop-option form { margin: 0; }
.workshop-option .button { width: 100%; }
.workshop-empty h3 { margin-block-end: var(--space-2); }
.workshop-empty p { margin: 0; }

/* Attendance: one canonical person and one explicit outcome per row. */
.attendance-context { background: var(--color-paper-raised); border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-5); margin-inline: calc(var(--space-4) * -1); padding: var(--space-8) var(--space-4); }
.attendance-context h2 { margin-block-start: var(--space-3); }
.attendance-context > p { color: var(--color-muted); margin: 0; max-width: 60ch; }
.attendance-form { padding-block: var(--space-8); }
.attendance-table { border-block-start: var(--line) solid var(--color-rule); }
.attendance-row { border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-4); padding-block: var(--space-5); }
.attendance-person, .attendance-status { min-width: 0; }
.attendance-person h3 { font-size: 1rem; }
.attendance-person p, .attendance-submit p, .attendance-notice p { color: var(--color-muted); font-size: 0.8rem; margin: var(--space-1) 0 0; }
.attendance-status { display: grid; gap: var(--space-2); }
.attendance-status label { font-size: 0.78rem; font-weight: 700; }
.attendance-status select { background: var(--color-paper-raised); border: var(--line) solid var(--color-rule-strong); border-radius: var(--radius-sm); color: var(--color-ink); min-height: 44px; padding: 0 var(--space-8) 0 var(--space-3); width: 100%; }
.attendance-status select:focus-visible { border-color: var(--color-ink-soft); }
.attendance-submit { align-items: start; display: flex; flex-direction: column; gap: var(--space-4); padding-block-start: var(--space-6); }
.attendance-submit .button { width: 100%; }
.attendance-notice { margin-block-start: var(--space-8); }
.attendance-notice h3 { margin-block-end: var(--space-2); }

/* Workshop brief: one shared source for venue logistics, costs, and print output. */
.brief-context { background: var(--color-paper-raised); border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-5); margin-inline: calc(var(--space-4) * -1); padding: var(--space-8) var(--space-4); }
.brief-actions { align-items: start; display: grid; gap: var(--space-3); }
.brief-grid { padding-block-start: var(--space-8); }
.brief-panel { min-width: 0; }
.brief-form { display: grid; gap: var(--space-5); }
.brief-form-grid { display: grid; gap: var(--space-4); }
.brief-form-grid textarea { background: var(--color-paper-raised); border: var(--line) solid var(--color-rule-strong); border-radius: var(--radius-sm); color: var(--color-ink); min-height: 44px; outline: 2px solid transparent; outline-offset: 1px; padding: var(--space-3); resize: vertical; width: 100%; }
.brief-form-grid textarea:focus-visible { border-color: var(--color-ink-soft); outline-color: var(--color-focus); }
.brief-totals { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block: var(--space-5); }
.brief-totals div { background: var(--color-paper-soft); min-width: 0; padding: var(--space-4); }
.brief-totals span { color: var(--color-muted); display: block; font-size: 0.75rem; }
.brief-totals strong { display: block; font-size: 1.25rem; font-variant-numeric: tabular-nums; margin-block-start: var(--space-2); }
.brief-expense-table { min-width: 64rem; }
.print-shell { display: grid; gap: var(--space-6); margin: 0 auto; max-width: 72rem; padding: var(--space-6) max(var(--space-4), env(safe-area-inset-right)) var(--space-10); }
.print-header { align-items: start; border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-4); padding-block-end: var(--space-5); }
.print-grid { display: grid; gap: var(--space-5); }
.print-card { background: var(--color-paper-raised); border: var(--line) solid var(--color-rule); padding: var(--space-5); }
.print-card h2 { margin-block-end: var(--space-3); }
.print-card p { margin: 0 0 var(--space-4); }

/* Reports: data quality first, then stat-led summary, progression and aggregate sheets. */
.report-main { display: grid; gap: var(--space-8); }
.report-source { background: var(--color-analytic-soft); border: var(--line) solid var(--color-analytic); color: var(--color-ink); display: grid; gap: var(--space-4); padding: var(--space-5); }
.report-source h2 { margin-block-start: var(--space-2); }
.report-source > p, .report-source ul { margin: 0; max-width: 72ch; }
.report-source ul { display: grid; gap: var(--space-2); padding-inline-start: var(--space-5); }
.report-hero { align-items: end; border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-6); padding-block: var(--space-3) var(--space-8); }
.report-hero h1 { font-size: clamp(2.7rem, 10vw, 6.75rem); letter-spacing: -0.055em; line-height: 0.88; margin-block-start: var(--space-3); }
.report-focal { color: var(--color-analytic-strong); font-size: clamp(3.75rem, 18vw, 7rem); font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: -0.065em; line-height: 0.82; margin: var(--space-5) 0 0; }
.report-focal-label { color: var(--color-muted); font-size: 0.78rem; margin: var(--space-3) 0 var(--space-8); }
.report-lede { color: var(--color-ink-soft); font-size: clamp(1rem, 2vw, 1.2rem); margin: var(--space-5) 0 0; max-width: 64ch; }
.report-export { align-items: stretch; display: grid; gap: var(--space-2); }
.report-export .button { text-decoration: none; }
.report-export p { color: var(--color-muted); font-size: 0.78rem; margin: var(--space-1) 0 0; }
.report-filters { border-block-end: var(--line) solid var(--color-rule); padding-block-end: var(--space-8); }
.filter-grid { display: grid; gap: var(--space-4); }
.filter-field { display: grid; gap: var(--space-2); min-width: 0; }
.filter-field label { font-size: 0.8rem; font-weight: 700; }
.filter-field input, .filter-field select { background: var(--color-paper-raised); border: var(--line) solid var(--color-rule-strong); border-radius: var(--radius-sm); color: var(--color-ink); min-height: 44px; outline: 2px solid transparent; outline-offset: 1px; padding-inline: var(--space-3); width: 100%; }
.filter-field input:focus-visible, .filter-field select:focus-visible { border-color: var(--color-ink-soft); outline-color: var(--color-focus); }
.filter-field input:disabled, .filter-field select:disabled { background: var(--color-paper-soft); color: var(--color-disabled); cursor: not-allowed; opacity: 0.55; }
.filter-field--error input, .filter-field--error select { background: var(--color-error-soft); border-color: var(--color-error); }
.filter-field--error .field-help { color: var(--color-error); }
.filter-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-4); margin-block-start: var(--space-5); }
.filter-actions .button { width: auto; }
.text-link { color: var(--color-accent); font-weight: 700; min-height: 44px; padding-block: var(--space-3); text-decoration-thickness: var(--line); text-underline-offset: var(--space-1); white-space: nowrap; }
.instrument-panel { background: var(--color-instrument); color: var(--color-instrument-ink); padding: clamp(var(--space-5), 4vw, var(--space-8)); }
.instrument-heading { align-items: start; border-block-end: var(--line) solid var(--color-instrument-rule); display: flex; gap: var(--space-4); justify-content: space-between; padding-block-end: var(--space-4); }
.instrument-heading h2 { color: inherit; font-size: 1.05rem; }
.instrument-heading p { color: var(--color-instrument-muted); font-size: 0.78rem; margin: var(--space-1) 0 0; }
.instrument-heading > span { align-items: center; color: var(--color-instrument-signal); display: inline-flex; font-size: 0.72rem; font-weight: 700; gap: var(--space-2); white-space: nowrap; }
.instrument-heading > span::before { background: currentColor; border-radius: 50%; content: ""; height: var(--space-2); width: var(--space-2); }
.instrument-readouts { display: grid; margin: 0; }
.instrument-readout { border-block-end: var(--line) solid var(--color-instrument-rule); min-width: 0; padding-block: var(--space-5); }
.instrument-readout dt { color: var(--color-instrument-muted); font-size: 0.75rem; }
.instrument-readout dd { display: block; font-size: clamp(1.8rem, 8vw, 3rem); font-variant-numeric: tabular-nums; letter-spacing: -0.04em; line-height: 1; margin: var(--space-2) 0 0; overflow-wrap: anywhere; }
.instrument-readout--primary dd { color: var(--color-instrument-signal); }
.instrument-readout small { color: var(--color-instrument-muted); display: block; font-size: 0.7rem; margin-block-start: var(--space-2); }
.supporting-metrics { border-block: var(--line) solid var(--color-rule); padding-block: var(--space-6); }
.supporting-metrics dl { display: grid; margin: 0; }
.supporting-metrics dl > div { align-items: baseline; border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr) auto; padding-block: var(--space-3); }
.supporting-metrics dt { color: var(--color-ink-soft); font-size: 0.78rem; }
.supporting-metrics dd { font-size: 1rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: 0; text-align: end; }
.supporting-metrics small { color: var(--color-muted); font-size: 0.7rem; grid-column: 1 / -1; }
.profitability-panel { border-block-end: var(--line) solid var(--color-rule); padding-block-end: var(--space-8); }
.profit-ranking { display: grid; list-style: none; margin: 0; padding: 0; }
.profit-ranking li { border-block-end: var(--line) solid var(--color-rule); padding-block: var(--space-4); }
.profit-ranking strong, .least-profit strong, .premium-ranking strong { display: block; font-size: clamp(1.35rem, 4vw, 2rem); font-variant-numeric: tabular-nums; letter-spacing: -0.025em; margin-block-start: var(--space-2); }
.profit-ranking p, .least-profit > p:last-child, .premium-ranking > p:last-child, .ranking-note { color: var(--color-muted); font-size: 0.75rem; margin: var(--space-2) 0 0; }
.least-profit { background: var(--color-paper-soft); color: var(--color-ink); margin-block-start: var(--space-5); padding: var(--space-5); }
.least-profit h3, .premium-ranking h3 { margin-block-start: var(--space-2); }
.premium-ranking { border-block-start: var(--line) solid var(--color-rule-strong); margin-block-start: var(--space-6); padding-block-start: var(--space-5); }
.is-unavailable { color: var(--color-muted); font-style: normal; }
.report-grid { display: grid; gap: var(--space-10); }
.report-panel { min-width: 0; }
.report-progression { list-style: none; margin: 0; padding: 0; }
.report-progression li { border-block-end: var(--line) solid var(--color-rule); padding-block: var(--space-4); }
.report-progression h3 { font-size: 0.9rem; }
.report-progression p { align-items: baseline; display: flex; gap: var(--space-3); margin: var(--space-2) 0 0; }
.report-progression strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.report-progression p span { color: var(--color-muted); font-size: 0.75rem; }
.appointment-list { display: grid; }
.appointment-list article { border-block-end: var(--line) solid var(--color-rule); padding-block: var(--space-4); }
.appointment-list dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: var(--space-3) 0 0; }
.appointment-list dl > div + div { border-inline-start: var(--line) solid var(--color-rule); padding-inline-start: var(--space-4); }
.appointment-list dt { color: var(--color-muted); font-size: 0.72rem; }
.appointment-list dd { font-size: 1.25rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: var(--space-1) 0 0; }
.appointment-list article > p { color: var(--color-muted); font-size: 0.75rem; margin: var(--space-2) 0 0; }
.trend-list { list-style: none; margin: 0; padding: 0; }
.trend-list li { align-items: center; border-block-end: var(--line) solid var(--color-rule); display: grid; gap: var(--space-3); grid-template-columns: minmax(6rem, 0.7fr) minmax(5rem, 2fr) auto; min-height: 50px; }
.trend-list > li > span:first-child { font-size: 0.8rem; }
.trend-track { background: var(--color-paper-pressed); height: 0.45rem; overflow: clip; }
.trend-track i { background: var(--color-analytic); display: block; height: 100%; width: var(--bar); }
.trend-list strong { font-variant-numeric: tabular-nums; }
.trend-list small { display: none; }
.report-table-wrap { max-width: 100%; overflow-x: auto; }
.report-table { border-collapse: collapse; font-size: 0.78rem; font-variant-numeric: tabular-nums; min-width: 42rem; width: 100%; }
.report-table th, .report-table td { border-block-end: var(--line) solid var(--color-rule); padding: var(--space-3); text-align: end; vertical-align: top; }
.report-table tbody th { font-size: inherit; font-weight: 700; letter-spacing: 0; text-transform: none; }
.report-table th { color: var(--color-muted); font-size: 0.7rem; letter-spacing: 0.04em; text-transform: uppercase; }
.report-table th:first-child, .report-table td:first-child { padding-inline-start: 0; text-align: start; }
.report-table th:last-child, .report-table td:last-child { padding-inline-end: 0; }
.campaign-table small { color: var(--color-muted); display: block; font-size: 0.68rem; margin-block-start: var(--space-1); }
.campaign-table { min-width: 58rem; }
.campaign-conversion-table { min-width: 78rem; }
.report-footer > span:first-child { color: var(--color-ink); font-family: var(--font-display); font-size: clamp(1rem, 3vw, 1.5rem); font-weight: 700; }

@media (hover: hover) and (pointer: fine) {
  .button--primary:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--color-accent-hover); }
  .button--quiet:hover:not(:disabled):not([aria-disabled="true"]), .mobile-menu summary:hover, .mobile-menu nav a:hover:not([aria-disabled="true"]), .mobile-menu nav button:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--color-paper-soft); }
  .field input:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--color-paper-soft); }
  .rail-nav a:hover, .text-button:hover { color: var(--color-accent); }
  .filter-field input:hover:not(:disabled), .filter-field select:hover:not(:disabled) { background: var(--color-paper-soft); }
  .text-link:hover { color: var(--color-accent-hover); }
}

@media (max-width: 39.999rem) {
  .workbench-header { align-items: flex-start; flex-direction: column; gap: var(--space-4); }
  .report-table { min-width: 0; }
  .campaign-table, .campaign-conversion-table { min-width: 0; }
  .report-table thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  .report-table, .report-table tbody, .report-table tr, .report-table td, .report-table tbody th { display: block; width: 100%; }
  .report-table tr { border-block-end: var(--line) solid var(--color-rule-strong); padding-block: var(--space-3); }
  .report-table td, .report-table td:first-child, .report-table td:last-child { align-items: baseline; border: 0; display: flex; gap: var(--space-4); justify-content: space-between; padding: var(--space-2) 0; text-align: end; }
  .report-table tbody th { border: 0; color: var(--color-ink); padding: var(--space-2) 0; text-align: start; }
  .report-table td::before { color: var(--color-muted); content: attr(data-label); flex: 0 0 42%; font-size: 0.68rem; letter-spacing: 0.04em; text-align: start; text-transform: uppercase; }
}

@media (min-width: 40rem) {
  .login-panel { margin: var(--space-10); padding: var(--space-8); }
  .current-work { margin-inline: 0; padding-inline: 0; }
  .brief-context { margin-inline: 0; padding-inline: 0; }
  .spec-list > div { align-items: start; grid-template-columns: minmax(7rem, 0.7fr) minmax(0, 1.3fr); }
  .workshop-option { align-items: center; grid-template-columns: minmax(0, 1fr) auto; }
  .workshop-option .button { width: auto; }
  .attendance-context { margin-inline: 0; padding-inline: 0; }
  .attendance-row { align-items: center; grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.42fr); }
  .attendance-submit { align-items: center; flex-direction: row; justify-content: space-between; }
  .attendance-submit .button { width: auto; }
  .brief-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .expense-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .report-export { align-items: center; grid-template-columns: auto auto; justify-content: start; }
  .report-export p { grid-column: 1 / -1; }
  .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instrument-readouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instrument-readout { padding-inline: var(--space-4); }
  .instrument-readout:nth-child(even) { border-inline-start: var(--line) solid var(--color-instrument-rule); }
  .instrument-readout:nth-child(odd) { padding-inline-start: 0; }
  .instrument-readout:nth-child(even) { padding-inline-end: 0; }
  .supporting-metrics dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supporting-metrics dl > div:nth-child(odd) { padding-inline-end: var(--space-5); }
  .supporting-metrics dl > div:nth-child(even) { border-inline-start: var(--line) solid var(--color-rule); padding-inline-start: var(--space-5); }
  .profit-ranking { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .profit-ranking li { display: block; padding-inline: var(--space-4); }
  .profit-ranking li + li { border-inline-start: var(--line) solid var(--color-rule); }
  .profit-ranking li:first-child { padding-inline-start: 0; }
  .profit-ranking li:last-child { padding-inline-end: 0; }
  .profit-ranking li:nth-child(n) { border-block-end: 0; }
  .profit-ranking h3 { margin-block-start: var(--space-3); }
}

@media (min-width: 60rem) {
  .login-shell { grid-template-columns: minmax(0, 1.2fr) minmax(26rem, 0.8fr); }
  .login-intro { padding: var(--space-12) clamp(var(--space-8), 6vw, var(--space-16)); }
  .login-panel { margin-inline: clamp(var(--space-8), 6vw, var(--space-16)); }
  .mobile-bar { display: none; }
  .workbench { display: grid; grid-template-columns: minmax(0, 11.5rem) minmax(0, 1fr); }
  .side-rail { background: var(--color-paper-raised); border-inline-end: var(--line) solid var(--color-rule); display: flex; flex-direction: column; justify-content: space-between; max-width: 11.5rem; min-height: calc(100dvh - 56px); min-width: 0; overflow: clip; padding: var(--space-8) var(--space-4) var(--space-6); position: sticky; inset-block-start: 0; width: 11.5rem; }
  .rail-label { margin-block-start: var(--space-3); }
  .rail-nav { display: grid; gap: var(--space-1); }
  .rail-nav a, .rail-disabled { align-items: center; display: flex; font-size: 0.875rem; min-height: 44px; text-decoration: none; white-space: nowrap; }
  .rail-nav a[aria-current="page"] { color: var(--color-accent); font-weight: 700; }
  .rail-user { border-block-start: var(--line) solid var(--color-rule); padding-block-start: var(--space-4); }
  .rail-user p { font-size: 0.8rem; margin: 0; }
  .text-button { background: transparent; border: 0; color: var(--color-muted); cursor: pointer; justify-content: flex-start; padding: 0; }
  .workbench-main { padding: var(--space-10) clamp(var(--space-8), 5vw, var(--space-16)) var(--space-16); }
  .dashboard-grid { grid-template-columns: minmax(20rem, 1.25fr) minmax(18rem, 0.75fr); gap: clamp(var(--space-8), 5vw, var(--space-16)); }
  .report-main { gap: var(--space-12); }
  .report-hero { grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.55fr); }
  .report-export { align-self: end; grid-template-columns: 1fr; justify-content: stretch; }
  .report-export p { grid-column: auto; }
  .filter-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .instrument-readouts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .instrument-readout:nth-child(n) { border-block-end: 0; border-inline-start: var(--line) solid var(--color-instrument-rule); padding-inline: var(--space-4); }
  .instrument-readout:nth-child(3n+1) { border-inline-start: 0; padding-inline-start: 0; }
  .instrument-readout:nth-child(3n) { padding-inline-end: 0; }
  .instrument-readout:nth-child(n+4) { border-block-start: var(--line) solid var(--color-instrument-rule); }
  .report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 72rem) {
  .current-work { grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr); }
  .next-action { border-block-start: 0; border-inline-start: var(--line) solid var(--color-rule); padding-block-start: 0; padding-inline-start: var(--space-6); }
  .brief-context { grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr); }
  .print-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (pointer: coarse) {
  .button, .text-button, .rail-nav a, .mobile-menu summary, .mobile-menu nav a, .mobile-menu nav button { min-height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media print {
  .mobile-bar, .side-rail, .workbench-footer, .print-only-hide { display: none !important; }
  .workbench, .workbench-main, .print-shell { display: block; max-width: none; padding: 0; }
  .print-card, .brief-context, .brief-panel { break-inside: avoid; box-shadow: none; }
  .report-table { font-size: 0.72rem; min-width: 0; }
}
