/* ═══════════════════════════════════════════════════════════════
   ChronoForge Pulse — SC Dashboard (sc-dashboard.css)
   Editorial supply-chain dashboard. Uses ONLY tokens from theme.css.
   ═══════════════════════════════════════════════════════════════ */

body.scd-page{
  background:var(--bg);
  color:var(--ink);
  min-height:100vh;
  display:flex; flex-direction:column;
  overflow-x:hidden;
  font-family:var(--font-sans);
}

/* ───────────────────── TOPBAR ───────────────────── */
.scd-topbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  position:sticky; top:0; z-index:60;
}
.scd-topbar-left,
.scd-topbar-right{
  display:flex; align-items:center; gap:12px;
  flex:1 0 auto;
}
.scd-topbar-right{ justify-content:flex-end; }
.scd-topbar-center{
  flex:1 1 auto;
  display:flex; justify-content:center;
}
.scd-nav-tabs{
  display:inline-flex; gap:2px;
  padding:4px;
  border:1px solid var(--line);
  background:var(--bg-card);
  border-radius:999px;
}
.scd-nav-tabs .db-nav-tab{
  font-size:12.5px; font-weight:450;
  padding:7px 14px;
  border-radius:999px;
  white-space:nowrap;
}
.scd-nav-tabs .db-nav-tab.active{
  color:#f1efe8; background:var(--ink); font-weight:500;
}

.scd-refresh-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 12px;
  border:1px solid var(--line);
  background:var(--bg-card);
  border-radius:999px;
  font-family:var(--font-mono); font-size:11px;
  color:var(--muted);
  letter-spacing:0.02em;
}
.scd-refresh-pill .scd-refresh-dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
  animation:pulse 2.4s ease-in-out infinite;
}
.scd-refresh-pill.is-stale .scd-refresh-dot{
  background:var(--warn);
  box-shadow:0 0 0 4px rgba(184,99,58,0.16);
}
.scd-refresh-text{ font-variant-numeric:tabular-nums; }

.scd-refresh-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--ink); color:var(--bg);
  font-size:12.5px; font-weight:500;
  transition:background .15s ease, opacity .15s ease;
}
.scd-refresh-btn:hover{ background:#000; }
.scd-refresh-btn:disabled{ opacity:0.55; cursor:not-allowed; }

/* ───────────────────── HEADLINE STRIP ───────────────────── */
.scd-headline-strip{
  background:var(--bg);
  padding:64px 0 40px;
}
.scd-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:6px 12px 6px 8px;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:11.5px; letter-spacing:0.04em;
  color:var(--ink-2);
  text-transform:uppercase;
}
.scd-eyebrow-dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
  animation:pulse 2.4s ease-in-out infinite;
}
.scd-headline{
  font-family:var(--font-sans);
  font-size:clamp(28px, 4.4vw, 44px);
  line-height:1.08; letter-spacing:-0.025em;
  font-weight:500;
  margin:22px 0 0;
  max-width:34ch;
  color:var(--ink);
}
.scd-headline em,
.scd-headline-it{
  font-family:var(--font-serif);
  font-style:italic; font-weight:400;
  color:var(--accent);
  letter-spacing:-0.01em;
}
.scd-headline-num{
  font-family:var(--font-mono);
  font-weight:500;
  border-bottom:1px solid var(--line-2);
  padding-bottom:1px;
  font-feature-settings:"tnum" 1;
}
.scd-headline-sep{
  display:inline-block;
  margin:0 .55ch;
  color:var(--muted-2);
  font-weight:400;
}
.scd-headline-placeholder{
  color:var(--muted);
  font-family:var(--font-serif);
  font-style:italic; font-weight:400;
}

