/* ════════════════════════════════════════════════════════════════════════
   ONEAI V2 DESIGN SYSTEM  ·  v2.0  ·  FROZEN

   This block is the single source of truth for layout, spacing, card
   sizing, scrollbar, color, and breakpoint behavior across every V2
   page. No page-level rule may redefine these tokens. New pages must
   inherit by referencing var(--v2-*).

   Adding a page = compose shared tokens. Never redefine them.

   Documented exceptions (do not flag these as off-grid):
     · 1px divider lines  — physical hairline, not a spacing token
     · 2/3px on dots      — physical sizes for status indicators
     · 999px / 50% / 99px — full pill / circle shapes
   ════════════════════════════════════════════════════════════════════════ */
:root {
  /* Color — purple is the only primary accent. Cyan/green/amber/red are
     semantic colors reserved for status, success, warning, and error
     indicators. Do not tint large UI areas with multiple accent colors. */
  --v2-primary:       #6366F1;
  --v2-secondary:     #8B5CF6;
  --v2-primary-tint:  rgba(99, 102, 241, .18);
  --v2-primary-glow:  rgba(99, 102, 241, .12);
  --v2-primary-edge:  rgba(99, 102, 241, .65);
  --v2-primary-press: rgba(99, 102, 241, .26);

  --v2-info:    #22D3EE;
  --v2-success: #10B981;
  --v2-warning: #F59E0B;
  --v2-error:   #EF4444;

  --v2-text-primary:   #F8FAFC;
  --v2-text-secondary: #CBD5E1;
  --v2-text-muted:     #94A3B8;
  --v2-text-disabled:  #64748B;
  --v2-app-bg:         #0B0F14;
  --v2-sidebar-bg:     #0E1420;
  --v2-surface:        #111827;
  --v2-surface-raised: #162033;
  --v2-surface-hover:  #1F2937;
  --v2-border:         rgba(148, 163, 184, .16);
  --v2-border-strong:  rgba(148, 163, 184, .28);
  --v2-border-active:  rgba(99, 102, 241, .65);
  --v2-ink:            var(--v2-text-primary);
  --v2-muted:          var(--v2-text-muted);
  --v2-dim:            var(--v2-text-disabled);
  --v2-bg:             var(--v2-app-bg);
  --v2-panel:          var(--v2-surface);
  --v2-panel-2:        var(--v2-surface-raised);
  --v2-line:           var(--v2-border);
  --v2-line-strong:    var(--v2-border-strong);

  /* Spacing — 4px grid, ten steps */
  --v2-space-1:  4px;
  --v2-space-2:  8px;
  --v2-space-3:  12px;
  --v2-space-4:  16px;
  --v2-space-5:  20px;
  --v2-space-6:  24px;
  --v2-space-7:  32px;
  --v2-space-8:  40px;
  --v2-space-9:  48px;
  --v2-space-10: 64px;

  /* Radius */
  --v2-radius-xs:   6px;
  --v2-radius-sm:   6px;
  --v2-radius-md:   8px;
  --v2-radius-lg:   12px;
  --v2-radius-xl:   16px;
  --v2-radius-2xl:  16px;

  /* Layout */
  --v2-sidebar-w:   240px;  /* fixed left rail */
  --v2-rail-w:      320px;  /* spec: optional right rail */
  --v2-page-pad:    32px;   /* shared horizontal page padding */
  --v2-page-pad-y:  32px;   /* shared vertical page padding */
  --v2-rail-icon:   76px;   /* spec: collapsed sidebar */

  /* Card contract — every V2 card inherits these */
  --v2-card-pad:        24px;   /* spec */
  --v2-card-title-top:  24px;
  --v2-card-title-side: 24px;
  --v2-card-gap:        24px;

  /* Grid contract */
  --v2-grid-gap:      24px;
  --v2-main-rail-gap: 24px;
  --v2-section-gap:   24px;
  --v2-major-section-gap: 32px;

  /* Content max-width — clamped between 1600 and 1880 on .v2-page */
  --v2-content-max: 1880px;
  --v2-content-min: 1600px;

  /* Scrollbar */
  --v2-scrollbar-thumb: rgba(99, 102, 241, .16);
  --v2-scrollbar-track: transparent;
  --v2-scrollbar-size:  10px;

  /* Typography */
  --v2-serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --v2-sans:  "Avenir Next", "Segoe UI", sans-serif;

  /* Compatibility aliases are semantic only; retired brand tokens are absent. */
  --v2-green:     var(--v2-success);
  --v2-amber:     var(--v2-warning);
  --v2-red:       var(--v2-error);
  --v2-blue:      var(--v2-info);
  --v2-sidebar:   var(--v2-sidebar-w);
  --v2-radius:    var(--v2-radius-xl);
}

/* ---- NOVA mission review --------------------------------------------------
   The mission report is a thin owner-facing view over the existing Director
   report and the response usage returned by the existing AI route. */
.v2-nova-mission-band { display:block; }
.v2-nova-mission-band .v2-exec-line { align-items:flex-start; gap:18px; }
.v2-nova-mission-band .v2-exec-line h2 { color:var(--v2-text-primary); text-transform:none; letter-spacing:0; font-size:20px; }
.v2-nova-mission-band .v2-exec-line p { max-width:72ch; margin:7px 0 0; color:var(--v2-text-muted); font-size:13px; line-height:1.6; }
.v2-nova-mission-band .v2-exec-line .v2-button { flex:0 0 auto; margin-left:auto; }
.v2-nova-mission-summary { margin-top:16px; padding:18px; border:1px solid rgba(148,163,184,.16); border-radius:16px; background:var(--v2-surface-raised); color:var(--v2-text-secondary); line-height:1.7; }
.v2-nova-mission-summary strong { color:var(--v2-text-primary); }
.v2-nova-mission-team, .v2-nova-mission-improvement, .v2-nova-mission-tokens { margin-top:16px; padding:18px; border:1px solid rgba(148,163,184,.14); border-radius:16px; background:var(--v2-surface); }
.v2-nova-mission-team > header, .v2-nova-mission-improvement > header, .v2-nova-mission-tokens > header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }
.v2-nova-mission-team h3, .v2-nova-mission-improvement h3, .v2-nova-mission-tokens h3 { margin:0; font-size:16px; color:var(--v2-text-primary); }
.v2-nova-mission-team > header span, .v2-nova-mission-improvement > header span, .v2-nova-mission-tokens > header span { color:var(--v2-text-muted); font-size:12px; }
.v2-nova-mission-team > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.v2-nova-mission-director { min-width:0; padding:16px; border:1px solid rgba(148,163,184,.12); border-radius:14px; background:var(--v2-surface-raised); }
.v2-nova-mission-director > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.v2-nova-mission-director > header div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.v2-nova-mission-director > header b { color:var(--v2-text-primary); font-size:14px; }
.v2-nova-mission-director > header span { color:var(--v2-text-muted); font-size:12px; }
.v2-nova-mission-director dl { display:grid; gap:10px; margin:16px 0 0; }
.v2-nova-mission-director dl div { padding-top:10px; border-top:1px solid rgba(148,163,184,.10); }
.v2-nova-mission-director dt { color:var(--v2-text-disabled); font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.v2-nova-mission-director dd { margin:4px 0 0; color:var(--v2-text-secondary); font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.v2-nova-mission-improvement .v2-detail-row, .v2-nova-mission-tokens .v2-detail-row { min-height:42px; }
.v2-nova-mission-improvement .v2-detail-row b, .v2-nova-mission-tokens .v2-detail-row b { max-width:70ch; text-align:right; }
.v2-nova-mission-raw { margin-top:14px; padding-top:12px; border-top:1px solid rgba(148,163,184,.10); }
.v2-nova-mission-raw summary { cursor:pointer; color:var(--v2-text-muted); font-size:12px; }
.v2-nova-mission-raw pre { margin:12px 0 0; color:var(--v2-text-secondary); font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.v2-nova-mission-error { margin-top:12px; color:var(--v2-text-danger,#f87171); }
.v2-audit-summary { display:grid; gap:8px; margin-top:14px; }
.v2-audit-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid rgba(148,163,184,.10); }
.v2-audit-row > span { color:var(--v2-text-secondary); font-size:13px; font-weight:600; }
.v2-audit-full { margin-top:14px; padding:18px; border:1px solid rgba(148,163,184,.12); border-radius:14px; background:var(--v2-surface-raised); color:var(--v2-text-secondary); font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; max-height:420px; overflow:auto; }
@media (max-width: 720px) {
  .v2-nova-mission-band .v2-exec-line { flex-direction:column; }
  .v2-nova-mission-band .v2-exec-line .v2-button { margin-left:0; }
  .v2-nova-mission-team > div { grid-template-columns:1fr; }
  .v2-nova-mission-improvement .v2-detail-row b, .v2-nova-mission-tokens .v2-detail-row b { max-width:60%; }
}

body.one-v2-active {
  margin: 0;
  overflow: hidden;
  color: var(--v2-ink);
  background: var(--v2-app-bg);
}

body.one-v2-active > .os-shell,
body.one-v2-active > .ambient {
  display: none !important;
}

.one-v2, .one-v2 * { box-sizing: border-box; }
.one-v2 {
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--v2-sidebar) minmax(0, 1fr);
  font-family: var(--v2-sans);
  color: var(--v2-ink);
}

.v2-sidebar {
  position: relative;
  height: 100vh;
  padding: 24px 16px 20px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--v2-line);
  background: var(--v2-sidebar-bg);
  z-index: 30;
}

.v2-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 8px 27px;
}
.v2-brand-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--v2-border-active);
  border-radius: var(--v2-radius-lg);
  color: var(--v2-text-primary);
  background: linear-gradient(145deg, var(--v2-primary), var(--v2-secondary));
  font-family: var(--v2-serif);
  font-size: 21px;
  box-shadow: 0 8px 28px rgba(99, 102, 241,.12);
}
.v2-brand-copy strong { display:block; font-family:var(--v2-serif); font-size:19px; letter-spacing:.05em; }
.v2-brand-copy span { display:block; margin-top:2px; color:var(--v2-dim); font-size:9px; letter-spacing:.19em; text-transform:uppercase; }

