/* cache-stamp 2026-06-04: forces a fresh ?v= for the readiness-trend Expand fix — busts the torn d4544ac stamp where index.html pre-recorded this asset's content hash. */
/* ============================================================================
 * TBK Vault — styles.css
 * Premium, minimal, light-theme rebuild. Restraint over decoration.
 * ==========================================================================*/

:root{
  /* ── Accent ramp (brand blue, #0077FF core) ── */
  --accent-50:#EBF5FF;
  --accent-100:#DBECFF;
  --accent-200:#B2D7FF;
  --accent-300:#80BDFF;
  --accent-400:#0088FF;
  --accent-500:#0077FF;
  --accent-600:#0066DD;
  --accent-700:#0044AA;

  /* ── Slate premium light palette ── */
  --gray-0:#F8FAFC;  /* base page background */
  --gray-1:#FFFFFF;  /* cards / panels / surfaces */
  --gray-2:#F1F5F9;  /* hover surfaces */
  --gray-3:#E2E8F0;  /* subtle borders & secondary accents */
  --gray-4:#CBD5E1;  /* standard borders */
  --gray-5:#94A3B8;  /* hover borders */
  --gray-6:#586575;  /* secondary text labels — darkened for AA (≥4.5:1) on the #F8FAFC base */
  --gray-7:#475569;  /* muted body text */
  --gray-8:#334155;  /* dynamic dark elements */
  --gray-9:#0F172A;  /* primary high-contrast ink */
  --gray-10:#0F172A;
  --gray-11:#0F172A;

  /* ── Status (J2: fully mono — fresh/aging/stale read by SHADE not hue;
   *    canonical danger red still lives in the --err/--crit tokens below) ── */
  --fresh:#0077FF;
  --aging:#64748B;
  --stale:#1E293B;
  --info:#0077FF;
  /* Success / error state tokens (one canonical green/red for badges, gates, trends) */
  --ok-fg:#047857;  --ok-bg:#EAFBF3;  --ok-border:#A7F3D0;
  --err-fg:#EF4444; --err-bg:#FEF2F2; --err-border:#FECACA;
  --warn:#B45309;   --warn-bg:#FEF6E7; --warn-border:#FDE68A;   /* amber — drift / "edited" provenance / aging */
  --crit-fg:#B91C1C; --crit-bg:#FEE2E2;                          /* critical / P0 */
  --red-bg:var(--err-bg);                                        /* light-red hover wash for delete affordances (.tk-del / .proj-del) — was referenced but never defined */
  /* ── Governance canon tiers (locked 2026-06-06; mirrors the canon-builder palette) ── */
  --tier-core:#0077FF;   /* Core — brand blue (== --accent-500) */
  --tier-imp:#2FA68C;    /* Important — teal */
  --tier-sup:#64748B;    /* Supporting — slate (== --aging) */
  --tier-move:#B45309;   /* Move out — amber (== --warn) */
  /* legacy ramp aliases referenced with inline fallbacks elsewhere */
  --amber-50:#FFFBEB; --amber-200:#FDE68A; --amber-700:#B45309; --err-600:#B91C1C;

  /* ── Type badges ── */
  --t-skill-fg:#1D4ED8;       --t-skill-bg:#EFF4FF;
  --t-hook-fg:#C2410C;        --t-hook-bg:#FFF3EC;
  --t-agent-fg:#7C3AED;       --t-agent-bg:#F5EEFF;
  --t-workflow-fg:#047857;    --t-workflow-bg:#EAFBF3;
  --t-command-fg:#B45309;     --t-command-bg:#FEF6E7;
  --t-kit-fg:#BE185D;         --t-kit-bg:#FEEFF5;
  --t-plugin-fg:#0369A1;      --t-plugin-bg:#EAF6FD;
  --t-composite-fg:#A16207;   --t-composite-bg:#FCFAE6;
  --t-orchestrator-fg:#0F766E;--t-orchestrator-bg:#E7FAF7;
  /* UX-02 — chart palettes as tokens (single source of truth; app.js reads these via
     cssVar() with literal fallbacks). Edit a colour here and every chart updates. */
  --comp-purple:#7C3AED; --comp-blue:#0077FF; --comp-indigo:#4F46E5; --comp-green:#047857;
  --comp-teal:#0F766E;   --comp-orange:#C2410C; --comp-amber:#B45309; --comp-red:#DC2626;
  --comp-pink:#BE185D;   --comp-cyan:#0369A1;
  --proj-1:#0077FF; --proj-2:#7C3AED; --proj-3:#047857; --proj-4:#C2410C; --proj-5:#BE185D;
  --proj-6:#0369A1; --proj-7:#B45309; --proj-8:#0F766E; --proj-9:#1D4ED8; --proj-10:#9D174D;
  /* ── Owner accents (Project Home redesign, 2026-06-08) — so owner-tinted elements
     (the read-only boundary note's left border, owner dots) reference real tokens, not
     phantoms (lint H1). Mirrors OWNER_META colours conceptually; the JS owner badges
     still read OWNER_META at runtime. ── */
  --owner-wassim:#0077FF; --owner-rabih:#7C3AED;

  /* ── Radius ── */
  --r-sm:4px;
  --r-md:6px;
  --r-lg:8px;
  --r-pill:6px;   /* pills / chips / badges — slightly rounded, NOT oval. Only true circles keep 999px. */

  /* ── Type scale (D8, 2026-06-05) — the canonical font-size ladder. New code uses
   *    these tokens; the literal-px sweep onto them is staged. UI ramp 10–18, heading
   *    ramp 22–44. Half-pixel sizes were eliminated (D9). ── */
  --fs-2xs:10px;   /* micro labels, fine print */
  --fs-xs:11px;    /* small badges / dense meta */
  --fs-sm:12px;    /* label chips / status pills */
  --fs-base:13px;  /* dense body / table rows (most common) */
  --fs-md:14px;    /* interactive controls / default UI */
  --fs-lg:16px;    /* lead text / small headings */
  --fs-xl:18px;    /* section headings */
  --fs-2xl:22px;   /* card numbers / H2 */
  --fs-3xl:28px;   /* page headings */
  --fs-4xl:34px;   /* big stat figures */
  --fs-display:44px; /* hero display */

  /* Control-sizing standard (single source of truth — keeps interactive controls,
     filter chips and label badges consistent across the app; topbar is the reference).
     Aliased onto the type scale above so there is ONE ladder. */
  --ctl-font: var(--fs-md);        /* 14px — interactive: buttons, tabs, segmented controls, search */
  --ctl-font-dense: var(--fs-base);/* 13px — packed/inline interactive + multi-select filter chips */
  --label-font: var(--fs-sm);      /* 12px — non-interactive label chips / badges / status pills */

  /* ── Bars (D1: ONE unified bar system — wider, square-ish, never a pill).
   *    Every proportion/progress bar consumes these. Bars use --bar-r (4px),
   *    NOT 999px — only true circles (rings, dots) keep 999px. ── */
  --bar-h:12px;          /* default proportion / progress bar */
  --bar-h-compact:8px;   /* dense rows (sidebar, inline) */
  --bar-r:4px;           /* the one bar radius (= --r-sm) */

  /* ── Spacing scale (4px base) ── */
  --s-1:4px;
  --s-2:8px;
  --s-3:12px;
  --s-4:16px;
  --s-5:20px;
  --s-6:24px;

  /* ── Typography ── */
  --font-sans:'Geist','Inter',system-ui,sans-serif;
  --font-mono:'Geist Mono','JetBrains Mono',monospace;
  --font-display:'Orbitron',var(--font-sans);

  /* ── Layout primitives ── */
  --row-h:32px;
  --nav-h:68px;          /* +20% taller nav */
  --brand-bar-h:4px;

  /* ── Shadows ── */
  --shadow-sm:0 1px 2px rgba(10,22,40,.04);
  --shadow-md:0 1px 3px rgba(10,22,40,.06), 0 4px 12px rgba(10,22,40,.04);
  --shadow-lg:0 8px 28px rgba(10,22,40,.10), 0 2px 6px rgba(10,22,40,.06);
  /* D7 — the ONE focus ring. Every interactive control's :focus(-visible) glow
     reads from this token. The base :focus-visible outline (below) layers on top. */
  --focus-ring:0 0 0 3px rgba(0,119,255,.15);
  --ease:cubic-bezier(.4,0,.2,1);
}

/* ── Reset ─────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--fs-lg);
  line-height:1.6;
  color:var(--gray-9);
  background:var(--gray-0);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,p{margin:0;}
button{font-family:inherit;cursor:pointer;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
:focus-visible{ outline:2px solid var(--accent-500); outline-offset:2px; border-radius:var(--r-sm); }
::selection{ background:var(--accent-100); color:var(--accent-700); }

/* ── Layout container (HARD CONSTRAINT) ────────────────────────────────── */
.container{
  width:86%;
  max-width:1760px;
  margin:0 auto;
}

/* ── Brand bar (the only place lime appears) ───────────────────────────── */
.brand-bar{
  position:fixed;top:0;left:0;right:0;height:var(--brand-bar-h);
  background:linear-gradient(90deg,var(--accent-500),#00A3FF,#9DFF00);
  z-index:60;
}
/* Genesis (rabih) seat: the TBK cyan→lime rainbow bar clashes with Genesis's muted
   navy/cream palette — replace with a subtle on-brand navy→sky gradient (both modes). */
body[data-owner-theme="rabih"] .brand-bar{
  background:linear-gradient(90deg,var(--accent-600),var(--accent-500),var(--accent-300));
}

/* ============================================================================
 * TOP NAV
 * Full-bleed background bar; inner content aligns to .container.
 * ==========================================================================*/
.topbar{
  position:fixed;top:var(--brand-bar-h);left:0;right:0;height:var(--nav-h);
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--gray-3);
  z-index:50;
}
.topbar-inner{
  display:flex;align-items:center;gap:var(--s-3);
  height:100%;
}

/* Logo */
.logo{
  display:inline-flex;align-items:center;gap:var(--s-3);
  flex-shrink:0;
  background:none;border:none;padding:0;
}
.logo-mark{ height:34px;width:auto;display:block;flex-shrink:0; }   /* real brand slash-mark */
.logo-word{ font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:.02em;line-height:1; }
.logo-word b{ font-weight:900;color:var(--gray-9); }
.logo-word i{ font-weight:500;font-style:normal;color:var(--accent-500); }

/* Nav menu */
.nav-menu{ display:flex;align-items:center;gap:var(--s-1); }
.nav-item{ position:relative; }
/* UX-14 — hairline divider grouping the "kit" cluster (Registry/Toolkit) from the
   "operate" cluster (Gnesis/Projects/Tracking/Governance). No pills — a divider reads
   as group structure without the rounded-chip noise. */
.nav-menu .nav-item.nav-group-sep{ margin-left:8px;padding-left:12px;border-left:1px solid var(--gray-3); }
.nav-link{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 9px;border-radius:var(--r-md);
  font-size:var(--fs-md);font-weight:500;color:var(--gray-7);
  background:none;border:none;
  transition:background .12s var(--ease),color .12s var(--ease);
  white-space:nowrap;
}
.nav-link:hover{ background:var(--gray-2);color:var(--gray-9); }
.nav-link.active{ color:var(--accent-600);background:var(--accent-50); }
.nav-link .caret{ width:14px;height:14px;opacity:.5;transition:transform .15s var(--ease); }
.nav-item.open .nav-link .caret{ transform:rotate(180deg); }
/* (.nav-link .count removed with U10 — Governance no longer carries a bar count badge) */
.nav-ico{ font-size:var(--fs-base);line-height:1; }

/* Dropdown */
.dropdown{
  position:absolute;top:calc(100% + 8px);left:0;min-width:240px;
  background:var(--gray-1);border:1px solid var(--gray-3);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  padding:var(--s-2);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .15s var(--ease),transform .15s var(--ease),visibility .15s;
  z-index:55;
}
.nav-item.open .dropdown,
.nav-item:hover .dropdown{ opacity:1;visibility:visible;transform:translateY(0); }
/* Right-anchored dropdown (account menu sits at the far right of the bar) */
.dropdown-right{ left:auto;right:0; }
.nav-account{ position:relative;display:flex;align-items:center; }
.nav-account .dropdown-item{ text-transform:none;letter-spacing:.01em;font-family:var(--font-sans);font-size:var(--fs-base);font-weight:500; }
.nav-account .dropdown-item .di-count{ background:var(--accent-100);color:var(--accent-700);border-radius:var(--r-pill);padding:1px 7px; }
.dropdown-eyebrow{
  font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--gray-6);padding:6px 10px 4px;
}
.dropdown-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-radius:var(--r-md);
  font-family:var(--font-display);font-size:var(--fs-base);font-weight:500;
  text-transform:uppercase;letter-spacing:.06em;color:var(--gray-7);
  background:none;border:none;width:100%;text-align:left;
  transition:background .1s var(--ease),color .1s var(--ease);
}
.dropdown-item:hover{ background:var(--gray-2);color:var(--gray-9); }
.dropdown-item .di-ico{ font-size:var(--fs-md); }
.dropdown-item .di-count{
  margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);
  color:var(--gray-6);letter-spacing:0;
}

/* a11y: skip link — visually hidden until focused */
.skip-link{ position:absolute;left:8px;top:-48px;z-index:100;
  background:var(--accent-600);color:#fff;padding:9px 14px;border-radius:var(--r-md);
  font-weight:600;font-size:var(--fs-md);text-decoration:none;transition:top .15s var(--ease); }
.skip-link:focus{ top:8px;outline:2px solid #fff;outline-offset:2px; }

/* Right cluster */
.nav-right{ margin-left:auto;display:flex;align-items:center;gap:var(--s-3); }
/* Compact search trigger (opens the ⌘K palette). Content-sized + flex-shrink:0
   so it can never overflow the container edge — the old 380px field clipped. */
.nav-search{
  display:flex;align-items:center;gap:8px;flex-shrink:0;height:30px;box-sizing:border-box;
  padding:0 11px;border-radius:var(--r-md);
  background:var(--gray-0);border:1px solid var(--gray-4);
  color:var(--gray-6);font-family:var(--font-sans);font-size:var(--fs-md);
  cursor:pointer;
  transition:border-color .12s var(--ease),box-shadow .12s var(--ease),background .12s var(--ease),color .12s var(--ease);
}
.nav-search:hover{ border-color:var(--gray-6);background:var(--gray-1);color:var(--gray-8); }
.nav-search:focus-visible{ border-color:var(--accent-500);box-shadow:var(--focus-ring);outline:none; }
.nav-search svg{ width:15px;height:15px;color:var(--gray-6);flex-shrink:0; }
.nav-search-label{ font-size:var(--fs-md);line-height:1; }
/* Mobile menu keeps a real inline field */
.mobile-search{
  display:flex;align-items:center;gap:8px;width:100%;
  padding:6px 13px;border-radius:var(--r-md);
  background:var(--gray-0);border:1px solid var(--gray-4);
}
.mobile-search:focus-within{ border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.mobile-search svg{ width:15px;height:15px;color:var(--gray-6);flex-shrink:0; }
.mobile-search input{
  border:none;background:none;outline:none;flex:1;min-width:0;
  font-family:var(--font-sans);font-size:var(--ctl-font);color:var(--gray-9);
}
.mobile-search input::placeholder{ color:var(--gray-6); }
.kbd{
  font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);
  padding:2px 6px;border-radius:var(--r-sm);
  background:var(--gray-2);border:1px solid var(--gray-3);
  white-space:nowrap;
}
.icon-btn{
  position:relative;
  width:34px;height:34px;border-radius:var(--r-md);
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;color:var(--gray-6);
  font-size:var(--fs-lg);transition:background .12s var(--ease),color .12s var(--ease);
}
.icon-btn:hover{ background:var(--gray-2);color:var(--gray-9); }
.icon-btn .dot-badge{
  position:absolute;top:3px;right:3px;min-width:15px;height:15px;padding:0 3px;
  font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:600;line-height:15px;
  text-align:center;border-radius:999px;background:var(--accent-500);color:#fff;
}
.avatar{
  width:34px;height:34px;border-radius:999px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:900;font-size:var(--fs-md);color:#fff;
  background:linear-gradient(135deg,var(--accent-500),var(--accent-700));
  border:none;
}

/* Mobile nav toggle */
.nav-burger{ display:none; }

/* ── Page scaffold ─────────────────────────────────────────────────────── */
.page{ padding-top:calc(var(--brand-bar-h) + var(--nav-h)); padding-bottom:max(80px, env(safe-area-inset-bottom)); padding-left:env(safe-area-inset-left); padding-right:env(safe-area-inset-right); }   /* UX-16 — clear notch/home-indicator on mobile */
.view{ padding-top:var(--s-6); }
.view[hidden]{ display:none; }

/* ── Generic eyebrow / section heads ───────────────────────────────────── */
.eyebrow{
  font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  color:var(--gray-6);
}

/* ============================================================================
 * HOME
 * ==========================================================================*/
.home-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-6);
  padding:var(--s-4) 0 var(--s-6);
  border-bottom:1px solid var(--gray-3);
  margin-bottom:var(--s-6);
}
.home-title{ font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;color:var(--gray-9); }
.home-sub{ font-size:var(--fs-lg);color:var(--gray-6);margin-top:6px;max-width:64ch; }
.home-meta{ font-family:var(--font-mono);font-size:var(--label-font);color:var(--gray-6);margin-top:10px; }
.home-head-actions{ display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0; }

/* Grid system */
.grid{ display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s-5); }
.span-3{ grid-column:span 3; }
.span-4{ grid-column:span 4; }
.span-6{ grid-column:span 6; }
.span-8{ grid-column:span 8; }
.span-12{ grid-column:span 12; }

/* Tile */
.tile{
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);
  padding:var(--s-5);box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.tile-head{ display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4); }
.tile-label{ font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-700); }
.tile-q{ font-size:var(--fs-sm);color:var(--gray-6);white-space:nowrap; }   /* D7 — a q-label must never wrap to two lines */
.tile-hero{ border-left:3px solid var(--accent-500); }

/* KPI */
.kpi-num{ font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:900;line-height:1;color:var(--gray-9);letter-spacing:-.01em; }
.kpi-row{ display:flex;align-items:baseline;gap:10px;margin-top:4px; }
.kpi-delta{ font-family:var(--font-mono);font-size:var(--fs-base);font-weight:500; }
.kpi-delta.up{ color:var(--fresh); }
.kpi-delta.down{ color:var(--err-fg); }   /* danger exception: a negative trend keeps RED (not mono near-black) per the J2 sign-off */
.kpi-cap{ font-size:var(--fs-base);color:var(--gray-6);margin-top:var(--s-3); }

/* Sparkline */
.spark{ display:block;width:100%;height:48px;margin-top:var(--s-4); }
.spark-bars{ display:flex;align-items:flex-end;gap:3px;height:56px;margin-top:var(--s-4); }
.spark-bars span{ flex:1;background:var(--accent-300);border-radius:var(--bar-r) var(--bar-r) 0 0;min-height:3px;transition:background .15s var(--ease); }
.spark-bars span:last-child{ background:var(--accent-500); }
.spark-bars:hover span{ background:var(--accent-300); }
.spark-bars:hover span:last-child{ background:var(--accent-600); }

/* Top actions (hero) */
.action-list{ display:flex;flex-direction:column; }
.action-row{
  display:flex;align-items:center;gap:var(--s-4);
  padding:var(--s-3) 0;border-top:1px solid var(--gray-2);
}
.action-row:first-child{ border-top:none; }
.action-rank{ font-family:var(--font-mono);font-size:var(--fs-base);color:var(--gray-6);width:20px;flex-shrink:0; }
.action-body{ flex:1;min-width:0; }
.action-title{ font-size:var(--fs-md);font-weight:500;color:var(--gray-9); }
.action-desc{ font-size:var(--fs-base);color:var(--gray-6);margin-top:2px; }
.action-gen-btn{
  flex-shrink:0;
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:var(--r-md);
  font-size:var(--ctl-font);font-weight:500;
  background:var(--gray-2);color:var(--gray-8);border:1px solid var(--gray-4);
  transition:all .12s var(--ease);
}
.action-gen-btn:hover{ background:var(--accent-500);color:#fff;border-color:var(--accent-500); }

/* Severity chips */
.sev{
  display:inline-flex;align-items:center;
  font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;
  padding:2px 7px;border-radius:var(--r-sm);flex-shrink:0;
}
.sev-P0{ background:var(--accent-500);color:#fff; }
.sev-P1{ background:var(--accent-100);color:var(--accent-700); }
.sev-P2{ background:var(--gray-2);color:var(--gray-7);border:1px solid var(--gray-3); }
.sev-P3{ background:var(--gray-1);color:var(--gray-6);border:1px dashed var(--gray-4); }   /* distinct from P2 by border style, not colour alone */

/* Drift / orphan list */
.mini-list{ display:flex;flex-direction:column; }
.mini-row{
  display:flex;align-items:center;gap:var(--s-3);
  padding:10px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-md);
}
.mini-row:first-child{ border-top:none; }
.mini-name{ font-weight:500;color:var(--gray-9); }
.mini-meta{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.see-all{
  display:inline-flex;align-items:center;gap:4px;margin-top:var(--s-4);
  font-size:var(--fs-base);font-weight:500;color:var(--accent-600);background:none;border:none;padding:0;
}
.see-all:hover{ color:var(--accent-700);text-decoration:underline; }

/* AI analysis bar */
.ai-bar{
  margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px dashed var(--gray-3);
  display:flex;align-items:center;gap:8px;
  font-size:var(--fs-sm);color:var(--gray-6);
}
.ai-bar .ai-dot{ width:6px;height:6px;border-radius:999px;background:var(--accent-400);flex-shrink:0; }

/* Scatter (quality x usage) */
.scatter-wrap{ position:relative; }
.scatter{ display:block;width:100%;height:300px; }
.scatter-legend{ display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--gray-6); }
.scatter-legend i{ display:inline-block;width:9px;height:9px;border-radius:999px;margin-right:6px;vertical-align:middle; }

/* Signal — Quality × Usage with a view toggle */
.signal-block{ display:block; }
.signal-toggle{ display:inline-flex;gap:2px;padding:3px;background:var(--gray-2);border-radius:var(--r-md);margin-bottom:var(--s-3); }
.signal-toggle .seg{
  font-size:var(--ctl-font);font-weight:600;color:var(--gray-6);background:transparent;border:none;border-radius:var(--r-md);
  padding:6px 11px;cursor:pointer;transition:all .12s var(--ease);white-space:nowrap;
}
.signal-toggle .seg:hover{ color:var(--gray-9); }
.signal-toggle .seg.active{ background:#fff;color:var(--accent-700);box-shadow:var(--shadow-sm); }
.signal-extra{ margin-top:var(--s-3); }
.signal-bars{ display:flex;flex-direction:column;gap:5px; }
.sig-bar-row{
  display:grid;grid-template-columns:74px minmax(120px,1.3fr) 2fr auto;align-items:center;gap:12px;
  width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);
  padding:6px 8px;cursor:pointer;transition:all .1s var(--ease);
}
.sig-bar-row:hover{ background:var(--accent-50);border-color:var(--accent-100); }
.sig-tag{ font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:var(--r-pill);text-align:center; }
/* J2 mono — the Keep/Promote/Fix/Review tier chips track the scatter/bar shades (blue → slate → grey); no green/amber */
.sig-tag.star{ background:var(--accent-100);color:var(--accent-700); }   /* Keep — strong blue */
.sig-tag.gem{ background:var(--accent-50);color:var(--accent-600); }     /* Promote — light blue */
.sig-tag.hype{ background:var(--gray-3);color:var(--gray-8); }           /* Fix — slate */
.sig-tag.dead{ background:var(--gray-2);color:var(--gray-6); }           /* Review — faint grey */
.sig-bar-name{ font-size:var(--fs-md);font-weight:500;color:var(--gray-9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.sig-bar-track{ height:8px;background:var(--gray-2);border-radius:999px;overflow:hidden; }
.sig-bar-fill{ height:100%;border-radius:999px; }
.sig-bar-meta{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);white-space:nowrap; }
@media (max-width:760px){ .sig-bar-row{ grid-template-columns:64px 1fr auto;gap:8px; } .sig-bar-row .sig-bar-track{ display:none; } }

/* ============================================================================
 * LIBRARY (REGISTRY)
 * ==========================================================================*/
/* Shared page header — every top-level section routes through sectionHead() so
   the title, sub-line and divider read identically on each view. */
.lib-head{ padding:var(--s-4) 0 var(--s-6);border-bottom:1px solid var(--gray-3);margin-bottom:var(--s-6); }
.lib-title{ font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em; }
.lib-sub{ font-size:var(--fs-lg);color:var(--gray-6);margin-top:6px;max-width:74ch; }
/* Breadcrumb title — muted section segment + active leaf (Toolkit › Wizard) */
.lib-title .crumb-seg{ color:var(--gray-6);font-weight:500; }
.lib-title button.crumb-seg{ background:none;border:none;padding:0;font:inherit;cursor:pointer;color:var(--gray-6); }
.lib-title button.crumb-seg:hover{ color:var(--accent-600); }
.lib-title .crumb-sep{ color:var(--gray-4);margin:0 .4em;font-weight:400; }
.lib-title .crumb-leaf{ color:var(--accent-700); }
/* Self-explaining section header: title row + glance + So-what toggle */
.lib-head-row{ display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.lib-head-row .info-dot{ transform:translateY(1px); }
.lib-glance{ font-size:var(--fs-md);color:var(--gray-6);margin-top:8px;line-height:1.5;display:flex;align-items:baseline;gap:8px; }
.glance-dot{ width:6px;height:6px;border-radius:999px;background:var(--accent-500);flex:0 0 auto;transform:translateY(-1px); }
.sowhat-toggle{
  font-size:var(--fs-sm);font-weight:600;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-pill);
  padding:4px 11px;cursor:pointer;transition:all .12s var(--ease);
}
.sowhat-toggle:hover{ background:var(--accent-100);border-color:var(--accent-200); }
.sowhat-toggle[aria-expanded="true"]{ background:var(--accent-100);border-color:var(--accent-300); }
.sowhat-wrap{ margin-top:14px; }

.lib-layout{ display:grid;grid-template-columns:210px 1fr;gap:var(--s-6);align-items:start; }   /* D5 — slimmer rail, more room for the detail pane */

/* Sidebar / filter rail */
.sidebar{
  position:sticky;top:calc(var(--brand-bar-h) + var(--nav-h) + var(--s-6));
  max-height:calc(100vh - var(--brand-bar-h) - var(--nav-h) - var(--s-6) - 16px);
  overflow-y:auto;   /* D5 — the list scrolls inside the sticky rail instead of extending the page */
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);
  padding:var(--s-4);
  display:flex;flex-direction:column;gap:var(--s-5);
}
.facet{ display:flex;flex-direction:column;gap:8px; }
.facet-label{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-6); }
.search-rail{
  display:flex;align-items:center;gap:8px;padding:8px 10px;
  background:var(--gray-0);border:1px solid var(--gray-4);border-radius:var(--r-md);
}
.search-rail input{ border:none;background:none;outline:none;flex:1;min-width:0;font-size:var(--fs-base); }
.search-rail svg{ width:14px;height:14px;color:var(--gray-6); }
.domain-select{
  appearance:none;-webkit-appearance:none;
  width:100%;padding:8px 28px 8px 10px;font-size:var(--fs-base);font-family:var(--font-sans);
  color:var(--gray-8);background:var(--gray-0);
  border:1px solid var(--gray-4);border-radius:var(--r-md);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
  transition:border-color .12s var(--ease),box-shadow .12s var(--ease);
}
.domain-select:focus{ outline:none;border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.saved-views{ display:flex;flex-direction:column;gap:2px; }
.saved-view{
  text-align:left;font-size:var(--fs-base);color:var(--gray-7);
  padding:6px 8px;border-radius:var(--r-sm);background:none;border:none;
  transition:background .1s var(--ease),color .1s var(--ease);
}
.saved-view:hover{ background:var(--gray-2);color:var(--gray-9); }

/* Multi-select facet chips */
.facet-head{ display:flex;align-items:center;justify-content:space-between;gap:8px; }
.facet-clear{ font-size:var(--fs-xs);color:var(--accent-600);background:none;border:none;padding:0; }
.facet-clear:hover{ text-decoration:underline; }
.facet-chips{ display:flex;flex-wrap:wrap;gap:6px; }
.facet-chip{
  font-size:var(--ctl-font-dense);color:var(--gray-7);text-transform:capitalize;
  padding:6px 11px;border-radius:var(--r-md);background:var(--gray-1);border:1px solid var(--gray-4);
  transition:all .1s var(--ease);
}
.facet-chip:hover{ border-color:var(--accent-300);color:var(--accent-700); }
.facet-chip.on{ background:var(--accent-600);color:#fff;border-color:var(--accent-600); }

/* Multi-select facet dropdown (matches the nav dropdowns) */
.facet-dd{ position:relative; }
.facet-dd-trigger{ display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  padding:9px 12px;border:1px solid var(--gray-4);border-radius:var(--r-md);background:var(--gray-0);
  font-size:var(--fs-md);color:var(--gray-8);transition:border-color .12s var(--ease),box-shadow .12s var(--ease); }
.facet-dd-trigger:hover{ border-color:var(--accent-300); }
.facet-dd.open .facet-dd-trigger{ border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.facet-dd.has-sel .facet-dd-trigger{ border-color:var(--accent-300);color:var(--accent-700);font-weight:500; }
.facet-dd-sel{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.facet-dd-trigger .caret{ width:14px;height:14px;opacity:.5;flex-shrink:0;transition:transform .15s var(--ease); }
.facet-dd.open .facet-dd-trigger .caret{ transform:rotate(180deg); }
.facet-dd-panel{ position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  padding:6px;max-height:300px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .14s var(--ease),transform .14s var(--ease),visibility .14s; }
.facet-dd.open .facet-dd-panel{ opacity:1;visibility:visible;transform:translateY(0); }
.facet-dd-opt{ display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r-sm);font-size:var(--fs-md);color:var(--gray-8);cursor:pointer; }
.facet-dd-opt:hover{ background:var(--gray-2); }
.facet-dd-opt input{ accent-color:var(--accent-500);width:15px;height:15px;flex-shrink:0; }
.facet-dd-clear{ width:100%;text-align:left;padding:8px 10px;margin-top:4px;border-top:1px solid var(--gray-2);
  background:none;border:none;font-size:var(--fs-base);color:var(--accent-600); }
.facet-dd-clear:hover{ text-decoration:underline; }

.saved-view.active{ background:var(--accent-50);color:var(--accent-700);font-weight:500; }

/* Authoring timeline */
.timeline{ display:block;width:100%;height:auto; }
.graph-canvas .timeline{ height:auto; }
.tl-axis{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-5); }
.tl-lane{ font-size:var(--fs-sm);fill:var(--gray-6);text-transform:capitalize; }

/* Stats strip */
.stats-strip{
  display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-5);
}
.stat-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:var(--r-md);
  background:var(--gray-1);border:1px solid var(--gray-3);
  transition:border-color .12s var(--ease),background .12s var(--ease);
}
.stat-pill:hover{ border-color:var(--accent-300);background:var(--accent-50); }
.stat-pill .sv{ font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:600;color:var(--gray-9); }
.stat-pill .sl{ font-size:var(--fs-sm);color:var(--gray-6); }
.stat-pill .dot{ width:7px;height:7px;border-radius:999px; }
.dot-green{ background:var(--fresh); }
.dot-red{ background:var(--err-fg); }   /* danger exception: P0 / below-bar / dangling-ref / stale-doc dots stay RED (restores #EF4444) per the J2 sign-off */

/* View tabs */
.view-switch{ display:flex;align-items:center;gap:2px;margin-bottom:var(--s-2);border-bottom:1px solid var(--gray-3); }
.tab{
  position:relative;
  padding:9px 14px;font-size:var(--fs-md);font-weight:500;color:var(--gray-6);
  background:none;border:none;
  transition:color .12s var(--ease);
}
.tab:hover{ color:var(--gray-9); }
.tab.active{ color:var(--accent-600); }
.tab.active::after{
  content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:2px;
  background:var(--accent-500);border-radius:2px;
}
.mode-hint{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);margin:var(--s-2) 0 var(--s-5); }

