/* solveza-design-system.css — the single source of truth for Solveza's look.
   Every view imports this and uses these tokens + component classes.
   Light editorial "ezine" by default; flip [data-theme="dark"] for a clean dark dashboard.
   Mobile-first. Two font weights. No gradients/neon. */

:root {
  /* Surfaces */
  --sv-bg: #FBFAF7;            /* page (warm cream) */
  --sv-surface: #FFFFFF;       /* cards */
  --sv-surface-2: #F4F2EC;     /* quiet panels */
  --sv-line: rgba(20,20,20,.10);
  --sv-line-strong: rgba(20,20,20,.18);

  /* Ink */
  --sv-ink: #1A1A18;           /* headings/body */
  --sv-muted: #5C5B55;         /* secondary */
  --sv-faint: #8A887F;         /* hints/timestamps */

  /* Accent (per-state themeable: set --sv-accent on the page) */
  --sv-accent: #0B3D5C;        /* deep editorial blue */
  --sv-accent-soft: #E7EEF3;
  --sv-accent-ink: #0B3D5C;
  --sv-warn: #854F0B; --sv-warn-soft:#FAEEDA;
  --sv-danger:#A32D2D; --sv-danger-soft:#FCEBEB;
  --sv-ok:#0F6E56; --sv-ok-soft:#E1F5EE;

  /* Type */
  --sv-serif: "Charter","Iowan Old Style","Georgia",serif;       /* headlines */
  --sv-sans: ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sv-mono: ui-monospace,"SF Mono",Menlo,monospace;
  --sv-fs-hero: clamp(28px,4vw,44px);
  --sv-fs-h2: clamp(20px,2.4vw,26px);
  --sv-fs-h3: 18px;
  --sv-fs-body: 16px;
  --sv-fs-sm: 14px;
  --sv-fs-xs: 12px;
  --sv-lh: 1.6;

  /* Spacing / shape */
  --sv-1:4px; --sv-2:8px; --sv-3:12px; --sv-4:16px; --sv-5:24px; --sv-6:32px; --sv-8:48px;
  --sv-r: 10px; --sv-r-lg: 16px; --sv-r-pill: 999px;
  --sv-shadow: 0 1px 2px rgba(20,20,20,.04), 0 2px 8px rgba(20,20,20,.05);
  --sv-nav-w: 248px;
  --sv-maxw: 1200px;
}
[data-theme="dark"]{
  --sv-bg:#0E0F11; --sv-surface:#16181B; --sv-surface-2:#1C1F23;
  --sv-line:rgba(255,255,255,.10); --sv-line-strong:rgba(255,255,255,.18);
  --sv-ink:#ECEAE4; --sv-muted:#A9A7A0; --sv-faint:#7C7A73;
  --sv-accent:#5FA8D3; --sv-accent-soft:#13283A; --sv-accent-ink:#9FD0EC;
}

/* Base */
.sv-root{ background:var(--sv-bg); color:var(--sv-ink); font-family:var(--sv-sans);
  font-size:var(--sv-fs-body); line-height:var(--sv-lh); -webkit-font-smoothing:antialiased;
  overflow-x:hidden; max-width:100%; }
.sv-root h1,.sv-root h2,.sv-root h3{ font-family:var(--sv-serif); font-weight:500; line-height:1.2; margin:0; color:var(--sv-ink); }
.sv-root h1{ font-size:var(--sv-fs-hero); } .sv-root h2{ font-size:var(--sv-fs-h2); } .sv-root h3{ font-size:var(--sv-fs-h3); }
.sv-muted{ color:var(--sv-muted); } .sv-faint{ color:var(--sv-faint); font-size:var(--sv-fs-xs); }

/* App shell — Supabase-style: collapsible left nav + content. Mobile: nav is a drawer. */
.sv-app{ display:grid; grid-template-columns:var(--sv-nav-w) 1fr; min-height:100vh; max-width:100%; overflow-x:hidden; }
.sv-app[data-nav="expanded"]{ grid-template-columns:var(--sv-nav-w) 1fr; }
@media (min-width:861px){
  /* Desktop always uses full 248px rail (never the legacy 64px mini-column) */
  .sv-app[data-nav="collapsed"]{ grid-template-columns:var(--sv-nav-w) 1fr; }
}
.sv-nav{ background:var(--sv-surface); border-right:1px solid var(--sv-line); padding:var(--sv-4); position:sticky; top:0; height:100vh; overflow:auto; }
.sv-main{ padding:var(--sv-5); max-width:var(--sv-maxw); margin:0 auto; width:100%; }
.sv-navitem{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:var(--sv-r); color:var(--sv-muted); cursor:pointer; font-size:var(--sv-fs-sm); min-height:44px; border:0; background:transparent; width:100%; text-align:left; white-space:normal; }
.sv-navitem > span{ flex:1; min-width:0; }
.sv-navitem[aria-current="true"], .sv-navitem:hover{ background:var(--sv-surface-2); color:var(--sv-ink); }
.sv-hamburger{ display:none; min-height:44px; min-width:44px; justify-content:center; }
@media (max-width: 860px){
  /* Nav is position:fixed on mobile (out of grid flow) — never reserve a 64px collapsed rail or main lands in a ~64px column */
  .sv-app,
  .sv-app[data-nav="collapsed"],
  .sv-app[data-nav="open"]{ grid-template-columns:1fr; }
  .sv-nav{ position:fixed; inset:0 auto 0 0; width:84vw; max-width:320px; transform:translateX(-100%); transition:transform .2s; z-index:50; }
  .sv-app[data-nav="open"] .sv-nav{ transform:none; }
  .sv-hamburger{ display:inline-flex; }
  .sv-main{ padding:var(--sv-4); grid-column:1 / -1; width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
}

/* Components */
.sv-card{ background:var(--sv-surface); border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); padding:var(--sv-4); }
.sv-card-quiet{ background:var(--sv-surface-2); border:0; border-radius:var(--sv-r); padding:var(--sv-3); }
.sv-grid{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; }
@media (min-width:600px){ .sv-grid{ grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); } }
.sv-section{ margin:var(--sv-6) 0 var(--sv-3); }
.sv-btn{ display:inline-flex; align-items:center; gap:6px; font:500 var(--sv-fs-sm)/1 var(--sv-sans);
  padding:9px 14px; border-radius:var(--sv-r); border:1px solid var(--sv-line-strong); background:transparent; color:var(--sv-ink); cursor:pointer; min-height:44px; }
.sv-btn:hover{ background:var(--sv-surface-2); } .sv-btn:active{ transform:scale(.98); }
.sv-btn-primary{ background:var(--sv-accent); border-color:var(--sv-accent); color:#fff; }
.sv-chip{ display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:var(--sv-r-pill);
  background:var(--sv-surface-2); color:var(--sv-muted); font-size:var(--sv-fs-xs); border:1px solid var(--sv-line); min-height:44px; }
.sv-tag{ font-size:11px; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:var(--sv-r);
  background:var(--sv-accent-soft); color:var(--sv-accent-ink); }
.sv-badge-live{ color:var(--sv-ok); font-size:var(--sv-fs-xs); }

/* Story / feature card (the ezine unit — Afar photo-forward) */
.sv-story{ background:var(--sv-surface); border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); overflow:clip;
  width:100%; max-width:100%; min-width:0; box-sizing:border-box; display:flex; flex-direction:column; }
.sv-story-link{ text-decoration:none; color:inherit; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.sv-story-link:hover,.sv-story:hover{ border-color:var(--sv-line-strong); box-shadow:var(--sv-shadow); }
.sv-story-body{ padding:var(--sv-4); min-width:0; max-width:100%; box-sizing:border-box; flex:1; }
.sv-story h2,.sv-story h3,.sv-hero h2{ font-family:var(--sv-serif); overflow-wrap:break-word; word-break:normal; hyphens:auto; max-width:100%; }
.sv-story h3{ margin:8px 0 6px; }
.sv-story-meta{ font-size:var(--sv-fs-xs); color:var(--sv-faint); display:block; margin-top:4px; }
.sv-hero h2{ font-size:var(--sv-fs-hero); margin-bottom:8px; line-height:1.25; }

/* Photo media */
.sv-story-img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--sv-surface-2);
  border-radius:var(--sv-r-lg) var(--sv-r-lg) 0 0; }
