/* ds.css — CBSS design system layer (shell lane, design direction 2026-10-13).
   Loaded LAST so these tokens and shared-component rules win over the legacy
   layers at equal specificity. Module lanes consume the --ds-* tokens; they must
   not add colours, fonts or gradients.

   Neutral surfaces, ONE accent (primary actions + focus only), status colours
   for status only, Inter + Noto Sans SC, no gradients / glows / coloured left
   borders on shared components, shadows only on floating layers.
   Contrast (WCAG 1.4.3, measured with the sRGB formula):
     dark  text #EDEEF0 / #A1A4AB / #8A8F98 on #111317 = 16.0 / 7.45 / 5.72
     light text #111214 / #4B4E55 / #5F6168 on #FFFFFF = 18.7 / 8.33 / 6.18
     accent ink dark #7DA2F5 on #111317 = 7.40 · light #2E5BC9 on #FFF = 6.08
     solid accent #2F62D6 / #2E5BC9 under #FFF = 5.47 / 6.08
     warn ink dark #D9A441 on #111317 = 8.27 · light #8A5A00 on #FAFAFA = 5.68
   Easing: cubic-bezier(.2,.8,.2,1) (direction doc); durations 150/200 ms
   (Open Props --ease-* style naming, values chosen here, no dependency). */

:root {
  --ds-bg: #0B0C0E;
  --ds-surface: #111317;
  --ds-surface-2: #16181D;
  --ds-hover: #1A1D23;
  --ds-border: rgba(255, 255, 255, 0.08);
  --ds-border-strong: rgba(255, 255, 255, 0.14);
  --ds-text: #EDEEF0;
  --ds-text-2: #A1A4AB;
  --ds-text-3: #8A8F98;
  --ds-accent: #7DA2F5;
  --ds-accent-solid: #2F62D6;
  --ds-accent-solid-hover: #2552BE;
  --ds-accent-tint: rgba(125, 162, 245, 0.12);
  --ds-ok: #3FB97A;
  --ds-warn: #D9A441;
  --ds-warn-tint: rgba(217, 164, 65, 0.08);
  --ds-danger: #F06A6A;
  --ds-shadow-float: 0 8px 24px rgba(0, 0, 0, 0.45), 0 1px 2px rgba(0, 0, 0, 0.3);

  --ds-font: 'Inter', 'Noto Sans SC', -apple-system, 'PingFang SC', system-ui, sans-serif;
  --ds-font-cn: 'Noto Sans SC', 'PingFang SC', 'Inter', sans-serif;
  --ds-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --ds-fs-12: 12px; --ds-fs-13: 13px; --ds-fs-14: 14px; --ds-fs-16: 16px;
  --ds-fs-20: 20px; --ds-fs-24: 24px; --ds-fs-32: 32px;
  --ds-sp-1: 4px; --ds-sp-2: 8px; --ds-sp-3: 12px; --ds-sp-4: 16px;
  --ds-sp-6: 24px; --ds-sp-8: 32px;
  --ds-radius: 10px; --ds-radius-sm: 6px; --ds-radius-ctl: 8px;
  --ds-ctl-h: 32px; --ds-ctl-h-sm: 28px;
  --ds-gutter: 24px;
  --ds-ease: cubic-bezier(.2, .8, .2, 1);
  --ds-dur-1: 150ms;
  --ds-dur-2: 200ms;

  /* Legacy token bridge: every existing var(--x) consumer inherits the system. */
  --bg-primary: var(--ds-bg);
  --bg-secondary: var(--ds-surface);
  --bg-tertiary: var(--ds-surface-2);
  --bg-input: var(--ds-surface-2);
  --bg-hover: var(--ds-hover);
  --card-bg: var(--ds-surface);
  --card-hover: var(--ds-hover);
  --sidebar-bg: var(--ds-surface);
  --header-bg: var(--ds-bg);
  --border: var(--ds-border);
  --border-light: var(--ds-border-strong);
  --glass-border: var(--ds-border);
  --text-primary: var(--ds-text);
  --text-secondary: var(--ds-text-2);
  --text-muted: var(--ds-text-3);
  --accent: var(--ds-accent);
  --accent-cb: var(--ds-accent);
  --accent-ss: var(--ds-accent);
  --accent-hover: var(--ds-accent);
  --accent-dim: var(--ds-accent-tint);
  --accent-glow: transparent;
  --violet-dim: var(--ds-accent-tint);
  --brand-focus-ring: var(--ds-accent);
  --green: var(--ds-ok);
  --orange: var(--ds-warn);
  --red: var(--ds-danger);
  --font-ui: var(--ds-font);
  --font-cn: var(--ds-font-cn);
  --font-mono: var(--ds-font-mono);
  --fs-xs: 12px; --fs-sm: 13px; --fs-base: 14px; --fs-md: 16px;
  --fs-lg: 20px; --fs-xl: 24px; --fs-2xl: 32px;
  --radius: 8px; --radius-lg: 10px;
  --shadow-focus-cb: 0 0 0 2px var(--ds-bg), 0 0 0 4px var(--ds-accent);
  --shadow-focus-ss: var(--shadow-focus-cb);
  --motion-fast: var(--ds-dur-1);
  --motion-base: var(--ds-dur-2);
  --motion-slow: var(--ds-dur-2);
  --ease-out: var(--ds-ease);
}