.v2-nav { display:flex; flex:1; flex-direction:column; gap:20px; overflow-y:auto; }
.v2-nav-group { display:grid; gap:4px; }
.v2-nav-group-toggle {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 10px 5px;
  border:0;
  color:var(--v2-text-disabled);
  background:transparent;
  cursor:pointer;
  text-align:left;
}
.v2-nav-group-toggle:hover { color:var(--v2-text-secondary); }
.v2-nav-group-toggle .v2-nav-label { margin:0; }
.v2-nav-group-caret { color:var(--v2-text-disabled); font-size:15px; line-height:1; }
.v2-nav-group-items { display:grid; gap:4px; }
.v2-nav-label {
  margin: 0 10px 5px;
  color: var(--v2-text-disabled);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.v2-nav-item {
  width: 100%;
  min-height: 43px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 11px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--v2-muted);
  background: transparent;
  font: 600 12.5px/1 var(--v2-sans);
  text-align: left;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.v2-nav-item svg { width:17px; height:17px; flex:0 0 auto; }
.v2-nav-item:hover { color:var(--v2-ink); background:rgba(255,255,255,.035); }
.v2-nav-item.is-active {
  color: var(--v2-text-primary);
  border-color: var(--v2-border-active);
  background: var(--v2-primary-tint);
}
.v2-nav-count {
  min-width: 20px;
  margin-left:auto;
  padding:3px 6px;
  border-radius:99px;
  color:var(--v2-app-bg);
  background:var(--v2-amber);
  font-size:9px;
  font-weight:900;
  text-align:center;
}
.v2-nav-footer { padding-top:17px; border-top:1px solid var(--v2-line); }
.v2-operator { display:flex; align-items:center; gap:10px; padding:0 8px; }
.v2-avatar {
  width:34px; height:34px; display:grid; place-items:center; border-radius:50%;
  color:var(--v2-secondary); border:1px solid rgba(99, 102, 241,.24); background:var(--v2-surface-raised);
  font:700 11px var(--v2-sans);
}
.v2-operator-copy { min-width:0; }
.v2-operator-copy strong { display:block; font-size:11.5px; }
.v2-operator-copy span { display:block; margin-top:2px; color:var(--v2-dim); font-size:9.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.v2-main { min-width:0; width:100%; height:100vh; display:grid; grid-template-rows:64px minmax(0,1fr); }
.v2-topbar {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  padding:0 32px;
  border-bottom:1px solid var(--v2-line);
  background:rgba(14,20,32,.92);
  backdrop-filter:blur(18px);
  z-index:20;
}
.v2-crumb { color:var(--v2-dim); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.v2-crumb b { margin-left:8px; color:var(--v2-ink); font-weight:700; }
.v2-top-status { display:flex; align-items:center; gap:14px; color:var(--v2-muted); font-size:10.5px; }
.v2-live-dot { width:7px; height:7px; border-radius:50%; background:var(--v2-success); box-shadow:0 0 0 5px rgba(16,185,129,.08); }
.v2-icon-button {
  width:36px; height:36px; display:grid; place-items:center; padding:0;
  border:1px solid var(--v2-line); border-radius:12px; color:var(--v2-muted); background:rgba(255,255,255,.025); cursor:pointer;
}
.v2-icon-button:hover { color:var(--v2-ink); border-color:var(--v2-line-strong); }
.v2-icon-button svg { width:17px; height:17px; }
.v2-mobile-menu { display:none; }

.v2-viewport { min-height:0; overflow:auto; scrollbar-color:var(--v2-scrollbar-thumb) var(--v2-scrollbar-track); }
/* Shared V2 content-width contract (Phase 2). One rule for every active page:
   use the space after the sidebar, comfortable padding, and clamp to the
   spec's 1600px on standard desktops while keeping the wider 1880px cap on
   extra-wide displays. */
.v2-page {
  width: min(100%, clamp(var(--v2-content-min), 92vw, var(--v2-content-max)));
  min-height:100%;
  margin:0 auto;
  padding: var(--v2-page-pad-y) var(--v2-page-pad) var(--v2-page-pad-y);
  animation:v2-arrive .18s ease-out;
}
@keyframes v2-arrive { from{opacity:0; transform:translateY(4px)} to{opacity:1; transform:none} }
.v2-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.v2-nova-home { display:grid; gap:16px; }
.v2-home-section { margin:0; }
.v2-home-section h2 { margin:4px 0 0; }
.v2-home-queue { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.v2-home-queue li { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--v2-border); color:var(--v2-text-muted); }
.v2-home-queue li:last-child { border-bottom:0; }
.v2-home-queue li b { color:var(--v2-text-primary); font-weight:600; text-align:right; }
.v2-home-actions { display:flex; flex-wrap:wrap; gap:10px; }
.v2-mission-group { display:grid; gap:10px; padding-top:16px; }
.v2-mission-group + .v2-mission-group { margin-top:18px; border-top:1px solid var(--v2-border); }
.v2-page-kicker { display:block; margin-bottom:9px; color:var(--v2-primary); font-size:9px; font-weight:900; letter-spacing:.2em; text-transform:uppercase; }
.v2-page-title { margin:0; font:400 clamp(32px,4vw,54px)/.98 var(--v2-serif); letter-spacing:-.035em; }
.v2-page-subtitle { max-width:660px; margin:12px 0 0; color:var(--v2-muted); font-size:13px; line-height:1.65; }
.v2-head-actions { display:flex; gap:9px; flex-wrap:wrap; justify-content:flex-end; }

.v2-button {
  min-height:39px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:0 16px; border:1px solid var(--v2-line-strong); border-radius:var(--v2-radius-md);
  color:var(--v2-ink); background:rgba(255,255,255,.025);
  font:700 10.5px var(--v2-sans); letter-spacing:.025em; cursor:pointer;
}
.v2-button:hover { border-color:rgba(99, 102, 241,.38); background:rgba(99, 102, 241,.065); }
.v2-button-primary { color:var(--v2-text-primary); border-color:var(--v2-primary); background:var(--v2-primary); }
.v2-button-primary:hover { color:var(--v2-text-primary); background:var(--v2-secondary); }
.v2-button-danger { color:var(--v2-error); border-color:rgba(239,68,68,.28); }
.v2-button-ghost { border-color:transparent; color:var(--v2-muted); }
.v2-button svg { width:14px; height:14px; }

.v2-surface {
  position:relative;
  border:1px solid var(--v2-line);
  border-radius:var(--v2-radius);
  background:var(--v2-surface);
  overflow:hidden;
}
.v2-surface::after { content:none; }
.v2-card-button { width:100%; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.v2-card-button:hover { border-color:var(--v2-border-active); background:var(--v2-surface-hover); }
.v2-card-pad { padding: var(--v2-card-pad); }
.v2-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap: var(--v2-space-4); margin-bottom: var(--v2-space-5); }
.v2-card-kicker { color:var(--v2-dim); font-size:9px; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
.v2-card-title { margin:5px 0 0; font:400 21px/1.1 var(--v2-serif); }
.v2-card-value { margin:0; font:400 38px/.95 var(--v2-serif); letter-spacing:-.04em; }
.v2-card-note { margin:9px 0 0; color:var(--v2-muted); font-size:11px; line-height:1.55; }
.v2-badge {
  display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:0 9px;
  border:1px solid var(--v2-line); border-radius:999px; color:var(--v2-muted); background:rgba(255,255,255,.025);
  font-size:9px; font-weight:800; white-space:nowrap;
}
.v2-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.v2-badge-success { color:var(--v2-success); border-color:rgba(16,185,129,.28); background:rgba(16,185,129,.09); }
.v2-badge-warning { color:var(--v2-warning); border-color:rgba(245,158,11,.28); background:rgba(245,158,11,.09); }
.v2-badge-danger { color:var(--v2-error); border-color:rgba(239,68,68,.28); background:rgba(239,68,68,.09); }
.v2-badge-info { color:var(--v2-info); border-color:rgba(34,211,238,.28); background:rgba(34,211,238,.09); }

.v2-command {
  display:flex; align-items:center; gap:10px; min-height:52px; padding:8px 9px 8px 17px;
  border:1px solid rgba(99, 102, 241,.22); border-radius:16px;
  background:rgba(99, 102, 241,.055); box-shadow:0 15px 50px rgba(0,0,0,.14);
}
.v2-command input, .v2-command textarea {
  flex:1; min-width:0; border:0; outline:0; resize:none; color:var(--v2-ink); background:transparent;
  font:500 12.5px/1.4 var(--v2-sans);
}
.v2-command input::placeholder, .v2-command textarea::placeholder { color:var(--v2-text-disabled); }

.v2-brief {
  min-height:260px;
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);
  margin-bottom:17px;
  background:
    radial-gradient(circle at 82% 22%, rgba(99,102,241,.11), transparent 28%),
    linear-gradient(120deg,var(--v2-surface-raised),var(--v2-surface) 70%);
}
.v2-brief-main { padding: var(--v2-space-7) var(--v2-space-7); }
.v2-brief-label { color:var(--v2-primary); font-size:9px; font-weight:900; letter-spacing:.22em; text-transform:uppercase; }
.v2-brief h2 { max-width:720px; margin:16px 0 12px; font:400 clamp(31px,4vw,55px)/1 var(--v2-serif); letter-spacing:-.045em; }
.v2-brief p { max-width:660px; margin:0; color:var(--v2-text-secondary); font-size:13px; line-height:1.65; }
.v2-brief-aside { padding: var(--v2-space-7); border-left:1px solid var(--v2-line); display:flex; flex-direction:column; justify-content:space-between; }
.v2-focus-number { color:var(--v2-secondary); font:400 68px/.9 var(--v2-serif); }
.v2-focus-label { margin-top:8px; color:var(--v2-muted); font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.v2-priority-line { padding-top:18px; border-top:1px solid var(--v2-line); color:var(--v2-ink); font:400 17px/1.35 var(--v2-serif); }

.v2-bento { display:grid; grid-template-columns:1.05fr 1.35fr .8fr; gap: var(--v2-grid-gap); align-items:stretch; }
.v2-span-2 { grid-column:span 2; }
.v2-span-3 { grid-column:1/-1; }
.v2-priority-stack { display:grid; gap:10px; }
.v2-priority-item { padding:13px 0; border-bottom:1px solid var(--v2-line); }
.v2-priority-item:last-child { border-bottom:0; }
.v2-priority-item b { display:block; font:400 16px var(--v2-serif); }
.v2-priority-item span { display:block; margin-top:5px; color:var(--v2-muted); font-size:10.5px; line-height:1.5; }
.v2-mini-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--v2-line); }
.v2-mini-metric { min-height:107px; padding:18px; background:var(--v2-panel); }
.v2-mini-metric span { display:block; color:var(--v2-dim); font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.v2-mini-metric b { display:block; margin-top:12px; font:400 28px var(--v2-serif); }
.v2-mini-metric small { display:block; margin-top:3px; color:var(--v2-muted); font-size:9px; }
.v2-timeline { display:grid; }
.v2-timeline-row { position:relative; display:grid; grid-template-columns:13px minmax(0,1fr) auto; gap:11px; padding:12px 0; border-bottom:1px solid var(--v2-line); }
.v2-timeline-row:last-child { border-bottom:0; }
.v2-timeline-dot { width:7px; height:7px; margin-top:4px; border:1px solid var(--v2-primary); border-radius:50%; }
.v2-timeline-copy b { display:block; font-size:11px; line-height:1.4; }
.v2-timeline-copy span { display:block; margin-top:3px; color:var(--v2-muted); font-size:9.5px; line-height:1.45; }
.v2-time { color:var(--v2-dim); font-size:9px; white-space:nowrap; }

/* Mission Control density: preserve every live panel while keeping the
   operational overview compact enough to scan as a single command surface. */
.v2-mission-compact .v2-brief { min-height:210px; margin-bottom:0; }
.v2-mission-compact .v2-brief-main,
.v2-mission-compact .v2-brief-aside { padding:24px 28px; }
.v2-mission-compact .v2-brief h2 { margin:12px 0 10px; font-size:clamp(30px,3vw,44px); }
.v2-mission-compact .v2-focus-number { font-size:54px; }
.v2-mission-compact .v2-priority-line { padding-top:14px; font-size:15px; }
.v2-mission-compact .v2-card-pad { padding:20px 22px; }
.v2-mission-compact .v2-card-head { margin-bottom:16px; }
.v2-mission-compact .v2-priority-stack { gap:4px; }
.v2-mission-compact .v2-priority-item { padding:9px 0; }
.v2-mission-compact .v2-priority-item b { font-size:14px; }
.v2-mission-compact .v2-mini-metric { min-height:84px; padding:13px 15px; }
.v2-mission-compact .v2-mini-metric b { margin-top:8px; font-size:23px; }
.v2-mission-compact .v2-timeline-row { padding:9px 0; }

.v2-nova-layout { height:calc(100vh - 132px); min-height:620px; display:grid; grid-template-columns: var(--v2-sidebar-w) minmax(0,1fr) var(--v2-rail-w); border:1px solid var(--v2-line); border-radius: var(--v2-radius-xl); overflow:hidden; background:var(--v2-app-bg); }
.v2-nova-rail, .v2-nova-context { min-height:0; padding: var(--v2-card-pad); overflow:auto; background:var(--v2-surface); }
.v2-nova-rail { border-right:1px solid var(--v2-line); }
.v2-nova-context { border-left:1px solid var(--v2-line); }
.v2-nova-center { min-width:0; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.v2-nova-head { padding:22px 26px; border-bottom:1px solid var(--v2-line); }
.v2-nova-head h1 { margin:0; font:400 29px var(--v2-serif); }
.v2-nova-head p { margin:6px 0 0; color:var(--v2-muted); font-size:10.5px; }
.v2-conversation-list { display:grid; gap:7px; margin-top:18px; }
.v2-conversation {
  width:100%; padding:11px; border:1px solid transparent; border-radius:8px; color:var(--v2-muted); background:transparent; text-align:left; cursor:pointer;
}
.v2-conversation:hover, .v2-conversation.is-active { color:var(--v2-ink); border-color:var(--v2-line); background:rgba(255,255,255,.025); }
.v2-conversation b { display:block; font-size:10.5px; }
.v2-conversation span { display:block; margin-top:4px; color:var(--v2-dim); font-size:9px; }
.v2-chat-scroll { padding:27px clamp(22px,4vw,54px); overflow:auto; }
.v2-chat-opening { max-width:780px; margin:0 auto 26px; padding-bottom:24px; border-bottom:1px solid var(--v2-line); }
.v2-chat-opening h2 { margin:0; font:400 clamp(31px,4vw,50px)/1.05 var(--v2-serif); letter-spacing:-.035em; }
.v2-chat-opening p { margin:12px 0 0; color:var(--v2-muted); font-size:12px; line-height:1.6; }
.v2-message { max-width:720px; margin:0 auto 18px; }
.v2-message-user { padding-left:13%; }
.v2-message-label { margin-bottom:6px; color:var(--v2-primary); font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.v2-message-body { padding:16px; border:1px solid var(--v2-line); border-radius:12px; color:var(--v2-text-secondary); background:var(--v2-surface-raised); font-size:12px; line-height:1.65; white-space:pre-wrap; }
.v2-message-user .v2-message-body { color:var(--v2-ink); border-color:rgba(99, 102, 241,.18); background:rgba(99, 102, 241,.065); }
.v2-composer { padding:16px; border-top:1px solid var(--v2-line); background:var(--v2-surface); }
.v2-nova-chat-log { display:flex; flex-direction:column; gap:14px; max-height:420px; overflow-y:auto; overflow-x:hidden; padding:2px 2px 6px; }
.v2-nova-chat-log .v2-message { margin:0; width:100%; min-width:0; }
.v2-nova-chat-log .v2-message-body { overflow-wrap:anywhere; }
.v2-nova-chat-error { margin:0 0 8px; }
.v2-nova-chat-composer { display:flex; gap:10px; align-items:flex-end; padding-top:10px; border-top:1px solid var(--v2-line); }
.v2-nova-chat-composer textarea { flex:1 1 auto; min-width:0; min-height:42px; max-height:160px; resize:vertical; padding:11px 13px; border:1px solid var(--v2-line); border-radius:12px; background:var(--v2-surface-raised); color:var(--v2-ink); font:inherit; font-size:12px; line-height:1.5; }
.v2-nova-chat-composer textarea:focus { outline:none; border-color:var(--v2-primary); }
.v2-nova-chat-composer .v2-button { flex:0 0 auto; white-space:nowrap; }
.v2-nova-chat-composer .v2-button:disabled { opacity:.55; cursor:not-allowed; }
.v2-stream { display:flex; gap:5px; padding:16px 0; }
.v2-stream i { width:5px; height:5px; border-radius:50%; background:var(--v2-primary); animation:v2-pulse 1s infinite ease-in-out; }
.v2-stream i:nth-child(2){animation-delay:.14s}.v2-stream i:nth-child(3){animation-delay:.28s}
@keyframes v2-pulse{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.v2-context-block { padding:15px 0; border-bottom:1px solid var(--v2-line); }
.v2-context-block:last-child { border-bottom:0; }
.v2-context-block h3 { margin:0 0 10px; color:var(--v2-dim); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.v2-context-block p { margin:0; color:var(--v2-muted); font-size:10.5px; line-height:1.55; }

.v2-workflow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:0; }
.v2-stage { position:relative; min-height:130px; padding: var(--v2-card-pad); border-top:1px solid var(--v2-line); border-bottom:1px solid var(--v2-line); border-left:1px solid var(--v2-line); background:var(--v2-surface); }
.v2-stage:first-child { border-radius:16px 0 0 16px; }
.v2-stage:last-child { border-right:1px solid var(--v2-line); border-radius:0 16px 16px 0; }
.v2-stage:not(:last-child)::after { content:""; position:absolute; right:-5px; top:50%; width:9px; height:9px; border-top:1px solid var(--v2-primary); border-right:1px solid var(--v2-primary); background:var(--v2-surface); transform:translateY(-50%) rotate(45deg); z-index:2; }
.v2-stage-index { color:var(--v2-primary); font:400 24px var(--v2-serif); }
.v2-stage b { display:block; margin-top:18px; font-size:11px; }
.v2-stage span { display:block; margin-top:5px; color:var(--v2-muted); font-size:9.5px; line-height:1.45; }
.v2-split { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(270px,.7fr); gap: var(--v2-grid-gap); }
.v2-table { width:100%; border-collapse:collapse; }
.v2-table th { padding:11px 15px; border-bottom:1px solid var(--v2-line); color:var(--v2-dim); font-size:8.5px; letter-spacing:.13em; text-align:left; text-transform:uppercase; }
.v2-table td { padding:16px; border-bottom:1px solid var(--v2-line); color:var(--v2-text-secondary); font-size:10.5px; }
.v2-table tr:last-child td { border-bottom:0; }
.v2-table strong { color:var(--v2-ink); }

.v2-workspace-toolbar { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.v2-search {
  min-height:48px; flex:1; display:flex; align-items:center; gap:10px; padding:0 16px;
  border:1px solid var(--v2-line); border-radius:12px; background:var(--v2-surface);
}
.v2-search input { min-width:0; flex:1; border:0; outline:0; color:var(--v2-ink); background:transparent; font:500 12px var(--v2-sans); }
.v2-search > svg { width:18px; height:18px; flex:0 0 18px; color:var(--v2-muted); }
.v2-connector-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; }
.v2-connector { min-height:200px; grid-column:span 4; padding: var(--v2-card-pad); }
.v2-connector.is-featured { grid-column:span 8; min-height:245px; }
.v2-connector-icon { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--v2-line); border-radius:12px; color:var(--v2-primary); background:rgba(99, 102, 241,.055); }
.v2-connector-icon svg { width:21px; height:21px; }
.v2-connector h3 { margin:22px 0 7px; font:400 24px var(--v2-serif); }
.v2-connector p { margin:0; color:var(--v2-muted); font-size:10.5px; line-height:1.55; }
.v2-connector-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:24px; padding-top:15px; border-top:1px solid var(--v2-line); }
.v2-connector-stat { color:var(--v2-muted); font-size:9.5px; }

.v2-approval-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.v2-approval { padding: var(--v2-card-pad); }
.v2-approval h3 { max-width:540px; margin:15px 0 8px; font:400 24px/1.15 var(--v2-serif); }
.v2-approval p { margin:0; color:var(--v2-muted); font-size:10.5px; line-height:1.6; }
.v2-approval-meta { display:flex; gap:20px; margin:18px 0; padding:14px 0; border-top:1px solid var(--v2-line); border-bottom:1px solid var(--v2-line); }
.v2-approval-meta div { flex:1; }
.v2-approval-meta span { display:block; color:var(--v2-dim); font-size:8.5px; letter-spacing:.12em; text-transform:uppercase; }
.v2-approval-meta b { display:block; margin-top:5px; font-size:10.5px; }
.v2-approval-actions { display:flex; justify-content:space-between; gap:8px; }
.v2-approval-queue { overflow:hidden; }
.v2-approval-queue-head {
  min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 22px; border-bottom:1px solid var(--v2-line);
}
.v2-approval-queue-scroll { max-height:420px; overflow-y:auto; overscroll-behavior:contain; }
.v2-approval-row {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px;
  padding:18px 22px; border-bottom:1px solid var(--v2-line); background:var(--v2-surface);
}
.v2-approval-row:last-child { border-bottom:0; }
.v2-approval-row-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.v2-approval-row h3 { margin:9px 0 6px; font:400 20px/1.15 var(--v2-serif); }
.v2-approval-row p { max-width:900px; margin:0; color:var(--v2-muted); font-size:10.5px; line-height:1.55; }
.v2-approval-row .v2-approval-meta { max-width:720px; margin:13px 0 0; padding:11px 0 0; border-bottom:0; }
.v2-approval-row-actions { min-width:250px; display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:12px; }
.v2-approval-reason-box { margin-top:14px; padding:12px; border:1px solid var(--v2-line-strong); border-radius:var(--v2-radius-md); background:rgba(255,255,255,.03); }
.v2-approval-reason-box textarea { width:100%; min-height:64px; resize:vertical; border:0; outline:0; color:var(--v2-ink); background:transparent; font:500 11px/1.5 var(--v2-sans); }
.v2-approval-reason-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
.v2-approval-history { overflow:hidden; }
.v2-approval-history-head,
.v2-approval-history-row { display:grid; grid-template-columns:minmax(180px,1.7fr) .8fr .8fr 1fr 1.2fr minmax(120px,1fr) 1.2fr; gap:12px; align-items:center; }
.v2-approval-history-head { padding:12px 22px; color:var(--v2-dim); font-size:8.5px; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--v2-line); }
.v2-approval-history-list { max-height:420px; overflow-y:auto; }
.v2-approval-history-row { width:100%; padding:14px 22px; border:0; border-bottom:1px solid var(--v2-line); color:var(--v2-ink); background:var(--v2-surface); text-align:left; font:500 10px/1.4 var(--v2-sans); cursor:pointer; }
.v2-approval-history-row:hover { background:rgba(255,255,255,.05); }
.v2-approval-history-title { display:flex; flex-direction:column; gap:4px; }
.v2-approval-history-title small { color:var(--v2-dim); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.v2-crm-lifecycle { margin-top:16px; padding:14px 0; border-top:1px solid var(--v2-line); border-bottom:1px solid var(--v2-line); }
.v2-lifecycle-current { display:flex; flex-direction:column; gap:4px; margin:8px 0 12px; }
.v2-lifecycle-current b { font-size:16px; }
.v2-lifecycle-current small { color:var(--v2-muted); line-height:1.45; }
.v2-crm-lifecycle select { width:100%; margin-top:7px; padding:9px; color:var(--v2-ink); background:var(--v2-surface-2); border:1px solid var(--v2-line-strong); border-radius:var(--v2-radius-sm); }
.v2-crm-followups { margin-top:16px; }
.v2-crm-followup-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; border-bottom:1px solid var(--v2-line); }
.v2-crm-followup-row div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.v2-crm-followup-row small { color:var(--v2-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Business Timeline v1.5 — read-only, reuses the .v2-time / badge tokens
   already defined above for the existing generic .v2-timeline component. */
.v2-biztimeline { display:grid; gap:22px; }
.v2-biztimeline-group-title { margin:0 0 4px; color:var(--v2-muted); font:600 10px/1.4 var(--v2-sans); text-transform:uppercase; letter-spacing:.08em; }
.v2-biztimeline-row {
  display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:14px; align-items:flex-start;
  padding:12px 0; border-bottom:1px solid var(--v2-line);
}
.v2-biztimeline-row:last-child { border-bottom:0; }
.v2-biztimeline-icon {
  display:flex; align-items:center; justify-content:center; width:32px; height:32px;
  border:1px solid var(--v2-line-strong); border-radius:var(--v2-radius-md); color:var(--v2-primary);
}
.v2-biztimeline-icon svg { width:16px; height:16px; }
.v2-biztimeline-heading { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.v2-biztimeline-heading b { font:600 12px/1.4 var(--v2-sans); }
.v2-biztimeline-detail { margin:5px 0 0; color:var(--v2-muted); font-size:10.5px; line-height:1.5; }
.v2-biztimeline-row .v2-time { align-self:flex-start; margin-top:2px; }

.v2-result-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap: var(--v2-grid-gap); align-items:start; }
.v2-filter-panel { padding: var(--v2-card-pad); align-self:start; position:sticky; top: var(--v2-page-pad); }
.v2-filter-list { display:grid; gap:5px; margin-top:15px; }
.v2-filter {
  display:flex; justify-content:space-between; padding:10px; border:0; border-radius:8px; color:var(--v2-muted); background:transparent; font:600 10.5px var(--v2-sans); cursor:pointer;
}
.v2-filter:hover,.v2-filter.is-active{color:var(--v2-ink);background:rgba(99, 102, 241,.065)}
.v2-result-feed { height:390px; padding:7px 22px; overflow-y:auto; overscroll-behavior:contain; }
.v2-result { display:grid; grid-template-columns:108px 12px minmax(0,1fr) auto; gap:14px; padding:19px 0; border-bottom:1px solid var(--v2-line); }
.v2-result:last-child { border-bottom:0; }
.v2-result-date { color:var(--v2-dim); font-size:9.5px; }
.v2-result h3 { margin:0; font-size:11.5px; }
.v2-result p { margin:5px 0 0; color:var(--v2-muted); font-size:10px; line-height:1.5; }

.v2-crm-layout { display:grid; grid-template-columns:minmax(0,1.6fr) 340px; gap: var(--v2-grid-gap); }
.v2-pipeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-bottom:0; background:var(--v2-line); border:1px solid var(--v2-line); border-radius:16px; overflow:hidden; }
.v2-pipeline-step { min-height:118px; padding:20px; background:var(--v2-surface); }
.v2-pipeline-step span { color:var(--v2-dim); font-size:8.5px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.v2-pipeline-step b { display:block; margin-top:12px; font:400 34px var(--v2-serif); }
.v2-pipeline-step small { color:var(--v2-muted); font-size:9px; }
.v2-lead-list { padding:4px 20px; }
.v2-lead { width:100%; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px 0; border:0; border-bottom:1px solid var(--v2-line); color:inherit; background:transparent; text-align:left; cursor:pointer; }
.v2-lead:last-child { border-bottom:0; }
.v2-lead-avatar { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--v2-line); border-radius:12px; color:var(--v2-primary); background:var(--v2-surface-raised); font:700 10px var(--v2-sans); }
.v2-lead b { display:block; font-size:11px; }
.v2-lead span { display:block; margin-top:4px; color:var(--v2-muted); font-size:9.5px; }

/* Shared layout primitives. Page renderers compose these; no page owns a
   separate width, grid, card, spacing, or scrolling system. */
.v2-app-layout { width:100%; min-height:100vh; }
.v2-page-header { min-height:64px; }
.v2-section { display:flex; flex-direction:column; gap:16px; }
.v2-section + .v2-section { margin-top:32px; }
.v2-section-block,
.v2-major-section-block { min-width:0; }
.v2-section-block + .v2-section-block { margin-top:var(--v2-section-gap); }
.v2-section-block + .v2-major-section-block,
.v2-major-section-block + .v2-section-block,
.v2-major-section-block + .v2-major-section-block { margin-top:var(--v2-major-section-gap); }
.v2-section-header { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.v2-section-header h2 { margin:4px 0 0; color:var(--v2-text-primary); font-size:20px; }
.v2-section-header p { margin:0; color:var(--v2-text-muted); font-size:12px; }
.v2-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; align-items:stretch; }
.v2-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.v2-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v2-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.v2-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:24px;
  border:1px solid var(--v2-border);
  border-radius:12px;
  background:var(--v2-surface);
}
.v2-card-header { min-height:40px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.v2-card-header h3 { margin:4px 0 0; color:var(--v2-text-primary); font-size:17px; }
.v2-card-body { flex:1; min-height:0; padding-top:16px; }
.v2-card-body p { margin:0; color:var(--v2-text-muted); font-size:12px; line-height:1.6; }
.v2-card-footer { display:flex; align-items:center; justify-content:flex-end; min-height:40px; margin-top:24px; padding-top:16px; border-top:1px solid var(--v2-border); }
.v2-scroll-region { min-height:0; max-height:calc(100vh - 240px); overflow:auto; }
.v2-status-badge { display:inline-flex; align-items:center; }
.v2-empty-state,.v2-error-state { border:1px solid var(--v2-border); border-radius:12px; background:var(--v2-surface-raised); }
.v2-error-state { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border-color:rgba(245,158,11,.28); }
.v2-error-state strong,.v2-error-state span { display:block; }
.v2-error-state strong { color:var(--v2-text-primary); font-size:12px; }
.v2-error-state span { margin-top:4px; color:var(--v2-text-muted); font-size:11px; }

.v2-settings-errors { gap:8px; }
.v2-settings-summary-card { min-height:176px; }
.v2-settings-summary-card .v2-card-body strong { display:block; color:var(--v2-text-secondary); font-size:14px; line-height:1.5; }
.v2-setting-card { min-height:220px; }
.v2-settings-groups .v2-button { min-width:132px; }

.v2-empty { min-height:240px; display:grid; place-items:center; padding:35px; text-align:center; }
.v2-empty-mark { width:52px; height:52px; display:grid; place-items:center; margin:0 auto 17px; border:1px solid var(--v2-line); border-radius:16px; color:var(--v2-primary); background:rgba(99, 102, 241,.04); }
.v2-empty h3 { margin:0; font:400 24px var(--v2-serif); }
.v2-empty p { max-width:430px; margin:9px auto 0; color:var(--v2-muted); font-size:10.5px; line-height:1.6; }
.v2-error { border-color:rgba(239,68,68,.28); }

.v2-skeleton { position:relative; overflow:hidden; background:var(--v2-surface-raised); border-radius:8px; }
.v2-skeleton::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(99, 102, 241,.08),transparent); transform:translateX(-100%); animation:v2-shimmer 1.45s linear infinite; }
@keyframes v2-shimmer{to{transform:translateX(100%)}}
.v2-skeleton-title{width:46%;height:40px;margin-bottom:18px}.v2-skeleton-line{width:100%;height:12px;margin:9px 0}.v2-skeleton-line.short{width:64%}

.v2-drawer-layer { position:fixed; inset:0; z-index:100; display:grid; grid-template-columns:minmax(0,1fr) min(520px,100vw); }
.v2-drawer-scrim { border:0; background:rgba(3,4,3,.72); backdrop-filter:blur(3px); cursor:default; }
.v2-drawer { min-width:0; height:100vh; display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; border-left:1px solid var(--v2-line-strong); border-radius:16px 0 0 16px; background:var(--v2-surface); box-shadow:-30px 0 80px rgba(0,0,0,.42); animation:v2-drawer-in .28s cubic-bezier(.22,.8,.22,1); }
@keyframes v2-drawer-in{from{transform:translateX(100%)}to{transform:none}}
.v2-drawer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:25px 25px 20px; }
.v2-drawer-head h2 { margin:7px 0 0; font:400 30px var(--v2-serif); }
.v2-drawer-tabs { display:flex; gap:4px; padding:0 21px 12px; border-bottom:1px solid var(--v2-line); overflow-x:auto; }
.v2-drawer-tab { min-height:34px; padding:0 10px; border:0; border-radius:8px; color:var(--v2-muted); background:transparent; font:750 9.5px var(--v2-sans); cursor:pointer; white-space:nowrap; }
.v2-drawer-tab:hover,.v2-drawer-tab.is-active{color:var(--v2-secondary);background:rgba(99, 102, 241,.07)}
.v2-drawer-body { min-height:0; padding:24px; overflow:auto; }
.v2-drawer-footer { display:flex; justify-content:flex-end; gap:9px; padding:16px 24px; border-top:1px solid var(--v2-line); }
.v2-detail-list { display:grid; gap:0; }
.v2-detail-row { display:grid; grid-template-columns:130px minmax(0,1fr); gap:14px; padding:13px 0; border-bottom:1px solid var(--v2-line); }
.v2-detail-row span { color:var(--v2-dim); font-size:9.5px; text-transform:uppercase; letter-spacing:.1em; }
.v2-detail-row b { min-width:0; overflow-wrap:anywhere; color:var(--v2-text-secondary); font-size:10.5px; font-weight:600; }

/* ── Operational panel rows (used to fill the V2 grid) ─────────────────── */
/* These rows are composed of existing v2-surface cards arranged into
   2/3/4-column grids. Each row sits inside a v2-page after the primary
   composition, so a page can keep its hero layout and still occupy every
   column with operational data from the backend. */
.v2-panels-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: var(--v2-grid-gap); }
.v2-panels-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap: var(--v2-grid-gap); }
.v2-panels-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap: var(--v2-grid-gap); }
.v2-panels-3 > .v2-span-2 { grid-column:span 2; }
.v2-panels-4 > .v2-span-2 { grid-column:span 2; }
.v2-panels-4 > .v2-span-3 { grid-column:span 3; }
.v2-panels-4 > .v2-span-4 { grid-column:1/-1; }
.v2-panels-2 + .v2-panels-3,
.v2-panels-3 + .v2-panels-2,
.v2-panels-2 + .v2-panels-4,
.v2-panels-4 + .v2-panels-2,
.v2-panels-3 + .v2-panels-4,
.v2-panels-4 + .v2-panels-3,
.v2-panels-3 + .v2-panels-3,
.v2-panels-2 + .v2-panels-2,
.v2-panels-4 + .v2-panels-4 { margin-top: var(--v2-grid-gap); }