/* ───────────────────── EMPTY STATE ───────────────────── */
.scd-empty-state{
  padding:120px 0 140px;
  text-align:left;
}
.scd-empty-h{
  font-family:var(--font-serif); font-style:italic;
  font-size:clamp(36px, 5.4vw, 64px);
  line-height:1.05; letter-spacing:-0.02em;
  margin:0 0 18px;
  color:var(--ink);
}
.scd-empty-h em{ color:var(--accent); }
.scd-empty-sub{
  color:var(--muted); font-size:16px;
  margin:0 0 28px; max-width:54ch;
}
.scd-empty-cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  border-radius:999px;
  background:var(--accent); color:#f1efe8;
  font-size:14px; font-weight:500;
  transition:background .15s ease, transform .15s ease;
}
.scd-empty-cta:hover{ background:var(--accent-bright); }
.scd-empty-cta .scd-arrow{ transition:transform .15s ease; }
.scd-empty-cta:hover .scd-arrow{ transform:translateX(3px); }

/* ───────────────────── MAIN ───────────────────── */
.scd-main{ display:flex; flex-direction:column; }

/* ───────────────────── STATUS ROW ───────────────────── */
.scd-status-row{
  background:var(--bg);
  padding:8px 0 32px;
}
.scd-stats{
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
}
.scd-stat .stat-v{
  font-feature-settings:"tnum" 1;
  font-family:var(--font-sans);
  font-size:26px; line-height:1.1;
  letter-spacing:-0.02em; font-weight:500;
}
.scd-stat .stat-d{
  font-family:var(--font-serif); font-style:italic;
  font-size:13px;
  color:var(--accent);
  margin-top:6px;
  min-height:1.2em;
}
.scd-stat .stat-d.warn{ color:var(--warn); }