.sv-story-photo-fallback{ width:100%; aspect-ratio:16/9; background:var(--sv-accent-soft); display:flex; align-items:flex-end;
  padding:var(--sv-4); border-radius:var(--sv-r-lg) var(--sv-r-lg) 0 0; box-sizing:border-box; }
.sv-hero-photo{ width:100%; margin:0 0 var(--sv-2); border-radius:var(--sv-r-lg); overflow:clip; }
.sv-hero-photo .sv-story-img,.sv-hero-photo-img{ aspect-ratio:16/9; max-height:min(52vh,520px); border-radius:var(--sv-r-lg); }
.sv-hero-photo .sv-story-photo-fallback{ aspect-ratio:16/9; max-height:min(52vh,520px); border-radius:var(--sv-r-lg); }
.sv-hero-photo-caption{ padding-top:var(--sv-3); }

/* Top bar / breaking ribbon / intelligence strip */
.sv-topbar{ display:flex; align-items:center; gap:12px; padding-bottom:var(--sv-3); border-bottom:1px solid var(--sv-line); flex-wrap:wrap; }
.sv-topbar .sv-search{ flex:1 1 200px; min-width:0; }
@media (max-width:860px){ .sv-topbar .sv-search{ flex:1 1 100%; max-width:100%; } }
.sv-ribbon{ display:flex; align-items:center; gap:10px; background:var(--sv-surface-2); border-radius:var(--sv-r); padding:8px 12px; font-size:var(--sv-fs-sm); color:var(--sv-muted); overflow:hidden; }
.sv-strip{ display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); margin:var(--sv-4) 0; }
.sv-metric{ background:var(--sv-surface-2); border-radius:var(--sv-r); padding:12px; }
.sv-metric-link{ text-decoration:none; color:inherit; display:block; transition:border-color .15s, box-shadow .15s; border:1px solid transparent; }
.sv-metric-link:hover{ border-color:var(--sv-line-strong); box-shadow:var(--sv-shadow); }
.sv-metric-label{ font-size:var(--sv-fs-xs); color:var(--sv-muted); } .sv-metric-value{ font-size:20px; font-weight:500; }
.sv-metric-sub{ font-size:var(--sv-fs-xs); margin-top:4px; line-height:1.35; }

/* Empty/loading — never an infinite void */
.sv-empty{ padding:var(--sv-6); text-align:center; color:var(--sv-muted); }
.sv-skeleton{ background:var(--sv-surface-2); border-radius:var(--sv-r); height:14px; animation:svpulse 1.2s ease-in-out infinite; }
@keyframes svpulse{ 0%,100%{opacity:.6} 50%{opacity:1} }

/* Search */
.sv-search-wrap{ margin-bottom:var(--sv-4); }
.sv-search{ width:100%; max-width:480px; padding:10px 14px; border:1px solid var(--sv-line-strong);
  border-radius:var(--sv-r); font:var(--sv-fs-body)/1.4 var(--sv-sans); background:var(--sv-surface); color:var(--sv-ink); min-height:44px; box-sizing:border-box; }
.sv-search:focus{ outline:2px solid var(--sv-accent-soft); border-color:var(--sv-accent); }

/* Collapsible sections */
.sv-collapse{ border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); margin-bottom:var(--sv-3); overflow:hidden; background:var(--sv-surface); }
.sv-collapse > summary{ list-style:none; cursor:pointer; padding:var(--sv-3) var(--sv-4); font-weight:500; font-size:var(--sv-fs-sm);
  display:flex; align-items:center; justify-content:space-between; gap:var(--sv-2); min-height:44px; }
.sv-collapse > summary::-webkit-details-marker{ display:none; }
.sv-collapse[open] > summary{ border-bottom:1px solid var(--sv-line); background:var(--sv-surface-2); }
.sv-collapse-body{ padding:var(--sv-4); }

/* Tool / resource cards */
.sv-tool-grid{ display:grid; gap:var(--sv-3); grid-template-columns:1fr; }
@media (min-width:600px){ .sv-tool-grid{ grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); } }
.sv-tool-card{ background:var(--sv-surface); border:1px solid var(--sv-line); border-radius:var(--sv-r); padding:var(--sv-4);
  display:flex; flex-direction:column; gap:var(--sv-2); min-height:110px; }
.sv-tool-card h4{ font-family:var(--sv-sans); font-size:var(--sv-fs-body); font-weight:600; margin:0; line-height:1.3; }
.sv-tool-desc{ font-size:var(--sv-fs-sm); color:var(--sv-muted); margin:0; flex:1; }
.sv-tool-actions{ display:flex; gap:var(--sv-2); margin-top:var(--sv-2); flex-wrap:wrap; }
.sv-verified{ color:var(--sv-ok); font-size:var(--sv-fs-xs); display:inline-flex; align-items:center; gap:4px; }
.sv-btn-sm{ padding:7px 12px; font-size:var(--sv-fs-xs); min-height:44px; }

/* Alaska category nav — publication sections, not pills */
.sv-category-nav{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sv-2) var(--sv-5);
  padding:var(--sv-3) 0 var(--sv-4); margin-bottom:var(--sv-2); border-bottom:1px solid var(--sv-line); }
.sv-category-link{ display:inline-flex; align-items:center; min-height:44px; padding:0 0 4px; border:0; border-radius:0;
  background:transparent; font:inherit; font-size:var(--sv-fs-sm); font-weight:500; color:var(--sv-muted); cursor:pointer;
  border-bottom:2px solid transparent; transition:color .15s, border-color .15s; }
.sv-category-link:hover{ color:var(--sv-ink); }
.sv-category-link[aria-current="page"]{ color:var(--sv-ink); border-bottom-color:var(--sv-accent); }
.sv-navitem--category[aria-current="page"]{ font-weight:600; }

/* Feed / magazine grid — photo-forward rhythm */
.sv-feed-grid,.sv-feed-photo-grid{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; width:100%; min-width:0; }
@media (min-width:600px){ .sv-feed-photo-grid{ grid-template-columns:repeat(2,1fr); gap:var(--sv-3); } }
@media (min-width:960px){ .sv-feed-photo-grid{ grid-template-columns:repeat(3,1fr); gap:var(--sv-4); } }
.sv-feed-photo-grid .sv-story-span2{ grid-column:span 2; }
@media (max-width:599px){ .sv-feed-photo-grid .sv-story-span2{ grid-column:span 1; } }
.sv-feed-lead{ margin-bottom:var(--sv-5); width:100%; max-width:100%; min-width:0; }
.sv-feed-lead h2,.sv-feed-lead .sv-hero-photo-caption h2{ font-size:var(--sv-fs-h2); }
@media (max-width:480px){
  .sv-hero h2,.sv-feed-lead h2{ font-size:clamp(22px,6.5vw,26px); }
  .sv-story h3{ font-size:17px; line-height:1.3; }
  .sv-root h1{ font-size:clamp(24px,7vw,32px); }
}

/* Module sections (state terminal) */
.sv-mod-grid{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; }
@media (min-width:768px){ .sv-mod-grid{ grid-template-columns:repeat(2,1fr); } }
.sv-mod-card .sv-mod-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sv-3); margin-bottom:var(--sv-3); }
.sv-mod-span-full{ grid-column:1 / -1; }