/* Primitive grid */
.prim-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s-4); }
.primitive-card{
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:var(--s-4);cursor:pointer;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.primitive-card:hover{ transform:translateY(-2px);border-color:var(--accent-300);box-shadow:var(--shadow-md); }
.pc-top{ display:flex;align-items:center;gap:8px; }
.pc-name{ font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:600;color:var(--gray-9);word-break:break-word; }
.pc-score{ margin-left:auto;flex-shrink:0; }
.pc-desc{ font-size:var(--fs-lg);color:var(--gray-7);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.pc-meta{ display:flex;align-items:center;gap:var(--s-3);margin-top:auto;padding-top:8px;border-top:1px solid var(--gray-2); }
.pc-meta .m{ font-size:var(--fs-sm);color:var(--gray-6); }
.pc-meta .m b{ font-family:var(--font-mono);color:var(--gray-8);font-weight:600; }
.pc-uses{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }

/* ── F8 · Bulk multi-select ─────────────────────────────────────────────── */
.sel-mode-toggle{
  margin-left:auto;align-self:center;
  padding:6px 12px;font-size:var(--fs-base);font-weight:600;color:var(--gray-7);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);
  transition:all .12s var(--ease);
}
.sel-mode-toggle:hover{ border-color:var(--accent-300);color:var(--accent-600); }
.sel-mode-toggle.on{ background:var(--accent-500);border-color:var(--accent-500);color:#fff; }
.prim-grid.selecting .primitive-card{ cursor:pointer;padding-left:42px;position:relative; }
.prim-grid.selecting .primitive-card:hover{ transform:none;border-color:var(--accent-300); }
.pc-check{
  position:absolute;top:var(--s-4);left:14px;width:18px;height:18px;border-radius:var(--r-sm);
  border:2px solid var(--gray-4);background:var(--gray-1);transition:all .12s var(--ease);
}
.primitive-card.selected{ border-color:var(--accent-500);background:var(--accent-50);box-shadow:0 0 0 1px var(--accent-500) inset; }
.primitive-card.selected .pc-check{ background:var(--accent-500);border-color:var(--accent-500); }
.primitive-card.selected .pc-check::after{
  content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:var(--fs-sm);font-weight:700;line-height:1;
}
.adj-table .sel-col{ width:34px;text-align:center;padding-left:10px; }
.adj-table tr.selected td{ background:var(--accent-50); }
.adj-table input[type=checkbox],.pc-wrap input[type=checkbox]{ accent-color:var(--accent-500);cursor:pointer; }
.sel-bar{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);
  display:none;align-items:center;gap:var(--s-4);z-index:60;
  padding:10px 16px;border-radius:var(--r-pill);
  background:var(--gray-9);color:#fff;box-shadow:var(--shadow-lg);
  transition:transform .2s var(--ease);max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:center;
}
.sel-bar.show{ display:flex;transform:translate(-50%,0); }
.sel-bar-count{ font-size:var(--fs-md);white-space:nowrap; }
.sel-bar-count b{ font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--accent-300); }
.sel-bar-actions{ display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
.sel-act{
  padding:6px 12px;font-size:var(--ctl-font);font-weight:500;color:#fff;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);
  transition:background .12s var(--ease);white-space:nowrap;
}
.sel-act:hover{ background:rgba(255,255,255,.22); }
.sel-act.ghost{ background:none;border-color:transparent;color:var(--gray-4); }
.sel-act.ghost:hover{ color:#fff;background:rgba(255,255,255,.12); }
.sel-bar-sep{ width:1px;height:20px;background:rgba(255,255,255,.18); }

/* ── F13 · Below the Bar (quality board) ────────────────────────────────── */
.bb-note{
  display:flex;gap:10px;align-items:flex-start;
  padding:12px 16px;margin-bottom:var(--s-4);font-size:var(--fs-md);line-height:1.55;color:var(--gray-7);
  background:var(--accent-50);border:1px solid var(--accent-200);border-radius:var(--r-md);
}
.bb-note-ico{ color:var(--accent-600);font-weight:700;flex-shrink:0; }
.bb-note b{ color:var(--gray-9); }
.bb-controls{ display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-4); }
.bb-type-filter{ display:flex;gap:6px;flex-wrap:wrap; }
.bb-type-pill{
  padding:6px 11px;font-size:var(--ctl-font-dense);font-weight:500;color:var(--gray-7);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);transition:all .12s var(--ease);
}
.bb-type-pill:hover{ border-color:var(--accent-300); }
.bb-type-pill.on{ background:var(--accent-600);border-color:var(--accent-600);color:#fff; }
.bb-hu{ display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-base);color:var(--gray-7);cursor:pointer; }
.bb-hu input{ accent-color:var(--accent-500);cursor:pointer; }
.bb-batch{ display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-3); }
.bb-board{ display:flex;flex-direction:column;gap:6px; }
.bb-row{
  display:grid;grid-template-columns:40px 46px 1fr auto auto;align-items:center;gap:var(--s-4);
  padding:10px 14px;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);
  transition:border-color .12s var(--ease);
}
.bb-row:hover{ border-color:var(--accent-300); }
.bb-rank{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.bb-q{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:30px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;
}
.bb-q-crit{ background:#FEE2E2;color:var(--crit-fg); }
.bb-q-warn{ background:#FEF3C7;color:#B45309; }
.bb-q-bord{ background:#FEF9E7;color:#A16207; }
.bb-q-na{ background:var(--gray-2);color:var(--gray-6); }
.bb-main{ min-width:0; }
.bb-row-top{ display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.bb-name{ font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:600; }
.bb-sigs{ display:flex;gap:6px;flex-wrap:wrap;margin-top:5px; }
.bb-sig{ font-size:var(--fs-xs);font-weight:600;color:var(--err-fg);background:var(--err-bg);padding:2px 7px;border-radius:var(--r-pill); }
.bb-sig.muted{ color:var(--gray-6);background:var(--gray-2); }
.bb-sig.good{ color:var(--ok-fg);background:var(--ok-bg); }
.bb-metrics{ display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap; }
.bb-uses{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.bb-gap{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--aging);font-weight:600; }
.bb-acts{ display:flex;gap:6px; }
.bb-act{
  padding:6px 11px;font-size:var(--ctl-font);font-weight:500;color:var(--gray-7);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);transition:all .12s var(--ease);
}
.bb-act:hover{ border-color:var(--accent-400);color:var(--accent-600); }
.bb-act.on{ background:var(--accent-50);border-color:var(--accent-400);color:var(--accent-600); }
@media (max-width:720px){
  .bb-row{ grid-template-columns:34px 42px 1fr;row-gap:8px; }
  .bb-metrics{ grid-column:2/4;flex-direction:row;align-items:center;gap:10px; }
  .bb-acts{ grid-column:1/4; }
}
/* Blast radius (BR1 treatment D) — dependents count + escalation. Bands mirror F1 (12 load-bearing, 25 P0). */
.bb-row.blast-mid{ box-shadow:inset 3px 0 0 var(--warn);row-gap:6px; }
.bb-row.blast-p0{ box-shadow:inset 3px 0 0 var(--crit-fg);row-gap:6px; }
.bb-blast-chip{ font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;padding:2px 7px;border-radius:var(--r-pill);border:none;cursor:pointer; }
.bb-blast-chip.t-low{ color:var(--gray-6);background:var(--gray-2); }
.bb-blast-chip.t-low:hover{ color:var(--gray-9);background:var(--gray-3); }
.bb-blast-banner{ grid-column:1/-1;text-align:left;font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:500;line-height:1.5;padding:7px 10px;border-radius:var(--r-md);border:none;cursor:pointer; }
.bb-blast-banner.t-mid{ color:var(--warn);background:var(--warn-bg); }
.bb-blast-banner.t-p0{ color:var(--crit-fg);background:var(--crit-bg); }
.bb-blast-banner:hover{ filter:brightness(.95); }
/* Below-the-Bar "Summon Kamini" — per-row fix dispatch (replaces the old copy-prompt Fix button) */
.bb-act.bb-summon{ color:var(--accent-700);border-color:var(--accent-200); }
.bb-act.bb-summon:hover{ border-color:var(--accent-400);background:var(--accent-50);color:var(--accent-700); }
.bb-act.bb-summon.on{ background:var(--accent-50);border-color:var(--accent-400);color:var(--accent-700); }
.bb-summon-lbl{ display:inline-block;min-width:92px;text-align:left; }   /* stable width so the Summon/Hide toggle doesn't reflow the row's 1fr column */
.bb-row > .act-fixpanel{ grid-column:1/-1;margin-top:2px;border-left-width:1px; }   /* thin the panel accent on the board so it doesn't double the blast row's inset bar */

/* ── F6 · Recipe Builder ────────────────────────────────────────────────── */
.recipe-name{
  width:100%;padding:11px 14px;margin-bottom:var(--s-3);font-size:var(--fs-lg);font-weight:600;color:var(--gray-9);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);
}
.recipe-name:focus{ outline:none;border-color:var(--accent-400);box-shadow:var(--focus-ring); }
/* Composite Creator — mode toggle reuses .view-switch/.tab; these style the metadata + save status. */
.recipe-desc{
  width:100%;padding:9px 12px;margin-bottom:var(--s-3);font-size:var(--fs-sm);color:var(--gray-9);font-family:inherit;
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);resize:vertical;
}
.recipe-desc:focus{ outline:none;border-color:var(--accent-400);box-shadow:var(--focus-ring); }
.recipe-meta{ margin-bottom:var(--s-4); }
.recipe-meta-row{ display:flex;gap:var(--s-4);flex-wrap:wrap; }
.recipe-meta-lbl{ display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);font-weight:600;color:var(--gray-6);text-transform:uppercase;letter-spacing:.04em; }
.recipe-meta-sel{
  padding:7px 10px;font-size:var(--fs-sm);font-weight:500;color:var(--gray-9);text-transform:none;letter-spacing:0;
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-sm);min-width:190px;
}
.recipe-meta-sel:focus{ outline:none;border-color:var(--accent-400);box-shadow:var(--focus-ring); }
.recipe-save-status{ margin-top:var(--s-3);padding:9px 12px;border-radius:var(--r-md);font-size:var(--fs-sm);border:1px solid var(--gray-4);background:var(--gray-1);color:var(--gray-8); }
.recipe-save-status.ok{ border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok-fg); }
.recipe-save-status.err{ border-color:var(--err-border);background:var(--err-bg);color:var(--err-600); }
.recipe-save-status.busy{ border-color:var(--accent-400);background:var(--gray-1);color:var(--accent-600); }
.recipe-pull{ display:flex;gap:var(--s-3);flex-wrap:wrap;margin:var(--s-3) 0 var(--s-4); }
.recipe-board{ display:flex;flex-direction:column;gap:6px;margin-top:var(--s-2); }
.recipe-phase-head{
  display:flex;align-items:center;gap:8px;margin-top:var(--s-3);
  font-family:var(--font-display);font-size:var(--fs-sm);font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-600);
}
.recipe-phase-n{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);background:var(--gray-2);padding:1px 7px;border-radius:var(--r-pill); }
.recipe-step{
  display:flex;align-items:center;gap:10px;padding:8px 12px;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);
}
.recipe-step-reorder{ display:flex;flex-direction:column;gap:1px; }
.rs-arrow{ width:20px;height:15px;font-size:var(--fs-2xs);line-height:1;color:var(--gray-6);background:var(--gray-2);border-radius:3px; }
.rs-arrow:hover:not(:disabled){ color:var(--accent-600);background:var(--accent-50); }
.rs-arrow:disabled{ opacity:.3;cursor:default; }
.recipe-step-name{ font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600; }
.recipe-step-dom{ font-size:var(--fs-sm);color:var(--gray-6);margin-right:auto; }
.recipe-phase-sel{
  padding:5px 8px;font-size:var(--fs-base);color:var(--gray-7);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-sm);cursor:pointer;
}
.recipe-step-rm{ width:24px;height:24px;font-size:var(--fs-lg);color:var(--gray-6);border-radius:var(--r-sm); }
.recipe-step-rm:hover{ color:var(--err-fg);background:var(--err-bg); }   /* J2: keep RED on the destructive delete-step affordance (danger ≠ freshness) */

/* ── F17 · Guided onboarding tour ───────────────────────────────────────── */
.tour-scrim{ position:fixed;inset:0;z-index:200;display:none; }
.tour-scrim.open{ display:block; }
.tour-spot{
  position:fixed;display:none;border-radius:var(--r-md);
  box-shadow:0 0 0 9999px rgba(15,23,42,.58), 0 0 0 2px var(--accent-400);
  pointer-events:none;transition:all .2s var(--ease);z-index:201;
}
.tour-card{
  position:fixed;z-index:202;width:340px;max-width:calc(100vw - 24px);
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);padding:var(--s-5);
}
.tour-card.centered{ top:50%;left:50%;transform:translate(-50%,-50%); }
.tour-card:not(.centered){ transition:top .2s var(--ease),left .2s var(--ease); }
.tour-progress{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-600);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px; }
.tour-title{ font-size:var(--fs-xl);font-weight:600;color:var(--gray-9);margin-bottom:8px; }
.tour-body{ font-size:var(--fs-md);line-height:1.6;color:var(--gray-7);margin-bottom:var(--s-4); }
.tour-dots{ display:flex;gap:5px;margin-bottom:var(--s-4); }
.tour-dot{ width:6px;height:6px;border-radius:999px;background:var(--gray-4); }
.tour-dot.on{ background:var(--accent-500);width:18px; }
.tour-actions{ display:flex;align-items:center;justify-content:space-between;gap:var(--s-3); }
.tour-skip{ font-size:var(--fs-base);color:var(--gray-6); }
.tour-skip:hover{ color:var(--gray-9); }
.tour-nav{ display:flex;gap:8px; }
@media (prefers-reduced-motion: reduce){ .tour-spot,.tour-card:not(.centered){ transition:none; } }

/* Library search — "Include text body" opt-in (matches title+desc by default) */
.search-body-toggle{ display:flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--fs-xs);color:var(--gray-6);cursor:pointer; }
.search-body-toggle input{ cursor:pointer; }

/* Chips / badges */
.chip{
  display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--r-sm);
  font-size:var(--label-font);font-weight:500;line-height:1;white-space:nowrap;
}
/* Unified blue type chip (shipped convention) */
.chip-type{ color:var(--accent-700);background:rgba(0,119,255,.12); }
.chip-domain{ color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-4); }
/* Score badges (blue-monochrome by intensity) */
.score{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:22px;padding:0 8px;border-radius:var(--r-sm);
  font-family:var(--font-mono);font-size:var(--label-font);font-weight:600;
}
.score-A{ background:var(--accent-500);color:#fff; }
.score-B{ background:var(--accent-100);color:var(--accent-700); }
.score-C{ background:var(--gray-2);color:var(--gray-7); }
.score-na{ background:var(--gray-2);color:var(--gray-6);font-weight:500; }

/* "View coming" empty state */
.coming{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);
  min-height:340px;padding:var(--s-6);text-align:center;
  background:var(--gray-1);border:1px dashed var(--gray-4);border-radius:var(--r-lg);
}
.coming-ico{ font-size:var(--fs-3xl);opacity:.6; }
.coming h3{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-8); }
.coming p{ font-size:var(--fs-base);color:var(--gray-6);max-width:42ch; }

/* ============================================================================
 * GOVERNANCE
 * ==========================================================================*/
.gov-group{ display:flex;flex-direction:column;gap:2px;margin-bottom:var(--s-4); }
.gov-group-label{ font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-6);padding:4px 8px; }
.gov-tab{
  display:flex;align-items:center;gap:8px;text-align:left;
  font-size:var(--ctl-font);color:var(--gray-7);padding:7px 8px;border-radius:var(--r-sm);
  background:none;border:none;transition:background .1s var(--ease),color .1s var(--ease);
}
.gov-tab:hover{ background:var(--gray-2);color:var(--gray-9); }
.gov-tab.active{ background:var(--accent-50);color:var(--accent-700);font-weight:500; }
.gov-tab .gt-count{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }

/* Doc list grouped by category */
.gov-cat{ margin-bottom:var(--s-6); }
.gov-cat-head{ display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:var(--s-3);padding-bottom:8px;border-bottom:1px solid var(--gray-3); }
.gov-cat-title{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-9); }
.gov-cat-count{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.gov-doc-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-3); }
.gov-doc{
  display:flex;align-items:center;gap:var(--s-3);text-align:left;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:12px 14px;transition:border-color .12s var(--ease),box-shadow .12s var(--ease),transform .12s var(--ease);
}
.gov-doc:hover{ border-color:var(--accent-300);box-shadow:var(--shadow-sm);transform:translateY(-1px); }
.gov-doc-ico{
  width:30px;height:30px;border-radius:var(--r-sm);flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-md);
  background:var(--gray-2);
}
.gov-doc-ico.md{ background:var(--accent-50);color:var(--accent-600); }
.gov-doc-ico.sh{ background:#EAFBF3;color:#047857; }
/* Stack title / filename / snippet (were inline → ran together and overflowed the card). */
.gov-doc-body{ min-width:0;display:flex;flex-direction:column;gap:2px; }
.gov-doc-title{ display:block;font-size:var(--fs-base);font-weight:500;color:var(--gray-9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%; }
.gov-doc-meta{ display:block;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-top:2px;overflow-wrap:anywhere; }
/* ── Canon-tier wayfinding (decision 2026-06-06): a touch of tier color — a 3px
 *    left edge per card + a colored dot in the group header. Card surface/ink/
 *    border are otherwise unchanged (Restraint over decoration). Palette mirrors
 *    the governance-canon-builder decision page so the Vault + artifact match. ── */
.gov-doc.tier-core{ border-left:3px solid var(--tier-core); }
.gov-doc.tier-important{ border-left:3px solid var(--tier-imp); }
.gov-doc.tier-supporting{ border-left:3px solid var(--tier-sup); }
.gov-doc.tier-moveout{ border-left:3px solid var(--tier-move); }
/* keep the tier edge colored on hover (base .gov-doc:hover recolors all four sides) */
.gov-doc.tier-core:hover{ border-left-color:var(--tier-core); }
/* ── Obsidian Vault knowledge-layer docs (ADDITIVE, separate source). A darker-gray
 *    surface + an Obsidian-purple left edge & square badge so they read distinctly
 *    from the OCC-sourced cards (which are visually untouched). ── */
.gov-doc.obsidian{ background:var(--gray-2);border-color:var(--gray-3);border-left:3px solid #6d4aff; }
.gov-doc.obsidian:hover{ border-left-color:#6d4aff; }
.gov-doc-ico.obs{ background:#ECE9FF;color:#5B3BD6; }
.gov-doc.obsidian .gov-doc-title{ display:flex;align-items:center;gap:6px;white-space:normal;overflow:visible; }
.gov-obsidian-badge{
  flex-shrink:0;display:inline-flex;align-items:center;padding:1px 5px;
  font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.02em;
  color:#5B3BD6;background:#ECE9FF;border:1px solid #D7CEFF;border-radius:var(--r-sm);   /* square chip, not a pill */
}
.gov-tier-dot.obsidian{ background:#6d4aff; }
.gov-doc.tier-important:hover{ border-left-color:var(--tier-imp); }
.gov-doc.tier-supporting:hover{ border-left-color:var(--tier-sup); }
.gov-doc.tier-moveout:hover{ border-left-color:var(--tier-move); }
.gov-tier-dot{ display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle; }
.gov-tier-dot.core{ background:var(--tier-core); }
.gov-tier-dot.important{ background:var(--tier-imp); }
.gov-tier-dot.supporting{ background:var(--tier-sup); }
.gov-tier-dot.moveout{ background:var(--tier-move); }
.gov-cat-blurb{ font-size:var(--fs-sm);color:var(--gray-6);font-weight:400; }
.gov-doc-ico.link{ background:#E7F6F2;color:#0b6e5d; }   /* external / linked shares doc */
.gov-doc-removed{ opacity:.62;cursor:default; }   /* deleted on disk; frozen snapshot, non-clickable */
.gov-doc-removed .gov-doc-title{ text-decoration:line-through; }
.gov-doc-ico.rm{ background:var(--warn-bg);color:var(--warn); }
.gov-ref-divider{ display:flex;align-items:baseline;gap:12px;margin:var(--s-6) 0 var(--s-4);padding-top:var(--s-4);border-top:1px dashed var(--gray-4); }
.gov-ref-divider > span:first-child{ font-size:var(--fs-md);font-weight:600;color:var(--gray-7); }
.gov-ref-note{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }

/* Interconnectivity view */
.gov-section-head{ display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-2); }
.gov-section-title{ font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em; }
/* D5 — one caption role: 13px, gray-6, line-height 1.5, tokenized margin (works above OR below content). */
.gov-section-desc{ font-size:var(--fs-base);color:var(--gray-6);margin:var(--s-3) 0;line-height:1.5;max-width:70ch; }
/* D6 — Gov Health: one tokenized vertical rhythm for its stacked blocks (no ad-hoc per-block margins). */
.gov-stack{ display:flex;flex-direction:column;gap:var(--s-5); }
.gov-stack > *{ margin-top:0;margin-bottom:0; }
.graph-toggle{ display:flex;gap:2px;background:var(--gray-2);padding:3px;border-radius:var(--r-md); }
.graph-toggle button{
  padding:6px 12px;font-size:var(--ctl-font);font-weight:500;color:var(--gray-6);
  background:none;border:none;border-radius:var(--r-md);transition:all .12s var(--ease);
}
.graph-toggle button.active{ background:var(--gray-1);color:var(--gray-9);box-shadow:var(--shadow-sm); }

.graph-canvas{
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);
  overflow:hidden;
}
.graph-canvas svg{ display:block;width:100%;height:540px; }
.gnode circle{ cursor:pointer;transition:stroke .12s var(--ease); }
.gnode text{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-7);pointer-events:none;
  paint-order:stroke;stroke:var(--gray-0);stroke-width:3px;stroke-linejoin:round; }   /* halo so labels read over edges */
.gedge{ stroke:var(--gray-4);fill:none; }
.gedge.citation{ stroke:var(--accent-300); }
.gedge.chains{ stroke:#8B5CF6; stroke-dasharray:4 3; }
.gedge.reference{ stroke:var(--gray-4); }

/* Adjacency view */
.adj-table{ width:100%;border-collapse:collapse;font-size:var(--fs-base); }
.adj-table th{ text-align:left;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);padding:8px 12px;border-bottom:1px solid var(--gray-3); }
.adj-table td{ padding:10px 12px;border-bottom:1px solid var(--gray-2);vertical-align:top; }
.adj-table tr:hover td{ background:var(--gray-0); }
.adj-from{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9); }
.adj-targets{ display:flex;flex-wrap:wrap;gap:6px; }
.adj-tgt{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-7);
  padding:3px 8px;border-radius:var(--r-pill);background:var(--gray-2);border:1px solid var(--gray-3);
  transition:all .1s var(--ease);
}
.adj-tgt:hover{ background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-700); }
.edge-kind{ width:7px;height:7px;border-radius:999px;flex-shrink:0; }
.ek-citation{ background:var(--accent-400); }
.ek-chains{ background:#8B5CF6; }
.ek-reference{ background:var(--gray-5); }
.graph-legend{ display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--gray-6); }
.graph-legend span{ display:inline-flex;align-items:center;gap:6px; }

/* ============================================================================
 * DRAWER (doc / template viewer)
 * ==========================================================================*/
.scrim{
  position:fixed;inset:0;background:rgba(15,23,42,.45);
  opacity:0;visibility:hidden;transition:opacity .2s var(--ease),visibility .2s;z-index:70;
}
.scrim.open{ opacity:1;visibility:visible; }

/* ⌘K command palette */
.cmdk-scrim{
  position:fixed;inset:0;background:rgba(15,23,42,.40);z-index:90;
  display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;
  opacity:0;visibility:hidden;transition:opacity .14s var(--ease),visibility .14s;
}
.cmdk-scrim.open{ opacity:1;visibility:visible; }
.cmdk{
  width:min(640px,94vw);max-height:70vh;display:flex;flex-direction:column;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  transform:translateY(-8px);transition:transform .14s var(--ease);overflow:hidden;
}
.cmdk-scrim.open .cmdk{ transform:translateY(0); }
.cmdk-input-row{ display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--gray-2); }
.cmdk-ico{ font-size:var(--fs-lg);color:var(--gray-6); }
.cmdk-input{ flex:1;border:none;outline:none;background:transparent;font-size:var(--fs-lg);color:var(--gray-9);font-family:inherit; }
.cmdk-input::placeholder{ color:var(--gray-6); }
.cmdk-hint{ padding:7px 18px;font-size:var(--fs-xs);color:var(--gray-6);background:var(--gray-1);border-bottom:1px solid var(--gray-2); }
.cmdk-results{ overflow-y:auto;padding:6px; }
.cmdk-row{
  display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;width:100%;text-align:left;
  padding:9px 12px;border:none;background:transparent;border-radius:var(--r-sm);cursor:pointer;
}
.cmdk-row.active{ background:var(--accent-50); }
.cmdk-row-ico{ font-size:var(--fs-lg);text-align:center; }
.cmdk-row-label{ font-size:var(--fs-md);font-weight:500;color:var(--gray-9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.cmdk-row-sub{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);white-space:nowrap; }
.cmdk-empty{ padding:24px 18px;text-align:center;color:var(--gray-6);font-size:var(--fs-base); }
@media (max-width:600px){ .cmdk-row-sub{ display:none; } }

.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(640px,92vw);
  background:var(--gray-1);border-left:1px solid var(--gray-3);box-shadow:var(--shadow-lg);
  transform:translateX(100%);transition:transform .25s var(--ease);
  z-index:71;display:flex;flex-direction:column;
}
.drawer.open{ transform:translateX(0); }
.drawer-head{
  display:flex;align-items:flex-start;gap:var(--s-3);
  padding:var(--s-5);border-bottom:1px solid var(--gray-3);flex-shrink:0;
}
.drawer-eyebrow{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-600); }
.drawer-title{ font-size:var(--fs-xl);font-weight:600;margin-top:4px;letter-spacing:-.01em;word-break:break-word; }
.drawer-meta{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-top:6px; }
.drawer-close{
  margin-left:auto;width:30px;height:30px;border-radius:var(--r-sm);flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:none;color:var(--gray-6);font-size:var(--fs-xl);
  transition:background .1s var(--ease);
}
.drawer-close:hover{ background:var(--gray-2);color:var(--gray-9); }
.drawer-body{ padding:var(--s-5);overflow-y:auto;flex:1; }

/* ── Centered modal — expanded Home tiles (the page behind holds still) ──── */
.cmodal-scrim{
  position:fixed;inset:0;z-index:120;background:rgba(15,23,42,.5);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  display:none;align-items:center;justify-content:center;padding:24px;
}
.cmodal-scrim.open{ display:flex; }
.cmodal{
  width:100%;max-width:760px;max-height:calc(100vh - 48px);
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--gray-1);border:1px solid var(--gray-3);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  animation:cmodal-in .18s var(--ease);
}
@keyframes cmodal-in{ from{ opacity:0;transform:translateY(8px) scale(.99); } to{ opacity:1;transform:none; } }
.cmodal-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--gray-3);flex-shrink:0;
}
.cmodal-title{ font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;color:var(--gray-9); }
.cmodal-close{
  width:34px;height:34px;border-radius:var(--r-md);flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;color:var(--gray-6);font-size:var(--fs-2xl);line-height:1;
  transition:background .12s var(--ease),color .12s var(--ease);
}
.cmodal-close:hover{ background:var(--gray-2);color:var(--gray-9); }
.cmodal-body{ padding:var(--s-6);overflow-y:auto; }

.embed-note{
  display:flex;align-items:center;gap:8px;
  font-size:var(--fs-sm);color:var(--accent-700);background:var(--accent-50);
  border:1px solid var(--accent-100);border-radius:var(--r-md);
  padding:8px 12px;margin-bottom:var(--s-4);
}

/* Rendered markdown */
.md-body{ font-size:var(--fs-lg);line-height:1.7;color:var(--gray-8); }
.md-body h1{ font-size:var(--fs-2xl);font-weight:600;color:var(--gray-9);margin:var(--s-5) 0 var(--s-3);letter-spacing:-.01em; }
.md-body h2{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-9);margin:var(--s-5) 0 var(--s-2);padding-bottom:6px;border-bottom:1px solid var(--gray-2); }
.md-body h3{ font-size:var(--fs-md);font-weight:600;color:var(--gray-9);margin:var(--s-4) 0 var(--s-1); }
.md-body p{ margin:var(--s-3) 0; }
.md-body ul,.md-body ol{ margin:var(--s-3) 0;padding-left:22px;list-style:revert; }
.md-body li{ margin:4px 0; }
.md-body hr{ border:none;border-top:1px solid var(--gray-3);margin:var(--s-5) 0; }
.md-body code{ font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--gray-2);padding:1px 6px;border-radius:var(--r-sm);color:var(--accent-700); }
.md-body strong{ color:var(--gray-9);font-weight:600; }
.md-body em{ color:var(--gray-6); }
.md-body table{ width:100%;border-collapse:collapse;margin:var(--s-4) 0;font-size:var(--fs-base); }
.md-body th{ text-align:left;background:var(--gray-2);padding:7px 10px;border:1px solid var(--gray-3);font-weight:600; }
.md-body td{ padding:7px 10px;border:1px solid var(--gray-3); }
.md-body .md-comment{ display:block;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);background:var(--gray-0);border-left:2px solid var(--gray-4);padding:8px 12px;margin:var(--s-3) 0;white-space:pre-wrap; }

/* ============================================================================
 * INSPECTOR (rich per-entity drawer body)
 * ==========================================================================*/
.inspector{ display:flex;flex-direction:column; }
.insp-lede{ font-size:var(--fs-lg);line-height:1.6;color:var(--gray-7); }
.insp-facts{ display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:var(--s-4); }
.insp-uses{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.insp-relsum{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;
  font-size:var(--fs-base);color:var(--gray-6);
}
.rel-stat b{ font-family:var(--font-mono);font-weight:600;color:var(--gray-9); }
.rel-sep{ color:var(--gray-4); }
.insp-actions{ display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s-4);padding-bottom:var(--s-5);border-bottom:1px solid var(--gray-2); }

.insp-section{ padding:var(--s-5) 0;border-bottom:1px solid var(--gray-2); }
.insp-section:last-child{ border-bottom:none;padding-bottom:0; }
.insp-section-title{ font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-700); }
/* D1 — one section-head row (title + ⓘ) used by inspSection; content follows directly below. */
.sec-head{ display:flex;align-items:center;gap:6px;margin-bottom:var(--s-3); }
.sec-head h3{ margin:0; }
.insp-section-desc{ font-size:var(--fs-base);color:var(--gray-6);margin:var(--s-3) 0;line-height:1.5; }
.insp-section .md-body{ margin-top:8px; }
.insp-fallback{ font-size:var(--fs-md);line-height:1.6;color:var(--gray-7);margin-top:8px; }
.insp-fallback.muted{ font-size:var(--fs-base);color:var(--gray-6);margin-top:6px; }
.rel-empty{ font-size:var(--fs-base);color:var(--gray-6);font-style:italic; }

/* Entity chips — clickable cross-links to other primitives */
.ent-row{ display:flex;flex-wrap:wrap;gap:6px; }
.ent-chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-mono);font-size:var(--ctl-font);color:var(--gray-7);
  padding:6px 10px;border-radius:var(--r-pill);background:var(--gray-2);border:1px solid var(--gray-3);
  transition:all .1s var(--ease);
}
.ent-chip:hover{ background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-700); }
.ent-chip .ent-dot{ width:7px;height:7px;border-radius:999px;flex-shrink:0; }
.ent-chip.dead{ color:var(--gray-6);background:var(--gray-0);border-style:dashed;cursor:default; }
.ent-chip.dead:hover{ background:var(--gray-0);border-color:var(--gray-3);color:var(--gray-6); }

/* Project chips */
.proj-chip{
  display:inline-flex;align-items:center;gap:7px;
  font-size:var(--fs-sm);font-weight:500;color:var(--gray-7);
  padding:5px 11px;border-radius:var(--r-sm);background:var(--gray-1);border:1px solid var(--gray-4);
  transition:all .1s var(--ease);
}
.proj-chip:hover{ background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-700); }
.proj-chip .proj-ico{ font-size:var(--fs-sm);line-height:1; }

/* Version history */
.ver-list{ display:flex;flex-direction:column;gap:2px;margin-top:8px; }
.ver-row{ display:flex;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-base); }
.ver-row:first-child{ border-top:none; }
.ver-tag{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--accent-700);width:64px;flex-shrink:0; }
.ver-date{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);width:88px;flex-shrink:0; }
.ver-note{ color:var(--gray-7);flex:1; }

/* Inline name link (drift / orphan rows) */
.lnk{ background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left; }
.lnk:hover{ color:var(--accent-600);text-decoration:underline; }

/* ============================================================================
 * FULL-PAGE PRIMITIVE DETAIL
 * ==========================================================================*/
.detail-top{ display:flex;align-items:center;gap:8px;padding:var(--s-2) 0 var(--s-4);font-size:var(--fs-base); }
.crumb-back{ color:var(--accent-600);background:none;border:none;padding:0;font-size:var(--fs-base);font-weight:500; }
.crumb-back:hover{ text-decoration:underline; }
.crumb-sep{ color:var(--gray-4); }
.crumb-cur{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }

.detail-head{ display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-6);
  padding-bottom:var(--s-5);border-bottom:1px solid var(--gray-3); }
.detail-head-l{ min-width:0; }
.detail-title{ font-family:var(--font-mono);font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;color:var(--gray-9);word-break:break-word; }
.detail-sub{ font-size:var(--fs-lg);color:var(--gray-6);margin-top:8px;max-width:74ch;line-height:1.55; }
.detail-meta{ display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px; }
.detail-uses{ font-family:var(--font-mono);font-size:var(--fs-base);color:var(--gray-6); }
.detail-actions{ display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0; }
.stars{ display:inline-flex;align-items:center;gap:6px;color:var(--aging);font-size:var(--fs-base);letter-spacing:1px; }
.stars-num{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);letter-spacing:0; }

/* Tabs + mode toggle */
.detail-controls{ display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  margin:var(--s-5) 0 var(--s-5);border-bottom:1px solid var(--gray-3);flex-wrap:wrap; }
.detail-tabs{ display:flex;gap:2px;flex-wrap:wrap; }
.dtab{ position:relative;padding:6px 14px;font-size:var(--ctl-font);font-weight:500;color:var(--gray-6);background:none;border:none;transition:color .12s var(--ease);scroll-margin-top:calc(var(--brand-bar-h) + var(--nav-h) + 12px); }
.dtab:hover{ color:var(--gray-9); }
.dtab.on{ color:var(--accent-600); }
.dtab.on::after{ content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--accent-500);border-radius:2px; }
.detail-mode{ display:flex;gap:2px;background:var(--gray-2);padding:3px;border-radius:var(--r-md);margin-bottom:6px; }
.mode-btn{ padding:6px 12px;font-size:var(--ctl-font);font-weight:500;color:var(--gray-6);background:none;border:none;border-radius:var(--r-md);transition:all .12s var(--ease); }
.mode-btn.on{ background:var(--gray-1);color:var(--gray-9);box-shadow:var(--shadow-sm); }

.detail-body{ padding-bottom:60px; }
.detail-section{ padding:var(--s-6) 0;border-bottom:1px solid var(--gray-2); }
.detail-section:last-child{ border-bottom:none; }
.detail-section-title{ font-size:var(--fs-base);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-700);margin-bottom:var(--s-4); }

/* Two-column pane grid */
.ov-grid{ display:grid;grid-template-columns:1.6fr 1fr;gap:var(--s-6);align-items:start; }
.ov-col{ display:flex;flex-direction:column;gap:var(--s-5);min-width:0; }
.ov-block{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-sm); }
.pane-subhead{ font-size:var(--fs-base);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:var(--s-3); }
.pane-note{ font-size:var(--fs-base);color:var(--gray-6);margin-top:var(--s-3);line-height:1.5; }
.ov-about{ font-size:var(--fs-lg);line-height:1.65;color:var(--gray-7); }
.ov-rel{ display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--fs-base);color:var(--gray-6); }

/* Trigger */
.trig-wrap{ display:flex;flex-direction:column;gap:10px; }
.trig-row{ display:flex;gap:10px;align-items:flex-start; }
.trig-k{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);width:64px;flex-shrink:0;padding-top:4px; }
.trig-chips{ display:flex;flex-wrap:wrap;gap:6px; }
.trig-slash{ font-family:var(--font-mono);font-size:var(--fs-base);color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-sm);padding:4px 9px; }
.trig-kw{ font-size:var(--label-font);color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-pill);padding:3px 9px; }
.trig-none{ font-size:var(--fs-base);color:var(--gray-6);font-style:italic;line-height:1.5; }

/* Performance / score */
.perf-pane{ display:flex;flex-direction:column;gap:var(--s-4);align-items:center; }
.score-hero{ display:flex;align-items:center;gap:14px;align-self:stretch; }
.score-big{ font-family:var(--font-display);font-size:var(--fs-display);font-weight:900;line-height:1;color:var(--accent-600);letter-spacing:-.02em; }
.score-cap{ font-size:var(--fs-base);font-weight:600;color:var(--gray-8); }
.score-sub{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-top:3px; }
.score-na-card{ align-self:stretch;background:var(--gray-0);border:1px dashed var(--gray-4);border-radius:var(--r-md);padding:var(--s-4); }
.score-na-head{ font-size:var(--fs-base);font-weight:600;color:var(--gray-7); }
.score-na-why{ font-size:var(--fs-base);color:var(--gray-6);margin-top:6px;line-height:1.55; }
.score-bars{ align-self:stretch;display:flex;flex-direction:column;gap:9px; }
.sb-row{ display:flex;align-items:center;gap:10px; }
.sb-label{ font-size:var(--fs-sm);color:var(--gray-7);width:64px;flex-shrink:0; }
.sb-val{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-7);width:48px;text-align:right;flex-shrink:0; }
.curated-badge{ align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--ok-fg);background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--r-pill);padding:4px 12px; }
.curated-badge.sm{ font-size:var(--fs-xs);padding:3px 10px; }

/* Radar */
.radar{ width:100%;max-width:300px;height:auto;display:block; }
.radar-ring{ fill:none;stroke:var(--gray-3);stroke-width:1; }
.radar-spoke{ stroke:var(--gray-3);stroke-width:1; }
.radar-label{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-6); }
.radar-area{ fill:rgba(0,119,255,.16);stroke:var(--accent-500);stroke-width:1.6; }
.radar-dot{ fill:var(--accent-600); }

/* Quality gates */
.qg-summary{ font-size:var(--fs-base);color:var(--gray-6);margin-bottom:var(--s-3); }
.qg-summary b{ font-family:var(--font-mono);color:var(--gray-9); }
.qg-grid{ display:grid;grid-template-columns:1fr 1fr;gap:7px 16px; }
.qg-item{ display:flex;align-items:center;gap:8px;font-size:var(--fs-md); }
.qg-ico{ width:16px;height:16px;border-radius:999px;display:inline-grid;place-items:center;font-size:var(--fs-2xs);flex-shrink:0; }
.qg-item.ok .qg-ico{ background:var(--ok-bg);color:var(--ok-fg); }
.qg-item.no .qg-ico{ background:var(--err-bg);color:var(--err-fg); }
.qg-item.ok .qg-label{ color:var(--gray-7); }
.qg-item.no .qg-label{ color:var(--gray-8);font-weight:500; }

/* Consolidated quality scorecard */
.qcards{ display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px; }
.qmetric{ display:flex;align-items:flex-start;gap:12px;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:14px; }
.qmetric-val{ font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:600;color:var(--accent-600);line-height:1;flex-shrink:0;min-width:48px; }
.qmetric-label{ font-size:var(--fs-base);font-weight:600;color:var(--gray-9); }
.qmetric-what{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.45;margin-top:3px; }

/* 7-axis breakdown: radar + labeled rows */
.axis-grid{ display:grid;grid-template-columns:300px 1fr;gap:var(--s-6);align-items:center; }
.axis-radar{ display:flex;justify-content:center; }
.axis-rows{ display:flex;flex-direction:column;gap:10px; }
.axis-row{ display:grid;grid-template-columns:84px 1fr 52px;grid-template-areas:'name track val' 'def def def';gap:4px 10px;align-items:center; }
.axis-name{ grid-area:name;font-size:var(--fs-base);font-weight:500;color:var(--gray-8);text-transform:capitalize; }
.axis-row .ss-track{ grid-area:track; }
.axis-val{ grid-area:val;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);text-align:right; }
.axis-def{ grid-area:def;font-size:var(--fs-sm);color:var(--gray-6);line-height:1.4; }
@media (max-width:760px){ .axis-grid{ grid-template-columns:1fr; } }

/* 10-dimension rubric list */
.dim-list{ display:flex;flex-direction:column;gap:1px; }
.dim-row{ display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px solid var(--gray-2); }
.dim-row:first-child{ border-top:none; }
.dim-status{ width:22px;height:22px;border-radius:999px;display:inline-grid;place-items:center;font-size:var(--fs-sm);flex-shrink:0; }
.dim-status.ok{ background:var(--ok-bg);color:var(--ok-fg); }
.dim-status.partial{ background:var(--accent-50);color:var(--accent-600); }
.dim-status.no{ background:var(--err-bg);color:var(--err-fg); }
.dim-status.na{ background:var(--gray-2);color:var(--gray-6); }
.dim-status.prov{ background:#FFF7ED;color:#B45309;border:1px dashed #FDBA74; }
.dim-subhead{ font-size:var(--fs-sm);font-weight:600;color:var(--gray-7);letter-spacing:.01em;margin:6px 0; }
.dim-pts{ font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;color:var(--gray-6);margin-left:8px; }
.dim-id{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-6);width:30px;flex-shrink:0;padding-top:2px; }
.dim-body{ display:flex;flex-direction:column;gap:2px; }
.dim-name{ font-size:var(--fs-md);font-weight:500;color:var(--gray-9); }
.dim-def{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.45; }
.rubric-foot{ display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:var(--s-4); }
.rubric-link{ display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-base);font-weight:500;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-200);border-radius:var(--r-md);padding:9px 14px;transition:all .12s var(--ease); }
.rubric-link:hover{ background:var(--accent-100);border-color:var(--accent-300); }

/* Trigger explanation */
.trig-note{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.5;margin-bottom:6px; }

/* Documentation */
.doc-switch{ display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s-4); }
.doc-tab{ display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--fs-base);color:var(--gray-7);
  padding:6px 12px;border-radius:var(--r-md);background:var(--gray-1);border:1px solid var(--gray-4);transition:all .12s var(--ease); }
.doc-tab:hover{ border-color:var(--accent-300);color:var(--accent-700); }
.doc-tab.on{ background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-700);font-weight:500; }
.doc-tab .doc-ico{ font-size:var(--fs-base); }
.doc-chars{ color:var(--gray-6);font-size:var(--fs-2xs); }
.doc-body{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);
  padding:var(--s-5) var(--s-6);max-height:72vh;overflow-y:auto; }
.doc-body .md-body{ max-width:74ch; }                 /* readable measure for prose */
.doc-body .md-body table,.doc-body .md-body pre,.doc-body .md-pre{ max-width:100%; }
/* Fenced code blocks + verbatim shell/code files */
.md-body pre,.md-pre{ font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.55;color:var(--gray-8);
  background:var(--gray-0);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:12px 14px;margin:var(--s-3) 0;overflow-x:auto;white-space:pre; }
.md-body pre code,.md-pre code{ background:none;padding:0;color:inherit;font-size:inherit; }
.md-pre.code-file{ max-width:100%;max-height:72vh;overflow:auto; }