/* ───────────────────── EXCEPTIONS — DEEP INK ───────────────────── */
.scd-exceptions{
  background:var(--bg-deep);
  color:#e8e6dd;
  padding:80px 0;
  position:relative;
}
.scd-exc-head{ margin-bottom:36px; }
.scd-exc-eyebrow{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.08em;
  color:#9d9c91;
  text-transform:uppercase;
}
.scd-exc-title{
  font-family:var(--font-sans);
  font-size:clamp(28px, 4vw, 42px);
  line-height:1.06; letter-spacing:-0.025em;
  font-weight:500;
  margin:14px 0 0;
  color:#f1efe8;
}
.scd-exc-title em{
  font-family:var(--font-serif); font-style:italic; font-weight:400;
  color:#e8b89a;
}
.scd-exc-track{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:18px;
}
.scd-exc-card{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:var(--r-md);
  padding:22px 22px 20px;
  display:flex; flex-direction:column;
  min-height:140px;
}
.scd-exc-sev{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#9d9c91;
  margin-bottom:14px;
}
.scd-exc-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--warn);
  flex-shrink:0;
  box-shadow:0 0 0 4px rgba(184,99,58,0.16);
}
.scd-exc-card[data-sev="critical"] .scd-exc-dot{
  background:var(--warn);
  box-shadow:0 0 0 4px rgba(184,99,58,0.18);
}
.scd-exc-card[data-sev="high"] .scd-exc-dot{
  background:#e8b89a;
  box-shadow:0 0 0 4px rgba(232,184,154,0.14);
}
.scd-exc-card[data-sev="medium"] .scd-exc-dot{
  background:#a9c5b6;
  box-shadow:0 0 0 4px rgba(169,197,182,0.14);
}
.scd-exc-card[data-sev="low"] .scd-exc-dot{
  background:#6c8b7a;
  box-shadow:0 0 0 4px rgba(108,139,122,0.14);
}
.scd-exc-cardtitle{
  font-family:var(--font-serif); font-style:italic;
  font-weight:400;
  font-size:21px; line-height:1.22;
  letter-spacing:-0.01em;
  color:#f1efe8;
  margin:0 0 12px;
}
.scd-exc-detail{
  font-family:var(--font-mono);
  font-size:12px; line-height:1.55;
  color:#a8a89e;
  margin:auto 0 0;
}
.scd-exc-empty{
  font-family:var(--font-serif); font-style:italic;
  font-size:24px; line-height:1.3;
  color:#cfd8d2;
  margin:0;
}
.scd-exc-empty em{ color:#e8b89a; }
.scd-exc-empty span{ font-family:var(--font-mono); font-style:normal; color:#f1efe8; }

/* ───────────────────── TRENDS ───────────────────── */
.scd-trends{
  background:var(--bg);
  padding:64px 0 48px;
}
.scd-trends-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
}
.scd-trend-card{
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:22px 24px 18px;
  box-shadow:var(--shadow-sm);
}
.scd-trend-title{
  font-family:var(--font-sans);
  font-size:15px; letter-spacing:-0.01em;
  font-weight:500;
  color:var(--ink);
  margin:0 0 14px;
}
.scd-trend-title em{
  font-family:var(--font-serif); font-style:italic; font-weight:400;
  color:var(--accent);
}
.scd-spark{
  width:100%; height:80px;
  display:block;
  margin-bottom:6px;
}
.scd-spark-line{
  fill:none;
  stroke:var(--accent);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.scd-spark-line.is-warn{ stroke:var(--warn); }
.scd-spark-base{
  fill:none;
  stroke:var(--line);
  stroke-width:1;
  stroke-dasharray:2 4;
}
.scd-spark.is-revealing .scd-spark-line{
  stroke-dasharray:var(--len);
  stroke-dashoffset:var(--len);
  animation:scd-draw 1.2s var(--ease-out-expo, cubic-bezier(0.16,1,0.3,1)) forwards;
}
@keyframes scd-draw{ to { stroke-dashoffset:0; } }

.scd-trend-axis{
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:10px;
  color:var(--muted);
  letter-spacing:0.04em;
  text-transform:uppercase;
  margin-top:6px;
}

/* ───────────────────── PLANNED ORDERS TIMELINE ───────────────────── */
.scd-orders{
  background:var(--bg);
  padding:48px 0;
}
.scd-section-head{ margin-bottom:24px; }
.scd-section-head-tight{ margin-bottom:18px; }
.scd-section-title{
  font-family:var(--font-sans);
  font-size:clamp(24px, 3vw, 32px);
  line-height:1.08; letter-spacing:-0.025em;
  font-weight:500;
  margin:0;
  color:var(--ink);
}
.scd-section-title em{
  font-family:var(--font-serif); font-style:italic; font-weight:400;
  color:var(--accent);
}
.scd-section-sub{
  color:var(--muted);
  font-size:14px;
  margin:6px 0 0;
  max-width:64ch;
}

.scd-orders-frame{
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:18px 18px 12px;
  box-shadow:var(--shadow-sm);
  overflow-x:auto;
}
.scd-orders-svg{
  display:block;
  width:100%;
  min-width:640px;
  height:auto;
}
.scd-orders-grid-line{ stroke:var(--line); stroke-width:1; }
.scd-orders-axis-label,
.scd-orders-sku-label{
  font-family:var(--font-mono);
  font-size:10.5px;
  fill:var(--muted);
  letter-spacing:0.04em;
  text-transform:uppercase;
}
.scd-orders-sku-label{ fill:var(--ink-2); text-transform:none; font-size:11px; }
.scd-orders-bar{
  cursor:default;
  transition:opacity .15s ease;
}
.scd-orders-bar:hover{ opacity:0.85; }

.scd-orders-legend,
.scd-grid-legend{
  display:flex; flex-wrap:wrap; gap:18px;
  margin-top:14px;
  font-family:var(--font-mono); font-size:11px;
  color:var(--muted);
  letter-spacing:0.04em;
  text-transform:uppercase;
}
.scd-legend-item{ display:inline-flex; align-items:center; gap:8px; }
.scd-legend-swatch{
  width:11px; height:11px;
  border-radius:2px;
  display:inline-block;
}

/* ───────────────────── CAPACITY HEATMAP ───────────────────── */
.scd-capacity{
  background:var(--bg);
  padding:48px 0 64px;
}
.scd-grid-wrap{
  display:grid;
  gap:0;
  /* set inline via JS: --rows / --cols */
  grid-template-columns:140px 1fr;
  grid-template-rows:auto 1fr;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:18px;
  box-shadow:var(--shadow-sm);
  overflow-x:auto;
}
.scd-grid-corner{ grid-column:1; grid-row:1; }
.scd-grid-cols{
  grid-column:2; grid-row:1;
  display:grid;
  grid-template-columns:repeat(var(--cols, 5), minmax(48px, 1fr));
  gap:6px;
  padding:0 0 10px;
}
.scd-grid-cols span{
  font-family:var(--font-mono);
  font-size:10.5px;
  color:var(--muted);
  letter-spacing:0.04em;
  text-transform:uppercase;
  text-align:center;
}
.scd-grid-rows{
  grid-column:1; grid-row:2;
  display:grid;
  grid-template-rows:repeat(var(--rows, 3), minmax(36px, 1fr));
  gap:6px;
  padding-right:14px;
  align-content:start;
}
.scd-grid-rows span{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--ink-2);
  display:flex; align-items:center;
}
.scd-grid-cells{
  grid-column:2; grid-row:2;
  display:grid;
  grid-template-columns:repeat(var(--cols, 5), minmax(48px, 1fr));
  grid-template-rows:repeat(var(--rows, 3), minmax(36px, 1fr));
  gap:6px;
  align-content:start;
}
.scd-cell{
  border-radius:4px;
  background:var(--accent-dim);
  position:relative;
  transition:transform .15s ease, filter .15s ease;
  opacity:0;
  cursor:default;
  min-height:36px;
}
.scd-cell.is-in{ opacity:1; }
.scd-cell:hover{ transform:scale(1.04); filter:brightness(1.08); z-index:2; }
.scd-cell[data-band="over"]   { background:var(--warn); }
.scd-cell[data-band="full"]   { background:var(--accent); }
.scd-cell[data-band="mid"]    { background:#6c8b7a; }
.scd-cell[data-band="low"]    { background:var(--accent-dim); }
.scd-cell[data-band="empty"]  { background:#ece9df; }

/* ───────────────────── EXTERNAL EVENTS ───────────────────── */
.scd-events{
  background:var(--bg-soft);
  border-top:1px solid var(--line);
  padding:48px 0 56px;
}
.scd-events-list{
  display:flex; flex-direction:column;
  gap:0;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--bg-card);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.scd-event-row{
  display:grid;
  grid-template-columns:120px 1fr auto auto;
  gap:18px; align-items:center;
  padding:14px 22px;
  border-bottom:1px solid var(--line);
}
.scd-event-row:last-child{ border-bottom:none; }
.scd-event-cat{
  font-family:var(--font-mono);
  font-size:10.5px;
  color:var(--muted);
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.scd-event-title{
  font-family:var(--font-serif); font-style:italic;
  font-size:18px; line-height:1.3;
  color:var(--ink);
  margin:0;
}
.scd-event-delta{
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--ink-2);
  letter-spacing:0.02em;
}
.scd-event-sev{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:10.5px;
  color:var(--muted);
  text-transform:uppercase; letter-spacing:0.06em;
}
.scd-event-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--accent);
}
.scd-event-row[data-sev="high"]     .scd-event-dot{ background:var(--warn); }
.scd-event-row[data-sev="medium"]   .scd-event-dot{ background:#e8b89a; }
.scd-event-row[data-sev="low"]      .scd-event-dot{ background:var(--accent); }

/* ───────────────────── TOOLTIP ───────────────────── */
.scd-tooltip{
  position:fixed;
  z-index:200;
  pointer-events:none;
  padding:8px 11px;
  background:var(--bg-deep);
  color:#e8e6dd;
  font-family:var(--font-mono);
  font-size:11.5px;
  line-height:1.4;
  border-radius:var(--r-sm);
  box-shadow:var(--shadow-lg);
  opacity:0;
  transform:translateY(4px);
  transition:opacity .12s ease, transform .12s ease;
  max-width:240px;
  white-space:nowrap;
}
.scd-tooltip.is-on{ opacity:1; transform:translateY(0); }
.scd-tooltip strong{ color:#f1efe8; font-weight:500; }
.scd-tooltip em{ color:#a9c5b6; font-style:normal; }

/* ───────────────────── FOOTER ───────────────────── */
.scd-footer{
  border-top:1px solid var(--line);
  background:var(--bg);
  padding:22px var(--pad-x);
  margin-top:auto;
}
.scd-footer-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:11.5px;
  color:var(--muted); letter-spacing:0.02em;
}
.scd-footer-status{ display:inline-flex; align-items:center; gap:8px; }
.scd-footer-status .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
  animation:pulse 2.4s ease-in-out infinite;
}
.scd-footer-links{
  display:inline-flex; align-items:center; gap:18px;
  list-style:none; padding:0; margin:0;
}
.scd-footer-links a{ color:var(--muted); transition:color .15s ease; }
.scd-footer-links a:hover{ color:var(--ink); }

/* ───────────────────── STAGGERED REVEAL ───────────────────── */
.scd-reveal{
  opacity:0; transform:translateY(10px);
  transition:opacity .55s var(--ease-out-quart, cubic-bezier(0.25,1,0.5,1)),
             transform .55s var(--ease-out-quart, cubic-bezier(0.25,1,0.5,1));
}
.scd-reveal.is-in{ opacity:1; transform:none; }

/* ───────────────────── RESPONSIVE ───────────────────── */
@media (max-width: 980px){
  .scd-trends-grid{ grid-template-columns:1fr; }
  .scd-topbar-center{ display:none; }
  .scd-status-row .stats-row{ grid-template-columns:repeat(2, 1fr); }
  .scd-event-row{ grid-template-columns:1fr; gap:6px; }
}
@media (max-width: 640px){
  .scd-headline-strip{ padding:40px 0 24px; }
  .scd-status-row .stats-row{ grid-template-columns:1fr; }
  .scd-grid-wrap{ grid-template-columns:108px 1fr; }
  .scd-refresh-btn span{ display:none; }
}

/* ───────────────────── REDUCED MOTION ───────────────────── */
@media (prefers-reduced-motion: reduce){
  .scd-spark.is-revealing .scd-spark-line{ animation:none; stroke-dashoffset:0; }
  .scd-reveal{ opacity:1; transform:none; transition:none; }
  .scd-cell{ opacity:1 !important; transition:none; }
  .scd-eyebrow-dot,
  .scd-refresh-pill .scd-refresh-dot,
  .scd-footer-status .dot{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ═══════════════════════════════════════════════════════════════
   Class hooks consumed by sc-dashboard.js
   (kept at the bottom so they win the cascade)
   ═══════════════════════════════════════════════════════════════ */

/* Geist Mono numerals embedded inside the Instrument Serif headline */
.scd-h-num{
  font-family:var(--font-mono);
  font-size:0.78em;
  letter-spacing:-0.005em;
  border-bottom:1px solid var(--accent);
  padding-bottom:1px;
  margin:0 2px;
  font-feature-settings:"tnum","ss01";
}

/* status row delta colors */
.stat-d.warn,
.scd-stat .stat-d.warn{ color:var(--warn) !important; }

/* exceptions cards severity */
.scd-exc-card{
  position:relative;
  background:#1c1b16; color:#e8e6dd;
  border:1px solid rgba(255,255,255,0.06);
  border-radius:14px;
  padding:18px 18px 16px;
  min-width:260px; max-width:300px; flex:0 0 auto;
  display:flex; flex-direction:column; gap:6px;
  scroll-snap-align:start;
  opacity:0; transform:translateY(8px);
  animation:scd-exc-in .35s ease-out forwards;
}
@keyframes scd-exc-in{ to { opacity:1; transform:none; } }
.scd-exc-card .scd-exc-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--muted); align-self:flex-start;
}
.scd-exc-card.sev-critical .scd-exc-dot{
  background:var(--warn);
  box-shadow:0 0 0 4px rgba(184,99,58,0.18);
}
.scd-exc-card.sev-high .scd-exc-dot{
  background:#e0a26d;
  box-shadow:0 0 0 4px rgba(224,162,109,0.16);
}
.scd-exc-card.sev-medium .scd-exc-dot{
  background:#a9c5b6;
  box-shadow:0 0 0 4px rgba(169,197,182,0.18);
}
.scd-exc-card .scd-exc-sev{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.08em;
  color:#a8a89e; margin-top:-2px;
}
.scd-exc-card .scd-exc-cardtitle{
  font-family:var(--font-serif); font-style:italic; font-weight:400;
  font-size:19px; line-height:1.22; letter-spacing:-0.005em;
  color:#f1efe8; margin:2px 0 0;
}
.scd-exc-card .scd-exc-detail{
  font-family:var(--font-mono); font-size:11.5px; line-height:1.6;
  color:#cfd8d2; margin:0; font-feature-settings:"tnum";
}
.scd-exc-card .scd-exc-kind{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:#6c8b7a;
  border-top:1px solid rgba(255,255,255,0.06);
  padding-top:8px; margin-top:6px;
}

/* sparkline graphics */
.scd-spark{ width:100%; height:80px; overflow:visible; }
.scd-spark-line{
  fill:none; stroke:var(--accent); stroke-width:1.6;
  stroke-dasharray:600; stroke-dashoffset:0;
}
.scd-spark.is-revealing .scd-spark-line,
.scd-spark .scd-spark-line{
  animation:scd-spark-draw 1.0s ease-out forwards;
}
@keyframes scd-spark-draw{ from { stroke-dashoffset:600; } to { stroke-dashoffset:0; } }
.scd-spark-area{ fill:rgba(45,74,62,0.08); }
.scd-spark-dot{ fill:#fff; stroke:var(--accent); stroke-width:1.6; }
.scd-spark-label{
  font-family:var(--font-mono); font-size:10px;
  fill:var(--ink); font-feature-settings:"tnum";
}
.scd-trend-axis{
  margin-top:6px;
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:10px;
  color:var(--muted-2); letter-spacing:0.04em;
}

/* planned-orders timeline */
.scd-orders-svg{ display:block; }
.scd-o-axis{
  font-family:var(--font-mono); font-size:10px;
  fill:var(--muted-2); letter-spacing:0.04em;
}
.scd-o-row-label{
  font-family:var(--font-mono); font-size:11px;
  fill:var(--ink-2);
}
.scd-o-grid{ stroke:var(--line); stroke-dasharray:2 4; }
.scd-o-rowsep{ stroke:var(--line); }
.scd-o-bar{
  cursor:pointer;
  transition:opacity .15s ease, transform .15s ease;
}
.scd-o-bar:hover{ opacity:0.85; }

/* capacity heatmap cells */
.scd-grid-cells{
  display:grid;
  grid-template-columns:repeat(var(--cols, 5), 1fr);
  gap:4px;
}
.scd-grid-cols{
  display:grid;
  grid-template-columns:repeat(var(--cols, 5), 1fr);
  gap:4px;
  margin-bottom:6px;
}
.scd-grid-col{
  font-family:var(--font-mono); font-size:10.5px;
  text-align:center; letter-spacing:0.04em;
  color:var(--muted-2); padding:4px 0;
}
.scd-grid-rows{
  display:flex; flex-direction:column; gap:4px;
}
.scd-grid-row{
  font-family:var(--font-mono); font-size:11px;
  color:var(--ink-2);
  display:flex; align-items:center;
  padding:0 8px; min-height:34px;
}
.scd-grid-cell{
  aspect-ratio:1.4 / 1;
  border-radius:6px;
  background:#cdd9d3;
  cursor:pointer;
  opacity:0; transform:scale(0.9);
  animation:scd-cell-in .32s ease-out forwards;
  transition:transform .15s ease, box-shadow .15s ease;
}
@keyframes scd-cell-in{ to { opacity:1; transform:none; } }
.scd-grid-cell:hover{ transform:scale(1.04); box-shadow:0 0 0 2px var(--ink); }
.scd-grid-cell.util-low { background:#dbe3dd; }
.scd-grid-cell.util-mid { background:#9bb1a4; }
.scd-grid-cell.util-high{ background:var(--accent); }
.scd-grid-cell.util-over{
  background:var(--warn);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.18);
}
.scd-grid-empty{
  grid-column:1 / -1;
  font-family:var(--font-mono); font-size:11.5px;
  color:var(--muted); padding:24px 0;
  text-align:center;
}

/* external events cards */
.scd-event{
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  display:flex; flex-direction:column; gap:6px;
  position:relative;
  opacity:0; transform:translateY(6px);
  animation:scd-exc-in .3s ease-out forwards;
}
.scd-event .scd-event-cat{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.08em;
  color:var(--muted-2);
}
.scd-event .scd-event-dot{
  position:absolute; top:14px; right:14px;
  width:7px; height:7px; border-radius:50%;
  background:var(--muted);
}
.scd-event.sev-high .scd-event-dot{
  background:var(--warn);
  box-shadow:0 0 0 4px rgba(184,99,58,0.16);
}
.scd-event.sev-medium .scd-event-dot{
  background:#e0a26d;
}
.scd-event.sev-low .scd-event-dot{
  background:var(--accent);
}
.scd-event .scd-event-title{
  font-family:var(--font-serif); font-style:italic; font-weight:400;
  font-size:17px; line-height:1.3; color:var(--ink);
  margin:2px 0 0;
}
.scd-event .scd-event-meta{
  font-family:var(--font-mono); font-size:11px;
  color:var(--muted); margin:0;
}
.scd-event .scd-event-impact{ color:var(--accent); }
.scd-event .scd-event-delta{ color:var(--ink-2); }
.scd-events-list{
  display:grid; gap:12px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}

/* refresh pill stale state */
.scd-refresh-pill.is-stale{ color:var(--warn); }

/* tooltip content helpers (the partial tooltip class is at line ~552) */
.scd-tooltip{
  position:fixed; pointer-events:none;
  background:#14130f; color:#f1efe8;
  border-radius:8px;
  padding:10px 12px;
  font-family:var(--font-mono); font-size:11.5px;
  line-height:1.55;
  box-shadow:0 12px 28px -10px rgba(0,0,0,0.45);
  z-index:200;
  opacity:0; transform:translateY(4px);
  transition:opacity .12s ease, transform .12s ease;
  max-width:220px;
}
.scd-tooltip.is-on{ opacity:1; transform:none; }
.scd-tooltip b{ display:block; font-family:var(--font-sans); font-weight:500; font-size:12.5px; color:#f1efe8; }
.scd-tooltip .t-sub{ display:block; color:#a9c5b6; font-size:10.5px; letter-spacing:0.04em; margin-top:2px; }
.scd-tooltip .t-num{ display:block; color:var(--warn); font-size:11.5px; margin-top:6px; }

@media (prefers-reduced-motion: reduce){
  .scd-grid-cell,
  .scd-exc-card,
  .scd-event{ opacity:1 !important; transform:none !important; animation:none !important; }
  .scd-spark .scd-spark-line{ animation:none !important; stroke-dashoffset:0 !important; }
}