/* Reader pane + Story Intelligence panel */
.sv-reader{ background:var(--sv-surface); border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); padding:var(--sv-5); margin-top:var(--sv-5); }
.sv-reader-empty{ text-align:center; padding:var(--sv-6); color:var(--sv-muted); }
.sv-reader-title{ margin-top:8px; font-size:clamp(20px,2.6vw,28px); line-height:1.25; }
.sv-reader-actions{ margin-top:var(--sv-4); padding-top:var(--sv-3); border-top:1px solid var(--sv-line); }
.sv-intel-panel{ margin-top:var(--sv-4); padding-top:var(--sv-4); border-top:1px solid var(--sv-line); }
.sv-intel-section{ margin-top:var(--sv-4); }
.sv-intel-section:first-child{ margin-top:0; }
.sv-intel-section-title{ font-family:var(--sv-sans); font-size:var(--sv-fs-xs); font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--sv-muted); margin:0 0 var(--sv-2); }
.sv-intel-section-body{ font-size:var(--sv-fs-sm); color:var(--sv-ink); line-height:1.55; }
.sv-intel-lead{ font-family:var(--sv-serif); font-size:var(--sv-fs-body); line-height:1.5; margin:0; }
.sv-intel-facts{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sv-2); }
.sv-intel-fact{ display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sv-3); flex-wrap:wrap; padding:var(--sv-2) 0; border-bottom:1px solid var(--sv-line); }
.sv-intel-fact:last-child{ border-bottom:0; }
.sv-intel-source-chip{ flex-shrink:0; font-size:var(--sv-fs-xs); padding:4px 10px; border-radius:var(--sv-r-pill); border:1px solid var(--sv-line-strong); color:var(--sv-accent-ink); text-decoration:none; min-height:32px; display:inline-flex; align-items:center; }
.sv-intel-source-chip:hover{ background:var(--sv-accent-soft); }
.sv-intel-timeline{ list-style:none; margin:0; padding:0; border-left:2px solid var(--sv-line); }
.sv-intel-timeline-item{ position:relative; padding:0 0 var(--sv-3) var(--sv-4); }
.sv-intel-timeline-item::before{ content:''; position:absolute; left:-5px; top:6px; width:8px; height:8px; border-radius:50%; background:var(--sv-accent); }
.sv-intel-timeline-date{ display:block; font-size:var(--sv-fs-xs); color:var(--sv-faint); margin-bottom:2px; }
.sv-intel-timeline-event{ display:block; }
.sv-intel-sources{ margin:0; padding-left:18px; font-size:var(--sv-fs-sm); }
.sv-intel-sources a{ color:var(--sv-accent-ink); }
.sv-intel-entities{ display:flex; flex-wrap:wrap; gap:6px; }
.sv-intel-entity{ font-size:var(--sv-fs-xs); }
.sv-intel-empty{ margin:0; color:var(--sv-muted); font-size:var(--sv-fs-sm); }

/* Story panel — lifecycle indicator */
.sv-story-panel{ margin-top:var(--sv-4); padding:var(--sv-3) 0 var(--sv-4); border-top:1px solid var(--sv-line); }
.sv-story-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:var(--sv-3); flex-wrap:wrap; margin-bottom:var(--sv-3); }
.sv-story-eyebrow{ margin:0; font-family:var(--sv-sans); font-size:var(--sv-fs-xs); font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--sv-muted); }
.sv-story-meta{ display:flex; align-items:center; gap:8px; font-size:var(--sv-fs-xs); color:var(--sv-faint); }
.sv-story-scope{ padding:2px 8px; border-radius:var(--sv-r-pill); border:1px solid var(--sv-line); color:var(--sv-accent-ink); }
.sv-story-lifecycle{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 4px; }
.sv-story-step{ display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--sv-faint); min-height:28px; }
.sv-story-step-dot{ width:8px; height:8px; border-radius:50%; background:var(--sv-line-strong); flex-shrink:0; }
.sv-story-step--done{ color:var(--sv-muted); }
.sv-story-step--done .sv-story-step-dot{ background:var(--sv-accent); opacity:.55; }
.sv-story-step--active{ color:var(--sv-ink); font-weight:600; }
.sv-story-step--active .sv-story-step-dot{ background:var(--sv-accent); box-shadow:0 0 0 2px var(--sv-accent-soft); }
.sv-story-step--pending .sv-story-step-label{ opacity:.65; }

/* Nav overlay (mobile drawer) */
.sv-nav-backdrop{ display:none; position:fixed; inset:0; background:rgba(20,20,20,.35); z-index:40; }
.sv-app[data-nav="open"] .sv-nav-backdrop{ display:block; }

/* Alaska SIOS shell overrides — kill dark void */
.nd-sios-root{ background:var(--sv-bg); min-height:auto !important; height:auto !important; }
.nd-sios-root .sv-root{ min-height:auto; }
.nd-sios-root .sv-app{ min-height:auto; }
.adm-toolbox-host{ background:var(--sv-bg); min-height:auto; }
.adm-toolbox-host .sv-root{ min-height:auto; }
.adm-newsdesk-host .nd-sios-root{ background:var(--sv-bg); }

