/* ============================================================================
 * 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:#64748B;  /* secondary text labels */
  --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 ── */
  --fresh:#10B981;
  --aging:#F59E0B;
  --stale:#EF4444;
  --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 */
  /* 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;

  /* ── Radius ── */
  --r-sm:4px;
  --r-md:6px;
  --r-lg:8px;

  /* ── 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);
  --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:16.5px;
  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:80%;
  max-width:1600px;
  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;
}

/* ============================================================================
 * 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-5);
  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:22px;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; }
.nav-link{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 15px;border-radius:var(--r-md);
  font-size:16px;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{
  font-family:var(--font-mono);font-size:11px;font-weight:500;
  padding:1px 6px;border-radius:999px;background:var(--gray-2);color:var(--gray-6);
}
.nav-link.active .count{ background:var(--accent-100);color:var(--accent-700); }
.nav-ico{ font-size:13px;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); }
.dropdown-eyebrow{
  font-size:10px;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:13px;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:14px; }
.dropdown-item .di-count{
  margin-left:auto;font-family:var(--font-mono);font-size:11px;
  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:14px;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); }
.nav-search{
  display:flex;align-items:center;gap:8px;
  width:380px;max-width:40vw;
  padding:9px 13px;border-radius:var(--r-md);
  background:var(--gray-0);border:1px solid var(--gray-4);
  transition:border-color .12s var(--ease),box-shadow .12s var(--ease);
}
.nav-search:focus-within{ border-color:var(--accent-500);box-shadow:0 0 0 3px rgba(0,119,255,.15); }
.nav-search svg{ width:15px;height:15px;color:var(--gray-6);flex-shrink:0; }
.nav-search input{
  border:none;background:none;outline:none;flex:1;min-width:0;
  font-family:var(--font-sans);font-size:15px;color:var(--gray-9);
}
.nav-search input::placeholder{ color:var(--gray-6); }
.kbd{
  font-family:var(--font-mono);font-size:11px;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:40px;height:40px;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:17px;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:9px;font-weight:600;line-height:15px;
  text-align:center;border-radius:999px;background:var(--accent-500);color:#fff;
}
.avatar{
  width:40px;height:40px;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:16px;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:80px; }
.view{ padding-top:var(--s-6); }
.view[hidden]{ display:none; }

/* ── Generic eyebrow / section heads ───────────────────────────────────── */
.eyebrow{
  font-size:12px;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:26px;font-weight:600;letter-spacing:-.02em;color:var(--gray-9); }
.home-sub{ font-size:16.5px;color:var(--gray-6);margin-top:6px;max-width:60ch; }
.home-meta{ font-family:var(--font-mono);font-size:11px;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:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-700); }
.tile-q{ font-size:12px;color:var(--gray-6); }
.tile-hero{ border-left:3px solid var(--accent-500); }

/* KPI */
.kpi-num{ font-family:var(--font-display);font-size:34px;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:13px;font-weight:500; }
.kpi-delta.up{ color:var(--fresh); }
.kpi-delta.down{ color:var(--stale); }
.kpi-cap{ font-size:13px;color:var(--gray-6);margin-top:10px; }

/* 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-200);border-radius:2px 2px 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:13px;color:var(--gray-6);width:20px;flex-shrink:0; }
.action-body{ flex:1;min-width:0; }
.action-title{ font-size:14px;font-weight:500;color:var(--gray-9); }
.action-desc{ font-size:13px;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-sm);
  font-size:12px;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:11px;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); }

/* 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:14px;
}
.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:12px;color:var(--gray-6); }
.see-all{
  display:inline-flex;align-items:center;gap:4px;margin-top:var(--s-4);
  font-size:13px;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:12px;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:12px;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:12px;font-weight:600;color:var(--gray-6);background:transparent;border:none;border-radius:var(--r-md);
  padding:5px 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:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;text-align:center; }
.sig-tag.gem{ background:var(--accent-50);color:var(--accent-700); }
.sig-tag.hype{ background:#FEF3C7;color:#B45309; }
.sig-tag.star{ background:var(--ok-bg);color:var(--ok-fg); }
.sig-tag.dead{ background:var(--gray-2);color:var(--gray-6); }
.sig-bar-name{ font-size:13.5px;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:12px;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)
 * ==========================================================================*/