html[data-theme="light"] {
  --ds-bg: #FAFAFA;
  --ds-surface: #FFFFFF;
  --ds-surface-2: #F4F4F5;
  --ds-hover: #F0F0F1;
  --ds-border: #E6E6E6;
  --ds-border-strong: #D4D4D8;
  --ds-text: #111214;
  --ds-text-2: #4B4E55;
  --ds-text-3: #5F6168;
  --ds-accent: #2E5BC9;
  --ds-accent-solid: #2E5BC9;
  --ds-accent-solid-hover: #2552BE;
  --ds-accent-tint: rgba(46, 91, 201, 0.08);
  --ds-ok: #1A7F4B;
  --ds-warn: #8A5A00;
  --ds-warn-tint: rgba(138, 90, 0, 0.06);
  --ds-danger: #B42318;
  --ds-shadow-float: 0 8px 24px rgba(17, 18, 20, 0.10), 0 1px 2px rgba(17, 18, 20, 0.06);
  --text: var(--ds-text);
}

/* ── Reduced motion: zero every motion token (must follow the bridge above,
      otherwise the bridge would undo shell.css's zeroing). ─────────────── */
@media (prefers-reduced-motion: reduce) {
  :root { --ds-dur-1: 0ms; --ds-dur-2: 0ms; --motion-fast: 0ms; --motion-base: 0ms; --motion-slow: 0ms; }
}
html[data-reduce-motion="on"] { --ds-dur-1: 0ms; --ds-dur-2: 0ms; --motion-fast: 0ms; --motion-base: 0ms; --motion-slow: 0ms; }
html[data-reduce-motion="on"] *, html[data-reduce-motion="on"] *::before, html[data-reduce-motion="on"] *::after {
  animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important;
}

/* ── Single-language display ─────────────────────────────────────────────
   Pairs: [lang="en"] / [lang="zh"] spans, plus the legacy .text-cn spans.
   html[lang] itself is excluded so the root element never hides. */
html[data-lang="en"] body [lang="zh"],
html[data-lang="en"] body [lang="zh-CN"],
html[data-lang="en"] body .text-cn { display: none !important; }
html[data-lang="zh"] body [lang="en"] { display: none !important; }
[lang="zh"], [lang="zh-CN"], .text-cn { font-family: var(--ds-font-cn); }

/* ── Type: Inter + Noto SC only; 400/500/600; tabular numerals ────────── */
body { font-family: var(--ds-font); font-size: var(--ds-fs-14); line-height: 1.5; background: var(--ds-bg); color: var(--ds-text); -webkit-font-smoothing: antialiased; }
.stat-value, .countdown-days, .audit-stat-num, .finance-value, .acct-card-value, .kpi-values,
.acct-amount-in, .acct-amount-out, .acct-running-bal, .acct-audit-stat-num, .wd-kpi-val, .db-kpi-val,
.metric-value, .stat-num, .header-stat .stat-value {
  font-family: var(--ds-font) !important;
  font-feature-settings: "tnum" 1, "cv11" 1;
  font-weight: 600 !important;
}
code, kbd, pre, samp, .mono, .acct-ref { font-family: var(--ds-font-mono); }

