/* Keel HostDocument surface map (engine-owned). Products supply View trees only. */
:root {
  color-scheme: dark;
  /* Core palette (opaque text canvases for a11y) */
  --keel-bg: #070b14;
  --keel-ink: #eef3fb;
  --keel-muted: #93a0b5;
  --keel-accent: #7ec2ff;
  --keel-line: rgba(140, 170, 220, 0.14);
  --keel-card: #101624;
  --keel-elev-1: #0e1420;
  --keel-elev-2: #121a2c;
  --keel-success: #5ee4a8;
  --keel-warn: #f0c674;
  --keel-danger: #ff8e8e;
  /* Radius / max */
  --keel-radius: 16px;
  --keel-radius-sm: 10px;
  --keel-radius-pill: 999px;
  --keel-max: 1120px;
  --keel-max-wide: 1280px;
  /* Type scale (HostDocument surfaces map to these) */
  --keel-font: "Segoe UI", ui-sans-serif, system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --keel-font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --keel-fs-display: clamp(2.1rem, 4vw, 3.15rem);
  --keel-fs-title: clamp(1.45rem, 2.4vw, 1.85rem);
  --keel-fs-h2: 1.35rem;
  --keel-fs-lead: 1.08rem;
  --keel-fs-body: 0.98rem;
  --keel-fs-small: 0.84rem;
  --keel-fs-eyebrow: 0.72rem;
  --keel-lh-tight: 1.18;
  --keel-lh-body: 1.55;
  /* Density */
  --keel-space-1: 0.35rem;
  --keel-space-2: 0.65rem;
  --keel-space-3: 1rem;
  --keel-space-4: 1.35rem;
  --keel-space-5: 2rem;
  --keel-pad-comfortable: 1.25rem 1.35rem;
  --keel-pad-compact: 0.75rem 0.9rem;
}
* { box-sizing: border-box; }
html, body {
  margin: 0; min-height: 100%;
  background: var(--keel-bg); color: var(--keel-ink);
  font-family: var(--keel-font); line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.skip { position: absolute; left: -999px; top: 8px; background: #111; color: #fff; padding: 8px 12px; z-index: 30; }
.skip:focus { left: 8px; }

#keel-root[data-keel-surface="app-shell"],
#keel-root {
  position: relative; z-index: 1; width: 100%; padding: 0 0 40px;
  /* Opaque HostDocument canvas so axe/AT resolve text contrast against engine theme bg
     (transparent root yields color-contrast incomplete on nested View nodes). */
  background: var(--keel-bg);
  color: var(--keel-ink);
}
#keel-outlet {
  display: block;
  max-width: var(--keel-max);
  margin: 0 auto;
  padding: var(--keel-space-2) 20px 0;
  outline: none;
  background: transparent;
  color: inherit;
}
/* ---------- static-SSR layout mirrors ----------
 * Static documents render inside #keel-static-root (no JS, no AppView), so the
 * HostDocument layout primitives must apply there exactly as under the live
 * #keel-root. Products never re-implement these in product CSS.
 */
#keel-static-root {
  position: relative; z-index: 1; width: 100%; padding: 0 0 40px;
  background: var(--keel-bg);
  color: var(--keel-ink);
}
#keel-static-root [data-rect] {
  position: static !important; left: auto !important; top: auto !important;
  width: auto !important; height: auto !important;
}
#keel-static-root [data-keel-layout="stack"] { display: flex; flex-direction: column; align-items: stretch; }
#keel-static-root [data-keel-layout="row"] { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; }
#keel-static-root [data-keel-layout="wrap"] { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: inherit; }
#keel-static-root [data-keel-layout="scroll"] { overflow: auto; max-height: 70vh; }
#keel-static-root a { color: var(--keel-accent); text-decoration: none; }
#keel-static-root a:hover { color: #a9d6ff; }
#keel-static-root .spacer-flex { flex: 1 1 auto; min-width: 0.5rem; }
#keel-root [data-rect] {
  position: static !important; left: auto !important; top: auto !important;
  width: auto !important; height: auto !important;
}
#keel-root [data-keel-layout="stack"] { display: flex; flex-direction: column; align-items: stretch; }
#keel-root [data-keel-layout="row"] { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; }
#keel-root [data-keel-layout="wrap"] { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: inherit; }
#keel-root [data-keel-layout="scroll"] { overflow: auto; max-height: 70vh; }

#keel-root [data-keel-surface="nav"] {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
  width: 100%;
  margin: 0;
  padding: 0.4rem max(16px, calc((100vw - var(--keel-max)) / 2 + 16px));
  min-height: 2.75rem;
  border-bottom: 1px solid var(--keel-line);
  background: color-mix(in srgb, var(--keel-bg) 86%, transparent);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
}
#keel-root [data-keel-surface="brand"],
#keel-root [data-keel-surface="shared-vt-brand"] {
  font-weight: 750; color: var(--keel-ink) !important; font-size: 1.1rem;
  padding: 0.25rem 0.4rem; border: 1px solid rgba(140,180,255,.35); border-radius: 10px;
  text-decoration: none;
}
#keel-root [data-keel-surface="nav-link"] {
  color: var(--keel-muted) !important; font-size: 0.875rem; padding: 0.28rem 0.55rem;
  border-radius: 999px; text-decoration: none;
}
#keel-root [data-keel-surface="nav-link"].is-active,
#keel-root [data-keel-surface="nav-link"][aria-current="page"],
#keel-root [data-keel-surface="nav-link-active"] {
  color: var(--keel-ink) !important; background: #121a2c;
  box-shadow: inset 0 0 0 1px rgba(120,160,255,.22);
}
#keel-root [data-keel-surface="nav-cta"] {
  color: var(--keel-accent) !important; border: 1px solid rgba(126,194,255,.35);
  border-radius: 999px; padding: 0.3rem 0.7rem; text-decoration: none; font-size: 0.875rem;
}
#keel-root [data-keel-surface="hero"],
#keel-root [data-keel-surface="band"] { display: flex; flex-direction: column; gap: 0.85rem; padding: 0.5rem 0 0.25rem; }
#keel-root [data-keel-surface="panel"] {
  display: flex; flex-direction: column; gap: 0.85rem; padding: 1.15rem 1.2rem;
  border-radius: calc(var(--keel-radius) + 2px); border: 1px solid var(--keel-line);
  background: var(--keel-elev-1); /* solid text canvas; gradients break axe contrast */
}
#keel-root [data-keel-surface="grid"] { display: flex; flex-wrap: wrap; gap: 1rem; align-items: stretch; }
#keel-root [data-keel-surface="card"] {
  flex: 1 1 240px; min-width: min(100%, 220px); max-width: 100%;
  display: flex; flex-direction: column; gap: 0.45rem; padding: 1rem 1.05rem;
  border-radius: var(--keel-radius); border: 1px solid var(--keel-line); background: var(--keel-card);
}
#keel-root [data-keel-surface="cta-row"] { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: center; }
#keel-root [data-keel-surface="btn-primary"],
#keel-root [data-keel-surface="btn-ghost"] {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.65rem 1.05rem; border-radius: 999px; text-decoration: none; font-weight: 600;
}
#keel-root [data-keel-surface="btn-primary"] {
  background: #8ec7ff; color: #0a0e16 !important; border: none;
}
#keel-root [data-keel-surface="btn-ghost"] {
  color: var(--keel-ink) !important; border: 1px solid var(--keel-line); background: #0e1422;
}
#keel-root [data-keel-surface="eyebrow"] {
  font-size: 0.72rem; letter-spacing: 0.14em; font-weight: 650; color: var(--keel-accent); text-transform: uppercase;
}
#keel-root [data-keel-surface="lead"] { color: var(--keel-muted); font-size: 1.05rem; max-width: 42rem; }
#keel-root [data-keel-surface="body"],
#keel-root span { color: var(--keel-muted); max-width: 46rem; }
#keel-root [data-keel-surface="metric"] {
  flex: 1 1 120px; padding: 0.85rem 1rem; border-radius: 14px; border: 1px solid var(--keel-line);
  background: #0c121e;
}
#keel-root [data-keel-surface="metric-value"] {
  font-size: 1.9rem; font-weight: 730; letter-spacing: -0.03em;
  color: #9fd0ff; /* solid measurable; gradient text is axe incomplete */
}
#keel-root [data-keel-surface="foot"] {
  display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center;
  max-width: var(--keel-max); margin: 1.75rem auto 0; padding: 0.85rem 20px 0;
  border-top: 1px solid var(--keel-line);
}
#keel-root h1 { font-size: clamp(2rem, 4.5vw, 3.05rem); line-height: 1.08; letter-spacing: -0.035em; margin: 0.15em 0 0.35em; font-weight: 720; color: var(--keel-ink); }
#keel-root h2 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); margin: 0 0 0.4em; letter-spacing: -0.02em; }
#keel-root h3 { font-size: 1.05rem; margin: 0; color: var(--keel-ink); }
#keel-root a { color: var(--keel-accent); text-decoration: none; }
#keel-root a:hover { color: #a9d6ff; }
#keel-root .spacer-flex { flex: 1 1 auto; min-width: 0.5rem; }
/* Prefer Dom-emitted flex from UiStyle.flex over class escape */
#keel-root [style*="flex:"] { min-width: 0; }
#keel-outlet.is-route-enter { animation: keel-route-in .28s ease both; }
@keyframes keel-route-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  #keel-outlet.is-route-enter { animation: none; }
}