/* Bundle */
.bundle-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:8px; }
.bundle-item{ display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1); }
.bundle-item.miss{ border-style:dashed;opacity:.7; }
.bundle-ico{ width:20px;height:20px;border-radius:var(--r-sm);display:inline-grid;place-items:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0; }
.bundle-item.have .bundle-ico{ background:var(--ok-bg);color:var(--ok-fg); }
.bundle-item.miss .bundle-ico{ background:var(--gray-2);color:var(--gray-6); }
.bundle-name{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9); }
.bundle-sub{ font-size:var(--fs-xs);color:var(--gray-6);margin-left:auto; }
.bundle-foot{ display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:var(--s-4);flex-wrap:wrap; }
.bundle-warn{ font-size:var(--fs-sm);color:var(--aging); }
.mini-btn{ font-family:var(--font-mono);font-size:var(--ctl-font-dense);color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:5px 11px;transition:all .12s var(--ease); }
.mini-btn:hover{ background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-700); }
.raw-json{ font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.5;color:var(--gray-7);background:var(--gray-0);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:var(--s-4);white-space:pre-wrap;word-break:break-word;overflow:auto; }

/* Usage */
.usage-hero{ display:flex;align-items:flex-end;gap:var(--s-6);flex-wrap:wrap; }
/* Data-dense numbers use the mono token (clean tabular zeros), in brand blue */
.usage-hero .kpi-num{ font-family:var(--font-mono);font-weight:600;font-size:var(--fs-4xl);color:var(--accent-600); }
.usage-hero .kpi-cap{ font-size:var(--fs-base); }
.score-big{ font-family:var(--font-mono); }
.usage-empty{ display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);padding:var(--s-5) 0; }
.invoke-note{ display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-md);line-height:1.55;color:var(--gray-7);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-md);padding:11px 14px;margin:var(--s-4) 0; }
.invoke-note .invoke-ico{ flex-shrink:0;font-size:var(--fs-lg);line-height:1.4; }
/* Project summary rows (real per-project activity) */
.proj-sum-list{ display:flex;flex-direction:column;gap:10px; }
.proj-sum{ display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:11px 14px;transition:all .12s var(--ease); }
.proj-sum:hover{ border-color:var(--accent-300);box-shadow:var(--shadow-sm); }
.proj-sum-top{ display:flex;align-items:baseline;justify-content:space-between;gap:12px; }
.proj-sum-name{ font-size:var(--fs-md);font-weight:500;color:var(--gray-9); }
.proj-sum:hover .proj-sum-name{ color:var(--accent-700); }
.proj-sum-meta{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.detail-title{ scroll-margin-top:calc(var(--brand-bar-h) + var(--nav-h) + 16px);outline:none; }
.usage-trend{ font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;padding:3px 9px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.04em; }
.usage-trend.up{ background:var(--ok-bg);color:var(--ok-fg); }
.usage-trend.down{ background:var(--err-bg);color:var(--err-fg); }
.usage-trend.flat{ background:var(--gray-2);color:var(--gray-6); }
.pbar-list{ display:flex;flex-direction:column;gap:7px; }
.pbar-row{ display:flex;align-items:center;gap:12px;background:none;border:none;padding:4px 0;width:100%;text-align:left; }
.pbar-name{ font-size:var(--fs-base);color:var(--gray-7);width:170px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.pbar-row:hover .pbar-name{ color:var(--accent-700); }
.pbar-track{ flex:1;height:10px;background:var(--gray-2);border-radius:999px;overflow:hidden; }
.pbar-fill{ height:100%;background:linear-gradient(90deg,var(--accent-400),var(--accent-600));border-radius:999px; }
.pbar-val{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);width:56px;text-align:right;flex-shrink:0; }
.ex-list{ display:flex;flex-direction:column;gap:10px; }
.ex-row{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:12px 14px;background:var(--gray-1); }
.ex-meta{ display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px; }
.ex-proj{ font-size:var(--fs-sm);font-weight:500;color:var(--accent-700); }
.ex-ts{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.ex-snip{ font-size:var(--fs-lg);color:var(--gray-7);line-height:1.6; }

/* Metadata */
.meta-grid{ display:flex;flex-direction:column;gap:1px; }
.meta-row{ display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-lg); }
.meta-row:first-child{ border-top:none; }
.meta-k{ color:var(--gray-6); }
.meta-v{ font-family:var(--font-mono);font-size:var(--fs-base);color:var(--gray-8); }

@media (max-width:1000px){ .ov-grid{ grid-template-columns:1fr; } .qg-grid{ grid-template-columns:1fr; } }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;border-radius:var(--r-md);
  font-size:var(--ctl-font);font-weight:500;border:1px solid transparent;
  transition:all .12s var(--ease);
}
.btn-primary{ background:var(--accent-600);color:#fff; }
.btn-primary:hover{ background:var(--accent-400); }
/* UX-12 — reusable destructive variant, token-driven (was: ad-hoc inline reds). */
.btn-danger{ background:var(--crit-fg);color:#fff;border-color:var(--crit-fg); }
.btn-danger:hover{ filter:brightness(.92); }
.btn-secondary{ background:transparent;color:var(--gray-9);border-color:var(--gray-6); }
.btn-secondary:hover{ background:var(--gray-2);border-color:var(--gray-6); }

/* ── Toast (prompt copied) ─────────────────────────────────────────────── */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--gray-9);color:#fff;font-size:var(--fs-base);
  padding:12px 18px;border-radius:var(--r-md);box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;
  z-index:90;max-width:min(620px,90vw);
}
.toast.show{ opacity:1;visibility:visible;transform:translateX(-50%) translateY(0); }
.toast pre{ font-family:var(--font-mono);font-size:var(--fs-xs);margin:8px 0 0;white-space:pre-wrap;color:var(--gray-3);max-height:160px;overflow:auto; }
/* J1 hybrid: inline "View prompt" affordance inside the dark toast */
.toast-line{ display:flex;align-items:center;gap:14px;justify-content:space-between; }
.toast-action{
  flex:0 0 auto;font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.28);
  border-radius:var(--r-sm);padding:4px 11px;transition:background .12s,border-color .12s;
}
.toast-action:hover{ background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.5); }
.toast-action:focus-visible{ outline:2px solid var(--accent-300);outline-offset:2px; }

/* ── Spend-alert pill (cap + usage-spike) — minimal, persistent, bottom-left ──────
 * One slim closable pill, NO dollar amounts. Amber = nearing / warn, red = at-cap /
 * over. Whole pill → Tracking; the × dismisses. Reuses the toast position/shadow tokens
 * but keeps its OWN non-fading show state (the pill persists until dismissed). */
.cap-pill{
  position:fixed;left:20px;bottom:20px;z-index:90;display:none;align-items:center;gap:6px;
  max-width:min(320px,90vw);background:var(--gray-1);border:1px solid var(--gray-3);
  border-left:3px solid var(--gray-5);border-radius:var(--r-pill);box-shadow:var(--shadow-lg);
  padding:7px 9px 7px 12px;font-size:var(--fs-sm);
}
.cap-pill.show{ display:inline-flex; }
.cap-pill--near{ border-left-color:var(--warn); }
.cap-pill--over{ border-left-color:var(--crit-fg); }
.cap-pill-go{ display:inline-flex;align-items:center;gap:8px;cursor:pointer;background:none;border:none;font:inherit;color:var(--gray-9);padding:0;text-align:left; }
.cap-pill-dot{ width:7px;height:7px;border-radius:999px;flex:none;background:var(--gray-5); }
.cap-pill--near .cap-pill-dot{ background:var(--warn); }
.cap-pill--over .cap-pill-dot{ background:var(--crit-fg); }
.cap-pill-txt{ font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:228px; }
.cap-pill-arr{ color:var(--gray-6);font-size:var(--fs-xs);flex:none; }
.cap-pill-go:focus-visible{ outline:2px solid var(--accent-500);outline-offset:2px;border-radius:6px; }
.cap-pill-x{ flex:none;border:none;background:none;color:var(--gray-6);font-size:16px;line-height:1;cursor:pointer;padding:2px 5px;border-radius:6px; }
.cap-pill-x:hover{ background:var(--gray-2);color:var(--gray-9); }
.cap-pill-x:focus-visible{ outline:2px solid var(--accent-500);outline-offset:2px; }

/* per-row cap control in the Spend cell */
.tk-cap{ margin-top:5px;display:flex;align-items:center;gap:6px;font-size:var(--fs-xs); }
.tk-cap-on{ color:var(--gray-7);font-weight:600; }
.tk-cap-set,.tk-cap-edit{ border:1px dashed var(--gray-4);background:none;color:var(--gray-6);border-radius:var(--r-sm);padding:1px 7px;cursor:pointer;font-size:var(--fs-xs); }
.tk-cap-set:hover,.tk-cap-edit:hover{ border-color:var(--accent-300);color:var(--accent-700);border-style:solid; }
.tk-cap-input{ max-width:90px; }

/* per-model expand (OpenRouter) — ▾ toggle + auto-discovered model sub-rows */
.tk-model-exp{ display:inline-block;margin-top:5px;border:1px solid var(--gray-4);background:none;color:var(--accent-700);border-radius:var(--r-sm);padding:1px 8px;cursor:pointer;font-size:var(--fs-xs);font-weight:600;font-family:var(--font-mono); }
.tk-model-exp:hover{ border-color:var(--accent-300);background:var(--accent-50); }
.tk-model-exp:focus-visible{ outline:2px solid var(--accent-500);outline-offset:2px; }
.tk-model-row{ background:#FBFCFE; }
.tk-model-row > td{ border-top:1px dashed var(--gray-3);padding-top:7px;padding-bottom:7px; }
.tk-model-name{ color:var(--gray-7);font-size:var(--fs-sm); }

/* ════════ Redesigned API tracking pane — calm single-line ledger (v4) ════════ */
.trk-toolbar{ display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:var(--s-4) 0 var(--s-2); }
.trk-stats{ margin-left:auto;display:flex;gap:22px; }
.trk-stat{ display:flex;flex-direction:column;line-height:1.15; }
.trk-stat-n{ font-family:var(--font-mono);font-weight:700;font-size:var(--fs-base);color:var(--gray-9); }
.trk-stat-k{ font-size:var(--fs-xs);color:var(--gray-6);text-transform:uppercase;letter-spacing:.05em; }
.trk-windesc{ color:var(--gray-6);font-size:var(--fs-sm);margin:0 0 var(--s-3); }
.trk-windesc b{ color:var(--gray-8); }
.trk-tablewrap{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);box-shadow:var(--shadow-lg);overflow:visible; }
.trk-table{ width:100%;border-collapse:collapse;table-layout:fixed;min-width:880px; }   /* min-width: on a narrow viewport the PAGE scrolls (no inner box that would re-clip popovers), not crushed columns */
.trk-th{ font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--gray-6);font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid var(--gray-3);background:#FCFDFF;white-space:nowrap; }
.trk-th.r{ text-align:right; }
.trk-row > td{ padding:0 16px;height:50px;border-bottom:1px solid var(--gray-2);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }   /* table-cell overflow:hidden truncates long text to one line but (verified in Chromium) does NOT clip the abs-positioned .trk-pop popovers or the inline cap/key editor — they paint outside the cell */
.trk-row:last-child > td{ border-bottom:none; }
.trk-prov:hover{ background:#FBFCFE; }
.trk-hidden{ display:none; }
.trk-svc{ font-weight:600;color:var(--gray-9); }
.trk-muted{ color:var(--gray-6); }
.trk-addkey{ border:1px dashed var(--gray-4);background:none;color:var(--gray-6);border-radius:var(--r-sm);font-weight:700;line-height:1.4;padding:0 7px;margin-left:8px;cursor:pointer; }   /* gray-6 clears AA/3:1 for an interactive control; still understated, brightens on hover */
.trk-addkey:hover{ border-color:var(--accent-500);color:var(--accent-700);border-style:solid; }
.trk-tog{ border:1px solid var(--gray-4);background:none;color:var(--accent-700);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;padding:0 7px;margin-left:7px;cursor:pointer; }
.trk-tog:hover{ background:var(--accent-50);border-color:var(--accent-300); }
.trk-tog-m{ color:var(--gray-7); }
.trk-tog-k{ color:var(--accent-700); }   /* live keys (from /api/v1/keys) — accent vs the gray model toggle */
.trk-type{ border:none;background:none;color:var(--gray-6);font:inherit;cursor:pointer;padding:0; }
.trk-type:hover{ color:var(--accent-700); }
.trk-key{ font-family:var(--font-mono);font-size:12.5px;color:var(--gray-7); }
.trk-key.unset{ color:var(--gray-5);font-style:italic;font-family:inherit; }
.trk-setkey{ border:none;background:none;color:var(--gray-6);font-style:italic;cursor:pointer;font:inherit;padding:0; }
.trk-setkey:hover{ color:var(--accent-700); }
.trk-acts{ margin-left:8px;display:inline-flex;gap:6px;vertical-align:middle; }
.trk-ic{ border:none;background:none;color:var(--gray-5);cursor:pointer;font-size:13px;padding:0;line-height:1; }
.trk-ic:hover,.trk-ic:focus-visible{ color:var(--accent-600); }
.trk-lock{ color:var(--gray-4); } .trk-lock.on{ color:var(--warn); }
.trk-c-spend.r{ text-align:right;font-variant-numeric:tabular-nums; }
.trk-fig{ font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--gray-9); }
.trk-fig.none{ color:var(--gray-4);font-weight:500; }
.trk-fig.warn{ color:var(--warn); } .trk-fig.over{ color:var(--crit-fg); }
.trk-fig-h{ font-size:10px;color:var(--gray-6);margin-left:5px; }   /* informative unit/window hint — gray-6 clears AA */
.trk-fig.units{ color:var(--gray-8);font-weight:600; }   /* a credits/calls count is NOT dollars — visually distinct from the $ figures */
.trk-lnk{ border:none;background:none;color:var(--gray-7);cursor:pointer;font:inherit;padding:0;display:inline-flex;align-items:center;gap:6px; }
.trk-lnk:hover{ color:var(--accent-700); }
.trk-dot{ width:6px;height:6px;border-radius:999px;background:var(--accent-500);flex:none; }
.trk-note{ border:none;background:none;color:var(--gray-6);cursor:pointer;font:inherit;font-size:var(--fs-sm);padding:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom; }
.trk-note:hover{ color:var(--gray-8); } .trk-note.empty{ color:var(--gray-5);font-style:italic; }
.trk-kebab{ border:none;background:none;color:var(--gray-5);font-size:16px;cursor:pointer;line-height:1; }
.trk-kebab:hover{ color:var(--gray-8); }
.trk-kname,.trk-mname{ color:var(--gray-7);padding-left:20px !important;position:relative; }
.trk-kname::before{ content:'↳';position:absolute;left:4px;color:var(--gray-5); }
.trk-mname::before{ content:'•';position:absolute;left:7px;color:var(--gray-5); }
.trk-key-row > td,.trk-model-row > td,.trk-livekey-row > td{ background:#FBFCFE; }
.trk-ph{ position:relative;display:inline-block;overflow:visible; }
.trk-pop{ position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:10px 12px;min-width:180px;max-width:340px;white-space:normal; }
.trk-pop.trk-pop-r{ left:auto;right:0; }
.trk-pt{ font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:7px; }
.trk-tags{ display:flex;flex-wrap:wrap;gap:6px; }
.trk-ptag{ border:none;background:var(--accent-50);color:var(--accent-700);border-radius:var(--r-sm);padding:2px 8px;cursor:pointer;font:inherit;font-size:12px; }
.trk-ptag:hover{ background:var(--accent-100); }
.trk-ntext{ font-size:var(--fs-sm);color:var(--gray-8);line-height:1.55; }
.trk-ta{ width:280px;max-width:80vw;min-height:70px;border:1px solid var(--gray-4);border-radius:var(--r-sm);padding:7px 9px;font:inherit;font-size:var(--fs-sm);resize:vertical;display:block; }
.trk-note-save{ margin-top:8px;padding:5px 12px; }

/* ============================================================================
 * EXPANDABLE TILES (Home)
 * ==========================================================================*/
.tile-head-right{ display:flex;align-items:center;gap:var(--s-3); }
.tile-head-left{ display:flex;align-items:center;gap:8px;min-width:0; }

/* "So what" + integrated tooltips */
/* a11y: invisible 24px hit-area on the 18px ⓘ dot (WCAG 2.5.8 target size) */
.info-dot{ position:relative; }
.info-dot::after{ content:'';position:absolute;inset:-3px;border-radius:999px; }
.info-dot{
  width:18px;height:18px;border-radius:999px;flex-shrink:0;
  display:inline-grid;place-items:center;font-size:var(--fs-xs);line-height:1;
  color:var(--gray-6);background:var(--gray-2);border:1px solid var(--gray-3);cursor:pointer;
  transition:all .12s var(--ease);
}
.info-dot:hover,.info-dot:focus-visible{ color:var(--accent-700);background:var(--accent-50);border-color:var(--accent-200); }
.tile-glance{ font-size:var(--fs-base);color:var(--gray-6);margin:-4px 0 14px;line-height:1.5; }
.tip-pop{
  position:fixed;z-index:120;max-width:300px;
  background:var(--gray-9);color:#fff;border-radius:var(--r-md);
  padding:10px 13px;box-shadow:var(--shadow-lg);
  font-size:var(--fs-base);line-height:1.5;
  opacity:0;transform:translateY(-4px);transition:opacity .12s var(--ease),transform .12s var(--ease);
  pointer-events:none;
}
.tip-pop.show{ opacity:1;transform:translateY(0); }
.tip-card .tip-what{ color:#fff; }
.tip-card .tip-why{ margin-top:6px;color:var(--gray-4); }
.tip-card .tip-why strong{ color:#fff;font-weight:600; }
.sowhat{ background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-md);padding:var(--s-4);margin:0 0 var(--s-4); }
.sw-head{ font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-700);margin-bottom:10px; }
.sw-row{ display:grid;grid-template-columns:160px 1fr;gap:14px;padding:7px 0;font-size:var(--fs-base);line-height:1.55;border-top:1px solid var(--accent-100); }
.sw-row:first-of-type{ border-top:none; }
.sw-label{ color:var(--gray-6);font-weight:600; }
.sw-val{ color:var(--gray-8); }
.sw-fruit .sw-val{ color:var(--accent-700);font-weight:500; }
.sw-outcome .sw-val{ color:#047857;font-weight:500; }
@media (max-width:700px){ .sw-row{ grid-template-columns:1fr;gap:2px; } }

.tile-expand{
  font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);
  background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-sm);
  padding:3px 9px;transition:all .12s var(--ease);white-space:nowrap;
}
.tile-expand:hover{ background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-700); }

.exp-grid{ display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);margin:var(--s-4) 0; }
.exp-h{ font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:var(--s-3); }
.exp-note{ font-size:var(--fs-base);color:var(--gray-6);margin-top:var(--s-3);line-height:1.6; }
.sub-score{ display:flex;align-items:center;gap:10px;margin-bottom:9px; }
.ss-label{ font-size:var(--fs-base);color:var(--gray-7);width:140px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }   /* D6 — bare metric name; detail moves to a tooltip */
.ss-track{ flex:1;height:var(--bar-h);background:var(--gray-2);border-radius:var(--bar-r);overflow:hidden; }
.ss-fill{ height:100%;background:linear-gradient(90deg,var(--accent-400),var(--accent-600));border-radius:var(--bar-r); }
.ss-val{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-7);width:32px;text-align:right;flex-shrink:0; }
.spark-bars.tall{ height:96px; }

.type-bars{ display:flex;flex-direction:column;gap:10px;margin-top:var(--s-3); }
.type-bar-row{ display:flex;align-items:center;gap:12px; }
.type-bar-row .chip{ width:90px;justify-content:center;flex-shrink:0; }

.action-xl{ padding:var(--s-4) 0;border-top:1px solid var(--gray-2); }
.action-xl:first-child{ border-top:none; }
.action-xl-head{ display:flex;align-items:center;gap:12px; }
.action-xl-head .action-title{ flex:1; }
.action-prompt{
  font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-7);
  background:var(--gray-0);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:12px 14px;margin:8px 0 0 34px;white-space:pre-wrap;line-height:1.55;max-height:220px;overflow:auto;
}
.drift-xl-row{ display:flex;align-items:center;gap:var(--s-3);padding:11px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-md); }
.drift-xl-row:first-child{ border-top:none; }
.drift-xl-row .mini-name{ width:170px;flex-shrink:0; }
.drift-xl-row .mini-meta{ width:64px;margin:0;flex-shrink:0; }
.drift-reason{ flex:1;color:var(--gray-6);font-size:var(--fs-base); }

.quad-grid{ display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-4); }
.quad-cell{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:var(--s-3); }
.quad-head{ display:flex;align-items:center;gap:8px;font-size:var(--fs-base);font-weight:500;color:var(--gray-8);margin-bottom:10px; }
.quad-head i{ width:9px;height:9px;border-radius:999px;flex-shrink:0; }
.quad-count{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.quad-items{ display:flex;flex-wrap:wrap;gap:6px; }

.orphan-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-3);margin:var(--s-4) 0; }
.orphan-cell{ display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--gray-3);border-radius:var(--r-md); }
.orphan-cell .mini-name{ flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-base); }
.orphan-cell .action-gen-btn{ padding:5px 11px;font-size:var(--ctl-font-dense);flex-shrink:0; }

@media (max-width:900px){ .exp-grid,.quad-grid{ grid-template-columns:1fr; } }

/* ============================================================================
 * PROJECTS VIEW
 * ==========================================================================*/
.proj-list{ display:flex;flex-direction:column;gap:3px; }
.proj-item{
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;
  padding:9px 11px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;background:transparent;transition:all .1s var(--ease);
}
.proj-item:hover{ background:var(--gray-1);border-color:var(--gray-3); }
.proj-item.active{ background:var(--accent-50);border-color:var(--accent-200); }
.proj-item-name{ font-size:var(--fs-md);font-weight:600;color:var(--gray-9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.proj-item-meta{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.proj-title{ font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;margin:0 0 var(--s-3); }
.proj-sec{ margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--gray-2); }
.proj-sec:first-of-type{ border-top:none;padding-top:var(--s-4); }
.proj-sec-head{ display:flex;align-items:center;gap:8px;margin-bottom:var(--s-3); }
.ptype-row{ display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--gray-2); }
.ptype-row:first-child{ border-top:none; }
.ptype-row .ss-track{ width:120px;flex:0 0 auto; }
.ptype-row .chip-type{ width:78px;text-align:center;flex:0 0 auto; }
.gap-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px; }
.gap-row{ display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1); }
.gap-row .mini-name{ flex:1;font-weight:500; }
.gap-row .action-gen-btn{ flex:0 0 auto; }
.gap-reach{ flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-pill);padding:1px 6px; }
.ver-chip{
  display:inline-block;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-7);
  background:var(--gray-2);border-radius:var(--r-pill);padding:2px 9px;margin:3px 5px 0 0;
}

/* ============================================================================
 * RESPONSIVE
 * ==========================================================================*/
@media (max-width:1200px){
  .container{ width:90%; }
}
@media (max-width:1500px){
  /* shrink the search trigger to icon + ⌘K so the desktop nav fits laptop widths */
  .nav-search-label{ display:none; }
}

@media (max-width:1000px){
  .span-3,.span-4{ grid-column:span 6; }
  .span-6,.span-8{ grid-column:span 12; }   /* span-6 was left unmapped → lonely half-tile; now full-width */
  .lib-layout{ grid-template-columns:1fr; }
  .sidebar{ position:static;max-height:none;overflow:visible; }
  #view-projects .sidebar{ max-height:320px;overflow-y:auto; }   /* don't dump the whole project list above the detail */
}

@media (max-width:900px){
  :root{ --s-4:12px; --s-6:16px; }
  .container{ width:92%; }
}

/* Nav collapses to the burger below this width — the full desktop nav + the owner-
   scope filter + search don't fit a laptop topbar, so narrower widths get the mobile
   menu (which carries every destination, the Workspace group included). */
@media (max-width:1400px){
  .nav-menu,.nav-search,.icon-btn[data-optional]{ display:none; }
  .nav-burger{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:var(--r-md);
    background:none;border:1px solid var(--gray-4);color:var(--gray-8);font-size:var(--fs-xl);
  }
  .nav-burger.in-menu{ margin-left:auto; }

  /* Mobile menu panel (shown whenever the burger is) */
  .mobile-menu{
    position:fixed;top:calc(var(--brand-bar-h) + var(--nav-h));left:0;right:0;
    background:var(--gray-1);border-bottom:1px solid var(--gray-3);box-shadow:var(--shadow-md);
    padding:var(--s-4);z-index:49;
    display:none;flex-direction:column;gap:var(--s-2);
  }
  .mobile-menu.open{ display:flex; }
  .mm-link{
    display:flex;align-items:center;gap:8px;padding:10px;border-radius:var(--r-md);
    font-size:var(--fs-md);font-weight:500;color:var(--gray-8);background:none;border:none;text-align:left;
  }
  .mm-link:hover{ background:var(--gray-2); }
  .mm-sub{ padding-left:24px;font-size:var(--fs-base);color:var(--gray-6); }
}
@media (min-width:1401px){
  .mobile-menu{ display:none !important; }
}

@media (max-width:768px){
  .span-3,.span-4,.span-6,.span-8,.span-12{ grid-column:span 12; }
  .home-head{ flex-direction:column;align-items:stretch; }
  .home-head-actions{ align-items:flex-start; }
  .drawer{ width:100vw; }
  /* a11y: enlarge cramped icon-button tap targets on touch (WCAG 2.5.8 — 44px) */
  .act-ctrls{ gap:8px; }
  .act-btn{ position:relative; }
  .act-btn::before{ content:'';position:absolute;inset:-9px; }
  .act-snooze-pop button{ padding:9px 12px; }
}

/* ============================================================================
 * AUDIT FIXES (2026-05-30 multi-lens audit)
 * Contrast pass, reduced-motion, disabled states, button-card reset.
 * ==========================================================================*/

/* primitive-card is now a <button> (keyboard-activatable). Reset native button
 * chrome so it renders identically to the former div. */
button.primitive-card{ width:100%;text-align:left;font:inherit;color:inherit;appearance:none; }
/* Explicit keyboard focus rings on the clickable card buttons — the hover
 * transform/shadow can otherwise mask the default outline. */
.primitive-card:focus-visible,.comp-card:focus-visible,.cmp-add-opt:focus-visible{
  outline:2px solid var(--accent-500);outline-offset:2px;box-shadow:var(--focus-ring); }
/* Compare adder goes full-width on small screens. */
@media (max-width:768px){ .cmp-adder{ max-width:100%; } }

/* Contrast: --gray-5 (#94A3B8) on light surfaces is ~2.3:1 — below WCAG AA.
 * Bump the persistent small-caption text to --gray-6 (#64748B, ~4.5:1). These
 * are text declarations only; --gray-5 stays for borders/dots/decoration. */
.home-meta,
.tile-q,
.gov-doc-meta,
.proj-item-meta,
.dim-id,
.dim-pts,
.ver-date,
.ex-ts,
.doc-chars,
.proj-sum-meta,
.crumb-cur,
.cmdk-row-sub{ color:var(--gray-6); }

/* Respect the OS "reduce motion" setting (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Disabled button affordance (was undefined — disabled buttons looked active). */
.btn:disabled,.btn[aria-disabled="true"],
.action-gen-btn:disabled,.mini-btn:disabled{ opacity:.5;cursor:not-allowed; }
.btn-primary:disabled{ background:var(--gray-4);color:var(--gray-6); }
.btn-secondary:disabled{ background:var(--gray-2);color:var(--gray-6);border-color:var(--gray-3); }

/* Toggled secondary button (cart / compare "on" state) */
.btn-secondary.is-on{ background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-700); }

/* Honest "design slice" note on Home */
.home-note{ display:flex;align-items:flex-start;gap:8px;margin-top:12px;max-width:74ch;
  font-size:var(--fs-sm);line-height:1.5;color:var(--gray-6);background:var(--gray-1);border:1px solid var(--gray-3);
  border-radius:var(--r-md);padding:9px 12px; }
.home-note-dot{ width:7px;height:7px;border-radius:999px;background:var(--aging);flex:0 0 auto;margin-top:5px; }

/* ============================================================================
 * COMPOSITES
 * ==========================================================================*/
.comp-cat-chips{ display:flex;flex-wrap:wrap;gap:7px;margin-bottom:var(--s-5); }
.comp-cat-chip{ display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-base);color:var(--gray-7);
  padding:6px 12px;border-radius:var(--r-md);background:var(--gray-1);border:1px solid var(--gray-4);transition:all .1s var(--ease); }
.comp-cat-chip:hover{ border-color:var(--accent-300);color:var(--accent-700); }
.comp-cat-chip.on{ background:var(--accent-500);color:#fff;border-color:var(--accent-500); }
.comp-cat-chip .comp-cat-n{ font-family:var(--font-mono);font-size:var(--fs-xs);opacity:.85; }
.comp-cat-chip.on .comp-cat-n{ color:#fff; }

.comp-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:var(--s-4); }
.comp-card{ position:relative;display:flex;flex-direction:column;gap:9px;text-align:left;width:100%;
  background:var(--gray-1);border:1px solid var(--gray-3);border-left:3px solid var(--comp,var(--accent-500));
  border-radius:var(--r-md);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-5);font:inherit;color:inherit;
  cursor:pointer;transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease); }
.comp-card:hover{ transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--gray-4);border-left-color:var(--comp,var(--accent-500)); }
.comp-card-top{ display:flex;align-items:center;gap:10px; }
.comp-name{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-9);line-height:1.3; }
.comp-badge{ margin-left:auto;flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:600;
  color:var(--comp,var(--accent-700));background:color-mix(in srgb,var(--comp,var(--accent-500)) 12%,white);
  border:1px solid color-mix(in srgb,var(--comp,var(--accent-500)) 30%,white);border-radius:var(--r-pill);padding:1px 7px; }
.comp-sub{ font-size:var(--fs-md);color:var(--gray-7);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.comp-card-meta{ display:flex;flex-wrap:wrap;gap:14px;margin-top:auto;padding-top:9px;border-top:1px solid var(--gray-2);
  font-size:var(--fs-sm);color:var(--gray-6); }
.comp-card-meta b{ font-family:var(--font-mono);color:var(--gray-8);font-weight:600; }

/* Composite detail */
.comp-detail-head{ display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-6);
  padding-bottom:var(--s-5);border-bottom:1px solid var(--gray-3);border-left:4px solid var(--comp,var(--accent-500));
  padding-left:var(--s-5);margin-left:calc(-1 * var(--s-5));border-radius:0 0 0 0; }
.comp-eyebrow{ display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;color:var(--comp,var(--accent-700)); }
.comp-title{ font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;color:var(--gray-9);margin-top:8px;
  scroll-margin-top:calc(var(--brand-bar-h) + var(--nav-h) + 16px);outline:none; }
.comp-detail-sub{ font-size:var(--fs-lg);color:var(--gray-6);margin-top:8px;max-width:74ch;line-height:1.55; }

.comp-sw-grid{ display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4); }
.comp-sw{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:var(--s-4);background:var(--gray-1); }
.comp-sw-strong{ border-left:3px solid var(--fresh); }
.comp-sw-weak{ border-left:3px solid var(--aging); }
.comp-sw-head{ font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px; }
.comp-sw-strong .comp-sw-head{ color:var(--ok-fg); }
.comp-sw-weak .comp-sw-head{ color:#B45309; }
.comp-sw-list{ display:flex;flex-direction:column;gap:8px;list-style:none;padding:0; }
.comp-sw-list li{ font-size:var(--fs-md);line-height:1.5;color:var(--gray-7);padding-left:16px;position:relative; }
.comp-sw-list li::before{ content:'';position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:999px;background:var(--gray-4); }
@media (max-width:760px){ .comp-sw-grid{ grid-template-columns:1fr; } }

.comp-modes{ display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-3); }
.comp-mode{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);background:var(--gray-1); }
.comp-mode-top{ display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px; }
.comp-mode-name{ font-size:var(--fs-md);font-weight:600;color:var(--gray-9); }
.comp-mode-time{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-700);background:var(--accent-50);
  border-radius:var(--r-pill);padding:2px 9px;white-space:nowrap;flex-shrink:0; }
.comp-mode-desc{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.5; }

.comp-flow{ display:flex;flex-direction:column;gap:0;list-style:none;padding:0;counter-reset:none; }
.comp-phase{ display:flex;gap:14px;padding:0 0 var(--s-4);position:relative; }
.comp-phase:not(:last-child)::before{ content:'';position:absolute;left:13px;top:26px;bottom:0;width:2px;background:var(--gray-3); }
.comp-phase-num{ flex:0 0 auto;width:28px;height:28px;border-radius:999px;display:inline-grid;place-items:center;
  font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:#fff;background:var(--comp,var(--accent-500));z-index:1; }
.comp-phase-body{ min-width:0;padding-top:2px; }
.comp-phase-name{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-9); }
.comp-phase-desc{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.5;margin-top:2px; }
.cprim-type{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);margin-right:5px;text-transform:uppercase; }

.comp-outputs{ display:flex;flex-wrap:wrap;gap:7px; }
.comp-output{ font-size:var(--fs-base);color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);
  border-radius:var(--r-sm);padding:4px 10px; }
.comp-outputs-text{ font-size:var(--fs-lg);line-height:1.6;color:var(--gray-7);background:var(--gray-1);
  border:1px solid var(--gray-3);border-left:3px solid var(--comp,var(--accent-500));border-radius:var(--r-md);padding:var(--s-4); }

/* ============================================================================
 * COMPARE
 * ==========================================================================*/
.cmp-adder{ margin-bottom:var(--s-5);position:relative;max-width:520px; }
.cmp-add-input{ width:100%;padding:10px 13px;font-size:var(--fs-md);font-family:var(--font-sans);color:var(--gray-9);
  background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-md);outline:none; }
.cmp-add-input:focus{ border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.cmp-add-results{ display:flex;flex-direction:column;gap:2px;margin-top:6px; }
.cmp-add-opt{ display:flex;align-items:center;gap:10px;text-align:left;font-family:var(--font-mono);font-size:var(--fs-base);
  color:var(--gray-8);background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-sm);padding:7px 11px;transition:all .1s var(--ease); }
.cmp-add-opt:hover{ border-color:var(--accent-300);background:var(--accent-50); }
.cmp-add-score{ margin-left:auto;color:var(--gray-6); }

.cmp-wrap{ overflow-x:auto;border:1px solid var(--gray-3);border-radius:var(--r-lg); }
.cmp-table{ width:100%;border-collapse:collapse;font-size:var(--fs-md);min-width:520px; }
.cmp-table th[scope=row]{ text-align:left;font-weight:500;color:var(--gray-7);background:var(--gray-0);
  padding:11px 14px;border-bottom:1px solid var(--gray-2);border-right:1px solid var(--gray-3);
  white-space:nowrap;position:sticky;left:0;z-index:1; }
.cmp-table td{ padding:11px 14px;border-bottom:1px solid var(--gray-2);border-right:1px solid var(--gray-2);vertical-align:top; }
.cmp-corner{ background:var(--gray-1) !important;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.cmp-col-head{ background:var(--gray-1);padding:12px 14px;border-bottom:1px solid var(--gray-3);border-right:1px solid var(--gray-2);text-align:left;position:relative;min-width:150px; }
.cmp-col-name{ font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--gray-9);background:none;border:none;padding:0;text-align:left;cursor:pointer; }
.cmp-col-name:hover{ color:var(--accent-600);text-decoration:underline; }
.cmp-col-sub{ display:flex;flex-wrap:wrap;gap:5px;margin-top:7px; }
.cmp-col-rm{ position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:999px;display:inline-grid;place-items:center;
  font-size:var(--fs-md);color:var(--gray-6);background:var(--gray-2);border:none;cursor:pointer;transition:all .1s var(--ease); }
.cmp-col-rm:hover{ background:var(--err-bg);color:var(--err-fg); }
.cmp-num{ font-family:var(--font-mono);color:var(--gray-8); }
.cmp-muted{ color:var(--gray-6);font-size:var(--fs-base); }
.cmp-dash{ color:var(--gray-4); }
.cmp-yes{ color:var(--ok-fg);font-weight:500; }
.cmp-no{ color:var(--gray-6); }

/* ============================================================================
 * GLOBAL GRAPH
 * ==========================================================================*/
.graph-kind-toggles{ display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s-3); }
.graph-kind{ display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-base);font-weight:500;color:var(--gray-6);
  padding:6px 13px;border-radius:var(--r-md);background:var(--gray-1);border:1px solid var(--gray-4);transition:all .12s var(--ease); }
.graph-kind:hover{ border-color:var(--gray-6);color:var(--gray-8); }
.graph-kind.on{ color:var(--gray-9);border-color:var(--k);background:color-mix(in srgb,var(--k) 8%,white); }
.graph-kind-dot{ width:9px;height:9px;border-radius:999px;background:var(--k);opacity:.4;transition:opacity .12s var(--ease); }
.graph-kind.on .graph-kind-dot{ opacity:1; }

/* ============================================================================
 * TEMPLATES (first-class browser)
 * ==========================================================================*/
.tmpl-chips{ display:flex;flex-wrap:wrap;gap:7px;margin-bottom:var(--s-3); }
.tmpl-chip{ display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-base);color:var(--gray-7);
  padding:7px 13px;border-radius:var(--r-md);background:var(--gray-1);border:1px solid var(--gray-4);transition:all .1s var(--ease); }