/* ── Module header: one quiet title row, no hero card ─────────────────── */
.module-panel > .module-header {
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ds-border) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 0 var(--ds-sp-4) !important;
  margin: 0 0 var(--ds-sp-6) !important;
  color: var(--ds-text);
  align-items: center;
  gap: var(--ds-sp-3);
}
.module-panel > .module-header::before, .module-panel > .module-header::after { display: none !important; }
.module-title { gap: var(--ds-sp-3); font-size: inherit; }
.module-title h3 { font-size: var(--ds-fs-20) !important; font-weight: 600 !important; letter-spacing: -0.01em; line-height: 1.3; color: var(--ds-text); }
.module-title h3 .text-cn { font-size: var(--ds-fs-20); font-weight: 600; color: var(--ds-text); margin-left: 0; }
.module-subtitle { font-size: var(--ds-fs-13) !important; color: var(--ds-text-3) !important; margin-top: 2px; }
.module-icon { display: none !important; }
.module-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-2); }

/* ── Buttons: solid primary, neutral secondary, ghost tertiary ────────── */
.btn {
  font-family: var(--ds-font); font-weight: 500; font-size: var(--ds-fs-13);
  border-radius: var(--ds-radius-ctl); box-shadow: none;
  transition: background-color var(--ds-dur-1) var(--ds-ease), border-color var(--ds-dur-1) var(--ds-ease), color var(--ds-dur-1) var(--ds-ease);
}
.btn-sm { min-height: var(--ds-ctl-h); padding: 0 var(--ds-sp-3); font-size: var(--ds-fs-13); }
.btn-primary, .btn-accent, .brand-button-primary {
  background: var(--ds-accent-solid) !important; background-image: none !important;
  color: #FFFFFF !important; border: 1px solid transparent !important; box-shadow: none !important;
}
.btn-primary:hover, .btn-accent:hover { background: var(--ds-accent-solid-hover) !important; opacity: 1; }
.btn-secondary {
  background: var(--ds-surface) !important; background-image: none !important;
  color: var(--ds-text) !important; border: 1px solid var(--ds-border-strong) !important; box-shadow: none !important;
}
.btn-secondary:hover { background: var(--ds-hover) !important; border-color: var(--ds-border-strong) !important; }
.btn-ghost { background: transparent; color: var(--ds-text-2); border: 1px solid transparent; }
.btn-ghost:hover { background: var(--ds-hover); color: var(--ds-text); }
.btn-glow { box-shadow: none !important; }
:focus-visible { outline: 2px solid var(--ds-accent); outline-offset: 2px; box-shadow: none; }

/* ── Cards: neutral surface, 10px radius, no glass, glow or accent edge ── */
.card, .ov-card, .stat-card, .weekly-digest-card, .daily-briefing, .wakeup-greeting {
  background: var(--ds-surface) !important; background-image: none !important;
  border: 1px solid var(--ds-border) !important; border-radius: var(--ds-radius) !important;
  box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.ov-card:hover, .card:hover { transform: none !important; box-shadow: none !important; border-color: var(--ds-border-strong) !important; }
#weeklyDigestCard, #riskDriftBanner, #approvalsPanel, #ideaInboxPanel, #activityFeedPanel,
#nextActionPanel, #traceInspectorPanel, #autonomyPanel, #ecosystemPanel, #evidenceLedgerPanel {
  border-image: none !important; border-left-width: 1px !important; border-left-color: var(--ds-border) !important;
}
#weeklyDigestCard::before, #riskDriftBanner::before, #approvalsPanel::before, #ideaInboxPanel::before,
#activityFeedPanel::before, #nextActionPanel::before, #traceInspectorPanel::before, #autonomyPanel::before,
#ecosystemPanel::before, #evidenceLedgerPanel::before { display: none !important; }
.bg-orb, .bg-orb-1, .bg-orb-2, .bg-orb-3, .bg-grid { display: none !important; }