.lib-head{ padding:var(--s-4) 0 var(--s-5); }
.lib-title{ font-size:26px;font-weight:600;letter-spacing:-.02em; }
.lib-sub{ font-size:15.5px;color:var(--gray-6);margin-top:4px; }
/* 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:14px;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:12px;font-weight:600;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:999px;
  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:248px 1fr;gap:var(--s-6);align-items:start; }

/* Sidebar / filter rail */
.sidebar{
  position:sticky;top:calc(var(--brand-bar-h) + var(--nav-h) + var(--s-6));
  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:11px;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:13px; }
.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:13px;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:0 0 0 3px rgba(0,119,255,.15); }
.saved-views{ display:flex;flex-direction:column;gap:2px; }
.saved-view{
  text-align:left;font-size:13px;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:11px;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:12px;color:var(--gray-7);text-transform:capitalize;
  padding:5px 10px;border-radius:999px;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:14px;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:0 0 0 3px rgba(0,119,255,.15); }
.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:14px;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:13px;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:10px;fill:var(--gray-5); }
.tl-lane{ font-size:12px;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:15px;font-weight:600;color:var(--gray-9); }
.stat-pill .sl{ font-size:12px;color:var(--gray-6); }
.stat-pill .dot{ width:7px;height:7px;border-radius:999px; }
.dot-green{ background:var(--fresh); }
.dot-red{ background:var(--stale); }

/* 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:14px;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:12px;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:15px;font-weight:600;color:var(--gray-9);word-break:break-word; }
.pc-score{ margin-left:auto;flex-shrink:0; }
.pc-desc{ font-size:14.5px;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:12px;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:12px;color:var(--gray-6); }

/* ── F8 · Bulk multi-select ─────────────────────────────────────────────── */
.sel-mode-toggle{
  margin-left:auto;align-self:center;
  padding:6px 12px;font-size:13px;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:12px;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:999px;
  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:14px;white-space:nowrap; }
.sel-bar-count b{ font-family:var(--font-mono);font-size:15px;color:var(--accent-300); }
.sel-bar-actions{ display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
.sel-act{
  padding:6px 12px;font-size:13px;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:13.5px;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:5px 11px;font-size:12.5px;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:13px;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:12px;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:14px;font-weight:600;
}
.bb-q-crit{ background:#FEE2E2;color:#B91C1C; }
.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:14.5px;font-weight:600; }
.bb-sigs{ display:flex;gap:6px;flex-wrap:wrap;margin-top:5px; }
.bb-sig{ font-size:11px;font-weight:600;color:var(--err-fg);background:var(--err-bg);padding:2px 7px;border-radius:999px; }
.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:12px;color:var(--gray-6); }
.bb-gap{ font-family:var(--font-mono);font-size:11px;color:var(--aging);font-weight:600; }
.bb-acts{ display:flex;gap:6px; }
.bb-act{
  padding:6px 10px;font-size:12.5px;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; }
}

/* ── F6 · Recipe Builder ────────────────────────────────────────────────── */
.recipe-name{
  width:100%;padding:11px 14px;margin-bottom:var(--s-3);font-size:16px;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:0 0 0 3px var(--accent-50); }
.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:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-600);
}
.recipe-phase-n{ font-family:var(--font-mono);font-size:11px;color:var(--gray-6);background:var(--gray-2);padding:1px 7px;border-radius:999px; }
.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:10px;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:14px;font-weight:600; }
.recipe-step-dom{ font-size:12px;color:var(--gray-6);margin-right:auto; }
.recipe-phase-sel{
  padding:5px 8px;font-size:12.5px;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:16px;color:var(--gray-6);border-radius:var(--r-sm); }
.recipe-step-rm:hover{ color:var(--stale);background:var(--err-bg); }