/* Semantic tables (UiKind::Table → <table>) */
#keel-root table {
  width: 100%; border-collapse: collapse; font-size: 0.9rem;
}
#keel-root table th, #keel-root table td {
  border: 1px solid var(--keel-line); padding: 0.55rem 0.65rem; text-align: left; vertical-align: top;
}
#keel-root table th { background: #141c2c; color: var(--keel-ink); font-weight: 650; }
#keel-root table td { color: var(--keel-muted); }
#keel-root [data-keel-surface="matrix"] { display: table; width: 100%; }

/* Form + document-edit field widgets.
 * Compact form textfields must not inherit doc-edit min-height:180 or large radius:
 * large border-radius + Dom inline radius makes axe color-contrast elmPartiallyObscured. */
#keel-root [data-keel-surface="field"],
#keel-root textarea[data-keel-surface="field"] {
  box-sizing: border-box !important;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  border-radius: 6px !important; /* beat Dom inline border-radius */
  border: 1px solid var(--keel-line);
  background: #080c16;
  color: var(--keel-ink);
  padding: 0.65rem 0.85rem;
  font: 16px/1.4 var(--keel-font);
  overflow: hidden;
  resize: vertical;
}
#keel-root textarea[data-keel-surface="field"][data-keel-doc-edit="1"],
#keel-root [data-keel-surface="field"][data-keel-doc-edit="1"] {
  min-height: 180px;
  font: 13px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  overflow: auto;
}
#pg-preview {
  min-height: 160px; border-radius: 12px; border: 1px solid var(--keel-line);
  background: #0c121e; padding: 1rem;
}
#pg-toolbar button {
  border-radius: 999px; border: 1px solid var(--keel-line);
  background: #121828; color: var(--keel-ink); padding: 0.4rem 0.85rem; cursor: pointer;
}

/* status surfaces */
#keel-root [data-keel-surface="async-pending"],
#keel-root [data-keel-surface="async-empty"],
#keel-root [data-keel-surface="async-error"],
#keel-root [data-keel-surface="async-ready"] {
  display: flex; flex-direction: column; gap: 0.35rem;
  padding: 0.85rem 1rem; border-radius: 12px; border: 1px solid var(--keel-line);
  background: #0c121e;
}
#keel-root [data-keel-surface="async-error"] { border-color: rgba(255,120,120,.35); }
#keel-root [data-keel-surface="async-ready"] { border-color: rgba(120,220,160,.28); }

/* dialog kit */
#keel-root [data-keel-surface="dialog"] {
  display: flex; flex-direction: column; gap: 0.65rem;
  max-width: min(420px, 92vw);
  margin: 1rem auto;
  padding: 1.1rem 1.2rem;
  border-radius: calc(var(--keel-radius) + 2px);
  border: 1px solid rgba(126,194,255,.28);
  background: #121e30; /* solid dialog canvas for contrast resolve */
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
}
#keel-root [data-keel-surface="dialog"] [role="heading"],
#keel-root [data-keel-surface="dialog"] h2 {
  margin: 0;
}

/* sticky header inside virtual list scroll */
#keel-root [data-keel-surface="virtual-list"] {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
#keel-root [data-keel-surface="virtual-list"]:focus-visible,
#keel-root [data-keel-virtualized="1"]:focus-visible {
  outline: 2px solid rgba(126,194,255,.55);
  outline-offset: 2px;
}
#keel-root [data-keel-surface="virtual-list-sticky"] {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #0a0e18;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--keel-line);
  padding: 0.45rem 0.6rem;
}
/* sticky leading column (horizontal scroll within virtual list) */
#keel-root [data-keel-surface="virtual-list-sticky-col"] {
  position: sticky;
  left: 0;
  z-index: 2;
  background: #0a0e18;
  border-right: 1px solid var(--keel-line);
  min-width: 2.5rem;
  padding: 0.25rem 0.5rem;
}
/* Corner: sticky top+left for header/leading intersection */
#keel-root [data-keel-surface="virtual-list-sticky-corner"] {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 4;
  background: #0a0e18;
  border-right: 1px solid var(--keel-line);
  border-bottom: 1px solid var(--keel-line);
  min-width: 2.5rem;
  padding: 0.45rem 0.5rem;
}

/* multi-header freeze panes: stacked sticky rows (top from inline style / surface token) */
#keel-root [data-keel-surface^="virtual-list-freeze-"] {
  position: sticky;
  z-index: 3;
  background: #0a0e18;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--keel-line);
  padding: 0.35rem 0.6rem;
}
#keel-root [data-keel-surface^="virtual-list-freeze-corner-"] {
  position: sticky;
  left: 0;
  z-index: 4;
  background: #0a0e18;
  border-right: 1px solid var(--keel-line);
  border-bottom: 1px solid var(--keel-line);
  min-width: 2.5rem;
  padding: 0.35rem 0.5rem;
}

/* multi-lead freeze columns: progressive sticky left (left from inline style) */
#keel-root [data-keel-surface^="virtual-list-freeze-col-"] {
  position: sticky;
  z-index: 2;
  background: #0a0e18;
  border-right: 1px solid var(--keel-line);
  min-width: 2.5rem;
  padding: 0.25rem 0.5rem;
}



/* Name the primary soft-nav outlet for View Transitions morphing. */
#keel-outlet {
  view-transition-name: keel-outlet;
  /* shared-vt-* names applied by keel_site_host ensureViewTransitionNames */
}

/* Field validation chrome */
#keel-root [data-keel-surface="field-invalid"],
#keel-root textarea[data-keel-surface="field-invalid"],
#keel-root [aria-invalid="true"] {
  border-color: rgba(255,120,120,.55) !important;
  box-shadow: 0 0 0 1px rgba(255,120,120,.18);
}
#keel-root [data-keel-id$="__err"] {
  min-height: 1.1em;
  font-size: 0.85rem;
  color: rgb(248, 113, 113);
}

/* shared-element VT: surface shared-vt-* stamps data-keel-vt; host sets view-transition-name */
#keel-root [data-keel-shared-vt="1"] {
  /* name applied by JS (view-transition-name); keep layout free */
}

/* async field validation pending */
#keel-root [data-keel-surface="field-pending"],
#keel-root textarea[data-keel-surface="field-pending"],
#keel-root [aria-busy="true"][data-keel-surface^="field"] {
  border-color: rgba(125,194,255,.55) !important;
  box-shadow: 0 0 0 1px rgba(125,194,255,.18);
}
/* error boundary fallback */
#keel-root [data-keel-surface="error-boundary-fallback"] {
  border: 1px solid rgba(255,120,120,.35);
  border-radius: 12px;
  background: #280c10;
  padding: 0.85rem 1rem;
}
#keel-root [data-keel-surface="error-boundary"] {
  display: flex; flex-direction: column; gap: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
#keel-root [data-keel-surface="error-boundary-retry"] {
  align-self: flex-start;
  border: 1px solid rgba(126,194,255,.35);
  border-radius: 8px;
  padding: 0.35rem 0.75rem;
  background: #1e3048;
  color: #dbeafe;
  cursor: pointer;
}
#keel-root [data-keel-surface="error-boundary-retrying"] {
  font-variant-numeric: tabular-nums;
  color: rgba(191,219,254,.9);
}