.tmpl-chip:hover{ border-color:var(--accent-300);color:var(--accent-700); }
.tmpl-chip.on{ background:var(--accent-50);border-color:var(--accent-300);color:var(--accent-700);font-weight:500; }
.tmpl-chip-meta{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.tmpl-actions{ display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:var(--s-3) 0; }

/* ============================================================================
 * AGENT PROFILE (detail overview, agent-type primitives)
 * ==========================================================================*/
.agent-block{ border-left:3px solid var(--t-agent-fg); }
.agent-tagline{ font-size:var(--fs-lg);line-height:1.55;color:var(--gray-8);margin-bottom:var(--s-4); }
.agent-metrics{ display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:var(--s-4); }
.agent-metric{ display:flex;flex-direction:column;gap:2px;background:var(--gray-0);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:10px 12px; }
.agent-metric-v{ font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:600;color:var(--t-agent-fg);line-height:1; }
.agent-metric-l{ font-size:var(--fs-sm);color:var(--gray-6);line-height:1.3; }
.agent-h{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:var(--s-4) 0 var(--s-2); }
.agent-obj{ display:flex;flex-direction:column;gap:6px;padding-left:20px;margin:0; }
.agent-obj li{ font-size:var(--fs-md);line-height:1.5;color:var(--gray-7); }

/* ============================================================================
 * EXPORT CART (Toolkit)
 * ==========================================================================*/
.cart-items{ display:flex;flex-direction:column;gap:4px;margin:var(--s-4) 0; }
.cart-item{ display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1); }
.cart-item .mini-name{ font-family:var(--font-mono);font-size:var(--fs-md);font-weight:500; }
.cart-item-dom{ font-size:var(--fs-sm);color:var(--gray-6);margin-left:auto; }
.cart-rm{ width:24px;height:24px;border-radius:999px;display:inline-grid;place-items:center;font-size:var(--fs-lg);
  color:var(--gray-6);background:var(--gray-2);border:none;cursor:pointer;transition:all .1s var(--ease); }
.cart-rm:hover{ background:var(--err-bg);color:var(--err-fg); }
.cart-actions{ display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--s-4); }
@media (max-width:760px){ .comp-detail-head{ flex-direction:column;margin-left:0;padding-left:var(--s-4); } }

/* ============================================================================
 * BRAND BLUE in page headers (was an under-used opportunity)
 * ==========================================================================*/
.home-title,.lib-title,.comp-title,.proj-title,.gov-section-title{ color:var(--accent-700); }
.home-title .info-dot,.lib-title .info-dot{ color:var(--gray-6); }   /* keep ⓘ neutral */

/* ============================================================================
 * GLOBAL GRAPH — stage + side panel + focus card + insights
 * ==========================================================================*/
.graph-stage-wrap{ display:flex;flex-direction:column;gap:var(--s-4);margin-top:var(--s-3); }
/* Big by default — the graph wants room; the insight panel sits BELOW it, full-width. */
.graph-stage{ position:relative;height:min(82vh,1000px);min-height:560px;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);overflow:hidden; }
.graph-stage svg{ display:block;width:100%;height:100%;cursor:grab; }
.graph-stage svg:active{ cursor:grabbing; }
/* fullscreen toggle (top-right of the stage) — z above the controls panel */
.graph-fsbtn{ position:absolute;right:12px;top:12px;z-index:6;display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-sm);font-weight:600;color:var(--gray-7);background:rgba(255,255,255,.92);border:1px solid var(--gray-4);
  border-radius:var(--r-sm);padding:6px 11px;cursor:pointer;transition:all .12s var(--ease);backdrop-filter:blur(2px); }
.graph-fsbtn:hover{ border-color:var(--accent-400);color:var(--accent-700);background:var(--accent-50); }
/* native fullscreen: the STAGE element itself fills the screen (no ancestor stacking trap) */
.graph-stage:fullscreen{ height:100vh;width:100vw;border:0;border-radius:0;background:#181a20; }
.graph-hint{ position:absolute;left:12px;bottom:10px;font-size:var(--fs-xs);color:var(--gray-6);background:rgba(255,255,255,.85);
  border:1px solid var(--gray-3);border-radius:var(--r-sm);padding:3px 9px;pointer-events:none; }
.graph-zoombtns{ position:absolute;right:12px;bottom:10px;display:flex;gap:4px; }
.graph-zoombtns button{ width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--gray-4);background:var(--gray-1);
  color:var(--gray-7);font-size:var(--fs-lg);font-weight:600;cursor:pointer;display:grid;place-items:center;transition:all .1s var(--ease); }
.graph-zoombtns button:hover{ border-color:var(--accent-400);color:var(--accent-700);background:var(--accent-50); }
/* node highlight / dim states (focus zoom) */
.gnode.dim{ opacity:.18; }
.gnode.hot circle{ stroke:var(--accent-600);stroke-width:3; }
.gedge.dim{ stroke-opacity:.06 !important; }
.gedge.hot{ stroke:var(--accent-500) !important;stroke-opacity:.9 !important;stroke-width:2 !important; }

/* side panel */
.graph-side{ display:block; }   /* full-width band below the stage (was a sticky right sidebar) */
.gpanel{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:var(--s-4);box-shadow:var(--shadow-sm); }
.gpanel-title{ font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-700);margin-bottom:var(--s-3);display:flex;align-items:center;gap:8px; }
.gpanel-title .gp-count{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);font-weight:500;letter-spacing:0; }
/* insights list */
.ginsight{ display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-base);line-height:1.5;color:var(--gray-7); }
.ginsight:first-child{ border-top:none; }
.ginsight .gi-ico{ flex:0 0 auto;font-size:var(--fs-md);line-height:1.4; }
.ginsight b{ color:var(--gray-9); }
.ginsight .gi-link{ color:var(--accent-700);background:none;border:none;padding:0;font:inherit;cursor:pointer;font-weight:600; }
.ginsight .gi-link:hover{ text-decoration:underline; }
/* focus card */
.gfocus-head{ display:flex;align-items:flex-start;gap:10px;margin-bottom:var(--s-3); }
.gfocus-kind{ flex:0 0 auto;width:30px;height:30px;border-radius:var(--r-md);display:grid;place-items:center;font-size:var(--fs-lg);color:#fff; }
.gfocus-name{ font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:600;color:var(--gray-9);background:none;border:none;padding:0;text-align:left;cursor:pointer;line-height:1.25;word-break:break-word; }
.gfocus-name:hover{ color:var(--accent-600);text-decoration:underline; }
.gfocus-open{ font-size:var(--fs-xs);color:var(--gray-6);margin-top:2px; }
.gfocus-meta{ display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s-3); }
.gfocus-desc{ font-size:var(--fs-base);line-height:1.55;color:var(--gray-7);margin-bottom:var(--s-3); }
.gfocus-rel{ margin-top:var(--s-3); }
.gfocus-rel h5{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:0 0 6px; }
.gfocus-together{ font-size:var(--fs-base);line-height:1.55;color:var(--gray-7);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-sm);padding:10px 12px;margin-top:var(--s-3); }
.gfocus-back{ font-size:var(--fs-sm);color:var(--accent-600);background:none;border:none;padding:0;cursor:pointer;margin-bottom:var(--s-3); }
.gfocus-back:hover{ text-decoration:underline; }
.gnode-label{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-7);pointer-events:none;
  paint-order:stroke;stroke:var(--gray-0);stroke-width:3px;stroke-linejoin:round; }   /* white halo for legibility over edges */