/* Stat tile — used inside the 3/4-col panel rows */
.v2-stat { padding: var(--v2-space-5) var(--v2-card-pad); }
.v2-stat-row { display:flex; align-items:flex-start; justify-content:space-between; gap: var(--v2-space-2); }
.v2-stat-row > span { color:var(--v2-dim); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.v2-stat-value { display:block; margin-top: var(--v2-space-4); font:400 30px/1 var(--v2-serif); letter-spacing:-.03em; color:var(--v2-ink); }
.v2-stat-value.is-soft { color:var(--v2-muted); }
.v2-stat-trend { display:flex; align-items:center; gap: var(--v2-space-2); margin-top: var(--v2-space-2); color:var(--v2-muted); font-size:10px; }
.v2-stat-trend b { color:var(--v2-ink); font-weight:600; }
.v2-stat-bar { display:grid; grid-template-columns:repeat(8,1fr); gap:3px; margin-top: var(--v2-space-4); }
.v2-stat-bar i { display:block; height:6px; border-radius:2px; background:rgba(99, 102, 241,.18); }
.v2-stat-bar i.on { background:linear-gradient(90deg,var(--v2-primary),var(--v2-secondary)); }
.v2-stat-bar i.warn { background:rgba(245,158,11,.7); }
.v2-stat-bar i.danger { background:rgba(239,68,68,.7); }

/* Bar — distribution visualization */
.v2-bar-row { display:grid; grid-template-columns:90px minmax(0,1fr) 40px; align-items:center; gap: var(--v2-space-3); padding: var(--v2-space-2) 0; border-bottom:1px solid var(--v2-line); }
.v2-bar-row:last-child { border-bottom:0; }
.v2-bar-row > span { color:var(--v2-muted); font-size:10.5px; }
.v2-bar-row > b { color:var(--v2-ink); font:600 10.5px var(--v2-sans); text-align:right; }
.v2-bar-track { height:6px; border-radius:3px; background:rgba(99, 102, 241,.09); overflow:hidden; }
.v2-bar-fill { display:block; height:100%; background:linear-gradient(90deg,var(--v2-primary),var(--v2-secondary)); }
.v2-bar-fill.is-warn { background:var(--v2-warning); }
.v2-bar-fill.is-danger { background:var(--v2-error); }
.v2-bar-fill.is-cool { background:var(--v2-info); }
.v2-bar-fill.is-green { background:var(--v2-success); }

/* Compact list — used inside compact panels */
.v2-compact-list { display:grid; }
.v2-compact-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap: var(--v2-space-3); padding: var(--v2-space-3) 0; border-bottom:1px solid var(--v2-line); align-items:center; }
.v2-compact-row:last-child { border-bottom:0; }
.v2-compact-row > b { font-size:11px; color:var(--v2-ink); }
.v2-compact-row > span { color:var(--v2-muted); font-size:9.5px; }
.v2-compact-row > small { color:var(--v2-dim); font-size:9px; }
.v2-compact-mark { width:7px; height:7px; border-radius:50%; background:var(--v2-primary); box-shadow:0 0 0 3px rgba(99, 102, 241,.08); }
.v2-compact-mark.success { background:var(--v2-success); box-shadow:0 0 0 3px rgba(16,185,129,.12); }
.v2-compact-mark.warning { background:var(--v2-warning); box-shadow:0 0 0 3px rgba(245,158,11,.12); }
.v2-compact-mark.danger { background:var(--v2-error); box-shadow:0 0 0 3px rgba(239,68,68,.12); }
.v2-compact-mark.muted { background:var(--v2-text-disabled); box-shadow:0 0 0 3px rgba(100,116,139,.12); }