/* ── Form controls: 32px, neutral ─────────────────────────────────────── */
.form-input, .project-selector, select.form-input {
  min-height: var(--ds-ctl-h); border-radius: var(--ds-radius-ctl);
  background: var(--ds-surface); color: var(--ds-text); border: 1px solid var(--ds-border-strong);
  font-family: var(--ds-font); font-size: var(--ds-fs-13);
}

/* ── Header (56px): logo / scope / search / status / bell / avatar ─────── */
:root { --header-h: 56px; }
#appHeader.ds-header {
  height: var(--header-h); background: var(--ds-bg); border-bottom: 1px solid var(--ds-border);
  backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none;
}
#appHeader.ds-header .header-inner { justify-content: flex-start; gap: var(--ds-sp-3); padding: 0 var(--ds-sp-4); }
.ds-header .header-brand { min-width: 0; gap: var(--ds-sp-2); }
.ds-header .header-brand h2 { font-size: var(--ds-fs-14); font-weight: 600; letter-spacing: 0; }
.ds-header .header-brand-dual { font-size: var(--ds-fs-13); font-weight: 600; color: var(--ds-text); }
.ds-header .hb-cb, .ds-header .hb-ss, .ds-header .hb-sep { color: var(--ds-text) !important; }
.ds-header .hb-sep { color: var(--ds-text-3) !important; margin: 0 2px; }
.ds-header .header-cn-title { display: none; }
.ds-header .hamburger-btn { display: none; }
.ds-rail-toggle {
  width: var(--ds-ctl-h); height: var(--ds-ctl-h); border: 0; border-radius: var(--ds-radius-ctl);
  background: transparent; color: var(--ds-text-2); cursor: pointer; position: relative;
}
.ds-rail-toggle::before {
  content: ''; position: absolute; inset: 9px 8px; border: 1.5px solid currentColor; border-radius: 3px;
  box-shadow: inset 4px 0 0 currentColor;
}
.ds-rail-toggle:hover { background: var(--ds-hover); color: var(--ds-text); }

.ds-scope { display: inline-flex; padding: 2px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-ctl); background: var(--ds-surface); }
.ds-seg {
  height: 26px; padding: 0 var(--ds-sp-3); border: 0; border-radius: 6px; background: transparent;
  color: var(--ds-text-2); font: 500 var(--ds-fs-12)/1 var(--ds-font); cursor: pointer;
  transition: background var(--ds-dur-1) var(--ds-ease), color var(--ds-dur-1) var(--ds-ease);
}
.ds-seg:hover { color: var(--ds-text); }
.ds-seg[aria-pressed="true"] { background: var(--ds-hover); color: var(--ds-text); }

.ds-search {
  display: inline-flex; align-items: center; gap: var(--ds-sp-2); height: var(--ds-ctl-h);
  flex: 1 1 280px; max-width: 360px; margin: 0 auto 0 var(--ds-sp-4); padding: 0 var(--ds-sp-3);
  border: 1px solid var(--ds-border); border-radius: var(--ds-radius-ctl); background: var(--ds-surface);
  color: var(--ds-text-3); font: 400 var(--ds-fs-13)/1 var(--ds-font); cursor: pointer; text-align: left;
}
.ds-search:hover { border-color: var(--ds-border-strong); color: var(--ds-text-2); }
.ds-search .ds-search-label { flex: 1; }
.ds-kbd { font: 500 var(--ds-fs-12)/1 var(--ds-font); color: var(--ds-text-3); padding: 2px 6px; border: 1px solid var(--ds-border); border-radius: 4px; }
#cmdpal-trigger.ds-search { transform: none; }