/* Geometric morph: the host adds html.keel-vt-morph during soft-nav */
html.keel-vt-morph::view-transition-group(*) {
  animation-duration: 320ms;
  animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
}
html.keel-vt-morph::view-transition-old(root),
html.keel-vt-morph::view-transition-new(root) {
  animation-duration: 180ms;
  mix-blend-mode: normal;
}
html.keel-vt-morph::view-transition-group(keel-outlet),
html.keel-vt-morph::view-transition-group(keel-hero) {
  animation-duration: 340ms;
  animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
html.keel-vt-morph::view-transition-old(keel-hero),
html.keel-vt-morph::view-transition-new(keel-hero) {
  height: 100%;
  width: 100%;
  object-fit: cover;
  overflow: clip;
}
@media (prefers-reduced-motion: reduce) {
  html.keel-vt-morph::view-transition-group(*),
  html.keel-vt-morph::view-transition-old(root),
  html.keel-vt-morph::view-transition-new(root) {
    animation-duration: 0.01ms !important;
  }
}
#keel-root [data-keel-vt-morph="geometry"] {
  /* morph identity stamp; view-transition-name set by site host */
}


/* per-route VT choreography kinds (host class from plan_vt_choreography) */
html.keel-vt-kind-fade::view-transition-old(root),
html.keel-vt-kind-fade::view-transition-new(root) {
  animation-duration: var(--keel-vt-duration, 280ms);
  animation-timing-function: ease;
}
html.keel-vt-kind-fade::view-transition-old(root) {
  animation-name: keel-vt-fade-out;
}
html.keel-vt-kind-fade::view-transition-new(root) {
  animation-name: keel-vt-fade-in;
}
@keyframes keel-vt-fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes keel-vt-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
html.keel-vt-kind-slide.keel-vt-dir-forward::view-transition-old(root) {
  animation: keel-vt-slide-out-left var(--keel-vt-duration, 280ms) ease both;
}
html.keel-vt-kind-slide.keel-vt-dir-forward::view-transition-new(root) {
  animation: keel-vt-slide-in-right var(--keel-vt-duration, 280ms) ease both;
}
html.keel-vt-kind-slide.keel-vt-dir-back::view-transition-old(root) {
  animation: keel-vt-slide-out-right var(--keel-vt-duration, 280ms) ease both;
}
html.keel-vt-kind-slide.keel-vt-dir-back::view-transition-new(root) {
  animation: keel-vt-slide-in-left var(--keel-vt-duration, 280ms) ease both;
}
@keyframes keel-vt-slide-out-left {
  to { transform: translateX(-12%); opacity: 0.6; }
}
@keyframes keel-vt-slide-in-right {
  from { transform: translateX(12%); opacity: 0.6; }
}
@keyframes keel-vt-slide-out-right {
  to { transform: translateX(12%); opacity: 0.6; }
}
@keyframes keel-vt-slide-in-left {
  from { transform: translateX(-12%); opacity: 0.6; }
}
html.keel-vt-kind-none {
  /* host skips startViewTransition when plan says none */
}
@media (prefers-reduced-motion: reduce) {
  html.keel-vt-kind-fade::view-transition-old(root),
  html.keel-vt-kind-fade::view-transition-new(root),
  html.keel-vt-kind-slide::view-transition-old(root),
  html.keel-vt-kind-slide::view-transition-new(root) {
    animation: none !important;
  }
}


/* spring / FLIP custom curves (plan_vt_spring_curve + plan_vt_flip) */
html.keel-vt-kind-spring::view-transition-group(*),
html.keel-vt-kind-spring::view-transition-old(root),
html.keel-vt-kind-spring::view-transition-new(root) {
  animation-duration: var(--keel-vt-duration, 320ms);
  animation-timing-function: var(--keel-vt-spring, cubic-bezier(0.22, 1.2, 0.18, 1));
}
html.keel-vt-kind-spring::view-transition-old(root) {
  animation-name: keel-vt-spring-out;
}
html.keel-vt-kind-spring::view-transition-new(root) {
  animation-name: keel-vt-spring-in;
}
@keyframes keel-vt-spring-out {
  from { opacity: 1; transform: scale(1); }
  to { opacity: 0.55; transform: scale(0.97); }
}
@keyframes keel-vt-spring-in {
  from { opacity: 0.55; transform: scale(1.03); }
  to { opacity: 1; transform: scale(1); }
}
html.keel-vt-kind-flip::view-transition-group(keel-hero),
html.keel-vt-kind-flip::view-transition-group(keel-brand) {
  animation-duration: var(--keel-vt-duration, 320ms);
  animation-timing-function: var(--keel-vt-spring, cubic-bezier(0.2, 0.9, 0.2, 1));
}
html.keel-vt-kind-flip [data-keel-vt-flip-pending="1"] {
  will-change: transform;
  transform-origin: top left;
}
@media (prefers-reduced-motion: reduce) {
  html.keel-vt-kind-spring::view-transition-old(root),
  html.keel-vt-kind-spring::view-transition-new(root),
  html.keel-vt-kind-flip::view-transition-group(*) {
    animation: none !important;
  }
}

/* Document-edit host regions (scrollable-region-focusable) */
#pg-patches:focus-visible,
#pg-preview:focus-visible {
  outline: 2px solid rgba(126,194,255,.55);
  outline-offset: 2px;
}
#pg-md[data-keel-doc-edit="1"] {
  min-height: 180px;
}

/* flight interactive hydrate mount (solid panel canvas) */
#keel-root [data-keel-surface="flight-interactive"] {
  display: flex; flex-direction: column; gap: 0.85rem; padding: 1.15rem 1.2rem;
  border-radius: calc(var(--keel-radius) + 2px); border: 1px solid var(--keel-line);
  background: #0e1420;
}
#keel-root [data-keel-surface="flight-interactive"][data-keel-flight-activated="1"],
#keel-root [data-keel-flight-root][data-keel-flight-activated="1"] {
  outline: 1px dashed rgba(126,194,255,.35);
}


/* HostDocument design tokens v2 — type / depth / density / exhibit / theater
 * Products select closed surfaces via View.surface(...); no Tailwind dual SSOT.
 */
#keel-root[data-keel-density="compact"] #keel-outlet { padding-top: 0.4rem; }
#keel-root[data-keel-density="comfortable"] #keel-outlet { padding-top: 0.55rem; }

#keel-root [data-keel-surface="display"] {
  font-size: var(--keel-fs-display);
  line-height: var(--keel-lh-tight);
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--keel-ink);
  max-width: 18ch;
}
#keel-root [data-keel-surface="title"] {
  font-size: var(--keel-fs-title);
  line-height: var(--keel-lh-tight);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--keel-ink);
}
#keel-root [data-keel-surface="mono"],
#keel-root [data-keel-surface="code-rail"] {
  font-family: var(--keel-font-mono);
  font-size: var(--keel-fs-small);
  line-height: 1.45;
}
#keel-root [data-keel-surface="code-rail"] {
  display: block;
  padding: var(--keel-pad-compact);
  border-radius: var(--keel-radius-sm);
  border: 1px solid var(--keel-line);
  background: var(--keel-elev-2);
  overflow: auto;
  max-height: 14rem;
  color: var(--keel-muted);
}

/* Depth elevations (opaque) */
#keel-root [data-keel-surface="elev-0"] {
  background: var(--keel-bg);
  border: 1px solid transparent;
  border-radius: var(--keel-radius);
}
#keel-root [data-keel-surface="elev-1"] {
  background: var(--keel-elev-1);
  border: 1px solid var(--keel-line);
  border-radius: var(--keel-radius);
}
#keel-root [data-keel-surface="elev-2"] {
  background: var(--keel-elev-2);
  border: 1px solid rgba(140, 170, 220, 0.2);
  border-radius: var(--keel-radius);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
}