/* Nova context rail — fills the 3rd column of the .v2-nova-layout grid */
.v2-nova-context { padding: var(--v2-card-pad) var(--v2-space-5); overflow:auto; }
.v2-nova-context > h3 { margin: var(--v2-space-5) 0 var(--v2-space-2); color:var(--v2-dim); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.v2-nova-context > h3:first-child { margin-top:0; }
.v2-nova-context .v2-context-block { padding: var(--v2-space-3) 0; }
.v2-nova-context .v2-context-block h4 { margin:0 0 5px; color:var(--v2-ink); font:600 11.5px var(--v2-sans); }
.v2-nova-context .v2-context-block p { margin:0; color:var(--v2-muted); font-size:10px; line-height:1.55; }

/* Nova context recommendation item */
.v2-nova-rec { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap: var(--v2-space-2); padding: var(--v2-space-3) 0; border-bottom:1px solid var(--v2-line); align-items:flex-start; }
.v2-nova-rec:last-child { border-bottom:0; }
.v2-nova-rec-index { color:var(--v2-primary); font:700 10px var(--v2-sans); padding-top:1px; }
.v2-nova-rec b { display:block; color:var(--v2-ink); font:600 11px var(--v2-sans); }
.v2-nova-rec span { display:block; margin-top:3px; color:var(--v2-muted); font-size:9.5px; line-height:1.45; }

/* (The default .v2-nova-layout is declared above and references the
   --v2-sidebar-w / --v2-rail-w tokens. Per-page layout overrides must
   not redefine these columns.) */

/* CRM/Results/Approvals — extend the 3-col grid when a wide layout is desired */
.v2-crm-extras,
.v2-results-extras,
.v2-approvals-extras { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap: var(--v2-grid-gap); margin-top: var(--v2-grid-gap); }
.v2-approvals-extras { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v2-results-extras { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v2-crm-extras { grid-template-columns:repeat(3,minmax(0,1fr)); }
.v2-approvals-extras > .v2-span-2 { grid-column:span 2; }
.v2-crm-extras > .v2-span-2 { grid-column:span 2; }
.v2-results-extras > .v2-span-2 { grid-column:span 2; }

/* Stage row used inside Signal Center — fills the available width after split */
.v2-trading-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top: var(--v2-grid-gap); background:var(--v2-line); border:1px solid var(--v2-line); border-radius: var(--v2-radius-xl); overflow:hidden; }
.v2-trading-row > section { min-height:118px; padding: var(--v2-space-5); background:var(--v2-surface); }
.v2-trading-row > section > span { color:var(--v2-dim); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.v2-trading-row > section > b { display:block; margin-top: var(--v2-space-3); font:400 30px/1 var(--v2-serif); }
.v2-trading-row > section > small { display:block; margin-top: var(--v2-space-2); color:var(--v2-muted); font-size:9.5px; }
.v2-workflow + .v2-split,
.v2-split + .v2-trading-row,
.v2-trading-row + .v2-trading-extras { margin-top:var(--v2-section-gap); }

/* Knowledge operational row — fills below the connector grid */
.v2-knowledge-extras { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap: var(--v2-grid-gap); margin-top: var(--v2-space-6); }
.v2-knowledge-extras > .v2-span-2 { grid-column:span 2; }
.v2-knowledge-extras + .v2-panels-2 { margin-top:var(--v2-major-section-gap); }

@media (min-width: 1600px) {
  .v2-page { width:min(100%,clamp(1600px,92vw,1880px)); }
}

@media (min-width: 1280px) and (max-width: 1599px) {
  .v2-page { width:100%; }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .v2-bento { grid-template-columns:1fr 1fr; }
  .v2-span-3 { grid-column:1/-1; }
  .v2-nova-layout { grid-template-columns:190px minmax(0,1fr); }
  .v2-nova-context { display:none; }
  .v2-connector { grid-column:span 6; }
  .v2-connector.is-featured { grid-column:span 12; }
  .v2-panels-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-panels-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-panels-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-trading-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-knowledge-extras,
  .v2-crm-extras,
  .v2-results-extras,
  .v2-approvals-extras { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .v2-grid-4,.v2-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-grid-2 { grid-template-columns:1fr; }
}

@media (max-width: 767px) {
  body.one-v2-active { overflow:hidden; }
  .one-v2 { display:block; }
  .v2-sidebar { position:fixed; inset:0 auto 0 0; width:240px; transform:translateX(-102%); transition:transform .2s ease; box-shadow:30px 0 60px rgba(0,0,0,.4); }
  body.v2-nav-open .v2-sidebar { transform:none; }
  .v2-brand-copy,.v2-nav-label,.v2-nav-item > span:not(.v2-nav-count),.v2-operator-copy { display:block; }
  .v2-nav-item { justify-content:flex-start; padding:0 11px; }
  .v2-nav-count { position:static; transform:none; margin-left:auto; }
  .v2-operator { justify-content:flex-start; padding:0 8px; }
  .v2-main { height:100vh; grid-template-rows:64px minmax(0,1fr); }
  .v2-topbar { padding:0 16px; }
  .v2-mobile-menu { display:grid; }
  .v2-top-status > span:not(.v2-live-dot), .v2-top-status .v2-icon-button { display:none; }
  .v2-page { padding:25px 16px 42px; }
  .v2-page-head { align-items:flex-start; flex-direction:column; margin-bottom:23px; }
  .v2-page-title { font-size:37px; }
  .v2-head-actions { justify-content:flex-start; }
  .v2-brief { grid-template-columns:1fr; }
  .v2-brief-main { padding:28px 24px; }
  .v2-brief-aside { padding:24px; border-top:1px solid var(--v2-line); border-left:0; }
  .v2-bento,.v2-split,.v2-crm-layout,.v2-result-layout,.v2-settings-grid,.v2-approval-grid { grid-template-columns:1fr; }
  .v2-approval-history-head { display:none; }
  .v2-approval-history-row { grid-template-columns:1fr 1fr; gap:8px; }
  .v2-approval-history-row > span:not(.v2-approval-history-title) { min-width:0; }
  .v2-span-2 { grid-column:auto; }
  .v2-workflow { grid-template-columns:1fr; }
  .v2-stage,.v2-stage:first-child,.v2-stage:last-child { border:1px solid var(--v2-line); border-bottom:0; border-radius:0; }
  .v2-stage:first-child { border-radius:16px 16px 0 0; }
  .v2-stage:last-child { border-bottom:1px solid var(--v2-line); border-radius:0 0 16px 16px; }
  .v2-stage:not(:last-child)::after { right:50%; top:auto; bottom:-5px; transform:translateX(50%) rotate(135deg); }
  .v2-nova-layout { height:auto; min-height:calc(100vh - 110px); grid-template-columns:1fr; }
  .v2-nova-rail { display:none; }
  .v2-nova-center { min-height:calc(100vh - 110px); }
  .v2-connector,.v2-connector.is-featured { grid-column:span 12; }
  .v2-pipeline { grid-template-columns:repeat(2,1fr); }
  .v2-filter-panel { position:static; }
  .v2-result { grid-template-columns:70px 10px minmax(0,1fr); }
  .v2-approval-row { grid-template-columns:1fr; }
  .v2-approval-row-actions { min-width:0; align-items:stretch; }
  .v2-biztimeline-row { grid-template-columns:28px minmax(0,1fr); }
  .v2-biztimeline-row .v2-time { grid-column:2; margin-top:2px; }
  .v2-result > .v2-badge { grid-column:3; justify-self:start; }
  .v2-drawer-layer { grid-template-columns:1fr; }
  .v2-drawer-scrim { display:none; }
  .v2-drawer { border-left:0; }
  .v2-panels-2,.v2-panels-3,.v2-panels-4,.v2-trading-row,
  .v2-knowledge-extras,.v2-crm-extras,.v2-results-extras,.v2-approvals-extras { grid-template-columns:1fr; }
  .v2-grid,.v2-grid-2,.v2-grid-3,.v2-grid-4 { grid-template-columns:1fr; }
  .v2-panels-3 > .v2-span-2,
  .v2-panels-4 > .v2-span-2,
  .v2-panels-4 > .v2-span-3,
  .v2-knowledge-extras > .v2-span-2,
  .v2-crm-extras > .v2-span-2,
  .v2-results-extras > .v2-span-2,
  .v2-approvals-extras > .v2-span-2 { grid-column:auto; }
}

/* Information Integration: official brand connector icons sit on a neutral tile
   so their brand colours read; size stays consistent. */
.v2-connector-brand { background: rgba(255,255,255,0.045); color: var(--v2-text, #edf2f7); }
.v2-connector-brand svg { width: 23px; height: 23px; }

/* ── Restoration (Phase 4): Google Drive folder browser ─────────────────── */
.v2-drive-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-bottom:12px; font-size:12px; }
.v2-drive-crumb { background:none; border:0; padding:2px 4px; color:var(--v2-primary); cursor:pointer; font:inherit; border-radius:6px; }
.v2-drive-crumb:hover:not(:disabled) { background:rgba(99, 102, 241,.08); }
.v2-drive-crumb.is-current { color:var(--v2-text); cursor:default; }
.v2-drive-sep { color:var(--v2-muted); opacity:.5; }
.v2-drive-list { display:flex; flex-direction:column; gap:2px; max-height:340px; overflow:auto; }
.v2-drive-item { display:flex; align-items:center; gap:11px; width:100%; padding:9px 10px; border:0; border-radius:8px; background:transparent; color:var(--v2-text); font:inherit; text-align:left; }
button.v2-drive-item { cursor:pointer; }
button.v2-drive-item:hover { background:rgba(255,255,255,.04); }
.v2-drive-ico { width:22px; height:22px; flex:0 0 auto; display:grid; place-items:center; color:var(--v2-primary); }
.v2-drive-ico svg { width:19px; height:19px; }
.v2-drive-name { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.v2-drive-kind { flex:0 0 auto; font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--v2-muted); }

/* ── Restoration (Phase 5): Leads & CRM conversation workspace ──────────── */
.v2-crm-workspace { display:grid; grid-template-columns:300px minmax(0,1fr) 260px; gap:var(--v2-grid-gap); align-items:stretch; height:calc(100vh - 404px); min-height:540px; max-height:740px; }
.v2-crm-list, .v2-crm-convo, .v2-crm-profile { display:flex; flex-direction:column; min-height:0; }
.v2-crm-list, .v2-crm-profile { padding:16px; overflow:hidden; }
.v2-crm-convo { padding:0; min-width:0; }
.v2-crm-pane-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.v2-crm-list .v2-lead-list { display:flex; flex-direction:column; gap:2px; overflow:auto; }
.v2-lead { display:flex; align-items:center; gap:11px; width:100%; padding:10px; border:1px solid transparent; border-radius:8px; background:transparent; cursor:pointer; text-align:left; color:var(--v2-text); font:inherit; }
.v2-lead:hover { background:rgba(255,255,255,.04); }
.v2-lead.is-active { background:rgba(99, 102, 241,.09); border-color:rgba(99, 102, 241,.22); }
.v2-lead-avatar { width:34px; height:34px; flex:0 0 auto; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; color:var(--v2-text-primary); background:linear-gradient(135deg,var(--v2-primary),var(--v2-secondary)); }
.v2-lead-copy { min-width:0; display:flex; flex-direction:column; gap:2px; }
.v2-lead-copy b { font-size:13px; display:flex; align-items:center; gap:6px; }
.v2-lead-copy span { font-size:11px; color:var(--v2-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2-lead-title { display:flex !important; align-items:center; justify-content:space-between; gap:8px; }
.v2-lead-title time { flex:0 0 auto; color:var(--v2-dim); font-size:9px; }
.v2-lead-preview { color:var(--v2-text-secondary) !important; }
.v2-lead-copy small { color:var(--v2-dim); font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2-unread { width:7px; height:7px; border-radius:50%; background:var(--v2-amber,#eab308); display:inline-block; }
.v2-crm-convo { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.v2-convo-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--v2-line); }
.v2-convo-head b { font-size:15px; }
.v2-convo-head span { display:block; font-size:11px; color:var(--v2-muted); margin-top:2px; }
.v2-convo-scroll { padding:18px; overflow:auto; display:flex; flex-direction:column; gap:10px; overscroll-behavior:contain; }
.v2-crm-convo .v2-message { width:min(76%,720px); max-width:720px; margin:0; align-self:flex-start; }
.v2-crm-convo .v2-message-user { padding-left:0; align-self:flex-end; }
.v2-crm-convo .v2-message-body { padding:12px 14px; border-radius:14px 14px 14px 4px; line-height:1.55; }
.v2-crm-convo .v2-message-user .v2-message-body { border-radius:14px 14px 4px 14px; }
.v2-msg-time { color:var(--v2-muted); font-weight:400; }
.v2-crm-profile-scroll { min-height:0; flex:1; overflow:auto; padding-right:3px; overscroll-behavior:contain; }
.v2-crm-ai { margin-top:18px; padding-top:16px; border-top:1px solid var(--v2-line); }
.v2-message-attachments { display:grid; gap:6px; margin-top:10px; }
.v2-message-attachments > span { display:flex; align-items:center; gap:7px; padding:8px; border:1px solid var(--v2-line); border-radius:8px; }
.v2-message-attachments svg { width:14px; height:14px; flex:0 0 auto; }
.v2-message-attachments small { margin-left:auto; color:var(--v2-muted); }
.v2-composer-note { display:block; margin-top:7px; color:var(--v2-dim); font-size:9px; line-height:1.4; }

/* --- Obsidian connector (read-only vault browser) ------------------------- */
.obs-root { display:flex; flex-direction:column; gap:12px; }
.obs-header { display:flex; flex-direction:column; gap:6px; padding-bottom:10px; border-bottom:1px solid var(--v2-line); }
.obs-header-main { display:flex; align-items:center; gap:10px; }
.obs-vault { font-size:14px; color:var(--v2-ink); }
.obs-header-meta { display:flex; flex-wrap:wrap; gap:12px; color:var(--v2-muted); font-size:11px; }
.obs-toolbar { display:flex; gap:8px; align-items:center; }
.obs-search-input { flex:1; padding:8px 12px; border:1px solid var(--v2-border); border-radius:var(--v2-radius-md); background:var(--v2-app-bg); color:var(--v2-ink); font:inherit; font-size:12px; }
.obs-search-input:focus { outline:none; border-color:var(--v2-border-active); }
.obs-clear { padding:8px 12px; border:1px solid var(--v2-border); border-radius:var(--v2-radius-md); background:transparent; color:var(--v2-muted); cursor:pointer; font-size:12px; }
.obs-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:4px; font-size:12px; }
.obs-crumb { background:none; border:none; color:var(--v2-primary); cursor:pointer; padding:2px 4px; font:inherit; font-size:12px; }
.obs-crumb.is-current { color:var(--v2-muted); cursor:default; }
.obs-sep { color:var(--v2-dim); }
.obs-list { display:flex; flex-direction:column; gap:6px; }
.obs-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--v2-line); border-radius:var(--v2-radius-md); background:var(--v2-panel); cursor:pointer; text-align:left; font:inherit; color:var(--v2-ink); width:100%; }
.obs-item:hover { border-color:var(--v2-border-active); }
.obs-item.is-result { flex-direction:column; align-items:flex-start; gap:3px; }
.obs-ico { flex:0 0 auto; }
.obs-name { flex:1; font-size:13px; }
.obs-kind { color:var(--v2-dim); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.obs-path { color:var(--v2-muted); font-size:11px; }
.obs-excerpt { color:var(--v2-muted); font-size:11px; line-height:1.4; }
.obs-search-head { color:var(--v2-muted); font-size:11px; margin-bottom:4px; }
.obs-state { padding:16px; border:1px dashed var(--v2-border); border-radius:var(--v2-radius-md); background:var(--v2-app-bg); }
.obs-state-warning { border-color:var(--v2-amber); }
.obs-state-danger { border-color:var(--v2-error); }
.obs-state-title { margin:0 0 6px; font-size:13px; color:var(--v2-ink); }
.obs-state-copy { margin:0; color:var(--v2-muted); font-size:12px; line-height:1.5; }
.obs-recovery { margin:8px 0 0; font-size:12px; color:var(--v2-ink); }
.obs-loading { display:flex; flex-direction:column; gap:8px; }
.obs-note-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.obs-back { background:none; border:none; color:var(--v2-primary); cursor:pointer; font:inherit; font-size:12px; padding:2px 4px; }
.obs-note-title { margin:0 0 2px; font-size:16px; color:var(--v2-ink); }
.obs-note-path { color:var(--v2-muted); font-size:11px; margin-bottom:10px; }
.obs-note-body { font-size:13px; line-height:1.6; color:var(--v2-ink); }
.obs-note-body .obs-h { margin:12px 0 6px; }
.obs-note-body .obs-p { margin:0 0 8px; }
.obs-note-body .obs-ul { margin:0 0 8px 18px; }
.obs-note-body .obs-code { background:var(--v2-app-bg); padding:10px; border-radius:var(--v2-radius-md); overflow:auto; font-size:12px; }
.obs-note-foot { margin-top:14px; padding-top:10px; border-top:1px solid var(--v2-line); color:var(--v2-dim); font-size:11px; }

.obs-partner-info { display:flex; align-items:center; gap:8px; margin-top:4px; }
.obs-partner-badge { font-size:11px; color:var(--v2-primary); font-weight:500; }
.obs-partner-since { font-size:11px; color:var(--v2-dim); }
.obs-pairing-panel { padding:16px; border:1px solid var(--v2-border); border-radius:var(--v2-radius-md); background:var(--v2-panel); }
.obs-pairing-panel .obs-section-title { margin:0 0 12px; font-size:13px; color:var(--v2-ink); }
.obs-pairing-status { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.obs-pairing-device { font-size:12px; color:var(--v2-ink); font-weight:500; }
.obs-pairing-endpoint { font-size:11px; color:var(--v2-dim); font-family:monospace; }
.obs-pairing-code-box { margin:12px 0; padding:12px; border:1px dashed var(--v2-border-active); border-radius:var(--v2-radius-md); background:var(--v2-app-bg); }
.obs-pairing-code-label { margin:0 0 6px; font-size:11px; color:var(--v2-muted); }
.obs-pairing-code { display:block; font-size:18px; font-family:monospace; color:var(--v2-primary); letter-spacing:2px; padding:8px; text-align:center; user-select:all; background:var(--v2-panel); border-radius:4px; }
.obs-pairing-code-hint { margin:6px 0 0; font-size:11px; color:var(--v2-dim); }
.obs-connect-form { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.obs-connect-form .obs-field { display:flex; flex-direction:column; gap:3px; }
.obs-connect-form .obs-field label { font-size:11px; color:var(--v2-muted); font-weight:500; }
.obs-connect-form .obs-input { padding:8px 10px; border:1px solid var(--v2-border); border-radius:var(--v2-radius-md); background:var(--v2-app-bg); color:var(--v2-ink); font:inherit; font-size:12px; }
.obs-connect-form .obs-input:focus { outline:none; border-color:var(--v2-border-active); }
.obs-btn { padding:8px 16px; border:none; border-radius:var(--v2-radius-md); cursor:pointer; font:inherit; font-size:12px; font-weight:500; transition:background .15s; }
.obs-btn-primary { background:var(--v2-primary); color:#fff; }
.obs-btn-primary:hover { background:var(--v2-primary-dark, var(--v2-primary)); opacity:.9; }
.obs-btn-danger { background:var(--v2-error); color:#fff; }
.obs-btn-danger:hover { opacity:.9; }
.obs-btn-sm { padding:4px 10px; font-size:11px; background:transparent; color:var(--v2-muted); border:1px solid var(--v2-border); }
.obs-btn-sm:hover { border-color:var(--v2-border-active); }
.obs-settings { display:flex; flex-direction:column; gap:12px; }

/* Premium Experience Layer · Phase 1 prototype
   Visual-only overrides. Existing routes, data attributes, and interaction
   contracts remain untouched. */
:root {
  --v2-primary: #8b7dff;
  --v2-secondary: #b09cff;
  --v2-primary-tint: rgba(139, 125, 255, .14);
  --v2-primary-glow: rgba(139, 125, 255, .16);
  --v2-primary-edge: rgba(176, 156, 255, .62);
  --v2-app-bg: #080b12;
  --v2-sidebar-bg: #0b0e17;
  --v2-surface: rgba(17, 22, 34, .82);
  --v2-surface-raised: rgba(28, 33, 51, .9);
  --v2-surface-hover: rgba(36, 41, 63, .96);
  --v2-border: rgba(191, 189, 224, .13);
  --v2-border-strong: rgba(191, 189, 224, .24);
  --v2-page-pad: 40px;
  --v2-page-pad-y: 40px;
  --v2-card-pad: 28px;
  --v2-grid-gap: 18px;
  --v2-radius-md: 10px;
  --v2-radius-lg: 16px;
  --v2-radius-xl: 20px;
  --v2-radius-2xl: 24px;
  --v2-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --v2-serif: Inter, ui-sans-serif, system-ui, sans-serif;
}

body.one-v2-active {
  background:
    radial-gradient(circle at 82% -10%, rgba(116, 95, 255, .15), transparent 34rem),
    radial-gradient(circle at 18% 75%, rgba(34, 211, 238, .035), transparent 30rem),
    var(--v2-app-bg);
}
.v2-sidebar { padding: 26px 14px 18px; background: rgba(10, 13, 22, .88); backdrop-filter: blur(24px); }
.v2-brand { padding: 0 10px 24px; }
.v2-brand-mark { width: 40px; height: 40px; border-radius: 14px; box-shadow: 0 0 0 7px rgba(139,125,255,.07), 0 12px 34px rgba(102, 86, 255, .24); }
.v2-brand-copy strong { letter-spacing: .08em; }
.v2-brand-copy span { letter-spacing: .12em; }
.v2-workspace-status { display:flex; align-items:center; gap:10px; margin: 0 8px 26px; padding: 11px 12px; border:1px solid var(--v2-border); border-radius:14px; background:rgba(255,255,255,.025); }
.v2-workspace-status .v2-live-dot { flex:0 0 auto; }
.v2-workspace-status b { display:block; color:var(--v2-text-secondary); font-size:10px; }
.v2-workspace-status small { display:block; margin-top:3px; color:var(--v2-dim); font-size:9px; line-height:1.3; }
.v2-nav { gap: 22px; }
.v2-nav-item { min-height: 42px; border-radius: 13px; }
.v2-nav-item.is-active { box-shadow: inset 3px 0 0 var(--v2-primary), 0 8px 24px rgba(0,0,0,.14); }
.v2-main { background: transparent; }
.v2-topbar { padding: 0 40px; background: rgba(10, 13, 22, .58); backdrop-filter: blur(24px); }
.v2-top-status { gap: 12px; }
.v2-viewport { background: transparent; }
.v2-page { width: min(100%, 1500px); padding: var(--v2-page-pad-y) var(--v2-page-pad) 72px; }
.v2-page-head { margin-bottom: 30px; }
.v2-page-kicker, .v2-brief-label { color: var(--v2-secondary); }
.v2-page-title { font-size: clamp(36px, 4.5vw, 64px); letter-spacing: -.055em; }
.v2-page-subtitle { max-width: 720px; color: #a7abc0; font-size: 14px; }
.v2-surface { border-color: rgba(191,189,224,.14); border-radius: var(--v2-radius-xl); box-shadow: 0 18px 50px rgba(0,0,0,.13); }
.v2-surface:hover { border-color: rgba(176,156,255,.3); }
.v2-brief { min-height: 278px; border-color: rgba(176,156,255,.24); background: radial-gradient(circle at 74% 20%, rgba(139,125,255,.2), transparent 27%), linear-gradient(120deg, rgba(32,35,59,.95), rgba(17,22,34,.9) 74%); }
.v2-brief-main { padding: 40px; }
.v2-brief h2 { max-width: 780px; font-size: clamp(34px, 4.6vw, 62px); }
.v2-brief-aside { padding: 40px; background: rgba(255,255,255,.018); }
.v2-bento, .v2-panels-3 { gap: 18px; }
.v2-card-title { font-size: 20px; }
.v2-card-value { color: #f2efff; }
.v2-button { min-height: 42px; border-radius: 12px; }
.v2-button-primary { background: linear-gradient(135deg, #8b7dff, #6e5cf0); box-shadow: 0 10px 24px rgba(109, 91, 240, .2); }
.v2-button-primary:hover { background: linear-gradient(135deg, #9b8eff, #7b69f7); }
.v2-mission-compact .v2-bento > .v2-surface:nth-child(1) { background: linear-gradient(160deg, rgba(39,34,68,.58), rgba(17,22,34,.86)); }
.v2-nova-home .v2-page-head { max-width: 760px; }
.v2-nova-home .v2-page-head h1 { font-size: clamp(38px, 5vw, 70px); }
.v2-director-pulse { display:inline-flex; align-items:center; gap:7px; color:var(--v2-muted); font-size:10px; }
.v2-director-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid var(--v2-border); border-radius:14px; background:var(--v2-border); }
.v2-director-grid .v2-detail-list { display:contents; }
.v2-director-grid .v2-detail-row { display:flex; min-height:94px; flex-direction:column; justify-content:space-between; gap:8px; padding:16px; border:0; background:rgba(255,255,255,.025); }
.v2-director-grid .v2-detail-row b { max-width:100%; text-align:left; color:var(--v2-text-primary); }
.v2-nova-layout { border-color: rgba(176,156,255,.2); border-radius: 22px; box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.v2-nova-head { background: linear-gradient(135deg, rgba(37,33,69,.55), rgba(17,22,34,.3)); }
.v2-nova-head h1 { font-size: 34px; letter-spacing: -.045em; }
.v2-chat-opening { margin: 26px; padding: 28px; border: 1px solid rgba(176,156,255,.18); border-radius: 18px; background: radial-gradient(circle at 92% 0, rgba(139,125,255,.16), transparent 40%), rgba(255,255,255,.025); }
.v2-chat-opening h2 { max-width: 700px; font-size: clamp(28px, 3vw, 44px); letter-spacing: -.045em; }
.v2-nova-context h3 { color: var(--v2-secondary); }
.v2-nova-rec { padding: 15px 0; }
.v2-nova-rec b { font-size: 12px; }
.v2-composer { padding: 18px 26px 24px; background: rgba(8,11,18,.45); }
.v2-command { min-height: 58px; border-radius: 16px; background: rgba(139,125,255,.08); box-shadow: 0 16px 50px rgba(0,0,0,.18); }
@media (max-width: 900px) {
  .v2-topbar { padding: 0 20px; }
  .v2-page { padding: 28px 20px 56px; }
  .v2-director-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .v2-director-grid { grid-template-columns: 1fr; }
  .v2-brief-main, .v2-brief-aside { padding: 26px; }
}

/* ---- AI Chief of Staff A4 Brief Contract ------------------------------- */
.v2-a4-brief { padding:24px; }
.v2-a4-brief > .v2-exec-line { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:0 0 18px; padding-bottom:14px; }
.v2-a4-brief > .v2-exec-line h2 { margin:5px 0 0; color:var(--v2-text-primary); font-size:23px; letter-spacing:0; text-transform:none; }
.v2-a4-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.v2-a4-grid > section { min-width:0; padding:16px; border:1px solid rgba(148,163,184,.12); border-radius:12px; background:rgba(15,23,42,.20); }
.v2-a4-grid h3 { margin:0 0 12px; color:var(--v2-text-primary); font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.v2-a4-list { list-style:none; margin:0; padding:0; }
.v2-a4-list li { display:grid; gap:5px; padding:0 0 12px; margin:0 0 12px; border-bottom:1px solid rgba(148,163,184,.10); }
.v2-a4-list li:last-child { padding-bottom:0; margin-bottom:0; border-bottom:0; }
.v2-a4-list b { color:var(--v2-text-secondary); font-size:13px; line-height:1.35; }
.v2-a4-list span { color:var(--v2-text-muted); font-size:12px; line-height:1.5; }
@media (max-width: 900px) { .v2-a4-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .v2-a4-brief { padding:18px; } .v2-a4-brief > .v2-exec-line { display:block; } .v2-a4-grid { grid-template-columns:1fr; } }

/* Phase 2.2 · Today Workspace
   A business briefing composed only from existing ONEAI data contracts. */
.v2-today-page { max-width:1440px; }
.v2-today-head { align-items:flex-end; margin-bottom:26px; }
.v2-today-head .v2-page-title { max-width:760px; font-size:clamp(36px,4vw,56px); }
.v2-today-head .v2-page-subtitle { max-width:760px; font-size:14px; }
.v2-today-label { display:block; color:var(--v2-text-disabled); font-size:10px; font-weight:750; letter-spacing:.08em; }

.v2-today-brief {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(300px,.72fr);
  overflow:hidden;
  border:1px solid rgba(191,189,224,.15);
  border-radius:22px;
  background:rgba(17,22,34,.68);
  box-shadow:0 18px 55px rgba(0,0,0,.12);
}
.v2-today-brief-main { min-width:0; padding:34px 36px 28px; }
.v2-today-brief-main h2 { max-width:850px; margin:12px 0 30px; color:var(--v2-text-primary); font-size:clamp(24px,2.6vw,37px); font-weight:520; line-height:1.22; letter-spacing:-.035em; }
.v2-today-pulse { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--v2-border); }
.v2-today-pulse div { min-width:0; padding:20px 18px 0 0; }
.v2-today-pulse b { display:block; color:var(--v2-text-primary); font-size:25px; font-weight:540; letter-spacing:-.035em; }
.v2-today-pulse span { display:block; margin-top:4px; color:var(--v2-text-muted); font-size:10.5px; }
.v2-today-nova { padding:32px; border-left:1px solid var(--v2-border); background:rgba(255,255,255,.018); }
.v2-today-nova-head { display:flex; align-items:center; gap:9px; color:var(--v2-text-muted); font-size:10px; font-weight:700; letter-spacing:.05em; }
.v2-today-nova h3 { margin:26px 0 10px; color:var(--v2-text-primary); font-size:20px; font-weight:560; line-height:1.35; letter-spacing:-.02em; }
.v2-today-nova p { margin:0; color:var(--v2-text-muted); font-size:12px; line-height:1.65; }
.v2-today-detail { margin-top:24px; padding-top:16px; border-top:1px solid var(--v2-border); }
.v2-today-detail summary { color:var(--v2-text-secondary); font-size:11px; font-weight:650; cursor:pointer; }
.v2-today-detail div { padding-top:12px; color:var(--v2-text-muted); font-size:11px; line-height:1.6; }

.v2-today-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; margin-top:18px; }
.v2-today-panel { min-width:0; min-height:340px; display:flex; flex-direction:column; padding:25px 26px 22px; border:1px solid var(--v2-border); border-radius:18px; background:rgba(17,22,34,.56); }
.v2-today-panel-head { min-height:62px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:17px; }
.v2-today-panel-head > div { min-width:0; }
.v2-today-panel-head h2 { margin:7px 0 0; color:var(--v2-text-primary); font-size:20px; font-weight:560; letter-spacing:-.025em; }
.v2-today-index { float:left; margin-right:8px; color:var(--v2-secondary); font-size:10px; font-weight:800; }
.v2-today-panel .v2-timeline-row { padding:11px 0; }
.v2-today-panel .v2-timeline-copy b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.v2-today-list { display:grid; }
.v2-today-list-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--v2-border); }
.v2-today-list-row b { display:block; color:var(--v2-text-secondary); font-size:11.5px; line-height:1.4; }
.v2-today-list-row span:not(.v2-badge) { display:block; margin-top:4px; color:var(--v2-text-muted); font-size:10px; line-height:1.45; }
.v2-today-clear { display:flex; align-items:flex-start; gap:12px; padding:16px 0; }
.v2-today-clear-mark { width:25px; height:25px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(16,185,129,.22); border-radius:50%; color:var(--v2-success); background:rgba(16,185,129,.06); font-size:11px; }
.v2-today-clear b { display:block; color:var(--v2-text-secondary); font-size:12px; }
.v2-today-clear div span { display:block; margin-top:5px; color:var(--v2-text-muted); font-size:10.5px; line-height:1.55; }
.v2-today-link { min-height:35px; display:flex; align-items:center; gap:8px; align-self:flex-start; margin-top:auto; padding:0; border:0; color:var(--v2-text-secondary); background:transparent; font:650 10.5px var(--v2-sans); cursor:pointer; }
.v2-today-link:hover { color:var(--v2-text-primary); }
.v2-today-link svg { width:13px; }
.v2-today-next { background:rgba(27,28,46,.64); }
.v2-today-next-copy { margin-bottom:22px; }
.v2-today-next-copy > span { color:var(--v2-secondary); font-size:10px; font-weight:750; }
.v2-today-next-copy h3 { margin:11px 0 10px; color:var(--v2-text-primary); font-size:22px; font-weight:560; line-height:1.3; letter-spacing:-.03em; }
.v2-today-next-copy p { margin:0; color:var(--v2-text-muted); font-size:11px; line-height:1.6; }
.v2-today-next > .v2-button { align-self:flex-start; margin-top:auto; }

.v2-today-lower { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:18px; border-top:1px solid var(--v2-border); border-bottom:1px solid var(--v2-border); }
.v2-today-lower article { min-width:0; padding:22px 24px 22px 0; }
.v2-today-lower article + article { padding-left:24px; border-left:1px solid var(--v2-border); }
.v2-today-lower b { display:block; margin-top:10px; color:var(--v2-text-primary); font-size:28px; font-weight:520; }
.v2-today-lower p { margin:4px 0 0; color:var(--v2-text-muted); font-size:10.5px; line-height:1.5; }
.v2-today-page button:focus-visible, .v2-today-page summary:focus-visible { outline:2px solid var(--v2-primary); outline-offset:3px; }

@media (max-width: 1180px) {
  .v2-today-brief { grid-template-columns:1fr; }
  .v2-today-nova { border-top:1px solid var(--v2-border); border-left:0; }
  .v2-today-grid { grid-template-columns:1fr 1fr; }
  .v2-today-next { grid-column:1/-1; min-height:270px; }
}
@media (max-width: 720px) {
  .v2-today-head { align-items:flex-start; }
  .v2-today-head .v2-head-actions { justify-content:flex-start; }
  .v2-today-brief-main, .v2-today-nova { padding:25px 24px; }
  .v2-today-brief-main h2 { margin-bottom:22px; font-size:24px; }
  .v2-today-pulse { grid-template-columns:1fr 1fr; }
  .v2-today-pulse div { padding-top:15px; }
  .v2-today-grid { grid-template-columns:1fr; }
  .v2-today-panel, .v2-today-next { min-height:auto; grid-column:auto; }
  .v2-today-link, .v2-today-next > .v2-button { margin-top:22px; }
  .v2-today-lower { grid-template-columns:1fr; }
  .v2-today-lower article, .v2-today-lower article + article { padding:18px 0; border-left:0; }
  .v2-today-lower article + article { border-top:1px solid var(--v2-border); }
}

/* Phase A.2.1 · Today Narrative Experience
   Presentation-only styles for the six-section Business Narrative layout
   (Narrative Intelligence Specification v1.0). Reuses the shared tokens and
   the existing .v2-today-detail / .v2-today-label components. */
.v2-narr-block { margin-top:18px; }
.v2-narr-brief {
  padding:26px 30px;
  border:1px solid rgba(191,189,224,.15);
  border-radius:18px;
  background:rgba(17,22,34,.68);
}
.v2-narr-brief .v2-narr-head { margin-bottom:16px; }
.v2-narr-brief-line { margin:0; color:var(--v2-text-primary); font-size:clamp(17px,1.9vw,23px); font-weight:520; line-height:1.42; letter-spacing:-.02em; }
.v2-narr-head { margin-bottom:14px; }
.v2-narr-head h2 { margin:7px 0 0; color:var(--v2-text-primary); font-size:20px; font-weight:560; letter-spacing:-.025em; }

.v2-narr-card {
  padding:24px 26px;
  border:1px solid var(--v2-border);
  border-radius:18px;
  background:rgba(17,22,34,.56);
}
.v2-narr-card-primary { border-color:rgba(99,102,241,.4); background:rgba(27,28,46,.64); }
.v2-narr-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.v2-narr-title { margin:0; color:var(--v2-text-primary); font-size:clamp(20px,2.2vw,26px); font-weight:560; line-height:1.28; letter-spacing:-.025em; }

.v2-narr-contract { display:grid; gap:10px; margin:16px 0 0; }
.v2-narr-contract > div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; padding-top:10px; border-top:1px solid var(--v2-border); }
.v2-narr-contract dt { color:var(--v2-text-muted); font-size:10.5px; font-weight:750; letter-spacing:.05em; }
.v2-narr-contract dd { margin:0; color:var(--v2-text-secondary); font-size:12px; line-height:1.6; }
.v2-narr-card .v2-today-detail { margin-top:14px; }
.v2-narr-card .v2-today-detail > div { padding-top:12px; }
.v2-narr-evidence { color:var(--v2-text-muted); font-size:11px; line-height:1.6; }

.v2-narr-support-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.v2-narr-rows { display:grid; gap:10px; }
.v2-narr-row {
  display:flex; align-items:flex-start; gap:13px; width:100%;
  padding:15px 17px; text-align:left;
  border:1px solid var(--v2-border); border-radius:13px;
  background:rgba(17,22,34,.56); color:inherit; cursor:default; font:inherit;
}
button.v2-narr-row { cursor:pointer; }
button.v2-narr-row:hover { border-color:var(--v2-border-strong); background:var(--v2-surface-hover); }
.v2-narr-row-icon { flex:0 0 auto; width:30px; height:30px; display:grid; place-items:center; border-radius:8px; color:var(--v2-secondary); background:var(--v2-primary-tint); }
.v2-narr-row-icon svg { width:15px; height:15px; }
.v2-narr-row-main { min-width:0; flex:1; }
.v2-narr-row-main b { display:block; color:var(--v2-text-secondary); font-size:12px; font-weight:650; line-height:1.4; }
.v2-narr-row-main small { display:block; margin-top:4px; color:var(--v2-text-muted); font-size:10.5px; line-height:1.5; }
.v2-narr-row-meta { flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.v2-narr-misc-toggle summary { color:var(--v2-text-secondary); font-size:11px; font-weight:650; cursor:pointer; padding:10px 0; }
.v2-narr-misc-toggle > div { padding-top:8px; }

@media (max-width: 1180px) {
  .v2-narr-support-grid { grid-template-columns:1fr; }
}
@media (max-width: 900px) {
  .v2-narr-contract > div { grid-template-columns:120px minmax(0,1fr); }
}
@media (max-width: 720px) {
  .v2-narr-brief { padding:22px 20px; }
  .v2-narr-card { padding:20px 18px; }
  .v2-narr-contract > div { grid-template-columns:1fr; gap:4px; }
  .v2-narr-row { padding:13px 14px; }
}
@media (max-width: 560px) {
  .v2-narr-row-meta { display:none; }
  .v2-narr-support-grid { grid-template-columns:1fr; }
}

/* ---- Phase 2 · Living AI Experience ---------------------------------------
   The Executive Layer reads like a person talking, not a dashboard. NOVA
   dominates; the desks support. Generous whitespace, one lead voice per band,
   no grid of equal cards. Reuses the existing V2 tokens and the existing
   1180/900/720/560 breakpoints — no new colour, no new breakpoint. */
.v2-exec-page { display:flex; flex-direction:column; gap:60px; max-width:940px; padding-bottom:40px; }

/* NOVA — Chief of Staff. The page opens on a voice, not a header. */
.v2-nova-desk { display:flex; gap:22px; align-items:flex-start; padding:8px 0 4px; }
.v2-nova-mark {
  position:relative; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; margin-top:6px; border-radius:15px; color:var(--v2-text-secondary);
  background:var(--v2-primary-glow); border:1px solid var(--v2-primary-tint);
}
.v2-nova-mark svg { width:22px; height:22px; }
.v2-nova-pulse {
  position:absolute; top:-3px; right:-3px; width:9px; height:9px; border-radius:50%;
  background:var(--v2-success); box-shadow:0 0 0 0 rgba(16,185,129,.45);
  animation:v2-breathe 3.6s ease-out infinite;
}
@keyframes v2-breathe {
  0%   { box-shadow:0 0 0 0 rgba(16,185,129,.40); opacity:1; }
  70%  { box-shadow:0 0 0 9px rgba(16,185,129,0); opacity:.85; }
  100% { box-shadow:0 0 0 0 rgba(16,185,129,0); opacity:1; }
}
.v2-nova-voice { min-width:0; flex:1; display:flex; flex-direction:column; gap:14px; }
.v2-nova-name { color:var(--v2-text-muted); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.v2-nova-name em { font-style:normal; opacity:.62; letter-spacing:.1em; }
.v2-nova-lead { margin:0; color:var(--v2-text-primary); font-size:26px; font-weight:600; line-height:1.42; letter-spacing:-.02em; }
.v2-nova-focus { margin:0; color:var(--v2-text-secondary); font-size:16px; line-height:1.66; max-width:70ch; }
.v2-nova-close { margin:0; color:var(--v2-text-muted); font-size:14px; line-height:1.7; max-width:70ch; }
.v2-nova-meta { display:flex; flex-wrap:wrap; gap:18px; padding-top:4px; color:var(--v2-text-disabled); font-size:11.5px; }

/* Bands. Each is a paragraph of the page, not a panel. */
.v2-exec-today { display:block; }
.v2-exec-team { display:block; }

/* Section rhythm — a quiet rule, a title, and room to breathe. */
.v2-exec-line { display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--v2-surface-hover); margin-bottom:22px; }
.v2-exec-line h2 { margin:0; color:var(--v2-text-primary); font-size:15px; font-weight:640; letter-spacing:.01em; }
.v2-exec-line-note { color:var(--v2-text-disabled); font-size:11.5px; }
.v2-link-button {
  background:none; border:0; padding:0; cursor:pointer; color:var(--v2-text-muted);
  font-size:12px; font-weight:600; font-family:inherit;
  transition:color .22s ease;
}
.v2-link-button:hover { color:var(--v2-text-primary); }

/* What today asks of you — lines, not cards. */
.v2-exec-calls { display:flex; flex-direction:column; }
.v2-exec-call {
  display:flex; align-items:center; gap:18px; width:100%; text-align:left; cursor:pointer;
  padding:18px 4px; background:none; border:0; border-bottom:1px solid var(--v2-surface-hover); color:inherit;
  transition:padding-left .24s ease, background-color .24s ease;
}
.v2-exec-call:hover { padding-left:12px; background:linear-gradient(90deg, var(--v2-primary-glow), transparent 60%); }
.v2-exec-call-body { min-width:0; flex:1; }
.v2-exec-call-body b { display:block; color:var(--v2-text-primary); font-size:14.5px; font-weight:600; line-height:1.5; }
.v2-exec-call-body small { display:block; margin-top:5px; color:var(--v2-text-muted); font-size:12px; line-height:1.6; }
.v2-exec-call-go { flex:0 0 auto; display:inline-flex; color:var(--v2-text-disabled); transition:transform .24s ease, color .24s ease; }
.v2-exec-call-go svg { width:16px; height:16px; }
.v2-exec-call:hover .v2-exec-call-go { transform:translateX(3px); color:var(--v2-text-secondary); }
.v2-exec-quiet { margin:0; color:var(--v2-text-muted); font-size:14.5px; line-height:1.7; }

/* The team — one lead voice, the rest quieter. Never five equal cards. */
.v2-desk-lead { margin-bottom:8px; }
.v2-desk-rest { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:2px 40px; }
.v2-desk { padding:22px 4px; border-bottom:1px solid var(--v2-surface-hover); transition:padding-left .26s ease; }
.v2-desk:hover { padding-left:10px; }
.v2-desk.is-lead {
  padding:26px 26px 22px; border:1px solid var(--v2-surface-hover); border-radius:16px;
  background:linear-gradient(150deg, var(--v2-surface-raised), transparent 70%);
}
.v2-desk.is-lead:hover { padding-left:26px; }
.v2-desk.is-lead.is-calling { border-color:var(--v2-primary-edge); }
.v2-desk-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.v2-desk-mark {
  position:relative; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:9px; color:var(--v2-text-muted);
  background:var(--v2-surface-raised); border:1px solid var(--v2-surface-hover);
  transition:color .24s ease, border-color .24s ease;
}
.v2-desk:hover .v2-desk-mark { color:var(--v2-text-secondary); border-color:var(--v2-primary-tint); }
.v2-desk-mark svg { width:14px; height:14px; }
.v2-desk-mark.is-live::after {
  content:''; position:absolute; top:-2px; right:-2px; width:6px; height:6px; border-radius:50%;
  background:var(--v2-success); animation:v2-breathe 4.4s ease-out infinite;
}
.v2-desk-who { min-width:0; flex:1; display:flex; align-items:baseline; gap:8px; }
.v2-desk-who b { color:var(--v2-text-primary); font-size:14px; font-weight:640; }
.v2-desk-who em { font-style:normal; color:var(--v2-text-disabled); font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.v2-desk-say { margin:0 0 10px; color:var(--v2-text-secondary); font-size:13.5px; line-height:1.7; max-width:62ch; }
.v2-desk.is-lead .v2-desk-say { font-size:15px; }
.v2-desk-ask { margin:0 0 10px; color:var(--v2-text-primary); font-size:13.5px; line-height:1.7; max-width:62ch; }
.v2-desk-ask b { font-weight:640; }
.v2-desk-ask-clear { color:var(--v2-text-disabled); font-size:12.5px; }
.v2-desk-next { margin:0; color:var(--v2-text-muted); font-size:12.5px; line-height:1.7; max-width:62ch; font-style:italic; }
.v2-desk-foot { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:14px; }
.v2-desk-when { color:var(--v2-text-disabled); font-size:11.5px; }
.v2-live-time { color:var(--v2-text-muted); transition:color .5s ease; }
.v2-desk-more summary { color:var(--v2-text-disabled); font-size:11.5px; cursor:pointer; transition:color .22s ease; }
.v2-desk-more summary:hover { color:var(--v2-text-secondary); }
.v2-desk-more > div { padding-top:12px; }

@media (prefers-reduced-motion: reduce) {
  .v2-nova-pulse, .v2-desk-mark.is-live::after { animation:none; }
  .v2-exec-call, .v2-desk, .v2-exec-call-go { transition:none; }
}
@media (max-width: 1180px) {
  .v2-exec-page { gap:52px; }
  .v2-nova-lead { font-size:24px; }
}
@media (max-width: 900px) {
  .v2-desk-rest { grid-template-columns:1fr; gap:0; }
  .v2-nova-lead { font-size:22px; }
  .v2-nova-focus { font-size:15px; }
}
@media (max-width: 720px) {
  .v2-exec-page { gap:44px; }
  .v2-nova-desk { gap:16px; }
  .v2-nova-mark { width:38px; height:38px; }
  .v2-desk.is-lead { padding:22px 18px 18px; }
  .v2-desk.is-lead:hover { padding-left:18px; }
  .v2-exec-line { flex-direction:column; align-items:flex-start; gap:6px; }
}
@media (max-width: 560px) {
  .v2-nova-lead { font-size:20px; }
  .v2-nova-meta { gap:10px; }
  .v2-exec-call { gap:12px; }
  .v2-desk-foot { gap:12px; }
}

/* ---- Phase 3 · Director Workspaces ----------------------------------------
   Every Director page shares the Executive reading rhythm: a voice first, then
   bands of prose. Reuses the Executive tokens and breakpoints — no new colour,
   no new breakpoint, no card grid. */
.v2-dir-page { display:flex; flex-direction:column; gap:52px; max-width:940px; padding-bottom:40px; }
.v2-dir-brief { display:flex; gap:22px; align-items:flex-start; padding:8px 0 0; }
.v2-dir-mission { padding:0; }
.v2-dir-mission p {
  margin:0; padding:18px 22px; border-left:2px solid var(--v2-primary-edge); border-radius:0 12px 12px 0;
  background:linear-gradient(90deg, var(--v2-primary-glow), transparent 70%);
  color:var(--v2-text-primary); font-size:16.5px; font-weight:600; line-height:1.6; letter-spacing:-.01em;
}
.v2-dir-band { display:block; }
.v2-dir-quiet { margin:0; color:var(--v2-text-muted); font-size:14px; line-height:1.75; max-width:68ch; }
.v2-dir-control { margin:0 0 14px; color:var(--v2-text-secondary); font-size:14.5px; line-height:1.75; max-width:68ch; }

.v2-dir-story-lead { margin:0 0 8px; color:var(--v2-text-primary); font-size:19px; font-weight:600; line-height:1.5; letter-spacing:-.01em; max-width:64ch; }
.v2-dir-story-why { margin:0 0 12px; color:var(--v2-text-secondary); font-size:14.5px; line-height:1.75; max-width:68ch; }

.v2-dir-decisions { display:flex; flex-direction:column; gap:20px; }
.v2-dir-decision { padding:24px 26px; border:1px solid var(--v2-surface-hover); border-radius:16px; background:linear-gradient(150deg, var(--v2-surface-raised), transparent 72%); }
.v2-dir-decision h3 { margin:0 0 8px; color:var(--v2-text-primary); font-size:17px; font-weight:640; line-height:1.5; letter-spacing:-.01em; }
.v2-dir-decision-why { margin:0 0 16px; color:var(--v2-text-secondary); font-size:13.5px; line-height:1.7; max-width:66ch; }
.v2-dir-decision-facts { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 26px; margin:0 0 16px; }
.v2-dir-decision-facts > div { min-width:0; }
.v2-dir-decision-facts dt { color:var(--v2-text-disabled); font-size:9.5px; text-transform:uppercase; letter-spacing:.09em; }
.v2-dir-decision-facts dd { margin:4px 0 0; color:var(--v2-text-secondary); font-size:12.5px; line-height:1.6; }

.v2-dir-controlled { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.v2-dir-controlled li { padding:14px 2px; border-bottom:1px solid var(--v2-surface-hover); }
.v2-dir-controlled b { display:block; color:var(--v2-text-secondary); font-size:13px; font-weight:620; line-height:1.5; }
.v2-dir-controlled span { display:block; margin-top:4px; color:var(--v2-text-muted); font-size:11.5px; line-height:1.6; }

.v2-dir-timeline { list-style:none; margin:0 0 16px; padding:0; }
.v2-dir-moment { position:relative; display:flex; align-items:flex-start; gap:16px; padding:16px 2px 16px 0; }
.v2-dir-moment-dot { flex:0 0 auto; width:7px; height:7px; margin-top:7px; border-radius:50%; background:var(--v2-primary-edge); }
.v2-dir-moment::before { content:''; position:absolute; left:3px; top:24px; bottom:-8px; width:1px; background:var(--v2-surface-hover); }
.v2-dir-moment:last-child::before { display:none; }
.v2-dir-moment-body { min-width:0; flex:1; }
.v2-dir-moment-body b { display:block; color:var(--v2-text-primary); font-size:13.5px; font-weight:620; line-height:1.5; }
.v2-dir-moment-body span { display:block; margin-top:4px; color:var(--v2-text-secondary); font-size:12.5px; line-height:1.65; }
.v2-dir-moment-body em { display:block; margin-top:3px; color:var(--v2-text-muted); font-size:11.5px; font-style:italic; line-height:1.6; }
.v2-dir-moment-when { flex:0 0 auto; color:var(--v2-text-disabled); font-size:11px; }
.v2-dir-next { margin:0; color:var(--v2-text-muted); font-size:12.5px; line-height:1.7; font-style:italic; }

.v2-dir-more summary, .v2-dir-open > summary { color:var(--v2-text-disabled); font-size:11.5px; cursor:pointer; transition:color .22s ease; }
.v2-dir-more summary:hover, .v2-dir-open > summary:hover { color:var(--v2-text-secondary); }
.v2-dir-more > div { padding-top:12px; }
.v2-dir-detail { border-top:1px solid var(--v2-surface-hover); padding-top:26px; }
.v2-dir-open > summary { font-size:12.5px; font-weight:600; color:var(--v2-text-muted); }
.v2-dir-open-body { padding-top:22px; }
.v2-dir-open-body .v2-page { max-width:none; padding:0; }
.v2-dir-open-body .v2-page-header, .v2-dir-open-body .v2-page-head { display:none; }
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-page-header,
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-page-head { display:flex; }

/* ── Customer Detail (Customers → "Open the customer detail") ──────────────
   Every rule below is scoped to the CRM detail inside the director
   disclosure. Nothing here can reach another page, another director, or the
   940px narrative column that the story bands above still use. */

/* The detail is an operating console, not prose, so it reclaims the width the
   940px reading column leaves unused. max() self-clamps the breakout to 0 as
   soon as there is no spare room, so narrow viewports are untouched. */
.v2-dir-band.v2-dir-detail:has(.v2-page[data-v2-page="crm"]) {
  --crm-detail-breakout: max(0px, calc((100vw - 240px - 18px - 940px) / 2));
  margin-inline: calc(-1 * var(--crm-detail-breakout));
}

/* Conversation is the dominant column; the two rails are fixed and secondary. */
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-workspace {
  grid-template-columns:264px minmax(0,1fr) 296px;
  height:clamp(560px, calc(100vh - 210px), 780px);
  max-height:none;
}

/* Top summary — who / stage / intent / last activity / next action / follow-up. */
.v2-crm-summary { display:flex; flex-wrap:wrap; align-items:center; gap:18px 28px; padding:16px 20px; background:var(--v2-surface); border:1px solid var(--v2-surface-hover); border-radius:14px; }
.v2-crm-summary-id { display:flex; align-items:center; gap:12px; min-width:0; }
.v2-crm-summary-name { display:flex; flex-direction:column; gap:2px; min-width:0; }
.v2-crm-summary-name b { font-size:15px; font-weight:600; color:var(--v2-text-primary); overflow-wrap:anywhere; }
.v2-crm-summary-name small { font-size:11.5px; color:var(--v2-text-muted); }
.v2-crm-summary-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(128px,1fr)); gap:14px 22px; flex:1 1 460px; min-width:0; }
.v2-crm-summary-fact { display:flex; flex-direction:column; gap:3px; min-width:0; }
.v2-crm-summary-fact span { font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--v2-text-disabled); }
.v2-crm-summary-fact b { font-size:12.5px; font-weight:600; color:var(--v2-text-secondary); overflow-wrap:anywhere; }
@media (min-width:1240px) {
  .v2-crm-summary-facts { grid-template-columns:repeat(5,minmax(0,1fr)); }
}

/* Grouped customer intelligence — headed sections instead of one long list. */
.v2-crm-profile-scroll .v2-crm-group + .v2-crm-group { margin-top:18px; padding-top:16px; border-top:1px solid var(--v2-surface-hover); }
.v2-crm-profile-scroll .v2-crm-group > .v2-card-kicker { display:block; margin-bottom:9px; }
.v2-crm-profile-scroll .v2-detail-row { gap:14px; align-items:flex-start; }
.v2-crm-profile-scroll .v2-detail-row b { text-align:right; overflow-wrap:anywhere; }

/* Relationship rail: long customer names truncate instead of being clipped. */
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-lead-copy { flex:1 1 auto; min-width:0; }
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-lead-title { min-width:0; }
.v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-lead-title b {
  min-width:0; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* Supporting aggregates, collapsed by default. */
.v2-crm-supporting > summary { padding:4px 0; }
.v2-crm-supporting > .v2-panels-3 { margin-top:18px; }

/* Tablet: the profile drops beneath a still-dominant conversation. */
@media (max-width:1180px) {
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-workspace {
    grid-template-columns:240px minmax(0,1fr);
    grid-template-areas:"list convo" "profile profile";
    height:auto;
  }
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-list { grid-area:list; }
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-convo { grid-area:convo; min-height:520px; }
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-profile { grid-area:profile; max-height:420px; }
}

/* Mobile: single column, conversation first in reading order. */
@media (max-width:720px) {
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-workspace {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"convo" "list" "profile";
  }
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-list { max-height:300px; }
  .v2-dir-open-body .v2-page[data-v2-page="crm"] .v2-crm-convo { min-height:460px; }
  .v2-crm-summary { padding:14px 16px; gap:14px; }
  .v2-crm-summary-facts { flex-basis:100%; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
}

@media (max-width: 1180px) {
  .v2-dir-page { gap:46px; }
}
@media (max-width: 900px) {
  .v2-dir-decision-facts { grid-template-columns:1fr; gap:12px; }
  .v2-dir-story-lead { font-size:17px; }
}
@media (max-width: 720px) {
  .v2-dir-page { gap:40px; }
  .v2-dir-brief { gap:16px; }
  .v2-dir-decision { padding:20px 18px; }
  .v2-dir-mission p { padding:16px 18px; font-size:15.5px; }
}
@media (max-width: 560px) {
  .v2-dir-moment-when { display:none; }
  .v2-dir-moment { gap:12px; }
}

/* ---- Premium Experience Final Pass ----------------------------------------
   Editorial rhythm, fewer boxes, subtle motion. No new colour token, no new
   breakpoint — this pass only refines what the Executive and Director bands
   already established. */

/* Soft loading. The owner is told what is happening, never shown a raw block. */
.v2-waking { display:flex; flex-direction:column; gap:16px; max-width:940px; animation:v2-rise .5s ease both; }
.v2-waking-line { margin:0 0 6px; color:var(--v2-text-muted); font-size:13px; letter-spacing:.01em; }
.v2-skeleton { border-radius:10px; background:linear-gradient(90deg, var(--v2-surface) 0%, var(--v2-surface-raised) 45%, var(--v2-surface) 90%); background-size:280% 100%; animation:v2-drift 2.4s ease-in-out infinite; }
.v2-waking .v2-skeleton-title { height:34px; max-width:520px; }
.v2-waking .v2-skeleton-line { height:15px; max-width:680px; }
.v2-waking .v2-skeleton-line.short { max-width:380px; }
@keyframes v2-drift { 0% { background-position:120% 0; } 100% { background-position:-40% 0; } }

/* The six standings, in one quiet voice. */
.v2-standing { margin:0; padding:16px 0 4px; color:var(--v2-text-muted); font-size:14px; line-height:1.75; max-width:68ch; }
.v2-standing-attention { color:var(--v2-text-secondary); }
.v2-standing-healthy::before, .v2-standing-empty::before, .v2-standing-waiting::before,
.v2-standing-done::before, .v2-standing-attention::before {
  content:''; display:inline-block; width:5px; height:5px; margin-right:10px; border-radius:50%;
  vertical-align:middle; background:var(--v2-text-disabled);
}
.v2-standing-healthy::before { background:var(--v2-success); }
.v2-standing-attention::before { background:var(--v2-warning); }
.v2-standing-waiting::before { background:var(--v2-info); }

/* Bands arrive rather than appear. */
.v2-exec-page > *, .v2-dir-page > * { animation:v2-rise .5s ease both; }
.v2-exec-page > *:nth-child(2), .v2-dir-page > *:nth-child(2) { animation-delay:.05s; }
.v2-exec-page > *:nth-child(3), .v2-dir-page > *:nth-child(3) { animation-delay:.1s; }
.v2-exec-page > *:nth-child(4), .v2-dir-page > *:nth-child(4) { animation-delay:.14s; }
.v2-exec-page > *:nth-child(n+5), .v2-dir-page > *:nth-child(n+5) { animation-delay:.18s; }
@keyframes v2-rise { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }

/* One dominant focus, one secondary, the rest recedes. */
.v2-nova-lead { font-size:27px; line-height:1.4; letter-spacing:-.022em; }
.v2-nova-focus { color:var(--v2-text-secondary); }
.v2-nova-close, .v2-nova-cost { color:var(--v2-text-muted); }
.v2-nova-cost { margin:0; font-size:13.5px; line-height:1.75; max-width:70ch; }
.v2-nova-full .v2-nova-lead { font-size:30px; }
.v2-nova-full .v2-nova-mark { width:52px; height:52px; }
.v2-nova-full .v2-nova-mark svg { width:25px; height:25px; }

/* Fewer boxes: the decision card keeps its edge, everything else loses one. */
.v2-desk.is-lead { background:linear-gradient(150deg, var(--v2-surface-raised), transparent 78%); border-color:var(--v2-surface-hover); }
.v2-dir-decision { border-color:transparent; border-left:2px solid var(--v2-primary-edge); border-radius:0 16px 16px 0; }
.v2-exec-call, .v2-desk, .v2-dir-controlled li { border-bottom-color:rgba(148,163,184,.10); }

/* Elevation and expansion, kept to a whisper. */
.v2-dir-decision, .v2-desk.is-lead, .v2-exec-call { transition:transform .26s ease, box-shadow .26s ease, background-color .26s ease, padding-left .26s ease; }
.v2-dir-decision:hover, .v2-desk.is-lead:hover { transform:translateY(-1px); box-shadow:0 12px 30px -22px rgba(0,0,0,.9); }
details > summary { transition:color .22s ease, opacity .22s ease; }
details[open] > summary { opacity:.72; }
details > div { animation:v2-unfold .3s ease both; }
@keyframes v2-unfold { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:none; } }

/* ONEAI Beta Gate 1 — Partner First Experience. The eight-step Welcome
   checklist NOVA shows a first-time partner, mounted first on NOVA Home. */
.v2-welcome-panel { }
.v2-welcome-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.v2-welcome-panel.is-collapsed .v2-welcome-head { align-items:center; }
.v2-welcome-steps { list-style:none; margin:16px 0 0; padding:0; }
.v2-welcome-step { display:flex; align-items:center; gap:14px; padding:12px 2px; border-bottom:1px solid rgba(148,163,184,.10); }
.v2-welcome-step:last-child { border-bottom:0; }
.v2-welcome-step-index { flex:0 0 22px; height:22px; border-radius:50%; border:1px solid var(--v2-line); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--v2-text-muted); }
.v2-welcome-step-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.v2-welcome-step-body b { font-size:13.5px; color:var(--v2-text-primary); }
@media (max-width: 560px) {
  .v2-welcome-step { flex-wrap:wrap; }
  .v2-welcome-step-body { flex:0 0 100%; order:1; }
}

/* NOVA's own room. */
.v2-nova-page { gap:56px; }
.v2-nova-band { display:block; }
.v2-nova-page[data-nova-alive-mode="true"] { display:grid; gap:16px; padding-top:24px; padding-bottom:24px; }
.v2-nova-voice { display:grid; grid-template-columns:minmax(210px,.65fr) minmax(0,1.35fr); gap:28px; align-items:center; padding:24px 28px; }
.v2-nova-voice h1 { margin:5px 0 0; font:400 clamp(34px,4vw,54px)/1 var(--v2-serif); letter-spacing:-.035em; }
.v2-nova-voice-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.v2-nova-voice-copy p { margin:0; color:var(--v2-text-secondary); font-size:13px; line-height:1.55; }
.v2-nova-voice-copy b { display:block; margin-bottom:5px; color:var(--v2-primary); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }

/* NOVA · Executive Decision Center — the single, dominant surface on the
   active NOVA page. Seven canonical questions, one ordered list, no status
   wall. The lead is the most important answer; the rest step back. */
.v2-exec-decision-center { padding:28px 32px; border:1px solid var(--v2-line); border-radius:18px; background:var(--v2-surface-raised); }
.v2-exec-decision-center .v2-exec-line { align-items:flex-start; gap:18px; padding-bottom:18px; }
.v2-exec-decision-center .v2-exec-line h2 { color:var(--v2-text-primary); text-transform:none; letter-spacing:0; font-size:22px; font-weight:500; }
.v2-exec-decision-center .v2-exec-line .v2-page-kicker { color:var(--v2-primary); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.v2-exec-questions { list-style:none; counter-reset:execq; margin:0; padding:0; }
.v2-exec-question { counter-increment:execq; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:24px; padding:18px 0; border-bottom:1px solid rgba(148,163,184,.10); align-items:start; }
.v2-exec-question:last-child { border-bottom:0; }
.v2-exec-question-label { color:var(--v2-text-primary); font-size:14px; font-weight:600; line-height:1.5; padding-left:34px; position:relative; }
.v2-exec-question-label::before { counter-increment:execq; content:counter(execq); position:absolute; left:0; top:1px; width:22px; height:22px; border:1px solid rgba(148,163,184,.32); border-radius:50%; color:var(--v2-text-muted); font:500 11px/20px var(--v2-mono,ui-monospace,monospace); text-align:center; letter-spacing:0; }
.v2-exec-question-answer { color:var(--v2-text-secondary); font-size:14px; line-height:1.6; min-width:0; overflow-wrap:anywhere; }
.v2-exec-question-answer .v2-exec-question-action { color:var(--v2-text-primary); font-weight:500; }
.v2-exec-decision-foot { display:flex; justify-content:flex-end; margin-top:14px; padding-top:14px; border-top:1px solid rgba(148,163,184,.10); }
.v2-runtime-coordination { padding:24px 28px; border:1px solid var(--v2-line); border-radius:18px; background:var(--v2-surface); }
.v2-runtime-coordination .v2-exec-line { align-items:flex-start; gap:18px; padding-bottom:16px; }
.v2-runtime-coordination .v2-exec-line h2 { color:var(--v2-text-primary); text-transform:none; letter-spacing:0; font-size:18px; font-weight:550; }
.v2-runtime-coordination .v2-exec-line p { margin:6px 0 0; }
.v2-runtime-progression-wrap { padding:16px 0 18px; border-bottom:1px solid rgba(148,163,184,.10); }
.v2-runtime-progression { display:flex; gap:0; list-style:none; margin:12px 0 0; padding:0; overflow-x:auto; }
.v2-runtime-progression li { min-width:118px; flex:1 0 118px; padding:10px 12px; border-top:2px solid rgba(148,163,184,.22); border-right:1px solid rgba(148,163,184,.10); background:rgba(15,23,42,.18); }
.v2-runtime-progression li:first-child { border-radius:10px 0 0 10px; }
.v2-runtime-progression li:last-child { border-right:0; border-radius:0 10px 10px 0; }
.v2-runtime-progression-stage, .v2-runtime-progression-director, .v2-runtime-progression small { display:block; overflow-wrap:anywhere; }
.v2-runtime-progression-stage { color:var(--v2-text-primary); font-size:12px; font-weight:600; }
.v2-runtime-progression-director { margin-top:4px; color:var(--v2-text-muted); font-size:11px; }
.v2-runtime-progression small { margin-top:7px; color:var(--v2-text-disabled); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.v2-runtime-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:18px 0; }
.v2-runtime-columns > section > header, .v2-runtime-blockers > header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:8px; }
.v2-runtime-item { padding:14px 0; border-bottom:1px solid rgba(148,163,184,.10); }
.v2-runtime-item:last-child { border-bottom:0; }
.v2-runtime-item > header, .v2-runtime-result > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.v2-runtime-item > header div, .v2-runtime-result > header div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.v2-runtime-item > header b, .v2-runtime-result > header b { color:var(--v2-text-primary); font-size:13px; overflow-wrap:anywhere; }
.v2-runtime-item dl { display:grid; gap:8px; margin:13px 0 0; }
.v2-runtime-item dl div { padding-top:8px; border-top:1px solid rgba(148,163,184,.08); }
.v2-runtime-item dt { color:var(--v2-text-disabled); font-size:9px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.v2-runtime-item dd { margin:3px 0 0; color:var(--v2-text-secondary); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.v2-runtime-item-link { margin-top:10px; font-size:11px; }
.v2-runtime-blockers { padding:16px 0; border-top:1px solid rgba(148,163,184,.10); }
.v2-runtime-blocker { display:grid; gap:4px; padding:11px 12px; margin-top:8px; border-left:2px solid var(--v2-text-danger,#f87171); background:rgba(239,68,68,.06); }
.v2-runtime-blocker b { color:var(--v2-text-primary); font-size:12px; }
.v2-runtime-blocker span, .v2-runtime-blocker small { color:var(--v2-text-secondary); font-size:12px; line-height:1.45; }
.v2-runtime-result { padding:16px 0; border-top:1px solid rgba(148,163,184,.10); }
.v2-runtime-result p { margin:9px 0 0; color:var(--v2-text-secondary); font-size:13px; line-height:1.55; }
.v2-runtime-resume { margin-top:14px; padding:14px 16px; border-left:2px solid var(--v2-primary); background:rgba(99,102,241,.07); }
.v2-runtime-resume p { margin:6px 0 0; color:var(--v2-text-secondary); font-size:13px; line-height:1.5; }
.v2-runtime-idle { margin:0; color:var(--v2-text-secondary); font-size:14px; }
@media (max-width: 720px) {
  .v2-exec-decision-center { padding:22px 18px; }
  .v2-exec-question { grid-template-columns:1fr; gap:6px; }
  .v2-exec-question-label { padding-left:30px; }
  .v2-runtime-coordination { padding:20px 18px; }
  .v2-runtime-columns { grid-template-columns:1fr; gap:0; }
  .v2-runtime-columns > section + section { padding-top:16px; border-top:1px solid rgba(148,163,184,.10); }
}

.v2-nova-office-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.v2-nova-office-grid > article { min-width:0; }
.v2-nova-office-grid .v2-card-head { margin-bottom:12px; }
.v2-nova-office-grid .v2-compact-row { grid-template-columns:auto minmax(120px,.7fr) minmax(0,1.3fr); padding:9px 0; align-items:start; }
.v2-nova-office-grid .v2-compact-row > b, .v2-nova-office-grid .v2-compact-row > span { min-width:0; overflow-wrap:anywhere; line-height:1.45; }
.v2-nova-office-grid .v2-compact-row > small { grid-column:2 / -1; min-width:0; overflow-wrap:anywhere; line-height:1.45; }
.v2-nova-usage dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; }
.v2-nova-usage dl > div { padding:13px 14px; border:1px solid var(--v2-line); border-radius:12px; background:var(--v2-surface-raised); }
.v2-nova-usage dt { color:var(--v2-muted); font-size:10px; }
.v2-nova-usage dd { margin:7px 0 0; color:var(--v2-ink); font:400 20px var(--v2-serif); }
.v2-nova-interaction .v2-nova-chat-log:empty { display:none; }
.v2-nova-interaction .v2-nova-chat-context { margin:0 0 9px; }
.v2-office-navigation .v2-card-head { margin-bottom:12px; }
.v2-office-links { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.v2-office-link-card { min-width:0; min-height:72px; display:flex; flex-direction:column; justify-content:center; gap:5px; padding:13px 14px; border:1px solid var(--v2-line); border-radius:12px; color:var(--v2-ink); background:var(--v2-surface-raised); text-decoration:none; }
.v2-office-link-card:hover { border-color:var(--v2-border-active); background:var(--v2-surface-hover); }
.v2-office-link-card b { font-size:11.5px; }
.v2-office-link-card span { color:var(--v2-muted); font-size:9.5px; line-height:1.35; }
.v2-nova-team { list-style:none; margin:0; padding:0; }
.v2-nova-teamline { display:flex; align-items:flex-start; gap:16px; padding:16px 2px; border-bottom:1px solid rgba(148,163,184,.10); transition:padding-left .24s ease; }
.v2-nova-teamline:hover { padding-left:8px; }
.v2-nova-teamname { flex:0 0 92px; color:var(--v2-text-primary); font-size:13.5px; font-weight:640; }
.v2-nova-teamsay { flex:1; min-width:0; color:var(--v2-text-muted); font-size:13px; line-height:1.65; }
.v2-nova-teamline.is-calling .v2-nova-teamsay { color:var(--v2-text-secondary); }
/* Experience Sprint 2 · Director Summary — each Director line reports its
   priority, today's actions, expected impact, and the owner decision when one
   is needed. The data comes from the same desk report and narratives this page
   already renders; this block only lays the fields out. */
.v2-nova-summary { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.v2-nova-summary-head { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.v2-nova-summary-row { display:flex; gap:8px; margin:0; color:var(--v2-text-muted); font-size:13px; line-height:1.6; }
.v2-nova-summary-row em { flex:0 0 92px; font-style:normal; color:var(--v2-text-muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.v2-nova-summary-row b { flex:1; min-width:0; color:var(--v2-text-secondary); font-weight:520; }
.v2-nova-summary-decision b { color:var(--v2-text-warning, #d97706); }
.v2-nova-teamline.is-calling .v2-nova-summary-decision b { color:var(--v2-text-danger, #f87171); }

/* Experience Sprint 1 · AI Dispatch Center — NOVA as Chief of Staff. The
   owner submits ONE goal; NOVA dispatches it to the Directors. The timeline
   renders the server-owned /api/nova/dispatch contract verbatim. */
.v2-dispatch-composer { display:flex; gap:10px; margin-top:12px; align-items:stretch; }
.v2-dispatch-composer textarea {
  flex:1; min-width:0; resize:vertical; min-height:58px;
  padding:10px 12px; border:1px solid var(--v2-line); border-radius:8px;
  background:var(--v2-bg-surface, rgba(255,255,255,.03));
  color:var(--v2-text-primary); font:inherit; font-size:13.5px; line-height:1.5;
}
.v2-dispatch-composer textarea:focus { outline:none; border-color:var(--v2-accent, #7c6cf0); }
.v2-dispatch-run { align-self:flex-end; white-space:nowrap; }
.v2-dispatch-note { margin-top:10px; }
.v2-dispatch-error { color:var(--v2-text-danger, #f87171); }
.v2-dispatch-result { margin-top:16px; }
.v2-dispatch-understanding { margin:0 0 10px; color:var(--v2-text-secondary); }
.v2-dispatch-understanding strong { color:var(--v2-text-primary); }
.v2-dispatch-timeline { list-style:none; margin:0; padding:0; }
.v2-dispatch-step {
  position:relative; display:flex; gap:14px; padding:12px 2px;
  border-bottom:1px solid rgba(148,163,184,.10);
}
.v2-dispatch-step:last-child { border-bottom:0; }
.v2-dispatch-step-index {
  flex:0 0 24px; height:24px; margin-top:1px; border-radius:50%;
  border:1px solid var(--v2-line); display:flex; align-items:center;
  justify-content:center; font-size:11px; color:var(--v2-text-muted);
}
.v2-dispatch-step[data-dispatch-status="completed"] .v2-dispatch-step-index {
  border-color:var(--v2-text-success, #4ade80); color:var(--v2-text-success, #4ade80);
}
.v2-dispatch-step[data-dispatch-status="blocked"] .v2-dispatch-step-index {
  border-color:var(--v2-text-danger, #f87171); color:var(--v2-text-danger, #f87171);
}
.v2-dispatch-step-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.v2-dispatch-step-head { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
.v2-dispatch-step-head > strong { font-size:13.5px; color:var(--v2-text-primary); }
.v2-dispatch-step-role { font-size:12px; }
.v2-dispatch-step-action { margin:0; color:var(--v2-text-secondary); font-size:13px; }
.v2-dispatch-evidence { display:flex; gap:6px; flex-wrap:wrap; margin:4px 0 0; }
.v2-dispatch-chip {
  font-size:11px; padding:2px 8px; border-radius:999px;
  background:var(--v2-bg-surface, rgba(255,255,255,.03));
  border:1px solid var(--v2-line); color:var(--v2-text-muted);
}
.v2-dispatch-chip strong { color:var(--v2-text-secondary); }
.v2-dispatch-summary { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
@media (max-width: 560px) {
  .v2-nova-page[data-nova-alive-mode="true"] { gap:12px; padding-top:16px; padding-bottom:16px; }
  .v2-nova-voice, .v2-nova-voice-copy, .v2-nova-office-grid, .v2-nova-usage dl, .v2-office-links { grid-template-columns:1fr; }
  .v2-nova-office-grid .v2-compact-row { grid-template-columns:auto minmax(0,1fr); }
  .v2-nova-office-grid .v2-compact-row > .v2-compact-mark { grid-column:1; grid-row:1 / span 3; }
  .v2-nova-office-grid .v2-compact-row > b { grid-column:2; grid-row:1; }
  .v2-nova-office-grid .v2-compact-row > span:not(.v2-compact-mark) { grid-column:2; grid-row:2; }
  .v2-nova-office-grid .v2-compact-row > small { grid-column:2; grid-row:3; }
  .v2-nova-office-grid .v2-card-head { align-items:flex-start; flex-direction:column; }
  .v2-nova-voice { gap:18px; padding:20px; }
  .v2-nova-voice-copy { gap:14px; }
  .v2-office-link-card { min-height:60px; }
  .v2-dispatch-composer { flex-direction:column; }
  .v2-dispatch-run { align-self:stretch; }
}

/* Long sessions: quieter rules, calmer type, less repetition on screen. */
.v2-exec-line { border-bottom-color:rgba(148,163,184,.12); }
.v2-exec-line h2 { font-size:14px; font-weight:600; color:var(--v2-text-muted); text-transform:uppercase; letter-spacing:.11em; }
.v2-dir-page .v2-page-kicker, .v2-exec-page .v2-page-kicker { letter-spacing:.14em; }

@media (prefers-reduced-motion: reduce) {
  .v2-exec-page > *, .v2-dir-page > *, .v2-waking, details > div, .v2-skeleton { animation:none; }
  .v2-dir-decision, .v2-desk.is-lead, .v2-exec-call, .v2-nova-teamline { transition:none; }
  .v2-dir-decision:hover, .v2-desk.is-lead:hover { transform:none; }
}
@media (max-width: 900px) {
  .v2-nova-full .v2-nova-lead { font-size:24px; }
}
@media (max-width: 720px) {
  .v2-nova-page { gap:44px; }
  .v2-nova-teamline { flex-wrap:wrap; gap:6px 14px; }
  .v2-nova-teamname { flex:0 0 auto; }
  .v2-nova-summary-row em { flex:0 0 auto; min-width:64px; }
}
@media (max-width: 560px) {
  .v2-nova-full .v2-nova-lead { font-size:21px; }
  .v2-nova-lead { font-size:20px; }
}

/* Long-session legibility: nothing the owner must read drops below 11px, and
   the uppercase micro-labels gain the tracking they need at that size. */
.v2-exec-page, .v2-dir-page {
  --v2-label-size:11px;
}
.v2-exec-page .v2-page-kicker, .v2-dir-page .v2-page-kicker,
.v2-nova-ident em, .v2-desk-who em,
.v2-exec-stats dt, .v2-dir-decision-facts dt,
.v2-exec-story-label, .v2-dir-moment-when,
.v2-desk-when, .v2-nova-meta, .v2-dir-more summary,
.v2-exec-line-note, .v2-desk-more summary {
  font-size:var(--v2-label-size);
  letter-spacing:.08em;
}
.v2-dir-decision-facts dd, .v2-exec-call-body small, .v2-nova-teamsay,
.v2-dir-controlled span, .v2-dir-moment-body em, .v2-desk-ask-clear {
  font-size:12.5px;
}
.v2-exec-page .v2-detail-row span, .v2-dir-page .v2-detail-row span,
.v2-exec-page .v2-detail-row b, .v2-dir-page .v2-detail-row b { font-size:12px; }
.v2-exec-page .v2-status-badge, .v2-dir-page .v2-status-badge,
.v2-exec-page .v2-badge, .v2-dir-page .v2-badge { font-size:11px; letter-spacing:.06em; padding:5px 11px; }

/* ---- Revenue Directors v1.0 ------------------------------------------------
   Marketing and Sales share the Director rhythm; the revenue band adds only a
   claims list and reuses every existing component around it. */
.v2-rev-band { display:block; }
.v2-rev-claims-label { margin:18px 0 8px; color:var(--v2-text-disabled); font-size:11px; text-transform:uppercase; letter-spacing:.09em; }
.v2-rev-claims { list-style:none; margin:0 0 18px; padding:0; }
.v2-rev-claims li { padding:11px 0 11px 18px; position:relative; color:var(--v2-text-secondary); font-size:13.5px; line-height:1.7; border-bottom:1px solid rgba(148,163,184,.10); }
.v2-rev-claims li::before { content:''; position:absolute; left:0; top:19px; width:5px; height:5px; border-radius:50%; background:var(--v2-success); }
.v2-revenue-loop { margin:18px 0 4px; border-top:1px solid rgba(148,163,184,.10); }
.v2-revenue-loop .v2-detail-row { min-height:44px; }
.v2-revenue-loop .v2-detail-row b { max-width:62ch; text-align:right; }
.v2-revenue-trace { margin-top:16px; }
.v2-revenue-coordination .v2-detail-row b { max-width:62ch; }
@media (max-width: 560px) {
  .v2-revenue-loop .v2-detail-row { display:block; padding:10px 0; }
  .v2-revenue-loop .v2-detail-row b { display:block; margin-top:4px; text-align:left; }

  /* NOVA chat at 390px: the composer stacks so a long Send label can never
     push the textarea past the viewport. Reuses the existing 560 breakpoint —
     no new breakpoint block (ADR-069). */
  .v2-nova-chat-composer { flex-direction:column; align-items:stretch; }
  .v2-nova-chat-composer .v2-button { width:100%; }
  .v2-nova-chat-log { max-height:300px; }
  .v2-nova-chat-log .v2-message-body { overflow-wrap:anywhere; word-break:break-word; }
}

/* ════════════════════════════════════════════════════════════════════════
   OPERATING COMPANY HEADQUARTERS DESIGN SYSTEM
   ════════════════════════════════════════════════════════════════════════ */
.v2-hq-page {
  display: flex;
  flex-direction: column;
  gap: var(--v2-major-section-gap);
  padding-bottom: 60px;
}

/* Layer 1 — NOVA CEO Brief */
.v2-ceo-brief {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.8), rgba(30, 41, 59, 0.5));
  border: 1px solid rgba(99, 102, 241, 0.25);
  border-radius: var(--v2-radius-lg);
  padding: 28px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.v2-ceo-brief-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.v2-ceo-brief-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.v2-ceo-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--v2-text-primary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.v2-ceo-title em {
  font-style: normal;
  font-weight: 400;
  font-size: 13px;
  color: var(--v2-text-muted);
}

.v2-ceo-status {
  font-size: 12px;
  color: var(--v2-success);
  display: flex;
  align-items: center;
  gap: 6px;
}

.v2-ceo-brief-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.v2-ceo-greeting {
  font-size: 18px;
  line-height: 1.5;
  color: var(--v2-text-primary);
  margin: 0;
}

.v2-ceo-recap {
  font-size: 14px;
  line-height: 1.6;
  color: var(--v2-text-secondary);
  margin: 0;
}

.v2-ceo-focus-block {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.v2-ceo-focus-item span {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--v2-text-muted);
  margin-bottom: 4px;
}

.v2-ceo-focus-item p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--v2-text-primary);
}

/* Layer 2 — Company Pulse */
.v2-company-pulse {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.v2-pulse-item {
  background: var(--v2-surface);
  border: 1px solid var(--v2-border);
  border-radius: var(--v2-radius-md);
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  transition: border-color 0.2s ease, transform 0.15s ease;
}

.v2-pulse-item:hover {
  border-color: var(--v2-primary-edge);
  transform: translateY(-2px);
}

.v2-pulse-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--v2-text-muted);
}

.v2-pulse-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--v2-text-primary);
}

.v2-pulse-sub {
  font-size: 12px;
  color: var(--v2-text-muted);
}

/* Layer 3 — Owner Decision Spot & Department Floor */
.v2-owner-decision-spot {
  display: block;
}

.v2-decision-empty {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: var(--v2-radius-md);
  color: var(--v2-text-primary);
  font-size: 13.5px;
}

.v2-decision-empty span {
  color: var(--v2-text-muted);
  font-size: 12px;
  display: block;
}

.v2-dept-floor {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.v2-dept-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
}

.v2-dept-tile {
  background: var(--v2-surface);
  border: 1px solid var(--v2-border);
  border-radius: var(--v2-radius-md);
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  transition: border-color 0.2s ease;
}

.v2-dept-tile:hover {
  border-color: var(--v2-border-strong);
}

.v2-dept-tile-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.v2-dept-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--v2-radius-xs);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v2-primary);
}

.v2-dept-icon svg {
  width: 20px;
  height: 20px;
}

.v2-dept-title-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.v2-dept-title-group strong {
  font-size: 14.5px;
  color: var(--v2-text-primary);
}

.v2-dept-title-group span {
  font-size: 12px;
  color: var(--v2-text-muted);
}

.v2-dept-tile-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  color: var(--v2-text-secondary);
}

.v2-dept-tile-foot {
  display: flex;
  justify-content: flex-end;
}

/* Layer 4 — Executive Command Bar & Chips */
.v2-command-bar-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.v2-command-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.v2-command-chip {
  background: rgba(99, 102, 241, 0.08);
  border: 1px solid rgba(99, 102, 241, 0.25);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  color: var(--v2-text-primary);
  cursor: pointer;
  transition: all 0.15s ease;
}

.v2-command-chip:hover {
  background: var(--v2-primary);
  border-color: var(--v2-primary);
  color: #ffffff;
}

@media (max-width: 900px) {
  .v2-company-pulse {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .v2-company-pulse {
    grid-template-columns: 1fr;
  }
  .v2-dept-grid {
    grid-template-columns: 1fr;
  }
}