/* ── Obsidian-grade canvas graph — dark "viewport" inside the light app ── */
.graph-stage.gstage-dark{ background:#181a20;border-color:#2a2d36; }
.gcanvas{ display:block;width:100%;height:100%;touch-action:none;cursor:grab; }
.gcanvas:active{ cursor:grabbing; }
/* dark overrides for the floating stage chrome */
.graph-fsbtn.gfs-dark{ background:rgba(28,30,38,.82);border-color:#3a3e4a;color:#cdd3de; }
.graph-fsbtn.gfs-dark:hover{ border-color:var(--accent-400);color:#fff;background:rgba(40,44,54,.92); }
.graph-hint.ghint-dark{ background:rgba(20,22,28,.72);color:#9aa3b2;border:1px solid #2c2f38; }
.graph-zoombtns.gzoom-dark button{ background:rgba(28,30,38,.86);border-color:#3a3e4a;color:#cdd3de; }
.graph-zoombtns.gzoom-dark button:hover{ border-color:var(--accent-400);color:#fff;background:rgba(40,44,54,.95); }
.graph-legend.glegend-dark{ position:absolute;left:14px;bottom:12px;margin:0;gap:14px;color:#9aa3b2;font-size:var(--fs-xs);
  background:rgba(20,22,28,.7);border:1px solid #2c2f38;border-radius:var(--r-md);padding:6px 11px;backdrop-filter:blur(4px); }
.graph-legend.glegend-dark span{ display:inline-flex;align-items:center;gap:6px; }
.glg-dot{ width:9px;height:9px;border-radius:50%;display:inline-block; }

/* controls panel — top-left glass overlay */
.gctl{ position:absolute;left:14px;top:14px;z-index:5;width:228px;max-height:calc(100% - 28px);overflow-y:auto;
  background:rgba(24,26,33,.9);border:1px solid #2f323d;border-radius:var(--r-lg);backdrop-filter:blur(8px);
  box-shadow:0 8px 28px rgba(0,0,0,.4);color:#cdd3de;font-size:var(--fs-sm); }
.gctl-head{ display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #2c2f38; }
.gctl-title{ font-size:var(--fs-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#aeb6c4; }
.gctl-min{ width:22px;height:22px;border:1px solid #3a3e4a;border-radius:var(--r-sm);background:rgba(40,44,54,.6);color:#cdd3de;
  cursor:pointer;line-height:1;display:grid;place-items:center; }
.gctl-min:hover{ border-color:var(--accent-400);color:#fff; }
.gctl.collapsed .gctl-body{ display:none; }
.gctl-body{ padding:10px 12px 14px;display:flex;flex-direction:column;gap:9px; }
.gctl-sec{ font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#7c8494;margin-top:4px; }
.gctl-sec:first-child{ margin-top:0; }
.gctl-search{ width:100%;background:rgba(14,16,20,.7);border:1px solid #3a3e4a;border-radius:var(--r-sm);color:#e6e9ef;
  padding:6px 9px;font-size:var(--fs-sm);font-family:inherit; }
.gctl-search::placeholder{ color:#6b7280; }
.gctl-search:focus{ outline:none;border-color:var(--accent-400); }
.gctl-kinds{ display:flex;flex-wrap:wrap;gap:5px; }
.gctl-kind{ display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#9aa3b2;cursor:pointer;
  background:rgba(40,44,54,.5);border:1px solid #3a3e4a;border-radius:var(--r-sm);padding:3px 7px; }
.gctl-kind:hover{ border-color:#5a5f6e;color:#d6dae2; }
.gctl-kind.on{ color:#fff;border-color:var(--k);background:color-mix(in srgb,var(--k) 22%,rgba(40,44,54,.5)); }
.gctl-dot{ width:8px;height:8px;border-radius:50%;background:var(--k);opacity:.45; }
.gctl-kind.on .gctl-dot{ opacity:1; }
.gctl-check{ display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:#aeb6c4;cursor:pointer;user-select:none; }
.gctl-check input{ accent-color:var(--accent-500); }
.gseg-wrap{ display:flex;gap:2px;background:rgba(14,16,20,.6);border:1px solid #3a3e4a;border-radius:var(--r-sm);padding:2px; }
.gseg{ flex:1;font-size:11px;color:#9aa3b2;background:none;border:none;border-radius:calc(var(--r-sm) - 1px);padding:4px 0;cursor:pointer; }
.gseg:hover{ color:#d6dae2; }
.gseg.on{ background:var(--accent-500);color:#fff;font-weight:600; }
.gctl-row{ display:flex;flex-direction:column;gap:3px; }
.gctl-lab{ display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#aeb6c4; }
.gctl-num{ font-family:var(--font-mono);font-size:10px;color:#7c8494; }
.gctl-row input[type=range]{ width:100%;accent-color:var(--accent-500);height:4px;cursor:pointer; }
.gctl-reset{ margin-top:4px;font-size:var(--fs-sm);color:#cdd3de;background:rgba(40,44,54,.6);border:1px solid #3a3e4a;
  border-radius:var(--r-sm);padding:6px 0;cursor:pointer; }
.gctl-reset:hover{ border-color:var(--accent-400);color:#fff;background:rgba(48,52,64,.8); }
@media (max-width:560px){ .gctl{ width:188px; } }

/* ============================================================================
 * PROJECTS — full source-of-truth view
 * ==========================================================================*/
.proj-desc{ font-size:var(--fs-lg);line-height:1.6;color:var(--gray-7);max-width:80ch;margin-top:6px; }
.proj-links{ display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--s-4); }
.proj-link{ display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-base);font-weight:500;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-md);padding:7px 13px;transition:all .12s var(--ease); }
.proj-link:hover{ background:var(--accent-100);border-color:var(--accent-300); }
.proj-link.missing{ color:var(--gray-6);background:var(--gray-1);border:1px dashed var(--gray-4);cursor:default; }
.proj-folder{ display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:7px 13px; }
.proj-features{ display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:20px;list-style:disc; }
.proj-features li{ font-size:var(--fs-md);line-height:1.5;color:var(--gray-7); }

/* editable summary + features block */
.proj-info{ margin:var(--s-4) 0;padding:var(--s-4);background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg); }
.proj-info-head{ display:flex;align-items:center;gap:10px;margin-bottom:8px; }
.proj-edit-label{ display:block;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:12px 0 5px; }
.proj-edit-area{ width:100%;font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.55;color:var(--gray-9);
  background:var(--gray-0);border:1px solid var(--gray-4);border-radius:var(--r-md);padding:9px 11px;resize:vertical;box-sizing:border-box; }
.proj-edit-area:focus{ outline:none;border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.proj-edit-actions{ display:flex;gap:10px;margin-top:var(--s-4); }

/* details expander (full path + meta) */
.proj-details{ margin-top:var(--s-3);border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1); }
.proj-details summary{ cursor:pointer;padding:10px 14px;font-size:var(--fs-base);font-weight:500;color:var(--gray-7);list-style:none; }
.proj-details summary::-webkit-details-marker{ display:none; }
.proj-details summary::before{ content:'▸ ';color:var(--gray-6); }
.proj-details[open] summary::before{ content:'▾ '; }
.proj-details summary:hover{ color:var(--accent-700); }
.proj-details-body{ padding:4px 14px 14px;display:flex;flex-direction:column;gap:2px; }
.det-row{ display:grid;grid-template-columns:130px 1fr;gap:12px;padding:7px 0;border-top:1px solid var(--gray-2);font-size:var(--fs-base);align-items:baseline; }
.det-row:first-child{ border-top:none; }
.det-k{ color:var(--gray-6);font-weight:500; }
.det-v code{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-8);word-break:break-all; }
.proj-fullpath{ display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
@media (max-width:700px){ .det-row{ grid-template-columns:1fr; gap:2px; } }

/* ============================================================================
 * Project Home redesign (2026-06-08) — authored Overview, inline editors, facts
 * grid, owner boundary, add-project modal. Faithful to the locked mockup
 * (decisions/vault-project-home-mockup-2026-06-08.html), translated to real tokens.
 * ==========================================================================*/
/* sidebar header + Add button */
.proj-facet-head{ display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px; }
.proj-add-btn{ font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:#fff;background:var(--accent-500);
  border:none;border-radius:var(--r-md);padding:5px 11px;cursor:pointer; }
.proj-add-btn:hover{ background:var(--accent-600); }

/* read-only owner boundary note */
.proj-ro-note{ display:flex;gap:9px;align-items:flex-start;background:var(--gray-2);border:1px solid var(--gray-3);
  border-left:3px solid var(--owner-rabih);border-radius:var(--r-md);padding:11px 14px;font-size:var(--fs-base);
  color:var(--gray-7);margin-bottom:var(--s-4); }
.proj-ro-note b{ color:var(--gray-9); }

/* authored section card */
.proj-auth-sec{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  padding:18px 20px;margin-bottom:var(--s-4);position:relative; }
.proj-auth-head{ display:flex;align-items:center;gap:9px;margin-bottom:var(--s-3); }
.proj-auth-ico{ font-size:var(--fs-lg); }
.proj-auth-title{ font-size:var(--fs-xl);font-weight:700;margin:0;letter-spacing:-.01em; }
.proj-narr{ font-size:var(--fs-md);color:var(--gray-8);line-height:1.7;margin:0; }

/* source chips */
.proj-src-chip{ font-family:var(--font-mono);font-size:var(--fs-2xs);border-radius:var(--r-pill);padding:2px 7px;
  display:inline-flex;gap:4px;align-items:center; }
.proj-src-chip.src-authored{ background:var(--accent-50);color:var(--accent-700);border:1px solid var(--accent-100); }
.proj-src-chip.src-disk{ background:var(--gray-2);color:var(--gray-6);border:1px solid var(--gray-3); }
.proj-src-chip.src-parsed{ background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border); }

/* edit + lock affordances (owner-gated) */
.proj-edit-aff{ margin-left:auto;font-size:var(--fs-sm);color:var(--accent-600);background:none;
  border:1px solid var(--accent-100);border-radius:var(--r-md);padding:4px 10px;cursor:pointer;
  display:inline-flex;gap:5px;align-items:center;opacity:.9; }
.proj-edit-aff:hover{ background:var(--accent-50);opacity:1; }
.proj-lock-aff{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-5);
  display:inline-flex;gap:4px;align-items:center; }

/* facts grid */
.proj-facts{ display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px; }
.proj-fact{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:12px 14px;background:var(--gray-0); }
.proj-fact .fn{ font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:700;line-height:1;color:var(--gray-9); }
.proj-fact .fk{ font-size:var(--fs-xs);color:var(--gray-6);margin-top:6px; }
.proj-facts-lab{ font-size:var(--fs-sm);color:var(--gray-6);margin-bottom:5px; }
/* Folder path in the hero (up top) — calm, monospace, copy-on-click. */
.proj-hero-path{ display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:10px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);min-width:0; }
.proj-hero-path .pfp-ico{ flex:0 0 auto;font-size:18px;line-height:1;opacity:1;filter:saturate(1.05); }
.proj-hero-path .pfp-path{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-8);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-sm);padding:4px 10px;max-width:54ch; }

/* Installed-primitives usage list (project Primitives tab) — invocation counts, 12-week
   sparkline, and a colour band per primitive (heavy=green · regular=blue · occasional=amber
   · idle=grey). Distribution bar + legend give the at-a-glance "how much do I use my kit". */
.pu-wrap{ margin-top:2px; }
.pu-bands{ display:flex;height:11px;border-radius:999px;overflow:hidden;gap:1px;background:var(--gray-2);margin:10px 0 8px; }
.pu-bands>span{ min-width:3px; }
.pu-hot{ background:#16a34a; } .pu-warm{ background:#2563eb; } .pu-cold{ background:#d97706; } .pu-idle{ background:var(--gray-4); }
.pu-legend{ display:flex;flex-wrap:wrap;gap:14px;font-size:var(--fs-xs);color:var(--gray-6);margin-bottom:12px; }
.pu-leg{ display:inline-flex;align-items:center;gap:6px; }
.pu-leg i{ width:11px;height:11px;border-radius:3px;display:inline-block;flex:0 0 auto; }
.pu-list{ display:flex;flex-direction:column;gap:3px; }
.pu-row{ display:flex;align-items:center;gap:10px;padding:6px 10px 6px 9px;border-radius:var(--r-sm);border-left:3px solid transparent;background:var(--gray-0); }
.pu-row:hover{ background:var(--gray-1); }
.pu-b-hot{ border-left-color:#16a34a; } .pu-b-warm{ border-left-color:#2563eb; } .pu-b-cold{ border-left-color:#d97706; } .pu-b-idle{ border-left-color:var(--gray-4); }
.pu-name{ flex:1 1 auto;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-9);background:none;border:0;padding:0;cursor:pointer; }
.pu-name:hover{ color:var(--accent-600);text-decoration:underline; }
.pu-type{ flex:0 0 auto;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--gray-5);background:var(--gray-2);border-radius:var(--r-sm);padding:1px 6px; }
.pu-count{ flex:0 0 auto;min-width:3ch;text-align:right;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-8);font-variant-numeric:tabular-nums; }
.pu-spark{ flex:0 0 auto;width:84px; }
.pu-idle-det{ margin-top:12px;border-top:1px solid var(--gray-3);padding-top:10px; }
.pu-idle-det>summary{ cursor:pointer;font-size:var(--fs-sm);color:var(--gray-6);user-select:none; }
.pu-idle-det>summary:hover{ color:var(--gray-8); }
.pu-idle-list{ display:flex;flex-wrap:wrap;gap:5px;margin-top:6px; }
.pu-chip{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-sm);padding:2px 7px;cursor:pointer; }
.pu-chip:hover{ color:var(--accent-600);border-color:var(--accent-300); }

/* empty states */
.proj-empty{ border:1px dashed var(--gray-4);border-radius:var(--r-md);padding:20px;text-align:center;background:var(--gray-0); }
.proj-empty p{ color:var(--gray-6);margin:0 0 12px;font-size:var(--fs-base); }
.proj-empty p:last-child{ margin-bottom:0; }
.proj-empty .ebtns{ display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center; }

/* objectives */
.proj-objs{ display:flex;flex-direction:column;gap:13px; }
.proj-objtop{ display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-base);margin-bottom:5px; }
.proj-objtop b{ font-weight:600;color:var(--gray-9); }
.proj-objmeta{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);white-space:nowrap; }
.proj-objbar{ height:8px;background:var(--gray-2);border-radius:999px;overflow:hidden; }
.proj-objbar i{ display:block;height:100%;background:linear-gradient(90deg,var(--accent-500),var(--accent-400));border-radius:999px; }

/* inline editor (authored sections) */
.proj-editor{ border:1px solid var(--accent-200);border-radius:var(--r-md);background:var(--accent-50);padding:13px; }
.proj-ed-area{ width:100%;min-height:90px;font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.55;
  color:var(--gray-9);border:1px solid var(--gray-4);border-radius:var(--r-sm);padding:10px;resize:vertical;
  background:var(--gray-1);box-sizing:border-box; }
.proj-ed-area:focus{ outline:none;border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.proj-ed-row{ display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap; }
.proj-ed-hint{ font-size:var(--fs-2xs);color:var(--gray-6);margin-left:auto;font-family:var(--font-mono); }

/* add-project modal */
.proj-add-modal{ max-width:620px; }
.proj-add-step{ display:flex;gap:10px;align-items:flex-start;margin-bottom:var(--s-4); }
.proj-add-step .num{ flex:0 0 auto;width:22px;height:22px;border-radius:999px;background:var(--accent-500);color:#fff;
  font-size:var(--fs-xs);font-weight:700;display:grid;place-items:center; }
.proj-add-step code{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-8); }
.proj-add-field{ margin-bottom:12px; }
.proj-add-field label{ display:flex;gap:7px;align-items:center;font-size:var(--fs-sm);font-weight:600;color:var(--gray-7);margin-bottom:4px; }
.proj-add-field .num{ color:var(--gray-6); }
.proj-tag-auto{ font-family:var(--font-mono);font-size:var(--fs-2xs);background:var(--ok-bg);color:var(--ok-fg);border-radius:var(--r-pill);padding:1px 6px; }
.proj-tag-need{ font-family:var(--font-mono);font-size:var(--fs-2xs);background:var(--warn-bg);color:var(--warn);border-radius:var(--r-pill);padding:1px 6px; }

/* provenance stat pills (coloured) */
.stat-pill.prov-asis .sv{ color:var(--ok-fg); }
.stat-pill.prov-edited .sv{ color:var(--warn); }
.stat-pill.prov-bespoke .sv{ color:var(--accent-600); }

/* provenance badge */
.prov-badge{ display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;font-size:var(--fs-xs);font-weight:600;
  padding:2px 8px;border-radius:var(--r-sm);white-space:nowrap;cursor:help; }
.prov-badge.prov-asis{ color:var(--ok-fg);background:var(--ok-bg);border:1px solid var(--ok-border); }
.prov-badge.prov-edited{ color:var(--warn);background:var(--warn-bg);border:1px solid #FCD9A8; }
.prov-badge.prov-bespoke{ color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-200); }

/* installed-primitive rows in the provenance section */
.pprim-head{ font-size:var(--fs-sm);font-weight:600;color:var(--gray-7);margin:0 0 8px; }
.pprim-list{ display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px; }
.pprim-row{ display:flex;align-items:center;gap:9px;padding:6px 9px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1); }
.pprim-row .mini-name{ font-family:var(--font-mono);font-size:var(--fs-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.pprim-row .chip-type{ flex:0 0 auto; }

/* ============================================================================
 * F19 Annotations · F18 share-link · F7 cart outputs
 * ==========================================================================*/
.annot-pane{ max-width:72ch; }
.annot-note{ width:100%;font-family:var(--font-sans);font-size:var(--fs-lg);line-height:1.6;color:var(--gray-8);
  border:1px solid var(--gray-3);border-radius:var(--r-md);padding:11px 13px;resize:vertical;background:var(--gray-0); }
.annot-note:focus{ outline:none;border-color:var(--accent-400);box-shadow:var(--focus-ring); }
.annot-tags{ display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 10px; }
.annot-tag{ display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-pill);padding:3px 6px 3px 11px; }
.annot-tag-rm{ border:none;background:none;color:var(--accent-600);cursor:pointer;font-size:var(--fs-lg);line-height:1;padding:0 2px; }
.annot-tag-rm:hover{ color:var(--err-600, #B91C1C); }
.annot-tag-in{ font-family:var(--font-sans);font-size:var(--fs-md);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:8px 12px;min-width:240px;background:var(--gray-0); }
.annot-tag-in:focus{ outline:none;border-color:var(--accent-400);box-shadow:var(--focus-ring); }
.annot-badge{ display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-pill);padding:2px 9px; }

.lib-share{ display:flex;align-items:center;gap:10px;margin:4px 0 14px;flex-wrap:wrap; }
.lib-share-btn{ display:inline-flex;align-items:center;gap:6px;font-size:var(--ctl-font);font-weight:500;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-md);padding:6px 12px;cursor:pointer;transition:all .12s var(--ease); }
.lib-share-btn:hover{ background:var(--accent-100);border-color:var(--accent-300); }
.lib-share-note{ font-size:var(--fs-sm);color:var(--gray-6); }

.cart-out-switch{ flex-wrap:wrap; }

/* ============================================================================
 * F4 Arsenal Readiness · F2 Drift Radar (real corpus tiles)
 * ==========================================================================*/
.arsenal-row{ display:flex;gap:var(--s-6);align-items:center;flex-wrap:wrap; }
/* U3 — banded radial gauge (conic ring + verdict word). Number stays real & computed; colour = band. */
.arsenal-gauge{ flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--s-2); }
.arsenal-ring{ position:relative;width:106px;height:106px;border-radius:999px;display:grid;place-items:center; }
.arsenal-ring-c{ width:80px;height:80px;border-radius:999px;background:var(--gray-1);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1; }
.arsenal-ring-num{ font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:800;color:var(--gray-9);letter-spacing:-.02em; }
.arsenal-ring-den{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);margin-top:3px; }
.arsenal-verdict-word{ font-family:var(--font-display);font-size:var(--fs-sm);font-weight:700;letter-spacing:.05em;text-transform:uppercase; }
/* D6 — one tokenized gap drives the readiness-tile rhythm (was 5 ad-hoc per-element margins). */
.arsenal-body{ flex:1;min-width:280px;display:flex;flex-direction:column;gap:var(--s-3); }
.arsenal-body > p{ margin:0; }
/* D6 — Drift Radar tile: one gap for the number/caption/legend/bars/see-all stack. */
.kpi-stack{ display:flex;flex-direction:column;gap:var(--s-3); }
.kpi-stack > *{ margin-top:0;margin-bottom:0; }
.arsenal-verdict{ font-size:var(--fs-lg);color:var(--gray-8);margin:0 0 var(--s-3);font-weight:500; }
.arsenal-band-key{ display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:0;font-size:var(--fs-sm);color:var(--gray-6); }
.arsenal-band-key .b{ display:inline-flex;align-items:center;gap:6px; }
.arsenal-band-key .b.on{ color:var(--gray-9);font-weight:600; }
.arsenal-band-key .sw{ width:16px;height:8px;border-radius:var(--bar-r);flex:0 0 auto; }
.home-sub-scores{ display:flex;flex-direction:column;gap:var(--s-2); }
.ss-caption{ font-size:var(--fs-sm);color:var(--gray-6);margin-top:0;line-height:1.5; }    /* U5 — replaces the dead "Freshness n/a" bar */
.arsenal-note{ font-size:var(--fs-base);color:var(--gray-6);margin-top:14px;line-height:1.55;border-top:1px solid var(--gray-2);padding-top:10px; }

.drift-bars{ display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0; }
.drift-row{ display:grid;grid-template-columns:130px 1fr 42px auto;gap:10px;align-items:center;font-size:var(--fs-base); }   /* UX-06 — 4th col = re-sync */
.drift-name{ font-family:var(--font-mono);font-size:var(--fs-sm);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.drift-bar{ height:var(--bar-h);border-radius:var(--bar-r);background:var(--gray-2);overflow:hidden;display:flex; }
.drift-bar i{ height:100%;display:block; }
/* On-brand provenance segments (2026-06-08): as-is recedes to calm grey; the "differs" set
 * (edited + bespoke) carries the site's own blues/purple — no off-palette orange. Three
 * clearly-distinct hues: grey / brand-blue / brand-purple. */
.dseg-asis{ background:var(--gray-4); }        /* matches source — calm, recessive */
.dseg-edit{ background:var(--accent-500); }    /* edited (differs) — brand blue */
.dseg-besp{ background:var(--comp-purple); }   /* bespoke / project-only — brand purple, distinct from edited */
.drift-pct{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-7);text-align:right;font-weight:600; }
.drift-pct.hi{ color:var(--warn); }        /* high-drift rows get the attention colour; low rows stay neutral */
.drift-resync{ font-size:var(--fs-xs);color:var(--accent-600);white-space:nowrap;flex:0 0 auto; }   /* UX-06 */
.drift-resync:hover{ color:var(--accent-700);text-decoration:underline; }
.mini-triage{ margin-left:auto;font-size:var(--fs-xs);color:var(--accent-600);white-space:nowrap; }   /* UX-10 */
.mini-triage:hover{ color:var(--accent-700);text-decoration:underline; }
.drift-legend{ display:flex;gap:16px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--gray-6);margin-bottom:var(--s-2); }
.drift-legend span{ display:inline-flex;align-items:center;gap:6px; }
.drift-legend i{ width:14px;height:8px;border-radius:var(--bar-r);display:inline-block; }

/* ============================================================================
 * F1 Blast-Radius / Impact tab
 * ==========================================================================*/
/* D3 — impactPane is its own labelled zone, separated from relPane (was butting straight in). */
.impact-pane{ max-width:760px;margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--gray-2); }
.impact-zonehead{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-6);margin-bottom:var(--s-4); }
.impact-verdict{ margin-bottom:var(--s-5); }
.impact-stat{ display:flex;align-items:baseline;gap:var(--s-3); }   /* number + unit read as one stat */
.impact-reach{ font-family:var(--font-display, var(--font-mono));font-size:var(--fs-display);font-weight:800;line-height:1;color:var(--accent-600); }
.impact-reach-cap{ font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);font-weight:600; }
.impact-verdict-txt{ font-size:var(--fs-md);color:var(--gray-7);margin-top:var(--s-3);line-height:1.5;max-width:68ch; }   /* separated caption, not a third stacked heading */
.impact-canvas{ background:var(--gray-0);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:8px;margin:6px 0 10px; }
.impact-svg{ display:block;max-height:300px; }
/* D4 — generic expandable-viz wrapper: one fullscreen affordance for every dense chart/grid/table. */
.viz-stage{ position:relative; }
.viz-fsbtn{ position:absolute;top:8px;right:8px;z-index:3;font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--gray-4);background:var(--gray-1);border-radius:var(--r-md);padding:3px 9px;color:var(--gray-7);cursor:pointer; }
.viz-fsbtn:hover{ border-color:var(--accent-500);color:var(--accent-600); }
.viz-fs{ position:fixed;inset:0;z-index:300;background:var(--gray-0);padding:52px 24px 24px;overflow:auto;margin:0 !important;max-width:none !important; }
.viz-fs svg{ max-height:calc(100vh - 110px) !important;width:auto;max-width:100%;display:block;margin:0 auto; }
.viz-fs .impact-canvas,.viz-fs .atlas-stage,.viz-fs .depmx-wrap,.viz-fs .cmp-wrap,.viz-fs .tk-table-wrap,.viz-fs .cov-wrap,.viz-fs .graph-canvas{ max-width:none;max-height:none;height:auto; }
.impact-label{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-7);paint-order:stroke;stroke:var(--gray-0);stroke-width:3px;stroke-linejoin:round; }
.impact-center-label{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:#fff; }
.impact-key{ display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--gray-6);margin-bottom:14px; }
.impact-key span{ display:inline-flex;align-items:center;gap:6px; }
.impact-key i{ width:10px;height:10px;border-radius:999px;display:inline-block; }
.impact-group{ margin-top:14px; }
.impact-group h5{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:0 0 7px; }

/* ============================================================================
 * D6 — bespoke-tile de-crowding: a shared labelled-zone vocabulary (mirrors the
 * D3 .impact-zone pattern) so the Arsenal / Drift-Radar / Governance-Health /
 * Gnesis tiles group distinct roles into separated, token-spaced zones.
 * ==========================================================================*/
.tile-zone{ border-top:1px solid var(--gray-2);margin-top:var(--s-4);padding-top:var(--s-4); }
.tile-zone:first-child{ border-top:0;margin-top:0;padding-top:0; }
.tile-zonehead{ font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-6);margin-bottom:var(--s-3); }
.gov-drift.crit{ border-color:#FCA5A5;background:#FEF2F2; }
.gov-drift.crit .gov-drift-head{ color:#B91C1C; }
.gov-issue-targets{ margin-top:var(--s-2); }
.gn-how{ margin-bottom:var(--s-5); }
.gn-how .gn-steps{ margin-bottom:0; }
.gn-how>summary{ font-family:var(--gn-mono);text-transform:uppercase;letter-spacing:.16em;font-size:10px;color:var(--gn-faint);cursor:pointer;list-style:none;padding:var(--s-1) 0;user-select:none; }
.gn-how>summary::-webkit-details-marker{ display:none; }
.gn-how>summary::before{ content:'▸ ';color:var(--gn-sky); }
.gn-how[open]>summary::before{ content:'▾ '; }
.gn-how[open]>summary{ margin-bottom:var(--s-3); }
.gn-title-row{ display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap; }

/* F10 hook-attribution honesty callout */
.attr-gap{ margin-top:var(--s-5);border:1px solid var(--amber-200, #FDE68A);background:var(--amber-50, #FFFBEB);border-radius:var(--r-md);padding:13px 15px; }
.attr-gap-head{ font-size:var(--fs-base);font-weight:600;color:var(--amber-700, #B45309);margin-bottom:5px; }
.attr-gap p{ font-size:var(--fs-base);line-height:1.55;color:var(--gray-7);margin:0; }

/* ============================================================================
 * F3 Overlaps · F11 Coverage matrix
 * ==========================================================================*/
.ovl-layout{ display:grid;grid-template-columns:300px 1fr;gap:var(--s-4);align-items:start;margin-top:var(--s-3); }
@media (max-width:900px){ .ovl-layout{ grid-template-columns:1fr; } }
.ovl-rail{ display:flex;flex-direction:column;gap:8px;max-height:72vh;overflow-y:auto;padding-right:4px; }
.ovl-card{ text-align:left;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:10px 12px;cursor:pointer;transition:all .12s var(--ease); }
.ovl-card:hover{ border-color:var(--gray-6); }
.ovl-card.on{ border-color:var(--accent-400);background:var(--accent-50);box-shadow:0 0 0 3px var(--accent-50); }
.ovl-card-top{ display:flex;align-items:center;justify-content:space-between;gap:8px; }
.ovl-card-label{ font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--gray-9); }
.ovl-card-meta{ font-size:var(--fs-sm);color:var(--gray-6);margin-top:3px; }
.ovl-conf-chip{ font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:600;border-radius:var(--r-pill);padding:2px 8px;text-transform:uppercase;letter-spacing:.04em; }
.ovl-conf-chip.conf-high{ background:#EAFBF3;color:#047857;border:1px solid #A7F3D0; }
.ovl-conf-chip.conf-medium{ background:#FEF6E7;color:#B45309;border:1px solid #FDE68A; }
.ovl-conf-chip.conf-low{ background:var(--gray-2);color:var(--gray-6);border:1px solid var(--gray-3); }
.ovl-detail{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:var(--s-4);min-width:0; }
.ovl-h{ display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:var(--fs-xl);margin:0 0 10px; }
.ovl-signals{ display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px; }
.ovl-sig{ font-size:var(--fs-sm);color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-pill);padding:3px 10px; }
.ovl-members{ display:flex;flex-direction:column;gap:9px; }
.ovl-member{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:10px 12px;background:var(--gray-0); }
.ovl-member-top{ display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.ovl-member-top .mini-name{ font-family:var(--font-mono);font-size:var(--fs-base);font-weight:600; }
.ovl-member-uses{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-left:auto; }
.ovl-member-desc{ font-size:var(--fs-base);color:var(--gray-6);margin:5px 0 0;line-height:1.5; }
.ovl-cluster-actions{ margin-top:14px; }

.cov-wrap{ overflow-x:auto;margin-top:var(--s-3);border:1px solid var(--gray-3);border-radius:var(--r-lg);background:var(--gray-0); }
.cov-grid{ display:grid;gap:3px;padding:10px;min-width:680px; }
.cov-head{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);text-transform:uppercase;letter-spacing:.04em;text-align:center;align-self:end;padding-bottom:4px; }
.cov-rowname{ font-family:var(--font-mono);font-size:var(--fs-sm);text-align:left;color:var(--gray-7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px; }
.cov-cell{ height:30px;border-radius:4px;border:1px solid var(--gray-2);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;display:grid;place-items:center;transition:transform .08s; }
.cov-cell:hover{ transform:scale(1.08);border-color:var(--accent-400);z-index:1; }
.cov-total{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);display:grid;place-items:center; }
.cov-breadth{ display:flex;flex-direction:column;gap:6px;margin-top:var(--s-3); }
.cov-breadth-row{ display:grid;grid-template-columns:200px 1fr 56px;gap:10px;align-items:center; }
.cov-breadth-row .mini-name{ font-family:var(--font-mono);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.cov-breadth-track{ height:14px;background:var(--gray-2);border-radius:999px;overflow:hidden; }
.cov-breadth-fill{ height:100%;background:linear-gradient(90deg,var(--accent-500),var(--accent-300));border-radius:999px; }
.cov-breadth-n{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);text-align:right; }

/* ============================================================================
 * F5 Source diff viewer · F15 doc-drift impact
 * ==========================================================================*/
.pprim-diff{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);background:var(--gray-1);
  border:1px solid var(--gray-3);border-radius:var(--r-pill);padding:2px 9px;cursor:pointer;transition:all .12s var(--ease);white-space:nowrap; }
.pprim-diff:hover{ border-color:var(--accent-400);color:var(--accent-700);background:var(--accent-50); }
.pprim-diff .dd-add{ color:#047857;font-weight:600; } .pprim-diff .dd-del{ color:var(--crit-fg);font-weight:600; }
.diff-drawer{ display:flex;flex-direction:column;gap:12px; }
.diff-summary{ display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.diff-stat{ font-weight:700;border-radius:var(--r-sm);padding:2px 9px; }
.diff-stat.add{ color:#047857;background:#EAFBF3;border:1px solid #A7F3D0; }
.diff-stat.del{ color:var(--crit-fg);background:#FEF2F2;border:1px solid #FECACA; }
.diff-meta{ font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis; }
.diff-body{ font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.55;border:1px solid var(--gray-3);border-radius:var(--r-md);overflow:auto;background:var(--gray-0);max-height:52vh; }
.diff-body .dl{ padding:1px 12px;white-space:pre-wrap;word-break:break-word; }
.dl-add{ background:#EAFBF3;color:#065F46; } .dl-del{ background:#FEF2F2;color:#991B1B; }
.dl-ctx{ color:var(--gray-6); } .dl-gap{ color:var(--gray-4);font-style:italic;background:var(--gray-1);text-align:center; }
.diff-actions{ display:flex;gap:8px;flex-wrap:wrap; }

/* ── Compare with Wassim — side-by-side drift diff (Option B) ───────────────
 * Colors use color-mix on a fixed green/red so they stay readable on BOTH the
 * light TBK theme and the Genesis dark theme (the hardcoded .dl-* palette above
 * is light-only — overridden here inside .cmp-wrap for the unified view). */
.cmp-wrap{ display:flex;flex-direction:column;gap:10px; }
.cmp-head{ display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.cmp-status{ font-size:var(--fs-sm);font-weight:700;padding:3px 11px;border-radius:var(--r-pill); }
.cmp-counts{ display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);flex-wrap:wrap; }
.cmp-path{ font-size:var(--fs-xs);color:var(--gray-6);overflow:hidden;text-overflow:ellipsis; }
.cmp-path code{ font-family:var(--font-mono);font-size:var(--fs-xs);word-break:break-all; }
.cmp-toggle{ display:inline-flex;border:1px solid var(--gray-3);border-radius:var(--r-pill);overflow:hidden;width:max-content; }
.cmp-mb{ background:transparent;border:0;padding:6px 13px;font-size:var(--ctl-font);cursor:pointer;color:var(--gray-6);transition:all .12s var(--ease); }
.cmp-mb.on{ background:var(--accent-500);color:#fff; }
.cmp-diff{ border:1px solid var(--gray-3);border-radius:var(--r-md);overflow:auto;max-height:62vh;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.5;background:var(--gray-0); }
.cmp-split{ display:grid;grid-template-columns:1fr 1fr; }
.cmp-colhead{ position:sticky;top:0;background:var(--gray-1);font-weight:700;font-size:var(--fs-xs);padding:6px 12px;border-bottom:1px solid var(--gray-3);color:var(--gray-7);z-index:1; }
.cmp-colhead.cmp-l, .cmp-cell.cmp-l{ border-right:1px solid var(--gray-2); }
.cmp-cell{ padding:1px 12px;white-space:pre-wrap;word-break:break-word;min-height:1.5em; }
.cmp-cell.cmp-del{ background:color-mix(in srgb,#dc2626 15%,transparent);color:var(--gray-9); }
.cmp-cell.cmp-add{ background:color-mix(in srgb,#16a34a 17%,transparent);color:var(--gray-9); }
.cmp-cell.dl-gap{ color:var(--gray-5);font-style:italic;background:var(--gray-1);text-align:center; }
.cmp-wrap .dl-add{ background:color-mix(in srgb,#16a34a 17%,transparent);color:var(--gray-9); }
.cmp-wrap .dl-del{ background:color-mix(in srgb,#dc2626 15%,transparent);color:var(--gray-9); }
.cmp-wrap .dl-ctx{ color:var(--gray-6); }
/* ── Owner filter · Vault Sync · Feed ──────────────────────────────────────
 * D6 (2026-06-05): consolidated here from app.js injectOwnerStyles so the design
 * system lives in ONE file. The sync row was renamed .sw-row → .sync-row to end
 * the collision with the detail-view .sw-row (grid) above — the injected flex rule
 * used to override it globally whenever the owner filter was active. */
.owner-filter{ display:inline-flex;align-items:center;gap:2px;height:30px;padding:2px;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1);margin-right:6px;box-sizing:border-box; }
.owner-seg{ font:inherit;font-size:var(--fs-md);font-weight:600;display:inline-flex;align-items:center;height:100%;padding:0 11px;border:0;border-radius:var(--r-md);background:transparent;color:var(--gray-6);cursor:pointer;line-height:1; }
.owner-seg.active{ background:var(--accent-500);color:#fff; }
.owner-badge{ display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:var(--label-font);font-weight:500;line-height:1;border-radius:var(--r-sm);color:var(--ob,#64748b);background:color-mix(in srgb, var(--ob,#64748b) 12%, transparent);border:1px solid color-mix(in srgb, var(--ob,#64748b) 30%, transparent);white-space:nowrap; }
.sync-dot{ width:7px;height:7px;border-radius:999px;display:inline-block;flex:0 0 auto; }
.sync-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0; }
.sync-card{ border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:18px 20px;background:var(--gray-1);cursor:pointer;transition:border-color .15s; }
.sync-card:hover{ border-color:var(--accent-400); }
.sync-card .sc-n{ font-family:var(--font-display,inherit);font-size:var(--fs-4xl);font-weight:800;line-height:1; }
.sync-card .sc-l{ font-size:var(--fs-base);font-weight:600;margin-top:4px; }
.sync-card .sc-d{ font-size:var(--fs-sm);color:var(--gray-6);margin-top:8px;line-height:1.5; }
.sync-bars{ display:flex;gap:3px;margin-top:12px;height:8px;border-radius:4px;overflow:hidden; }
.sync-bars i{ display:block;height:100%; }
.sync-worklist{ border:1px solid var(--gray-3);border-radius:var(--r-lg);background:var(--gray-1);margin-top:8px; }
.sync-row{ display:flex;align-items:center;gap:10px;padding:9px 16px;border-top:1px solid var(--gray-2);cursor:pointer; }
.sync-row:first-child{ border-top:0; }
.sync-row .swr-name{ font-weight:600;font-size:var(--fs-base); }
.sync-row .swr-dom{ font-size:var(--fs-xs);color:var(--gray-6);font-family:var(--font-mono,monospace); }
.sync-row .swr-tag{ margin-left:auto;font-size:var(--fs-sm);font-weight:600;padding:3px 8px;border-radius:var(--r-pill); }
.sync-row .swr-cmp{ margin-left:8px;border:1px solid var(--gray-3);background:transparent;color:var(--accent-700);font-size:var(--ctl-font-dense);font-weight:600;padding:4px 11px;border-radius:var(--r-pill);cursor:pointer;transition:all .12s var(--ease); }
.sync-row .swr-cmp:hover{ border-color:var(--accent-400);background:var(--accent-50); }
/* Vault Updates (OCC→vault change list) — approval bar + checkable rows */
.vsync-bar{ display:flex;align-items:center;gap:14px;margin:16px 0 0;padding:12px 16px;border:1px solid var(--gray-3);border-radius:var(--r-lg);background:var(--gray-1); }
.vsync-all{ display:flex;align-items:center;gap:8px;font-weight:600;font-size:var(--fs-base);cursor:pointer;user-select:none; }
.vsync-all input{ accent-color:var(--accent-500);width:16px;height:16px;cursor:pointer; }
.vsync-count{ font-size:var(--fs-sm);color:var(--gray-6);font-family:var(--font-mono,monospace); }
.vsync-apply{ margin-left:auto; }
.vsync-apply:disabled{ opacity:.45;cursor:not-allowed; }
.vsync-row{ cursor:default; }
.vsync-row.on{ background:color-mix(in srgb,var(--accent-500) 6%,transparent); }
.vsync-cbwrap{ display:inline-flex;align-items:center;cursor:pointer; }
.vsync-cb{ width:16px;height:16px;accent-color:var(--accent-500);cursor:pointer; }
.feed-lanes{ display:grid;gap:20px; }
.feed-owner{ border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:16px 18px;background:var(--gray-1); }
.feed-owner-head{ display:flex;align-items:center;gap:10px;margin-bottom:14px; }
.feed-lane{ margin:0; }
.feed-lane + .feed-lane{ margin-top:16px; }
/* Each lane opens with a filled header bar (icon + label) so the three sections —
   ✨ primitives, 📁 projects, 🔥 most reached-for — read as distinct blocks, not one list. */
.feed-lane h4{ display:flex;align-items:center;gap:8px;margin:0 0 4px;padding:7px 11px;background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-700); }
.feed-lane h4 .fl-ico{ font-size:14px;line-height:1;flex:0 0 auto; }
.feed-row{ display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--gray-2);cursor:pointer; }
.feed-row:first-child{ border-top:0; }
.feed-row .fr-name{ font-weight:600;font-size:var(--fs-base); }
.feed-row .fr-meta{ font-size:var(--fs-sm);color:var(--gray-6);margin-left:auto;font-family:var(--font-mono,monospace); }
@media (max-width:640px){ .cmp-split{ grid-template-columns:1fr; } .cmp-colhead.cmp-l, .cmp-cell.cmp-l{ border-right:0; } }

.gov-drift{ margin-top:22px;border:1px solid #FDE68A;background:#FFFBEB;border-radius:var(--r-md);padding:13px 15px; }
.gov-drift-head{ font-size:var(--fs-base);font-weight:600;color:#B45309;margin-bottom:4px; }
.gov-drift-sub{ font-size:var(--fs-base);color:var(--gray-7);margin:0 0 4px;line-height:1.5; }

/* ── Governance doc detail: tabs (A1) + meta blocks (A2) ─────────────────── */
.gov-dtabs{ display:flex;gap:4px;border-bottom:1px solid var(--gray-2);margin:-4px 0 16px;position:sticky;top:0;background:var(--gray-1);z-index:2; }
.gov-dtab{ font-family:inherit;font-size:var(--fs-base);font-weight:500;color:var(--gray-6);background:none;border:none;border-bottom:2px solid transparent;padding:9px 12px;cursor:pointer;transition:color .12s,border-color .12s;display:inline-flex;align-items:center;gap:6px; }
.gov-dtab:hover{ color:var(--gray-9); }
.gov-dtab.active{ color:var(--accent-600);border-bottom-color:var(--accent-500);font-weight:600; }
.gov-dtab .gd-count{ font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--gray-1);color:var(--gray-6);border-radius:var(--r-pill);padding:1px 6px; }
.gov-dtab.active .gd-count{ background:var(--accent-50);color:var(--accent-600); }

/* In-document Find (decisions F1–F5, 2026-06-08). F1: sticky bar pinned just
 * under the sticky doc tabs in the reader drawer. F4: counter + ▲/▼ + clear. */
.gov-find{ position:sticky;top:38px;z-index:1;display:flex;align-items:center;gap:6px;
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);
  padding:5px 8px;margin:0 0 16px;box-shadow:0 2px 8px rgba(10,22,40,.05); }
.gov-find-ico{ display:inline-flex;align-items:center;color:var(--gray-5);flex:0 0 auto; }
.gov-find-ico svg{ width:15px;height:15px; }
.gov-find-input{ flex:1 1 auto;min-width:0;border:none;background:none;outline:none;
  font-family:inherit;font-size:var(--fs-base);color:var(--gray-9);padding:4px 2px; }
.gov-find-input::placeholder{ color:var(--gray-5); }
.gov-find-count{ flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);
  min-width:44px;text-align:right;white-space:nowrap; }
.gov-find-count.nohit{ color:var(--amber-700); }
.gov-find-nav,.gov-find-clear{ flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;
  border:1px solid var(--gray-3);background:var(--gray-0);color:var(--gray-7);border-radius:var(--r-sm);
  cursor:pointer;font-size:11px;line-height:1;transition:background .12s,color .12s,border-color .12s; }
.gov-find-clear{ font-size:15px; }
.gov-find-nav:hover:not(:disabled),.gov-find-clear:hover{ background:var(--accent-50);color:var(--accent-700);border-color:var(--accent-200); }
.gov-find-nav:disabled{ opacity:.4;cursor:default; }
mark.gov-find-hit{ background:#FFE08A;color:inherit;border-radius:2px;padding:0 1px;scroll-margin:88px; }
mark.gov-find-hit.is-current{ background:#FFC400;outline:2px solid var(--amber-700);outline-offset:0; }

.gmeta-sec{ margin:0 0 20px; }
.gmeta-sec:last-child{ margin-bottom:0; }
.gmeta-head{ font-size:var(--fs-base);font-weight:600;color:var(--gray-9);margin:0 0 8px;display:flex;align-items:center;gap:8px; }
.gmeta-head .gm-ico{ width:18px;text-align:center; }
.gmeta-sec.end .gmeta-head{ color:#B45309; }
.gmeta-empty{ font-size:var(--fs-base);color:var(--gray-6);font-style:italic; }
.gmeta-row{ display:flex;gap:8px;font-size:var(--fs-base);color:var(--gray-7);padding:3px 0; }
.gmeta-row .gm-k{ flex:0 0 110px;color:var(--gray-6);font-family:var(--font-mono);font-size:var(--fs-xs); }
.gmeta-row .gm-v{ min-width:0;word-break:break-word; }
.gm-mirror{ font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--gray-2);border-radius:4px;padding:1px 6px;color:var(--gray-6);margin-right:5px; }
.gm-path{ font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--accent-50);color:var(--accent-700,#0044AA);border:1px solid var(--accent-100,#DBECFF);border-radius:5px;padding:2px 8px;word-break:break-all; }
.gver-list{ display:flex;flex-direction:column;gap:6px; }
.gver{ display:flex;align-items:center;gap:10px;font-size:var(--fs-base);border:1px solid var(--gray-2);border-radius:var(--r-sm,6px);padding:7px 11px;background:var(--gray-0,#FBFCFE); }
.gver-cur{ border-color:var(--accent-200,#BBD4FF);background:var(--accent-50); }
.gver-label{ font-weight:600;color:var(--gray-9);flex:0 0 auto; }
.gver-date{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.gver-words{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-left:auto; }
.gver-diff{ font-family:inherit;font-size:var(--fs-sm);color:var(--accent-600);background:none;border:1px solid var(--accent-200,#BBD4FF);border-radius:5px;padding:3px 9px;cursor:pointer; }
.gver-diff:hover{ background:var(--accent-50); }

/* HTML-template live preview (D3) */
.gtmpl-html{ border:1px solid var(--gray-2);border-radius:var(--r-md);overflow:hidden;background:#fff; }
.gtmpl-html iframe{ width:100%;height:560px;border:0;display:block;background:#fff; }
.gtmpl-bar{ display:flex;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--gray-2);background:var(--gray-0,#FBFCFE); }
.gtmpl-bar .gt-note{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);margin-right:auto; }

/* clickable section title (A3) */
.lib-title.clickable{ cursor:pointer; }
.lib-title.clickable:hover{ color:var(--accent-600); }

/* ── Governance annotations: notes + propose-edit (B1/B2) ───────────────── */
.gov-annot{ margin-top:24px;border:1px solid var(--gray-2);border-radius:var(--r-md);background:var(--gray-0,#FBFCFE);overflow:hidden; }
.gov-annot-sum{ cursor:pointer;list-style:none;padding:11px 15px;font-size:var(--fs-base);font-weight:600;color:var(--gray-8);display:flex;align-items:center;gap:8px;user-select:none; }
.gov-annot-sum::-webkit-details-marker{ display:none; }
.gov-annot-sum::before{ content:'▸';color:var(--gray-6);font-size:var(--fs-xs);transition:transform .12s; }
.gov-annot[open] .gov-annot-sum::before{ transform:rotate(90deg); }
.gov-annot[open] .gov-annot-sum{ border-bottom:1px solid var(--gray-2); }
.gov-annot-body{ padding:13px 15px; }
.gov-annot-body .annot-note{ width:100%;font-family:inherit;font-size:var(--fs-base);color:var(--gray-9);background:var(--gray-1);border:1px solid var(--gray-2);border-radius:var(--r-sm,6px);padding:8px 11px;resize:vertical; }
.gov-annot-body .annot-note:focus{ outline:none;border-color:var(--accent-500);box-shadow:var(--focus-ring); }
.gov-annot-body .pane-subhead{ font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:12px 0 5px;font-family:var(--font-mono); }
.gov-annot-acts{ display:flex;gap:8px;flex-wrap:wrap;margin-top:12px; }

/* ── Governance Health board (E1) ───────────────────────────────────────── */
.gh-row{ display:grid;grid-template-columns:1fr 92px 1.1fr 90px;gap:12px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--gray-1);font-size:var(--fs-base); }
.gh-name{ text-align:left;font-weight:500;color:var(--gray-9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.gh-date{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.gh-track{ height:7px;border-radius:7px;background:var(--gray-1);overflow:hidden; }
.gh-fill{ height:100%;border-radius:7px;display:block; }
.gh-fill.ok{ background:#0077FF; } .gh-fill.warn{ background:#64748B; } .gh-fill.bad{ background:#1E293B; }   /* J2 mono */
.gh-age{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);text-align:right; }
.gh-rule{ display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--gray-1);font-size:var(--fs-base); }
.gh-rule .gh-name{ flex:1; }
.gh-comp{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;border-radius:var(--r-pill);padding:2px 9px;flex:0 0 auto; }
.gh-comp.bad{ background:#FEF2F2;color:var(--crit-fg);border:1px solid #FCA5A5; }
.gh-comp.ok{ background:#EAFBF3;color:#047857;border:1px solid #A7F3D0; }
.gh-drill{ font-family:inherit;font-size:var(--ctl-font-dense);color:var(--accent-600);background:none;border:1px solid var(--accent-200,#BBD4FF);border-radius:var(--r-md);padding:5px 11px;cursor:pointer;flex:0 0 auto; }
.gh-drill:hover{ background:var(--accent-50); }
.adj-tgt.dead{ color:var(--crit-fg);border-color:#FCA5A5;background:#FEF2F2;cursor:default; }

/* ── Glossary (E1) ───────────────────────────────────────────────────────── */
.gloss-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-3); }
.gloss-card{ border:1px solid var(--gray-2);border-radius:var(--r-md);padding:14px 16px;background:var(--gray-1); }
.gloss-term{ font-size:var(--fs-md);font-weight:600;color:var(--gray-9);margin-bottom:5px; }
.gloss-def{ font-size:var(--fs-base);color:var(--gray-7);line-height:1.5;margin:0 0 9px; }
.gloss-src{ font-size:var(--fs-sm);font-weight:500;color:var(--accent-600);text-align:left; }
.gloss-src.muted{ color:var(--gray-6);font-family:var(--font-mono);font-size:var(--fs-xs); }

/* ── Doc-list full-text snippet + note dot + decision icon (E1/B) ───────── */
.gov-doc-snip{ display:block;font-size:var(--fs-sm);color:var(--gray-6);margin-top:4px;line-height:1.45;font-style:italic; }
.gov-note-dot{ font-size:var(--fs-2xs);margin-left:5px; }
.gov-doc-ico.dec{ background:#F3E8FF;color:#7E22CE; }

/* ── Primitive detail → "Governed by" reverse-link (deferred bit) ────────── */
.gov-by-list{ display:flex;flex-direction:column;gap:8px;margin-top:8px; }
.gov-by-row{ display:flex;align-items:center;gap:12px;border:1px solid var(--gray-2);border-radius:var(--r-sm,6px);padding:9px 13px;background:var(--gray-0,#FBFCFE); }
.gov-by-stat{ flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700; }
.gov-by-stat.pass{ background:#EAFBF3;color:#047857; } .gov-by-stat.fail{ background:#FEF2F2;color:var(--crit-fg); } .gov-by-stat.na{ background:var(--gray-1);color:var(--gray-6); }
.gov-by-body{ flex:1;min-width:0; }
.gov-by-rule{ text-align:left;font-size:var(--fs-base);font-weight:600;color:var(--gray-9);display:block; }
.gov-by-rule:hover{ color:var(--accent-600); }
.gov-by-note{ font-size:var(--fs-sm);color:var(--gray-6);display:block;margin-top:1px; }
.gov-by-verdict{ flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;border-radius:var(--r-pill);padding:2px 9px; }
.gov-by-verdict.pass{ background:#EAFBF3;color:#047857;border:1px solid #A7F3D0; }
.gov-by-verdict.fail{ background:#FEF2F2;color:var(--crit-fg);border:1px solid #FCA5A5; }
.gov-by-verdict.na{ background:var(--gray-1);color:var(--gray-6);border:1px solid var(--gray-2); }

/* ── Templates browser: 6-type taxonomy (D1/D2/D3) ──────────────────────── */
.tmpl-type-group{ margin:0 0 26px; }
.tmpl-type-head{ display:flex;align-items:center;gap:9px;margin:0 0 3px; }
.tmpl-type-ico{ font-size:var(--fs-lg); }
.tmpl-type-name{ font-size:var(--fs-lg);font-weight:600;color:var(--gray-9); }
.tmpl-type-desc{ font-size:var(--fs-base);color:var(--gray-6);margin:0 0 11px;line-height:1.5;max-width:80ch; }
.gov-doc.tmpl-card{ align-items:center; }
.gov-doc-ico.html{ background:#F3E8FF;color:#7E22CE; }
.gov-doc-fmt{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:600;border-radius:var(--r-pill);padding:2px 7px;letter-spacing:.04em;flex:0 0 auto; }
.gov-doc-fmt.md{ background:var(--accent-50);color:var(--accent-600); }
.gov-doc-fmt.html{ background:#F3E8FF;color:#7E22CE; }

/* ============================================================================
 * TRACKING view — API + Subscription source-of-truth + live cost
 * (header now routes through the shared sectionHead() / .lib-title — the old
 *  bespoke .tk-title was the page-header outlier and has been retired)
 * ==========================================================================*/
.tk-banner{
  background:var(--warn-bg); border:1px solid var(--warn-border); border-left:4px solid var(--warn);
  color:var(--gray-9); border-radius:var(--r-md); padding:11px 14px; margin:var(--s-3) 0; font-size:var(--fs-md); line-height:1.55;
}
.tk-banner b{ color:var(--warn); }

.tk-subtabs{ display:flex; gap:8px; margin:var(--s-4) 0 0; border-bottom:1px solid var(--gray-3); padding-bottom:0; }
.tk-subtab{
  appearance:none; background:transparent; border:1px solid transparent; border-bottom:2px solid transparent;
  padding:9px 16px; font-family:var(--font-display); font-weight:700; font-size:var(--fs-base); letter-spacing:.04em; text-transform:uppercase;
  color:var(--gray-6); border-radius:var(--r-md) var(--r-md) 0 0; margin-bottom:-1px;
}
.tk-subtab:hover{ color:var(--accent-600); }
.tk-subtab.is-on{ color:var(--accent-700); border-bottom-color:var(--accent-500); background:var(--accent-50); }
.tk-subtab-ct{ margin-left:7px; font-family:var(--font-mono); font-weight:500; font-size:var(--fs-xs); opacity:.7; }

/* UX-16 — keep the scroll container, add a horizontal scroll AFFORDANCE: a right/left
 * edge shadow that shows only while more table is off-screen (canonical CSS scroll-shadow,
 * background-attachment:local), plus iOS momentum scrolling. No JS. */
.tk-table-wrap{ max-height:calc(100vh - 240px); overflow:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--gray-3); border-radius:var(--r-lg); box-shadow:var(--shadow-sm);
  background-color:var(--gray-1);
  background-image:
    linear-gradient(to right, var(--gray-1) 30%, transparent),
    linear-gradient(to left,  var(--gray-1) 30%, transparent),
    radial-gradient(farthest-side at 0 50%, rgba(15,23,42,.12), transparent),
    radial-gradient(farthest-side at 100% 50%, rgba(15,23,42,.12), transparent);
  background-position:left center, right center, left center, right center;
  background-repeat:no-repeat;
  background-size:28px 100%, 28px 100%, 12px 100%, 12px 100%;
  background-attachment:local, local, scroll, scroll; }
.tk-table{ width:100%; border-collapse:separate; border-spacing:0; min-width:880px; }
.tk-table th{
  text-align:left; padding:10px 12px; background:var(--gray-2); font-family:var(--font-display); font-weight:700;
  font-size:var(--fs-2xs); letter-spacing:.07em; text-transform:uppercase; color:var(--gray-7); border-bottom:1px solid var(--gray-3); white-space:nowrap;
  position:sticky; top:0; z-index:2;   /* U20 — header stays put while the table body scrolls */
}
.tk-table td{ padding:11px 12px; border-bottom:1px solid var(--gray-2); vertical-align:top; font-size:var(--fs-base); }
.tk-table tr:last-child td{ border-bottom:none; }
.tk-table tbody tr:nth-child(even) td{ background:var(--gray-0); }   /* U20 zebra — declared before :hover so hover still wins */
.tk-table tbody tr:hover td{ background:var(--accent-50); }
/* U20 — right-align the money column so figures line up; quiet the billing link */
.tk-table th.tk-col-cost, .tk-table td.tk-col-cost{ text-align:right; }
.tk-table td.tk-col-cost .tk-cost-main{ justify-content:flex-end; }
.tk-table td.tk-col-cost .tk-cost{ display:inline-block; text-align:right; }
.tk-table .lnk{ font-size:var(--fs-xs); color:var(--gray-6); }
.tk-table .lnk:hover{ color:var(--accent-600); text-decoration:underline; }

.tk-vendor{ font-family:var(--font-display); font-weight:700; font-size:var(--fs-base); color:var(--gray-9); letter-spacing:.01em; }
.tk-vendor-sub{ font-size:var(--fs-sm); color:var(--gray-6); margin-top:2px; }

.tk-key{ min-width:170px; }
.tk-key-name{ font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--gray-6); margin-bottom:3px; word-break:break-word; }
.tk-key-row{ display:flex; align-items:center; gap:6px; }
.tk-key-val{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--gray-9); background:var(--gray-2); border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:2px 7px; letter-spacing:.06em; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tk-key-note{ font-size:var(--fs-2xs); color:var(--gray-7); margin-top:3px; font-style:italic; }
.tk-eye{ appearance:none; background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:2px 6px; font-size:var(--fs-sm); line-height:1; color:var(--gray-7); }
.tk-eye:hover{ border-color:var(--accent-400); background:var(--accent-50); }

.tk-bill{ display:inline-block; padding:2px 7px; border-radius:var(--r-sm); font-size:var(--fs-2xs); font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.tk-bill-payg{ background:var(--accent-50); color:var(--accent-700); }
.tk-bill-sub{ background:var(--t-agent-bg); color:var(--t-agent-fg); }
.tk-bill-free{ background:var(--ok-bg); color:var(--ok-fg); }
.tk-bill-oauth{ background:var(--gray-2); color:var(--gray-7); }
.tk-bill-unknown{ background:var(--gray-2); color:var(--gray-6); }

.tk-uses{ display:flex; flex-wrap:wrap; gap:4px; max-width:180px; }
.tk-use{ display:inline-block; padding:1px 7px; border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:600; background:var(--gray-2); color:var(--gray-7); border:1px solid var(--gray-3); }
.tk-use-proj{ background:var(--accent-50); color:var(--accent-700); border-color:var(--accent-200); cursor:pointer; }
.tk-use-proj:hover{ background:var(--accent-100); }

.tk-cost{ min-width:130px; }
.tk-cost-main{ font-family:var(--font-display); font-weight:700; font-size:var(--fs-md); color:var(--gray-9); display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tk-cost-sub{ font-size:var(--fs-xs); color:var(--gray-6); margin-top:2px; }
.tk-cost-est{ font-size:var(--fs-xs); color:var(--t-agent-fg); margin-top:3px; font-family:var(--font-mono); }
.tk-snap{ display:inline-block; padding:1px 5px; border-radius:3px; font-size:var(--fs-2xs); font-weight:700; letter-spacing:.05em; font-family:var(--font-display); }
.tk-snap-fresh{ background:var(--ok-bg); color:var(--ok-fg); }
.tk-snap-pending{ background:var(--warn-bg); color:var(--warn); }

.tk-notes{ font-size:var(--fs-sm); color:var(--gray-6); line-height:1.45; max-width:240px; }
.tk-muted{ color:var(--gray-7); }
.tk-renew{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--gray-8); }
.tk-email{ font-family:var(--font-mono); font-size:var(--fs-sm); padding:5px 8px; border:1px solid var(--gray-3); border-radius:var(--r-sm); background:var(--gray-1); color:var(--gray-9); width:100%; min-width:150px; max-width:230px; }
.tk-email:focus-visible{ border-color:var(--accent-400); }

/* ── S6 · Semantic Wizard ─────────────────────────────────────────────────── */
.wiz-pane{ display:flex; flex-direction:column; gap:var(--s-3); }
.wiz-form{ display:flex; flex-direction:column; gap:var(--s-2); }
.wiz-name{ font-family:var(--font-mono); font-size:var(--fs-base); padding:8px 11px; border:1px solid var(--gray-4); border-radius:var(--r-sm); background:var(--gray-1); color:var(--gray-9); max-width:380px; }
.wiz-name:focus-visible{ border-color:var(--accent-400); }
.wiz-draft{ font-family:var(--font-mono); font-size:var(--fs-base); line-height:1.55; padding:11px 13px; border:1px solid var(--gray-4); border-radius:var(--r-sm); background:var(--gray-1); color:var(--gray-9); resize:vertical; min-height:150px; width:100%; }
.wiz-draft:focus-visible{ border-color:var(--accent-400); }
.wiz-actions{ display:flex; gap:var(--s-2); }
.wiz-out{ display:flex; flex-direction:column; gap:var(--s-3); }
.wiz-card{ border:1px solid var(--gray-3); border-radius:var(--r-lg); background:var(--gray-1); padding:var(--s-4); }
.wiz-card h4{ margin:0 0 var(--s-2); font-size:var(--fs-base); font-weight:600; color:var(--gray-9); }
.wiz-type{ display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; }
.wiz-sig{ font-size:var(--fs-base); color:var(--gray-7); }
.wiz-note{ font-size:var(--fs-sm); color:var(--gray-6); margin:var(--s-2) 0 0; line-height:1.5; }
.wiz-doms{ display:flex; gap:var(--s-2); flex-wrap:wrap; }
.wiz-naming{ margin:0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.wiz-naming li{ font-size:var(--fs-base); line-height:1.5; color:var(--gray-7); }
.wiz-naming li.ok b{ color:var(--ok-fg); } .wiz-naming li.bad b{ color:var(--err-600,#B91C1C); } .wiz-naming li.warn b{ color:var(--warn); }
.wiz-gates{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:5px; }
.wiz-gates li{ font-size:var(--fs-base); line-height:1.5; color:var(--gray-7); }
.wiz-gates li b{ color:var(--gray-9); font-weight:600; }
.wiz-ov{ display:flex; gap:var(--s-2); flex-wrap:wrap; margin-top:var(--s-2); }

/* ── S3 · Top Actions Engine (Home panel + #/actions board) ── */
.act-summary{ display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; margin-bottom:var(--s-3); }
.act-sev-pill{ font-family:var(--font-mono); font-size:var(--label-font); font-weight:600; padding:3px 9px; border-radius:var(--r-pill); background:var(--gray-2); color:var(--gray-7); border:1px solid transparent; cursor:pointer; }
.act-sev-pill:hover{ box-shadow:0 0 0 2px var(--accent-100); }
.act-sev-pill.sev-P0{ background:var(--crit-bg); color:var(--crit-fg); }
.act-sev-pill.sev-P1{ background:var(--err-bg); color:var(--err-600,#B91C1C); }
.act-sev-pill.sev-P2{ background:var(--accent-50); color:var(--accent-700); }
.act-sev-pill.sev-P3{ background:var(--gray-2); color:var(--gray-6); }
.act-list{ display:flex; flex-direction:column; gap:var(--s-2); }
.act-row{ border:1px solid var(--gray-3); border-radius:var(--r-lg); background:var(--gray-1); padding:11px 13px; }
.act-row.act-done{ opacity:.55; }
.act-head{ display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap; }
.act-rank{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--gray-7); min-width:18px; text-align:right; }   /* gray-5 failed AA on white; gray-7 passes */
.act-fix{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; text-transform:uppercase; letter-spacing:.03em; padding:2px 7px; border-radius:4px; background:var(--accent-50); color:var(--accent-700); border:1px solid var(--accent-100); white-space:nowrap; }
.act-reranked{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; color:var(--gray-7); background:var(--gray-1); border:1px solid var(--gray-3); border-radius:4px; padding:2px 6px; white-space:nowrap; cursor:help; }   /* engine lowered this from its detector severity — shown, never silent (Fork 3) */
/* Kamini "on this row" indicator — avatar appears next to the title while a fix is active */
.act-kam-av{ position:relative; width:22px; height:22px; flex:none; display:inline-grid; place-items:center; }
.act-kam-av[hidden]{ display:none; }
.act-kam-av img{ width:22px; height:22px; border-radius:50%; object-fit:cover; display:block; border:1.5px solid #2FA68C; background:#fff; }
.act-kam-av .kam-ring{ position:absolute; inset:-3px; border-radius:50%; border:2px solid #2FA68C; opacity:0; pointer-events:none; }
.act-kam-av.working .kam-ring{ animation:kamPulse 1.5s ease-out infinite; }
@keyframes kamPulse{ 0%{ transform:scale(.8); opacity:.55 } 100%{ transform:scale(1.35); opacity:0 } }
@media (prefers-reduced-motion: reduce){ .act-kam-av.working .kam-ring{ animation:none; opacity:.45 } }
.act-title{ font-size:var(--fs-md); font-weight:600; color:var(--gray-9); flex:1; min-width:220px; }
.act-title-lnk{ background:none; border:none; cursor:pointer; padding:0; text-align:left; font-family:inherit; }
.act-title-lnk:hover{ color:var(--accent-700); text-decoration:underline; }
/* name-first title (decision 2026-06-06: bold-blue name + divider, description to its right) */
.act-titlewrap{ flex:1; min-width:160px; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.act-name{ font-size:var(--fs-md); font-weight:700; color:var(--accent-700); flex:none; white-space:nowrap; }
.act-name-lnk{ background:none; border:none; cursor:pointer; padding:0; text-align:left; font-family:inherit; }
.act-name-lnk:hover{ color:var(--accent-600); text-decoration:underline; }
.act-name-rule{ flex:none; align-self:stretch; width:1px; min-height:15px; background:var(--gray-4); margin:0 1px; }
.act-rest{ font-size:var(--fs-md); font-weight:500; color:var(--gray-9); flex:1; min-width:120px; line-height:1.45; }
.act-rest-mut{ color:var(--gray-6); font-weight:400; }
.pab-name{ color:var(--accent-700); font-weight:700; }
.act-ctrls{ display:flex; gap:4px; margin-left:auto; }
.act-btn{ font-size:var(--fs-base); line-height:1; width:26px; height:26px; border-radius:var(--r-sm); border:1px solid var(--gray-3); background:var(--gray-1); color:var(--gray-7); cursor:pointer; display:grid; place-items:center; }
.act-btn:hover{ border-color:var(--accent-400); color:var(--accent-700); background:var(--accent-50); }
.act-btn.on{ background:var(--ok-bg); color:var(--ok-fg); border-color:#A7F3D0; }
/* UX-05 — the fix-prompt action reads as the row's primary (blue), in its existing slot. */
.act-btn-fix{ color:var(--accent-600); border-color:var(--accent-200, #BFDBFE); }
.act-btn-fix:hover{ background:var(--accent-600); color:#fff; border-color:var(--accent-600); }
.act-ev{ font-size:var(--fs-sm); color:var(--gray-6); margin:5px 0 0 26px; line-height:1.5; }
/* ── ⏲ snooze popover (D2 — snooze lives on the right; no bottom row) ── */
.act-snooze-wrap{ position:relative; }
.act-snooze-pop{ position:absolute; right:0; top:30px; z-index:30; min-width:132px; background:#fff; border:1px solid var(--gray-3); border-radius:var(--r-sm); box-shadow:0 8px 22px -14px rgba(0,0,0,.4); padding:5px; display:flex; flex-direction:column; gap:2px; }
.act-snooze-pop[hidden]{ display:none; }
.act-snooze-pop .asp-h{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em; color:var(--gray-6); padding:3px 8px 2px; }   /* --gray-6 clears AA (review P3) */
.act-snooze-pop button{ text-align:left; font-size:var(--fs-sm); color:var(--gray-7); background:none; border:none; border-radius:6px; padding:6px 9px; cursor:pointer; }
.act-snooze-pop button:hover{ background:var(--accent-50); color:var(--accent-700); }

/* ── "Fix this" → Kamini · the detect→remediate panel (D1/D3) ── */
.act-fixzone{ margin:9px 0 0 26px; }
.act-fixbar{ display:flex; align-items:center; gap:8px; }
.act-fixthis{ display:inline-flex; align-items:center; gap:7px; font-family:inherit; font-size:var(--fs-sm); font-weight:600; color:#fff; background:var(--accent-600); border:1px solid var(--accent-600); border-radius:var(--r-sm); padding:7px 14px; cursor:pointer; transition:background .12s; }
.act-fixthis:hover{ background:var(--accent-700); }
.act-fixthis.on{ background:#fff; color:var(--accent-700); }
.act-fixthis .ic{ font-size:var(--fs-base); }
.act-fixpanel{ margin-top:10px; border:1px solid var(--accent-200); border-left:3px solid var(--accent-600); border-radius:var(--r-sm); background:var(--gray-0); padding:13px 15px; display:flex; flex-direction:column; gap:9px; }
.fx-plan{ display:flex; flex-direction:column; gap:6px; }
.fx-h{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.07em; color:var(--accent-700); display:flex; align-items:center; gap:8px; }
.fx-kamtag{ margin-left:auto; display:inline-flex; align-items:center; gap:5px; color:#1c6b58; font-weight:600; text-transform:none; letter-spacing:0; }
.fx-av{ width:32px; height:32px; border-radius:50%; object-fit:cover; border:1.5px solid #2FA68C; background:#fff; display:inline-block; vertical-align:middle; }
.fx-row{ display:flex; gap:9px; font-size:var(--fs-sm); line-height:1.5; }
.fx-k{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.04em; color:var(--gray-5); flex:none; width:84px; padding-top:2px; }
.fx-v{ color:var(--gray-7); min-width:0; }
.fx-v b{ color:var(--gray-9); }
.fx-status{ display:flex; align-items:center; gap:8px; font-size:var(--fs-sm); color:var(--gray-7); font-weight:500; border-top:1px dashed var(--gray-3); padding-top:9px; }
.fx-pulse{ width:8px; height:8px; border-radius:50%; background:var(--warn); flex:none; animation:fxpulse 1.1s ease-in-out infinite; }
@keyframes fxpulse{ 0%,100%{ opacity:.35 } 50%{ opacity:1 } }
.fx-st-done{ color:#137a3e; }
.fx-st-failed{ color:#b42318; }
.fx-round{ font-size:var(--fs-sm); line-height:1.5; border-radius:8px; padding:8px 11px; }
.fx-round .fx-who{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.04em; display:block; margin-bottom:3px; color:var(--gray-6); }
.fx-round .fx-who.kam{ color:#1c6b58; }
.fx-kam{ background:rgba(47,166,140,.08); border:1px solid rgba(47,166,140,.25); }
.fx-you{ background:var(--accent-50); border:1px solid var(--accent-100); }
.fx-diff{ margin-top:6px; border:1px solid var(--gray-3); border-radius:6px; background:#fff; font-family:var(--font-mono); font-size:var(--fs-2xs); line-height:1.5; overflow:auto; max-height:240px; }
.fx-dl{ padding:1px 9px; white-space:pre-wrap; word-break:break-word; }
.fx-dl.add{ background:#ECFDF3; color:#137a3e; }
.fx-dl.del{ background:#FEF2F2; color:#b42318; }
.fx-dl.ctx{ color:var(--gray-6); }
.fx-act{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.fx-primary,.fx-ok,.fx-send,.fx-cancel,.fx-copy{ font-family:inherit; font-size:var(--fs-sm); font-weight:600; border-radius:var(--r-sm); padding:7px 13px; cursor:pointer; border:1px solid var(--gray-3); background:#fff; color:var(--gray-7); }
.fx-primary{ background:var(--accent-600); border-color:var(--accent-600); color:#fff; }
.fx-primary:hover{ background:var(--accent-700); }
.fx-ok{ background:#1c6b58; border-color:#1c6b58; color:#fff; }   /* white-on-#1c6b58 ≈6.4:1 — AA pass (review P2; was #2FA68C ≈3:1) */
.fx-ok:hover{ background:#14503f; border-color:#14503f; }
.fx-send:hover,.fx-cancel:hover,.fx-copy:hover{ border-color:var(--accent-400); color:var(--accent-700); }
.fx-primary:disabled,.fx-ok:disabled,.fx-send:disabled,.fx-cancel:disabled{ opacity:.5; cursor:default; }
.fx-fb{ width:100%; border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:8px 10px; font-family:inherit; font-size:var(--fs-sm); color:var(--gray-9); line-height:1.5; resize:vertical; background:#fff; }
.fx-fb:focus{ outline:none; border-color:var(--accent-600); }
.fx-note{ font-size:var(--fs-sm); color:var(--gray-6); line-height:1.5; }
.fx-result{ border:1px solid #A7F3D0; background:var(--ok-bg); border-radius:8px; padding:10px 12px; display:flex; flex-direction:column; gap:3px; }
.fx-res-h{ font-weight:600; color:#137a3e; }
.fx-res-line{ font-size:var(--fs-sm); color:var(--gray-7); }
.fx-res-note{ font-size:var(--fs-2xs); color:var(--gray-6); margin-top:3px; }   /* --gray-5 was ~2.9:1; --gray-6 clears AA (review P3) */
.fx-fail{ font-size:var(--fs-sm); color:#b42318; line-height:1.5; }
.act-bounce{ font-size:var(--fs-sm); color:var(--warn); margin:6px 0 0 26px; line-height:1.5; }
.act-why{ margin:8px 0 0 26px; padding:9px 11px; border-left:2px solid var(--accent-200); background:var(--gray-0); border-radius:0 var(--r-sm) var(--r-sm) 0; font-size:var(--fs-sm); color:var(--gray-7); display:flex; flex-direction:column; gap:4px; }
.act-why-plain{ color:var(--gray-9); font-weight:500; font-size:var(--fs-base); }
.act-pending{ margin-top:var(--s-4); border:1px dashed var(--gray-4); border-radius:var(--r-lg); background:var(--gray-0); padding:var(--s-3) var(--s-4); font-size:var(--fs-base); color:var(--gray-7); }
.act-pending ul{ margin:6px 0 0; padding-left:18px; }
.act-pending li{ margin:3px 0; line-height:1.5; }
.act-pending-foot{ margin-top:8px; font-size:var(--fs-sm); color:var(--gray-6); font-style:italic; }

/* D10 — opt-in tour nudge (non-blocking, bottom-left, dismissible) */
.tour-nudge{ position:fixed; left:20px; bottom:20px; z-index:55; display:flex; align-items:center; gap:10px;
  background:var(--gray-1); border:1px solid var(--gray-3); border-left:3px solid var(--accent-500);
  border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:10px 12px; font-size:var(--fs-base); color:var(--gray-8);
  opacity:0; transform:translateY(8px); transition:opacity .18s var(--ease), transform .18s var(--ease); max-width:340px; }
.tour-nudge.show{ opacity:1; transform:translateY(0); }
.tour-nudge-go{ font-size:var(--fs-base); font-weight:600; color:#fff; background:var(--accent-500); border:none; border-radius:var(--r-md); padding:6px 11px; cursor:pointer; }
.tour-nudge-go:hover{ background:var(--accent-600); }
.tour-nudge-x{ font-size:var(--fs-lg); line-height:1; color:var(--gray-6); background:none; border:none; cursor:pointer; padding:0 2px; }
.tour-nudge-x:hover{ color:var(--gray-8); }

/* ── F14 (S5) · LLM-judge scores in the Quality tab ── */
.judge-banner{ display:flex; align-items:flex-start; gap:var(--s-3); margin:var(--s-2) 0 var(--s-3); padding:var(--s-3); border:1px solid var(--accent-100); background:var(--accent-50); border-radius:var(--r-lg); }
.judge-score{ font-family:var(--font-display); font-weight:700; font-size:var(--fs-xl); color:var(--accent-700); white-space:nowrap; line-height:1.1; }
.dim-status.judged{ background:var(--accent-50); color:var(--accent-700); border:1px solid var(--accent-100); width:auto; min-width:24px; height:auto; padding:1px 6px; border-radius:var(--r-pill); font-family:var(--font-mono); font-size:var(--fs-xs); font-weight:600; place-items:center; }

/* ── Gnesis Autopilot · gnesis.dev design language (EXTRACTED tokens) ──────────
 * Scoped to .gn-pane so the warm-cream/navy/sky theme can't leak into the Vault.
 * Palette + fonts + motifs pulled from gnesis.dev's --genesis-* Tailwind tokens. */
.gn-pane{
  --gn-paper:#f3e9d3; --gn-paper-2:#f8f1df; --gn-card:#ffffff; --gn-card-glass:rgba(255,255,255,.62);
  --gn-ink:#0f2144; --gn-ink-2:#1b3a67; --gn-mute:rgba(15,33,68,.66); --gn-faint:rgba(15,33,68,.70); /* faint raised .46→.70 for WCAG AA (was 2.8:1 on white) */
  --gn-sky:#8fb8d4; --gn-sky-soft:#bfd6e8; --gn-cream:#efe3c9; --gn-stone:#dac9a4;
  --gn-rule:rgba(15,33,68,.12); --gn-rule-2:rgba(15,33,68,.18); --gn-soft:rgba(15,33,68,.05);
  --gn-ok:#2d5e44; --gn-warn:#9a5418; --gn-warn-bg:rgba(199,122,58,.10); --gn-live:#3884ff; /* warn darkened #c77a3a→#9a5418 for WCAG AA (was ~3:1) */
  --gn-disp:'Outfit','Geist',system-ui,sans-serif; --gn-mono:'JetBrains Mono','Geist Mono',monospace;
  --gn-shadow:0 12px 36px rgba(15,33,68,.08),0 1px 2px rgba(15,33,68,.05); --gn-radius:14px; --gn-radius-lg:18px;
  position:relative; color:var(--gn-ink); padding:26px; border-radius:var(--gn-radius-lg);
  background:
    radial-gradient(ellipse 50% 35% at 30% 12%, rgba(143,184,212,.20), transparent 70%),
    radial-gradient(ellipse 42% 32% at 84% 88%, rgba(143,184,212,.13), transparent 70%),
    var(--gn-paper);
  border:1px solid var(--gn-rule); box-shadow:var(--gn-shadow);
}
.gn-pane a{ color:var(--gn-ink-2); }
.gn-sunwrap{ display:inline-flex; color:#1b3c65; }
.gn-eyebrow{ font-family:var(--gn-mono); text-transform:uppercase; letter-spacing:.22em; font-size:11px; font-weight:600; color:var(--gn-mute); }
.gn-eyebrow.sm{ font-size:10px; letter-spacing:.2em; color:var(--gn-faint); }
.gn-head{ display:flex; align-items:flex-start; gap:16px; margin-bottom:var(--s-5); }
.gn-mark{ flex:0 0 auto; width:52px; height:52px; display:grid; place-items:center; border-radius:14px; background:var(--gn-card-glass); border:1px solid var(--gn-rule); box-shadow:var(--gn-shadow); }
.gn-title{ font-family:var(--gn-disp); font-weight:800; font-size:30px; letter-spacing:-.03em; line-height:1.05; color:#0a1530; margin:var(--s-1) 0; }
.gn-sub{ margin:0; max-width:74ch; font-size:15px; line-height:1.55; color:var(--gn-mute); }
/* G1 — area section title (distinct from .gn-title so the Autopilot pane stays the audited one) */
.gn-areatitle{ font-family:var(--gn-disp); font-weight:800; font-size:22px; letter-spacing:-.02em; line-height:1.08; color:#0a1530; margin:2px 0 6px; }
.gn-area-head .gn-areatitle{ font-size:34px; letter-spacing:-.03em; }
.gn-brief{ font-family:var(--gn-mono); font-size:12px; line-height:1.55; white-space:pre-wrap; color:var(--gn-ink); background:var(--gn-card); border:1px solid var(--gn-rule-2); border-radius:10px; padding:13px 15px; max-height:260px; overflow:auto; margin:12px 0; }
.gn-soon{ display:flex; align-items:center; gap:10px; border:1px dashed var(--gn-rule-2); border-radius:var(--gn-radius); padding:14px 16px; background:var(--gn-paper-2); color:var(--gn-mute); font-family:var(--gn-mono); font-size:12px; margin-top:4px; }
.gn-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:var(--s-4); }
@media (max-width:760px){ .gn-steps{ grid-template-columns:1fr; } }
.gn-step{ display:flex; gap:12px; align-items:flex-start; background:var(--gn-card-glass); border:1px solid var(--gn-rule); border-radius:var(--gn-radius); padding:14px 16px; }
.gn-stepn{ font-family:var(--gn-disp); font-weight:700; font-size:22px; letter-spacing:-.02em; color:var(--gn-sky); line-height:1; }
.gn-step b{ display:block; font-size:14px; color:var(--gn-ink); margin-bottom:2px; }
.gn-stepd{ font-size:12px; color:var(--gn-mute); line-height:1.45; }
.gn-target{ display:flex; align-items:center; gap:var(--s-3); margin-bottom:var(--s-4); }
.gn-select{ font-family:var(--gn-mono); font-size:12px; color:var(--gn-ink); background:var(--gn-card); border:1px solid var(--gn-rule-2); border-radius:8px; padding:7px 10px; cursor:pointer; }
.gn-select:focus-visible{ outline:none; border-color:var(--gn-sky); box-shadow:0 0 0 3px rgba(143,184,212,.4); }
.gn-card{ background:var(--gn-card); border:1px solid var(--gn-rule); border-radius:var(--gn-radius); box-shadow:var(--gn-shadow); padding:22px 24px; margin-bottom:16px; }
.gn-cardhd{ display:flex; flex-direction:column; gap:3px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--gn-soft); }
.gn-cardhd h4{ font-family:var(--gn-disp); font-weight:700; font-size:17px; letter-spacing:-.01em; color:var(--gn-ink); margin:0; }
.gn-sec-label{ font-family:var(--gn-mono); text-transform:uppercase; letter-spacing:.16em; font-size:10px; color:var(--gn-faint); margin:var(--s-4) 0 var(--s-2); }
.gn-bars{ display:flex; flex-direction:column; gap:5px; }
.gn-bar{ display:grid; grid-template-columns:96px 1fr 34px; gap:10px; align-items:center; }
.gn-barn{ font-family:var(--gn-mono); font-size:11px; color:var(--gn-mute); text-align:right; }
.gn-bartrack{ height:14px; border-radius:5px; background:rgba(15,33,68,.06); overflow:hidden; }
.gn-barfill{ display:block; height:100%; min-width:2px; border-radius:5px; background:linear-gradient(90deg,var(--gn-sky),var(--gn-ink-2)); }
.gn-barv{ font-family:var(--gn-mono); font-size:11px; font-weight:600; color:var(--gn-ink); text-align:right; }
.gn-flag{ margin-top:var(--s-3); padding:11px 14px; border-radius:10px; background:var(--gn-soft); border:1px solid var(--gn-rule); font-size:13px; line-height:1.55; color:var(--gn-mute); }
.gn-flag b{ color:var(--gn-ink); } .gn-flag.warn{ background:var(--gn-warn-bg); border-color:rgba(199,122,58,.28); } .gn-flag.warn b{ color:var(--gn-warn); }
.gn-inline{ font-family:var(--gn-mono); font-size:12px; color:var(--gn-ink-2); }
.gn-nrow{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:8px 10px; border-radius:8px; border:1px solid var(--gn-rule); margin-bottom:6px; background:var(--gn-paper-2); }
.gn-nrow.clean{ background:transparent; border-color:var(--gn-soft); }
.gn-ncount{ font-family:var(--gn-disp); font-weight:700; font-size:18px; min-width:30px; color:var(--gn-warn); }
.gn-nrow.clean .gn-ncount{ color:var(--gn-ok); }
.gn-nlabel{ font-weight:600; font-size:13px; color:var(--gn-ink); min-width:110px; }
.gn-nhint{ font-size:12px; color:var(--gn-mute); flex:1; }
.gn-ndetails{ flex:0 0 auto; } .gn-ndetails summary{ cursor:pointer; font-family:var(--gn-mono); font-size:11px; color:var(--gn-ink-2); }
.gn-nlist{ display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; width:100%; }
.gn-suffix{ display:flex; flex-wrap:wrap; gap:18px; font-size:13px; color:var(--gn-mute); }
.gn-suffix b{ font-family:var(--gn-disp); font-weight:700; color:var(--gn-ink); }
.gn-clean{ font-size:13px; line-height:1.55; color:var(--gn-mute); margin-bottom:var(--s-4); }
.gn-cand{ border:1px solid var(--gn-rule-2); border-radius:var(--gn-radius); padding:14px 16px; margin-bottom:10px; background:var(--gn-paper-2); }
.gn-cand.baseline{ opacity:.84; background:transparent; }
.gn-cand-hd{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.gn-cand-support{ font-family:var(--gn-mono); font-size:11px; font-weight:600; color:var(--gn-ink-2); padding:3px 9px; border-radius:var(--r-pill); background:rgba(143,184,212,.22); position:relative; }
.gn-cand:not(.baseline) .gn-cand-support::before{ content:''; position:absolute; left:-3px; top:50%; transform:translateY(-50%); width:6px; height:6px; border-radius:999px; background:var(--gn-live); box-shadow:0 0 0 0 rgba(56,132,255,.5); animation:gn-pulse 2.4s infinite; }
@keyframes gn-pulse{ 0%{ box-shadow:0 0 0 0 rgba(56,132,255,.45);} 70%{ box-shadow:0 0 0 7px rgba(56,132,255,0);} 100%{ box-shadow:0 0 0 0 rgba(56,132,255,0);} }
.gn-tag{ font-family:var(--gn-mono); font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--gn-mute); }
.gn-tag.baseline{ color:var(--gn-warn); }
.gn-cand-members{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.gn-cand-why{ font-size:13px; line-height:1.5; color:var(--gn-mute); margin-bottom:10px; }
.gn-btn{ font-family:var(--gn-mono); font-size:var(--ctl-font); font-weight:600; color:var(--gn-cream); background:var(--gn-ink-2); border:none; border-radius:var(--r-md); padding:6px 13px; cursor:pointer; transition:background .12s; }
.gn-btn:hover{ background:var(--gn-ink); } .gn-btn:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(143,184,212,.5); }
.gn-note{ font-family:var(--gn-mono); font-size:11px; line-height:1.6; color:var(--gn-faint); margin:var(--s-3) 0 0; }
.gn-pane .lnk, .gn-pane .prim-link{ background:rgba(143,184,212,.18); border:1px solid var(--gn-rule); color:var(--gn-ink-2); }
@media (prefers-reduced-motion: reduce){ .gn-cand:not(.baseline) .gn-cand-support::before{ animation:none; } }

/* ============================================================================
 * UX PASS (2026-05-31) — new components
 * ==========================================================================*/

/* U6 — ONE provenance badge vocabulary, reused everywhere a number needs a source */
.prov{ display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--label-font);font-weight:600;border-radius:var(--r-pill);padding:3px 8px;border:1px solid;white-space:nowrap;line-height:1.5;vertical-align:middle; }
.prov-real{ color:var(--ok-fg);background:var(--ok-bg);border-color:var(--ok-border); }
.prov-measured{ color:var(--accent-700);background:var(--accent-50);border-color:var(--accent-100); }
.prov-estimated{ color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border); }
.prov-none{ color:var(--gray-7);background:var(--gray-2);border-color:var(--gray-4); }   /* gray-7 = AA contrast at 10px — this is the most-shown provenance chip */

/* U1 — demoted "not measured" chip in the Home header (knowns lead; this trails) */
.home-nm{ display:inline-flex;align-items:center;gap:7px;margin-top:12px; }

/* U2 — one-line dismissible provenance strip (replaces the 3-line note paragraph) */
.home-note-strip{ display:flex;align-items:center;gap:10px;margin-top:12px;max-width:88ch;font-size:var(--fs-base);color:var(--gray-7);background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-md);padding:8px 12px; }
.home-note-strip .hns-badges{ display:flex;flex-wrap:wrap;gap:6px;align-items:center; }
.home-note-strip .hns-x{ margin-left:auto;background:none;border:none;color:var(--gray-6);font-size:var(--fs-lg);line-height:1;cursor:pointer;flex:0 0 auto;padding:0 2px; }
.home-note-strip .hns-x:hover{ color:var(--gray-8); }

/* U8 — P0–P3 severity legend under the Top-actions pills */
.act-legend{ font-size:var(--fs-sm);color:var(--gray-7);margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;line-height:1.5; }   /* gray-7 = AA contrast for the descriptive words */
.act-legend .ak{ font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;color:var(--gray-8); }
.act-legend .ak.p0{ color:var(--crit-fg); } .act-legend .ak.p1{ color:var(--err-600,#B91C1C); } .act-legend .ak.p2{ color:var(--accent-700); }

/* U13 — Library results header: count + removable active-filter chips */
.lib-results-head{ display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px; }
.lib-result-count{ font-family:var(--font-mono);font-size:var(--fs-base);color:var(--gray-7); }
.lib-result-count b{ color:var(--gray-9);font-weight:600; }
.lib-fchip{ display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-pill);padding:3px 6px 3px 10px; }
.lib-fchip-rm{ background:none;border:none;color:var(--accent-500);font-size:var(--fs-md);line-height:1;cursor:pointer;padding:0 2px;font-family:inherit; }
.lib-fchip-rm:hover{ color:var(--accent-700); }
.lib-clear-all{ background:none;border:none;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);cursor:pointer;text-decoration:underline; }
.lib-clear-all:hover{ color:var(--gray-9); }

/* U14 — iconed segmented control for the Library view modes */
.view-seg{ display:inline-flex;border:1px solid var(--gray-4);border-radius:var(--r-md);overflow:hidden; }
.view-seg .seg-btn{ display:inline-flex;align-items:center;gap:6px;font-size:var(--ctl-font);font-weight:500;color:var(--gray-7);background:var(--gray-1);border:none;border-right:1px solid var(--gray-3);padding:6px 13px;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease); }
.view-seg .seg-btn:last-child{ border-right:none; }
.view-seg .seg-btn:hover{ background:var(--gray-2); }
.view-seg .seg-btn.active{ background:var(--accent-50);color:var(--accent-700);font-weight:600; }
.view-seg .seg-ico{ font-size:var(--fs-base);line-height:1; }
.vs-count{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6);margin-left:2px; }

/* U16 — slim, sticky primitive-detail header (collapses to title + score + actions on scroll) */
.detail-sentinel{ height:1px;width:100%; }
.detail-head{ position:sticky;top:calc(var(--brand-bar-h) + var(--nav-h));background:var(--gray-0);z-index:30;transition:padding .12s var(--ease); }
.detail-head.is-stuck{ padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--gray-3);box-shadow:var(--shadow-sm); }
.detail-head.is-stuck .detail-sub,.detail-head.is-stuck .detail-meta{ display:none; }
.detail-head.is-stuck .detail-title{ font-size:var(--fs-2xl); }

/* U15 — Notes/Tags moved to a ✎ control in the detail action row (opens the drawer) */
.detail-notes-btn{ display:inline-flex;align-items:center;gap:6px; }

/* ── Editable tracker (W1–W6 + ET1–ET5) ── */
.tk-sel{ font-family:var(--font-sans); font-size:var(--fs-base); color:var(--gray-9); background:var(--gray-1); border:1px solid var(--gray-4); border-radius:var(--r-md); padding:5px 8px; cursor:pointer; }
.tk-sel:focus-visible{ outline:none; border-color:var(--accent-500); box-shadow:var(--focus-ring); }
.tk-addrow{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 var(--s-3); padding:12px; background:var(--gray-0); border:1px dashed var(--gray-4); border-radius:var(--r-lg); }
.tk-addrow .tk-email{ min-width:140px; }
.tk-del{ background:none; border:none; cursor:pointer; font-size:var(--fs-md); opacity:.6; padding:4px; border-radius:var(--r-md); line-height:1; }
.tk-del:hover{ opacity:1; background:var(--red-bg); }
.tk-del:focus-visible{ outline:2px solid var(--accent-500); outline-offset:1px; }
.tk-tags{ display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.tk-tag-add{ font-family:var(--font-mono); font-size:var(--label-font); color:var(--gray-7); background:var(--gray-2); border:1px solid var(--gray-4); border-radius:999px; padding:3px 7px; cursor:pointer; }
.tk-tag-add:hover{ color:var(--accent-700); border-color:var(--accent-300); }
.tk-usedin{ font-family:var(--font-mono); font-size:var(--label-font); color:var(--accent-700); background:var(--accent-50); border:1px solid var(--accent-100); border-radius:999px; padding:3px 8px; cursor:pointer; }
.tk-usedin:hover{ background:var(--accent-100); }
.tk-usedin:focus-visible{ outline:2px solid var(--accent-500); outline-offset:1px; }
.tk-usedin-panel{ display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; padding:8px; background:var(--gray-0); border:1px solid var(--gray-3); border-radius:var(--r-md); }
.tk-banner-ok{ background:var(--ok-bg); border-color:var(--ok-border); color:var(--ok-fg); }

/* review fixes: AA-clean LIVE badge + inline editor (W4) */
.tk-snap-live{ background:var(--ok-bg); color:var(--ok-fg); }
/* spend-tracking badges (2026-06-05): dated $ / balance reuse LIVE green; usage = blue;
   manual = amber. Honest, distinct per source. */
.tk-snap-usage{ background:var(--accent-50); color:var(--accent-700); }
.tk-snap-manual{ background:var(--warn-bg); color:var(--warn); }
.tk-admin-tag{ font-size:var(--fs-xs); opacity:.8; }
.tk-key-note{ font-size:var(--fs-xs); color:var(--gray-6); margin-top:2px; }

/* ── Date filter (Ecomma DateRangePicker parity, re-skinned to Vault blue, D3) ── */
.tk-datebar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:var(--s-4) 0 var(--s-2); }
.tk-datebar-lbl{ font-family:var(--font-display); font-size:var(--fs-xs); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gray-7); }
.tk-datebar-note{ font-size:var(--fs-sm); color:var(--gray-6); }
.tk-dp{ position:relative; }
.tk-dp-btn{ display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 12px; border:1px solid var(--gray-4); background:#fff; border-radius:var(--r-md); font-size:var(--fs-base); font-weight:500; color:var(--gray-9); cursor:pointer; transition:border-color .12s var(--ease); }
.tk-dp-btn:hover{ border-color:var(--accent-400); }
.tk-dp-sum{ font-weight:600; }
.tk-dp-pop{ position:absolute; left:0; top:calc(100% + 8px); z-index:60; display:flex; background:#fff; border:1px solid var(--gray-3); border-radius:var(--r-lg); box-shadow:var(--shadow-lg, 0 12px 40px rgba(15,33,68,.18)); overflow:hidden; }
.tk-dp-pop[hidden]{ display:none; }
.tk-dp-body{ display:flex; }
.tk-dp-rail{ display:flex; flex-direction:column; gap:2px; width:168px; padding:12px; border-right:1px solid var(--gray-2); background:var(--gray-1, #FAFCFF); }
.tk-dp-eyebrow{ font-family:var(--font-display); font-size:var(--fs-2xs); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-600); margin-bottom:6px; }
.tk-dp-preset{ text-align:left; height:30px; padding:0 10px; border:none; background:none; border-radius:var(--r-sm); font-size:var(--fs-base); color:var(--gray-8); cursor:pointer; transition:background .1s var(--ease); }
.tk-dp-preset:hover{ background:var(--gray-2); color:var(--gray-9); }
.tk-dp-preset.on{ background:var(--accent-50); color:var(--accent-700); font-weight:600; }
.tk-dp-or{ margin-top:8px; padding-top:8px; border-top:1px solid var(--gray-2); font-size:var(--fs-2xs); letter-spacing:.06em; text-transform:uppercase; color:var(--gray-5); }
.tk-dp-calwrap{ padding:12px; }
.tk-dp-cals{ display:flex; gap:18px; }
.tk-cal-h{ text-align:center; font-weight:600; font-size:var(--fs-base); color:var(--gray-9); margin-bottom:8px; }
.tk-cal-dow{ display:grid; grid-template-columns:repeat(7,30px); }
.tk-cal-dow span{ text-align:center; font-size:var(--fs-2xs); font-weight:600; color:var(--gray-5); }
.tk-cal-grid{ display:grid; grid-template-columns:repeat(7,30px); grid-auto-rows:30px; }
.tk-cal-x{ }
.tk-cal-d{ width:30px; height:30px; border:none; background:none; border-radius:var(--r-sm); font-size:var(--fs-base); color:var(--gray-8); cursor:pointer; transition:background .1s var(--ease); }
.tk-cal-d:hover{ background:var(--gray-2); }
.tk-cal-dis{ color:var(--gray-4); cursor:not-allowed; }
.tk-cal-dis:hover{ background:none; }
.tk-cal-mid{ background:var(--accent-50); border-radius:0; color:var(--accent-700); }
.tk-cal-sel{ background:var(--accent-600); color:#fff; }
.tk-cal-sel:hover{ background:var(--accent-600); }
.tk-dp-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding-top:10px; border-top:1px solid var(--gray-2); }
.tk-dp-cur{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--gray-6); }
.tk-dp-close{ height:30px; padding:0 14px; border:none; background:var(--accent-600); color:#fff; border-radius:var(--r-sm); font-size:var(--fs-sm); font-weight:600; cursor:pointer; }
.tk-dp-close:hover{ background:var(--accent-700, #0052b8); }
@media(max-width:720px){ .tk-dp-cals{ flex-direction:column; gap:10px; } .tk-dp-pop{ left:auto; right:0; } }

.tk-inline{ display:flex; align-items:center; gap:4px; }
.tk-inline .tk-email, .tk-inline .tk-sel{ min-width:120px; }

/* UI feedback pass (2026-06-01) */
.act-why[hidden]{ display:none; }            /* fix: the "Why is this here?" toggle (was overridden by display:flex) */
.act-why-note{ color:var(--gray-7); }
.copy-modal-pre{ margin:0 0 14px; padding:14px 16px; background:var(--gray-0); border:1px solid var(--gray-3); border-radius:var(--r-md); font-family:var(--font-mono); font-size:var(--fs-base); line-height:1.65; color:var(--gray-9); white-space:pre-wrap; word-break:break-word; max-height:56vh; overflow:auto; }
.copy-modal-foot{ display:flex; justify-content:flex-end; }
.scatter-tip{ position:fixed; z-index:9999; pointer-events:none; display:none; align-items:center; gap:8px; background:var(--gray-9); color:#fff; font-size:var(--fs-sm); padding:6px 10px; border-radius:var(--r-md); box-shadow:0 6px 20px rgba(15,23,42,.25); white-space:nowrap; }
.scatter-tip.show{ display:inline-flex; }
.sc-tip-name{ font-family:var(--font-mono); }
.sc-tip-tag{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.04em; padding:1px 6px; border-radius:999px; background:rgba(255,255,255,.18); }

/* ════════════════════════════════════════════════════════════════════════
 * PROJECTS rebuild (2026-06-01): hero · action bar · tabbed panes · sidebar cards
 * ════════════════════════════════════════════════════════════════════════ */
/* Sidebar signal cards (B3) — overrides the old single-row .proj-item */
.proj-item{ display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:9px 10px;position:relative; }
/* Subtle drag-to-reorder grip: faint always-on, brighter on hover; absolute = no layout width. */
.proj-drag{ position:absolute;right:5px;top:50%;transform:translateY(-50%);opacity:.2;transition:opacity .12s;cursor:grab;color:var(--gray-5);font-size:var(--fs-md);line-height:1;user-select:none;padding:2px 3px; }
.proj-item:hover .proj-drag{ opacity:.55; }
.proj-drag:hover{ opacity:.85; }
.proj-drag:active{ cursor:grabbing; }
.proj-item.drag-over{ box-shadow:inset 0 2px 0 0 var(--accent-400); }
/* Remove-from-list (🗑) — mirrors .tk-del; hover-reveal so cards stay clean, top-right so it
   clears the centre-right drag grip. Rendered as a <span role=button> (see projItemCard). */
/* (.proj-del removed — the sidebar trash was a mis-click hazard next to the drag grip.)
   Remove-from-list now sits at the hero's TOP-RIGHT, level with the project avatar. */
.proj-remove-detail{ position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-sm);font-weight:500;color:var(--gray-7);background:transparent;
  border:1px solid var(--gray-3);border-radius:var(--r-md);padding:6px 12px;cursor:pointer;
  white-space:nowrap;transition:color .12s,background .12s,border-color .12s; }
.proj-remove-detail:hover{ color:var(--crit-fg);background:var(--red-bg);border-color:#F3C6C6; }
.proj-remove-detail:focus-visible{ outline:2px solid var(--accent-500);outline-offset:1px; }
@media (max-width:640px){ .proj-remove-detail{ position:static;margin-top:8px;align-self:flex-start; } }
/* "N hidden — restore" control + the restore drawer's rows */
.proj-hidden-restore{ display:block;margin-top:8px;width:100%;font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--gray-6);background:none;border:1px dashed var(--gray-4);border-radius:var(--r-sm);padding:6px 8px;cursor:pointer;transition:all .12s; }
.proj-hidden-restore:hover{ color:var(--gray-8);border-color:var(--gray-5);background:var(--gray-1); }
.proj-hidden-row{ display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--gray-2); }
.proj-hidden-name{ min-width:0;font-size:var(--fs-md);font-weight:600;color:var(--gray-9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.proj-item-top{ display:flex;align-items:center;gap:9px; }
.proj-glyph{ flex:0 0 auto;width:30px;height:30px;border-radius:var(--r-md);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm);color:#fff;background:var(--tint,var(--accent-500));letter-spacing:-.01em; }
.proj-item-main{ min-width:0;display:flex;flex-direction:column;gap:1px; }
.proj-item-sub{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.proj-item-bar{ display:flex;align-items:center;gap:8px; }
.proj-item-n{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-7);flex:0 0 auto; }
.proj-nokit{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);font-style:italic; }
.drift-bar.micro{ height:var(--bar-h-compact);border-radius:var(--bar-r);flex:1; }
.drift-bar.wide{ height:var(--bar-h);border-radius:var(--bar-r); }

/* Hero */
.proj-hero{ position:relative;display:flex;gap:18px;align-items:stretch;margin-bottom:var(--s-4);flex-wrap:wrap; }
.proj-hero .proj-title{ padding-right:160px; }   /* reserve the top-right for the Remove button */
@media (max-width:640px){ .proj-hero .proj-title{ padding-right:0; } }
.proj-hero-img{ position:relative;flex:0 0 230px;max-width:230px;min-height:128px;border-radius:var(--r-lg);border:1px solid var(--gray-3);box-shadow:var(--shadow-sm);overflow:hidden;display:grid;place-items:center;background:var(--gray-2);border-top:3px solid var(--tint,var(--accent-500)); }
.proj-hero-img img{ width:100%;height:100%;object-fit:cover;display:block; }
.proj-mono{ font-family:var(--font-display);font-weight:900;font-size:var(--fs-display);color:var(--tint,var(--accent-500));opacity:.82;letter-spacing:-.02em; }
.proj-img-add{ position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:var(--r-sm);border:1px solid var(--gray-3);background:rgba(255,255,255,.88);color:var(--gray-7);font-size:var(--fs-lg);font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer; }
.proj-img-add:hover{ border-color:var(--accent-400);color:var(--accent-600); }
.proj-hero-id{ flex:1;min-width:240px;display:flex;flex-direction:column;justify-content:center;gap:9px; }
.proj-hero-chips{ display:flex;gap:7px;flex-wrap:wrap;align-items:center; }
.proj-chip{ display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--label-font);font-weight:600;padding:3px 9px;border-radius:var(--r-pill);border:1px solid var(--gray-3);background:var(--gray-1);color:var(--gray-7); }
.proj-chip.nat-reg{ background:#F5EEFF;color:#7C3AED;border-color:#E9D5FF; }
.proj-chip.nat-app{ background:var(--accent-50);color:var(--accent-700);border-color:var(--accent-100); }
.proj-chip.nat-prod{ background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-border); }
.proj-chip.nat-ws{ background:var(--gray-2);color:var(--gray-7);border-color:var(--gray-3); }
.proj-chip.nat-pre{ background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border); }
.proj-chip.chip-live{ background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-border);text-decoration:none; }
.proj-chip.chip-pre{ color:var(--gray-6); }
.proj-chip.chip-kit{ background:var(--accent-50);color:var(--accent-700);border-color:var(--accent-100); }
.proj-chip.chip-drift{ background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border);cursor:help; }
.proj-annotate{ font-size:var(--fs-base);color:var(--gray-6);line-height:1.5;max-width:74ch;margin:0; }
.proj-title{ font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.01em;color:var(--gray-9);margin:0; }
@media (max-width:640px){ .proj-hero-img{ flex-basis:100%;max-width:none; } }

/* Per-project action bar (Wave 5, compact) */
.proj-actbar{ display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:11px 13px;border:1px solid var(--accent-100);background:var(--accent-50);border-radius:var(--r-lg);margin-bottom:var(--s-4); }
.proj-actbar.empty{ background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-fg);font-size:var(--fs-md);font-weight:500; }
.proj-actbar-head{ display:flex;align-items:center;gap:7px;font-size:var(--fs-md);color:var(--gray-9);margin-right:4px; }
.pab-ic{ color:var(--accent-600);font-weight:800; }
.pab-chip{ display:inline-flex;align-items:center;gap:7px;background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-pill);padding:6px 11px;cursor:pointer;font-family:inherit;font-size:var(--ctl-font);max-width:360px; }
.pab-chip:hover{ border-color:var(--accent-400); }
.pab-fix{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--accent-700);background:var(--accent-50);border-radius:4px;padding:1px 5px;white-space:nowrap;flex:0 0 auto; }
.pab-t{ font-size:var(--fs-base);color:var(--gray-8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.pab-more{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-700);background:none;border:none;cursor:pointer;font-weight:600; }
.act-list{ display:flex;flex-direction:column;gap:9px; }

/* Tech stack */
.stack-chips{ display:flex;flex-wrap:wrap;gap:6px; }
.stack-ai{ display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;padding:2px 8px;border-radius:var(--r-pill);background:#F5EEFF;color:#7C3AED;border:1px solid #E9D5FF; }

/* Install treemap (D1) */
.tmap{ display:flex;height:20px;border-radius:var(--bar-r);overflow:hidden;border:1px solid var(--gray-3);background:var(--gray-2); }   /* unified bar — labelled +8px variant */
.tmap-seg{ height:100%;display:flex;align-items:center;justify-content:center;min-width:3px;transition:filter .12s; }
.tmap-seg:hover{ filter:brightness(1.08); }
.tmap-lab{ font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:700;color:rgba(255,255,255,.92); }
.tmap-legend{ display:flex;flex-wrap:wrap;gap:10px;margin-top:8px; }
.tmap-key{ display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.tmap-key i{ width:14px;height:8px;border-radius:var(--bar-r);display:inline-block; }
.prov-comp{ margin-bottom:var(--s-3); }

/* Readiness gauge (D5) — reuses .arsenal-ring */
.gauge-wrap{ display:flex;gap:18px;align-items:center;flex-wrap:wrap; }
.gauge-inputs{ font-size:var(--fs-base);color:var(--gray-7);display:flex;flex-direction:column;gap:3px;min-width:220px;flex:1; }

/* Documents tab */
.doc-group-h{ display:flex;align-items:center;gap:8px;margin:14px 0 6px; }
.chip.doc-kind{ background:var(--accent-50);color:var(--accent-700);border:1px solid var(--accent-100);font-weight:700; }
.doc-count{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.doc-list{ display:flex;flex-direction:column;gap:4px; }
.doc-row{ display:flex;align-items:center;gap:10px;padding:6px 9px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1); }
.doc-rel{ flex:1;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.doc-tag-html{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:1px 6px; }
.doc-item{ display:flex;flex-direction:column;gap:0; }
/* Clickable document name — opens the doc in the right-side drawer. */
.doc-rel-lnk{ flex:1;text-align:left;background:none;border:0;cursor:pointer;color:var(--accent-600);padding:0; }
.doc-rel-lnk:hover{ color:var(--accent-500);text-decoration:underline; }
a.doc-rel-lnk{ text-decoration:none; }
/* Document drawer (markdown opened on the right). */
.doc-drawer-actions{ display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px; }
.doc-drawer-path{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);word-break:break-all;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--gray-2); }
.doc-drawer .md-body{ font-size:var(--fs-md); }

/* Tool stack (C1) */
.tool-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px; }
.tool-cat{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:9px 11px;background:var(--gray-1); }
.tool-cat-h{ display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:7px; }
.tool-cat-n{ color:var(--accent-600); }
.tool-chips{ display:flex;flex-wrap:wrap;gap:5px; }
/* Clickable Connections chip → opens the integration's registry entry. Keeps the
   square .chip-domain look (no pill); adds the pointer + hover affordance. */
button.chip{ margin:0;font-family:inherit; }
.chip-lnk{ cursor:pointer; }
.chip-lnk:hover{ background:var(--accent-50);border-color:var(--accent-200);color:var(--accent-700); }

/* ── Integrations registry (MCP servers + CLI tools) ──────────────────────── */
.integ-toolbar{ display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 20px; }
.integ-search{ flex:1 1 240px;max-width:340px;height:34px;padding:0 12px;border:1px solid var(--gray-4);border-radius:var(--r-md);font-size:var(--fs-sm);font-family:inherit;background:var(--gray-0);color:var(--gray-9); }
.integ-search:focus{ outline:none;border-color:var(--accent-300);box-shadow:0 0 0 3px var(--accent-50); }
.integ-stat{ font-size:var(--fs-sm);color:var(--gray-6); }
.integ-group{ margin-bottom:26px; }
.integ-group-h{ display:flex;align-items:baseline;gap:8px;margin:0 0 12px;font-size:var(--fs-md);font-weight:700;color:var(--gray-9); }
.integ-group-n{ font-size:var(--fs-sm);font-weight:600;color:var(--accent-600); }
.integ-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px; }
.integ-card{ display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;padding:12px 13px;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1);cursor:pointer;font-family:inherit; }
.integ-card:hover{ border-color:var(--accent-300);background:var(--accent-50); }
.integ-card-name{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9);word-break:break-word;line-height:1.25; }
.integ-card-meta{ display:flex;align-items:center;gap:8px;width:100%; }
.integ-card-cat{ font-size:var(--fs-xs);color:var(--gray-6);text-transform:uppercase;letter-spacing:.04em; }
.integ-card-n{ margin-left:auto;font-size:var(--fs-xs);font-weight:600;color:var(--accent-600);white-space:nowrap; }
/* entry drawer detail */
.integ-detail{ display:flex;flex-direction:column;gap:15px; }
.integ-what{ font-size:var(--fs-sm);line-height:1.5;color:var(--gray-7);margin:0; }
.integ-meta-row{ display:flex;flex-direction:column;gap:6px; }
.integ-meta-label{ font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6); }
.integ-sub{ margin:4px 0 0;font-size:var(--fs-sm);font-weight:700;color:var(--gray-9); }
.integ-projs{ display:flex;flex-wrap:wrap;gap:6px; }

/* ── Global layer view (the machine-global install; reached from the Projects header) ── */
.gl-projbtn{ margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--accent-300,#9EC9FF);border-radius:var(--r-md);background:var(--accent-50,#EAF4FF);color:var(--accent-700);font-family:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap; }
.gl-projbtn:hover{ background:var(--accent-100,#DCEBFF);border-color:var(--accent-500); }
.gl-projbtn-ico{ font-size:13px; } .gl-projbtn-arrow{ color:var(--accent-500);font-weight:700; }
.gl-prov{ display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:2px 0 16px; }
.gl-prov-main{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9); }
.gl-prov-src{ font-size:var(--fs-xs);color:var(--gray-6); }
.gl-kpis{ display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:16px; }
.gl-kpi{ display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-1);cursor:pointer;font-family:inherit; }
.gl-kpi:hover{ border-color:var(--accent-300,#9EC9FF);background:var(--accent-50,#EAF4FF); }
.gl-kpi-n{ font-family:var(--font-mono);font-size:22px;font-weight:800;line-height:1;color:var(--gray-9); }
.gl-kpi-l{ font-size:var(--fs-xs);color:var(--gray-6); }
.gl-note{ font-size:var(--fs-sm);line-height:1.55;color:var(--gray-6);background:var(--gray-1);border:1px solid var(--gray-3);border-left:3px solid var(--accent-500);border-radius:var(--r-sm);padding:11px 14px;margin:0 0 22px; }
.gl-sec{ margin-bottom:28px;scroll-margin-top:18px; }
.gl-sec-head{ display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--gray-3); }
.gl-sec-h{ display:flex;align-items:baseline;gap:8px;margin:0;font-size:var(--fs-md);font-weight:700;color:var(--gray-9); }
.gl-sec-n{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--accent-600); }
.gl-sec-sub{ font-size:var(--fs-xs);color:var(--gray-6); }
.gl-sktools{ display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px; }
.gl-search{ flex:1 1 240px;min-width:200px;height:34px;padding:0 11px;border:1px solid var(--gray-4);border-radius:var(--r-md);background:var(--gray-1);font-family:inherit;font-size:var(--fs-md);color:var(--gray-9); }
.gl-search:focus{ outline:none;border-color:var(--accent-500); }
.gl-domsel{ height:34px;padding:0 9px;border:1px solid var(--gray-4);border-radius:var(--r-md);background:var(--gray-1);font-family:inherit;font-size:var(--fs-sm);color:var(--gray-8);cursor:pointer; }
.gl-skstat{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.gl-sklist{ display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px; }
.gl-skrow{ display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:8px 11px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1);min-width:0; }
.gl-skname-line{ display:flex;align-items:center;gap:7px;min-width:0; }
.gl-name{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0; }
button.gl-name{ background:none;border:none;padding:0;cursor:pointer;text-align:left;max-width:100%; }
button.gl-name:hover{ color:var(--accent-600);text-decoration:underline; }
.gl-skmeta{ display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0; }
.gl-localbadge{ font-size:var(--fs-xs);font-weight:600;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:1px 6px; }
.gl-score{ font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;color:var(--accent-700);min-width:26px;text-align:right; }
.gl-cmdlist,.gl-hooklist,.gl-clilist{ display:flex;flex-direction:column;gap:6px; }
.gl-cmdrow{ display:flex;align-items:baseline;gap:12px;padding:8px 11px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1); }
.gl-cmd{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;color:var(--accent-700);white-space:nowrap; }
.gl-cmddesc{ font-size:var(--fs-sm);color:var(--gray-7);line-height:1.45; }
.gl-hookrow{ display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1);flex-wrap:wrap; }
.gl-hook{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--gray-9); }
.gl-lang{ color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-4); }
.gl-events{ display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-left:auto; }
.gl-unwired{ margin-left:auto;font-size:var(--fs-xs);font-weight:600;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:1px 7px; }
.gl-empty-row{ font-size:var(--fs-sm);color:var(--gray-6);padding:10px 0;margin:0; }
.gl-clirow{ display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--gray-3);border-radius:var(--r-sm);background:var(--gray-1); }
.gl-clirow.absent{ opacity:.72; }
.gl-cli-dot{ width:8px;height:8px;border-radius:50%;background:var(--gray-4);flex-shrink:0; }
.gl-cli-dot.on{ background:var(--ok-fg); }
.gl-cli-name{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;color:var(--gray-9);min-width:70px; }
.gl-cli-role{ font-size:var(--fs-sm);color:var(--gray-7); }
.gl-cli-ver{ margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);white-space:nowrap; }
.gl-cli-absent{ margin-left:auto;font-size:var(--fs-xs);font-weight:600;color:var(--warn);white-space:nowrap; }
/* machine toggle (Strix ⇄ Zeph) */
.gl-mtoggle{ display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px; }
.gl-mbtn{ display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 15px;border:1px solid var(--gray-4);border-radius:var(--r-md);background:var(--gray-1);cursor:pointer;font-family:inherit;min-width:128px; }
.gl-mbtn:hover{ border-color:var(--accent-300,#9EC9FF);background:var(--accent-50,#EAF4FF); }
.gl-mbtn.on{ border-color:var(--accent-500);background:var(--accent-50,#EAF4FF);box-shadow:0 0 0 2px rgba(0,119,255,.14); }
.gl-mbtn-name{ font-size:var(--fs-md);font-weight:700;color:var(--gray-9); }
.gl-mbtn.on .gl-mbtn-name{ color:var(--accent-700); }
.gl-mbtn-here{ font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-600); }
.gl-mbtn-n{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.gl-mbtn.unreach{ opacity:.6; } .gl-mbtn.unreach .gl-mbtn-n{ color:var(--warn); }
.gl-offline{ font-size:var(--fs-sm);color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:11px 14px; }
/* dependency-safety flags on skills */
.gl-skrow.lb{ border-left:2px solid var(--warn-border); }
.gl-wf{ font-size:var(--fs-xs);font-weight:600;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:2px 7px;cursor:pointer;font-family:inherit;white-space:nowrap; }
.gl-wf:hover{ background:#FBEAC8; }
.gl-dep{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6);white-space:nowrap;cursor:default; }
.gl-lbtoggle{ display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:1px solid var(--gray-4);border-radius:var(--r-md);background:var(--gray-1);cursor:pointer;font-family:inherit;font-size:var(--fs-sm);color:var(--gray-7);white-space:nowrap; }
.gl-lbtoggle:hover{ border-color:var(--warn-border); }
.gl-lbtoggle.on{ color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border);font-weight:600; }
.gl-lbdot{ width:9px;height:9px;border-radius:2px;background:var(--gray-4); } .gl-lbtoggle.on .gl-lbdot{ background:var(--warn); }
.gl-grp{ display:inline-flex;border:1px solid var(--gray-4);border-radius:var(--r-md);overflow:hidden;height:34px; }
.gl-grpbtn{ padding:0 13px;border:none;background:var(--gray-1);font-family:inherit;font-size:var(--fs-sm);color:var(--gray-7);cursor:pointer; }
.gl-grpbtn + .gl-grpbtn{ border-left:1px solid var(--gray-4); }
.gl-grpbtn.on{ background:var(--accent-500);color:#fff;font-weight:600; }
.gl-lbnote{ font-size:var(--fs-xs);color:var(--gray-6);margin:0 0 12px;line-height:1.5; }
.gl-wfgroup{ margin-bottom:16px; }
.gl-wfgroup-h{ display:flex;align-items:baseline;gap:9px;margin:0 0 8px;padding-bottom:6px;border-bottom:1px dashed var(--gray-3); }
.gl-wfgroup-name{ font-size:var(--fs-sm);font-weight:700;color:var(--gray-9);background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left; }
button.gl-wfgroup-name:hover{ color:var(--accent-600);text-decoration:underline; }
.gl-wfgroup-name.standalone{ color:var(--gray-6);font-weight:600;cursor:default; }
.gl-wfgroup-n{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-5); }

/* Composite-readiness (D3) + cross-overlap (D2) */
.comp-ready{ border:1px solid var(--gray-3);border-radius:var(--r-md);padding:10px 12px;background:var(--gray-1);margin-bottom:8px; }
.cr-head{ display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px; }
.cr-frac{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-700); }
.cr-missing{ font-size:var(--fs-sm);color:var(--gray-6);margin-top:7px;display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.uniq-list{ display:flex;flex-wrap:wrap;gap:6px; }

/* Image-set modal */
.pimg-scrim{ position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:24px;z-index:60; }
.pimg-modal{ background:var(--gray-1);border-radius:var(--r-lg);max-width:520px;width:100%;padding:20px 22px;box-shadow:var(--shadow-lg); }
.pimg-modal h3{ font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;margin:0 0 10px; }
.pimg-modal input{ width:100%;margin:10px 0; }
.pimg-modal .tk-email{ max-width:none; }
.pimg-actions{ display:flex;gap:8px;justify-content:flex-end;margin-top:6px; }
.pimg-preview{ width:100%;aspect-ratio:16/9;margin:12px 0;border:1px solid var(--gray-3);border-radius:var(--r-md);background:var(--gray-2);overflow:hidden;display:grid;place-items:center; }
.pimg-preview img{ width:100%;height:100%;object-fit:cover;display:block; }
.pimg-preview-mono{ font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:700;letter-spacing:.03em;color:var(--gray-5); }
.pimg-drop{ display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px 16px;border:1.5px dashed var(--gray-4);border-radius:var(--r-md);background:var(--gray-0);color:var(--gray-7);font-size:var(--fs-base);text-align:center;cursor:pointer;transition:border-color .12s,background .12s,color .12s; }
.pimg-drop:hover,.pimg-drop:focus-visible{ border-color:var(--accent-400);color:var(--accent-700);outline:none; }
.pimg-drop.over{ border-color:var(--accent-500);background:var(--accent-50);color:var(--accent-700); }
.pimg-drop.busy{ opacity:.55;pointer-events:none; }
.pimg-drop strong{ font-weight:650; }
.pimg-drop-ic{ font-size:var(--fs-xl);line-height:1; }
.pimg-file{ display:none; }

/* ── Atlas (A1 sunburst · A2 dependency matrix · A3 quality histogram) ── */
.atlas-pane{ margin-top:var(--s-4); }
.atlas-stage{ display:flex;flex-direction:column;align-items:center;gap:var(--s-3);
  background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:var(--s-5); }
.sunburst{ width:100%;max-width:460px;height:auto; }
.sb-seg{ cursor:pointer;transition:fill-opacity .12s; }
.sb-seg:hover{ fill-opacity:1 !important; }
.sb-lab{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:#fff;pointer-events:none;font-weight:600;
  paint-order:stroke;stroke:rgba(15,23,42,.35);stroke-width:2px; }
.sb-center-n{ font-family:var(--font-display);font-weight:900;font-size:var(--fs-2xl);fill:#fff; }
.sb-center-l{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-4); }
.depmx-wrap{ overflow:auto;background:var(--gray-1);border:1px solid var(--gray-3);
  border-radius:var(--r-lg);padding:var(--s-4);margin-top:var(--s-2); }
.depmx{ display:grid;gap:2px;min-width:560px;align-items:stretch; }
.depmx-corner{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);display:flex;align-items:flex-end;padding:2px; }
.depmx-colh{ font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--gray-6);
  writing-mode:vertical-rl;transform:rotate(180deg);padding:2px 0;align-self:end; }
.depmx-rowh{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-7);display:flex;
  align-items:center;justify-content:flex-end;padding-right:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.depmx-cell{ border:none;border-radius:3px;min-height:26px;font-family:var(--font-mono);
  font-size:var(--fs-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:filter .1s; }
.depmx-cell:hover{ filter:brightness(.92);outline:1px solid var(--accent-400); }
.depmx-cell.diag{ outline:1px solid var(--accent-300); }
.qhist{ width:100%;max-width:720px;height:auto; }
.qh-bar{ transition:fill-opacity .12s; }
.qh-bar:hover{ fill-opacity:.82; }
.qh-axn{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-5); }
.qh-legend{ display:flex;gap:var(--s-4);align-items:center;margin-top:var(--s-3);
  font-size:var(--fs-base);color:var(--gray-7);flex-wrap:wrap; }
.qh-legend i{ display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px; }
/* A5 — coverage skyline */
.skyline{ width:100%;max-width:720px;height:auto; }
.sky-bar{ transition:fill-opacity .12s; }
.sky-bar:hover{ fill-opacity:1; }
.sky-lab{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-6); }
/* B1 — Arsenal History trend strip (Home readiness) */
.hist-strip{ display:flex;align-items:center;gap:10px;margin-top:0;flex-wrap:wrap;font-size:var(--fs-base);color:var(--gray-7); }
.hist-lab{ font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--gray-6); }
.hist-spark{ width:200px;height:38px; }
.hist-delta{ font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600; }
.hist-delta.up{ color:var(--ok-fg); }
.hist-delta.down{ color:var(--err-fg); }
.hist-note{ color:var(--gray-6); }
/* B1 — Expand swaps the compact sparkline for a full dated readiness chart (fullscreen only) */
.hist-trend .hist-full{ display:none; }
.viz-fs .hist-strip{ display:none; }
.viz-fs .hist-full{ display:block; }
.hist-chart{ width:100%;max-width:760px;height:auto;display:block;margin:0 auto; }
.hist-ch-ttl{ font-family:var(--font-mono);font-size:var(--fs-base);fill:var(--gray-8);font-weight:600; }
.hist-ch-ax{ font-family:var(--font-mono);font-size:var(--fs-2xs);fill:var(--gray-6); }
.hist-ch-val{ font-family:var(--font-mono);font-size:var(--fs-xs);fill:var(--accent-600);font-weight:600; }
.hist-ch-note{ text-align:center;color:var(--gray-6);font-size:var(--fs-sm);margin-top:10px; }
/* C1 — governance compliance lens */
.comp-rules{ display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-3); }
.comp-rule{ background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:var(--s-4); }
.comp-rule-top{ display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px; }
.comp-rule-top .gh-name{ font-weight:600;font-size:var(--fs-md);text-align:left; }
.comp-rule-foot{ display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px; }
.comp-pct{ font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--gray-6); }
.comp-note{ font-size:var(--fs-sm);color:var(--gray-6);flex:1;min-width:180px; }

/* ── Universal Share / Download popover menu (decision 2026-06-04 · D1–D8) ── */
.pop-menu{
  position:fixed; z-index:400; min-width:210px; max-width:340px;
  background:var(--gray-0); border:1px solid var(--gray-3); border-radius:var(--r-lg);
  box-shadow:0 12px 32px rgba(15,23,42,.18); padding:6px; display:flex; flex-direction:column; gap:2px;
}
.pop-item{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left; cursor:pointer;
  background:transparent; border:none; border-radius:8px; padding:9px 11px;
  font-family:inherit; font-size:var(--fs-md); color:var(--gray-9); transition:background .12s;
}
.pop-item:hover, .pop-item:focus-visible{ background:var(--accent-50); outline:none; }
.pop-item .pop-ico{ flex:none; width:18px; text-align:center; font-size:var(--fs-md); }
.pop-item .pop-lab{ flex:1; white-space:nowrap; }
.pop-item .pop-note{ flex:none; font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--gray-6); }
.pop-item.is-disabled{ color:var(--gray-5); cursor:default; }
.pop-item.is-disabled:hover{ background:transparent; }
.gov-share-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }

/* ── Publish-public-copy confirm/result modal (Phase 2 · P2/P3) ── */
.pub-modal .pub-lead{ font-size:var(--fs-lg); color:var(--gray-8); margin:0 0 12px; line-height:1.55; }
.pub-modal .pub-url{ font-family:var(--font-mono); font-size:var(--fs-base); color:var(--accent-700); background:var(--accent-50); border:1px solid var(--accent-200, var(--accent-300)); border-radius:8px; padding:9px 12px; margin:0 0 12px; word-break:break-all; }
.pub-modal .pub-note{ font-size:var(--fs-base); color:var(--gray-6); margin:0 0 16px; }
.pub-modal .pub-actions{ display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.pub-modal .pub-actions .btn{ text-decoration:none; }

/* ============================================================================
 * AGENTS section (#/agents) — flagship roster + class-grouped character cards
 * All classes prefixed .ag- to avoid collisions. Tokens from :root.
 * ==========================================================================*/
.ag-hero{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:6px; }
.ag-hero h1{ font-family:var(--font-display); font-weight:700; font-size:26px; letter-spacing:.02em; margin:0 0 8px; display:flex; align-items:center; gap:11px; color:var(--gray-9); }
.ag-hero p{ color:var(--gray-7); font-size:15.5px; margin:0; max-width:600px; }
.ag-hero-stats{ display:flex; gap:10px; }
.ag-hstat{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:10px 18px; text-align:center; box-shadow:var(--shadow-sm); }
.ag-hstat b{ display:block; font-family:var(--font-display); font-weight:900; font-size:24px; color:var(--gray-9); line-height:1; }
.ag-hstat span{ font-size:11px; color:var(--gray-6); margin-top:5px; display:block; }
.ag-hstat.accent{ border-color:var(--accent-300); background:var(--accent-50); }
.ag-hstat.accent b{ color:var(--accent-600); }
.ag-group{ margin-top:30px; }
.ag-ghead{ display:flex; align-items:center; gap:11px; margin-bottom:13px; }
.ag-ghead h2{ font-weight:700; font-size:16px; margin:0; color:var(--gray-9); }
.ag-ghead .ic{ font-size:17px; }
.ag-ghead .gd{ font-size:13px; color:var(--gray-6); }
.ag-ghead .cnt{ margin-left:auto; font-family:var(--font-mono); font-size:12px; color:var(--gray-5); }

/* avatars: flagship circular portraits, task square sigils */
.ag-av{ display:flex; align-items:center; justify-content:center; flex:none; overflow:hidden; border-radius:50%; position:relative; width:56px; height:56px; background:var(--gray-2); }
.ag-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.ag-orb{ background:radial-gradient(circle at 34% 28%, var(--oc0,#E6DAFF) 0%, var(--oh) 8%, var(--om) 22%, var(--oc) 42%, var(--od) 72%, var(--ocore) 100%); box-shadow:inset 0 -8px 18px rgba(0,0,0,.5),inset 0 4px 9px rgba(255,255,255,.14),0 4px 16px rgba(0,0,0,.2); }
.ag-orb::after{ content:''; position:absolute; top:16%; left:24%; width:30%; height:24%; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,0) 70%); filter:blur(1px); }
.ag-orb.atlas{ --oc0:#E6DAFF; --oh:#B79DFF; --om:#8769FF; --oc:#5E3DF0; --od:#2E1B8C; --ocore:#120744; }
.ag-orb.forge{ --oc0:#D6FBF0; --oh:#A5EFDE; --om:#5FCAB0; --oc:#2FA68C; --od:#1C5247; --ocore:#0A1F1A; }

/* Faithful layered orb (reproduces Mission Control ShakeebOrb.tsx + globals.css
   [data-agent] tokens): non-clipping wrapper, breathing halo ring, conic swirl,
   pulse ring, specular highlight. Replaces the old flat single-element .ag-orb. */
.ag-orbx{ position:relative; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; flex:none; }
.ag-orbx[data-orbv="atlas"]{ --orb-hi:#B79DFF; --orb-mid:#8769FF; --orb-col:#5E3DF0; --orb-deep:#2E1B8C; --orb-cor:#120744; --orb-glow:rgba(124,91,255,.55); --orb-halo:rgba(124,91,255,.34); }
.ag-orbx[data-orbv="forge"]{ --orb-hi:#A5EFDE; --orb-mid:#5FCAB0; --orb-col:#2FA68C; --orb-deep:#1C5247; --orb-cor:#0A1F1A; --orb-glow:rgba(47,166,140,.5); --orb-halo:rgba(47,166,140,.28); }
.ag-orb-halo{ position:absolute; inset:-38%; border-radius:50%; background:radial-gradient(circle, var(--orb-halo) 0%, rgba(0,0,0,0) 60%); filter:blur(7px); animation:agOrbHalo 4s ease-in-out infinite; pointer-events:none; }
.ag-orb-ring{ position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--orb-glow); animation:agOrbPulse 3.6s ease-in-out infinite; pointer-events:none; }
.ag-orb-core{ position:absolute; inset:0; border-radius:50%; overflow:hidden;
  background:radial-gradient(circle at 34% 28%, #E6DAFF 0%, var(--orb-hi) 8%, var(--orb-mid) 22%, var(--orb-col) 42%, var(--orb-deep) 72%, var(--orb-cor) 100%);
  box-shadow:inset -14px -28px 48px rgba(0,0,0,.55), inset 18px 22px 38px rgba(255,255,255,.12), 0 12px 40px -10px var(--orb-glow);
  animation:agOrbBreathe 4.2s ease-in-out infinite; }
.ag-orb-swirl{ position:absolute; inset:-18%; border-radius:50%; background:conic-gradient(from 0deg, rgba(255,255,255,0) 0deg, rgba(255,255,255,.16) 90deg, rgba(255,255,255,0) 180deg, rgba(255,255,255,.20) 270deg, rgba(255,255,255,0) 360deg); mix-blend-mode:overlay; animation:agOrbSwirl 14s linear infinite; pointer-events:none; }
.ag-orb-spec{ position:absolute; top:16%; left:22%; width:30%; height:18%; border-radius:50%; background:radial-gradient(ellipse, rgba(255,255,255,.7) 0%, rgba(255,255,255,0) 70%); filter:blur(2px); pointer-events:none; }
@keyframes agOrbHalo{ 0%,100%{ transform:scale(.92); opacity:.7; } 50%{ transform:scale(1.08); opacity:1; } }
@keyframes agOrbPulse{ 0%,100%{ transform:scale(1); opacity:.55; } 50%{ transform:scale(1.14); opacity:0; } }
@keyframes agOrbBreathe{ 0%,100%{ transform:scale(.99); } 50%{ transform:scale(1.02); } }
@keyframes agOrbSwirl{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .ag-orb-halo,.ag-orb-ring,.ag-orb-core,.ag-orb-swirl{ animation:none; } }

/* flagship cards */
.ag-flag-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.ag-flag{ position:relative; display:flex; flex-direction:column; gap:12px; background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-lg); padding:18px; cursor:pointer; text-align:left; width:100%; font:inherit; color:inherit; transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease); overflow:hidden; }
.ag-flag::after{ content:'→'; position:absolute; top:16px; right:16px; color:var(--gray-4); font-size:16px; transition:all .18s var(--ease); }
.ag-flag:hover{ transform:translateY(-2px); border-color:var(--accent-300); box-shadow:var(--shadow-md); }
.ag-flag:hover::after{ color:var(--t-agent-fg); transform:translateX(2px); }
.ag-topline{ height:3px; border-radius:3px; position:absolute; left:0; right:0; top:0; background:var(--ag,#7C3AED); }
.ag-flag-top{ display:flex; gap:14px; align-items:center; }
.ag-flag-id{ min-width:0; }
.ag-flag-name{ font-family:var(--font-mono); font-size:17px; font-weight:600; color:var(--gray-9); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ag-flag-role{ font-size:12.5px; color:var(--gray-6); margin-top:3px; }
.ag-flag-role b{ color:var(--ag,#7C3AED); font-weight:600; }
.ag-flag-bio{ font-size:13.5px; color:var(--gray-7); line-height:1.5; }
.ag-stats{ display:flex; gap:22px; padding-top:13px; border-top:1px solid var(--gray-2); }
.ag-st{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.ag-st b{ font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--gray-9); line-height:1.1; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.ag-st b.txt{ font-size:13px; white-space:normal; word-break:break-word; }
.ag-st span{ font-size:11px; color:var(--gray-6); line-height:1.2; }
.ag-src-row{ margin-top:auto; padding-top:11px; }

/* live/soon status pills */
.ag-pill{ display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:var(--r-pill,7px); font-size:12px; font-weight:600; gap:5px; }
.ag-pill.live{ color:var(--ok-fg); background:var(--ok-bg); border:1px solid var(--ok-border); }
.ag-pill.live .lp{ width:7px; height:7px; border-radius:50%; background:var(--ok-fg); }
.ag-pill.soon{ color:var(--warn); background:var(--warn-bg); border:1px solid var(--warn-border); }

/* source-of-truth links */
.ag-src{ display:inline-flex; align-items:center; gap:5px; font-family:var(--font-mono); font-size:11.5px; font-weight:500; color:var(--accent-600); text-decoration:none; border:1px solid var(--accent-100); background:var(--accent-50); border-radius:var(--r-pill,7px); padding:3px 9px; }
.ag-src:hover{ background:var(--accent-100); }
.ag-src.soon{ color:var(--gray-5); background:var(--gray-1); border:1px dashed var(--gray-4); cursor:default; }
.ag-src.gated{ color:var(--gray-7); background:var(--gray-2); border-color:var(--gray-3); }

/* task character cards (mirror primitive-card grammar) */
.ag-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:14px; }
.ag-card{ position:relative; display:flex; flex-direction:column; gap:10px; background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:16px; cursor:pointer; text-align:left; width:100%; font:inherit; color:inherit; transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease); }
.ag-card:hover{ transform:translateY(-2px); border-color:var(--accent-300); box-shadow:var(--shadow-md); }
.ag-card:hover .ag-goin{ opacity:1; transform:translateX(0); }
.ag-ctop{ display:flex; align-items:center; gap:10px; }
.ag-sig{ width:34px; height:34px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; font-size:18px; flex:none; background:var(--t-agent-bg); border:1px solid #E9DBFF; }
.ag-cname{ font-family:var(--font-mono); font-size:15px; font-weight:600; color:var(--gray-9); }
.ag-crole{ font-size:11.5px; color:var(--ag,#7C3AED); font-weight:600; margin-top:1px; }
.ag-goin{ margin-left:auto; color:var(--gray-4); font-size:15px; opacity:0; transform:translateX(-3px); transition:all .18s var(--ease); }
.ag-cbio{ font-size:14px; color:var(--gray-7); line-height:1.5; }
.ag-cmeta{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:auto; padding-top:9px; border-top:1px solid var(--gray-2); }
.ag-cdom{ margin-left:auto; font-family:var(--font-mono); font-size:11px; color:var(--gray-5); }
.ag-model{ display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:var(--r-pill,7px); font-family:var(--font-mono); font-size:12px; font-weight:600; background:var(--gray-9); color:#E2E8F0; }
.ag-model.opus{ background:#2E1065; color:#E9D5FF; }
.ag-model.sonnet{ background:#0C4A6E; color:#BAE6FD; }
.ag-tag{ display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:var(--r-pill,7px); font-size:12px; font-weight:500; color:var(--gray-7); background:var(--gray-2); border:1px solid var(--gray-3); }

/* the source-of-truth principle banner */
.ag-principle{ display:flex; gap:13px; background:var(--accent-50); border:1px solid var(--accent-100); border-radius:var(--r-lg); padding:16px 18px; margin-top:18px; }
.ag-principle .pi{ font-size:20px; line-height:1.1; }
.ag-principle h3{ font-size:14px; margin:0 0 5px; font-weight:700; color:var(--accent-700); }
.ag-principle p{ font-size:13px; color:var(--gray-7); margin:0; }
.ag-principle code{ font-family:var(--font-mono); font-size:11.5px; background:#fff; border:1px solid var(--accent-100); border-radius:4px; padding:1px 5px; color:var(--accent-700); }
@media (max-width:640px){ .ag-stats{ gap:16px; } .ag-hero-stats{ width:100%; } }

/* ── Agent DETAIL (command-center for flagships, character-sheet for task agents) ── */
.ag-dhead{ display:flex; gap:22px; align-items:flex-start; flex-wrap:wrap; margin-bottom:6px; }
.ag-pav{ width:104px; height:104px; border-radius:50%; overflow:hidden; flex:none; position:relative; background:var(--gray-2); box-shadow:var(--shadow-sm); }
.ag-pav img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Orb gradient must be re-stated on the compound selector — plain .ag-pav sets
   background:var(--gray-2) at equal specificity + later in the file, which would
   otherwise win and render the detail-page orb as a blank gray circle. */
.ag-pav.ag-orb{ background:radial-gradient(circle at 34% 28%, var(--oc0,#E6DAFF) 0%, var(--oh) 8%, var(--om) 22%, var(--oc) 42%, var(--od) 72%, var(--ocore) 100%); }
.ag-pav.ag-orb::after{ content:''; position:absolute; top:16%; left:24%; width:30%; height:24%; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,0) 70%); filter:blur(1px); }
.ag-dtitle{ font-family:var(--font-mono); font-size:28px; font-weight:600; letter-spacing:-.02em; margin:0 0 6px; display:flex; align-items:center; gap:11px; color:var(--gray-9); }
.ag-dtag{ font-size:12px; font-weight:600; color:#fff; border-radius:var(--r-pill,7px); padding:4px 11px; background:var(--ag,#7C3AED); }
.ag-dsub{ font-size:16px; color:var(--gray-7); margin:8px 0 0; max-width:680px; }
.ag-dmeta{ display:flex; gap:7px; margin-top:13px; flex-wrap:wrap; align-items:center; }
/* multi-LLM model chip + hover popover */
.ag-mc{ position:relative; display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:var(--r-pill,7px); font-family:var(--font-mono); font-size:12px; font-weight:600; background:var(--gray-9); color:#E2E8F0; }
.ag-mc.opus{ background:#2E1065; color:#E9D5FF; } .ag-mc.sonnet{ background:#0C4A6E; color:#BAE6FD; }
.ag-mc.multi{ background:var(--gray-8); color:#fff; gap:4px; cursor:pointer; }
.ag-mc .car{ font-size:9px; opacity:.8; }
.ag-mcpop{ position:absolute; top:calc(100% + 7px); left:0; z-index:40; min-width:214px; background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); box-shadow:var(--shadow-lg,0 8px 30px rgba(10,22,40,.12)); padding:8px; opacity:0; visibility:hidden; transform:translateY(-4px); transition:all .14s var(--ease); }
.ag-mc.multi:hover .ag-mcpop, .ag-mc.multi:focus-within .ag-mcpop{ opacity:1; visibility:visible; transform:translateY(0); }
.ag-mcpop .h{ font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--gray-5); font-weight:600; padding:2px 6px 7px; }
.ag-mcrow{ display:flex; align-items:center; gap:8px; padding:6px; border-radius:var(--r-sm); }
.ag-mcrow:hover{ background:var(--gray-2); }
.ag-mcrow .dot{ width:7px; height:7px; border-radius:50%; flex:none; } .ag-mcrow .nm{ font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--gray-9); } .ag-mcrow .ro{ margin-left:auto; font-size:11px; color:var(--gray-6); }
/* tabs */
.ag-tabs{ display:flex; gap:3px; border-bottom:1px solid var(--gray-3); margin:24px 0 20px; flex-wrap:wrap; }
.ag-tab{ font-size:14px; font-weight:600; color:var(--gray-6); background:none; border:none; padding:11px 15px; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; font-family:inherit; }
.ag-tab.on{ color:var(--t-agent-fg); border-bottom-color:var(--t-agent-fg); }
.ag-tab:hover:not(.on){ color:var(--gray-9); }
.ag-pane{ display:none; } .ag-pane.on{ display:block; }
/* character sheet */
.ag-sheet{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:22px 0; }
@media (max-width:860px){ .ag-sheet{ grid-template-columns:repeat(3,1fr); } }
.ag-cell{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:12px 13px; box-shadow:var(--shadow-sm); }
.ag-cell .k{ font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--gray-5); font-weight:600; margin-bottom:5px; }
.ag-cell .v{ font-weight:700; font-size:15px; color:var(--gray-9); }
/* section blocks */
.ag-sec{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:18px 20px; box-shadow:var(--shadow-sm); margin-bottom:14px; }
.ag-sec h4{ font-weight:700; font-size:14px; margin:0 0 12px; display:flex; align-items:center; gap:8px; }
.ag-sec p{ font-size:14px; color:var(--gray-7); margin:0 0 10px; } .ag-sec p:last-child{ margin:0; }
.ag-auth{ font-size:11px; color:var(--gray-5); font-style:italic; margin-top:10px; font-family:var(--font-mono); }
.ag-lg{ font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--gray-5); font-weight:600; margin:0 0 6px; }
.ag-tool{ display:inline-flex; align-items:center; height:22px; font-family:var(--font-mono); font-size:12px; font-weight:500; padding:0 9px; border-radius:var(--r-pill,7px); margin:0 6px 6px 0; border:1px solid var(--gray-3); }
.ag-tool.read{ background:var(--accent-50); color:var(--accent-700); border-color:var(--accent-100); }
.ag-tool.write{ background:var(--warn-bg); color:var(--warn); border-color:var(--warn-border); }
.ag-tool.spawn{ background:var(--t-agent-bg); color:var(--t-agent-fg); border-color:#E9DBFF; }
.ag-cols{ display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start; }
@media (max-width:860px){ .ag-cols{ grid-template-columns:1fr; } }
.ag-rel{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--gray-7); padding:7px 0; border-bottom:1px solid var(--gray-2); }
.ag-rel:last-child{ border:none; } .ag-rel .ri{ width:22px; height:22px; border-radius:var(--r-sm); background:var(--gray-2); display:flex; align-items:center; justify-content:center; font-size:12px; flex:none; }
.ag-rel .rt{ margin-left:auto; font-family:var(--font-mono); font-size:10.5px; color:var(--gray-5); }
.ag-prov{ font-family:var(--font-mono); font-size:11.5px; color:var(--gray-6); line-height:1.8; } .ag-prov .ok{ color:var(--ok-fg); }
/* dashboard (flagship) */
.ag-sync{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:11.5px; color:var(--ok-fg); background:var(--ok-bg); border:1px solid var(--ok-border); border-radius:var(--r-pill,7px); padding:5px 12px; margin-bottom:16px; }
.ag-sync .lp{ width:7px; height:7px; border-radius:50%; background:var(--ok-fg); animation:agpulse 1.8s var(--ease) infinite; } .ag-sync a{ color:var(--ok-fg); }
@keyframes agpulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
/* Curated (repo-compiled, not a live feed) → neutral, no pulsing "live" dot. */
.ag-sync.curated{ color:var(--gray-6); background:var(--gray-1); border-color:var(--gray-3); }
.ag-sync.curated .lp{ animation:none; background:var(--gray-5); } .ag-sync.curated a{ color:var(--gray-7); }
.ag-goals{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:13px; margin-bottom:18px; }
.ag-goal{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:15px 16px; box-shadow:var(--shadow-sm); }
.ag-goal .gv{ font-family:var(--font-display); font-weight:900; font-size:24px; color:var(--gray-9); line-height:1; margin-bottom:7px; }
.ag-goal .gv.red{ color:var(--err-fg,#EF4444); } .ag-goal .gv.green{ color:var(--ok-fg); }
.ag-goal .gl{ font-size:12px; color:var(--gray-6); }
.ag-led{ width:100%; border-collapse:collapse; margin-top:6px; }
.ag-led th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--gray-5); font-weight:600; padding:0 8px 9px; }
.ag-led td{ padding:8px; border-top:1px solid var(--gray-2); font-size:13px; color:var(--gray-7); vertical-align:top; }
.ag-led td.proj{ font-family:var(--font-mono); font-size:12px; color:var(--gray-9); white-space:nowrap; } .ag-led td.file{ font-family:var(--font-mono); font-size:11.5px; color:var(--gray-6); word-break:break-all; }
.ag-proof{ font-size:10.5px; font-weight:600; font-family:var(--font-mono); padding:2px 8px; border-radius:var(--r-sm); white-space:nowrap; }
.ag-proof.pv{ color:var(--ok-fg); background:var(--ok-bg); border:1px solid var(--ok-border); } .ag-proof.pl{ color:var(--gray-6); background:var(--gray-2); border:1px solid var(--gray-3); } .ag-proof.pu{ color:var(--warn); background:var(--warn-bg); border:1px solid var(--warn-border); }
/* "How agents run" orchestration cross-link strip (D10) */
.ag-runstrip{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:18px 20px; margin-top:16px; box-shadow:var(--shadow-sm); }
.ag-runstrip h4{ font-weight:700; font-size:14px; margin:0 0 3px; }
.ag-runsub{ font-size:13px; color:var(--gray-6); margin:0 0 13px; }
.ag-rungrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:9px; }
.ag-runitem{ display:flex; gap:9px; align-items:center; padding:10px 12px; border:1px solid var(--gray-3); border-radius:var(--r-md); background:var(--gray-0); cursor:pointer; text-align:left; font:inherit; color:inherit; transition:border-color .15s var(--ease), background .15s var(--ease); }
.ag-runitem:hover{ border-color:var(--accent-300); background:var(--gray-1); }
.ag-runico{ width:28px; height:28px; border-radius:var(--r-sm); background:#E7FAF7; color:var(--teal); display:flex; align-items:center; justify-content:center; font-size:13px; flex:none; }
.ag-runt{ font-size:13px; font-weight:600; color:var(--gray-9); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ag-runy{ font-family:var(--font-mono); font-size:10.5px; color:var(--gray-5); }

/* ── Command-center: Overview narrative, pillars, goals, architecture ──────── */
.ag-lead{ font-size:15px; line-height:1.7; color:var(--gray-8); margin:0 0 4px; }
.ag-note{ font-size:13px; line-height:1.65; color:var(--gray-6); background:var(--gray-1); border:1px solid var(--gray-2); border-left:3px solid var(--gray-3); border-radius:var(--r-sm); padding:11px 14px; margin:0 0 14px; }
.ag-list{ list-style:none; margin:0; padding:0; }
.ag-list li{ font-size:13.5px; line-height:1.7; color:var(--gray-7); padding:7px 0 7px 20px; position:relative; border-top:1px solid var(--gray-2); }
.ag-list li:first-child{ border-top:none; }
.ag-list li::before{ content:"›"; position:absolute; left:4px; color:var(--t-agent-fg); font-weight:700; }
.ag-pillars{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.ag-pillar{ background:var(--gray-0); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:14px 15px; box-shadow:var(--shadow-sm); }
.ag-pillar-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
.ag-pillar-h b{ font-size:14px; color:var(--gray-9); }
.ag-pillar p{ font-size:12.5px; line-height:1.6; color:var(--gray-6); margin:0; }
.ag-badge{ font-size:10px; font-weight:700; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.04em; color:var(--ok-fg); background:var(--ok-bg); border:1px solid var(--ok-border); border-radius:var(--r-pill,7px); padding:2px 8px; flex:none; }
.ag-goalrows{ display:flex; flex-direction:column; gap:11px; }
.ag-goalrow{ display:grid; grid-template-columns:1fr 120px auto; align-items:center; gap:14px; }
@media (max-width:720px){ .ag-goalrow{ grid-template-columns:1fr; gap:5px; } }
.ag-gnm{ font-size:13.5px; color:var(--gray-8); font-weight:500; }
.ag-gbar{ height:7px; background:var(--gray-2); border-radius:99px; overflow:hidden; }
.ag-gfill{ height:100%; background:var(--t-agent-fg); border-radius:99px; }
.ag-gmetric{ font-family:var(--font-mono); font-size:11.5px; color:var(--gray-6); text-align:right; }
.ag-tbl-wrap{ overflow-x:auto; max-width:100%; }
@media (max-width:720px){ .ag-table td.lead-cell{ min-width:140px; } }
.ag-pipe{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.ag-node{ font-size:11.5px; font-weight:600; color:var(--gray-8); background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:5px 10px; white-space:nowrap; }
.ag-arr{ color:var(--t-agent-fg); font-weight:700; }
.ag-archnote{ font-size:12.5px; line-height:1.6; color:var(--gray-6); margin:12px 0 0; }

/* generic scraped table (extends .ag-led) */
.ag-table{ table-layout:auto; }
.ag-table td.lead-cell{ color:var(--gray-8); min-width:200px; }

/* ── Command-center: Documents list ───────────────────────────────────────── */
.ag-doc{ display:flex; gap:11px; align-items:flex-start; padding:11px 13px; border:1px solid var(--gray-3); border-radius:var(--r-md); background:var(--gray-0); text-decoration:none; color:inherit; margin-bottom:8px; transition:border-color .15s var(--ease), background .15s var(--ease); }
.ag-doc:hover{ border-color:var(--t-agent-fg); background:var(--gray-1); }
.ag-doc.disabled{ cursor:default; opacity:.72; }
.ag-doc.disabled:hover{ border-color:var(--gray-3); background:var(--gray-0); }
.ag-doc-ico{ width:26px; height:26px; border-radius:var(--r-sm); background:var(--gray-1); display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--t-agent-fg); flex:none; }
.ag-doc-in{ min-width:0; }
.ag-doc-t{ font-size:13.5px; font-weight:600; color:var(--gray-9); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ag-doc-s{ font-size:11.5px; color:var(--gray-5); font-family:var(--font-mono); margin-top:2px; word-break:break-word; }
.ag-doc-tag{ font-size:10px; font-weight:700; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.04em; border-radius:var(--r-pill,7px); padding:1px 7px; }
.ag-doc-tag.live{ color:var(--ok-fg); background:var(--ok-bg); border:1px solid var(--ok-border); }
.ag-doc-tag.gated{ color:var(--gray-6); background:var(--gray-2); border:1px solid var(--gray-3); }
.ag-doc-tag.repo{ color:var(--gray-6); background:var(--gray-1); border:1px solid var(--gray-3); }
.ag-doc-tag.soon{ color:var(--warn); background:var(--warn-bg); border:1px solid var(--warn-border); }

/* ── Summon Kamini · brainstorm dock (decision summon-kamini-2026-06-07 + addendum) ── */
/* Sized to MATCH .btn (font/padding/radius/border) so it lines up flush with Save/Cancel/Write-it
   wherever it sits in a button row; keeps its green Kamini identity. Compact contexts override below. */
.kam-summon-btn{ display:inline-flex; align-items:center; gap:6px; font-family:inherit; font-size:var(--ctl-font); font-weight:600; color:#1c6b58; background:var(--gray-1); border:1px solid #BFE3D9; border-radius:var(--r-md); padding:6px 12px 6px 8px; cursor:pointer; transition:background .12s,border-color .12s; }
.kam-summon-btn:hover{ background:rgba(47,166,140,.10); border-color:#2FA68C; }
.kam-summon-av{ width:18px; height:18px; border-radius:50%; object-fit:cover; border:1.5px solid #2FA68C; background:#fff; flex:none; }
.ag-dmeta .kam-summon-btn{ padding:3px 9px 3px 4px; font-size:var(--fs-sm); border-radius:var(--r-sm); }   /* compact on the agent meta chip row */

.kam-dock{ position:fixed; top:0; right:0; bottom:0; width:372px; max-width:100vw; z-index:120; background:var(--gray-1); border-left:1px solid var(--gray-3); box-shadow:-12px 0 40px -24px rgba(15,33,68,.4); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .22s cubic-bezier(.4,0,.2,1); }
.kam-dock.open{ transform:translateX(0); }
.kam-dock[hidden]{ display:none; }
.kam-head{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--gray-3); flex:none; }
.kam-dock-av{ position:relative; width:34px; height:34px; flex:none; display:inline-grid; place-items:center; }
.kam-dock-av img{ width:34px; height:34px; border-radius:50%; object-fit:cover; display:block; border:1.5px solid #2FA68C; background:#fff; }
.kam-dock-av .kam-ring{ position:absolute; inset:-3px; border-radius:50%; border:2px solid #2FA68C; opacity:0; pointer-events:none; }
.kam-dock-av.working .kam-ring{ animation:kamPulse 1.5s ease-out infinite; }   /* reuses the existing @keyframes kamPulse */
.kam-head-id{ min-width:0; flex:1; }
.kam-head-name{ font-family:var(--font-display,Orbitron); font-weight:700; font-size:var(--fs-md); color:var(--gray-9); letter-spacing:.02em; }
.kam-head-role{ font-size:var(--fs-2xs); color:#1c6b58; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.05em; }
.kam-close{ flex:none; width:28px; height:28px; border-radius:var(--r-sm); border:1px solid var(--gray-3); background:var(--gray-1); color:var(--gray-6); font-size:18px; line-height:1; cursor:pointer; }
.kam-close:hover{ background:var(--gray-2); color:var(--gray-9); }
.kam-ctx{ display:flex; align-items:center; gap:7px; padding:8px 16px; border-bottom:1px solid var(--gray-2); flex:none; font-size:var(--fs-sm); }
.kam-ctx-name{ font-weight:700; color:var(--gray-9); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kam-ctx-kind{ font-family:var(--font-mono); font-size:var(--fs-2xs); color:#1c6b58; background:rgba(47,166,140,.08); border:1px solid rgba(47,166,140,.22); border-radius:5px; padding:1px 6px; white-space:nowrap; flex:none; }
.kam-thread{ flex:1; overflow-y:auto; padding:14px 16px; display:flex; flex-direction:column; gap:9px; }
.kam-bub{ font-size:var(--fs-sm); line-height:1.5; border-radius:9px; padding:8px 11px; max-width:92%; }
.kam-bub .kam-who{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.04em; display:block; margin-bottom:3px; color:var(--gray-6); }
.kam-bub .kam-who.kam{ color:#1c6b58; }
.kam-bub-kam{ background:rgba(47,166,140,.08); border:1px solid rgba(47,166,140,.25); align-self:flex-start; }
.kam-bub-you{ background:var(--accent-50); border:1px solid var(--accent-100); align-self:flex-end; }
.kam-seed{ opacity:.92; }
.kam-next{ display:inline-flex; align-items:center; gap:6px; margin-top:9px; font-family:inherit; font-size:var(--fs-sm); font-weight:600; border-radius:var(--r-sm); padding:6px 11px; cursor:pointer; border:1px solid; }
.kam-next-fix{ background:var(--accent-600); border-color:var(--accent-600); color:#fff; }
.kam-next-fix:hover{ background:var(--accent-700); }
.kam-next-note{ background:var(--defer-bg,#FBF3E2); border-color:var(--warn-border,#FDE68A); color:var(--warn,#B45309); }
.kam-next-xref{ background:rgba(47,166,140,.10); border-color:rgba(47,166,140,.3); color:#1c6b58; }
.kam-record{ display:flex; align-items:center; gap:7px; font-size:var(--fs-sm); color:var(--gray-7); background:var(--gray-0); border:1px dashed var(--gray-4); border-radius:8px; padding:6px 10px; }
.kam-rec-ic{ flex:none; }
.kam-waiting{ display:flex; align-items:center; gap:8px; font-size:var(--fs-sm); color:#1c6b58; }
.kam-dots{ width:8px; height:8px; border-radius:50%; background:#2FA68C; animation:fxpulse 1.1s ease-in-out infinite; flex:none; }
.kam-fixwrap{ border-top:1px solid var(--gray-3); padding:11px 16px 0; }
.kam-fixwrap-h{ font-family:var(--font-mono); font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.05em; color:var(--accent-700); margin-bottom:8px; }
.kam-input-zone{ flex:none; border-top:1px solid var(--gray-3); padding:11px 16px; display:flex; gap:8px; align-items:flex-end; }
.kam-input-zone.degrade{ flex-direction:column; align-items:stretch; gap:9px; }
.kam-input{ flex:1; border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:8px 10px; font-family:inherit; font-size:var(--fs-sm); color:var(--gray-9); line-height:1.5; resize:vertical; background:#fff; min-height:38px; }
.kam-input:focus{ outline:none; border-color:#2FA68C; box-shadow:0 0 0 3px rgba(47,166,140,.14); }
.kam-send{ flex:none; font-family:inherit; font-size:var(--fs-sm); font-weight:600; color:#fff; background:#1c6b58; border:1px solid #1c6b58; border-radius:var(--r-sm); padding:9px 16px; cursor:pointer; }
.kam-send:hover{ background:#14503f; }
.kam-send:disabled{ opacity:.5; cursor:default; }
.kam-note{ font-size:var(--fs-sm); color:var(--gray-6); line-height:1.5; }
.kam-copy{ align-self:flex-start; font-family:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--gray-7); background:#fff; border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:7px 12px; cursor:pointer; }
.kam-copy:hover{ border-color:var(--accent-400); color:var(--accent-700); }
.kam-foot{ flex:none; padding:8px 16px 12px; font-size:var(--fs-2xs); color:var(--gray-6); font-family:var(--font-mono); text-align:center; border-top:1px solid var(--gray-2); }   /* gray-6 (#586575) clears AA on white; gray-5 failed (review P3) */
/* desktop: reflow the page instead of covering it (companion, not modal) */
@media (min-width:961px){
  body.kam-docked{ padding-right:372px; }
  /* the −372px reflow narrows the sticky detail header; let it STACK (title row, then the
     action cluster) so a wide button row never crushes the title column to one char per line. */
  body.kam-docked .detail-head{ flex-wrap:wrap; }
  body.kam-docked .detail-head-l{ flex-basis:100%; }
  body.kam-docked .ag-dhead{ flex-wrap:wrap; }
}
/* narrow: full-width bottom-sheet (the dock graft from the accordion) */
@media (max-width:960px){
  .kam-dock{ top:auto; left:0; right:0; bottom:0; width:100%; height:88vh; max-height:88vh; border-left:none; border-top:1px solid var(--gray-3); border-radius:14px 14px 0 0; box-shadow:0 -12px 40px -20px rgba(15,33,68,.45); transform:translateY(100%); }
  .kam-dock.open{ transform:translateY(0); }
}
@media (prefers-reduced-motion:reduce){ .kam-dock{ transition:none; } }

/* ===========================================================================
 * Primitive Ledger (Registry ▸ Ledger) — Direction D faceted search console
 * ======================================================================== */
.lg-prov{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 14px;font-size:var(--fs-sm);color:var(--gray-6)}
.lg-prov-main b{color:var(--gray-9)} .lg-prov-src{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:var(--fs-xs);color:var(--gray-5)}
.lg-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.lg-search{flex:1 1 280px;min-width:220px;display:flex;align-items:center;gap:8px;background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-lg);padding:0 12px;height:38px}
.lg-search:focus-within{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-50)}
.lg-search-in{border:0;outline:0;flex:1;font-size:var(--fs-md);background:transparent;color:var(--gray-9)}
.lg-search-ico{color:var(--gray-5);font-size:13px}
.lg-daterow{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--gray-6);flex-wrap:wrap}
.lg-date{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:var(--fs-sm);border:1px solid var(--gray-4);border-radius:var(--r-md);padding:6px 8px;color:var(--gray-8);background:var(--gray-1)}
.lg-preset{font:inherit;font-size:var(--fs-xs);color:var(--gray-6);background:var(--gray-1);border:1px solid var(--gray-4);border-radius:var(--r-pill);padding:5px 10px;cursor:pointer}
.lg-preset:hover{border-color:var(--accent-500);color:var(--accent-500)}
.lg-sort{height:38px;border:1px solid var(--gray-4);border-radius:var(--r-md);padding:0 10px;font-size:var(--fs-sm);color:var(--gray-8);background:var(--gray-1)}
.lg-layout{display:grid;grid-template-columns:178px 1fr;gap:26px;align-items:start}
.lg-facets{align-self:start;position:sticky;top:14px;max-height:calc(100vh - 90px);overflow-y:auto}
.lg-facet{margin-bottom:18px}
.lg-facet h3{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--gray-6);margin:0 0 7px;display:flex;justify-content:space-between;align-items:center}
.lg-v1{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:8.5px;color:var(--accent-600);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:999px;padding:1px 5px;margin-left:5px}
.lg-ex{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:8.5px;color:var(--gray-6);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:999px;padding:1px 5px;margin-left:5px}
.lg-reset{font-size:var(--fs-2xs);color:var(--accent-600);cursor:pointer;font-weight:600}
.lg-fopt{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-sm);color:var(--gray-7);user-select:none}
.lg-fopt:hover{background:var(--gray-2)} .lg-fopt.on{background:var(--accent-50);color:var(--gray-9);font-weight:600}
.lg-box{width:14px;height:14px;border:1.5px solid var(--gray-4);border-radius:var(--r-sm);flex-shrink:0;display:grid;place-items:center;font-size:9px;color:#fff}
.lg-fopt.on .lg-box{background:var(--accent-500);border-color:var(--accent-500)}
.lg-lbl{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:6px;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-sw{width:9px;height:9px;border-radius:2px;flex-shrink:0}
.lg-cnt{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:var(--fs-2xs);color:var(--gray-6);flex-shrink:0} .lg-cnt.zero{color:var(--gray-5)} .lg-fopt.on .lg-cnt{color:var(--accent-600)}
.lg-head{margin-bottom:10px} .lg-count{font-size:var(--fs-base);color:var(--gray-6)} .lg-count b{color:var(--gray-9)}
.lg-tokens{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.lg-tok{font:inherit;font-size:var(--fs-xs);font-weight:600;background:var(--accent-50);color:var(--accent-600);border:1px solid var(--accent-100);border-radius:999px;padding:3px 9px;cursor:pointer}
.lg-tok.clearall{background:var(--gray-1);color:var(--gray-6);border-color:var(--gray-4)}
.lg-card{background:var(--gray-1);border:1px solid var(--gray-3);border-radius:var(--r-lg);padding:13px 16px;margin-bottom:10px;transition:box-shadow .12s,border-color .12s}
.lg-card:hover{box-shadow:0 3px 14px rgba(15,23,42,.07);border-color:var(--gray-4)}
.lg-cardhead{cursor:pointer}
.lg-rc-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.lg-chg{font-size:var(--fs-2xs);font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid}
.lg-type{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:var(--r-sm);text-transform:lowercase}
.lg-dom{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:600;padding:2px 8px 2px 7px;border-radius:999px;text-transform:capitalize;color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3)}
.lg-ddot{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.lg-name{font-weight:600;color:var(--gray-9);font-size:var(--fs-md)}
.lg-date{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:var(--fs-xs);color:var(--gray-6);margin-left:auto}
.lg-landed{font-size:var(--fs-2xs);font-weight:600;color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);padding:2px 8px;border-radius:999px}
.lg-sum{color:var(--gray-7);font-size:var(--fs-base);margin-top:7px}
.lg-card:not(.open) .lg-sum{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lg-detail{display:none;margin-top:12px;padding-top:12px;border-top:1px dashed var(--gray-3)}
.lg-card.open .lg-detail{display:block}
.lg-diff{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:var(--fs-xs);border:1px solid var(--gray-3);border-radius:var(--r-md);overflow:hidden;margin:2px 0 12px}
.lg-dl{padding:2px 12px;white-space:pre-wrap}
.lg-add{background:#EAFBF3;color:#066b48} .lg-del{background:#FEF2F2;color:#b4232a} .lg-ctx{color:var(--gray-7)} .lg-gap{color:var(--gray-6);font-style:italic;background:var(--gray-2)}
.lg-nodiff{font-size:var(--fs-sm);color:var(--gray-6);font-style:italic;margin:2px 0 12px}
.lg-field{font-size:var(--fs-xs);color:var(--gray-7);margin-bottom:10px;font-family:'JetBrains Mono',ui-monospace,monospace}
.lg-field b{color:var(--gray-6);font-family:inherit;font-weight:600;text-transform:uppercase;font-size:var(--fs-2xs);letter-spacing:.04em;margin-right:6px;font-family:'Inter',sans-serif}
.lg-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lg-btn{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:7px 14px;border-radius:var(--r-md);border:1px solid var(--gray-4);background:var(--gray-1);color:var(--gray-8);cursor:pointer}
.lg-btn.primary{background:var(--accent-500);color:#fff;border-color:var(--accent-500)} .lg-btn.primary:hover{background:var(--accent-600)}
.lg-srcdot{margin-left:auto;font-size:var(--fs-2xs);color:var(--gray-6)}
.lg-empty{text-align:center;padding:40px 20px;color:var(--gray-6)}
.lg-pager{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--gray-3)}
.lg-pginfo{font-size:var(--fs-sm);color:var(--gray-6)} .lg-pginfo b{color:var(--gray-9)}
.lg-pgctrls{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.lg-pg{font:inherit;font-size:var(--fs-sm);min-width:32px;height:32px;padding:0 9px;border:1px solid var(--gray-4);background:var(--gray-1);color:var(--gray-7);border-radius:var(--r-md);cursor:pointer}
.lg-pg:hover:not([disabled]){border-color:var(--accent-500);color:var(--accent-500)}
.lg-pg.cur{background:var(--accent-500);color:#fff;border-color:var(--accent-500);font-weight:700} .lg-pg[disabled]{opacity:.4;cursor:not-allowed}
.lg-gap{color:var(--gray-5);padding:0 3px}
.lg-pplabel{font-size:var(--fs-sm);color:var(--gray-6)} .lg-perpage{height:32px;border:1px solid var(--gray-4);border-radius:var(--r-md);padding:0 8px;font-size:var(--fs-sm);color:var(--gray-8);background:var(--gray-1)}
.lg-mark, .lg-sum mark, .lg-name mark{background:#FEF3C7;color:inherit;padding:0 1px;border-radius:2px}
.lg-fopt:focus-visible,.lg-reset:focus-visible,.lg-cardhead:focus-visible,.lg-tok:focus-visible,.lg-pg:focus-visible,.lg-preset:focus-visible,.lg-perpage:focus-visible,.lg-sort:focus-visible,.lg-date:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px;border-radius:var(--r-sm)}
@media (max-width:820px){
  .lg-layout{grid-template-columns:1fr}
  .lg-facets{position:static;max-height:none;display:flex;flex-wrap:wrap;gap:16px}
  .lg-facet{flex:1;min-width:150px;margin-bottom:0}
}

/* ── Dashboards registry (Tracking › Dashboards) — native metrics, 2026-06-13 ──
 * No rounded pills (squared corners throughout, per repeated preference). The
 * area renders each dashboard's real data natively — KPI tiles, tables, lists —
 * baked by build-dashboards-live.cjs. No iframes of external pages. */
.dash-pane{ margin-top:var(--s-4); }
.dash-intro{ margin-bottom:var(--s-5); }
.dash-h{ font-size:var(--fs-2xl); font-weight:700; letter-spacing:-.02em; color:var(--gray-9); margin:0; }
.dash-lede{ font-size:var(--fs-base); color:var(--gray-6); margin:6px 0 0; max-width:80ch; }
.dash-lede b{ color:var(--gray-8); font-weight:600; }
/* Group heading — title on its own line, description beneath */
.dash-group-head{ margin:var(--s-6) 0 var(--s-3); padding-bottom:8px; border-bottom:1px solid var(--gray-3); }
.dash-group-head:first-of-type{ margin-top:0; }
.dash-group-h{ display:flex; align-items:center; gap:10px; font-size:var(--fs-lg); font-weight:700; color:var(--gray-9); margin:0; letter-spacing:-.01em; }
.dash-group-ct{ font-family:var(--font-mono); font-size:var(--fs-xs); font-weight:600; color:var(--gray-6); background:var(--gray-2); border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:1px 7px; }
.dash-group-sub{ font-size:var(--fs-sm); color:var(--gray-6); margin:5px 0 0; max-width:80ch; }
/* Cards */
.dash-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:14px; }
.dash-card{ display:flex; flex-direction:column; gap:11px; text-align:left; font-family:inherit; cursor:pointer;
  background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-lg); padding:17px 18px;
  transition:border-color .14s, box-shadow .14s, transform .14s; }
.dash-card:hover{ border-color:var(--accent-300); box-shadow:0 6px 22px rgba(15,23,42,.09); transform:translateY(-2px); }
.dash-card:focus-visible{ outline:2px solid var(--accent-500); outline-offset:2px; }
.dash-card-head{ display:flex; align-items:center; gap:12px; }
.dash-av{ width:46px; height:46px; flex:0 0 auto; border-radius:var(--r-md); overflow:hidden; border:1px solid var(--gray-3); background:var(--gray-2); }
.dash-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.dash-av.big{ width:64px; height:64px; }
.dash-av-glyph{ display:grid; place-items:center; font-size:22px; background:var(--gray-2); border-color:var(--gray-3); }
.dash-av-glyph.big{ font-size:30px; }
.dash-card-id{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.dash-name{ font-weight:650; font-size:var(--fs-md); color:var(--gray-9); line-height:1.25; }
.dash-role{ font-size:var(--fs-xs); color:var(--gray-6); }
/* Freshness chip — SQUARED, not a pill */
.dash-fresh{ display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; align-self:flex-start;
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.04em; border-radius:var(--r-sm); padding:3px 8px; border:1px solid; white-space:nowrap; }
.dash-fresh-dot{ width:7px; height:7px; border-radius:var(--r-sm); flex:0 0 auto; }
.dash-fresh-sub{ font-weight:500; letter-spacing:0; text-transform:none; opacity:.85; }
.dash-fresh-live{ color:var(--ok-fg); background:var(--ok-bg); border-color:var(--ok-border); }
.dash-fresh-live .dash-fresh-dot{ background:#10B981; }
.dash-fresh-stale{ color:var(--warn); background:var(--warn-bg); border-color:var(--warn-border); }
.dash-fresh-stale .dash-fresh-dot{ background:var(--warn); }
.dash-fresh-down{ color:var(--crit-fg); background:var(--crit-bg); border-color:#F3C6C6; }
.dash-fresh-down .dash-fresh-dot{ background:var(--crit-fg); }
.dash-fresh-unknown{ color:var(--gray-7); background:var(--gray-2); border-color:var(--gray-3); }
.dash-fresh-unknown .dash-fresh-dot{ background:var(--gray-5); }
/* Literal link to an agent's live command center in the overview (project-folder-link style). */
.agent-dash-link{ display:flex;align-items:center;gap:8px;margin:8px 0 12px;font-size:var(--fs-sm);flex-wrap:wrap; }
.agent-dash-link .lnk{ font-weight:600; }
.agent-dash-link-note{ color:var(--gray-6); }
.dash-fresh.big{ font-size:11px; padding:4px 10px; }
.dash-tag{ font-size:var(--fs-sm); color:var(--gray-7); line-height:1.5; margin:0; }
/* Card metric peek + tones */
.dash-peek{ display:flex; align-items:baseline; gap:8px; margin-top:auto; padding-top:9px; border-top:1px solid var(--gray-2); }
.dash-peek-v{ font-size:var(--fs-xl); font-weight:700; letter-spacing:-.01em; line-height:1; }
.dash-peek-l{ font-size:var(--fs-xs); color:var(--gray-6); }
.dash-foot{ display:flex; align-items:center; justify-content:flex-end; margin-top:auto; padding-top:3px; }
.dash-arrow{ font-family:var(--font-mono); font-size:var(--fs-xs); font-weight:600; color:var(--accent-600); opacity:0; transition:opacity .14s; }
.dash-card:hover .dash-arrow{ opacity:1; }
.dash-tone-ok{ color:var(--ok-fg); } .dash-tone-warn{ color:var(--warn); } .dash-tone-bad{ color:var(--crit-fg); } .dash-tone-mut{ color:var(--gray-9); }
/* Detail */
.dash-detail{ margin-top:var(--s-4); }
.dash-back{ font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--accent-600); background:none; border:none; padding:0; cursor:pointer; margin-bottom:var(--s-4); }
.dash-back:hover{ text-decoration:underline; }
.dash-det-head{ display:flex; align-items:center; gap:15px; flex-wrap:wrap; }
.dash-det-id{ display:flex; flex-direction:column; gap:5px; min-width:0; flex:1; }
.dash-det-name{ font-size:var(--fs-2xl); font-weight:700; letter-spacing:-.02em; color:var(--gray-9); margin:0; }
.dash-det-role{ font-size:var(--fs-sm); color:var(--gray-6); }
.dash-det-tag{ font-size:var(--fs-base); color:var(--gray-7); margin:var(--s-4) 0 0; max-width:84ch; }
.dash-banner{ font-size:var(--fs-sm); line-height:1.55; border-radius:var(--r-md); padding:11px 14px; margin-top:var(--s-4); }
.dash-banner b{ font-weight:700; }
.dash-banner-advice{ color:var(--accent-700); background:var(--accent-50); border:1px solid var(--accent-100); border-left:3px solid var(--accent-500); }
.dash-banner-note{ color:var(--gray-7); background:var(--gray-2); border:1px solid var(--gray-3); border-left:3px solid var(--gray-4); }
/* Native metrics */
.dash-metrics{ margin-top:var(--s-5); }
/* Inline "what this tracks" explanation */
.dash-explain{ font-size:var(--fs-sm); color:var(--gray-7); line-height:1.6; background:var(--gray-1); border:1px solid var(--gray-3); border-left:3px solid var(--accent-400); border-radius:var(--r-md); padding:12px 15px; margin-bottom:var(--s-4); max-width:90ch; }
.dash-explain b{ color:var(--gray-9); font-weight:650; }
.dash-banner-warn{ color:var(--warn); background:var(--warn-bg); border:1px solid var(--warn-border); border-left:3px solid var(--warn); }
/* Date filter — squared segmented control (no pills) */
.dash-datebar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:var(--s-4); }
.dash-datebar-l{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--gray-6); }
.dash-seg{ display:inline-flex; border:1px solid var(--gray-4); border-radius:var(--r-md); overflow:hidden; background:var(--gray-1); }
.dash-seg-btn{ font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--gray-7); background:none; border:none; border-right:1px solid var(--gray-3); padding:7px 15px; cursor:pointer; transition:background .12s,color .12s; }
.dash-seg-btn:last-child{ border-right:none; }
.dash-seg-btn:hover{ background:var(--gray-2); color:var(--gray-9); }
.dash-seg-btn.on{ background:var(--accent-500); color:#fff; }
.dash-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; }
.dash-kpi{ background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:16px 18px; }
.dash-kpi-v{ font-size:var(--fs-3xl); font-weight:700; letter-spacing:-.02em; line-height:1.05; }
.dash-kpi-l{ font-size:var(--fs-sm); color:var(--gray-7); margin-top:6px; }
.dash-kpi-sub{ font-size:var(--fs-xs); color:var(--gray-6); margin-top:3px; }
.dash-tbl-wrap{ margin-top:var(--s-5); }
.dash-tbl-title{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--gray-6); margin-bottom:8px; }
/* Compact, content-width tables — NOT full-bleed, so the numeric columns sit
 * right next to the labels (not floated to the far edge). Fixed column widths so
 * the two stacked tables line up identically. */
.dash-tbl{ width:auto; max-width:100%; border-collapse:collapse; background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); overflow:hidden; font-size:var(--fs-sm); }
.dash-tbl th{ text-align:left; font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--gray-6); background:var(--gray-2); padding:8px 16px; border-bottom:1px solid var(--gray-3); }
.dash-tbl td{ padding:8px 16px; border-bottom:1px solid var(--gray-2); color:var(--gray-8); }
.dash-tbl tr:last-child td{ border-bottom:none; }
.dash-tbl-c0{ width:240px; max-width:240px; }
.dash-tbl-k{ font-weight:600; color:var(--gray-9); }
.dash-tbl-n{ text-align:right; width:96px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dash-winflag{ display:inline-block; margin-left:8px; font-family:var(--font-mono); font-size:9px; font-weight:700; letter-spacing:.04em; color:var(--warn); background:var(--warn-bg); border:1px solid var(--warn-border); border-radius:var(--r-sm); padding:1px 5px; vertical-align:middle; }
button.dash-skill-link{ background:none; border:none; padding:0; font:inherit; font-weight:600; cursor:pointer; text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--gray-4); }
button.dash-skill-link:hover{ text-decoration-color:currentColor; }
.dash-list{ display:flex; flex-direction:column; border:1px solid var(--gray-3); border-radius:var(--r-md); overflow:hidden; }
.dash-list-row{ display:flex; align-items:baseline; gap:10px; padding:9px 14px; border-bottom:1px solid var(--gray-2); background:var(--gray-1); }
.dash-list-row:last-child{ border-bottom:none; }
.dash-list-tag{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; color:var(--accent-700); background:var(--accent-50); border:1px solid var(--accent-100); border-radius:var(--r-sm); padding:2px 7px; white-space:nowrap; flex:0 0 auto; }
.dash-list-main{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.dash-list-text{ font-size:var(--fs-sm); color:var(--gray-8); overflow:hidden; text-overflow:ellipsis; }
.dash-list-sub{ font-family:var(--font-mono); font-size:var(--fs-2xs); color:var(--gray-5); overflow:hidden; text-overflow:ellipsis; display:block; max-width:100%; }
button.dash-open-file{ background:none; border:none; padding:0; text-align:left; cursor:pointer; color:var(--accent-600); }
button.dash-open-file:hover{ color:var(--accent-700); text-decoration:underline; }
.dash-list-row.has-sub{ align-items:flex-start; }
.dash-list-proj{ font-size:var(--fs-xs); color:var(--gray-6); white-space:nowrap; flex:0 0 auto; }
/* Cadence/refresh banner — prominent, directly under the title (not a footnote) */
.dash-cadence{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-top:var(--s-3);
  font-size:var(--fs-sm); color:var(--gray-7); background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:9px 14px; }
.dash-cadence b{ color:var(--gray-9); font-weight:650; }
.dash-cadence-dot{ width:8px; height:8px; border-radius:var(--r-sm); background:var(--gray-5); flex:0 0 auto; }
.dash-cadence-sep{ color:var(--gray-4); }
.dash-cadence-live{ background:var(--ok-bg); border-color:var(--ok-border); }
.dash-cadence-live .dash-cadence-dot{ background:#10B981; }
.dash-cadence-stale{ background:var(--warn-bg); border-color:var(--warn-border); color:var(--warn); }
.dash-cadence-stale b{ color:var(--warn); }
.dash-cadence-stale .dash-cadence-dot{ background:var(--warn); }
.dash-cadence-down{ background:var(--crit-bg); border-color:#F3C6C6; color:var(--crit-fg); }
.dash-cadence-down b{ color:var(--crit-fg); }
.dash-cadence-down .dash-cadence-dot{ background:var(--crit-fg); }
.dash-cadence-unknown{ background:var(--gray-2); }
.dash-metrics-note{ font-size:var(--fs-xs); color:var(--gray-6); margin:var(--s-3) 0 0; line-height:1.5; }
.dash-asof{ font-family:var(--font-mono); font-size:var(--fs-2xs); color:var(--gray-5); margin:8px 0 0; }
/* Provenance (collapsed by default — facts, not chrome) */
.dash-prov{ margin-top:var(--s-5); border-top:1px solid var(--gray-3); padding-top:var(--s-3); }
.dash-prov summary{ font-size:var(--fs-sm); font-weight:600; color:var(--gray-7); cursor:pointer; list-style:none; }
.dash-prov summary::-webkit-details-marker{ display:none; }
.dash-prov summary::before{ content:'▸ '; color:var(--gray-5); }
.dash-prov[open] summary::before{ content:'▾ '; }
.dash-facts{ display:grid; grid-template-columns:max-content 1fr; gap:8px 18px; margin:var(--s-3) 0 0;
  background:var(--gray-1); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:16px 18px; }
.dash-fact{ display:contents; }
.dash-fact-k{ font-family:var(--font-mono); font-size:var(--fs-2xs); font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--gray-6); padding-top:3px; }
.dash-fact-v{ font-size:var(--fs-sm); color:var(--gray-8); line-height:1.55; word-break:break-word; }
.dash-localnote{ font-size:var(--fs-xs); color:var(--gray-7); font-family:var(--font-mono); background:var(--gray-2); border:1px solid var(--gray-3); border-radius:var(--r-sm); padding:9px 12px; margin-top:var(--s-3); line-height:1.55; word-break:break-word; }
.dash-localnote b{ font-family:var(--font-sans); }
.dash-noembed{ margin-top:var(--s-5); font-size:var(--fs-sm); color:var(--gray-7); background:var(--gray-2); border:1px solid var(--gray-3); border-radius:var(--r-md); padding:16px 18px; line-height:1.6; }
@media (max-width:560px){ .dash-facts{ grid-template-columns:1fr; gap:2px; } .dash-fact-k{ padding-top:9px; } .dash-det-name{ font-size:var(--fs-xl); } }