/* ── 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:11px;color:var(--accent-600);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px; }
.tour-title{ font-size:18px;font-weight:600;color:var(--gray-9);margin-bottom:8px; }
.tour-body{ font-size:14px;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:13px;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; } }

/* Chips / badges */
.chip{
  display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--r-sm);
  font-size:13px;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:13px;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:28px;opacity:.6; }
.coming h3{ font-size:16px;font-weight:600;color:var(--gray-8); }
.coming p{ font-size:13px;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:10px;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:13px;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:11px;color:var(--gray-6); }

/* Doc list grouped by category */
.gov-cat{ margin-bottom:var(--s-6); }
.gov-cat-head{ display:flex;align-items:baseline;gap:10px;margin-bottom:var(--s-3);padding-bottom:8px;border-bottom:1px solid var(--gray-3); }
.gov-cat-title{ font-size:15px;font-weight:600;color:var(--gray-9); }
.gov-cat-count{ font-family:var(--font-mono);font-size:12px;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:14px;
  background:var(--gray-2);
}
.gov-doc-ico.md{ background:var(--accent-50);color:var(--accent-600); }
.gov-doc-ico.sh{ background:#EAFBF3;color:#047857; }
.gov-doc-body{ min-width:0; }
.gov-doc-title{ font-size:13px;font-weight:500;color:var(--gray-9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.gov-doc-meta{ font-family:var(--font-mono);font-size:11px;color:var(--gray-6);margin-top:2px; }

/* 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:18px;font-weight:600;letter-spacing:-.01em; }
.gov-section-desc{ font-size:13px;color:var(--gray-6);margin-bottom:var(--s-5);max-width:70ch; }
.graph-toggle{ display:flex;gap:2px;background:var(--gray-2);padding:3px;border-radius:var(--r-md); }
.graph-toggle button{
  padding:5px 12px;font-size:12px;font-weight:500;color:var(--gray-6);
  background:none;border:none;border-radius:var(--r-sm);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:10px;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:13px; }
.adj-table th{ text-align:left;font-size:11px;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:12px;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:11px;color:var(--gray-7);
  padding:3px 8px;border-radius:999px;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:12px;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:16px;color:var(--gray-6); }
.cmdk-input{ flex:1;border:none;outline:none;background:transparent;font-size:16px;color:var(--gray-9);font-family:inherit; }
.cmdk-input::placeholder{ color:var(--gray-6); }
.cmdk-hint{ padding:7px 18px;font-size:11px;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:15px;text-align:center; }
.cmdk-row-label{ font-size:14px;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:11.5px;color:var(--gray-6);white-space:nowrap; }
.cmdk-empty{ padding:24px 18px;text-align:center;color:var(--gray-6);font-size:13px; }
@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:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-600); }
.drawer-title{ font-size:18px;font-weight:600;margin-top:4px;letter-spacing:-.01em;word-break:break-word; }
.drawer-meta{ font-family:var(--font-mono);font-size:11px;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:18px;
  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; }
.embed-note{
  display:flex;align-items:center;gap:8px;
  font-size:12px;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:15.5px;line-height:1.7;color:var(--gray-8); }
.md-body h1{ font-size:22px;font-weight:600;color:var(--gray-9);margin:var(--s-5) 0 var(--s-3);letter-spacing:-.01em; }
.md-body h2{ font-size:17px;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:14px;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:12px;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:13px; }
.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:11px;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:15px;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:12px;color:var(--gray-6); }
.insp-relsum{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;
  font-size:13px;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:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-700); }
.insp-section-desc{ font-size:12.5px;color:var(--gray-6);margin:4px 0 12px;line-height:1.5; }
.insp-section .md-body{ margin-top:8px; }
.insp-fallback{ font-size:14px;line-height:1.6;color:var(--gray-7);margin-top:8px; }
.insp-fallback.muted{ font-size:12.5px;color:var(--gray-6);margin-top:6px; }
.rel-empty{ font-size:13px;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:13px;color:var(--gray-7);
  padding:4px 10px;border-radius:999px;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:12px;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:12px;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:13px; }
.ver-row:first-child{ border-top:none; }
.ver-tag{ font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--accent-700);width:64px;flex-shrink:0; }
.ver-date{ font-family:var(--font-mono);font-size:11px;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:13px; }
.crumb-back{ color:var(--accent-600);background:none;border:none;padding:0;font-size:13px;font-weight:500; }
.crumb-back:hover{ text-decoration:underline; }
.crumb-sep{ color:var(--gray-4); }
.crumb-cur{ font-family:var(--font-mono);font-size:12px;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:28px;font-weight:600;letter-spacing:-.02em;color:var(--gray-9);word-break:break-word; }
.detail-sub{ font-size:17px;color:var(--gray-6);margin-top:8px;max-width:70ch;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:13px;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:13px;letter-spacing:1px; }
.stars-num{ font-family:var(--font-mono);font-size:11px;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:9px 14px;font-size:15px;font-weight:500;color:var(--gray-6);background:none;border:none;transition:color .12s var(--ease); }
.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:5px 12px;font-size:12px;font-weight:500;color:var(--gray-6);background:none;border:none;border-radius:var(--r-sm);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:13px;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:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:var(--s-3); }
.pane-note{ font-size:13px;color:var(--gray-6);margin-top:10px;line-height:1.5; }
.ov-about{ font-size:15.5px;line-height:1.65;color:var(--gray-7); }
.ov-rel{ display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;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:11px;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:13px;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:13px;color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:999px;padding:4px 11px; }
.trig-none{ font-size:13px;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:40px;font-weight:900;line-height:1;color:var(--accent-600);letter-spacing:-.02em; }
.score-cap{ font-size:13px;font-weight:600;color:var(--gray-8); }
.score-sub{ font-family:var(--font-mono);font-size:11px;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:13px;font-weight:600;color:var(--gray-7); }
.score-na-why{ font-size:12.5px;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:12px;color:var(--gray-7);width:64px;flex-shrink:0; }
.sb-val{ font-family:var(--font-mono);font-size:12px;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:12px;font-weight:500;color:var(--ok-fg);background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:999px;padding:4px 12px; }
.curated-badge.sm{ font-size:11px;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:9px;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:13px;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:13.5px; }
.qg-ico{ width:16px;height:16px;border-radius:999px;display:inline-grid;place-items:center;font-size:10px;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:24px;font-weight:600;color:var(--accent-600);line-height:1;flex-shrink:0;min-width:48px; }
.qmetric-label{ font-size:13px;font-weight:600;color:var(--gray-9); }
.qmetric-what{ font-size:12.5px;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:13px;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:12px;color:var(--gray-6);text-align:right; }
.axis-def{ grid-area:def;font-size:12px;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:12px;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:12px;font-weight:600;color:var(--gray-7);letter-spacing:.01em;margin:6px 0; }
.dim-pts{ font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--gray-6);margin-left:8px; }
.dim-id{ font-family:var(--font-mono);font-size:12px;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:14px;font-weight:500;color:var(--gray-9); }
.dim-def{ font-size:13px;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:13px;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:13px;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:13px;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:13px; }
.doc-chars{ color:var(--gray-6);font-size:10px; }
.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:12px;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:11px;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:12px;font-weight:600;color:var(--gray-9); }
.bundle-sub{ font-size:11px;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:12px;color:var(--aging); }
.mini-btn{ font-family:var(--font-mono);font-size:11px;color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:var(--r-sm);padding:5px 10px;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:11px;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:32px;color:var(--accent-600); }
.usage-hero .kpi-cap{ font-size:13px; }
.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:14px;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:15px;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:14px;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:12px;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:11px;font-weight:600;padding:3px 9px;border-radius:999px;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:12.5px;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:11px;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:12px;font-weight:500;color:var(--accent-700); }
.ex-ts{ font-family:var(--font-mono);font-size:11px;color:var(--gray-6); }
.ex-snip{ font-size:14.5px;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:14.5px; }
.meta-row:first-child{ border-top:none; }
.meta-k{ color:var(--gray-6); }
.meta-v{ font-family:var(--font-mono);font-size:13px;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:7px 14px;border-radius:var(--r-sm);
  font-size:13px;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); }
.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:13px;
  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:11px;margin:8px 0 0;white-space:pre-wrap;color:var(--gray-3);max-height:160px;overflow:auto; }

/* ============================================================================
 * 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:11px;line-height:1;
  color:var(--gray-6);background:var(--gray-2);border:1px solid var(--gray-3);cursor:help;
  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:13px;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:12.5px;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:12px;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:13px;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:11px;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); }
.tile.expanded{ grid-column:1 / -1;border-color:var(--accent-200);box-shadow:var(--shadow-md);scroll-margin-top:calc(var(--brand-bar-h) + var(--nav-h) + 20px); }

.exp-grid{ display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);margin:var(--s-4) 0; }
.exp-h{ font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin-bottom:var(--s-3); }
.exp-note{ font-size:13px;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:13px;color:var(--gray-7);width:150px;flex-shrink:0; }
.ss-track{ flex:1;height:8px;background:var(--gray-2);border-radius:999px;overflow:hidden; }
.ss-fill{ height:100%;background:linear-gradient(90deg,var(--accent-400),var(--accent-600));border-radius:999px; }
.ss-val{ font-family:var(--font-mono);font-size:12px;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:11.5px;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:14px; }
.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:13px; }

.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:13px;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:12px;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:13px; }
.orphan-cell .action-gen-btn{ padding:4px 9px;font-size:11px;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:13.5px;font-weight:600;color:var(--gray-9); }
.proj-item-meta{ font-family:var(--font-mono);font-size:11px;color:var(--gray-6); }
.proj-title{ font-size:20px;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; }
.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; }
.ver-chip{
  display:inline-block;font-family:var(--font-mono);font-size:11px;color:var(--gray-7);
  background:var(--gray-2);border-radius:999px;padding:2px 9px;margin:3px 5px 0 0;
}

/* ============================================================================
 * RESPONSIVE
 * ==========================================================================*/
@media (max-width:1200px){
  .container{ width:86%; }
  .nav-search{ width:200px;max-width:none; }
}
@media (max-width:1080px){
  /* free nav space before the burger breakpoint so the search box can't clip */
  .icon-btn[data-optional]{ display:none; }
  .nav-search{ width:168px; }
}

@media (max-width:1000px){
  .span-3,.span-4{ grid-column:span 6; }
  .span-8{ grid-column:span 12; }
  .lib-layout{ grid-template-columns:1fr; }
  .sidebar{ position:static; }
}

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

@media (max-width:768px){
  .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:18px;
  }
  .nav-burger.in-menu{ margin-left:auto; }
  .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; }

  /* Mobile menu panel */
  .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; }
  .mobile-menu .nav-search{ display:flex;width:100%;max-width:none; }
  .mm-link{
    display:flex;align-items:center;gap:8px;padding:10px;border-radius:var(--r-md);
    font-size:14px;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:13px;color:var(--gray-6); }
}
@media (min-width:769px){
  .mobile-menu{ display:none !important; }
}

