/* Route-owned focused hosted pages.
   This file is the static-asset foothold for retiring the legacy cockpit. */

:root {
  --text-xs: .68rem;
  --text-s: .76rem;
  --text-m: .84rem;
  --text-l: 1.08rem;
  --text-xl: clamp(1.3rem, 2.8vw, 1.9rem);
  --weight-regular: 400;
  --weight-strong: 800;
  --motion-instant: .01ms;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --control-label-gap: 6px;
  --control-grid-gap: 10px;
  --control-height-utility: 34px;
  --control-height-task: 40px;
  --control-height-touch: 44px;
  --radius-surface: 8px;
  --radius-pill: 999px;
  --motion-duration: 120ms;
  --focus-ring: 3px solid rgba(0, 102, 255, .45);
  --shadow-sticky: 0 10px 24px rgba(16, 20, 52, .14);
  --shadow-card: 0 2px 8px rgba(16, 20, 52, .06);
}

/* Type scale (ID2): five sizes, applied here and only here.
   Component rules override inside their own @media blocks only. */
.layout-variant-buttons button span,
.temporal-import-row,
.pill-list span,
.selected-file-meta,
.upload-progress,
.review-flow-step,
.settings-badge,
.settings-summary span,
.settings-card-head span,
.settings-savebar span,
.nav-workspace-map > strong,
#primary-nav a.nav-sub-link,
.help-topic-grid h3,
.dcma14-readout b,
.es-goal-target b,
.es-contract-foot p,
.es-swarm-value,
.es-story-table,
.field-coverage-table,
.kit-chart p,
.tacit-pathology-grid strong,
.file-preview-trigger span,
.member-row span,
.page-project-context p,
.page-support-disclosure > summary { font-size: var(--text-m); }
.intent-steps span,
.report-facts dt,
.readiness-badge,
.layout-reading-order li,
.schedule-comment-button,
.schedule-thread-drawer > #schedule-thread-status,
.schedule-thread-choice span,
.temporal-status-badge,
.eyebrow,
.review-timeline > div,
.performance-goal-path span strong,
.surface-goal-path span strong,
.page-roadmap li strong,
.context-receipt dd,
.help-workflow-map a span,
.help-topic-grid p,
.metric-contract-ceiling b,
.metric-contract-grid p,
.artifact-contract-grid p,
.metric-contract-note,
.ev-position-row,
.es-contract-ladder strong,
.es-contract-ladder p,
.es-story-tile small,
.es-swarm-label,
.flame-small-multiples figcaption,
.threshold-compare-row p,
.custody-file-list span,
.permission-grid span,
.security-context-strip,
.safe-preview-samples { font-size: var(--text-s); }
.intent-steps i,
.layout-compare article > span,
.layout-compare dt,
.schedule-comment-button b,
.nav-goal-group b,
.nav-goal-group small,
.nav-workspace-map > span,
.nav-workspace-map > small,
.performance-goal-path span,
.surface-goal-path span,
.evidence-layer-legend span,
.page-roadmap li > a > span:first-child,
.page-roadmap li small,
.context-receipt dt,
.context-receipt p,
.metric-contract-ceiling,
.metric-contract-grid article > b,
.artifact-contract-grid article > b,
.metric-contract-grid small,
.artifact-contract-grid small,
.metric-summary-strip span,
.metric-summary-strip small,
.metric-axis,
.ev-position-row.is-withheld > div span,
.dcma14-label small,
.dcma14-readout span,
.dcma14-readout small,
.file-evidence-step b,
.file-evidence-step small,
.es-goal-target,
.es-contract-step,
.es-story-tile span,
.es-story-tile b small,
.es-story-table thead th,
.es-goal-state,
.es-metric-value span,
.es-metric-value small,
.bitemporal-point,
.bitemporal-plane p,
.bitemporal-axis,
.glossary-term > span,
.field-state-card span,
.field-state-label,
.glossary-field dt { font-size: var(--text-xs); }
.schedule-thread-head strong,
.page-evidence-coach .section-heading > div > strong,
.metric-contract-head strong,
.es-goal-header strong,
.es-contract-ladder b,
.es-story-headline,
.es-story-tile b,
.es-metric-value b,
.field-state-card strong { font-size: var(--text-l); }
.intent-copy > strong,
.temporal-hero h3,
.upload-icon,
.settings-hero h2,
.custody-delta-grid strong,
.page-verdict,
.tacit-closure-grid strong { font-size: var(--text-xl); }
table, td, th { font-variant-numeric: tabular-nums; }


.page-intent {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 18px;
  min-height: 142px;
  margin: 0 0 22px;
  padding: 20px 22px;
  overflow: hidden;
  border: 1px solid var(--line-accent);
  border-radius: var(--radius-surface);
  background:
    radial-gradient(circle at 90% 12%, rgba(56, 189, 248, .24), transparent 28%),
    linear-gradient(135deg, #f5f9ff 0%, #ffffff 58%, #eef7ff 100%);
  box-shadow: var(--shadow-card);
}

.page-intent::after {
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  content: "";
  background: linear-gradient(90deg, #0066ff, #06b6d4, #f59e0b);
}

.intent-copy {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  gap: 5px;
}

.intent-copy > strong {
  
  line-height: 1.1;
}

.intent-copy p {
  max-width: 58ch;
  margin: 0;
  color: var(--muted);
}

.intent-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.intent-steps span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px 4px 5px;
  border: 1px solid #d6e5fb;
  border-radius: 999px;
  background: rgba(255, 255, 255, .76);
  color: var(--muted);
  
  font-weight: 800;
}

.intent-steps i {
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  color: var(--on-accent);
  background: #0066ff;
  
  font-style: normal;
}

.intent-art {
  position: relative;
  min-height: 100px;
  align-self: center;
}

.intent-core,
.intent-orbit,
.intent-spark {
  position: absolute;
  display: block;
}
.home-actions { align-items: center; }
.home-actions .primary { min-width: 210px; justify-content: center; }
.actions .secondary { background: var(--soft); }
.actions .quiet-link { border-color: transparent; background: transparent; color: var(--blue); padding-inline: 4px; }
.report-row { display: grid; gap: 12px; }
.report-row-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.report-row-heading > a { display: grid; gap: 3px; min-width: 0; color: var(--ink); text-decoration: none; }
.report-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.report-facts div { padding: 10px; border-radius: 7px; background: var(--panel); border: 1px solid var(--line); }
.report-facts dt { color: var(--muted);  font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.report-facts dd { margin: 3px 0 0; font-weight: 800; overflow-wrap: anywhere; }
.readiness-badge { flex: 0 0 auto; padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px;  font-weight: 900; white-space: nowrap; }
.readiness-badge.is-ready { color: var(--good); border-color: var(--good-line); background: var(--good-fill); }
.readiness-badge.is-alert { color: var(--bad); border-color: var(--bad-line); background: var(--bad-fill); }
.readiness-badge.is-waiting { color: var(--warn); border-color: var(--warn-line); background: var(--warn-fill); }
.evidence-gaps { margin-top: 14px; padding: 14px; border: 1px solid var(--warn-line); border-radius: 8px; background: var(--warn-fill); }
.evidence-gaps ul { margin: 8px 0 0; padding-left: 18px; }
*:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }
html, body { max-width: 100%; overflow-x: clip; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 9px 12px; border: 2px solid var(--blue); border-radius: 6px; color: var(--on-accent); background: var(--blue); font-weight: 800; text-decoration: none; transform: translateY(-180%); transition: transform var(--motion-duration) ease; }
.skip-link:focus-visible { transform: translateY(0); }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
.layout-lab {
  display: grid;
  gap: 14px;
  margin: 0 0 20px;
  padding: 18px;
  border: 1px solid #c9d9f3;
  border-radius: var(--radius-surface);
  background: linear-gradient(135deg, var(--soft), var(--panel));
}
.layout-lab[hidden] { display: none !important; }
.layout-lab-toggle { margin-left: auto; min-height: 32px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--blue); background: var(--panel); font: inherit; font-weight: 800; }
/* The context bar. One row, always visible: which project, which version, and
   the Data Date every reading on the page is bound to.

   This block existed twice, both copies forcing display:grid with !important
   from an older shape, so the header could not be changed from the page that
   emits it -- the copies simply won. One block now, no !important, and the
   layout lives with the markup it describes. */
.page-project-context { align-items: flex-start; margin-bottom: 12px; padding: 8px 10px; }
.page-project-context .role-composition-badge { align-self: flex-start; margin-left: auto; white-space: nowrap; }
.page-project-context > .role-composition-badge,
#page-project-ev-status { display:none !important; }
@media (max-width:760px) {
  .page-project-context { align-items: start; }
  .page-project-context .role-composition-badge { margin-left: 0; white-space: normal; }
  .page-context-contract { grid-template-columns: minmax(0,1fr); }
  .context-fact-id { justify-self:start; }
  .page-context-fact { min-width: 0; overflow-wrap: anywhere; }
}
.security-context-strip { min-height: 0; margin-bottom: 10px; padding: 7px 10px;  }
.page-support-disclosure { margin-top: 12px; padding: 8px 0; }
.page-support-disclosure > summary { color: var(--muted);  }
.shell main { padding-top: 10px !important; }
.breadcrumb { margin-bottom: 6px !important; }
/* Dark theme.

   The previous version redefined five tokens and then forced a background
   colour onto body/main/section/article to cover what the tokens missed. That
   is why the pages read half light and half dark: the sledgehammer darkened
   containers while 400+ literal hex values inside components stayed at their
   light-mode values -- most visibly the left nav, which painted #fff under
   near-white ink and disappeared entirely.

   Every colour a component uses is now a token, so the theme is this block and
   nothing else. Redefine tokens here; never paint a container to compensate. */
:root {
  --dark-ink: #e8eefc;
  --dark-muted: #9db0cc;
  --dark-line: #29344a;
  --dark-line-accent: #3a5480;
  --dark-panel: #0e141f;
  --dark-panel-raised: #161f30;
  --dark-soft: #151d2c;
  --dark-soft-accent: #16243c;
  --dark-blue: #6aa5ff;
  --dark-accent: #8bbaff;
  --dark-on-accent: #08101c;
  --dark-good: #5fd3a0;
  --dark-good-fill: #10281f;
  --dark-good-line: #235f45;
  --dark-bad: #ff9d90;
  --dark-bad-fill: #2b1613;
  --dark-bad-line: #70322a;
  --dark-warn: #f0b366;
  --dark-warn-fill: #2b2011;
  --dark-warn-line: #6d4c1e;
  --dark-status-pass: #7fb0ff;
  --dark-status-pass-fill: #14203a;
  --dark-status-warning: #f0b366;
  --dark-status-warning-fill: #2b2011;
  --dark-status-fail: #ff9d90;
  --dark-status-fail-fill: #2b1613;
  --dark-status-muted: #9db0cc;
  --dark-status-muted-fill: #1a2233;
  --dark-shadow-strong: 0 10px 28px rgba(0, 0, 0, .55);
  --dark-shadow-card: 0 1px 3px rgba(0, 0, 0, .4);
}