/* Exhibit / theater shells (Labs + Performance) */
#keel-root [data-keel-surface="exhibit"],
#keel-root [data-keel-surface="theater"] {
  display: flex;
  flex-direction: column;
  gap: var(--keel-space-3);
  padding: var(--keel-pad-comfortable);
  border-radius: calc(var(--keel-radius) + 2px);
  border: 1px solid var(--keel-line);
  background: var(--keel-elev-1);
}
#keel-root [data-keel-surface="theater"] {
  border-color: rgba(126, 194, 255, 0.28);
  box-shadow: inset 0 0 0 1px rgba(126, 194, 255, 0.08);
}
#keel-root [data-keel-surface="exhibit-title"] {
  font-size: var(--keel-fs-h2);
  font-weight: 700;
  color: var(--keel-ink);
}
#keel-root [data-keel-surface="exhibit-promise"] {
  color: var(--keel-muted);
  font-size: var(--keel-fs-body);
  max-width: 48rem;
}
#keel-root [data-keel-surface="chip"] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  border-radius: var(--keel-radius-pill);
  border: 1px solid var(--keel-line);
  background: var(--keel-elev-2);
  color: var(--keel-muted);
  font-size: var(--keel-fs-small);
  font-weight: 600;
}
#keel-root [data-keel-surface="chip-accent"] {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: var(--keel-radius-pill);
  border: 1px solid rgba(126, 194, 255, 0.35);
  background: rgba(126, 194, 255, 0.08);
  color: var(--keel-accent);
  font-size: var(--keel-fs-small);
  font-weight: 650;
}
#keel-root [data-keel-surface="proof-strip"] {
  /* Craft authority: KPI strip is horizontal even when View uses stack section. */
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: var(--keel-space-2);
  align-items: stretch;
  padding: var(--keel-space-3) 0;
}
#keel-root [data-keel-surface="figure"] {
  display: block;
  border-radius: var(--keel-radius);
  border: 1px solid var(--keel-line);
  background: var(--keel-elev-2);
  overflow: hidden;
  padding: var(--keel-space-3);
}
#keel-root [data-keel-surface="kicker"] {
  font-size: var(--keel-fs-eyebrow);
  letter-spacing: 0.14em;
  font-weight: 650;
  color: var(--keel-accent);
  text-transform: uppercase;
}

/* Hero polish: more air, display-friendly */
#keel-root [data-keel-surface="hero"] {
  gap: var(--keel-space-3);
  padding: var(--keel-space-4) 0 var(--keel-space-3);
}
#keel-root [data-keel-surface="hero"] h1,
#keel-root [data-keel-surface="hero"] [data-keel-surface="shared-vt-title"] {
  font-size: var(--keel-fs-display);
  line-height: var(--keel-lh-tight);
  letter-spacing: -0.02em;
  max-width: 18ch;
}
#keel-root [data-keel-surface="metric"] {
  padding: var(--keel-pad-compact);
  border-radius: var(--keel-radius-sm);
  border: 1px solid var(--keel-line);
  background: var(--keel-elev-2);
  min-width: 7.5rem;
}
#keel-root [data-keel-surface="metric-value"] {
  font-size: 1.35rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  color: var(--keel-accent);
}

/* Compact density helper on panels */
#keel-root [data-keel-density="compact"][data-keel-surface="panel"],
#keel-root [data-keel-surface="panel"][data-keel-density="compact"],
#keel-root [data-keel-surface="exhibit"][data-keel-density="compact"],
#keel-root [data-keel-surface="theater"][data-keel-density="compact"] {
  padding: var(--keel-pad-compact);
  gap: var(--keel-space-2);
}

/* Theme surface fills as **custom properties** (`Fill::Theme`).
 *
 * A scheme-switched surface cannot carry an absolute colour in the model: the
 * light-scheme block redefines the tint, and a frozen `[f32; 4]` would pin one
 * scheme into the exported document. So a declared theme fill projects as a
 * *reference* (`background: var(--keel-surface-<role>)`) and these publish the
 * referents. Paint resolves the same role through `DesignTokens::surface_fill`,
 * so the presenters agree on the interior -- which is also what satisfies the
 * elevation caster precondition.
 *
 * The published set is a **contract**: `dom.rs`'s THEME_FILL_REFERENT_ROLES lists
 * the roles, and the gate `theme_fill_referents_match_the_stylesheet` reads this
 * file and asserts the two agree in both directions. A role outside the list
 * projects the ladder's colour rather than a dangling `var()` -- emitting a
 * reference with nothing behind it would leave Paint filling while the Dom paints
 * nothing, a presenter divergence worse than the no-fill state it replaced. */
:root {
  --keel-surface-card: var(--keel-elev-1);
  --keel-surface-panel: var(--keel-elev-1);
  --keel-surface-metric: var(--keel-elev-1);
  --keel-surface-sheet: var(--keel-elev-2);
  --keel-surface-dialog: var(--keel-elev-2);
  --keel-surface-popover: var(--keel-elev-2);
  --keel-surface-table: var(--keel-elev-1);
  --keel-surface-table-header: var(--keel-elev-2);
}
/* Every published referent must exist in **every** scheme block, not just the
 * base one. A role published in the light block only leaves `var()` unresolvable
 * in dark — `background-image: none` plus an unset `background-color` computes to
 * `rgba(0, 0, 0, 0)`, i.e. transparent — so Paint would fill from the ladder
 * while the Dom painted nothing, in one scheme, which only a per-scheme
 * screenshot or axe run would catch. The gate parses each block separately and
 * asserts the same set in all of them, which is why this block exists and lists
 * every referent even where the value equals the base one. */
@media (prefers-color-scheme: light) {
  :root {
    --keel-surface-card: var(--keel-elev-1);
    --keel-surface-panel: var(--keel-elev-1);
    --keel-surface-metric: var(--keel-elev-1);
    --keel-surface-sheet: var(--keel-elev-2);
    --keel-surface-dialog: var(--keel-elev-2);
    --keel-surface-popover: var(--keel-elev-2);
    --keel-surface-table: var(--keel-elev-1);
    --keel-surface-table-header: var(--keel-elev-2);
  }
}

/* Depth via data-keel-elev (UiStyle.elevation -> Dom) -- orthogonal to elev-* surfaces.
 *
 * The shadow comes from the emitted inline style (the token ladder); what stays
 * here is the theme paint the ladder does not own: the raised surface tint and
 * its hairline. */
/* The *tint* below is a fallback, not an authority.
 *
 * These rules and a surface rule like `[data-keel-surface="card"]` have equal
 * specificity `(0,2,0)`, so without the scoping below the elevation rung would
 * repaint a surface's own fill by source order.
 *
 * A surface carries its own fill whenever it has one, and a **declared** fill
 * always wins (it is authored intent, and the Dom emitter qualifies the
 * `background` it emits so this cannot override it). What these rules still do is
 * give a raised box that has *no* fill of its own a legible tint — which is why
 * they remain, scoped to that case with `:not([style*="background"])`.
 *
 * E3 exists in the ladder (`DesignTokens::elevation`) and the attribute names the
 * rung (`elev_of` derives from `elevation_level_from_px`), so the top rung needs
 * a hook rather than falling through to "no style". */
#keel-root [data-keel-elev="0"] { box-shadow: none; }
/* The declared depth, resolved from the emitted tokens.
 *
 * The Dom emitter publishes `--keel-elev-offset/blob/color` rather than writing
 * `box-shadow` inline, so the **property** is left to the cascade: this rule
 * resolves it at rest, and a state layer — `:hover`, `:focus`, or the product's
 * own rule at any specificity — can change it without `!important`. The first
 * consumer measured why that matters: an inline `box-shadow` beats even a
 * `:hover` rule, so declaring depth inline *destroyed* the card's hover lift
 * (rest and hover computed identically, where the shipped site changed both
 * shadow and background on hover). Asking the product for `!important` would
 * re-create the fragility this axis removes, so the tokens are published and the
 * cascade decides. */
#keel-root [data-keel-elev]:not([data-keel-elev="0"]) {
  box-shadow: 0 var(--keel-elev-offset, 0px) var(--keel-elev-blur, 0px)
    var(--keel-elev-color, transparent);
}
#keel-root [data-keel-elev="1"]:not([style*="background"]):not([style*="--keel-fill-bg"]) {
  background: var(--keel-elev-1);
  border: 1px solid var(--keel-line);
}
#keel-root [data-keel-elev="2"]:not([style*="background"]):not([style*="--keel-fill-bg"]) {
  background: var(--keel-elev-2);
  border: 1px solid rgba(140, 170, 220, 0.2);
}
#keel-root [data-keel-elev="3"]:not([style*="background"]):not([style*="--keel-fill-bg"]) {
  background: var(--keel-elev-3, var(--keel-elev-2));
  border: 1px solid rgba(140, 170, 220, 0.26);
}

/* The declared fill, resolved from its token.
 *
 * It is declared **after** the tint rules so it also wins by source order, and it
 * is the only rule that reads `--keel-fill-bg` — one place where a declared fill
 * becomes a property. Resolving it here rather than inline is what lets a
 * `:hover`/`:focus` rule restate `background` at any specificity: the first
 * consumer measured that an inline `background` beat their `:hover` rule and froze
 * every adopted card's hover. */
#keel-root [style*="--keel-fill-bg:"] {
  background: var(--keel-fill-bg);
}


/* Declared motion. The engine emits `data-keel-motion` + the resolved
 * duration, and **this** is where the interaction becomes a transition — so the
 * reduced-motion decision lives in one engine-owned guard instead of in whichever
 * product stylesheet remembered to write one. A product declares
 * `Component::motion(trigger, role)`; it does not author a transition. */