/* ============================================================================
 * 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:0 0 0 4px rgba(0,119,255,.18); }
/* 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:12px;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:13px;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:11px;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:16px;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:10px;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:999px;padding:1px 7px; }
.comp-sub{ font-size:13.5px;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:12px;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:12px;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;color:var(--comp,var(--accent-700)); }
.comp-title{ font-size:26px;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:16px;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:12px;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:13.5px;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:14px;font-weight:600;color:var(--gray-9); }
.comp-mode-time{ font-family:var(--font-mono);font-size:11px;color:var(--accent-700);background:var(--accent-50);
  border-radius:999px;padding:2px 9px;white-space:nowrap;flex-shrink:0; }
.comp-mode-desc{ font-size:13px;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:12px;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:14.5px;font-weight:600;color:var(--gray-9); }
.comp-phase-desc{ font-size:13px;color:var(--gray-6);line-height:1.5;margin-top:2px; }
.cprim-type{ font-family:var(--font-mono);font-size:10px;color:var(--gray-6);margin-right:5px;text-transform:uppercase; }

.comp-outputs{ display:flex;flex-wrap:wrap;gap:7px; }
.comp-output{ font-size:12.5px;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:14.5px;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:14px;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:0 0 0 3px rgba(0,119,255,.15); }
.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:13px;
  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:13.5px;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:11px;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:14px;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:14px;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:12.5px; }
.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:13px;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:13px;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:11px;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:15px;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:20px;font-weight:600;color:var(--t-agent-fg);line-height:1; }
.agent-metric-l{ font-size:11.5px;color:var(--gray-6);line-height:1.3; }
.agent-h{ font-size:11px;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:13.5px;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:14px;font-weight:500; }
.cart-item-dom{ font-size:12px;color:var(--gray-6);margin-left:auto; }
.cart-rm{ width:24px;height:24px;border-radius:999px;display:inline-grid;place-items:center;font-size:15px;
  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:grid;grid-template-columns:1fr 340px;gap:var(--s-4);align-items:start;margin-top:var(--s-3); }
@media (max-width:1000px){ .graph-stage-wrap{ grid-template-columns:1fr; } }
.graph-stage{ position:relative;height:600px;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) */
.graph-fsbtn{ position:absolute;right:12px;top:12px;z-index:4;display:inline-flex;align-items:center;gap:6px;
  font-size:12px;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); }
