/* Shared color pass over the recovered layout. Keep the historical assets intact. */
html:root {
  --bbc-hero: #112f40;
  --bbc-sidebar: #0c222e;
  --bbc-paper: #f4f7f8;
  --bbc-raised: #eaf1f4;
  --bbc-ink: #163344;
  --bbc-muted: #576e7b;
  --bbc-line: #d7e3e8;
  --bbc-blue: #0b7099;
  --bbc-blue-hover: #075775;
  --bbc-ice: #89dbea;
  --bbc-ice-hover: #b4edf5;
  --bbc-on-dark: #b4cbd6;
  --bbc-dark-raised: #1c3d4e;
  --bbc-dark-line: #365766;
  --bbc-scene-paper: #f6fcfe;
  --bbc-scene-edge: #9dc0cf;
  --bbc-scene-device: #284f62;
  --bbc-scene-chip: #1386b4;
  --bbc-scene-trace: #5596b3;
  --bbc-scene-led: #80d3b5;

  --navy: var(--bbc-hero);
  --ink: var(--bbc-ink);
  --paper: var(--bbc-paper);
  --muted: var(--bbc-muted);
  --accent: var(--bbc-blue);
  --line: var(--bbc-line);
  --bb-ink: var(--bbc-ink);
  --bb-muted: var(--bbc-muted);
  --bb-blue: var(--bbc-blue);
  --bb-line: var(--bbc-line);
  --bb-navy: var(--bbc-sidebar);
  --bg: var(--bbc-paper);
  --card: #fff;
  --mut: var(--bbc-muted);
  --acc: var(--bbc-blue);
  --tint: var(--bbc-raised);
  --chattint: var(--bbc-raised);
  --chatink: var(--bbc-blue);
}

::selection { color: var(--bbc-hero); background: var(--bbc-ice); }
:is(a, button, summary, input, textarea):focus-visible {
  outline-color: var(--bbc-blue);
}
:is(.hero, .hero-section, .bb-sidebar, .closing) :focus-visible {
  outline-color: var(--bbc-ice);
}