#keel-root [data-keel-motion="enter"] {
  transition: opacity var(--keel-motion-ms, 200ms) ease-out,
    transform var(--keel-motion-ms, 200ms) ease-out;
}
#keel-root [data-keel-motion="hover"] {
  transition: background-color var(--keel-motion-ms, 200ms) ease,
    border-color var(--keel-motion-ms, 200ms) ease,
    box-shadow var(--keel-motion-ms, 200ms) ease;
}
#keel-root [data-keel-motion="press"] {
  transition: transform var(--keel-motion-ms, 200ms) ease;
}
#keel-root [data-keel-motion="press"]:active {
  transform: scale(0.985);
}
/* The engine's own reduced-motion policy: `ReducedMotionPolicy::Snap`. Declared
 * once for every motion primitive, so a product cannot forget it. */
@media (prefers-reduced-motion: reduce) {
  #keel-root [data-keel-motion] {
    transition: none !important;
  }
  #keel-root [data-keel-motion="press"]:active {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  #keel-root a[data-keel-surface^="nav-"],
  #keel-root a[data-keel-surface^="btn-"],
  #keel-root [data-keel-surface="card"],
  #keel-root [data-keel-surface="metric"],
  #keel-root [data-keel-surface="exhibit"],
  #keel-root [data-keel-surface="theater"] {
    transition:
      background-color 160ms ease,
      border-color 160ms ease,
      box-shadow 180ms ease,
      color 120ms ease,
      transform 160ms ease;
  }
  #keel-root [data-keel-surface="card"]:hover {
    border-color: rgba(126, 194, 255, 0.28);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    transform: translateY(-1px);
  }
  #keel-root [data-keel-surface="btn-primary"]:hover {
    filter: brightness(1.05);
  }
  #keel-root [data-keel-surface="btn-ghost"]:hover {
    border-color: rgba(126, 194, 255, 0.35);
    background: var(--keel-elev-2);
  }
  #keel-root [data-keel-surface="nav-link"]:hover {
    color: var(--keel-ink) !important;
    background: rgba(18, 26, 44, 0.85);
  }
}
@media (prefers-reduced-motion: reduce) {
  #keel-root * {
    scroll-behavior: auto !important;
  }
}

/* Lead / body rhythm */
#keel-root [data-keel-surface="lead"] {
  font-size: var(--keel-fs-lead);
  line-height: 1.55;
  max-width: 46rem;
}
#keel-root [data-keel-surface="body"] {
  font-size: var(--keel-fs-body);
  line-height: var(--keel-lh-body);
}

/* Focus ring (a11y craft) */
#keel-root a:focus-visible,
#keel-root button:focus-visible,
#keel-root [tabindex]:focus-visible,
#keel-root textarea:focus-visible,
#keel-root input:focus-visible {
  outline: 2px solid var(--keel-accent);
  outline-offset: 2px;
}

/* Proof strip metrics as a modern KPI strip */
#keel-root [data-keel-surface="proof-strip"] {
  gap: var(--keel-space-3);
  padding: var(--keel-space-3) 0 var(--keel-space-4);
  flex-direction: row !important;
  flex-wrap: wrap !important;
}
#keel-root [data-keel-surface="proof-strip"] > [data-keel-surface="metric"] {
  flex: 1 1 8.5rem;
  min-width: 8rem;
  background: var(--keel-elev-1);
  border: 1px solid var(--keel-line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
#keel-root [data-keel-surface="metric-value"] {
  letter-spacing: -0.02em;
}

/* Theater callout */
#keel-root [data-keel-surface="theater"] {
  position: relative;
}
#keel-root [data-keel-surface="theater"]::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: linear-gradient(180deg, var(--keel-accent), rgba(126, 194, 255, 0.15));
  pointer-events: none;
}

/* Footer breathing room */
#keel-root [data-keel-surface="foot"] {
  margin-top: var(--keel-space-5);
  padding-top: var(--keel-space-4);
  opacity: 0.95;
}


/* HostDocument media IR v1 (RD-P2 figure/frame/code-rail) - craft polish v2.2 */
#keel-root [data-keel-surface="figure"] {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0.35rem 0 0.75rem;
  padding: 0.7rem;
  border-radius: calc(var(--keel-radius) + 2px);
  border: 1px solid var(--keel-line);
  background: #0c121c;
  overflow: hidden;
  max-width: min(100%, 44rem);
}
#keel-root [data-keel-surface="frame"] {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.55rem;
  border-radius: var(--keel-radius);
  border: 1px solid var(--keel-line);
  background: #0a101a;
  overflow: hidden;
}
#keel-root [data-keel-surface="media-rail"] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: stretch;
}
#keel-root [data-keel-surface="media"],
#keel-root [data-keel-surface="figure"] img,
#keel-root img[data-keel-surface="media"] {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: calc(var(--keel-radius) - 4px);
  background: #080c14;
  border: 1px solid rgba(140, 170, 220, 0.1);
  object-fit: cover;
}
#keel-root [data-keel-surface="caption"] {
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--keel-muted);
  letter-spacing: 0.01em;
  margin: 0;
}
#keel-root [data-keel-surface="code-rail"] {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 0.8rem;
  line-height: 1.45;
  padding: 0.85rem 1rem;
  border-radius: var(--keel-radius);
  border: 1px solid var(--keel-line);
  background: #0a0f18;
  color: #c9d4e8;
  overflow: auto;
  max-width: 100%;
  white-space: pre-wrap;
}
/* HostDocument craft polish v2.2 media IR */

/* HostDocument video IR v1 (RD-P2 media) */
#keel-root video[data-keel-surface="media"],
#keel-root [data-keel-surface="figure"] video,
#keel-root video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 160px;
  border-radius: calc(var(--keel-radius) - 4px);
  background: #080c14;
  border: 1px solid rgba(140, 170, 220, 0.12);
  object-fit: cover;
}

/* ==========================================================================
 * theme: model-policy dashboard (engine-owned).
 * Products pick `data-keel-theme="model-policy"` via SiteDocumentMeta::theme;
 * the dashboard surface tokens below reproduce the dashboard design.
 * ========================================================================== */
#keel-root[data-keel-theme="model-policy"],
#keel-static-root[data-keel-theme="model-policy"] {
  color-scheme: dark;
  --canvas: #0b1012;
  --surface: #11191c;
  --surface-raised: #162126;
  --ink: #f0f3ef;
  --muted: #9aa7a6;
  --line: #2b383b;
  --line-strong: #46585b;
  --primary: #63d8c1;
  --primary-deep: #1d8c7a;
  --secondary: #f2ad65;
  --secondary-deep: #9a5d25;
  --danger: #ff857c;
  --warn: #efc76b;
  --ok: #7edb9e;
  --focus: #b6f1e5;
  --content: 1280px;
  --hero-display-size: clamp(2.6rem, 4.5vw, 4rem);
  --shadow: 0 24px 70px rgb(0 0 0 / 24%);
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
}
#keel-root[data-keel-theme="model-policy"] body,
#keel-static-root[data-keel-theme="model-policy"] body,
#keel-root[data-keel-theme="model-policy"],
#keel-static-root[data-keel-theme="model-policy"] {
  margin: 0;
  min-width: 300px;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-sans);
  font-variant-numeric: tabular-nums;
}
#keel-root[data-keel-theme="model-policy"] a { color: var(--primary); text-decoration: none; }
#keel-root[data-keel-theme="model-policy"] button,
#keel-root[data-keel-theme="model-policy"] select,
#keel-root[data-keel-theme="model-policy"] input { font: inherit; }
#keel-static-root[data-keel-theme="model-policy"] a { color: var(--primary); text-decoration: none; }
#keel-static-root[data-keel-theme="model-policy"] button,
#keel-static-root[data-keel-theme="model-policy"] select,
#keel-static-root[data-keel-theme="model-policy"] input { font: inherit; }
#keel-root[data-keel-theme="model-policy"] :where(a, button, input, select, textarea):focus-visible,
#keel-static-root[data-keel-theme="model-policy"] :where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

/* Surface width rule shared by masthead/nav/main/footer */
#keel-root[data-keel-theme="model-policy"] :is([data-keel-surface="masthead"], [data-keel-surface="section-nav"], [data-keel-surface="dashboard-main"], [data-keel-surface="dashboard-footer"], [data-keel-surface="load-status"]),
#keel-static-root[data-keel-theme="model-policy"] :is([data-keel-surface="masthead"], [data-keel-surface="section-nav"], [data-keel-surface="dashboard-main"], [data-keel-surface="dashboard-footer"], [data-keel-surface="load-status"]) {
  width: min(calc(100% - 40px), var(--content));
  margin-inline: auto;
}