/* fullscreen overlay — stage + side panel fill the viewport */
.graph-stage-wrap.graph-fs{ position:fixed;inset:0;z-index:300;margin:0;padding:14px;gap:14px;
  background:var(--gray-0);grid-template-columns:1fr 360px;animation:gfsIn .18s var(--ease); }
@keyframes gfsIn{ from{ opacity:.4; } to{ opacity:1; } }
.graph-stage-wrap.graph-fs .graph-stage{ height:calc(100vh - 28px); }
.graph-stage-wrap.graph-fs .graph-side{ position:static;height:calc(100vh - 28px);overflow-y:auto;top:auto; }
@media (max-width:1000px){ .graph-stage-wrap.graph-fs{ grid-template-columns:1fr; grid-template-rows:1fr auto; }
  .graph-stage-wrap.graph-fs .graph-side{ height:auto;max-height:38vh; } }
.graph-hint{ position:absolute;left:12px;bottom:10px;font-size:11px;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:16px;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{ position:sticky;top:calc(var(--brand-bar-h) + var(--nav-h) + var(--s-4));display:flex;flex-direction:column;gap:var(--s-3); }
.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:12px;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:11px;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:13px;line-height:1.5;color:var(--gray-7); }
.ginsight:first-child{ border-top:none; }
.ginsight .gi-ico{ flex:0 0 auto;font-size:14px;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:15px;color:#fff; }
.gfocus-name{ font-family:var(--font-mono);font-size:16px;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:11px;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:13px;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:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:0 0 6px; }
.gfocus-together{ font-size:12.5px;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:12px;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:10px;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 */

/* ============================================================================
 * PROJECTS — full source-of-truth view
 * ==========================================================================*/
.proj-desc{ font-size:15.5px;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:13px;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:12px;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:14px;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:11px;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:14px;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:0 0 0 3px rgba(0,119,255,.15); }
.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:13px;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:13px;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:12px;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; } }