.ds-header .header-actions { margin-left: auto; gap: var(--ds-sp-1); }
.ds-header .header-actions .btn-icon { min-width: var(--ds-ctl-h); min-height: var(--ds-ctl-h); border-radius: var(--ds-radius-ctl); color: var(--ds-text-2); border: 0 !important; transform: none !important; }
.ds-header .header-actions .btn-icon:hover { background: var(--ds-hover); color: var(--ds-text); }
.ds-header .hdr-ico { width: 16px; height: 16px; }
.ds-status, .ds-usermenu { position: relative; }
.ds-status-dot { width: var(--ds-ctl-h); height: var(--ds-ctl-h); display: inline-grid; place-items: center; border: 0; border-radius: var(--ds-radius-ctl); background: transparent; cursor: pointer; }
.ds-status-dot:hover { background: var(--ds-hover); }
.ds-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ds-text-3); }
.ds-status-dot[data-state="ok"] .ds-dot { background: var(--ds-ok); }
.ds-status-dot[data-state="warn"] .ds-dot { background: var(--ds-warn); }
.ds-status-dot[data-state="bad"] .ds-dot { background: var(--ds-danger); }
.ds-header .user-badge { height: var(--ds-ctl-h); padding: 0 var(--ds-sp-2) 0 var(--ds-sp-1); border-radius: var(--ds-radius-ctl); background: transparent; border: 0; cursor: pointer; color: var(--ds-text-2); }
.ds-header .user-badge:hover { background: var(--ds-hover); }
.ds-header .user-avatar { width: 24px; height: 24px; background: var(--ds-accent-tint); color: var(--ds-accent); font-size: var(--ds-fs-12); font-weight: 600; }
.ds-header .user-name { font-size: var(--ds-fs-13); color: var(--ds-text-2); }

/* Floating layers: status popover + account menu (shadow allowed here) */
.ds-status-pop, .ds-menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 1100; min-width: 240px;
  background: var(--ds-surface); border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-float); padding: var(--ds-sp-2); font-size: var(--ds-fs-13);
}
.ds-status-pop[hidden], .ds-menu[hidden], .ds-more-sheet[hidden] { display: none; }
.ds-status-pop { min-width: 300px; }
.ds-status-head, .ds-menu-label { margin: 0; padding: var(--ds-sp-1) var(--ds-sp-2); font-size: var(--ds-fs-12); font-weight: 500; color: var(--ds-text-3); }
.ds-status-list { list-style: none; margin: 0; padding: 0; }
.ds-status-list li { display: flex; justify-content: space-between; gap: var(--ds-sp-4); padding: 6px var(--ds-sp-2); }
.ds-status-key { color: var(--ds-text-2); }
.ds-status-val { color: var(--ds-text); text-align: right; font-variant-numeric: tabular-nums; }
.ds-status-val[data-level="warn"], .ds-status-foot[data-level="warn"] { color: var(--ds-warn); }
.ds-status-val[data-level="bad"] { color: var(--ds-danger); }
.ds-status-foot { margin: var(--ds-sp-1) 0 0; padding: 6px var(--ds-sp-2) 2px; border-top: 1px solid var(--ds-border); color: var(--ds-text-2); }
.ds-menu { min-width: 220px; max-height: calc(100vh - 80px); overflow-y: auto; }
.ds-menu-item {
  display: flex; align-items: center; width: 100%; height: var(--ds-ctl-h); padding: 0 var(--ds-sp-2);
  border: 0; border-radius: var(--ds-radius-sm); background: transparent; color: var(--ds-text);
  font: 400 var(--ds-fs-13)/1 var(--ds-font); text-align: left; cursor: pointer;
}
.ds-menu-item:hover, .ds-menu-item:focus-visible { background: var(--ds-hover); outline: none; }
.ds-menu-item[aria-checked="true"]::after { content: '✓'; margin-left: auto; color: var(--ds-accent); }
.ds-menu-danger { color: var(--ds-danger); }
.ds-menu-foot { margin: var(--ds-sp-1) 0; padding: 6px var(--ds-sp-2); border-top: 1px solid var(--ds-border); color: var(--ds-text-3); font-size: var(--ds-fs-12); }
.ds-header :focus-visible, .ds-menu :focus-visible { outline: 2px solid var(--ds-accent); outline-offset: 2px; }

@media (max-width: 768px) {
  #appHeader.ds-header { height: 52px; }
  .ds-header .ds-search, .ds-header .ds-rail-toggle, .ds-header .user-name, .ds-header .shell-notif-bell { display: none; }
  .ds-header .header-inner { padding: 0 var(--ds-sp-3); }
  .ds-header .header-actions { margin-left: auto; }
  .ds-status-pop, .ds-menu { position: fixed; top: 58px; right: var(--ds-sp-2); left: var(--ds-sp-2); min-width: 0; }
}