/* Masthead */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] {
  display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center;
  padding: 30px 0 22px; border-bottom: 1px solid var(--line-strong);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-mark"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-mark"] {
  display: grid; width: 46px; height: 46px; place-items: center;
  border: 1px solid var(--primary); color: var(--primary);
  font-family: var(--font-mono); font-weight: 800; letter-spacing: -0.08em;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="eyebrow"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="eyebrow"] {
  color: var(--primary); font-family: var(--font-mono); font-size: 0.73rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-status"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-status"] {
  display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 0.85rem;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-dot"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-dot"] {
  width: 8px; height: 8px; border-radius: 999px; background: var(--warn);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-dot"][data-ready="true"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-dot"][data-ready="true"] { background: var(--ok); }

/* Section nav */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-nav"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-nav"] {
  display: flex; flex-direction: row; flex-wrap: nowrap; gap: 24px; overflow-x: auto; padding: 16px 0; border-bottom: 1px solid var(--line);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"] {
  color: var(--muted); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.04em;
  text-decoration: none; text-transform: uppercase; white-space: nowrap; padding: 0 !important;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"]:hover,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"]:focus-visible,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"]:hover,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="nav-link"]:focus-visible { color: var(--ink); }

/* Load status */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"] {
  margin: 24px auto 0; padding: 14px 16px; border-left: 3px solid var(--warn);
  background: var(--surface); color: var(--muted);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"][data-state="ready"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"][data-state="ready"] { display: none; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"][data-state="error"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"][data-state="error"] { border-color: var(--danger); color: var(--ink); }

/* Hero */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr);
  gap: clamp(40px, 5vw, 64px); align-items: center;
  padding: clamp(40px, 5vw, 64px) 0 clamp(44px, 5vw, 64px);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2 {
  max-width: 720px; margin: 12px 0 0; font-size: var(--hero-display-size); font-weight: 740;
  letter-spacing: -0.055em; line-height: 1.01; text-wrap: balance;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > p:last-child,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > p:last-child {
  max-width: 650px; margin: 22px 0 0; color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.58;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] { margin: 0; border-top: 1px solid var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] > [data-keel-surface="fact"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] > [data-keel-surface="fact"] {
  display: grid; grid-template-columns: minmax(92px, 112px) minmax(0, 1fr); gap: 18px;
  padding: 15px 0; border-bottom: 1px solid var(--line);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dt,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dt { color: var(--muted); font-size: 0.8rem; margin: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd {
  margin: 0; overflow-wrap: anywhere; font-family: var(--font-mono); font-size: 0.86rem;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd strong, #keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd span,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd strong, #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd span { display: block; }

/* Section blocks */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-block"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-block"] {
  display: block; padding: 52px 0 60px; border-top: 1px solid var(--line-strong); scroll-margin-top: 24px;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] {
  display: flex; gap: 24px; align-items: end; justify-content: space-between;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] h2,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] h2 { margin: 7px 0 0; font-size: clamp(1.8rem, 3.6vw, 3.4rem); letter-spacing: -0.055em; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-note"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-note"] { max-width: 900px; margin: 18px 0 30px; color: var(--muted); line-height: 1.6; }

/* Toggle + selects */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="toggle"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="toggle"] {
  display: flex !important; min-height: 44px; height: 44px; box-sizing: border-box; align-items: center; gap: 10px !important; cursor: pointer; white-space: nowrap;
}
#keel-root[data-keel-theme="model-policy"] input[type="checkbox"][data-keel-surface="toggle-input"],
#keel-static-root[data-keel-theme="model-policy"] input[type="checkbox"][data-keel-surface="toggle-input"] { width: 20px; height: 20px; accent-color: var(--primary); }
#keel-root[data-keel-theme="model-policy"] select,
#keel-static-root[data-keel-theme="model-policy"] select {
  min-height: 44px; padding: 9px 38px 9px 12px; border: 1px solid var(--line-strong);
  border-radius: 0; background: var(--surface); color: var(--ink);
}
#keel-root[data-keel-theme="model-policy"] .section-heading > label,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] > label,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] label,
#keel-static-root[data-keel-theme="model-policy"] .section-heading > label,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] > label,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] label { display: grid; gap: 7px; color: var(--muted); font-size: 0.78rem; font-weight: 700; }

/* Ranking table */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="table-scroll"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="table-scroll"] { overflow-x: auto; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] table,
#keel-static-root[data-keel-theme="model-policy"] table { width: 100%; min-width: 1120px; border-collapse: collapse; }
#keel-root[data-keel-theme="model-policy"] table th,
#keel-root[data-keel-theme="model-policy"] table td,
#keel-static-root[data-keel-theme="model-policy"] table th,
#keel-static-root[data-keel-theme="model-policy"] table td { padding: 16px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
#keel-root[data-keel-theme="model-policy"] table th,
#keel-static-root[data-keel-theme="model-policy"] table th { color: var(--muted); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
#keel-root[data-keel-theme="model-policy"] table td,
#keel-static-root[data-keel-theme="model-policy"] table td { font-size: 0.9rem; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="fit-cell"],
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="fit-cell"] { min-width: 142px; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > *,
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > * { display: block; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > *:first-child,
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > *:first-child { font-weight: 700; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > * + *,
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-range"] > * + * { margin-top: 4px; color: var(--muted); font-size: 0.72rem; }

#keel-root[data-keel-theme="model-policy"] table tbody tr:last-child td,
#keel-static-root[data-keel-theme="model-policy"] table tbody tr:last-child td { border-bottom: 0; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="model-cell"] strong, #keel-root[data-keel-theme="model-policy"] table [data-keel-surface="model-cell"] span,
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="model-cell"] strong, #keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="model-cell"] span { display: block; }
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-cell"],
#keel-root[data-keel-theme="model-policy"] table [data-keel-surface="imputed-share"],
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="rank-cell"],
#keel-static-root[data-keel-theme="model-policy"] table [data-keel-surface="imputed-share"] { color: var(--muted); font-family: var(--font-mono); }

/* Microbar fill (engine fill primitive) */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="microbar"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="microbar"] { height: 4px; margin-top: 8px; background: var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-fill],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-fill] { display: block; height: 100%; width: var(--keel-fill, 0%); background: var(--primary); }

/* Status pill */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"] {
  display: inline-flex; min-height: 26px; align-items: center; padding: 3px 8px;
  border: 1px solid var(--line-strong); font-family: var(--font-mono); font-size: 0.69rem; line-height: 1.3;
  box-sizing: border-box; white-space: nowrap;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="eligible"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="eligible"] { border-color: var(--ok); color: var(--ok); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="verification-required"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="verification-required"] { border-color: var(--warn); color: var(--warn); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="insufficient-evidence"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="provisional"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="insufficient-evidence"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="status-pill"][data-status="provisional"] { border-color: var(--danger); color: var(--danger); }

/* Empty state */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="empty-state"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="empty-state"] { margin-top: 18px; padding: 22px; border: 1px dashed var(--line-strong); color: var(--muted); }

/* ==========================================================================
 * theme: model-policy dashboard — full visual pattern port (engine-owned).
 * Type, color, layout all keyed off closed data-keel-surface tokens + the
 * dashboard palette; themed SSR strips inline type so these rules are the
 * single type/layout authority for the dashboard artifact.
 * ========================================================================== */