/* Alaska Intelligence Desk — state palette + ezine/command center */
.sv-ak-desk[data-theme="ak"], .sv-root.sv-ak-desk{
  --sv-accent:#1B4D6E;
  --sv-accent-soft:#E3EEF4;
  --sv-accent-ink:#0F3347;
  --sv-bg:#FAF8F4;
}
.sv-topic-desk[data-theme="topic"], .sv-root.sv-topic-desk{
  --sv-accent:#2F4A3E;
  --sv-accent-soft:#E8EFE9;
  --sv-accent-ink:#1A3028;
  --sv-bg:#FAF8F4;
}
.sv-desks-directory{ margin-bottom:var(--sv-6); }
.sv-desks-directory-head{ margin-bottom:var(--sv-5); }
.sv-desks-directory-title{ font-family:var(--sv-serif); font-size:clamp(24px,3vw,36px); margin:0 0 8px; }
.sv-desks-grid{ display:grid; gap:var(--sv-3); grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.sv-desk-card{ display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:52px;
  padding:14px 16px; border:1px solid var(--sv-line); border-radius:var(--sv-r); background:var(--sv-surface);
  text-align:left; cursor:pointer; color:inherit; font:inherit; transition:border-color .15s, box-shadow .15s; }
.sv-desk-card:hover{ border-color:var(--sv-line-strong); box-shadow:var(--sv-shadow); }
.sv-desk-card-label{ font-weight:500; font-size:var(--sv-fs-sm); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sv-desk-card-count{ font-size:var(--sv-fs-xs); color:var(--sv-muted); font-variant-numeric:tabular-nums; }
.sv-desks-state-note{ margin-top:var(--sv-5); padding-top:var(--sv-4); border-top:1px solid var(--sv-line); }
.sv-desk-card--soon{ opacity:.72; cursor:default; }
.sv-desk-card--soon:hover{ border-color:var(--sv-line); box-shadow:none; }
.sv-desk-card--live .sv-status-chip{ flex-shrink:0; }
.sv-news-navigator-root{ --sv-bg:#FAF8F4; background:var(--sv-bg); min-height:60vh; }
/* News-desk PICKER (nav mode): the navigator renders its own nested .sv-app (a nav+main
   grid) with no nav child, which jammed the whole panel into the 248px nav column.
   Force the entire chain full-width. Anchored on .nd-root.nd-nav-mode + !important so it
   always beats the base .sv-app grid. */
/* THE real fix: at >=1024px .nd-root becomes a 3-pane desk grid (240px | 1fr | 440px),
   which dropped the single-child picker into the 240px rail. In nav mode .nd-root must be
   a plain full-width block so the picker spans the whole content area. */
.nd-root.nd-nav-mode{ display:block !important; grid-template-columns:none !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow:visible !important; padding:24px 16px 64px !important; }
.nd-root.nd-nav-mode .sv-app,
.sv-news-navigator-root .sv-app{ display:block !important; grid-template-columns:none !important; width:100% !important; }
.nd-root.nd-nav-mode .sv-main,
.nd-root.nd-nav-mode .sv-news-navigator-main{ max-width:1200px !important; width:auto !important; margin:0 auto !important; }

/* STATE/TOPIC desk (SIOS): un-grid the 3-pane .nd-root cage so the desk spans the full
   width with no empty 240px/440px side bands, and flatten the inner nav grid too. */
.nd-root.nd-sios-root{ display:block !important; grid-template-columns:none !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow:visible !important; }
.nd-sios-root .sv-app{ display:block !important; grid-template-columns:none !important; width:100% !important; }
.nd-sios-root .sv-main{ max-width:1600px !important; width:auto !important; margin:0 auto !important; }
.nd-sios-root .sv-nav{ display:none !important; }
.nd-sios-root .sv-nav-backdrop{ display:none !important; }

/* ===== BLOOMBERG-TERMINAL STORY FEED =====================================
   Text-first, high-density, auto-fill multi-column. Scoped to .nd-sios-root so
   EVERY state/topic desk inherits it (clones automatically). Drops hero images,
   turns the ezine cards into compact rows, packs as many columns as fit. */
.nd-sios-root .sv-ezine-media{ display:none !important; }
.nd-sios-root .sv-ezine-dek{ display:none !important; }
.nd-sios-root .sv-ezine-hero-row{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)) !important; gap:1px !important; background:var(--sv-line) !important; border:1px solid var(--sv-line) !important; border-radius:10px 10px 0 0 !important; overflow:hidden !important; margin:0 !important; }
.nd-sios-root .sv-ezine-side{ display:contents !important; }
.nd-sios-root .sv-ezine-grid.sv-feed-grid{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)) !important; gap:1px !important; background:var(--sv-line) !important; border:1px solid var(--sv-line) !important; border-top:0 !important; border-radius:0 0 10px 10px !important; overflow:hidden !important; margin:0 !important; }
.nd-sios-root .sv-ezine-card{ display:block !important; padding:.8rem 1.05rem !important; margin:0 !important; background:var(--sv-surface) !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; transition:background .15s ease !important; }
.nd-sios-root .sv-ezine-card:hover{ background:var(--sv-surface-2) !important; }
.nd-sios-root .sv-ezine-body-below{ padding:0 !important; }
.nd-sios-root .sv-ezine-kicker{ font-size:.7rem !important; font-weight:700 !important; letter-spacing:.05em !important; color:var(--sv-accent) !important; margin:0 0 .25rem !important; }
.nd-sios-root .sv-ezine-title,
.nd-sios-root .sv-ezine-title--lead{ font-size:1.02rem !important; line-height:1.3 !important; margin:0 0 .25rem !important; }
.nd-sios-root .sv-story-meta{ font-size:.74rem !important; color:var(--sv-faint) !important; }
.nd-sios-root .sv-ezine-actions{ margin-top:.4rem !important; }
@media (max-width:560px){
  .nd-sios-root .sv-ezine-hero-row,
  .nd-sios-root .sv-ezine-grid.sv-feed-grid{ grid-template-columns:1fr !important; }
}
.nd-sios-root .sv-cat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin:18px 0 36px; }
.nd-sios-root .sv-cat-card{ display:flex; flex-direction:column; border:1px solid var(--sv-line); border-radius:14px; overflow:hidden; background:var(--sv-surface); box-shadow:var(--sv-shadow); transition:transform .14s,box-shadow .14s; text-decoration:none; color:inherit; }
.nd-sios-root .sv-cat-card:hover{ transform:translateY(-3px); box-shadow:0 8px 22px rgba(20,20,20,.13); }
.nd-sios-root .sv-cat-cover{ position:relative; aspect-ratio:16/10; display:flex; align-items:flex-end; padding:14px; background:linear-gradient(135deg,var(--sv-accent),var(--sv-accent-ink)); overflow:hidden; }
.nd-sios-root .sv-cat-cover-fallback{ position:relative; z-index:1; color:#fff; font-family:var(--sv-serif); font-size:1.3rem; font-weight:700; line-height:1.1; text-shadow:0 1px 3px rgba(0,0,0,.4); }
.nd-sios-root .sv-cat-cover-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }
.nd-sios-root .sv-cat-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:13px 16px; }
.nd-sios-root .sv-cat-label{ font-family:var(--sv-serif); font-size:1.1rem; font-weight:700; color:var(--sv-ink); }
.nd-sios-root .sv-cat-count{ font-size:.78rem; color:var(--sv-muted); font-variant-numeric:tabular-nums; background:var(--sv-surface-2); border-radius:999px; padding:2px 10px; }
.nd-sios-root .sv-cat-page-title{ font-family:var(--sv-serif); margin:8px 0 12px; }
.nd-sios-root .sv-subdesk-head{ display:flex; align-items:center; gap:14px; margin-top:8px; }
.nd-sios-root .sv-subdesk-tabs{ display:flex; gap:8px; border-bottom:1px solid var(--sv-line); margin:6px 0 16px; }
.nd-sios-root .sv-subdesk-tab{ appearance:none; background:none; border:0; padding:10px 4px; margin-right:14px; font-size:.95rem; font-weight:600; color:var(--sv-muted); cursor:pointer; border-bottom:2px solid transparent; }
.nd-sios-root .sv-subdesk-tab.is-on{ color:var(--sv-ink); border-bottom-color:var(--sv-accent); }
.nd-sios-root .sv-subdesk-tab:hover{ color:var(--sv-ink); }
.nd-sios-root .sv-cat-page .sv-ezine-grid.sv-feed-grid{ display:grid !important; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)) !important; gap:18px !important; background:transparent !important; border:0 !important; }
.nd-sios-root .sv-cat-page .sv-ezine-card{ display:flex !important; flex-direction:column; border:1px solid var(--sv-line) !important; border-radius:12px !important; overflow:hidden !important; background:var(--sv-surface) !important; box-shadow:var(--sv-shadow) !important; }
.nd-sios-root .sv-cat-page .sv-ezine-media{ display:block !important; aspect-ratio:16/9; }
.nd-sios-root .sv-cat-page .sv-ezine-media img{ width:100%; height:100%; object-fit:cover; }
.nd-sios-root .sv-cat-page .sv-ezine-dek{ display:block !important; }
@media (max-width:560px){ .nd-sios-root .sv-cat-grid{ grid-template-columns:1fr 1fr; gap:12px; } }
.sv-news-navigator-main{ max-width:var(--sv-maxw); margin:0 auto; padding:var(--sv-6) var(--sv-4) var(--sv-8); }
.sv-news-navigator-head{ margin-bottom:var(--sv-6); }
.sv-news-navigator-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-hero); margin:6px 0 10px; line-height:1.15; }
.sv-news-nav-section{ margin-bottom:var(--sv-8); }
.sv-news-nav-section + .sv-news-nav-section{ padding-top:var(--sv-6); border-top:1px solid var(--sv-line); }

/* Home landing */
.sv-home{ max-width:var(--sv-maxw); margin:0 auto; padding:var(--sv-6) var(--sv-4) var(--sv-8); }
.sv-home-hero{ margin-bottom:var(--sv-6); }
.sv-home-eyebrow{ font-size:var(--sv-fs-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--sv-faint); margin:0 0 var(--sv-3); }
.sv-home-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-hero); line-height:1.2; margin:0; max-width:18ch; }
@media (min-width:720px){ .sv-home-title{ max-width:24ch; } }
.sv-home-actions-wrap{ margin-bottom:var(--sv-6); }
.sv-home-actions{ display:flex; flex-wrap:wrap; gap:var(--sv-3); }
.sv-home-action{ min-height:44px; padding:12px 20px; border:1px solid var(--sv-line); border-radius:var(--sv-r-pill);
  background:var(--sv-surface); font:inherit; font-size:var(--sv-fs-sm); font-weight:500; cursor:pointer;
  transition:border-color .15s, box-shadow .15s; }
.sv-home-action:hover{ border-color:var(--sv-line-strong); box-shadow:var(--sv-shadow); }
.sv-home-action--primary{ background:var(--sv-accent); color:#fff; border-color:var(--sv-accent); }
.sv-home-action--primary:hover{ filter:brightness(1.05); }
.sv-home-teaser{ margin-top:var(--sv-6); padding-top:var(--sv-5); border-top:1px solid var(--sv-line); }
.sv-home-teaser-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-h2); margin:0 0 var(--sv-4); }
.sv-home-teaser-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--sv-3); }
.sv-home-teaser-item{ display:flex; flex-direction:column; gap:4px; padding:var(--sv-3) 0; border-bottom:1px solid var(--sv-line); }
.sv-home-teaser-kicker{ font-size:var(--sv-fs-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--sv-faint); }
.sv-home-teaser-headline{ font-size:var(--sv-fs-body); color:var(--sv-ink); line-height:1.4; }
.sv-home-operator{ margin-top:var(--sv-6); }
.sv-home-section-title{ font-size:var(--sv-fs-sm); letter-spacing:.08em; text-transform:uppercase; color:var(--sv-faint); margin:0 0 var(--sv-3); }
.sv-home-actions--compact .sv-home-action{ padding:8px 14px; min-height:36px; }