/* ── Sidebar: 13px single-language, subtle filled active, collapsible rail ── */
:root { --sidebar-w: 224px; }
body.ds-rail { --sidebar-w: 56px; }
.sidebar {
  position: fixed; left: 0; bottom: 0; width: var(--sidebar-w); min-width: var(--sidebar-w);
  background: var(--ds-bg); border-right: 1px solid var(--ds-border); box-shadow: none !important;
  padding: var(--ds-sp-3) var(--ds-sp-2); top: var(--header-h);
  transition: width var(--ds-dur-2) var(--ds-ease), min-width var(--ds-dur-2) var(--ds-ease);
}
.sidebar-title {
  font: 500 var(--ds-fs-12)/1.2 var(--ds-font); letter-spacing: 0; text-transform: none;
  color: var(--ds-text-3); padding: var(--ds-sp-3) var(--ds-sp-2) var(--ds-sp-1);
}
.sidebar .ds-sidebar-sep { margin-top: var(--ds-sp-4); }
.sidebar .nav-item {
  height: var(--ds-ctl-h); padding: 0 var(--ds-sp-2); gap: var(--ds-sp-2); margin-bottom: 2px;
  border: 0 !important; border-left: 0 !important; border-radius: var(--ds-radius-sm);
  font: 400 var(--ds-fs-13)/1 var(--ds-font); color: var(--ds-text-2); box-shadow: none;
  transition: background var(--ds-dur-1) var(--ds-ease), color var(--ds-dur-1) var(--ds-ease);
}
.sidebar .nav-item:hover { background: var(--ds-hover); color: var(--ds-text); }
.sidebar .nav-item.active, .sidebar .nav-item[aria-current="page"] {
  background: var(--ds-hover); color: var(--ds-text); font-weight: 500;
}
.sidebar .nav-item.active .nav-icon { color: var(--ds-accent); }
.sidebar .nav-item .nav-icon { width: 16px; height: 16px; flex: none; color: var(--ds-text-3); display: inline-grid; place-items: center; }
.sidebar .nav-label { font-size: var(--ds-fs-13); flex: 1; min-width: 0; }
.shell-nav-indicator { display: none; }
.sidebar .nav-item { position: relative; }
.sidebar .nav-fav { font-size: var(--ds-fs-12); position: absolute; right: var(--ds-sp-2); margin: 0; }
.sidebar .nav-item:not(:hover):not(:focus-within) .nav-fav:not(.nav-fav-active) { display: none; }
.sidebar .brain-nav .nav-icon + .nav-label::after { content: none; }
body.ds-rail .sidebar { padding: var(--ds-sp-3) 10px; overflow-x: hidden; }
body.ds-rail .sidebar .nav-label, body.ds-rail .sidebar .nav-fav, body.ds-rail .sidebar .sidebar-title { display: none !important; }
body.ds-rail .sidebar .nav-item { justify-content: center; padding: 0; }
.ds-tabbar, .ds-more-sheet { display: none; }