:root:has(#keel-static-root[data-keel-theme="model-policy"]),
:root:has(#keel-root[data-keel-theme="model-policy"]) {
  color-scheme: dark;
  --canvas: #0b1012;
  --surface: #11191c;
  --surface-raised: #162126;
  --ink: #f0f3ef;
  --muted: #9aa7a6;
  --line: #2b383b;
  --line-strong: #46585b;
  --primary: #63d8c1;
  --primary-deep: #1d8c7a;
  --secondary: #f2ad65;
  --secondary-deep: #9a5d25;
  --danger: #ff857c;
  --warn: #efc76b;
  --ok: #7edb9e;
  --focus: #b6f1e5;
  --content: 1280px;
  --hero-display-size: clamp(2.6rem, 4.5vw, 4rem);
  --shadow: 0 24px 70px rgb(0 0 0 / 24%);
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
}
html:has(#keel-static-root[data-keel-theme="model-policy"]),
html:has(#keel-root[data-keel-theme="model-policy"]) { background: var(--canvas); }
html:has(#keel-static-root[data-keel-theme="model-policy"]) body,
html:has(#keel-root[data-keel-theme="model-policy"]) body {
  margin: 0; min-width: 300px; background: var(--canvas); color: var(--ink);
  font-family: var(--font-sans); font-variant-numeric: tabular-nums; line-height: normal;
}
html:has(#keel-static-root[data-keel-theme="model-policy"]) body *,
html:has(#keel-root[data-keel-theme="model-policy"]) body * { box-sizing: border-box; }
html:has(#keel-static-root[data-keel-theme="model-policy"]) html,
html:has(#keel-root[data-keel-theme="model-policy"]) html { scroll-behavior: smooth; }

/* Skip link */
#keel-root[data-keel-theme="model-policy"] a.skip,
#keel-static-root[data-keel-theme="model-policy"] a.skip {
  position: fixed; inset: 12px auto auto 12px; z-index: 20; padding: 10px 14px;
  background: var(--ink); color: var(--canvas); transform: translateY(-160%);
}
#keel-root[data-keel-theme="model-policy"] a.skip:focus,
#keel-static-root[data-keel-theme="model-policy"] a.skip:focus { transform: translateY(0); }

/* Masthead typography */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] h1,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] h1 {
  margin: 0; font-size: clamp(1.4rem, 3vw, 2.2rem); letter-spacing: -0.04em; font-weight: 700; color: var(--ink);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] p,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] p,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] p { margin: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] [data-keel-surface="eyebrow"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="eyebrow"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] [data-keel-surface="eyebrow"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="eyebrow"] {
  color: var(--primary); font-family: var(--font-mono); font-size: 0.73rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; margin: 0; line-height: normal;
}

/* Section heading typography + layout */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] { display: flex; gap: 24px; align-items: end; justify-content: space-between; flex-wrap: nowrap; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] h2,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] h2 {
  margin: 7px 0 0; font-size: clamp(1.8rem, 3.6vw, 3.4rem); letter-spacing: -0.055em; font-weight: 700; color: var(--ink);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-note"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-note"] { display: block; max-width: 900px; margin: 18px 0 30px; color: var(--muted); line-height: 1.6; font-size: 1rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > :last-child,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > :last-child { display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"] > *,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"] > * { display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] p { display: block; }

/* Hero typography + facts */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] { min-width: 0; max-width: 720px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2 {
  max-width: 720px; margin: 12px 0 0; font-size: var(--hero-display-size); font-weight: 740;
  letter-spacing: -0.055em; line-height: 1.01; text-wrap: balance; color: var(--ink);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > [data-keel-surface="eyebrow"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > [data-keel-surface="eyebrow"] { display: block; margin-bottom: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > :last-child,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero-copy"] > :last-child {
  max-width: 650px; margin: 22px 0 0; color: var(--muted); font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.58;
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] { min-width: 0; align-self: center; margin: 0; border-top: 1px solid var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] [data-keel-surface="fact"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] [data-keel-surface="fact"] {
  display: grid; grid-template-columns: minmax(92px, 112px) minmax(0, 1fr); gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line);
}
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dt,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dt { color: var(--muted); font-size: 0.8rem; margin: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd { margin: 0; overflow-wrap: anywhere; font-family: var(--font-mono); font-size: 0.86rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd strong,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd span,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="fact-value"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="fact-meta"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd strong,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd span,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="fact-value"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="fact-meta"] { display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd [data-keel-surface="fact-value"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd [data-keel-surface="fact-value"] { font-weight: 700; font-size: 0.86rem; color: var(--ink); display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd [data-keel-surface="fact-meta"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd [data-keel-surface="fact-meta"] { margin-top: 3px; color: var(--muted); font-size: 0.72rem; line-height: 1.35; display: block; }

/* Main + dashboard shell */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-main"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-main"] { display: block; padding-bottom: 72px; }

/* Fit value lines */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="fit-value"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="fit-value"] { display: flex; justify-content: space-between; flex-wrap: nowrap; gap: 12px; font-family: var(--font-mono); font-size: 0.9rem; }

/* Table typography + cells */
#keel-root[data-keel-theme="model-policy"] table th,
#keel-static-root[data-keel-theme="model-policy"] table th { color: var(--muted); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; line-height: normal; }
#keel-root[data-keel-theme="model-policy"] table td,
#keel-static-root[data-keel-theme="model-policy"] table td { font-size: 0.9rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-name"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-sub"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-name"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-sub"] { display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-name"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-name"] { font-size: 0.9rem; font-weight: 700; color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-sub"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-cell"] [data-keel-surface="model-sub"] { margin-top: 3px; color: var(--muted); font-size: 0.75rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="rank-cell"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="imputed-share"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="rank-cell"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="imputed-share"] { color: var(--muted); font-family: var(--font-mono); font-size: 0.9rem; }
#keel-root[data-keel-theme="model-policy"] td [data-keel-surface="rank-node"],
#keel-static-root[data-keel-theme="model-policy"] td [data-keel-surface="rank-node"] { font-family: var(--font-mono); }

/* Compare controls layout */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] { display: flex; gap: 12px; flex-wrap: wrap; }

/* Model summary cards */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 34px 0 28px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] article,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] article { padding: 20px 0; border-top: 3px solid var(--primary); border-bottom: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] article[data-keel-surface="model-card-secondary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] article[data-keel-surface="model-card-secondary"] { border-top-color: var(--secondary); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] h3,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] h3 { margin: 0; font-size: 1.1rem; color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] p { margin: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dl,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dl { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto auto; grid-auto-flow: column; gap: 10px; margin: 22px 0 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dt,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dt { color: var(--muted); font-size: 0.7rem; margin: 0; display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dd,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"] dd { margin: 6px 0 0; font-family: var(--font-mono); font-size: 1.2rem; color: var(--ink); }

/* Pillar chart */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-chart"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-chart"] { border-top: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row"] { display: grid; grid-template-columns: minmax(180px, 0.9fr) minmax(280px, 2fr); gap: 24px; align-items: center; padding: 19px 0; border-bottom: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] strong,
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] span,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] strong,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] span { display: block; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] span,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row-label"] span { margin-top: 5px; color: var(--muted); font-size: 0.75rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="paired-bars"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="paired-bars"] { display: grid; gap: 8px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track-secondary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track-secondary"] { height: 12px; background: var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track"] [data-keel-fill],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track"] [data-keel-fill] { background: var(--primary); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track-secondary"] [data-keel-fill],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="bar-track-secondary"] [data-keel-fill] { background: var(--secondary); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track-secondary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track-secondary"] { height: 9px; }

/* Chart key */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="chart-key"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="chart-key"] { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; color: var(--muted); font-size: 0.78rem; margin: 28px 0 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-primary"],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-secondary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-primary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-secondary"] { width: 22px; height: 4px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-primary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-primary"] { background: var(--primary); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-secondary"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="key-swatch-secondary"] { margin-left: 14px; background: var(--secondary); }

/* Reliability */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-grid"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-grid"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"] { padding: 22px 0; border-top: 1px solid var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"] h3,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"] h3 { margin: 0; font-size: 1.1rem; color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-card"] p { margin: 7px 0 0; color: var(--muted); font-size: 0.78rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] { display: flex; height: 18px; margin-top: 22px; overflow: hidden; background: var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="correct"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="correct"] { background: var(--ok); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="incorrect"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="incorrect"] { background: var(--danger); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="partial"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-bar"] [data-keel-fill][data-seg="partial"] { background: var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-legend"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="stacked-legend"] { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); font-size: 0.72rem; }

/* Movement chart */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-chart"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-chart"] { display: grid; gap: 10px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"] { display: grid; grid-template-columns: minmax(240px, 1.4fr) 90px 1fr 90px 90px; gap: 14px; align-items: center; min-height: 46px; border-bottom: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"] [data-keel-surface="rank-node"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"] [data-keel-surface="rank-node"] { display: grid; justify-items: center; align-items: center; min-height: 30px; border: 1px solid var(--line-strong); font-family: var(--font-mono); font-size: 0.72rem; color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-line"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-line"] { height: 1px; background: var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-delta"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-delta"] { color: var(--muted); font-size: 0.72rem; }

/* Benchmark rows */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-chart"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-chart"] { display: grid; gap: 10px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] { display: grid; grid-template-columns: minmax(250px, 0.8fr) minmax(240px, 2fr) 80px; gap: 16px; align-items: center; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row-name"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row-name"] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"][data-unknown="true"] [data-keel-surface="bar-track"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"][data-unknown="true"] [data-keel-surface="bar-track"] { background: repeating-linear-gradient(90deg, var(--line), var(--line) 6px, transparent 6px, transparent 11px); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row-value"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row-value"] { color: var(--muted); text-align: right; font-family: var(--font-mono); font-size: 0.75rem; }