/* Desk live pulse ribbon */
.sv-module-pulse{ border:0; background:transparent; padding:0; margin-bottom:var(--sv-4); }
.sv-desk-pulse{ display:flex; flex-direction:column; gap:var(--sv-3); }
.sv-pulse-block{ border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); background:var(--sv-surface); overflow:hidden; }
.sv-pulse-head{ padding:var(--sv-3) var(--sv-4); border-bottom:1px solid var(--sv-line); }
.sv-pulse-summary{ margin:0 0 6px; font-size:var(--sv-fs-sm); line-height:1.45; color:var(--sv-ink); font-weight:500; }
.sv-pulse-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:10px; letter-spacing:.04em; text-transform:uppercase; color:var(--sv-faint); }
.sv-pulse-live{ color:var(--sv-ok); font-weight:600; }
.sv-pulse-source{ color:var(--sv-muted); }
.sv-pulse-tape-wrap{ overflow:hidden; padding:10px 0; background:linear-gradient(90deg, var(--sv-bg) 0%, transparent 8%, transparent 92%, var(--sv-bg) 100%); }
.sv-pulse-tape{ display:inline-flex; align-items:center; gap:20px; padding:0 var(--sv-4); white-space:nowrap; animation:sv-pulse-marquee 50s linear infinite; }
.sv-pulse-tape-wrap:hover .sv-pulse-tape{ animation-play-state:paused; }
@keyframes sv-pulse-marquee{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }
.sv-pulse-tick{ display:inline-flex; align-items:baseline; gap:6px; font-size:var(--sv-fs-sm); font-variant-numeric:tabular-nums; }
.sv-pulse-tick-sym{ font-weight:600; color:var(--sv-ink); }
.sv-pulse-tick-price{ color:var(--sv-muted); }
.sv-pulse-tick-chg{ font-weight:600; }
.sv-pulse-tick--up .sv-pulse-tick-chg{ color:var(--sv-ok); }
.sv-pulse-tick--down .sv-pulse-tick-chg{ color:var(--sv-danger); }
.sv-pulse-tick--flat .sv-pulse-tick-chg{ color:var(--sv-muted); }
.sv-pulse-tick--gainer{ padding:2px 8px; border-radius:var(--sv-r-pill); background:var(--sv-ok-soft); }
.sv-pulse-tick--loser{ padding:2px 8px; border-radius:var(--sv-r-pill); background:var(--sv-danger-soft); }
.sv-pulse-tick-sep{ color:var(--sv-faint); user-select:none; }
.sv-pulse-alerts{ display:flex; flex-wrap:wrap; gap:8px; padding:var(--sv-3) var(--sv-4); }
.sv-pulse-alert{ display:inline-block; padding:6px 10px; border-radius:var(--sv-r); font-size:var(--sv-fs-xs); line-height:1.35;
  background:var(--sv-surface-2); color:var(--sv-ink); border:1px solid var(--sv-line); }