/* ── Mobile (<=768px): bottom tab bar + More sheet, no horizontal scroll ── */
@media (max-width: 768px) {
  .sidebar, #mobileOverlay { display: none !important; }
  .main-content { margin-left: 0 !important; padding: var(--ds-sp-4) var(--ds-sp-4) calc(64px + env(safe-area-inset-bottom) + var(--ds-sp-4)); max-width: 100vw; overflow-x: hidden; }
  html, body { overflow-x: hidden; }
  .app-layout { padding-top: 52px; }
  .ds-tabbar {
    display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
    height: calc(56px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
    background: var(--ds-surface); border-top: 1px solid var(--ds-border);
  }
  .ds-tab, .ds-more-item {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-height: 44px; border: 0; background: transparent; color: var(--ds-text-3);
    font: 500 11px/1.1 var(--ds-font); cursor: pointer;
  }
  .ds-tab.active { color: var(--ds-accent); }
  .ds-tab-ico { width: 20px; height: 20px; display: grid; place-items: center; }
  .ds-tab-ico svg { width: 18px; height: 18px; }
  .ds-more-sheet:not([hidden]) {
    display: grid; grid-template-columns: 1fr 1fr; gap: var(--ds-sp-1); position: fixed; left: var(--ds-sp-2); right: var(--ds-sp-2);
    bottom: calc(64px + env(safe-area-inset-bottom)); z-index: 1001; padding: var(--ds-sp-2);
    background: var(--ds-surface); border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius);
    box-shadow: var(--ds-shadow-float); max-height: 60vh; overflow-y: auto;
  }
  .ds-more-item { flex-direction: row; justify-content: flex-start; gap: var(--ds-sp-2); padding: 0 var(--ds-sp-3); border-radius: var(--ds-radius-sm); color: var(--ds-text); font-size: var(--ds-fs-13); text-align: left; }
  .ds-more-item:hover { background: var(--ds-hover); }
  .ds-tab:focus-visible, .ds-more-item:focus-visible { outline: 2px solid var(--ds-accent); outline-offset: -2px; }
  /* Tables stack into rows; targets reach 44px. */
  .module-panel table { display: block; max-width: 100%; overflow-x: auto; }
  .btn, .ds-seg, .form-input { min-height: 44px; }
  .ds-header .header-brand h2 { display: none; }
  .ds-scope { margin-left: auto; }
  .ds-seg { height: 36px; min-height: 36px; padding: 0 var(--ds-sp-2); white-space: nowrap; }
  .ds-header .header-actions { margin-left: var(--ds-sp-2); }
}