/* 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:11px;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:12px;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:12.5px;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:14.5px;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:0 0 0 3px var(--accent-50); }
.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:12px;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:999px;padding:3px 6px 3px 11px; }
.annot-tag-rm{ border:none;background:none;color:var(--accent-600);cursor:pointer;font-size:15px;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:13.5px;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:0 0 0 3px var(--accent-50); }
.annot-badge{ display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:11.5px;color:var(--accent-700);
  background:var(--accent-50);border:1px solid var(--accent-100);border-radius:999px;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:12.5px;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:12px;color:var(--gray-6); }

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

/* ============================================================================
 * F4 Arsenal Readiness · F2 Drift Radar (real corpus tiles)
 * ==========================================================================*/
.arsenal-row{ display:flex;gap:26px;align-items:center;flex-wrap:wrap; }
.arsenal-gauge{ flex:0 0 auto;display:flex;align-items:baseline;gap:4px; }
.arsenal-num{ font-family:var(--font-display, var(--font-mono));font-size:64px;font-weight:800;line-height:1;color:var(--accent-600);letter-spacing:-.02em; }
.arsenal-den{ font-family:var(--font-mono);font-size:15px;color:var(--gray-6); }
.arsenal-body{ flex:1;min-width:280px; }
.arsenal-verdict{ font-size:15.5px;color:var(--gray-8);margin:0 0 12px;font-weight:500; }
.home-sub-scores{ display:flex;flex-direction:column;gap:8px; }
.home-sub-scores .sub-score.muted{ opacity:.6; }
.home-sub-scores .sub-score.muted .ss-fill{ background:var(--gray-4); }
.arsenal-note{ font-size:12.5px;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:8px;margin:10px 0; }
.drift-row{ display:grid;grid-template-columns:130px 1fr 42px;gap:10px;align-items:center;font-size:12.5px; }
.drift-name{ font-family:var(--font-mono);font-size:12px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.drift-bar{ height:16px;border-radius:4px;background:var(--gray-2);overflow:hidden;display:flex; }
.drift-bar i{ height:100%;display:block; }
.dseg-asis{ background:#34D399; } .dseg-edit{ background:#F59E0B; } .dseg-besp{ background:#60A5FA; }
.drift-pct{ font-family:var(--font-mono);font-size:11.5px;color:var(--amber-700, #B45309);text-align:right;font-weight:600; }
.drift-legend{ display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--gray-6);margin-bottom:8px; }
.drift-legend span{ display:inline-flex;align-items:center;gap:6px; }
.drift-legend i{ width:11px;height:11px;border-radius:3px;display:inline-block; }

/* ============================================================================
 * F1 Blast-Radius / Impact tab
 * ==========================================================================*/
.impact-pane{ max-width:760px; }
.impact-verdict{ display:flex;align-items:center;gap:18px;margin-bottom:16px; }
.impact-reach{ flex:0 0 auto;font-family:var(--font-display, var(--font-mono));font-size:46px;font-weight:800;line-height:1;color:var(--accent-600); }
.impact-reach-cap{ font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);font-weight:600; }
.impact-verdict-txt{ font-size:14.5px;color:var(--gray-8);margin:4px 0 0;line-height:1.5; }
.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; }
.impact-label{ font-family:var(--font-mono);font-size:9.5px;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:9px;fill:#fff; }
.impact-key{ display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;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:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-6);margin:0 0 7px; }

/* 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:13px;font-weight:600;color:var(--amber-700, #B45309);margin-bottom:5px; }
.attr-gap p{ font-size:12.5px;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:13.5px;font-weight:600;color:var(--gray-9); }
.ovl-card-meta{ font-size:11.5px;color:var(--gray-6);margin-top:3px; }
.ovl-conf-chip{ font-family:var(--font-mono);font-size:10px;font-weight:600;border-radius:999px;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:18px;margin:0 0 10px; }
.ovl-signals{ display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px; }
.ovl-sig{ font-size:11.5px;color:var(--gray-7);background:var(--gray-2);border:1px solid var(--gray-3);border-radius:999px;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:13px;font-weight:600; }
.ovl-member-uses{ font-family:var(--font-mono);font-size:11px;color:var(--gray-6);margin-left:auto; }
.ovl-member-desc{ font-size:12.5px;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:10.5px;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:11.5px;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:11px;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:11.5px;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:12px;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:11px;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:11px;color:var(--gray-6);background:var(--gray-1);
  border:1px solid var(--gray-3);border-radius:999px;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:#B91C1C;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:12px;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:#B91C1C;background:#FEF2F2;border:1px solid #FECACA; }
.diff-meta{ font-size:11px;overflow:hidden;text-overflow:ellipsis; }
.diff-body{ font-family:var(--font-mono);font-size:11.5px;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; }
.gov-drift{ margin-top:22px;border:1px solid #FDE68A;background:#FFFBEB;border-radius:var(--r-md);padding:13px 15px; }
.gov-drift-head{ font-size:13px;font-weight:600;color:#B45309;margin-bottom:4px; }
.gov-drift-sub{ font-size:12.5px;color:var(--gray-7);margin:0 0 4px;line-height:1.5; }