/* One list of assignments, applied from either signal: the viewer's system
   preference, or an explicit [data-theme="dark"] on the root. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --ink: var(--dark-ink); --muted: var(--dark-muted);
    --line: var(--dark-line); --line-accent: var(--dark-line-accent);
    --panel: var(--dark-panel); --panel-raised: var(--dark-panel-raised);
    --soft: var(--dark-soft); --soft-accent: var(--dark-soft-accent);
    --blue: var(--dark-blue); --accent: var(--dark-accent); --on-accent: var(--dark-on-accent);
    --good: var(--dark-good); --good-fill: var(--dark-good-fill); --good-line: var(--dark-good-line);
    --bad: var(--dark-bad); --bad-fill: var(--dark-bad-fill); --bad-line: var(--dark-bad-line);
    --warn: var(--dark-warn); --warn-fill: var(--dark-warn-fill); --warn-line: var(--dark-warn-line);
    --status-pass: var(--dark-status-pass); --status-pass-fill: var(--dark-status-pass-fill);
    --status-warning: var(--dark-status-warning); --status-warning-fill: var(--dark-status-warning-fill);
    --status-fail: var(--dark-status-fail); --status-fail-fill: var(--dark-status-fail-fill);
    --status-muted: var(--dark-status-muted); --status-muted-fill: var(--dark-status-muted-fill);
    --green: var(--dark-status-pass);
    --shadow-sticky: var(--dark-shadow-strong); --shadow-card: var(--dark-shadow-card);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: var(--dark-ink); --muted: var(--dark-muted);
  --line: var(--dark-line); --line-accent: var(--dark-line-accent);
  --panel: var(--dark-panel); --panel-raised: var(--dark-panel-raised);
  --soft: var(--dark-soft); --soft-accent: var(--dark-soft-accent);
  --blue: var(--dark-blue); --accent: var(--dark-accent); --on-accent: var(--dark-on-accent);
  --good: var(--dark-good); --good-fill: var(--dark-good-fill); --good-line: var(--dark-good-line);
  --bad: var(--dark-bad); --bad-fill: var(--dark-bad-fill); --bad-line: var(--dark-bad-line);
  --warn: var(--dark-warn); --warn-fill: var(--dark-warn-fill); --warn-line: var(--dark-warn-line);
  --status-pass: var(--dark-status-pass); --status-pass-fill: var(--dark-status-pass-fill);
  --status-warning: var(--dark-status-warning); --status-warning-fill: var(--dark-status-warning-fill);
  --status-fail: var(--dark-status-fail); --status-fail-fill: var(--dark-status-fail-fill);
  --status-muted: var(--dark-status-muted); --status-muted-fill: var(--dark-status-muted-fill);
  --green: var(--dark-status-pass);
  --shadow-sticky: var(--dark-shadow-strong); --shadow-card: var(--dark-shadow-card);
}

/* Form controls have a user-agent background that no token reaches. */
input, select, textarea { background: var(--panel); color: var(--ink); border-color: var(--line); }
.layout-variant-buttons { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 10px; }
.layout-variant-buttons button { display: grid; gap: 4px; min-height: 92px; padding: 13px; text-align: left; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.layout-variant-buttons button span { color: var(--muted);  line-height: 1.35; }
.layout-variant-buttons button.is-selected { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(0,102,255,.12); background: var(--soft-accent); }
.layout-reading-order { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; align-items: start; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.layout-reading-order ol { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; counter-reset: reading-order; }
.layout-reading-order li { counter-increment: reading-order; padding: 4px 8px; border-radius: 999px; background: var(--soft-accent);  font-weight: 800; }
.layout-reading-order li::before { content: counter(reading-order) ". "; color: var(--blue); }
.layout-reading-order p { grid-column: 2; margin: 0; color: var(--muted); }
.layout-feedback-form { display: grid; grid-template-columns: 130px minmax(220px,1fr) auto; gap: 10px; align-items: end; }
.layout-feedback-form label { margin: 0; }
.layout-compare { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 12px; }
.layout-compare article { padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.layout-compare article.is-selected { border-color: var(--blue); }
.layout-compare article > span { color: var(--blue);  font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.layout-compare h3 { margin: 4px 0; }
.layout-compare dl { display: grid; gap: 8px; }
.layout-compare dl div { padding: 8px; border-radius: 7px; background: var(--soft); }
.layout-compare dt { color: var(--muted);  font-weight: 800; text-transform: uppercase; }
.layout-compare dd { margin: 2px 0 0; overflow-wrap: anywhere; }
#decision-surface[data-layout-surface] { display: flex; flex-direction: column; gap: 14px; }
#decision-surface[data-layout-surface] > * { order: 20; }
#decision-surface[data-layout-surface="owner_briefing"] > #home-float-visual,
#decision-surface[data-layout-surface="schedule_milestones"] > #milestones-visual,
#decision-surface[data-layout-surface="performance_trajectory"] > #ev-metric-contract,
#decision-surface[data-layout-surface="visual_stage"] > #history-motion,
#decision-surface[data-layout-surface="exports_page"] > #export-preview,
#decision-surface[data-layout-surface="critical_path_what_if"] > #wi-results { order: 1; }
#decision-surface[data-focus-visual="true"] > #selected-visual-observatory { order: 1; }
/* The dedicated Visual Observatory route folds History support after startup.
   Keep those direct children out of the first paint so the disclosure can be
   assembled without first showing and then removing a different page. */
#decision-surface[data-focus-visual="true"] > #history-review-spine,
#decision-surface[data-focus-visual="true"] > #history-motion,
#decision-surface[data-focus-visual="true"] > #history-list,
#decision-surface[data-focus-visual="true"] > #history-observer-health,
#decision-surface[data-focus-visual="true"] > #selected-review { display: none; }
#decision-surface[data-focus-visual="true"] > .focused-secondary { display: block; }
#decision-surface[data-focus-visual="true"] #selected-visual-detail {
  min-height: 220px;
  box-sizing: border-box;
}
#decision-surface[data-focus-visual="true"] #selected-visual-recommendation {
  min-height: 135px;
  box-sizing: border-box;
}
#selected-visual-observatory:not([hidden]) { display: flex; flex-direction: column; }
#selected-visual-observatory > .section-heading { order: 0; }
#selected-visual-observatory > #selected-visual-detail { order: 1; }
#selected-visual-observatory > #selected-visual-recommendation { order: 2; }
#selected-visual-observatory > #selected-visual-lanes { order: 3; }
#selected-visual-observatory > * { order: 10; }
.health-results { display: flex; flex-direction: column; }
.health-results > .section-heading { order: 0; }
.health-results > #dcma14-graphic { order: 1; }
.health-results > #dcma14-concern-cards { order: 2; }
.health-results > .focused-secondary { order: 3; }
.focused-secondary { margin: 0; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
.focused-secondary > summary { color: var(--blue); }
.dcma-check-rows { margin-top: 8px; padding: 8px 0 0; }
body[data-layout-variant="questions_led"] #milestones-list { order: 20; }
body[data-layout-variant="questions_led"] #milestones-visual { order: 30; }
body[data-layout-variant="movement_led"] #milestones-visual { order: 20; }
body[data-layout-variant="movement_led"] #milestones-list { order: 30; }
body[data-layout-variant="motion_first"] #performance-trajectory { order: 10; }
body[data-layout-variant="position_first"] #performance-results { order: 10; }
body[data-layout-variant="knowledge_time_led"] #temporal-comparison { order: 10; }
body[data-layout-variant="knowledge_time_led"] #temporal-bitemporal-map { order: 20; }
body[data-layout-variant="valid_time_led"] #temporal-bitemporal-map { order: 10; }
body[data-layout-variant="artifact_matrix"] #export-format-contract { order: 10; }
body[data-layout-variant="audience_matrix"] #export-audience-matrix { order: 10; }
body[data-layout-variant="delta_first"] #forensics-delta { order: 10; }
body[data-layout-variant="custody_sequence"] #forensics-custody { order: 10; }
body[data-layout-variant="receipt_led"] #review-file-model { order: 10; }
body[data-layout-variant="pipeline_led"] #upload-dropzone { order: 10; }
body[data-layout-variant="recovery_funnel_led"] #wi-results { order: 10; }
body[data-layout-variant="eligibility_led"] #wi-replay-gate { order: 10; }
body[data-layout-variant="file_ledger"] #import-file-list { order: 10; }
body[data-layout-variant="evidence_chain"] #upload-evidence-summary { order: 10; }
@media (max-width: 700px) {
  .layout-feedback-form { grid-template-columns: 1fr; }
  .layout-reading-order { grid-template-columns: 1fr; }
  .layout-reading-order p { grid-column: 1; }
}
.schedule-comment-button { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; margin: 6px 0 0 8px; padding: 5px 8px; border: 1px solid #bfd2ef; border-radius: 999px; background: var(--soft); color: var(--accent);  font-weight: 850; white-space: nowrap; }
.schedule-comment-button:hover { border-color: var(--blue); background: var(--soft-accent); }
.schedule-comment-button b { display: inline-grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; background: var(--blue); color: var(--on-accent);  }
.home-float-lane { grid-template-columns: minmax(180px,1fr) minmax(140px,2fr) 64px auto; }
.dcma14-row .schedule-comment-button { align-self: center; margin: 0; }
.milestone-collaboration-row .schedule-comment-button { margin-left: 5px; }
.schedule-thread-backdrop { position: fixed; inset: 0; z-index: 70; background: rgba(10,22,45,.24); }
.schedule-thread-drawer { position: fixed; z-index: 80; top: 0; right: 0; display: grid; grid-template-rows: auto auto minmax(0,1fr) auto auto auto; gap: 14px; box-sizing:border-box; width: min(420px,100vw); max-width:none; height: 100dvh; max-height:none; margin:0 0 0 auto; padding: 22px; overflow: hidden; border:0; border-left: 1px solid #bfd2ef; background: var(--panel); box-shadow: -18px 0 42px rgba(10,22,45,.16); }
.schedule-thread-drawer::backdrop,.cpm-activity-drawer::backdrop,.milestone-drawer::backdrop { background:rgba(10,22,45,.24); }
.schedule-thread-drawer[hidden], .schedule-thread-backdrop[hidden] { display: none !important; }

/* UX program: compact density and keyboard-first global finder. */
html[data-density="compact"] .table-scroll th,
html[data-density="compact"] .table-scroll td,
html[data-density="compact"] table th,
html[data-density="compact"] table td { padding-top: 5px; padding-bottom: 5px; min-height: 28px; }
html[data-density="compact"] .history-row,
html[data-density="compact"] .home-float-lane { padding-top: 5px; padding-bottom: 5px; }
.command-palette { position: fixed; z-index: 1000; top:14vh; width:min(620px,calc(100vw - 28px)); max-width:none; max-height:72vh; margin:0 auto; padding:0; overflow:visible; border:0; border-radius:var(--radius-surface); background:transparent; }
.command-palette[hidden] { display: none !important; }
.command-palette::backdrop { background:rgba(12,18,32,.42); }
.command-palette-backdrop { position:fixed; z-index:999; inset:0; background:rgba(12,18,32,.42); }
.command-palette-backdrop[hidden] { display:none !important; }
.command-palette-panel { box-sizing:border-box; width:100%; padding:18px; border:1px solid var(--line-accent); border-radius:var(--radius-surface); background:var(--panel); box-shadow:var(--shadow-sticky); }
.command-palette-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.command-palette-head button { min-width:44px; min-height:44px; }
.command-palette-panel input { margin-top: 6px; }
.command-palette-panel [role="listbox"] { display: grid; gap: 4px; margin-top: 10px; max-height: 42vh; overflow: auto; }
.command-palette-panel [role="option"] { display: block; padding: 8px 10px; border-radius: 6px; color: var(--ink); text-decoration: none; }
.command-palette-panel [role="option"]:hover, .command-palette-panel [role="option"][aria-selected="true"] { background: var(--soft-accent); }
.contained-scroll { scrollbar-gutter:stable; }
.contained-scroll[data-scroll-before="true"] { box-shadow:inset 14px 0 12px -14px rgba(16,20,52,.55); }
.contained-scroll[data-scroll-after="true"] { box-shadow:inset -14px 0 12px -14px rgba(16,20,52,.55); }
.contained-scroll[data-scroll-before="true"][data-scroll-after="true"] { box-shadow:inset 14px 0 12px -14px rgba(16,20,52,.55),inset -14px 0 12px -14px rgba(16,20,52,.55); }
.contained-scroll:focus-visible { outline:var(--focus-ring); outline-offset:2px; }
.contained-scroll-hint { margin:5px 0 0; color:var(--muted); font-size:var(--text-xs); }
.responsive-action-toolbar { min-width:0; flex-wrap:wrap; }
.page-masthead-actions.responsive-action-toolbar :is(button,a,summary) { min-height:44px; }
@media (max-width:900px) { .responsive-action-toolbar { width:100%; justify-content:flex-start; } .responsive-action-toolbar .page-export-bar { justify-content:start; } }
@media print { .contained-scroll { box-shadow:none !important; } .contained-scroll-hint { display:none !important; } }

/* Title-block hierarchy: data date is the record's primary fact. */
.page-context-contract { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(110px,.75fr) minmax(140px,.8fr); gap:8px 12px; }
.page-context-contract .context-fact strong { font-size: var(--text-xl); }
.page-context-contract .context-fact-id { grid-column: 1 / -1; justify-self: start; }
.page-context-contract .context-fact-id code { font-size: var(--text-xs); }
@media (max-width: 1024px) { .page-context-contract { grid-template-columns: minmax(160px,1fr) minmax(190px,1.2fr) minmax(180px,.9fr); } .page-context-contract .context-fact-id { grid-column: auto; } }
@media (max-width: 640px) { .page-context-contract { grid-template-columns: 1fr; } .page-context-contract .context-fact-id { grid-column: auto; } }
.schedule-thread-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.schedule-thread-head strong { display: block; max-width: 34ch;  }
.schedule-thread-head p { margin: 4px 0 0; }
.schedule-thread-head { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.schedule-thread-drawer .context-receipt { margin: 0; padding: 12px; border-color: var(--line); background: var(--soft); }
.schedule-thread-drawer .schedule-thread-list { padding: 2px 4px 2px 0; }
.schedule-thread-drawer .focused-form { max-width: none; padding-top: 12px; border-top: 1px solid var(--line); }
.schedule-thread-drawer .focused-form label { display: grid; gap: 6px; }
.schedule-thread-drawer .focused-form textarea { min-height: 92px; resize: vertical; }
.schedule-thread-drawer > .actions { margin-top: -4px; }
.schedule-thread-drawer > #schedule-thread-status { margin: 0;  }
.schedule-thread-list { min-height: 0; overflow: auto; padding-right: 4px; }
.schedule-thread-choices { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 8px; margin-bottom: 12px; }
.schedule-thread-choice { display: grid; gap: 4px; padding: 10px; text-align: left; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
.schedule-thread-choice span { color: var(--muted);  }
.schedule-thread-detail { padding: 14px; border: 1px solid var(--line-accent); border-radius: 9px; background: var(--soft); }
.schedule-thread-comments { display: grid; gap: 8px; margin-top: 10px; }
.schedule-thread-comments article { padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.schedule-thread-comments p { margin: 5px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
body.schedule-thread-open { overflow: hidden; }
@media (max-width: 640px) {
  .schedule-thread-drawer { width: 100vw; padding: 14px; }
  .home-float-lane { grid-template-columns: 1fr 56px; }
  .home-float-lane .schedule-comment-button { grid-column: 1 / -1; justify-self: start; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .schedule-thread-drawer, .schedule-thread-backdrop, .layout-lab *, .schedule-comment-button { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
/* Tooltips are helpful on wide authenticated pages, but their absolute text
   boxes can expand the document width on narrow viewports. The controls keep
   accessible labels, so hide the decorative duplicate only when space is
   constrained. */
@media (max-width: 640px) { .ux-tooltip::after { display: none; } }
@media (max-width: 768px) {
  .report-facts { grid-template-columns: 1fr 1fr; }
  .report-facts div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 375px) {
  .page-intent { padding: 14px; }
  .intent-steps { grid-template-columns: 1fr; }
  .report-row-heading { display: grid; }
  .readiness-badge { justify-self: start; }
  .report-facts { grid-template-columns: 1fr; }
  .report-facts div:last-child { grid-column: auto; }
  .home-actions .primary { width: 100%; }
}

.intent-core {
  top: 50%;
  left: 50%;
  width: 52px;
  height: 52px;
  border: 7px solid var(--panel);
  border-radius: 50%;
  background: linear-gradient(135deg, #0066ff, #06b6d4);
  box-shadow: 0 0 0 8px rgba(0, 102, 255, .1), 0 10px 20px rgba(0, 102, 255, .22);
  transform: translate(-50%, -50%);
}

.intent-orbit {
  top: 50%;
  left: 50%;
  border: 1px solid rgba(0, 102, 255, .28);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(-18deg);
}

.intent-orbit-one {
  width: 112px;
  height: 58px;
}

.intent-orbit-two {
  width: 70px;
  height: 116px;
  border-color: rgba(6, 182, 212, .36);
  transform: translate(-50%, -50%) rotate(34deg);
}

.intent-spark {
  width: 8px;
  height: 8px;
  border: 2px solid var(--panel);
  border-radius: 50%;
  background: #f59e0b;
  box-shadow: 0 0 0 4px rgba(245, 158, 11, .15);
}

.intent-spark-one { top: 13%; left: 18%; }
.intent-spark-two { right: 10%; bottom: 12%; background: #06b6d4; box-shadow: 0 0 0 4px rgba(6, 182, 212, .15); }

.page-intent-review { background-color: var(--soft); }
.page-intent-schedule_health { background-color: var(--warn-fill); background-image: radial-gradient(circle at 90% 12%, rgba(245, 158, 11, .2), transparent 28%), linear-gradient(135deg, var(--warn-fill) 0%, var(--panel) 58%, var(--soft-accent) 100%); }
.page-intent-performance { background-image: radial-gradient(circle at 90% 12%, rgba(16, 185, 129, .2), transparent 28%), linear-gradient(135deg, var(--good-fill) 0%, var(--panel) 58%, var(--soft-accent) 100%); }
.page-intent-history { background-image: radial-gradient(circle at 90% 12%, rgba(139, 92, 246, .18), transparent 28%), linear-gradient(135deg, var(--soft-accent) 0%, var(--panel) 58%, var(--soft-accent) 100%); }
.page-intent-settings { background-image: radial-gradient(circle at 90% 12%, rgba(245, 158, 11, .18), transparent 28%), linear-gradient(135deg, var(--warn-fill) 0%, var(--panel) 58%, var(--soft-accent) 100%); }

@media (max-width: 640px) {
  .page-intent { grid-template-columns: 1fr; min-height: 0; padding: 17px; }
  .intent-art { position: absolute; top: 10px; right: 8px; width: 92px; opacity: .68; transform: scale(.75); transform-origin: top right; }
  .intent-copy { padding-right: 62px; }
  .intent-steps { gap: 5px; }
}

.history-row a {
  color: inherit;
  text-decoration: none;
}

.history-row .row-title {
  display: block;
}

.history-row .row-meta {
  color: var(--muted);
  display: block;
  font-weight: 600;
  margin-top: 4px;
}

/* Temporal history is a secondary evidence view: make the two clocks and
   bounded read posture obvious without competing with Review. */
.temporal-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.8fr); gap:16px; align-items:stretch; margin:14px 0; padding:18px; border:1px solid var(--line-accent); border-radius:10px; background:linear-gradient(135deg,var(--soft),var(--panel) 58%,var(--soft-accent)); }
.temporal-hero h3 { margin:4px 0 6px;  }
.temporal-hero p { margin:0; color:var(--muted); }
.temporal-clock-pair { display:grid; grid-template-columns:1fr 1fr; gap:8px; align-items:stretch; }
.temporal-clock-pair span { display:grid; align-content:center; gap:4px; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.temporal-clock-pair span:last-child { border-color:var(--line-accent); background:var(--soft-accent); }
.temporal-clock-pair small { color:var(--muted); line-height:1.3; }
.temporal-controls,.temporal-imports,.temporal-help { margin-top:14px; padding:16px; border:1px solid var(--line); border-radius:9px; background:var(--panel); }
.temporal-belief-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.temporal-belief-card { min-height:170px; padding:16px; border:1px solid var(--line); border-radius:9px; background:var(--soft); }
.temporal-belief-card:last-child { background:var(--soft-accent); border-color:var(--line-accent); }
.temporal-belief-card h3 { margin:4px 0 12px; }
.temporal-result { display:grid; gap:8px; }
.temporal-result pre { max-height:180px; overflow:auto; margin:0; padding:10px; border-radius:7px; background:var(--ink); color:var(--on-accent); font:12px/1.45 ui-monospace,SFMono-Regular,monospace; white-space:pre-wrap; }
.temporal-status-badge { display:inline-flex; width:max-content; padding:4px 8px; border-radius:999px; background:var(--soft-accent); color:var(--muted);  text-transform:uppercase; letter-spacing:.04em; }
.temporal-status-badge.is-ok { background:var(--good-fill); color:var(--good); }
.temporal-status-badge.is-conflicted { background:var(--bad-fill); color:var(--bad); }
.temporal-status-badge.is-unknown,.temporal-status-badge.is-not_found { background:var(--warn-fill); color:var(--warn); }
.temporal-import-list { display:grid; gap:8px; margin-top:10px; }
.temporal-import-row { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:10px; padding:11px 12px; border:1px solid var(--line); border-radius:7px; background:var(--soft);  }
.temporal-import-row span { color:var(--muted); }
.temporal-help summary { padding:0; }
.temporal-help .grid { margin-top:12px; }
@media (max-width:700px) { .temporal-hero,.temporal-belief-grid { grid-template-columns:1fr; } .temporal-clock-pair { grid-template-columns:1fr 1fr; } .temporal-import-row { grid-template-columns:1fr; gap:3px; } }

.file-detail-card {
  display: grid;
  gap: 8px;
}

.file-detail-card code {
  overflow-wrap: anywhere;
}

.pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.pill-list span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--muted);
  
  font-weight: 800;
  padding: 3px 8px;
}

.upload-dropzone {
  display: grid;
  place-items: center;
  gap: 4px;
  min-height: 150px;
  padding: 24px;
  border: 2px dashed var(--line-accent);
  border-radius: 10px;
  background: var(--soft);
  text-align: center;
  cursor: pointer;
}

.upload-dropzone:hover,
.upload-dropzone:focus-visible,
.upload-dropzone.is-dragging {
  border-color: var(--blue);
  background: var(--soft-accent);
  outline: none;
}

.upload-dropzone input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.upload-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--on-accent);
  background: var(--blue);
  
  font-weight: 800;
}

.selected-files {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.selected-file {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel);
}

.selected-file-info { min-width: 0; }
.selected-file-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}
.selected-file-meta { color: var(--muted);  }
.remove-file {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  background: var(--panel);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.upload-progress {
  display: grid;
  gap: 6px;
  margin-top: 10px;
  color: var(--muted);
  
}
.upload-progress-bar {
  width: 100%;
  height: 8px;
  border-radius: 99px;
  background: var(--blue);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--motion-duration) ease;
}

/* The focused workspace uses a persistent route rail on desktop. */
@media (min-width: 861px) {
  .shell {
    width: min(calc(100% - 280px), 1180px) !important;
    margin-left: 252px !important;
    margin-right: 28px !important;
  }

  .shell > nav[aria-label="primary app navigation"] {
    position: fixed;
    z-index: 4;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 220px;
    gap: 6px;
    margin: 0;
    padding: 92px 14px 20px;
    border-right: 1px solid var(--line);
    background: var(--panel);
    overflow-x: hidden;
  }

  .shell > nav[aria-label="primary app navigation"]::before {
    content: "SuperWave-XER";
    position: absolute;
    top: 28px;
    left: 20px;
    color: var(--ink);
    font-size: var(--text-l);
    font-weight: 900;
  }

  .shell > nav[aria-label="primary app navigation"] a {
    justify-content: flex-start;
    min-height: 44px;
    padding: 10px 14px;
    border-color: transparent;
  }

  .shell > nav[aria-label="primary app navigation"] a.is-current {
    color: var(--blue);
    background: var(--soft-accent);
    border-color: var(--line-accent);
  }
}

.review-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0 24px;
}

.review-flow-step {
  position: relative;
  display: grid;
  gap: 2px;
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel);
  color: var(--muted);
  
}

.review-flow-step.is-current {
  border-color: var(--blue);
  background: var(--soft-accent);
  color: var(--ink);
}

.review-flow-step.is-complete { color: var(--good); }
.review-flow-step strong { color: inherit; }

.settings-shell {
  display: grid;
  gap: 16px;
}

.settings-hero,
.settings-summary,
.settings-card,
.settings-preview,
.settings-savebar {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.settings-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 18px;
  background:
    radial-gradient(circle at top right, rgba(37, 99, 235, .12), transparent 34%),
    linear-gradient(135deg, #fff, #f8fbff);
}

.settings-hero h2 {
  margin: 4px 0 6px;
  
}

.eyebrow {
  color: var(--blue);
  
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.settings-badge {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 7px 11px;
  font-weight: 900;
  
}

.settings-badge.is-clean {
  color: var(--good);
  background: var(--good-fill);
}

.settings-badge.is-dirty {
  color: var(--warn);
  background: var(--warn-fill);
}

.settings-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--line);
}

.settings-summary > div {
  display: grid;
  gap: 4px;
  min-height: 74px;
  padding: 12px;
  background: var(--panel);
}

.settings-summary span,
.settings-card-head span,
.settings-savebar span {
  color: var(--muted);
  
  font-weight: 700;
}

.settings-summary strong {
  overflow-wrap: anywhere;
}

.settings-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.settings-form label {
  display: grid;
  gap: 6px;
}

.settings-card,
.settings-preview {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.settings-card-wide,
.settings-preview,
.settings-savebar {
  grid-column: 1 / -1;
}

.settings-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.settings-card-head > div {
  display: grid;
  gap: 3px;
}

.settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.settings-preview {
  background: var(--soft);
}

.settings-preview ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.settings-savebar {
  position: sticky;
  bottom: 12px;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 12px;
}

.settings-savebar > div:first-child {
  display: grid;
  gap: 3px;
}

.review-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.review-timeline > div {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel);
  color: var(--muted);
  
}

.review-timeline > div.is-complete {
  border-color: var(--good-line);
  background: var(--good-fill);
  color: var(--good);
}

.review-timeline > div.is-current {
  border-color: var(--line-accent);
  background: var(--soft-accent);
  color: var(--blue);
}

.review-timeline b { color: var(--ink); }

@media (max-width: 860px) {
  .review-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-summary,
  .settings-form,
  .settings-grid {
    grid-template-columns: 1fr;
  }
  .settings-savebar {
    position: static;
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .shell > nav[aria-label="primary app navigation"] {
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .shell > nav[aria-label="primary app navigation"] a { flex: 0 0 auto; }
  .review-flow { grid-template-columns: 1fr; }
  .review-timeline { grid-template-columns: 1fr; }
  .settings-hero {
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .selected-file { align-items: flex-start; }
}

/* Goal-oriented navigation: sections remain route-owned, while the rail now
   explains the decision journey instead of presenting an undifferentiated
   feature list. */
.nav-goal-group {
  display: grid;
  gap: 1px;
  margin: 13px 10px 3px;
  color: var(--muted);
}
.nav-goal-group:first-child { margin-top: 0; }
.nav-goal-group b {
  display: block;
  color: var(--ink);
  
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nav-goal-group small { display: block; margin-top: 3px;  line-height: 1.25; overflow-wrap: anywhere; }
.nav-workspace-map {
  display: grid;
  gap: 3px;
  margin: 0 6px 10px;
  padding: 11px;
  border: 1px solid var(--line-accent);
  border-radius: 9px;
  background: linear-gradient(135deg, var(--soft), var(--panel));
}
.nav-workspace-map > span { display: block; color: var(--blue);  font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.nav-workspace-map > strong { display: block;  line-height: 1.25; }
.nav-workspace-map > small { display: block; color: var(--muted);  line-height: 1.3; overflow-wrap: anywhere; }
.nav-goal-group.is-active { padding-left: 7px; border-left: 3px solid var(--blue); color: var(--muted); }
#primary-nav a.nav-sub-link { margin-left: 18px; padding-left: 18px; border-left: 1px solid var(--line); border-radius: 0 7px 7px 0;  }
#primary-nav a.nav-sub-link::before { left: 7px; width: 4px; height: 4px; }
#primary-nav a[data-nav-goal] { position: relative; padding-left: 20px; }
#primary-nav a[data-nav-goal]::before {
  position: absolute;
  left: 8px;
  width: 5px;
  height: 5px;
  border: 1px solid #9fb0c7;
  border-radius: 50%;
  content: "";
}
#primary-nav a.is-current::before {
  border-color: var(--blue);
  background: var(--blue);
  box-shadow: 0 0 0 4px rgba(0, 102, 255, .12);
}
#primary-nav .nav-utility-divider {
  width: 100%;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
#primary-nav a.nav-utility-link { background: var(--soft); }
#primary-nav a.nav-utility-link.is-current { color: var(--on-accent); background: var(--blue); }

.performance-goal-path {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 18px 0 24px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  overflow: hidden;
}
.performance-goal-path a {
  position: relative;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 70px;
  padding: 11px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
  text-decoration: none;
}
.performance-goal-path a:last-child { border-right: 0; }
.performance-goal-path a > b {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: var(--on-accent);
  background: var(--blue);
}
.performance-goal-path span { display: grid; gap: 2px; color: var(--blue);  font-weight: 900; text-transform: uppercase; }
.performance-goal-path span strong { color: var(--ink);  line-height: 1.25; text-transform: none; }

/* Shared outcome path: each evidence surface shows the decision sequence before
   controls, so navigation continues inside the page instead of becoming a
   collection of unrelated panels. */
.surface-goal-path {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 18px 0 24px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
}
.surface-goal-path a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 70px;
  padding: 11px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
  text-decoration: none;
}
.surface-goal-path a:last-child { border-right: 0; }
.surface-goal-path a > b {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: var(--on-accent);
  background: var(--blue);
}
.surface-goal-path span { display: grid; gap: 2px; color: var(--blue);  font-weight: 900; text-transform: uppercase; }
.surface-goal-path span strong { color: var(--ink);  line-height: 1.25; text-transform: none; }

.page-evidence-coach {
  margin-top: 28px;
  padding: 18px;
  border: 1px solid var(--line-accent);
  border-radius: 10px;
  background: linear-gradient(145deg, var(--soft), var(--panel) 60%, var(--good-fill));
}
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.section-heading > div { min-width: 0; }
.section-heading .eyebrow,.section-heading > div > strong { display: block; }
.section-heading p { margin: 3px 0 0; }
.page-evidence-coach .section-heading > div > strong { display: block; margin-top: 3px;  }
.page-evidence-coach textarea { width: 100%; min-height: 116px; margin-top: 7px; padding: 11px; resize: vertical; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--panel); font: inherit; }
.page-evidence-coach .actions { margin: 10px 0 5px; }
.evidence-layer-legend { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0; }
.evidence-layer-legend span { padding: 6px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--panel);  }
.evidence-layer-legend b { color: var(--ink); }
.evidence-layer-legend .is-observed { border-color: var(--good-line); background: var(--good-fill); }
.evidence-layer-legend .is-derived { border-color: var(--line-accent); background: var(--soft-accent); }
.evidence-layer-legend .is-withheld { border-style: dashed; background: var(--soft); }
.evidence-roadmap-panel { margin: 18px 0 24px; padding: 16px; border: 1px solid var(--line-accent); border-radius: 10px; background: linear-gradient(135deg,var(--soft),var(--panel)); }
.evidence-roadmap-panel .section-heading { align-items: flex-start; }
.page-roadmap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 16px 0 8px; padding: 0; list-style: none; }
.page-roadmap li { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.page-roadmap li a { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 8px; align-items: center; min-height: 76px; padding: 9px; border: 0; border-radius: inherit; color: inherit; background: transparent; text-decoration: none; }
.page-roadmap li a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.page-roadmap li > a > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: var(--on-accent); background: var(--muted);  font-weight: 900; }
.page-roadmap li > a > span:last-child { display: block; min-width: 0; width: auto; height: auto; color: inherit; background: transparent; }
.page-roadmap li strong,.page-roadmap li small { display: block; min-width: 0; overflow-wrap: anywhere; }
.page-roadmap li strong {  line-height: 1.25; }
.page-roadmap li small { margin-top: 3px; color: var(--muted);  }
.page-roadmap li[data-roadmap-state="complete"] { border-color: var(--good-line); background: var(--good-fill); }
.page-roadmap li[data-roadmap-state="complete"] > a > span:first-child { background: var(--good); }
.page-roadmap li[data-roadmap-state="current"] { border-color: var(--line-accent); box-shadow: 0 0 0 2px rgba(29,78,216,.12); }
.page-roadmap li[data-roadmap-state="current"] > a > span:first-child { background: var(--blue); }
.page-roadmap li[data-roadmap-state="blocked"] { border-color: var(--bad-line); background: var(--bad-fill); }
.page-roadmap li[data-roadmap-state="blocked"] > a > span:first-child { background: var(--bad); }
.page-roadmap li[data-roadmap-state="withheld"] { border-style: dashed; background: var(--soft); }
.page-roadmap li[data-roadmap-state="withheld"] > a > span:first-child { color: var(--muted); background: var(--soft); }
.context-receipt { margin: 14px 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.context-receipt > strong { display: block; margin-bottom: 8px; }
.context-receipt dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; }
.context-receipt dl > div { min-width: 0; padding: 8px; border-left: 3px solid #9fb0c7; background: var(--soft); }
.context-receipt dt { color: var(--muted);  font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.context-receipt dd { margin: 2px 0 0; overflow-wrap: anywhere;  font-weight: 750; }
.context-receipt p { margin: 8px 0 0;  }
.help-workflow-map { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 14px 0 22px; }
.help-workflow-map a { position: relative; min-width: 0; padding: 13px; border: 1px solid var(--line); border-top: 4px solid var(--line-accent); border-radius: 8px; color: var(--ink); background: var(--panel); text-decoration: none; }
.help-workflow-map a:not(:last-child)::after { position: absolute; z-index: 1; top: 45%; right: -12px; color: var(--muted); content: "→"; }
.help-workflow-map a strong,.help-workflow-map a span { display: block; }
.help-workflow-map a span { margin-top: 4px; color: var(--muted);  }
.help-workflow-map a.is-context { border-color: var(--blue); background: var(--soft-accent); box-shadow: 0 0 0 2px rgba(29,78,216,.12); }
.help-topic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.help-topic-grid article { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.help-topic-grid article[hidden] { display: none; }
.help-topic-grid h3 { margin: 0 0 5px;  }
.help-topic-grid p { margin: 0; color: var(--muted);  }

.surface-metric-contract {
  margin: 16px 0 22px;
  padding: 18px;
  border: 1px solid var(--line-accent);
  border-radius: 10px;
  background: linear-gradient(135deg, var(--soft-accent), var(--panel) 65%, var(--good-fill));
}
.metric-contract-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.metric-contract-head strong { display: block; margin: 3px 0;  }
.metric-contract-head p { max-width: 68ch; margin: 4px 0 0; color: var(--muted); }
.metric-contract-ceiling {
  flex: 0 0 auto;
  min-width: 128px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: var(--soft);
  
  text-align: center;
  text-transform: uppercase;
}
.metric-contract-ceiling b { display: block; margin-top: 2px;  text-transform: none; }
.metric-contract-grid,.artifact-contract-grid,.metric-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 16px;
}
.metric-summary-strip { grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); }
.es-identity, .es-duration-ledger { margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-surface); background: var(--soft); border-left: 3px solid var(--line-accent); }
.es-identity ul { margin: 6px 0 0; padding-left: 18px; }
.es-identity li { margin-bottom: 3px; }
/* A step where identity broke is the one thing on this page that makes the
   readings above it unreliable, so it is marked, not merely listed. */
.es-identity.is-blind { border-left-color: var(--bad); background: var(--bad-fill); }
.es-duration-ledger table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.es-duration-ledger th, .es-duration-ledger td { padding: 5px 8px; text-align: left; border-bottom: 1px solid var(--line); }

.metric-contract-grid article,.artifact-contract-grid article,.metric-summary-strip article {
  min-width: 0;
  padding: 11px;
  border-top: 3px solid var(--line-accent);
  border-radius: 7px;
  background: var(--panel);
  box-shadow: 0 4px 12px rgba(30, 64, 175, .06);
}
.metric-contract-grid article > b,.artifact-contract-grid article > b { display: block; color: var(--blue);  text-transform: uppercase; }
.metric-contract-grid article > strong,.artifact-contract-grid article > strong,.metric-summary-strip strong { display: block; margin: 4px 0; overflow-wrap: anywhere; }
.metric-contract-grid small,.artifact-contract-grid small,.metric-summary-strip span,.metric-summary-strip small { display: block; color: var(--muted);  }
.metric-contract-grid p,.artifact-contract-grid p { margin: 8px 0 0;  line-height: 1.35; }
.metric-summary-strip article.is-withheld,.metric-contract-grid article.is-withheld { border-top-color: var(--muted); border-top-style: dashed; background: var(--soft); }
.metric-contract-grid article.is-on-target { border-top-color: var(--good); }
.metric-contract-grid article.is-off-target { border-top-color: var(--bad); }
.metric-contract-note { margin: 12px 0 0; color: var(--muted);  }
.metric-withheld { padding: 12px; border-left: 3px solid var(--muted); background: var(--soft); color: var(--muted); }

.ev-position-visual { margin: 14px 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.evm-cost-curve { margin-top: 16px; }
.evm-cost-curve-chart { margin-top: 12px; padding: 12px; border: 1px solid var(--line-accent); border-radius: 8px; background: var(--panel); overflow-x: auto; }
.evm-cost-curve-chart .kit-chart { margin: 0; min-width: 620px; }
.evm-cost-curve-chart svg { display: block; width: 100%; height: auto; }
.evm-cost-curve-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 12px 0 2px; color: var(--muted); font-size: .78rem; }
.evm-cost-curve-legend span { display: inline-flex; align-items: center; gap: 6px; }
.evm-cost-curve-legend i { display: inline-block; width: 22px; height: 3px; border-radius: 99px; background: var(--accent); }
.evm-cost-curve-legend .is-ev i { background: #ff6900; }
.evm-cost-curve-legend .is-ac i { background: #00b2fe; }
.metric-axis { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 7px 38px; color: var(--muted);  }
.ev-position-row { display: grid; grid-template-columns: 30px minmax(100px, 1fr) minmax(90px, auto); gap: 8px; align-items: center; margin: 7px 0;  }
.ev-position-row > div { height: 12px; overflow: hidden; border-radius: 999px; background: var(--soft-accent); }
.ev-position-row > div i { display: block; height: 100%; border-radius: inherit; background: #5f84bc; }
.ev-position-row.is-ev > div i { background: var(--accent); }
.ev-position-row.is-ac > div i { background: #7652b5; }
.ev-position-row.is-withheld > div { display: grid; height: auto; min-height: 26px; place-items: center start; padding: 0 8px; background: var(--soft); color: var(--muted); }

.dcma14-graphic .dcma14-row { grid-template-columns: minmax(165px, 1.1fr) minmax(180px, 2fr) minmax(190px, 1.15fr); padding: 9px 0; border-bottom: 1px solid var(--line); }
/* A portfolio cell that reports several named checks lays them out as rows:
   the boxed check number, the check, its observed value. One compressed
   sentence per family threw away the only thing a reader could act on. */
.pf-metrics { display: grid; gap: 3px; margin-top: 4px; }
.pf-metric { display: flex; align-items: center; gap: 4px; line-height: 1.2; }
.pf-metric b { font-weight: 600; font-size: .74rem; color: var(--ink); }
.pf-metric i { margin-left: auto; font-style: normal; font-size: .74rem; font-variant-numeric: tabular-nums; color: var(--muted); }
.pf-metric.is-failed i { color: var(--bad); font-weight: 800; }
.pf-metric.is-warning i { color: var(--warn); font-weight: 800; }
.pf-metric.is-passed i { color: var(--status-pass); font-weight: 700; }
/* An observed count with no target carries no verdict colour: tinting
   "42 activities drive the finish" would invent a judgement. */
.pf-metric.is-observed i { color: var(--ink); font-weight: 700; }
.pf-metric .dcma-check-num { min-width: 20px; height: 16px; margin-right: 2px; padding: 0 4px; font-size: .62rem; border-radius: 4px; }
.dcma14-label,.dcma14-readout { display: grid; gap: 2px; }
/* The boxed check number sits on the text baseline of the name beside it. */
.dcma14-label strong { display: flex; align-items: center; }
/* The DCMA check number is an identifier, not a count: it gets its own box
   wherever a check is named -- Home tiles, the review queue, the report card
   rows, the logic rules, the settings grid and the version comparison -- so it
   lives here rather than in a page style block the other pages never load.
   The fill is the brand accent, a colour that carries no verdict: green, amber
   and red already mean pass, attention and fail on these same rows. */
.dcma-check-num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 20px; padding: 0 6px; margin-right: 8px; flex: none;
  border: 1px solid var(--blue); border-radius: 5px;
  background: var(--blue); color: var(--on-accent);
  font-size: .72rem; font-weight: 800; font-variant-numeric: tabular-nums;
  line-height: 1; vertical-align: middle;
}
.dcma-check-num + .dcma-check-num { margin-left: -4px; }
.dcma14-label small,.dcma14-readout span,.dcma14-readout small { color: var(--muted);  line-height: 1.25; }

.file-evidence-chain { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 12px 0 4px; }
.file-evidence-step { display: grid; gap: 3px; min-width: 0; padding: 8px; border-top: 3px solid var(--good); border-radius: 6px; background: var(--good-fill); }
.file-evidence-step.is-unknown { border-top-color: var(--muted); border-top-style: dashed; background: var(--soft); }
.file-evidence-step small { overflow-wrap: anywhere; color: var(--muted);  }

.es-metric-contract {
  margin: 16px 0 20px;
  padding: 18px;
  border: 1px solid var(--line-accent);
  border-radius: 10px;
  background: linear-gradient(135deg, var(--soft-accent), var(--panel) 62%, var(--good-fill));
}
.es-goal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.es-goal-header strong { display: block; margin: 3px 0;  }
.es-goal-header p { max-width: 66ch; margin: 4px 0 0; color: var(--muted); }
.es-goal-target {
  flex: 0 0 auto;
  min-width: 112px;
  padding: 9px 11px;
  border: 1px solid var(--good-line);
  border-radius: 8px;
  color: var(--good);
  background: var(--good-fill);
  
  text-align: center;
  text-transform: uppercase;
}
.es-contract-ladder {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0 12px;
  padding: 0;
  list-style: none;
  counter-reset: metric-step;
}
.es-contract-ladder li {
  position: relative;
  min-height: 150px;
  padding: 12px;
  border-top: 4px solid #9fb0c7;
  border-radius: 7px;
  background: var(--panel);
  box-shadow: 0 5px 14px rgba(30, 64, 175, .07);
}
.es-contract-ladder li:not(:last-child)::after {
  position: absolute;
  z-index: 1;
  top: 48%;
  right: -12px;
  color: var(--muted);
  content: "→";
}
.es-contract-ladder li[data-es-metric="position"] { border-top-color: var(--blue); }
.es-contract-ladder li[data-es-metric="velocity"] { border-top-color: var(--good); }
.es-contract-ladder li[data-es-metric="acceleration"] { border-top-color: var(--warn); }
.es-contract-ladder li[data-es-metric="jerk"] { border-top-color: #7652b5; }
.es-contract-step { display: block; color: var(--muted);  font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.es-contract-ladder b { display: block; margin-top: 5px; color: var(--blue);  }
.es-contract-ladder strong { display: block; margin-top: 4px;  }
.es-contract-ladder small { display: block; margin-top: 3px; color: var(--muted); }
.es-contract-ladder p { margin: 9px 0 0;  line-height: 1.35; }
.es-contract-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.es-contract-foot p { margin: 0; padding: 9px 11px; border-left: 3px solid var(--line); color: var(--muted);  }
.es-contract-foot p:last-child { border-left-color: var(--bad); }

.es-story { margin: 10px 0 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(180deg, var(--soft), var(--panel)); }
.es-story-headline { margin: 0 0 12px;  font-weight: 600; line-height: 1.4; color: var(--ink); text-wrap: balance; }
.es-story-ladder { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: 12px; }
.es-story-tile { padding: 9px 11px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 8px; background: var(--panel); }
.es-story-tile span { display: block;  letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.es-story-tile b { display: block; margin-top: 3px;  font-variant-numeric: tabular-nums; }
.es-story-tile b small {  color: var(--muted); font-weight: 400; }
.es-story-tile small { color: var(--muted);  }
.es-story-tile.is-pass { border-left-color: var(--good); } .es-story-tile.is-warning { border-left-color: #b7791f; } .es-story-tile.is-fail { border-left-color: var(--bad); } .es-story-tile.is-not_evaluated { border-left-color: var(--line); }
.es-swarm { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.es-swarm-item { display: grid; grid-template-columns: auto; gap: 2px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: inherit; text-decoration: none; min-width: 150px; }
.es-swarm-item:hover, .es-swarm-item:focus-visible { border-color: var(--accent); outline: none; }
.es-swarm-item svg { display: block; max-width: 100%; height: auto; }
.es-swarm-label {  font-weight: 600; color: var(--ink); }
.es-swarm-value {  font-variant-numeric: tabular-nums; } .es-swarm-value small { color: var(--muted); }
.es-swarm-item.is-behind .es-swarm-value { color: var(--bad); } .es-swarm-item.is-ahead .es-swarm-value { color: var(--good); } .es-swarm-item.is-complete .es-swarm-value { color: var(--muted); }
.es-story-moved { margin: 4px 0 10px; }
.es-story-table { width: 100%; border-collapse: collapse;  } .es-story-table th, .es-story-table td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } .es-story-table thead th {  letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.es-story-table tr.is-behind th { color: var(--bad); } .es-story-table tr.is-ahead th { color: var(--good); } .es-story-table tr.is-complete th, .es-story-table tr.is-unavailable th { color: var(--muted); }
.flame-small-multiples { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.flame-small-multiples figure { min-width:0; margin:0; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.flame-small-multiples svg { display:block; width:100%; height:auto; }
.flame-small-multiples figcaption { margin-top:6px; color:var(--muted);  }
@media (max-width:736px) { .flame-small-multiples { grid-template-columns:1fr; } }
.es-scope-report { margin: 14px 0; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.es-scope-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.es-scope-head p { margin: 3px 0 0; }
.es-goal-state { flex: 0 0 auto; padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px;  font-weight: 900; }
.es-goal-state.is-ahead { color: var(--good); border-color: var(--good-line); background: var(--good-fill); }
.es-goal-state.is-behind { color: var(--bad); border-color: var(--bad-line); background: var(--bad-fill); }
.es-goal-state.is-plan { color: var(--accent); border-color: var(--line-accent); background: var(--soft-accent); }
.es-position-chart { margin: 14px 0 10px; }
.es-position-chart svg { display: block; width: 100%; height: auto; min-height: 170px; }
.es-chart-frame { fill: var(--soft); stroke: var(--line); }
.es-chart-grid { stroke: #dfe7f1; stroke-width: 1; }
.es-chart-goal { stroke: var(--good); stroke-width: 2; stroke-dasharray: 5 4; }
.es-chart-line { fill: none; stroke: var(--blue); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.es-chart-point { fill: var(--on-accent); stroke: var(--blue); stroke-width: 2; }
.es-chart-point.is-latest { fill: var(--blue); }
.es-chart-label { fill: var(--muted); font: 13px system-ui, sans-serif; }
.es-chart-value { fill: var(--ink); font: 700 13px system-ui, sans-serif; }
.es-metric-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.es-metric-value { min-height: 104px; padding: 11px; border-top: 3px solid var(--line); background: var(--soft); }
.es-metric-value.is-positive { border-top-color: var(--good); }
.es-metric-value.is-negative { border-top-color: var(--bad); }
.es-metric-value.is-unavailable { border-top-style: dashed; }
.es-metric-value span,.es-metric-value small { display: block; color: var(--muted);  }
.es-metric-value b { display: block; margin: 4px 0;  }
.es-scope-read { margin: 10px 0 0; font-weight: 800; }

/* Secondary navigation labels keep the rail scannable while making the
   Earned Schedule destination discoverable under its parent. */
.nav-sublabel { display: block; margin-top: 2px; color: var(--muted); font-size: .72rem; font-weight: 650; line-height: 1.2; }

@media (max-width: 860px) {
  #primary-nav { display: none !important; }
  #mobile-nav.is-open {
    grid-template-columns: 1fr;
    max-height: calc(100vh - 100px);
    overflow-x: hidden;
    overflow-y: auto;
  }
  #mobile-nav a {
    width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  #mobile-nav .nav-sublabel { display: block; }
  #mobile-nav .nav-goal-group { margin-top: 9px; }
  #mobile-nav .nav-utility-divider { width: 100%; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line); }
  .performance-goal-path,.surface-goal-path,.page-roadmap,.es-contract-ladder,.es-metric-values,.metric-contract-grid,.artifact-contract-grid,.metric-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .help-workflow-map { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .help-workflow-map a:nth-child(2)::after { display: none; }
  .performance-goal-path a:nth-child(2) { border-right: 0; }
  .performance-goal-path a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .surface-goal-path a:nth-child(2) { border-right: 0; }
  .surface-goal-path a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .file-evidence-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dcma14-graphic .dcma14-row { grid-template-columns: minmax(140px, 1fr) minmax(160px, 2fr); }
  .dcma14-readout { grid-column: 1 / -1; }
  .es-contract-ladder li:nth-child(2)::after { display: none; }
}
@media (max-width: 520px) {
  .performance-goal-path,.surface-goal-path,.page-roadmap,.es-contract-ladder,.es-metric-values,.es-contract-foot,.metric-contract-grid,.artifact-contract-grid,.metric-summary-strip,.file-evidence-chain { grid-template-columns: 1fr; }
  .context-receipt dl,.help-workflow-map,.help-topic-grid { grid-template-columns: 1fr; }
  .help-workflow-map a::after { display: none; }
  .performance-goal-path a { border-right: 0; border-bottom: 1px solid var(--line); }
  .performance-goal-path a:last-child { border-bottom: 0; }
  .surface-goal-path a { border-right: 0; border-bottom: 1px solid var(--line); }
  .surface-goal-path a:last-child { border-bottom: 0; }
  .metric-contract-head { display: grid; }
  .metric-contract-ceiling { justify-self: start; }
  .ev-position-row { grid-template-columns: 28px minmax(80px, 1fr); }
  .ev-position-row > b { grid-column: 2; }
  .dcma14-graphic .dcma14-row { grid-template-columns: 1fr; }
  .es-goal-header,.es-scope-head { display: grid; }
  .es-goal-target,.es-goal-state { justify-self: start; }
  .es-contract-ladder li::after { display: none; }
  .es-position-chart { margin-inline: -8px; }
  .grid > *, .settings-grid > *, .status, .settings-card { min-width: 0; overflow-wrap: anywhere; }
  input, select, textarea { max-width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: var(--motion-instant) !important; animation-duration: var(--motion-instant) !important; animation-iteration-count: 1 !important; }
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

/* Remaining focused-workspace decision surfaces. */
.anchor-target { display: block; scroll-margin-top: 18px; }
.role-composition-badge { display: inline-flex; margin-top: 10px; text-transform: capitalize; }
body[data-forensic="off"] #primary-nav a.forensic-only-nav,body[data-forensic="off"] #mobile-nav a.forensic-only-nav { display: none !important; }
.review-file-model,.forensic-evidence-panel,.profile-section,.settings-dependency-map,.bitemporal-map {
  margin: 14px 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel);
}

.profile-regulated-families {
  display: grid;
  gap: .55rem;
  margin: 1rem 0;
}
.profile-regulated-family {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  gap: .2rem .8rem;
  padding: .65rem .75rem;
  border: 1px solid var(--line, #d7dde5);
  border-radius: .5rem;
  background: var(--panel-muted, var(--soft));
}
.profile-regulated-family strong,.profile-regulated-family span,.profile-regulated-family small { overflow-wrap: anywhere; }
.profile-regulated-family small { grid-column: 1 / -1; color: var(--muted, #5b6573); }
.review-file-model > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.review-file-model > div:first-child span { color: var(--blue); font-weight: 800; }
.review-file-slots { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 10px; align-items: center; margin: 12px 0; }
.review-file-slots span { min-width: 0; padding: 10px; border: 1px dashed var(--line-accent); border-radius: 7px; color: var(--muted); background: var(--soft); overflow-wrap: anywhere; }
.review-file-slots i { color: var(--muted); font-style: normal; }
.bitemporal-map { display: grid; grid-template-columns: 112px minmax(0,1fr); grid-template-rows: auto auto; gap: 10px; }
.bitemporal-plane { position: relative; min-height: 190px; border-left: 2px solid var(--muted); border-bottom: 2px solid var(--muted); background: linear-gradient(135deg,var(--panel) 0 49%,var(--soft-accent) 50% 51%,var(--panel) 52%); }
.bitemporal-plane i { position: absolute; left: 24%; right: 24%; top: 50%; height: 2px; background: var(--line-accent); transform: rotate(-24deg); transform-origin: center; }
.bitemporal-point { position: absolute; z-index: 1; display: grid; place-items: center; width: 48px; height: 48px; border: 3px solid var(--panel); border-radius: 50%; color: var(--on-accent); background: var(--blue);  font-weight: 900; box-shadow: 0 0 0 2px var(--blue); }
.bitemporal-point.then { left: 20%; bottom: 18%; } .bitemporal-point.now { right: 20%; top: 18%; }
.bitemporal-plane p { position: absolute; right: 10px; bottom: 6px; max-width: 52%; margin: 0; color: var(--muted);  text-align: right; }
.bitemporal-axis { display: grid; align-content: center; color: var(--muted);  }
.bitemporal-axis.knowledge { grid-row: 1; grid-column: 1; writing-mode: vertical-rl; transform: rotate(180deg); }
.bitemporal-axis.valid { grid-row: 2; grid-column: 2; display: flex; justify-content: space-between; }
.dependency-flow { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; }
.dependency-flow span,.dependency-flow b { padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.dependency-flow i { color: var(--blue); font-style: normal; font-weight: 900; }
.threshold-compare-rows,.workability-factor-list,.custody-file-list { display: grid; gap: 10px; margin-top: 12px; }
.threshold-compare-row,.workability-factor-list article,.custody-file-list article { padding: 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.threshold-compare-row > div:first-child,.workability-factor-list article > div:first-child { display: flex; justify-content: space-between; gap: 10px; text-transform: capitalize; }
.threshold-track,.workability-factor-list article > div:nth-child(2),.recovery-funnel-row > div { position: relative; height: 10px; margin: 8px 0; overflow: hidden; border-radius: 8px; background: var(--soft-accent); }
.threshold-track i,.workability-factor-list i,.recovery-funnel-row i { position: absolute; inset: 0 auto 0 0; display: block; border-radius: inherit; background: var(--muted); }
.threshold-track i.draft { height: 4px; top: 3px; background: var(--blue); }
.threshold-compare-row p { margin: 5px 0 0; color: var(--muted);  }
.threshold-compare-row.is-stricter { border-left: 4px solid var(--warn); } .threshold-compare-row.is-looser { border-left: 4px solid var(--accent); } .threshold-compare-row.is-unchanged { border-left: 4px solid var(--muted); }
.workability-factor-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
.workability-factor-list article.is-limiting { border-color: var(--warn-line); background: var(--warn-fill); }
.workability-factor-list article.is-limiting i { background: var(--warn); } .workability-factor-list article.is-withheld i { display: none; }
.recovery-funnel { display: grid; gap: 8px; margin: 14px 0; }
.recovery-funnel-row { display: grid; grid-template-columns: minmax(150px,1fr) minmax(140px,2fr) 90px; gap: 10px; align-items: center; }
.recovery-funnel-row i { background: var(--blue); }
.recovery-funnel-row b { text-align: right; } .recovery-funnel-row.is-withheld { color: var(--muted); }
.glossary-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.glossary-categories button { min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--ink); font: inherit; font-weight: 750; cursor: pointer; }
.glossary-categories button[aria-pressed="true"] { color: var(--on-accent); border-color: var(--blue); background: var(--blue); }
.glossary-term-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.glossary-term { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.glossary-term > span { color: var(--blue);  font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.glossary-term h3 { margin: 4px 0; } .glossary-term p { color: var(--muted); } .glossary-term a { font-weight: 800; }
.custody-file-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
.custody-file-list article { display: grid; gap: 4px; } .custody-file-list span { color: var(--muted);  overflow-wrap: anywhere; }
.custody-delta-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.custody-delta-grid article { display: grid; padding: 10px; border: 1px solid var(--line); border-radius: 7px; text-align: center; }
 .custody-delta-grid span { color: var(--muted); text-transform: capitalize; }
.field-state-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:12px 0; }
.field-state-card { display:grid; gap:2px; min-width:0; padding:10px; border:1px solid var(--line); border-top:3px solid #8aa4c8; border-radius:7px; background:var(--soft); }
 .field-state-card span { color:var(--muted);  text-transform:capitalize; overflow-wrap:anywhere; }
.field-state-invalid { border-top-color:#b3261e; } .field-state-blank,.field-state-absent { border-top-style:dashed; } .field-state-present { border-top-color:var(--good); }
.responsive-table { max-width:100%; overflow-x:auto; } .field-coverage-table { width:100%; border-collapse:collapse;  }
.field-coverage-table th,.field-coverage-table td { padding:8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.field-state-label { display:inline-block; padding:2px 6px; border:1px solid var(--line); border-radius:999px;  text-transform:capitalize; }
.forensic-signal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.forensic-signal { padding:12px; border:1px solid var(--line); border-left:4px solid #d29a27; border-radius:7px; background:var(--panel); }
.forensic-signal > div { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.glossary-field dl { display:grid; gap:5px; margin:10px 0; } .glossary-field dl div { display:grid; grid-template-columns:78px 1fr; gap:8px; }
.glossary-field dt { color:var(--muted);  font-weight:800; text-transform:uppercase; } .glossary-field dd { margin:0; overflow-wrap:anywhere; }
.permission-grid { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0; }
.permission-grid span { padding: 6px 9px; border: 1px solid var(--line-accent); border-radius: 7px; color: var(--accent); background: var(--soft);  font-weight: 800; }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition-duration: var(--motion-instant) !important; animation-duration: var(--motion-instant) !important; } }
@media (max-width: 736px) {
  .profile-regulated-family { grid-template-columns: 1fr; }
  .glossary-term-grid,.custody-file-list,.workability-factor-list { grid-template-columns: 1fr; }
  .custody-delta-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .field-state-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .forensic-signal-grid { grid-template-columns:1fr; }
  .dependency-flow { grid-template-columns: 1fr; } .dependency-flow i { transform: rotate(90deg); text-align: center; }
}
@media (max-width: 360px) {
  .review-file-slots,.recovery-funnel-row { grid-template-columns: 1fr; }
  .review-file-slots i { transform: rotate(90deg); text-align: center; }
  .recovery-funnel-row b { text-align: left; }
  .bitemporal-map { grid-template-columns: 70px minmax(0,1fr); }
}
@media (max-width: 640px) {
  .workflow-note-layout { display: grid !important; grid-template-columns: 1fr !important; }
  .workflow-note-layout img { width: 100% !important; height: auto !important; max-height: 160px; }
  .upload-dropzone input { width: 1px !important; min-width: 1px !important; max-width: 1px !important; overflow: hidden !important; }
}
/* Print / Save-as-PDF: the evidence surface without the chrome. Charts are
   inline SVG and print as drawn; the boundary line travels in the footer. */
@media print {
  @page { margin: 14mm 12mm; }
  body { background: var(--panel) !important; color: #000 !important; font-size: 10.5pt; }
  nav, aside, button, form, input, select, textarea, .mobile-nav, .page-intent, .page-roadmap,
  .surface-goal-path, .performance-goal-path, .breadcrumb, .settings-preview, .milestone-drawer,
  .reprompt-panel, .layout-lab, .page-evidence-coach, .schedule-thread-backdrop, [data-print="hide"] { display: none !important; }
  main, section, article { break-inside: auto; box-shadow: none !important; background: var(--panel) !important; }
  h1, h2, h3 { break-after: avoid; color: #000 !important; }
  table, figure, svg, .dcma14-findings { break-inside: avoid; }
  svg { max-width: 100% !important; height: auto !important; }
  a { color: inherit !important; text-decoration: none !important; }
  a[href^="http"]::after { content: ""; }
  main::after {
    content: "Derived review metadata only. Raw schedule bodies are not included. Generated by SuperWave-XER; schedule source files stay private.";
    display: block; margin-top: 18px; padding-top: 8px; border-top: 1px solid #999;
    color: #444; font-size: 8.5pt;
  }
}
/* Charts drawn by the export kit (superwave_xer.charts) and served inside JSON payloads. */
.kit-chart { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
.kit-chart svg { display: block; width: 100%; height: auto; max-width: 100%; }
.kit-chart p { margin: 8px 0 0;  }
/* The pre-import completeness warning: what this upload will not let a
   review say, shown while the file can still be replaced. */
.upload-completeness { margin-top: var(--space-3); padding: var(--space-4); border: 1px solid var(--line); border-left: 4px solid var(--status-warning); border-radius: var(--radius-surface); background: var(--soft); text-align: left; }
.upload-completeness.is-blocking { border-left-color: var(--status-fail); }
.upload-completeness ul { margin: var(--space-3) 0 0; padding-left: var(--space-4); }
.upload-completeness li { margin-bottom: var(--space-3); }
.upload-completeness li p { margin: 2px 0 0; }
/* ID1: the answer-first opening. The verdict is the largest text on the
   page and the picture sits directly under it; contract boxes follow. */
.page-verdict-block { margin: 0 0 var(--space-5); }
.page-verdict-block > .eyebrow { display:block; margin-bottom:4px; color:var(--blue); font-size:.7rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.page-verdict { margin: 0; font-weight: var(--weight-strong); line-height: 1.3; color: var(--ink); text-wrap: balance; }
.page-verdict-block .page-verdict-overview { margin-top: var(--space-3); padding:8px 10px; }
.page-verdict-overview figcaption { font-size:.76rem; }
.page-verdict[data-verdict-state="attention"] { color: var(--status-fail); }
.home-float-visual { border-left:3px solid var(--blue); }
.home-float-visual .eyebrow { display:block; margin-bottom:3px; color:var(--blue); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.activity-float-detail-chart { margin:10px 0 12px; background:var(--panel); }
.activity-float-detail-chart figcaption { font-size:.78rem; font-weight:700; }
.tacit-closure { border-color: var(--line-accent); background: linear-gradient(180deg,var(--soft),var(--soft)); }
.tacit-closure-grid,.tacit-pathology-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }
.tacit-closure-grid article,.tacit-pathology-grid article { min-width:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.tacit-closure-grid span,.tacit-closure-grid small,.tacit-pathology-grid p { display:block; color:var(--muted); }
.tacit-closure-grid strong { display:block; margin:3px 0;  font-variant-numeric:tabular-nums; }
.tacit-pathology-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tacit-pathology-grid strong { display:block; margin-top:6px; color:var(--blue);  letter-spacing:.06em; }
.tacit-certificate { padding:12px; border:1px solid #86d3a2; border-radius:8px; background:var(--good-fill); }
@media (max-width:736px) { .tacit-closure-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .tacit-pathology-grid { grid-template-columns:1fr; } }
@media (max-width:360px) { .tacit-closure-grid { grid-template-columns:1fr; } }
.project-hub-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:12px 0; }
.project-hub-grid .history-row { min-width:0; }
.project-snapshot-row[data-scd-state="superseded"] { opacity:.82; background:var(--soft); }
.project-snapshot-row[data-scd-state="current"] { border-left:3px solid var(--blue); }
.project-snapshot-row small { display:block; margin-top:6px; }
#project-file-list { display:grid; gap:8px; }
.file-preview-trigger { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--ink); text-align:left; cursor:pointer; }
.file-preview-trigger span,.member-row span { display:block; color:var(--muted);  }
.file-preview-trigger:hover,.file-preview-trigger:focus-visible { border-color:var(--line-accent); outline:2px solid var(--soft-accent); }
.file-preview-panel { margin-top:12px; padding:12px; border-left:3px solid var(--line-accent); background:var(--soft); }
/* The evidence boundary is a feature, so every statement stays in the page and
   in the accessibility tree. It just stops spending a permanent band above the
   page title to say the same six things on every route. */
.security-context-strip { display:block; margin:0 0 12px; padding:8px 12px; border:1px solid var(--line-accent); border-radius:8px; background:var(--soft); color:var(--accent);  }
.security-context-strip > summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; cursor:pointer; list-style:none; }
.security-context-strip > summary::-webkit-details-marker { display:none; }
.security-context-strip > summary::after { content:"Evidence boundary"; margin-left:auto; color:var(--muted); font-size:var(--text-xs,.72rem); text-decoration:underline; }
.security-context-strip[open] > summary::after { content:"Hide"; }
.security-context-strip > summary:focus-visible { outline:2px solid var(--blue); outline-offset:2px; border-radius:4px; }
#page-security-detail { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin-top:8px; padding-top:8px; border-top:1px solid var(--line-accent); }
.security-context-strip strong { letter-spacing:.02em; }
.security-context-strip span { color:var(--muted); }
.file-preview-panel details { margin-top:8px; padding:8px; border:1px solid var(--line); border-radius:7px; background:var(--panel); }
#project-member-list { display:grid; gap:8px; margin-bottom:12px; }
.member-row { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.member-role { min-width:130px; }
.safe-preview-samples { max-height:16rem; overflow:auto; white-space:pre-wrap;  }
.activity-row { border-bottom:1px solid var(--line); padding:.8rem 0; }
.activity-row > div { display:flex; justify-content:space-between; gap:1rem; }
@media (max-width:736px) { .project-hub-grid { grid-template-columns:1fr; } .member-row { align-items:flex-start; flex-direction:column; } .member-role { width:100%; } }

/* Evidence-first frame: this final block intentionally owns the opening
   composition over legacy surface rules above. */
.layout-lab[hidden], .schedule-thread-drawer[hidden], .schedule-thread-backdrop[hidden] { display:none !important; }
.shell main { padding-top:10px !important; }
.breadcrumb { margin-bottom:6px !important; }
.breadcrumb a { min-height:0 !important; padding:0 !important; border:0 !important; background:transparent !important; }
.shell > header { padding:12px 18px !important; }
.security-context-strip { margin-bottom:7px !important; padding:5px 9px !important; }
.page-support-disclosure { margin-top:12px; padding:8px 0; }
.page-support-disclosure > summary { color:var(--muted);  }
#decision-surface[data-layout-surface] { display:flex; flex-direction:column; gap:14px; }
#decision-surface[data-layout-surface] > * { order:20; }
#decision-surface[data-layout-surface] > .page-verdict-block { order:0 !important; }
#decision-surface[data-layout-surface="owner_briefing"] > #home-float-visual,
#decision-surface[data-layout-surface="schedule_health"] > #dcma14-results,
#decision-surface[data-layout-surface="schedule_milestones"] > #milestones-visual,
#decision-surface[data-layout-surface="performance_trajectory"] > #ev-metric-contract,
#decision-surface[data-layout-surface="visual_stage"] > #history-motion,
#decision-surface[data-layout-surface="exports_page"] > #export-preview,
#decision-surface[data-layout-surface="critical_path_what_if"] > #wi-results,
#decision-surface[data-focus-visual="true"] > #selected-visual-observatory { order:1; }

@media (min-width:861px) {
  body[data-nav-contract="left"] .shell { margin-top:12px !important; margin-bottom:12px !important; }
}
.health-results { display:flex; flex-direction:column; }
.health-results > .section-heading { order:0; }
.health-results > #dcma14-graphic { order:1; }
.health-results > #dcma14-concern-cards { order:2; }
.health-results > .focused-secondary { order:3; }
.focused-secondary { margin:0; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.focused-secondary > summary { color:var(--blue); }
.dcma-check-rows { margin-top:8px; padding:8px 0 0; }
#selected-visual-observatory:not([hidden]) { display:flex; flex-direction:column; }
#selected-visual-observatory > * { order:10; }
#selected-visual-observatory > .section-heading { order:0; }
#selected-visual-observatory > #selected-visual-detail { order:1; }
#selected-visual-observatory > #selected-visual-recommendation { order:2; }
#selected-visual-observatory > #selected-visual-lanes { order:3; }
.schedule-comment-button:not([data-comment-anchor-type="report_section"]) { width:34px; max-width:34px; overflow:hidden; opacity:0; color:transparent; transition:opacity var(--motion-duration) ease; }
.schedule-comment-button:not([data-comment-anchor-type="report_section"]) > span { color:var(--accent); }
*:hover > .schedule-comment-button:not([data-comment-anchor-type="report_section"]),
.schedule-comment-button:not([data-comment-anchor-type="report_section"]):hover,
.schedule-comment-button:not([data-comment-anchor-type="report_section"]):focus-visible { width:auto; max-width:150px; opacity:1; color:var(--accent); }
@media (prefers-reduced-motion:reduce) { .schedule-comment-button { transition:none !important; } }

/* One compact page masthead. The destination is named once; report actions
   share its row, and the short purpose is part of the same reading unit. */
.page-masthead { display:flex; align-items:flex-start; justify-content:space-between; gap:10px 18px; margin:0 0 9px; }
.page-masthead-copy { min-width:0; flex:1 1 auto; }
.page-masthead .page-title { margin:0; font-size:clamp(1.45rem,3vw,1.9rem); line-height:1.15; }
.page-masthead .purpose { max-width:72ch; margin:3px 0 0; color:var(--muted); font-size:.88rem; line-height:1.35; }
.page-masthead-actions { display:flex; flex:0 0 auto; align-items:flex-start; justify-content:flex-end; gap:8px; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; clip-path:inset(50%) !important; }
.context-evidence-details { position:relative; align-self:stretch; min-width:0; margin:0; padding:0; border:0; background:transparent; }
.context-evidence-details > summary { min-height:34px; padding:6px 9px; border:1px solid var(--line); border-radius:7px; background:var(--panel); }
.context-evidence-details > summary::after { content:"Show"; }
.context-evidence-details[open] > summary::after { content:"Hide"; }
.context-evidence-details #page-security-session { font-size:var(--text-xs); }
.context-evidence-details #page-security-detail { position:absolute; z-index:40; top:calc(100% + 5px); right:0; display:grid; gap:8px; width:min(420px,calc(100vw - 48px)); padding:11px; border:1px solid var(--line-accent); border-radius:8px; background:var(--panel); box-shadow:var(--shadow-sticky); }
.context-evidence-details .context-fact-id { display:grid; gap:3px; justify-self:stretch; }
.context-evidence-details :is(.context-fact-id,.context-date-source) > span { color:var(--muted); font-size:var(--text-xs); font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.context-evidence-details .context-fact-id code { overflow-wrap:anywhere; }
.page-export-bar { display:grid; grid-template-columns:auto auto; align-items:start; justify-content:end; gap:8px; }
.page-export-bar button { display:inline-flex; align-items:center; min-height:var(--control-height-utility); padding:6px 12px; border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--ink); font:inherit; font-size:.85rem; font-weight:700; cursor:pointer; }
.page-export-bar button:hover:not(:disabled) { border-color:var(--blue); color:var(--blue); }
.page-export-bar button:disabled { opacity:.55; cursor:progress; }
.page-export-bar #page-export-status { grid-column:1 / -1; max-width:36ch; justify-self:end; text-align:right; font-size:.76rem; line-height:1.3; }
@media (max-width:720px) {
  .page-masthead { flex-direction:column; }
  .page-masthead-actions { width:100%; flex-wrap:wrap; justify-content:flex-start; }
  .page-export-bar { width:100%; }
  .page-export-bar #page-export-status { max-width:none; justify-self:start; text-align:left; }
  .page-context-contract { grid-template-columns:minmax(0,1fr); }
  .context-evidence-details #page-security-detail { position:static; width:100%; margin-top:5px; box-shadow:none; }
}
@media (min-width:721px) and (max-width:900px) {
  .page-context-contract { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
}

/* Milestones: the timeline lives inside the verdict figure, directly under
   the sentence that reads it. */
#schedule_milestones-verdict-chart > .milestone-timeline { margin: 0; padding: 0; border: 0; background: transparent; }
#schedule_milestones-verdict-chart > .milestone-timeline svg { display: block; width: 100%; height: auto; }
label.inline-select { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; max-width: 720px; }
label.inline-select > select { flex: 1 1 260px; width: auto; }
details.page-support-disclosure.surface-metric-contract { margin: 0; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
details.page-support-disclosure.surface-metric-contract > summary { color: var(--muted); font-weight: 700; }
details.page-support-disclosure.surface-metric-contract > p { margin: 8px 0 0; }
.brand-link { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.brand-link img { display: block; width: 146px; height: auto; max-width: 100%; }
.brand-product { color: var(--blue); font-weight: 900; letter-spacing: .03em; }
.lnav-sublabel { display: block; margin-top: 2px; color: var(--muted); font-size: .72rem; font-weight: 650; line-height: 1.2; }

/* The rail names destinations; it does not explain them.

   Every item carried the owner's question as a permanent third line and every
   group carried its purpose as a second, so fourteen destinations filled a
   column that had to be zoomed out of to read. Both stay in the DOM -- they
   are the best description a screen reader can be given, and they are the
   hover title for everyone else -- but neither is printed under every link.

   Not display:none: that would take them out of the accessibility tree, which
   is the one place the sentence was doing real work. */

/* A nav item is a label with, at most, one qualifier under it. Laid out as a
   nowrap flex row, a long label plus a badge plus a sublabel measured 249px
   inside a 220px rail and simply ran off the edge. Stacking them is what the
   content wants anyway: the label is the destination, the rest qualifies it. */
#primary-nav a[data-nav-goal],
#primary-nav a.nav-sub-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: start;
  gap: 2px;
}

#primary-nav a[data-nav-goal] > span,
#primary-nav a.nav-sub-link > span {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.nav-intent,
.nav-goal-group small {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

.nav-release-gate {
  display: inline-flex;
  width: fit-content;
  margin-top: 3px;
  padding: 2px 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: var(--soft);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .035em;
  line-height: 1.2;
  text-transform: uppercase;
}
.primary-nav a.is-current .nav-release-gate { border-color: var(--line-accent); color: var(--accent); background: var(--panel); }

/* Progressive disclosure keeps a complete capability map from becoming a
   twenty-row wall. The current stage opens on arrival; every other stage is
   one native summary click away. This also works without JavaScript. */
#primary-nav .nav-goal-section,
#mobile-nav .nav-goal-section {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}

#primary-nav .nav-goal-section > .nav-goal-group,
#mobile-nav .nav-goal-section > .nav-goal-group {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 7px 10px;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
}

#primary-nav .nav-goal-section > .nav-goal-group::-webkit-details-marker,
#mobile-nav .nav-goal-section > .nav-goal-group::-webkit-details-marker { display: none; }

#primary-nav .nav-goal-section > .nav-goal-group::after,
#mobile-nav .nav-goal-section > .nav-goal-group::after {
  color: var(--muted);
  content: "+";
  font-size: .9rem;
  font-weight: 700;
  line-height: 1;
}

#primary-nav .nav-goal-section[open] > .nav-goal-group::after,
#mobile-nav .nav-goal-section[open] > .nav-goal-group::after { content: "−"; }

#primary-nav .nav-goal-section.is-active > .nav-goal-group,
#mobile-nav .nav-goal-section.is-active > .nav-goal-group {
  padding-left: 7px;
  border-left: 3px solid var(--blue);
  color: var(--ink);
}

#primary-nav .nav-goal-section > a[data-nav-goal] {
  min-height: 34px;
  padding: 6px 10px 6px 20px;
  font-size: .78rem;
  line-height: 1.2;
}

/* Readiness remains in the accessible name and appears for the selected or
   inspected destination. It no longer adds ten permanent rows to the rail. */
#primary-nav a[data-nav-goal] > .nav-release-gate {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

#primary-nav a[data-nav-goal]:is(.is-current, :hover, :focus-visible) > .nav-release-gate {
  position: static;
  width: fit-content;
  height: auto;
  margin: 2px 0 0;
  padding: 2px 5px;
  overflow: visible;
  border: 1px solid var(--line);
  clip-path: none;
  white-space: normal;
}
.capability-intro {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 12px;
  align-items: start;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: linear-gradient(120deg,var(--soft),var(--panel));
}
.capability-intro p { margin: 4px 0 0; color: var(--muted); }
.evidence-tier { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:.68rem; font-weight:850; text-transform:uppercase; white-space:nowrap; }
.evidence-tier.is-observed { color:var(--good); background:var(--good-fill); }
.evidence-tier.is-derived { color:var(--accent); background:var(--soft-accent); }
.evidence-tier.is-declared { color:#7a4b00; background:var(--warn-fill); }
.evidence-tier.is-withheld { color:#5f6b7b; background:var(--soft); }
.capability-toolbar {
  display: grid;
  grid-template-columns: minmax(240px,1fr) minmax(240px,1fr) auto;
  gap: var(--control-grid-gap);
  align-items: start;
  margin: 16px 0 10px;
}
.control-field,.field-stack { display:grid; gap:var(--control-label-gap); min-width:0; align-content:start; }
.control-field > span,.field-stack > span { display:block; white-space:nowrap; }
.control-helper,.helper { margin:0; color:var(--muted); font-size:var(--text-s); line-height:1.4; }
.control-action-row,.action-row { display:flex; justify-content:flex-end; align-items:center; gap:var(--control-grid-gap); }
.task-action { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; height:var(--control-height-task); min-height:var(--control-height-task); padding:7px 14px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:var(--panel); font:inherit; font-weight:800; cursor:pointer; }
.task-action:hover:not(:disabled) { border-color:var(--blue); color:var(--blue); }
.task-action:focus-visible { outline:var(--focus-ring); outline-offset:2px; }
.task-action-primary,.task-action.primary-action { color:var(--on-accent); border-color:var(--blue); background:var(--blue); }
.task-action-primary:hover:not(:disabled),.task-action.primary-action:hover:not(:disabled) { color:var(--on-accent); background:var(--blue); filter:brightness(.9); }
.task-action-secondary,.task-action.secondary-action { color:var(--blue); border-color:var(--line-accent); background:var(--panel); }
.capability-toolbar > .control-field:only-of-type { grid-column:1 / 3; }
.capability-toolbar > .control-action-row { grid-column:3; align-self:end; }
.baseline-workflow { display:grid; gap:14px; }
.baseline-workflow > .section-heading { margin-bottom:0; }
.baseline-current-receipt { display:grid; grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr) auto; gap:8px 14px; align-items:center; padding:12px 14px; border:1px solid var(--good-line); border-radius:8px; background:var(--good-fill); }
.baseline-current-receipt span { color:var(--good); font-size:var(--text-s); font-weight:850; text-transform:uppercase; }
.baseline-current-receipt small { color:var(--muted); text-align:right; }
.baseline-needed { padding:14px; border:1px solid var(--warn-line); border-radius:8px; background:var(--warn-fill); }
.baseline-needed p { margin:4px 0 0; color:var(--muted); }
.baseline-client-setup { grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr); margin:0; padding:0; border:0; }
.baseline-update-receipt { display:grid; grid-template-columns:minmax(150px,.45fr) minmax(0,1fr); gap:8px 14px; align-items:center; padding:11px 14px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
/* Both halves of the pair and the button that compares them sit in one row.
   Choosing at the top of the page and acting at the bottom of it was the
   clunk; the release identity is here too, so the reader can see which file
   they picked without opening anything. */
.baseline-pair { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 16px; align-items:center; }
.baseline-pair-releases { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:10px; align-items:stretch; }
.baseline-pair-arrow { align-self:center; color:var(--muted); font-size:var(--text-l); }
.baseline-pair-action { display:grid; gap:5px; justify-items:end; text-align:right; }
.baseline-pair-action small { max-width:22ch; color:var(--muted); font-size:var(--text-xs); line-height:1.3; }
.release-identity { display:grid; gap:5px; min-width:0; padding:11px 13px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.release-identity.is-baseline { border-color:var(--good-line); background:var(--good-fill); }
.release-identity > span { color:var(--muted); font-size:var(--text-xs); font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.release-identity.is-baseline > span { color:var(--good); }
.release-identity > strong { min-width:0; overflow-wrap:anywhere; font-size:var(--text-m); line-height:1.25; }
.release-identity > em { color:var(--muted); font-style:normal; font-size:var(--text-xs); }
.release-identity dl { display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px 10px; margin:2px 0 0; }
.release-identity dl > div { display:contents; }
.release-identity dt { color:var(--muted); font-size:var(--text-xs); }
.release-identity dd { margin:0; font-size:var(--text-xs); font-weight:650; overflow-wrap:anywhere; }
.release-identity code { color:var(--muted); font-size:var(--text-xs); opacity:.85; overflow-wrap:anywhere; }
.release-identity.is-empty { align-content:center; color:var(--muted); }
@media (max-width:900px) {
  .baseline-pair { grid-template-columns:minmax(0,1fr); }
  .baseline-pair-releases { grid-template-columns:minmax(0,1fr); }
  .baseline-pair-arrow { justify-self:start; transform:rotate(90deg); }
  .baseline-pair-action { justify-items:stretch; text-align:left; }
  .baseline-pair-action small { max-width:none; }
}
.baseline-update-receipt > span { color:var(--muted); font-size:var(--text-s); font-weight:750; }
.baseline-update-receipt strong { min-width:0; overflow-wrap:anywhere; }
.baseline-comparison-options { padding:11px 14px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.baseline-comparison-options > summary { color:var(--blue); font-weight:800; cursor:pointer; }
.baseline-comparison-options > .control-field { margin-top:12px; }
.baseline-comparison-options > .control-helper { margin-top:6px; }
.baseline-register > summary { display:flex; justify-content:space-between; gap:14px; align-items:center; cursor:pointer; list-style-position:inside; }
.baseline-register > summary > span:first-child { display:grid; gap:3px; }
.baseline-register > summary strong { display:block; }
.baseline-register > p { margin:12px 0; }
.capability-panel { margin-top:14px; padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.capability-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:9px; margin-top:12px; }
.capability-kpis article { display:flex; flex-direction:column; gap:3px; min-height:78px; padding:11px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.capability-kpis article span { color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.capability-kpis article strong { overflow-wrap:anywhere; font-size:1rem; }
.capability-kpis article small { color:var(--muted); }
.capability-table-wrap { margin-top:12px; overflow:auto; }
.capability-table { width:100%; min-width:720px; border-collapse:collapse; font-size:.76rem; }
.capability-table th,.capability-table td { padding:8px 9px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.capability-table th { position:sticky; top:0; color:#40526a; background:var(--soft); white-space:nowrap; }
.capability-empty { padding:14px; border:1px dashed #bdc9da; border-radius:8px; background:var(--soft); }
.baseline-designation-form { display:grid; grid-template-columns:1.2fr .8fr 1fr; gap:10px 12px; align-items:start; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.baseline-designation-form.baseline-client-setup { grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr); margin:0; padding:0; border:0; }
.baseline-designation-form > .control-action-row { grid-column:1 / -1; }
.baseline-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.baseline-row + .baseline-row { margin-top:7px; }
.baseline-row.is-current { border-left:4px solid var(--good); background:var(--good-fill); }
.baseline-row > div { display:flex; flex-direction:column; gap:3px; }
.baseline-row span { color:var(--muted); font-size:.76rem; }
.baseline-release-actions { display:grid; gap:7px; margin-top:8px; }
.baseline-release-actions article { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.baseline-release-actions article > div { display:flex; flex-direction:column; gap:2px; }
.baseline-release-actions span { color:var(--muted); font-size:.74rem; }
.motion-release-strip { display:grid; gap:7px; margin-top:12px; }
.motion-release-strip article { display:grid; grid-template-columns:42px minmax(120px,.8fr) repeat(4,minmax(110px,1fr)); gap:10px; align-items:center; padding:9px 11px; border-bottom:1px solid var(--line); }
.motion-release-strip article b { color:var(--blue); }
.motion-release-strip article span { color:var(--muted); font-size:.74rem; }
@media (max-width:760px) {
  .capability-toolbar,.baseline-designation-form { grid-template-columns:1fr; }
  .capability-toolbar > .control-field:only-of-type,.capability-toolbar > .control-action-row,.baseline-designation-form > .control-action-row { grid-column:auto; }
  .baseline-current-receipt,.baseline-update-receipt { grid-template-columns:1fr; }
  .baseline-current-receipt small { text-align:left; }
  .baseline-workflow > .section-heading,#baseline-comparison-result > .section-heading { align-items:flex-start; flex-direction:column; }
  .baseline-workflow > .section-heading .settings-badge,#baseline-comparison-result > .section-heading .settings-badge { align-self:flex-start; }
  .control-action-row { justify-content:stretch; }
  .control-action-row > .task-action { width:100%; height:var(--control-height-touch); min-height:var(--control-height-touch); }
  .baseline-row,.motion-release-strip article { grid-template-columns:1fr; }
  .capability-intro { grid-template-columns:1fr; }
}


/* Delay tolerance curve. The picture is a server-rendered SVG so the page,
   the brief and the workbook show one drawing; this only gives it room. */
.delay-curve-figure {
  margin: var(--space-3) 0;
  overflow-x: auto;
}

.delay-curve-figure svg {
  width: 100%;
  height: auto;
  min-width: 420px;
}

.delay-curve-figure figcaption {
  margin-top: var(--space-2);
  color: var(--muted);
  font-size: var(--text-s);
}

/* Kinetic limits. The mechanism grid is a standing reference, not a result:
   it says what each rate responds to before anyone declares anything. */
.kinetic-mechanism-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-2);
  margin: var(--space-3) 0;
}

.kinetic-mechanism {
  display: grid;
  gap: 2px;
  padding: var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-surface);
  font-size: var(--text-s);
}

.kinetic-mechanism code {
  color: var(--muted);
  font-size: var(--text-xs);
}

.kinetic-mechanism span {
  color: var(--muted);
}

.kinetic-mechanism b {
  margin-top: var(--space-1);
}

.kinetic-mechanism em {
  color: var(--warn);
  font-style: normal;
  font-weight: var(--weight-strong);
  font-size: var(--text-xs);
}

.kinetic-figure {
  margin: var(--space-3) 0;
  overflow-x: auto;
}

.kinetic-figure svg {
  width: 100%;
  height: auto;
  min-width: 420px;
}

.kinetic-limits-card textarea {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--text-s);
}

/* Approved materials: the connector between the planned start and the day the
   product can be there is the finding, so give the drawing room to show it. */
.material-figure {
  margin: var(--space-3) 0;
  overflow-x: auto;
}

.material-figure svg {
  width: 100%;
  height: auto;
  min-width: 460px;
}

.material-floors-card textarea {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--text-s);
}

/* Critical Path What-If Quick Lab */
.scenario-anchor-receipt {
  display: grid;
  gap: 3px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line-accent);
  border-radius: 8px;
  background: var(--soft);
}
.scenario-anchor-receipt span:last-child { color: var(--muted); font-size: .82rem; }
.resource-calendar-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.resource-calendar-grid fieldset {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.resource-calendar-grid legend { padding: 0 6px; font-weight: 800; }
.calendar-lanes { margin: 14px 0; overflow: auto; }
.calendar-lane-grid {
  display: grid;
  grid-template-columns: 120px repeat(7, minmax(72px, 1fr));
  gap: 5px;
  align-items: stretch;
  min-width: 720px;
}
.calendar-lane-grid > * {
  min-width: 0;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--panel);
  font-size: .78rem;
}
.calendar-lane-grid .lane-label { position: sticky; left: 0; z-index: 1; background: var(--soft); font-weight: 800; }
.calendar-lane-grid .lane-day { text-align: center; font-weight: 800; }
.calendar-lane-grid .lane-value { display: grid; place-items: center; min-height: 38px; text-align: center; }
.calendar-lane-grid .lane-value[data-state="withheld"] { color: var(--muted); background: var(--soft); }
.calendar-lane-grid .lane-value[data-lane="feasible"] { border-color: var(--blue); background: var(--soft); font-weight: 800; }
.paired-control { display: grid; grid-template-columns: minmax(120px, 1fr) 76px; gap: 8px; align-items: center; }
.paired-control input[type="number"] { min-width: 0; }
.workability-slider[data-evidence="derived"] { padding: 8px; border: 1px solid var(--blue); border-radius: 7px; background: var(--soft); }
.workability-slider small { display: block; color: var(--muted); font-size: .72rem; }
.scenario-receipt-bar {
  position: sticky;
  bottom: 12px;
  z-index: 8;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid var(--line-accent);
  border-radius: 9px;
  background: color-mix(in srgb, var(--panel) 94%, transparent);
  box-shadow: 0 8px 24px rgba(20, 34, 66, .12);
}
.scenario-receipt-bar p { margin: 2px 0 0; }
[hidden] { display: none !important; }
details:not([open]) > :not(summary) { display: none !important; }
.performance-evidence-detail { margin-top: 8px; padding: 8px 0; }
.kpi-mosaic-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:12px 0; }
.kpi-mosaic-grid article { min-width:0; display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--soft-accent); }
.kpi-mosaic-grid b { color:var(--blue); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.kpi-mosaic-grid strong { font-size:.9rem; }
.kpi-mosaic-grid small { color:var(--muted); line-height:1.35; }
@media (max-width:760px) { .kpi-mosaic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.performance-evidence-detail > summary { color: var(--blue); }
.page-verdict-chart-host img,
.export-preview-chart img { display: block; width: 100%; height: auto; }

/* Shared shell rules moved out of generated HTML so every route reuses one
   cacheable copy instead of carrying the same layout bytes. */
.ux-tooltip { position: relative; }
.ux-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 20;
  left: 0;
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: min(260px, calc(100vw - 32px));
  padding: 7px 9px;
  border-radius: 6px;
  background: var(--ink);
  color: var(--on-accent);
  font-size: .75rem;
  font-weight: 500;
  line-height: 1.3;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity var(--motion-duration) ease, transform var(--motion-duration) ease;
}
.ux-tooltip:hover::after,
.ux-tooltip:focus-visible::after { opacity: 1; transform: translateY(0); }
.tooltip-trigger {
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  min-height:20px;
  margin:0 0 0 3px;
  padding:0;
  border:1px solid var(--line-accent);
  border-radius:50%;
  color:var(--blue);
  background:var(--panel);
  font-family:inherit;
  font-size:.72rem;
  font-weight:700;
  line-height:1;
  vertical-align:middle;
  cursor:help;
}
.tooltip-trigger:hover,.tooltip-trigger:focus-visible { border-color:var(--blue); outline:none; box-shadow:0 0 0 3px rgba(0,102,255,.16); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 16px; color: var(--muted); font-size: .82rem; }
.breadcrumb a { color: var(--blue); font-weight: 700; }
.spotlight { position: relative; z-index: 30; border-radius: 8px; box-shadow: 0 0 0 4px rgba(0,102,255,.2), 0 0 0 100vmax rgba(16,20,52,.18); }
.mobile-menu-button,
.mobile-nav { display: none; }
body[data-nav-audience="owner"] #primary-nav a { display: block; }
body[data-nav-audience="owner"] #primary-nav .nav-intent { display: block; margin-top: 1px; color: var(--muted); font-size: .72rem; font-weight: 500; line-height: 1.25; }
nav a.is-secondary { opacity: .55; }
nav a.forensic-only-nav { display: none; }
body[data-forensic="on"] nav a.forensic-only-nav { display: block; }
.glossary-list dt { margin-top: 12px; font-weight: 700; }
.glossary-list dd { margin: 2px 0 0; color: var(--muted); }
.owner-questions { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 10px; margin: 0 0 16px; }
.owner-questions a { display: block; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: inherit; text-decoration: none; }
.owner-questions a strong { display: block; margin-bottom: 4px; color: var(--blue); }
.owner-questions a span { color: var(--muted); font-size: .8rem; }

/* Home command surface: a short default read with evidence on demand. */
.intelligence-front-door {
  padding: 14px 16px;
}
.intelligence-front-door h2 { margin: 2px 0 4px; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.intelligence-front-door > p { margin: 0; font-size: .82rem; }
.intelligence-front-door .capability-kpis { margin-top: 8px; }
.intelligence-front-door .capability-kpis article { min-height: 64px; padding: 8px 10px; }
.intelligence-front-door .capability-kpis article strong { font-size: .86rem; line-height: 1.25; }
.intelligence-front-door .capability-kpis article small { font-size: .68rem; line-height: 1.3; }
.intelligence-front-door .actions { margin: 9px 0 0; }
.intelligence-front-door .actions a { min-height: 32px; padding: 5px 9px; font-size: .76rem; }
.home-health-command,
.home-report-map,
.home-analysis-deck {
  margin: var(--space-4, 16px) 0;
}
.home-report-map {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--soft);
}
.home-attention-queue { display: grid; gap: 7px; margin-bottom: 14px; }
.home-attention-heading { display: flex; justify-content: space-between; gap: 12px; }
.home-attention-heading span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.home-attention-item {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 11px;
  border-left: 4px solid var(--muted);
  border-radius: 7px;
  background: var(--panel);
}
.home-attention-item > b { color: var(--muted); font-size: 1.05rem; text-align: center; }
.home-attention-item > div { display: grid; gap: 2px; min-width: 0; }
.home-attention-item span,.home-attention-item small { color: var(--muted); font-size: .7rem; }
.home-attention-item strong { font-size: .82rem; line-height: 1.3; }
.home-attention-item.is-critical { border-left-color: var(--bad); }
.home-attention-item.is-watch { border-left-color: var(--warn); }
.home-attention-item.is-healthy { border-left-color: var(--good); }
.home-domain-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.home-domain-card { display: flex; flex-direction: column; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.home-domain-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.home-domain-card-head > span { font-size: .68rem; text-transform: uppercase; }
.home-domain-card-head small { color: var(--muted); font-size: .66rem; }
.home-domain-card h4 { margin: 8px 0 4px; }
.home-domain-card > p { margin: 0 0 8px; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.home-domain-card ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin: auto 0 10px; padding: 0; list-style: none; }
.home-domain-card li { display: grid; min-width: 0; padding: 6px; border-radius: 6px; background: var(--soft); }
.home-domain-card li span { color: var(--muted); font-size: .63rem; }
.home-domain-card li b { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.home-domain-card .home-evidence-gap { padding: 6px; border-left: 3px solid var(--muted); background: var(--soft); }
.home-domain-card > a { font-size: .76rem; font-weight: 800; }
.home-command-heading,
.home-analysis-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}
.home-command-heading h3,
.home-analysis-heading h3 {
  margin: 2px 0;
  font-size: clamp(1.08rem, 2vw, 1.35rem);
}
.home-command-heading p,
.home-analysis-heading p { margin: 0; }
.home-command-actions .home-actions {
  margin: 0;
  justify-content: flex-end;
}
.home-command-actions .home-actions a:not(.primary) { display: none; }
.home-health-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.home-health-card,
.home-analysis-card,
.home-secondary {
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
}
.home-health-card > summary,
.home-analysis-card > summary,
.home-secondary > summary {
  list-style: none;
}
.home-health-card > summary::-webkit-details-marker,
.home-analysis-card > summary::-webkit-details-marker,
.home-secondary > summary::-webkit-details-marker { display: none; }
.home-health-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 82px;
  padding: 14px 16px;
}
.home-health-card > summary span:first-child { display: grid; gap: 3px; }
.home-health-card > summary small,
.home-analysis-card > summary small {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 650;
  line-height: 1.35;
}
.home-health-card > summary small {
  color: var(--blue);
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-module-state {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 999px;
  color: var(--muted);
  background: var(--soft);
  font-size: .66rem;
  font-weight: 900;
  text-transform: uppercase;
}
.home-health-card[open] .home-module-state { color: var(--blue); background: var(--soft-accent); }
.home-health-detail,
.home-analysis-panel {
  padding: 14px 16px 16px;
  border-top: 1px solid var(--line);
}
.home-analysis-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.home-analysis-card { min-width: 0; }
.home-analysis-card > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-height: 92px;
  padding: 12px;
}
.home-analysis-card > summary span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.home-analysis-card > summary strong { line-height: 1.15; }
.home-module-number {
  color: var(--blue);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .08em;
}
.home-module-chevron,
[data-disclosure-icon] { color:var(--blue); font-size:1.25rem; font-weight:500; transform:rotate(0); transition:transform var(--motion-duration) ease; }
.home-analysis-card[open] {
  grid-column: 1 / -1;
  border-color: var(--line-accent);
  box-shadow: 0 8px 24px rgba(25, 73, 130, .07);
}
.home-analysis-card[open] > summary { min-height: 58px; background: var(--soft-accent); }
details[open] > summary [data-disclosure-icon],
.home-analysis-card[open] .home-module-chevron { transform:rotate(45deg); }
.home-metric-grid,
.home-dcma-grid,
.home-check-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.home-metric,
.home-dcma-check,
.home-logic-check {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft);
}
.home-metric span,
.home-dcma-check span,
.home-logic-check span { color: var(--muted); font-size: .7rem; line-height: 1.35; }
.home-metric strong { font-variant-numeric: tabular-nums; }
.home-dcma-check[data-state="failed"],
.home-dcma-check[data-state="fail"],
.home-dcma-check[data-state="warning"] { border-color: var(--warn-line); background: var(--warn-fill); }
.home-dcma-check[data-state="passed"],
.home-dcma-check[data-state="pass"] { border-color: var(--good-line); background: var(--good-fill); }
.home-cpm-drilldown {
  margin: 10px 0;
  padding: 12px;
  border-left: 3px solid var(--blue);
  background: var(--soft-accent);
}
.home-cpm-drilldown p { margin: 4px 0 0; color: var(--muted); }
#home-cpm-path tbody tr { cursor: pointer; }
#home-cpm-path tbody tr:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.home-secondary { margin-top: 12px; }
.home-secondary > summary { padding: 11px 14px; color: var(--blue); }
.home-secondary-content { padding: 0 14px 14px; }
.home-secondary .focused-secondary:empty { display: none; }
.home-analysis-panel > .status,
.home-health-detail > .status { margin: 8px 0; }
.home-analysis-panel .page-verdict-block { margin-bottom: 12px; }

@media (max-width: 1024px) {
  .home-analysis-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-domain-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 736px) {
  .home-command-heading,
  .home-analysis-heading { align-items: flex-start; flex-direction: column; }
  .home-command-actions .home-actions { justify-content: flex-start; }
  .home-health-grid,
  .home-analysis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .intelligence-front-door .capability-kpis { grid-template-columns: minmax(0, 1fr); }
  .intelligence-front-door .capability-kpis article {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: baseline;
    min-height: 0;
  }
  .intelligence-front-door .capability-kpis article strong,
  .intelligence-front-door .capability-kpis article small { grid-column: 2; }
  .intelligence-front-door .actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intelligence-front-door .actions a { align-items: flex-start; white-space: normal; }
  .home-health-grid,
  .home-analysis-grid { grid-template-columns: minmax(0, 1fr); }
  .home-analysis-card > summary { min-height: 68px; }
  .home-metric-grid,
  .home-dcma-grid,
  .home-check-strip { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .home-module-chevron,
  [data-disclosure-icon] { transition:none; }
}
html, body { max-width: 100%; overflow-x: clip; }

@media (max-width: 860px) {
  .mobile-menu-button { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); font-size: 1.2rem; cursor: pointer; }
  .mobile-nav { position: absolute; z-index: 10; left: 12px; right: 12px; top: 78px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: 0 12px 30px rgba(16,20,52,.16); }
  .mobile-nav.is-open { display: grid; }
  .mobile-nav a { display: block; }
}

@media (min-width: 861px) {
  body[data-nav-contract="left"] .shell {
    width: auto !important;
    max-width: 1180px;
    margin: 12px 28px 12px 252px !important;
  }
}

/* Quick Lab keeps decision controls in view and defers only specialist limits. */
#wi-calendar-boundary > .notice { margin: 8px 0 0; padding: 10px 12px; }
#wi-work-calendar .work-calendar-now { margin: 6px 0; }
#wi-work-calendar .calendar-lanes { margin: 8px 0; }
#wi-work-calendar .work-calendar-headroom { margin-top: 8px; }
#wi-work-calendar .calendar-lane-grid > * { padding: 5px; }
#wi-work-calendar .calendar-lane-grid .lane-value { min-height: 30px; }
#wi-work-calendar .work-calendar-headroom .overview-stats { margin: 4px 0; }
#wi-work-calendar .work-calendar-headroom p { margin: 4px 0 0; }
#wi-replay-gate > .settings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#wi-workability-map .workability-primary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 10px; }
#wi-workability-map .workability-slider { padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; }
#wi-workability-map .workability-factor-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
#wi-workability-map .workability-factor-list article { padding: 7px 8px; font-size: .78rem; }
#wi-workability-map .workability-factor-list article > div:nth-child(2) { height: 6px; margin: 4px 0; }
#wi-workability-map .workability-combined { grid-template-columns: minmax(120px, .6fr) minmax(0, 1.4fr); align-items: center; padding: 9px 11px; }
#wi-workability-map .workability-combined strong { font-size: 1.25rem; }
.quick-intervention-card .intervention-primary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 10px; }
.quick-intervention-card .actions { margin: 10px 0; }
.quick-verification-card { gap: 7px; }
.quick-verification-card .settings-card-head { padding-bottom: 6px; }
.quick-lab-details { padding: 8px 0; }

@media (max-width: 900px) {
  #wi-workability-map .workability-primary-grid,
  #wi-workability-map .workability-factor-list,
  .quick-intervention-card .intervention-primary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 736px) {
  .resource-calendar-grid { grid-template-columns: 1fr; }
  .scenario-receipt-bar { bottom: 6px; grid-template-columns: 1fr; }
  .scenario-receipt-bar button { width: 100%; }
  #wi-workability-map .workability-primary-grid,
  #wi-workability-map .workability-factor-list,
  .quick-intervention-card .intervention-primary-grid { grid-template-columns: 1fr; }
  #wi-workability-map .workability-combined { grid-template-columns: 1fr; }
}

/* Earned value essentials. Grouped by family because the four inputs, the two
   variances, the two indices, the time set and the forecast set are read as
   groups; a flat sixteen-tile grid hides which figures answer which question. */
#ev-decision-metrics {
  display: grid;
  gap: var(--space-4);
}

.evm-family {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--space-2);
}

.evm-family header {
  grid-column: 1 / -1;
  display: grid;
  gap: 2px;
}

.evm-family header b {
  font-size: var(--text-s);
  font-weight: var(--weight-strong);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--blue);
}

.evm-family header span {
  color: var(--muted);
  font-size: var(--text-s);
}

.evm-family article {
  display: grid;
  gap: 2px;
  padding: var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-surface);
  background: var(--panel);
}

.evm-family article b {
  font-size: var(--text-s);
  color: var(--muted);
}

.evm-family article strong {
  font-size: var(--text-l);
  font-variant-numeric: tabular-nums;
}

.evm-family article small {
  color: var(--muted);
  font-size: var(--text-xs);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.evm-family article em {
  color: var(--muted);
  font-style: normal;
  font-size: var(--text-xs);
  line-height: 1.35;
}

.evm-family article.is-on-target strong { color: var(--status-pass); }
.evm-family article.is-off-target strong { color: var(--status-warning); }
.evm-family article.is-withheld strong { color: var(--muted); font-size: var(--text-m); }

/* The forecast family is not observed and does not get to look like it is. */
.evm-family.is-forecast article {
  border-style: dashed;
  background: var(--soft);
}

.evm-forecast-boundary {
  margin: 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--line);
}

/* DCMA-14 settings: P6's Check Schedule dialog, plus the column it lacks --
   whether the target in front of you is the one the tool ships. */
.dcma-settings-head {
  display: grid;
  gap: 2px;
  margin-bottom: var(--space-3);
}

.dcma-settings-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-s);
}

.dcma-settings-table th {
  text-align: left;
  padding: var(--space-2);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: var(--text-xs);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.dcma-settings-table td {
  padding: var(--space-2);
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.dcma-settings-label {
  min-width: 20rem;
}

.dcma-setting-compare {
  text-align: center;
  font-weight: var(--weight-strong);
  color: var(--muted);
}

.dcma-setting-target,
.dcma-setting-hours {
  width: 5.5rem;
  padding: 4px 6px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.dcma-setting-units {
  margin-left: 4px;
  color: var(--muted);
}

.dcma-settings-table td:nth-child(3),
.dcma-settings-table td:nth-child(5) {
  white-space: nowrap;
}

/* A loosened target is the finding: the check snags less than a default run
   would, and a pass earned under it was earned under it. */
.dcma-off-standard {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  font-size: var(--text-xs);
  font-weight: var(--weight-strong);
}

.dcma-off-standard.is-looser {
  color: var(--bad);
  background: var(--bad-fill);
  border: 1px solid var(--bad-line);
}

.dcma-off-standard.is-stricter {
  color: var(--good);
  background: var(--good-fill);
  border: 1px solid var(--good-line);
}

.dcma-off-standard.is-invalid {
  color: var(--on-accent);
  background: var(--bad);
}

.dcma-settings-table tr[data-state="looser"] .dcma-setting-target {
  border-color: var(--bad-line);
  background: var(--bad-fill);
}

.dcma-settings-table tr[data-state="invalid"] .dcma-setting-target {
  border-color: var(--bad);
  background: var(--bad-fill);
}

/* Settings: the DCMA-14 targets as one open grid, P6 Check Schedule style.
   A row per line, every input visible, the shipped value beside it. */
/* The generic focused form caps at 720px, which is a sign-in form's width; a
   settings page with a sixteen-row grid gets the content column. */
#focused-settings.settings-form { max-width: none; }
.dcma-grid-card { grid-template-columns: minmax(0, 1fr); }
.dcma-grid-scroll { margin: 0; }
.dcma-grid {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  font-size: var(--text-s);
}
.dcma-grid th {
  padding: var(--space-2);
  border-bottom: 2px solid var(--line);
  background: var(--soft);
  color: var(--muted);
  font-size: var(--text-xs);
  letter-spacing: .05em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
.dcma-grid td {
  padding: var(--space-2);
  border-top: 1px solid var(--line);
  vertical-align: middle;
}
/* 3.2 and 5.2 are the second setting of the same check: one rule between
   checks, a lighter one inside a check. */
.dcma-grid tr.is-continuation td { border-top: 1px dashed var(--line); }
.dcma-grid tbody tr:hover td { background: var(--soft); }
.dcma-grid tr[data-state="off"] td:not(.dcma-grid-on) { opacity: .55; }
.dcma-grid-on { width: 2.5rem; text-align: center; }
.dcma-grid-on input { width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; accent-color: var(--blue); }
.dcma-grid-num { width: 4.25rem; white-space: nowrap; }
.dcma-grid-check { min-width: 15rem; }
.dcma-grid-check label { display: inline; cursor: pointer; }
.dcma-grid-check small { display: block; margin-top: 2px; color: var(--muted); line-height: 1.35; }
.dcma-grid-check .dcma-owner-flag { margin-left: var(--space-2); vertical-align: 1px; }
.dcma-grid-detail { font-style: italic; }
.dcma-grid-over,
.dcma-grid-target { white-space: nowrap; }
.dcma-grid-over { width: 7rem; }
.dcma-grid-target { width: 9.5rem; }
.dcma-grid input[type=number] {
  width: 5.5rem;
  min-height: 34px;
  padding: 5px 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  color: var(--ink);
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.dcma-grid select { width: auto; max-width: 15rem; min-height: 34px; padding: 5px 7px; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.dcma-grid input[data-off-standard="looser"] { border-color: var(--bad-line); background: var(--bad-fill); }
.dcma-grid input[data-off-standard="stricter"] { border-color: var(--good-line); background: var(--good-fill); }
.dcma-grid input[data-off-standard="invalid"] { border-color: var(--bad); background: var(--bad-fill); }
.dcma-grid-comparator { display: inline-block; width: 1.1rem; color: var(--muted); font-weight: var(--weight-strong); text-align: center; }
.dcma-grid-units { display: inline-block; min-width: 1.1rem; margin-left: 4px; color: var(--muted); }
.dcma-grid-fixed small { color: var(--muted); }
.dcma-grid-ships { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dcma-grid-state { min-width: 9rem; }
.dcma-grid-state .dcma-off-standard { margin: 1px 0; }
.dcma-grid-standard { color: var(--muted); font-size: var(--text-xs); }
.dcma-off-standard.is-off { color: var(--muted); background: var(--soft); border: 1px dashed var(--line); }
.dcma-grid-legend { display: flex; align-items: center; margin: 0; font-size: var(--text-s); }
.dcma-grid-card .settings-card-head { align-items: flex-start; }
.what-if-grid label > span { display: inline-flex; align-items: center; }

/* The three areas an owner's scheduler reaches for first. */
.dcma-owner-flag {
  display: inline-block;
  margin-left: var(--space-2);
  padding: 1px 7px;
  border: 1px solid var(--warn-line);
  border-radius: var(--radius-pill);
  color: var(--warn);
  background: var(--warn-fill);
  font-size: var(--text-xs);
  font-weight: var(--weight-strong);
  white-space: nowrap;
}

.evidence-boundary-diagram {
  margin: 14px 0 18px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft);
}
.evidence-boundary-diagram svg { display: block; width: 100%; height: auto; }
.evidence-boundary-diagram text { fill: var(--ink); font: 700 13px system-ui, sans-serif; }
.evidence-boundary-diagram text + text { fill: var(--muted); font-size: 11px; font-weight: 500; }
.evidence-boundary-observed { fill: var(--good-fill); stroke: var(--good-line); }
.evidence-boundary-derived { fill: var(--soft-accent); stroke: var(--line-accent); }
.evidence-boundary-withheld { fill: var(--warn-fill); stroke: var(--warn-line); }
.evidence-boundary-arrow { fill: none; stroke: var(--muted); stroke-width: 2; stroke-dasharray: 4 4; }
.evidence-boundary-diagram figcaption { margin-top: 8px; color: var(--muted); font-size: .78rem; }
@media (max-width: 640px) {
  .evidence-boundary-diagram text { font-size: 11px; }
  .evidence-boundary-diagram text + text { font-size: 9px; }
}

/* Portfolio: one compact five-report decision surface. */
body[data-page-key="portfolio"] #page-project-context { display: none; }
.portfolio-headline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin: 10px 0 12px;
  padding: 16px 18px;
  border: 1px solid var(--line-accent);
  border-left: 4px solid var(--blue);
  border-radius: var(--radius-surface);
  background: linear-gradient(100deg, var(--soft-accent), var(--panel) 72%);
}
.portfolio-headline-copy { display: grid; gap: 3px; }
.portfolio-headline-copy > strong { font-size: var(--text-xl); line-height: 1.15; }
.portfolio-headline-copy > span:last-child { display: block; }
.portfolio-headline-mark { flex: 0 0 92px; width: 92px; height: 50px; color: var(--blue); }
.portfolio-headline-mark rect { fill: currentColor; opacity: .18; stroke: currentColor; stroke-width: 1.5; }
.portfolio-headline-mark rect:nth-child(3) { opacity: .75; }
.portfolio-exports { flex: 0 0 auto; margin: 0; }
.portfolio-report-set,
.portfolio-projects {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius-surface);
  background: var(--panel);
}
.portfolio-report-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.portfolio-report-card {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--soft);
}
.portfolio-report-card > div:first-child { display: grid; gap: 2px; }
.portfolio-report-card strong { font-size: var(--text-m); }
.portfolio-report-card span,
.portfolio-report-card small { color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
.portfolio-report-card-loading { min-height: 93px; opacity: .72; }
.portfolio-report-card-loading .portfolio-coverage-track i { width: 42%; background: var(--line-accent); }
.portfolio-coverage-track { height: 7px; overflow: hidden; border-radius: 999px; background: var(--good-fill); }
.portfolio-coverage-track i { display: block; height: 100%; border-radius: inherit; background: var(--warn); }
.portfolio-grid { display: grid; gap: 7px; margin-top: 12px; }
.portfolio-grid-head,
.pf-project-row {
  display: grid;
  grid-template-columns: minmax(185px, 1.35fr) repeat(5, minmax(105px, 1fr));
  gap: 7px;
  min-width: 0;
}
.portfolio-grid-head { padding: 0 8px; color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-strong); letter-spacing: .04em; text-transform: uppercase; }
.pf-project-row {
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow-card);
}
.pf-project { display: grid; align-content: start; gap: 3px; min-width: 0; padding: 5px 4px; }
.pf-project a { color: var(--ink); text-decoration: none; }
.pf-project a:hover strong { color: var(--blue); text-decoration: underline; }
.pf-project span { color: var(--muted); font-size: var(--text-xs); }
.pf-project b { font-size: var(--text-xs); font-weight: var(--weight-strong); }
.pf-report {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  min-height: 74px;
  padding: 8px;
  border: 1px solid var(--line);
  border-left-width: 3px;
  border-radius: 7px;
  color: var(--ink);
  background: var(--soft);
  text-decoration: none;
}
.pf-report:hover { border-color: var(--blue); box-shadow: 0 0 0 1px var(--line-accent); }
.pf-report:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }
.pf-report.pf-attention { border-left-color: var(--warn); background: var(--warn-fill); }
.pf-report.pf-withheld { border-left-color: var(--muted); background: var(--soft); }
.pf-report.pf-answered { border-left-color: var(--good); background: var(--good-fill); }
.pf-state { font-size: .62rem; font-weight: 900; letter-spacing: .055em; }
.pf-attention .pf-state { color: var(--warn); }
.pf-withheld .pf-state { color: var(--muted); }
.pf-answered .pf-state { color: var(--good); }
.pf-reading { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: var(--text-xs); line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
/* The three grids: one project a row, one measurement a column. Sixteen check
   columns will not fit any viewport, so the table scrolls inside its own
   region and the project column is pinned -- a value with no row label beside
   it is not a reading. */
.portfolio-matrices {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius-surface);
  background: var(--panel);
}
.pf-matrix { margin: 14px 0 0; }
.pf-matrix figcaption { display: grid; gap: 3px; margin-bottom: 7px; }
.pf-matrix figcaption strong { font-size: var(--text-m); }
.pf-matrix figcaption span { color: var(--muted); font-size: var(--text-xs); line-height: 1.4; }
.pf-matrix-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.pf-matrix-scroll:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }
.pf-matrix table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--text-xs); }
.pf-matrix th,
.pf-matrix td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.pf-matrix thead th {
  position: sticky; top: 0; z-index: 2;
  color: var(--muted); font-weight: var(--weight-strong); vertical-align: bottom;
  background: var(--soft);
}
.pf-matrix thead th b { display: block; color: var(--ink); font-size: var(--text-s); }
.pf-matrix thead th span { display: block; font-size: .62rem; font-weight: 500; }
/* Pinned so a percentage twelve columns to the right still has a project
   against it. The header corner needs the higher stacking order or the first
   column rides over it when both are stuck. */
.pf-matrix th[scope="row"],
.pf-matrix thead th:first-child,
.pf-matrix tfoot th {
  position: sticky; left: 0; z-index: 1;
  max-width: 210px; overflow: hidden; text-overflow: ellipsis;
  border-right: 1px solid var(--line);
  font-weight: var(--weight-strong); text-align: left;
  background: var(--panel);
}
.pf-matrix thead th:first-child { z-index: 3; background: var(--soft); }
.pf-matrix th[scope="row"] a { color: var(--ink); text-decoration: none; }
.pf-matrix th[scope="row"] a:hover { color: var(--blue); text-decoration: underline; }
.pf-matrix tbody tr:hover td,
.pf-matrix tbody tr:hover th[scope="row"] { background: var(--soft-accent); }
.pf-matrix td b { display: block; font-size: var(--text-s); font-weight: var(--weight-strong); }
.pf-matrix td span { display: block; color: var(--muted); font-size: .6rem; font-weight: 500; }
.pf-matrix td.is-pass b { color: var(--good); }
.pf-matrix td.is-warn { background: var(--warn-fill); }
.pf-matrix td.is-warn b { color: var(--warn); }
.pf-matrix td.is-fail { background: var(--bad-fill); }
.pf-matrix td.is-fail b { color: var(--bad); }
.pf-matrix td.is-none b { color: var(--muted); }
/* A quantity has no direction to be wrong in, so it takes no verdict hue. */
.pf-matrix td.is-plain b { color: var(--ink); }
.pf-matrix tfoot td,
.pf-matrix tfoot th { border-top: 2px solid var(--line-accent); border-bottom: 0; background: var(--soft); }
.pf-matrix tfoot td b { font-size: var(--text-s); }
/* The two families read as one row of columns unless the boundary is drawn. */
.pf-matrix thead th.pf-family-earned_schedule:first-of-type { border-left: 2px solid var(--line-accent); }
.pf-matrix .pf-reading-col { max-width: 320px; white-space: normal; color: var(--muted); text-align: left; line-height: 1.35; }
.portfolio-boundary { padding: 10px 2px 0; }
.history-report-set { margin-top: 14px; }
.history-report-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.history-report-card {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  min-height: 190px;
  padding: 11px;
  border: 1px solid var(--line);
  border-top-width: 3px;
  border-radius: 8px;
  background: var(--panel);
}
.history-report-card > div { display: grid; gap: 3px; }
.history-report-card.is-attention { border-top-color: var(--warn); background: var(--warn-fill); }
.history-report-card.is-withheld { border-top-color: var(--muted); background: var(--soft); }
.history-report-card.is-answered { border-top-color: var(--good); background: var(--good-fill); }
.history-report-state { font-size: .62rem; font-weight: 900; letter-spacing: .055em; }
.history-report-card.is-attention .history-report-state { color: var(--warn); }
.history-report-card.is-withheld .history-report-state { color: var(--muted); }
.history-report-card.is-answered .history-report-state { color: var(--good); }
.history-report-card p { margin: 0; color: var(--ink); font-size: var(--text-s); line-height: 1.4; }
.history-report-card small { color: var(--muted); font-size: var(--text-xs); }
.history-report-card a { align-self: end; margin-top: auto; color: var(--blue); font-size: var(--text-s); font-weight: var(--weight-strong); }
.home-displacement-state { margin-top: 8px; padding-left: 9px; border-left: 3px solid var(--line); }
.home-displacement-state[data-state="displaced"] { border-left-color: var(--warn); }
.home-displacement-state[data-state="working_the_path"] { border-left-color: var(--good); }
.home-cpm-adherence { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.home-cpm-adherence > strong { display: block; margin-bottom: 4px; font-size: var(--text-s); }
.home-cpm-adherence p { margin: 4px 0; font-size: var(--text-s); line-height: 1.45; }
.home-cpm-adherence p.muted { font-size: var(--text-xs); }
.home-adherence-classes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0; }
.home-adherence-classes article {
  display: grid; gap: 2px; min-width: 0; padding: 9px 10px;
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel);
}
/* The driving class is the one the question is about, so it is marked rather
   than left for the reader to find by position. */
.home-adherence-classes article.is-driving { border-left: 3px solid var(--blue); }
.home-adherence-classes span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.home-adherence-classes b { font-size: var(--text-l); font-weight: 900; line-height: 1.15; }
.home-adherence-classes small { color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
@media (max-width: 1050px) { .home-adherence-classes { grid-template-columns: minmax(0, 1fr); } }
.home-dcma-settings { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.home-dcma-settings > strong { display: block; margin-bottom: 4px; font-size: var(--text-s); }
.home-dcma-settings p { margin: 3px 0; font-size: var(--text-s); line-height: 1.45; }
.home-dcma-settings ul { margin: 6px 0; padding-left: 18px; }
.home-dcma-settings li { margin: 3px 0; font-size: var(--text-xs); line-height: 1.4; }
.home-dcma-settings .actions { margin-top: 8px; }
.cpm-pre-critical { margin-top: 14px; }
.cpm-margin-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0 8px;
}
.cpm-margin-tiles article {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
}
/* The one a reader came for is marked, not just placed second. */
.cpm-margin-tiles article.is-next { border-left: 3px solid var(--blue); }
.cpm-margin-tiles span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.cpm-margin-tiles b { font-size: var(--text-l); font-weight: 900; line-height: 1.15; }
.cpm-margin p { margin: 6px 0 0; font-size: var(--text-s); line-height: 1.45; }
.cpm-float-path { margin: 8px 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.cpm-float-path.is-critical { border-left: 3px solid var(--warn); }
.cpm-float-path summary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: baseline; cursor: pointer; }
.cpm-float-path summary b { font-size: var(--text-s); }
.cpm-float-path summary span { color: var(--ink); font-size: var(--text-s); line-height: 1.4; }
.cpm-float-path summary .muted { grid-column: 2; font-size: var(--text-xs); }
.cpm-pre-critical-table { width: 100%; border-collapse: collapse; font-size: var(--text-s); }
.cpm-pre-critical-table th, .cpm-pre-critical-table td { padding: 5px 8px; border-bottom: 1px solid var(--line); text-align: left; }
.cpm-pre-critical-table th { color: var(--muted); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .04em; }
@media (max-width: 760px) { .cpm-margin-tiles { grid-template-columns: minmax(0, 1fr); } }
.dcma-standard-summary { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.dcma-standard-summary > strong { display: block; margin-bottom: 4px; font-size: var(--text-s); }
.dcma-standard-summary p { margin: 3px 0; font-size: var(--text-s); line-height: 1.45; }
.dcma-standard-list { margin: 8px 0; padding-left: 2px; list-style: none; }
.dcma-standard-list li { margin: 5px 0; font-size: var(--text-xs); line-height: 1.45; }
.dcma14-target-link { display: block; margin-top: 3px; color: var(--blue); font-size: var(--text-xs); font-weight: var(--weight-strong); }
.dcma-settings-ownership { margin: 4px 0 0; color: var(--ink); font-size: var(--text-s); line-height: 1.45; }
.dcma-setting-number { white-space: nowrap; vertical-align: top; }
.dcma-setting-governs { display: block; margin-top: 2px; color: var(--muted); font-size: var(--text-xs); }
.home-posture {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px 16px;
  margin-bottom: 12px;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--soft);
}
.home-posture-identity strong { display: block; font-size: var(--text-m); }
.home-posture-identity p { margin: 2px 0 0; font-size: var(--text-xs); line-height: 1.4; }
.home-posture-choices { display: flex; flex-wrap: wrap; gap: 6px; }
.home-posture-choices button {
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink);
  font-size: var(--text-s);
  font-weight: var(--weight-strong);
  cursor: pointer;
}
/* The chosen posture is marked by weight and a border, not by hue alone: it
   has to survive greyscale like every other state on these pages. */
.home-posture-choices button.is-current { border-color: var(--blue); border-width: 2px; color: var(--blue); }
.home-posture-choices button.is-current::before { content: "\2713 "; }
.home-posture .metric-contract-note { grid-column: 1 / -1; margin: 0; }
@media (max-width: 760px) { .home-posture { grid-template-columns: minmax(0, 1fr); } }
.home-project-facts { margin-bottom: 14px; }
.home-fact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.home-fact {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-top-width: 3px;
  border-radius: 8px;
  background: var(--panel);
}
.home-fact span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; }
.home-fact b { font-size: var(--text-l); font-weight: 900; line-height: 1.15; }
.home-fact small { color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
.home-fact p { margin: 4px 0 0; color: var(--ink); font-size: var(--text-xs); line-height: 1.4; }
.home-fact a { margin-top: 6px; color: var(--blue); font-size: var(--text-xs); font-weight: var(--weight-strong); }
/* The state is written in the basis line under every value, so the tint is a
   second channel and never the only one. */
.home-fact.is-observed { border-top-color: var(--good); }
.home-fact.is-derived { border-top-color: var(--blue); }
.home-fact.is-withheld { border-top-color: var(--muted); background: var(--soft); }
.home-fact.is-withheld b { color: var(--muted); }
.home-fact-reports { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.home-fact-report {
  display: inline-grid;
  gap: 1px;
  padding: 6px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink);
}
.home-fact-report b { font-size: var(--text-s); font-weight: var(--weight-strong); }
.home-fact-report span { color: var(--muted); font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }
.home-fact-report[data-state="attention"] { border-color: var(--warn); }
.home-fact-report[data-state="attention"] span { color: var(--warn); }
.home-fact-report[data-state="withheld"] { background: var(--soft); }
@media (max-width: 1050px) {
  .home-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.history-weather { margin-top: 14px; }
.history-weather-tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.history-weather-tile {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-top-width: 3px;
  border-radius: 8px;
  background: var(--panel);
}
.history-weather-tile span { color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; }
.history-weather-tile b { font-size: 1.5rem; font-weight: 900; line-height: 1.1; }
.history-weather-tile small { color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
/* The count is named in words beside its colour, so the tile still reads
   correctly in greyscale and to a reader who cannot separate the hues. */
.history-weather-tile.is-attention { border-top-color: var(--warn); background: var(--warn-fill); }
.history-weather-tile.is-attention b { color: var(--warn); }
.history-weather-tile.is-withheld { border-top-color: var(--muted); background: var(--soft); }
.history-weather-tile.is-withheld b { color: var(--muted); }
.history-weather-tile.is-clear { border-top-color: var(--good); background: var(--good-fill); }
.history-weather-tile.is-clear b { color: var(--good); }
.history-weather-headline { margin: 12px 0 4px; color: var(--ink); font-size: var(--text-m); font-weight: var(--weight-strong); line-height: 1.4; }
.history-weather-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.history-weather-grid article { min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.history-weather-grid h4 { margin: 0 0 6px; font-size: var(--text-s); }
.history-weather-grid p { margin: 0 0 4px; color: var(--ink); font-size: var(--text-s); line-height: 1.4; }
.history-weather-grid small { display: block; color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
.history-weather-dark > strong { display: block; margin-bottom: 6px; }
.history-weather-dark p { margin: 3px 0; color: var(--muted); font-size: var(--text-s); line-height: 1.45; }
.history-weather-dark .history-weather-witness { margin-top: 10px; color: var(--ink); }
@media (max-width: 1050px) {
  .portfolio-report-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-weather-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-weather-grid { grid-template-columns: minmax(0, 1fr); }
  .portfolio-grid-head { display: none; }
  .pf-project-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-project { grid-column: 1 / -1; border-bottom: 1px solid var(--line); padding-bottom: 9px; }
}
@media (max-width: 640px) {
  .portfolio-headline { align-items: stretch; flex-direction: column; padding: 14px; }
  .portfolio-headline-mark { width: 78px; height: 42px; }
  .portfolio-exports { display: grid; grid-template-columns: 1fr 1fr; }
  .portfolio-report-set, .portfolio-projects { padding: 12px; }
  .portfolio-report-summary, .pf-project-row { grid-template-columns: 1fr; }
  .history-report-grid { grid-template-columns: 1fr; }
  .history-report-card { min-height: 0; }
  .pf-project { grid-column: auto; }
  .pf-report { min-height: 0; }
}

/* Buildability frontier panel (shared asset; kept out of page markup). */
.buildability-card .notice { margin-bottom:14px; }
.frontier-heading { margin:16px 0 8px; font-size:.92rem; }
.frontier-holder { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; padding:10px 12px; margin-top:8px; border:1px solid var(--warn-line); border-radius:7px; background:var(--warn-fill); }
.frontier-holder p { margin:4px 0 0; }
.frontier-holder b { white-space:nowrap; }
.frontier-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin-top:14px; }
.frontier-metrics article { display:flex; flex-direction:column; gap:2px; padding:10px; border:1px solid var(--line); border-radius:7px; background:var(--panel); }
.frontier-metrics span { font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.frontier-metrics strong { font-size:1.15rem; }
.frontier-metrics small { color:var(--muted); }
.frontier-sections { display:grid; gap:6px; }
.frontier-section { display:grid; grid-template-columns:minmax(110px,1.1fr) minmax(0,2fr) minmax(120px,auto); gap:10px; align-items:center; }
.frontier-section b { font-weight:600; font-size:.86rem; }
.frontier-section small { color:var(--muted); }
.frontier-track { height:12px; border-radius:6px; background:var(--soft); overflow:hidden; }
.frontier-track span { display:block; height:100%; border-radius:6px; background:var(--blue); }
.frontier-cut { margin-top:14px; }
.frontier-cut ul { padding-left:18px; }
@media (max-width:720px) {
  .frontier-section { grid-template-columns:minmax(0,1fr); }
  .frontier-holder { flex-direction:column; }
}
.numeric-negative {
  color: var(--bad) !important;
  font-weight: 800;
}
.visual-chart-empty.is-observed-reading {
  padding: 12px 14px;
  border-left: 4px solid var(--status-warning);
  border-radius: 7px;
  background: var(--warn-fill);
}
.visual-chart-empty.is-observed-reading strong { display: block; line-height: 1.4; }
.visual-chart-empty.is-unavailable-reading {
  padding: 12px 14px;
  border: 1px dashed var(--line);
  border-radius: 7px;
  color: var(--muted);
  background: var(--soft);
}
.chart-evidence-context .is-unavailable {
  padding: 2px 6px;
  border: 1px dashed var(--line);
  border-radius: 5px;
  color: var(--muted);
  background: var(--panel);
}
.cpm-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 10px;
}
.cpm-summary-card {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--muted);
  border-radius: 8px;
  background: var(--panel);
}
.cpm-summary-card strong { font-size: 1.45rem; line-height: 1; }
.cpm-summary-card span { color: var(--muted); font-size: .76rem; font-weight: 800; line-height: 1.25; }
.cpm-summary-card.is-critical { border-top-color: var(--bad); }
.cpm-summary-card.is-critical strong { color: var(--bad); }
.cpm-summary-card.is-watch { border-top-color: var(--warn); }
.cpm-summary-card.is-watch strong { color: var(--warn); }
.cpm-summary-card.is-healthy { border-top-color: var(--good); }
.cpm-summary-card.is-healthy strong { color: var(--good); }
.cpm-disagreement-details { margin: 0 0 14px; padding: 8px 0; }
.cpm-disagreement-details dl { display: grid; gap: 8px; margin: 10px 0 0; }
.cpm-disagreement-details dl > div { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(0,1.3fr); gap: 12px; }
.cpm-disagreement-details dt { font-weight: 800; }
.cpm-disagreement-details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--muted); }
.cpm-evidence-block {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
}
.cpm-block-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.cpm-block-heading strong,.cpm-block-heading .eyebrow { display: block; }
.cpm-block-heading > span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.cpm-path-strip { display: flex; gap: 6px; align-items: center; max-width: 100%; margin: 0 0 12px; padding: 10px; overflow-x: auto; border-radius: 7px; background: var(--soft); }
.cpm-path-strip > span { flex: 0 0 auto; padding: 6px 8px; border: 1px solid currentColor; border-radius: 6px; background: var(--panel); font-size: .72rem; }
.cpm-path-strip > span b { margin-right: 3px; }
.cpm-path-strip > i { flex: 0 0 auto; color: var(--muted); font-style: normal; }
.cpm-tablewrap { max-width: 100%; border: 1px solid var(--line); border-radius: 7px; }
.cpm-table {
  width: 100%;
  min-width: 700px;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: .86rem;
}
.cpm-table th,.cpm-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.cpm-table thead th { color: var(--muted); background: var(--soft); font-size: .7rem; letter-spacing: .04em; line-height: 1.25; text-transform: uppercase; }
.cpm-table tbody tr:last-child td { border-bottom: 0; }
.cpm-table tbody tr:hover td { background: var(--soft); }
.cpm-path-table .cpm-col-step { width: 8%; }
.cpm-path-table .cpm-col-identity { width: 48%; }
.cpm-path-table .cpm-col-band { width: 21%; }
.cpm-path-table .cpm-col-agreement { width: 23%; }
.cpm-activity-cell strong,.cpm-activity-cell span { display: block; }
.cpm-activity-cell strong { margin-bottom: 2px; }
.cpm-activity-cell span { color: var(--muted); line-height: 1.35; overflow-wrap: anywhere; }
.cpm-comparison-table th:nth-child(n+2):nth-child(-n+4),.cpm-comparison-table td:nth-child(n+2):nth-child(-n+4) { text-align: right; }
.cpm-comparison-table .cpm-col-agreement { width: 22%; }
.cpm-sort-choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.cpm-sort-choices button { color: var(--blue) !important; font-size: .68rem !important; text-transform: none; }
.cpm-unavailable { padding: 12px; border: 1px dashed var(--line); border-radius: 7px; color: var(--muted); background: var(--soft); }
.cpm-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.cpm-toolbar label { display: grid; gap: 5px; min-width: min(100%,260px); color: var(--muted); font-size: .72rem; font-weight: 800; }
.cpm-toolbar input,.cpm-toolbar select { min-height: 40px; }
.cpm-activity-drawer {
  position: fixed;
  z-index: 1000;
  top: 0;
  right: 0;
  width: min(620px, 92vw);
  max-width: none;
  height: 100vh;
  max-height: none;
  box-sizing: border-box;
  margin: 0 0 0 auto;
  overflow: auto;
  padding: 18px;
  border: 0;
  border-left: 1px solid var(--line);
  box-shadow: -18px 0 44px rgba(16,30,66,.24);
  background: var(--panel);
}
.cpm-activity-drawer[hidden] { display: none; }
.shell dialog.milestone-drawer { position:fixed; z-index:1000; top:0; right:0; box-sizing:border-box; width:min(680px,94vw); max-width:none; height:100dvh; max-height:none; margin:0 0 0 auto; overflow:auto; border:0; border-left:1px solid var(--line); border-radius:0; box-shadow:-18px 0 44px rgba(16,30,66,.24); }
.cpm-drawer-head { position: sticky; z-index: 2; top: -18px; display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: -18px -18px 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: var(--panel); }
.cpm-drawer-head > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.focused-loading-status { margin:8px 0 0; }
.focused-loading-status.is-error { color:var(--bad); }
.is-stale > :not([data-focused-loading-status]) { opacity:.68; }
.focused-loading-skeleton { display:grid; gap:8px; min-height:88px; align-content:center; }
.focused-loading-skeleton i { display:block; width:min(100%,42rem); height:12px; border-radius:999px; background:var(--soft); }
.focused-loading-skeleton i:nth-child(2) { width:min(78%,34rem); }
.focused-loading-skeleton i:nth-child(3) { width:min(56%,26rem); }
.cpm-detail-title > strong { display: block; margin: 4px 0; font-size: 1.08rem; }
.cpm-detail-title p { margin: 0 0 14px; color: var(--muted); }
.cpm-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.cpm-detail-grid > div { min-width: 0; padding: 9px; border-radius: 7px; background: var(--soft); }
.cpm-detail-grid dt { color: var(--muted); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.cpm-detail-grid dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: .8rem; }
.cpm-detail-columns { display: grid; gap: 12px; margin-top: 14px; }
.cpm-detail-columns section { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 7px; }
.cpm-detail-columns table { min-width: 480px; font-size: .75rem; }
.cpm-table tbody tr[role="button"] { cursor: pointer; }
.cpm-table tbody tr[aria-selected="true"] td { background: var(--soft-accent); }
table[data-sortable-table] th button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  font-weight: inherit;
  text-align: left;
  cursor: pointer;
}
table[data-sortable-table] th button::after {
  content: "↕";
  color: var(--muted);
  font-size: .72em;
}
table[data-sortable-table] th[aria-sort="ascending"] button::after { content: "↑"; }
table[data-sortable-table] th[aria-sort="descending"] button::after { content: "↓"; }
table[data-sortable-table] th[data-multi-sort] button::after { content: "↕"; }
table[data-sortable-table] th[data-multi-sort] button[data-sort-direction="asc"]::after { content: "↑"; }
table[data-sortable-table] th[data-multi-sort] button[data-sort-direction="desc"]::after { content: "↓"; }
@media (max-width: 720px) {
  .home-domain-cards { grid-template-columns: 1fr; }
  .home-attention-item { grid-template-columns: 24px minmax(0,1fr); }
  .home-attention-item > a { grid-column: 2; }
  .cpm-summary-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cpm-evidence-block { padding: 10px; }
  .cpm-block-heading { align-items: flex-start; flex-direction: column; }
  .cpm-disagreement-details dl > div { grid-template-columns: 1fr; gap: 2px; }
  .cpm-detail-grid { grid-template-columns: 1fr; }
}

/* Motif index strip: the block-band language on the Home ensemble metrics.
   The glyph carries distance-from-plan at a glance; the number beside it is
   the real reading, and the band is aria-hidden so a screen reader gets the
   number and the ceiling rather than eight block characters. */
.motif-index-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: baseline;
  margin: 0.55rem 0 0.35rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--line, #d7dbe7);
  border-radius: 10px;
  background: var(--soft-accent);
}
.motif-index { display: inline-flex; align-items: baseline; gap: 0.35rem; }
.motif-index > b { font-size: 0.78rem; letter-spacing: 0.03em; text-transform: uppercase; }
.motif-index > em { font-style: normal; font-variant-numeric: tabular-nums; font-weight: 600; }
.motif-band {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: -0.04em;
  font-size: 0.95rem;
  line-height: 1;
}
/* Hue carries the verdict, never on its own: the status word is in the DOM
   and the number is always printed. */
.motif-index[data-index-status="behind"] .motif-band { color: var(--warn, #b23c17); }
.motif-index[data-index-status="at_or_ahead"] .motif-band { color: var(--good); }
.motif-index[data-index-status="withheld"] .motif-band { color: var(--muted, #6b7280); }
.motif-index-strip > small { flex-basis: 100%; }
@media (max-width: 640px) { .motif-index-strip { gap: 0.4rem 0.7rem; } }
.dcma-report-card-table th:first-child,
.dcma-report-card-table th:first-child button { white-space: nowrap; }