/* ── Degraded state: ONE thin inline line under the module header ──────── */
.honest-state-banner.ds-degraded-line, .honest-state-banner {
  display: flex; align-items: baseline; gap: var(--ds-sp-2); flex-wrap: nowrap;
  margin: calc(-1 * var(--ds-sp-4)) 0 var(--ds-sp-4); padding: 0; min-height: 0;
  background: none !important; border: 0 !important; border-radius: 0; box-shadow: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  color: var(--ds-warn) !important; font: 400 var(--ds-fs-12)/1.4 var(--ds-font);
}
.honest-state-banner::before { display: none !important; }
.honest-state-banner strong { font-weight: 500; margin: 0; white-space: nowrap; }
.honest-state-banner .ds-degraded-reason { color: var(--ds-text-3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.honest-state-banner:empty { display: none; }
#module-executive [id^="honestState-"]:empty, [id^="honestState-"]:empty { display: none; }
/* Module chips (Executive AI health etc.) stay small inline chips, never banners. */
.module-subtitle, .module-title .last-updated { color: var(--ds-text-3) !important; }

/* ── Toasts: bottom-right, <=360px, stacked, never over nav ────────────── */
.toast-container {
  top: auto !important; bottom: var(--ds-sp-4); right: var(--ds-sp-4); left: auto;
  width: min(360px, calc(100vw - 2 * var(--ds-sp-4))); max-width: 360px; z-index: 1200;
  flex-direction: column-reverse; gap: var(--ds-sp-2); pointer-events: none;
}
.toast {
  pointer-events: auto; padding: var(--ds-sp-3); gap: var(--ds-sp-2);
  background: var(--ds-surface); border: 1px solid var(--ds-border-strong) !important; border-left-width: 1px !important;
  border-radius: var(--ds-radius); box-shadow: var(--ds-shadow-float); color: var(--ds-text);
  animation: dsToastIn var(--ds-dur-2) var(--ds-ease);
}
.toast.success, .toast.error, .toast.warning, .toast.info { border-left: 1px solid var(--ds-border-strong) !important; }
.toast .toast-title { font-size: var(--ds-fs-13); font-weight: 500; color: var(--ds-text); }
.toast .toast-msg { font-size: var(--ds-fs-12); color: var(--ds-text-2); }
.toast .toast-close { color: var(--ds-text-3); width: 24px; height: 24px; }
.toast .toast-progress { background: var(--ds-border-strong); height: 1px; }
.toast.error .toast-title { color: var(--ds-danger); }
.toast.warning .toast-title { color: var(--ds-warn); }
@keyframes dsToastIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.toast-out { animation: dsToastOut var(--ds-dur-1) var(--ds-ease) forwards; }
@keyframes dsToastOut { to { opacity: 0; transform: translateY(4px); } }
@media (max-width: 768px) { .toast-container { bottom: calc(64px + env(safe-area-inset-bottom) + var(--ds-sp-2)); right: var(--ds-sp-2); } }

/* ── Advisors: column removed; picker lives in the AI panel; ONE 44px FAB ── */
.advisor-bubbles, #advisorBubbles { display: none !important; }
body.advisors-docked .main-content { padding-right: var(--ds-gutter) !important; }
.floating-ai-bubble {
  width: 44px; height: 44px; right: var(--ds-sp-4); bottom: var(--ds-sp-4);
  background: var(--ds-accent-solid) !important; background-image: none !important;
  border: 0; box-shadow: var(--ds-shadow-float); transition: background var(--ds-dur-1) var(--ds-ease), transform var(--ds-dur-1) var(--ds-ease);
}
.floating-ai-bubble:hover { transform: none; background: var(--ds-accent-solid-hover) !important; }
.floating-ai-bubble .fab-pulse { display: none !important; animation: none !important; }
.floating-ai-bubble .fab-icon { color: #fff; font: 600 var(--ds-fs-13)/1 var(--ds-font); }
.ds-advisor-pick { display: flex; flex-direction: column; gap: var(--ds-sp-1); font-size: var(--ds-fs-12); color: var(--ds-text-3); margin-bottom: var(--ds-sp-3); }
@media (max-width: 768px) { .floating-ai-bubble { bottom: calc(64px + env(safe-area-inset-bottom) + var(--ds-sp-2)); right: var(--ds-sp-3); } }

/* ── First jobs: compact, non-blocking, dismissible panel (no scrim) ───── */
.operator-briefing {
  inset: auto var(--ds-sp-4) var(--ds-sp-4) auto; width: min(380px, calc(100vw - 2 * var(--ds-sp-4)));
  padding: 0; display: block; z-index: 900; pointer-events: none; bottom: calc(var(--ds-sp-4) + 56px);
}
.operator-briefing-scrim { display: none !important; }
.operator-briefing-panel {
  pointer-events: auto; width: 100%; max-height: min(70vh, 560px); padding: var(--ds-sp-4);
  background: var(--ds-surface); border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow-float);
}
.operator-briefing-panel h2 { font-size: var(--ds-fs-16); font-weight: 600; }
.operator-briefing-kicker { font-size: var(--ds-fs-12); color: var(--ds-text-3); letter-spacing: 0; text-transform: none; }
.operator-briefing-lede, .operator-handbook { display: none; }
.operator-briefing-panel.is-expanded .operator-briefing-lede { display: block; }
.operator-briefing-panel.is-expanded .operator-handbook { display: block; }
.ds-link-btn { background: none; border: 0; padding: 0 0 var(--ds-sp-2); color: var(--ds-accent); font: 500 var(--ds-fs-12)/1.4 var(--ds-font); cursor: pointer; }
.operator-briefing-close { height: var(--ds-ctl-h-sm); padding: 0 var(--ds-sp-3); }
@media (max-width: 768px) { .operator-briefing { inset: auto var(--ds-sp-2) calc(64px + env(safe-area-inset-bottom) + 56px) var(--ds-sp-2); width: auto; } }

/* ── Icons + View Transitions ──────────────────────────────────────────── */
.ds-ico { width: 16px; height: 16px; flex: none; vertical-align: -3px; }
.ds-ico-lg { width: 32px; height: 32px; color: var(--ds-text-3); }
.empty-state-icon { color: var(--ds-text-3); line-height: 0; }
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: var(--ds-dur-2); animation-timing-function: var(--ds-ease); }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
.module-panel.active { animation-duration: var(--ds-dur-2); animation-timing-function: var(--ds-ease); }

/* Light-theme text on tinted accent tokens must clear 4.5:1 (defect 4). */
.daily-briefing .db-summary { color: var(--ds-text-2); }
html[data-theme="light"] [class*="subtitle"], html[data-theme="light"] .last-updated { color: var(--ds-text-3) !important; }

/* DS-PLACEHOLDER-SHELL */