.sv-pulse-alert--severe{ background:#3a1515; color:#ffe8e8; border-color:#8b2e2e; }
.sv-ak-eyebrow{ margin:0; letter-spacing:.08em; text-transform:uppercase; font-size:10px; }
.sv-ak-brand h1{ font-size:clamp(26px,3vw,36px); }
.sv-ak-masthead{ align-items:flex-end; justify-content:space-between; padding-bottom:var(--sv-4); border-bottom:1px solid var(--sv-line); }
.sv-ak-masthead-brand{ flex:1; min-width:0; }
.sv-ak-masthead-brandline{ margin:0; font-family:var(--sv-serif); font-size:clamp(24px,3.4vw,38px); font-weight:400; letter-spacing:-.02em; line-height:1.15; text-transform:lowercase; }
.sv-ak-masthead-solveza{ font-weight:400; }
.sv-ak-masthead-slash{ color:var(--sv-faint); font-weight:300; }
.sv-ak-masthead-state{ font-weight:400; color:var(--sv-ink); }
.sv-ak-last-updated{ font-size:var(--sv-fs-xs); color:var(--sv-faint); white-space:nowrap; }
.sv-ak-masthead-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.sv-ak-dateline{ font-size:var(--sv-fs-sm); color:var(--sv-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.sv-ak-dateline-note{ font-size:var(--sv-fs-sm); color:var(--sv-faint); }
.sv-search-toggle{ min-width:44px; min-height:44px; padding:8px 12px; font-size:18px; line-height:1; }
.sv-search-expand{ position:absolute; right:0; top:100%; margin-top:8px; z-index:5; min-width:min(320px,90vw); }
.sv-ak-masthead-right{ position:relative; }
.sv-search-compact{ max-width:none; width:100%; }
.sv-desk-lede{ margin:0 0 var(--sv-4); padding-bottom:var(--sv-3); border-bottom:1px solid var(--sv-line);
  font-size:var(--sv-fs-sm); color:var(--sv-faint); line-height:1.45; overflow:hidden; text-overflow:ellipsis; }
.sv-nav-section{ margin:14px 0 6px; padding:0 10px; }
.sv-status-chip{ display:inline-flex; align-items:center; padding:2px 8px; border-radius:var(--sv-r-pill);
  font-size:10px; letter-spacing:.04em; text-transform:uppercase; font-weight:600; border:1px solid var(--sv-line); }
.sv-status-live{ background:var(--sv-ok-soft); color:var(--sv-ok); border-color:rgba(15,110,86,.25); }
.sv-status-demo{ background:var(--sv-warn-soft); color:var(--sv-warn); border-color:rgba(133,79,11,.25); }
.sv-status-coming_soon,.sv-status-planned{ background:var(--sv-surface-2); color:var(--sv-muted); }
.sv-status-beta,.sv-status-needs_source{ background:var(--sv-danger-soft); color:var(--sv-danger); }
.sv-status-research_ready{ background:var(--sv-accent-soft); color:var(--sv-accent-ink); }
.sv-ak-relevance{ display:inline-block; font-size:var(--sv-fs-xs); color:var(--sv-faint); margin-left:6px; }
.sv-section-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:var(--sv-3); }

/* Ezine hero — readable titles over images or cream below */
.sv-ezine-front{ margin-bottom:var(--sv-6); }
.sv-ezine-hero-row{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; }
@media (min-width:900px){ .sv-ezine-hero-row{ grid-template-columns:1.4fr 1fr; align-items:stretch; } }
.sv-ezine-side{ display:grid; gap:var(--sv-3); }
.sv-ezine-card{ position:relative; border-radius:var(--sv-r-lg); overflow:clip; border:1px solid var(--sv-line);
  background:var(--sv-surface); text-decoration:none; color:inherit; display:block; min-height:44px; }
.sv-ezine-card:hover{ box-shadow:var(--sv-shadow); border-color:var(--sv-line-strong); }
.sv-ezine-lead{ overflow:visible; }
.sv-ezine-card--below{ overflow:visible; background:var(--sv-bg); }
.sv-ezine-media{ position:relative; width:100%; }
.sv-ezine-media--16x9{ aspect-ratio:16/9; min-height:0; overflow:hidden; border-radius:var(--sv-r-lg) var(--sv-r-lg) 0 0; }
.sv-ezine-media--16x9 .sv-ezine-img,.sv-ezine-media--16x9 .sv-story-img{ min-height:100%; height:100%; }
.sv-ezine-lead .sv-ezine-media--16x9{ aspect-ratio:16/9; }
.sv-ezine-side .sv-ezine-media--16x9{ aspect-ratio:16/9; }
.sv-ezine-kicker{ margin:0 0 8px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-faint); font-weight:600; }
.sv-ezine-title--lead{ font-size:clamp(24px,3.2vw,40px); line-height:1.2; }
.sv-ezine-dek{ margin:10px 0 0; font-size:var(--sv-fs-sm); line-height:1.5; color:var(--sv-muted); }
.sv-ezine-img,.sv-story-img{ width:100%; height:100%; min-height:inherit; object-fit:cover; display:block; }
.sv-ezine-fallback{ width:100%; min-height:inherit; background:linear-gradient(145deg,var(--sv-accent-soft),var(--sv-surface-2)); }
.sv-ezine-media--tint{ min-height:120px; background:linear-gradient(145deg,var(--sv-accent-soft),var(--sv-surface-2)); }
.sv-ezine-media--politics,.sv-ezine-fallback-text.sv-ezine-media--politics{ background:linear-gradient(145deg,#e8dfd4,#d4c8bc); }
.sv-ezine-media--fisheries,.sv-ezine-fallback-text.sv-ezine-media--fisheries{ background:linear-gradient(145deg,#dce8f0,#c5d8e8); }
.sv-ezine-media--energy,.sv-ezine-fallback-text.sv-ezine-media--energy{ background:linear-gradient(145deg,#e6e2d8,#d8d0c4); }
.sv-ezine-media--communities,.sv-ezine-fallback-text.sv-ezine-media--communities{ background:linear-gradient(145deg,#e4ebe4,#d0dbd0); }
.sv-ezine-fallback-text{ display:flex; flex-direction:column; justify-content:flex-end; gap:6px;
  width:100%; min-height:inherit; padding:var(--sv-4); box-sizing:border-box; }
.sv-ezine-fallback-text .sv-fallback-headline{ font-family:var(--sv-serif); font-size:var(--sv-fs-sm); line-height:1.35;
  color:var(--sv-muted); margin:0; overflow-wrap:break-word; }
.sv-ezine-scrim{ position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,18,24,.88) 0%, rgba(10,18,24,.45) 42%, rgba(10,18,24,.08) 100%); pointer-events:none; }
.sv-ezine-scrim-strong{ background:linear-gradient(to top, rgba(4,8,12,.97) 0%, rgba(4,8,12,.82) 38%, rgba(4,8,12,.45) 68%, rgba(4,8,12,.12) 100%); }
.sv-ezine-caption{ position:absolute; left:0; right:0; bottom:0; padding:var(--sv-4) var(--sv-4) var(--sv-5); color:#fff; z-index:1; }
.sv-ezine-lead .sv-ezine-caption{ padding-bottom:var(--sv-6); }
.sv-ezine-caption .sv-tag{ background:rgba(255,255,255,.16); color:#fff; border:0; }
.sv-ezine-caption .sv-status-chip{ margin-right:6px; vertical-align:middle; }
.sv-ezine-title{ font-family:var(--sv-serif); font-size:clamp(20px,2.6vw,30px); line-height:1.25; margin:8px 0 6px;
  overflow-wrap:break-word; hyphens:auto; text-shadow:0 2px 16px rgba(0,0,0,.55); overflow:visible; display:block; }
.sv-ezine-lead .sv-ezine-title{ font-size:clamp(22px,3vw,36px); line-height:1.28; -webkit-line-clamp:unset; }
.sv-ezine-side .sv-ezine-title{ font-size:clamp(16px,2vw,20px); }
.sv-ezine-caption .sv-story-meta{ color:rgba(255,255,255,.88); }
.sv-ezine-body-below{ padding:var(--sv-4) var(--sv-1) var(--sv-5); background:transparent; color:var(--sv-ink); }
.sv-ezine-body-below .sv-ezine-title{ color:var(--sv-ink); text-shadow:none; font-family:var(--sv-serif); font-size:clamp(20px,2.6vw,32px); margin:var(--sv-4) 0 8px; line-height:1.25; }
.sv-ezine-body-below .sv-story-meta{ color:var(--sv-muted); }
.sv-ezine-body-below .sv-ak-relevance{ color:var(--sv-faint); }
.sv-ezine-grid{ display:grid; gap:var(--sv-3); grid-template-columns:1fr; margin-top:var(--sv-4); }
@media (min-width:600px){ .sv-ezine-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .sv-ezine-grid{ grid-template-columns:repeat(3,1fr); } }
.sv-ezine-grid-compact .sv-ezine-media{ min-height:150px; }
.sv-feed-more{ display:flex; flex-direction:column; align-items:center; gap:var(--sv-2); margin-top:var(--sv-5); padding:var(--sv-3) 0; }
.sv-feed-count{ margin:0; font-size:var(--sv-fs-sm); text-align:center; }
.sv-feed-sentinel{ width:100%; height:1px; pointer-events:none; }

/* Beat dashboard shell + modules */
.sv-beat-dashboard{ display:flex; flex-direction:column; gap:var(--sv-5); margin-bottom:var(--sv-4); }
.sv-beat-dashboard-nav{ margin-bottom:var(--sv-2); }
.sv-publication-grid{ display:grid; gap:var(--sv-5); grid-template-columns:1fr; align-items:start; }
@media (min-width:960px){ .sv-publication-grid{ grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--sv-6); } }
.sv-publication-main{ display:flex; flex-direction:column; gap:var(--sv-5); min-width:0; }
@media (min-width:960px){ .sv-publication-main{ grid-column:1 / span 7; } }
.sv-publication-track{ min-width:0; }
@media (min-width:960px){ .sv-publication-track{ grid-column:8 / span 5; border-left:1px solid var(--sv-line); padding-left:var(--sv-4); } }
@media (max-width:959px){ .sv-publication-track{ border-top:1px solid var(--sv-line); padding-top:var(--sv-4); } }
.sv-publication-footer{ display:flex; flex-direction:column; gap:var(--sv-4); margin-top:var(--sv-2); }
.sv-ak-telemetry-rail{ display:flex; flex-direction:column; gap:0; font-size:var(--sv-fs-sm); line-height:1.45; }
.sv-ak-telemetry-block{ padding:var(--sv-4) 0; border-bottom:1px solid var(--sv-line); }
.sv-ak-telemetry-block:last-child{ border-bottom:0; }
.sv-ak-telemetry-kicker{ margin:0 0 6px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--sv-faint); font-weight:600; }
.sv-ak-telemetry-summary{ margin:0 0 8px; font-size:var(--sv-fs-sm); line-height:1.45; color:var(--sv-ink); }
.sv-ak-telemetry-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.sv-pulse-chip{ display:inline-flex; align-items:center; font-size:var(--sv-fs-xs); line-height:1.35; padding:4px 10px; border:1px solid var(--sv-line); border-radius:var(--sv-r-pill); color:var(--sv-muted); background:transparent; }
.sv-pulse-chip--severe{ border-color:rgba(163,45,45,.35); color:var(--sv-danger); }
.sv-module-ak-telemetry{ border:0; background:transparent; padding:0; }
.sv-intel-track{ font-size:var(--sv-fs-sm); line-height:1.45; }
.sv-track-heading{ margin:0 0 var(--sv-3); font-family:var(--sv-sans); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--sv-faint); font-weight:600; }
.sv-track-kicker{ margin:var(--sv-4) 0 var(--sv-2); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--sv-faint); font-weight:600; }
.sv-track-section{ display:flex; flex-direction:column; gap:0; }
.sv-track-line{ display:flex; flex-direction:column; gap:2px; padding:10px 0; border-bottom:1px solid var(--sv-line); }
.sv-track-line:last-child{ border-bottom:0; }
.sv-track-label{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--sv-faint); }
.sv-track-value{ color:var(--sv-ink); text-decoration:none; }
a.sv-track-value:hover{ color:var(--sv-accent); text-decoration:underline; }
.sv-track-ext-list{ margin:0; padding:0 0 0 14px; display:grid; gap:8px; color:var(--sv-muted); }
.sv-brief-date{ font-size:var(--sv-fs-sm); color:var(--sv-muted); font-variant-numeric:tabular-nums; }
.sv-brief-section{ margin-top:var(--sv-4); padding-top:var(--sv-3); border-top:1px solid var(--sv-line); }
.sv-brief-kicker{ margin:0 0 8px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--sv-faint); font-weight:600; }
.sv-brief-list{ margin:0; padding:0 0 0 16px; display:grid; gap:6px; font-size:var(--sv-fs-sm); color:var(--sv-muted); }
.sv-brief-summary{ margin:0 0 var(--sv-3); font-size:var(--sv-fs-sm); line-height:1.55; color:var(--sv-muted); }
.sv-module-brief{ border:0; background:transparent; padding:0; }
.sv-beat-dashboard-head{ display:flex; align-items:center; justify-content:space-between; gap:var(--sv-3); flex-wrap:wrap; }
.sv-beat-dashboard-title{ font-family:var(--sv-serif); font-size:clamp(22px,2.8vw,32px); margin:0; }
.sv-module{ border:1px solid var(--sv-line); border-radius:var(--sv-r-lg); background:var(--sv-surface); padding:var(--sv-4); }
.sv-module-feed{ border:0; background:transparent; padding:0; }
.sv-module-strip{ border:0; background:transparent; padding:0; }
.sv-module-tools{ border:0; background:transparent; padding:0; }
.sv-module-head{ display:flex; align-items:center; justify-content:space-between; gap:var(--sv-3); flex-wrap:wrap; margin-bottom:var(--sv-3); }
.sv-module-title{ font-family:var(--sv-sans); font-size:var(--sv-fs-body); font-weight:600; margin:0; }
.sv-brief-hero{ padding:var(--sv-3) 0 0; }
.sv-brief-headline{ font-family:var(--sv-serif); font-size:clamp(18px,2.4vw,26px); margin:0 0 8px; line-height:1.25; }
.sv-source-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.sv-source-list li{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:6px 0; border-bottom:1px solid var(--sv-line); }
.sv-source-list li:last-child{ border-bottom:0; }
.sv-source-name{ font-weight:500; }
.sv-scaffold-body{ padding:var(--sv-3) 0 0; }
.sv-scaffold-label{ font-weight:600; margin:0 0 6px; color:var(--sv-ink); }
.sv-module-scaffold{ background:var(--sv-bg); }

/* Command center */
.sv-command-center{ margin-top:var(--sv-6); padding-top:var(--sv-4); border-top:1px solid var(--sv-line); }
.sv-cc-grid{ display:grid; gap:var(--sv-3); grid-template-columns:1fr; }
@media (min-width:640px){ .sv-cc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .sv-cc-grid{ grid-template-columns:repeat(3,1fr); } }
.sv-cc-card{ display:flex; flex-direction:column; gap:var(--sv-2); min-height:130px; }
.sv-cc-card--open{ border:0; background:transparent; border-radius:0; padding:var(--sv-3) 0; border-bottom:1px solid var(--sv-line); box-shadow:none; min-height:0; }
.sv-cc-card--open:last-child{ border-bottom:0; }
.sv-cc-title{ margin:0; font-family:var(--sv-serif); font-size:var(--sv-fs-h3); font-weight:500; }
.sv-cc-grid:has(.sv-cc-card--open){ gap:0; }
.sv-cc-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sv-2); }
.sv-cc-head h3{ font-family:var(--sv-sans); font-size:var(--sv-fs-body); font-weight:600; margin:0; }
.sv-cc-actions{ margin-top:auto; padding-top:var(--sv-2); }

/* Beat dashboard shell */
.sv-beat-dash{ margin-top:var(--sv-4); }
.sv-beat-dash-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sv-3); flex-wrap:wrap; margin-bottom:var(--sv-4); }
.sv-beat-dash-grid{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; }
@media (min-width:900px){ .sv-beat-dash-grid{ grid-template-columns:1.2fr 1fr 1fr; } }
.sv-beat-panel h3{ font-family:var(--sv-sans); font-size:var(--sv-fs-sm); text-transform:uppercase; letter-spacing:.04em; color:var(--sv-muted); margin:0 0 var(--sv-3); }
.sv-beat-list{ margin:0; padding-left:18px; font-size:var(--sv-fs-sm); }