/* Website: ice marks actions; white and slate carry the reading surfaces. */
.preview-bar { background: var(--bbc-raised); color: var(--bbc-muted); }
.preview-bar a[aria-current] { background: #d1e4ec; }
.brand-dot { color: var(--bbc-blue); }
.main-nav { color: var(--bbc-muted); }
.header-action { border-color: var(--bbc-line); }
.header-action:hover { background: var(--bbc-raised); }
.hero:before {
  background-image: radial-gradient(#7facbf30 .75px, transparent .75px);
}
.hero-manifesto { color: #f0f8fb; }
.hero-description, .hero-footnote, .closing p { color: var(--bbc-on-dark); }
.button-light { background: var(--bbc-ice); color: var(--bbc-sidebar); }
.button-light:hover { background: var(--bbc-ice-hover); }
.button-dark { background: var(--bbc-blue); }
.button-dark:hover { background: var(--bbc-blue-hover); }
.hero-link { color: var(--bbc-ice); border-color: #649dad; }
.memory-stage[data-theme="navy"]:before { border-color: #29526745; }
.memory-stage[data-theme="navy"] #memory-caption { color: #d5e8ef; }
.memory-stage[data-theme="navy"] [data-memory] {
  color: #c6dbe4;
  background: var(--bbc-dark-raised);
  border-color: #608593;
}
.memory-stage[data-theme="navy"] [data-memory]:hover {
  background: #2e5668;
  color: #fff;
}
.memory-stage[data-theme="navy"] [data-memory][aria-pressed="true"] {
  background: var(--bbc-ice);
  border-color: var(--bbc-ice);
  color: var(--bbc-sidebar);
}
.scene-caption { color: #a1bbc8; }
.stack-layer { background: var(--bbc-scene-paper); box-shadow: 10px 12px 0 var(--bbc-scene-edge); }
.layer-knowledge { background: #deedf3; box-shadow: 10px 12px 0 #8bb1c2; }
.layer-runtime { background: var(--bbc-scene-device); box-shadow: 10px 12px 0 #1c3d50; }
.layer-base { background: #eef6f8; box-shadow: 10px 12px 0 #b1c8d2; }
.chip-symbol { background: var(--bbc-scene-chip); border-color: #85cadd; }
.chip-symbol > i { border-color: #e6faff; }
.chip-symbol > i:before { border-color: #aee7f1; }
.knowledge-lines > i { background: var(--bbc-scene-trace); }
.runtime-symbol { border-color: #8ab5c5; }
.layer-label { color: var(--bbc-on-dark); }
.layer-label:before { border-color: #7caabb; }
.stack-fallback .stack-layer { width: 46%; height: auto; aspect-ratio: 1; left: 25%; }
.stack-fallback .layer-model { top: 16%; }
.stack-fallback .layer-knowledge { top: 32%; }
.stack-fallback .layer-runtime { top: 48%; }
.stack-fallback .layer-base { display: none; }
.hero-under, .hero-under > a, .workspace-foot, .text-link,
.sample-kind, .answer-label, .sample-caption, .sample-source small,
.sample-composer, .source-excerpt > span, .site-footer > span,
.site-footer > a:last-child { color: var(--bbc-muted); }
.text-link { border-color: #8eaebd; }
.workspace-preview { border-color: var(--bbc-line); box-shadow: 0 17px 50px #1738490b; }
.preview-sidebar { background: var(--bbc-sidebar); color: var(--bbc-on-dark); }
.workspace-identity { border-color: var(--bbc-dark-line); background: #173442; }
.workspace-identity > span { background: #2a5367; color: #e5f5fc; }
.workspace-identity small { color: var(--bbc-on-dark); }
.preview-sidebar nav > a:hover { background: var(--bbc-dark-raised); }
.preview-sidebar nav > a.active { background: var(--bbc-ice); color: var(--bbc-sidebar); }
.preview-sidebar-bottom { border-color: var(--bbc-dark-line); }
.preview-sidebar-bottom svg { stroke: var(--bbc-ice); }
.preview-sidebar-bottom p { color: var(--bbc-on-dark); }
.preview-sidebar-bottom strong { color: #fff; }
.preview-breadcrumb { border-color: var(--bbc-line); color: var(--bbc-muted); }
.preview-breadcrumb > a { color: var(--bbc-blue); }
.answer-label svg { stroke: var(--bbc-blue); }
.sample-answer { color: #395564; }
.sample-source { background: #f6fafb; border-color: var(--bbc-line); }
.sample-source:hover { background: var(--bbc-raised); border-color: #91b4c4; }
.source-icon { background: #deedf3; color: var(--bbc-blue); }
.sample-source > svg { color: var(--bbc-blue); }
.sample-composer { border-color: #bccfd9; }
.send-icon { background: var(--bbc-blue); }
.source-excerpt { background: var(--bbc-raised); border-color: var(--bbc-line); }
.source-excerpt > p { color: var(--bbc-muted); }
.ownership { background: #e6eff3; }
.ownership-intro > p, .stack-details p, .faq > div > p, .faq details > p { color: var(--bbc-muted); }
.stack-details article, .faq details, .faq details:last-child { border-color: #c5d7e0; }
.stack-details article > svg, .faq details > p > a { color: var(--bbc-blue); }
.faq summary > span:before, .faq summary > span:after { background: var(--bbc-muted); }

/* App: recolor the recovered shell and illustration without rebuilding its bundle. */
body.recovered-app { background: var(--bbc-paper) !important; }
.bb-home { color: var(--bbc-ink); }
.bb-sidebar { color: var(--bbc-on-dark); }
.brand-icon, .brand-period { color: var(--bbc-ice); }
.workspace-switch { background: #173442; border-color: var(--bbc-dark-line); color: #edf7fb; }
.workspace-avatar { background: #2a5367; color: #e5f5fc; }
.workspace-switch small, .nav-label, .bb-nav kbd, .sidebar-signoff { color: var(--bbc-on-dark); }
.bb-nav button, .sidebar-tool { color: #c3d6e0; }
.bb-nav button:hover, .sidebar-tool:hover { background: var(--bbc-dark-raised); color: #fff; }
.bb-nav button.active { background: var(--bbc-ice); color: var(--bbc-sidebar); }
.active-mark { background: var(--bbc-blue-hover); }
.ownership-note { border-color: var(--bbc-dark-line); }
.ownership-note > svg { color: var(--bbc-ice); }
.ownership-note p, .ownership-note > span { color: var(--bbc-on-dark); }
.sidebar-signoff { border-color: var(--bbc-dark-line); }
.tiny-logo { color: #d9edf5; }
.bb-topbar { color: #395564; }
.breadcrumb, .runtime-status, .home-topline, .text-action { color: var(--bbc-muted); }
.profile-avatar { border-color: #c5dce5; background: #e4f0f5; color: #22566d; }
.hero-section { background: var(--bbc-hero); color: #f6fcff; }
.hero-section::before {
  background-image: radial-gradient(circle at 1px 1px, #6995a9 1px, transparent 1.1px);
  opacity: .3;
}
.hero-section::after { border-color: #6ca4bd26; box-shadow: 0 0 0 42px #6ca4bd0d, 0 0 0 84px #6ca4bd08; }
.hero-section .hero-copy h1 { color: #f6fcff; }
.hero-section .hero-copy > p { color: #c1d7e2; }
.hero-section .hero-link { color: var(--bbc-ice); }
.hero-section .hero-link:hover { color: #fff; }
.diagram-tag { background: var(--bbc-hero); color: #c1d7e2; }
.diagram-caption { color: var(--bbc-on-dark); }
.stack-drawing { background: url("assets/stack-unified.svg") center / contain no-repeat; }
.stack-drawing > svg { visibility: hidden; }
.stack-drawing .diagram-tag, .stack-drawing .diagram-caption { display: none; }
.composer { border-color: #bbd0db; box-shadow: 0 4px 18px #15354406; }
.composer:focus-within { border-color: var(--bbc-blue); box-shadow: 0 0 0 3px #0b709914; }
.composer-label svg { color: var(--bbc-blue); }
.composer textarea::placeholder, .composer-source, .composer-foot, .mode-tabs button { color: var(--bbc-muted); }
.model-chip { background: #f2f7f9; border-color: var(--bbc-line); color: #466271; }
.send-button, .primary-action { background: var(--bbc-blue); }
.send-button:hover, .primary-action:hover { background: var(--bbc-blue-hover); }
.mode-tabs button.selected { background: #d5eaf2; color: #19516b; }
.page-row:hover .page-info strong { color: var(--bbc-blue); }
.file-icon { border-color: var(--bbc-line); color: #4d829c; }
.page-info strong, .local-stack dd, .ownership-band h2 { color: var(--bbc-ink); }
.page-info small, .section-title p, .stack-intro, .local-stack dt, .stack-footer,
.ownership-band p, .home-footer, .home-footer .text-action, .answer-meta,
.runtime-dialog > p, .runtime-details dt { color: var(--bbc-muted); }
.local-stack dt svg, .icon-button { color: #587f93; }
.ownership-symbol, .dialog-icon { background: #e0eef4; border-color: #c2dae5; color: var(--bbc-blue); }
.ownership-band a { color: var(--bbc-blue); }
.home-answer, .answer-sources button, .runtime-dialog, .runtime-details > div { border-color: var(--bbc-line); }
.answer-sources button, .runtime-dialog .policy-note { background: var(--bbc-raised); color: #395564; }
.runtime-dialog::backdrop { background: #0c222e70; }
.recovered-preview-banner { background: var(--bbc-raised); border-color: var(--bbc-line); color: var(--bbc-muted); }
.recovered-preview-banner strong { color: var(--bbc-ink); }
.recovered-preview-banner a { color: var(--bbc-blue); }

/* Labels stay attached to their projected layer, including during pointer tilt. */
.stack-connectors { position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none; }
.stack-connectors path { stroke:#7299aa;stroke-width:1;fill:none; }
.stack-connectors path.selected { stroke:var(--bbc-ice);stroke-width:2; }
.memory-stage[data-theme="navy"] .memory-controls { inset:0;display:block;pointer-events:none; }
.memory-stage[data-theme="navy"] [data-memory] { position:absolute;right:14px;width:142px;min-width:0;min-height:52px;display:grid;grid-template-columns:19px 1fr;column-gap:5px;align-content:center;text-align:left;padding:9px;pointer-events:auto; }
.memory-stage[data-theme="navy"] [data-memory="models"] { top:24%; }
.memory-stage[data-theme="navy"] [data-memory="knowledge"] { top:40%; }
.memory-stage[data-theme="navy"] [data-memory="runtime"] { top:56%; }
.memory-controls .layer-number { grid-row:1/3;font-size:10px;align-self:center; }
.memory-controls strong { font-size:12px;font-weight:600; }
.memory-controls small { font-size:10px;line-height:1.4;margin-top:3px; }
.memory-stage[data-theme="navy"] #memory-caption { left:24px;right:24px;bottom:64px;font-size:12px;line-height:1.6; }
.stack-fallback { left:-16%;transform:scale(.76); }
.stack-fallback .layer-label { display:none; }
@media(max-width:900px) {
  .memory-stage[data-theme="navy"] [data-memory] { right:8px;width:123px;padding:8px 6px;grid-template-columns:17px 1fr; }
  .memory-controls strong { font-size:11px; }
  .memory-controls small { font-size:9px; }
}
@media(max-width:650px) {
  .navy-website .memory-stage[data-theme="navy"] { height:390px;min-height:390px; }
  .memory-stage[data-theme="navy"] [data-memory="models"] { top:18%; }
  .memory-stage[data-theme="navy"] [data-memory="knowledge"] { top:36%; }
  .memory-stage[data-theme="navy"] [data-memory="runtime"] { top:54%; }
  .memory-stage[data-theme="navy"] #memory-caption { bottom:47px;font-size:11px; }
}