/* Operations */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"] h3,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"] h3 { margin: 0 0 18px; font-size: 1.1rem; color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"] > [data-keel-surface="price-col"] .keel  { /* n/a */ }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; font-size: 0.78rem; border-top: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-series"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-series"] { margin-bottom: 24px; padding-top: 14px; border-top: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-series"] h4,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-series"] h4 { margin: 0 0 12px; color: var(--muted); font-size: 0.76rem; font-weight: 700; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] { display: flex; justify-content: space-between; gap: 18px; padding: 7px 0; font-size: 0.78rem; border-top: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] span:last-child,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] span:last-child { font-family: var(--font-mono); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] span:last-child,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operation-item"] span:last-child { font-family: var(--font-mono); }

/* Formula */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="formula"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="formula"] { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 30px 0 38px; font-family: var(--font-mono); color: var(--ink); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="formula"] > span,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="formula"] > span { padding: 8px 10px; border: 1px solid var(--line-strong); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="formula"] > span:nth-child(even),
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="formula"] > span:nth-child(even) { padding-inline: 0; border: 0; color: var(--muted); }

/* Weight envelope / range tracks */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="weight-envelope"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="weight-envelope"] { border-top: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="weight-row"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="weight-row"] { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(300px, 2fr) 130px; gap: 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track"] { position: relative; height: 14px; background: var(--line); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"] { position: absolute; inset-block: 0; background: var(--primary-deep); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"] { position: absolute; top: -5px; width: 3px; height: 24px; background: var(--primary); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-values"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-values"] { color: var(--muted); text-align: right; font-family: var(--font-mono); font-size: 0.75rem; }
/* Range left/width percentages from View-attached data tokens. */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"] { left: calc(var(--range-left-pct, 0) * 1%); width: calc(var(--range-width-pct, 0) * 1%); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"] { left: calc(var(--range-left-pct, 0) * 1%); width: 3px; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"][data-range-left-pct],
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"][data-range-left-pct],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"][data-range-left-pct],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-central"][data-range-left-pct] { --range-left-pct: attr(data-range-left-pct number); }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"][data-range-width-pct],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-track-allowed"][data-range-width-pct] { --range-width-pct: attr(data-range-width-pct number); }

/* Method notes */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 28px; color: var(--muted); line-height: 1.65; font-size: 1rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"] > *,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"] > * { display: block; margin: 0 0 16px; }

/* Sources */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; padding: 0; list-style: none; margin: 0; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] li,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] li { padding: 15px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 0.82rem; line-height: 1.5; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] a,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] a { color: var(--ink); font-weight: 700; }

/* Footer */
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"],
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"] { display: flex; gap: 20px; justify-content: space-between; padding: 28px 0 46px; border-top: 1px solid var(--line-strong); color: var(--muted); font-size: 0.78rem; }
#keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"] p,
#keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"] p { margin: 0; }

/* Responsive */
@media (max-width: 900px) {
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] { grid-template-columns: 1fr; gap: 32px; padding-block: 40px 48px; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-self: auto; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] [data-keel-surface="fact"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] [data-keel-surface="fact"] { display: block; min-width: 0; padding: 14px 16px 14px 0; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd,
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="index-facts"] dd { margin-top: 6px; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-heading"] { align-items: start; flex-direction: column; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-grid"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="model-summary"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="reliability-grid"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="operations-grid"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="method-notes"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="source-list"] { grid-template-columns: 1fr; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="weight-row"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="pillar-row"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="weight-row"] { grid-template-columns: 1fr; gap: 12px; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="range-values"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="range-values"] { text-align: left; }
}
@media (max-width: 620px) {
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="section-nav"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-main"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"],
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="section-nav"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-main"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="load-status"] { width: min(calc(100% - 24px), var(--content)); }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead"] { grid-template-columns: auto 1fr; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-status"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="masthead-status"] { grid-column: 1 / -1; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2,
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="hero"] h2 { font-size: clamp(2.25rem, 11vw, 3.15rem); letter-spacing: -0.045em; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] { width: 100%; flex-direction: column; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] select,
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="compare-controls"] select { width: 100%; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-row"] { grid-template-columns: minmax(150px, 1fr) auto auto auto; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="movement-line"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="movement-line"] { display: none; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] { grid-template-columns: minmax(150px, 1fr) 64px; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="benchmark-row"] [data-keel-surface="bar-track"] { grid-column: 1 / -1; grid-row: 2; }
  #keel-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"],
  #keel-static-root[data-keel-theme="model-policy"] [data-keel-surface="dashboard-footer"] { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(#keel-root[data-keel-theme="model-policy"]) html,
  html:has(#keel-static-root[data-keel-theme="model-policy"]) html { scroll-behavior: auto; }
  html:has(#keel-root[data-keel-theme="model-policy"]) body *,
  html:has(#keel-static-root[data-keel-theme="model-policy"]) body * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* HostDocument media max (first-screen craft) — pack CSS owns figure/media size */
#keel-root [data-keel-surface="media"] {
  display: block;
  max-width: min(100%, 36rem);
  max-height: min(40vh, 22rem);
  width: auto !important;
  height: auto !important;
  object-fit: cover;
  border-radius: calc(var(--keel-radius) - 2px);
}
#keel-root [data-keel-surface="figure"] video[data-keel-surface="media"],
#keel-root video[data-keel-surface="media"] {
  max-width: min(100%, 40rem);
  max-height: min(42vh, 24rem);
}


/* Shared-element VT hero stamp also owns eyebrow craft (pack CSS sole type SSOT). */
#keel-root [data-keel-surface="shared-vt-hero"] {
  font-size: var(--keel-fs-eyebrow);
  letter-spacing: 0.14em;
  font-weight: 650;
  color: var(--keel-accent);
  text-transform: uppercase;
}


/* HostDocument field-error + meta craft (prefer over product text_size dual SSOT) */
#keel-root [data-keel-surface="field-error"] {
  font-size: var(--keel-fs-small);
  line-height: 1.35;
  color: var(--keel-danger) !important;
  min-height: 1.1em;
}
#keel-root [data-keel-surface="meta"] {
  font-size: var(--keel-fs-small);
  line-height: 1.4;
  color: var(--keel-muted);


}


/* Dialog craft type SSOT (no paint text_size dual) */
#keel-root [data-keel-surface="dialog"] h2,
#keel-root [data-keel-surface="dialog"] [role="heading"] {
  font-size: var(--keel-fs-h2);
  line-height: var(--keel-lh-tight);
  font-weight: 700;
  color: var(--keel-ink);
  margin: 0;
}
#keel-root [data-keel-surface="dialog"] [data-keel-surface="body"],
#keel-root [data-keel-surface="dialog"] > span {
  font-size: var(--keel-fs-body);
  line-height: var(--keel-lh-body);
  color: var(--keel-muted);
}

/* HostDocument local multi-cursor paint L0 (VS Code-class secondary carets) */
#keel-root [data-keel-doc-local-caret-layer] {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 3;
}
#keel-root [data-keel-doc-local-caret-mark="1"] {
  position: absolute;
  width: 2px;
  background: #2dd4bf;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.35);
  border-radius: 1px;
}
#keel-root [data-keel-doc-local-caret-sel="1"] {
  position: absolute;
  background: rgba(45, 212, 191, 0.28);
  border-radius: 2px;
}



/* a11y: link-in-text-block — active/nav links must not rely on color alone */
#keel-root [data-keel-surface="nav-link"],
#keel-root [data-keel-surface="nav-link-active"],
#keel-root a[data-keel-surface="nav-link"],
#keel-root a[data-keel-surface="nav-link-active"],
#keel-static-root [data-keel-surface="nav-link"],
#keel-static-root [data-keel-surface="nav-link-active"],
#keel-static-root a[data-keel-surface="nav-link"],
#keel-static-root a[data-keel-surface="nav-link-active"] {
  text-decoration: underline !important;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}
#keel-root [data-keel-surface="nav-link-active"],
#keel-root [data-keel-surface="nav-link"][aria-current="page"],
#keel-static-root [data-keel-surface="nav-link-active"],
#keel-static-root [data-keel-surface="nav-link"][aria-current="page"] {
  text-decoration-thickness: 2px !important;
}