/* Alaska desk pill row (Stories default; more pills in follow-on PRs) */
.sv-desk-pill-nav,.sv-desk-lane-nav{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sv-2);
  padding:var(--sv-2) 0 var(--sv-3); margin-bottom:var(--sv-2); border-bottom:1px solid var(--sv-line);
  overflow-x:auto; -webkit-overflow-scrolling:touch; }
.sv-desk-pill-link,.sv-desk-lane-link{ display:inline-flex; align-items:center; min-height:44px; padding:6px 14px; border:1px solid var(--sv-line);
  border-radius:var(--sv-r-pill); background:var(--sv-surface); font:inherit; font-size:var(--sv-fs-sm); font-weight:500;
  color:var(--sv-muted); cursor:pointer; transition:color .15s, border-color .15s, background .15s; flex-shrink:0; }
.sv-desk-pill-link:hover,.sv-desk-lane-link:hover{ color:var(--sv-ink); border-color:var(--sv-line-strong); }
.sv-desk-pill-link--on,.sv-desk-lane-link--on{ color:var(--sv-ink); border-color:var(--sv-accent); background:var(--sv-accent-soft); }
.sv-story-actions{ display:flex; flex-wrap:wrap; gap:var(--sv-2); margin-top:var(--sv-3); padding-top:var(--sv-2); border-top:1px solid var(--sv-line); }
.sv-ak-desk--stories .sv-publication-track,.sv-ak-desk--stories .sv-publication-footer{ display:none; }
.sv-stories-reader{ margin-top:var(--sv-4); border-top:1px solid var(--sv-line); padding-top:var(--sv-4); }
.sv-desk-panel{ padding:var(--sv-3) 0 var(--sv-6); }
.sv-desk-panel-head{ margin-bottom:var(--sv-4); border-bottom:1px solid var(--sv-line); padding-bottom:var(--sv-3); }
.sv-desk-panel-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-h2); margin:0; font-weight:500; }
.sv-desk-panel-subtitle{ font-family:var(--sv-serif); font-size:var(--sv-fs-h3); margin:var(--sv-5) 0 var(--sv-3); }
.sv-desk-tool-cat{ margin-bottom:var(--sv-5); }
.sv-desk-tool-cat-title{ font-size:var(--sv-fs-sm); text-transform:uppercase; letter-spacing:.06em; color:var(--sv-muted); margin:0 0 var(--sv-2); }
.sv-desk-tool-list{ display:grid; gap:0; }
@media (min-width:720px){ .sv-desk-tool-list{ grid-template-columns:1fr 1fr; column-gap:var(--sv-5); } }
.sv-desk-tool-row{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--sv-3); width:100%; padding:var(--sv-3) 0;
  border:0; border-bottom:1px solid var(--sv-line); background:transparent; text-align:left; font:inherit; cursor:pointer; }
.sv-desk-tool-row:hover .sv-desk-tool-name{ color:var(--sv-accent); }
.sv-desk-tool-name{ display:block; font-weight:600; font-size:var(--sv-fs-body); }
.sv-desk-tool-desc{ display:block; margin-top:2px; font-size:var(--sv-fs-sm); color:var(--sv-muted); }
.sv-desk-tool-arrow{ color:var(--sv-muted); flex-shrink:0; }
.sv-desk-api-chip{ display:inline-block; margin-left:6px; font-size:9px; letter-spacing:.08em; text-transform:uppercase;
  padding:2px 7px; border-radius:var(--sv-r-pill); border:1px solid var(--sv-line); color:var(--sv-accent); vertical-align:middle; }
.sv-ak-live-grid{ display:grid; gap:var(--sv-3); }
@media (min-width:720px){ .sv-ak-live-grid{ grid-template-columns:1fr 1fr; } }
.sv-desk-borough-grid{ display:flex; flex-wrap:wrap; gap:var(--sv-2); margin:var(--sv-3) 0; }
.sv-desk-borough-link{ min-height:40px; padding:6px 12px; border:1px solid var(--sv-line); border-radius:var(--sv-r-pill);
  background:var(--sv-surface); font:inherit; font-size:var(--sv-fs-sm); cursor:pointer; }
.sv-desk-borough-link--on{ border-color:var(--sv-accent); background:var(--sv-accent-soft); }
.sv-desk-borough-detail{ margin-top:var(--sv-4); padding-top:var(--sv-3); border-top:1px solid var(--sv-line); }
.sv-desk-borough-facts{ display:grid; gap:var(--sv-2); margin:var(--sv-3) 0 0; }
.sv-desk-borough-facts div{ display:grid; grid-template-columns:140px 1fr; gap:var(--sv-2); font-size:var(--sv-fs-sm); }
.sv-desk-borough-facts dt{ color:var(--sv-muted); margin:0; }
.sv-desk-borough-facts dd{ margin:0; }
.sv-desk-ledger-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--sv-3);
  border-bottom:1px solid var(--sv-line); padding-bottom:var(--sv-3); margin-bottom:var(--sv-3); }
.sv-desk-ledger-kicker{ font-size:var(--sv-fs-xs); text-transform:uppercase; letter-spacing:.12em; color:var(--sv-muted); margin:0 0 4px; }
.sv-desk-ledger-filters{ display:flex; flex-wrap:wrap; gap:var(--sv-2); margin-bottom:var(--sv-4); }
.sv-desk-ledger-chip{ min-height:40px; padding:6px 12px; border:1px solid var(--sv-line); border-radius:var(--sv-r-pill);
  background:var(--sv-surface); font:inherit; font-size:var(--sv-fs-sm); cursor:pointer; }
.sv-desk-ledger-chip--on{ background:var(--sv-ink); color:var(--sv-surface); border-color:var(--sv-ink); }
.sv-desk-ledger-feed{ display:grid; gap:var(--sv-5); max-width:680px; }
.sv-desk-ledger-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sv-2); font-size:var(--sv-fs-xs);
  text-transform:uppercase; letter-spacing:.06em; color:var(--sv-muted); margin:0; }
.sv-desk-ledger-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-h3); margin:var(--sv-1) 0 0; line-height:1.2; }
.sv-desk-ledger-where{ margin:var(--sv-1) 0 0; font-size:var(--sv-fs-sm); color:var(--sv-muted); font-style:italic; }
.sv-desk-tool-backdrop{ position:fixed; inset:0; background:rgba(20,18,12,.34); z-index:120; display:flex; justify-content:flex-end;
  backdrop-filter:blur(2px); }
.sv-desk-tool-sheet{ position:relative; width:min(520px,94vw); height:100%; overflow-y:auto; background:var(--sv-surface);
  padding:var(--sv-5); box-shadow:var(--sv-shadow-lg); }
.sv-desk-tool-sheet-close{ position:absolute; top:12px; right:14px; border:0; background:transparent; font-size:24px; cursor:pointer; color:var(--sv-muted); }
.sv-desk-tool-sheet-kicker{ font-size:var(--sv-fs-xs); text-transform:uppercase; letter-spacing:.12em; color:var(--sv-accent); margin:0; }
.sv-desk-tool-sheet-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-h1); margin:var(--sv-2) 0; line-height:1.1; }
.sv-desk-tool-sheet-tagline{ color:var(--sv-accent); margin:0 0 var(--sv-4); }
.sv-desk-tool-detail-list{ margin:0; padding-left:18px; }
.sv-desk-api-explorer{ margin:var(--sv-4) 0; padding-top:var(--sv-3); border-top:1px solid var(--sv-line); }
.sv-desk-api-field{ display:block; margin-bottom:var(--sv-2); font-size:var(--sv-fs-sm); }
.sv-desk-api-field input,.sv-desk-api-field select{ display:block; width:100%; margin-top:4px; padding:8px 10px;
  border:1px solid var(--sv-line); border-radius:var(--sv-r-md); font:inherit; }
.sv-desk-api-result{ margin-top:var(--sv-3); padding:var(--sv-3); background:var(--sv-surface-2); border:1px solid var(--sv-line);
  border-radius:var(--sv-r-md); font-size:11px; line-height:1.4; max-height:280px; overflow:auto; white-space:pre-wrap; }

/* Featured voice page */
.sv-voice-page{ --sv-voice-accent:#C8472B; display:grid; gap:var(--sv-6); padding-bottom:var(--sv-6); }
.sv-voice-hero{ border-bottom:1px solid var(--sv-line); padding-bottom:var(--sv-5); }
.sv-voice-hero-grid{ display:grid; gap:var(--sv-5); grid-template-columns:1fr; align-items:start; }
@media (min-width:768px){ .sv-voice-hero-grid{ grid-template-columns:1.4fr minmax(180px,0.6fr); } }
.sv-voice-badge{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:var(--sv-r-pill);
  border:1px solid color-mix(in srgb, var(--sv-voice-accent) 35%, var(--sv-line)); font-size:var(--sv-fs-xs);
  text-transform:uppercase; letter-spacing:.05em; color:var(--sv-voice-accent); margin:0 0 var(--sv-3); }
.sv-voice-name{ font-family:var(--sv-serif); font-size:clamp(32px,5vw,52px); line-height:1.05; margin:0; font-weight:500; }
.sv-voice-handle{ margin:var(--sv-2) 0 0; color:var(--sv-muted); font-size:var(--sv-fs-sm); }
.sv-voice-headline{ font-family:var(--sv-serif); font-size:var(--sv-fs-h3); line-height:1.3; margin:var(--sv-4) 0 0; }
.sv-voice-blurb{ margin:var(--sv-3) 0 0; color:var(--sv-muted); font-size:var(--sv-fs-body); line-height:1.55; max-width:52ch; }
.sv-voice-avatar{ width:100%; max-width:220px; aspect-ratio:1; object-fit:cover; border-radius:var(--sv-r-lg);
  border:3px solid color-mix(in srgb, var(--sv-voice-accent) 45%, var(--sv-line)); }
.sv-voice-avatar--mono{ display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--sv-voice-accent) 12%, var(--sv-surface-2));
  font-family:var(--sv-serif); font-size:2rem; color:var(--sv-voice-accent); }
.sv-voice-channels{ display:flex; flex-wrap:wrap; gap:var(--sv-2); margin-top:var(--sv-4); }
.sv-voice-channel-btn{ display:inline-flex; align-items:center; min-height:44px; padding:8px 14px; border-radius:var(--sv-r-pill);
  border:1px solid color-mix(in srgb, var(--sv-voice-accent) 40%, var(--sv-line)); color:var(--sv-ink); text-decoration:none;
  font-size:var(--sv-fs-sm); font-weight:500; background:var(--sv-surface); }
.sv-voice-channel-btn:hover{ border-color:var(--sv-voice-accent); background:color-mix(in srgb, var(--sv-voice-accent) 8%, var(--sv-surface)); }
.sv-voice-section-title{ font-family:var(--sv-serif); font-size:var(--sv-fs-h2); margin:0 0 var(--sv-4); font-weight:500;
  border-left:4px solid var(--sv-voice-accent); padding-left:var(--sv-3); }
.sv-voice-embed{ position:relative; width:100%; aspect-ratio:16/9; background:var(--sv-surface-2); border-radius:var(--sv-r-lg); overflow:hidden;
  border:1px solid var(--sv-line); }
.sv-voice-iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.sv-voice-embed-caption{ margin:var(--sv-3) 0 0; font-size:var(--sv-fs-sm); }
.sv-voice-embed-caption a{ color:var(--sv-voice-accent); }
.sv-voice-wall-grid{ display:grid; gap:var(--sv-4); grid-template-columns:1fr; }
@media (min-width:640px){ .sv-voice-wall-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .sv-voice-wall-grid{ grid-template-columns:repeat(3,1fr); } }
.sv-voice-episode-card{ display:flex; flex-direction:column; gap:var(--sv-2); text-decoration:none; color:inherit;
  border:1px solid var(--sv-line); border-radius:var(--sv-r); overflow:hidden; background:var(--sv-surface);
  transition:border-color .15s, box-shadow .15s; min-height:44px; }
.sv-voice-episode-card:hover{ border-color:color-mix(in srgb, var(--sv-voice-accent) 50%, var(--sv-line)); box-shadow:var(--sv-shadow-sm, 0 2px 8px rgba(0,0,0,.06)); }
.sv-voice-episode-thumb{ aspect-ratio:16/9; background:var(--sv-surface-2); overflow:hidden; }
.sv-voice-episode-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.sv-voice-episode-body{ padding:var(--sv-3); display:flex; flex-direction:column; gap:var(--sv-1); }
.sv-voice-episode-title{ margin:0; font-size:var(--sv-fs-sm); font-weight:600; line-height:1.35; }
.sv-voice-episode-date{ font-size:var(--sv-fs-xs); color:var(--sv-faint); }
.sv-voice-show-grid{ display:grid; gap:var(--sv-3); grid-template-columns:1fr; }
@media (min-width:600px){ .sv-voice-show-grid{ grid-template-columns:repeat(2,1fr); } }
.sv-voice-show-tile{ padding:var(--sv-4); border:1px solid var(--sv-line); border-radius:var(--sv-r);
  background:color-mix(in srgb, var(--sv-voice-accent) 6%, var(--sv-surface)); min-height:72px; display:flex; align-items:center; }
.sv-voice-show-label{ font-family:var(--sv-serif); font-size:var(--sv-fs-body); font-weight:500; }
.sv-voice-shop-cta{ display:inline-flex; align-items:center; min-height:44px; margin-top:var(--sv-3); padding:10px 18px;
  border-radius:var(--sv-r-pill); background:var(--sv-voice-accent); color:#fff; text-decoration:none; font-weight:600; font-size:var(--sv-fs-sm); }
.sv-voice-shop-cta:hover{ filter:brightness(1.05); }
.sv-voice-coming-soon{ margin:0; color:var(--sv-muted); font-size:var(--sv-fs-sm); font-style:italic; }
.sv-voice-site-link{ display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; border-radius:var(--sv-r-pill);
  border:2px solid var(--sv-voice-accent); color:var(--sv-voice-accent); text-decoration:none; font-weight:600; }
.sv-ak-desk--voice .sv-publication-grid{ display:block; }
