/* /supply-chain-map only. House tokens from warm.css; no new colours. */
.scm-asof{color:var(--muted);font-size:15px;margin-top:4px}

.scm-panel{background:var(--ink);color:var(--on-dark);border-radius:26px;padding:28px;display:flex;flex-direction:column;gap:20px}
.scm-layers{display:flex;flex-wrap:wrap;gap:8px}
.scm-layers button{font:500 15px/1 var(--sans);color:var(--on-dark);background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:12px 18px;min-height:44px;cursor:pointer}
.scm-layers button:hover{border-color:var(--on-dark-mute)}
.scm-layers button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.scm-layers button:focus-visible,.scm-step button:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px}
.scm-stage{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:28px;align-items:start}
.scm-mapcol{min-width:0}
.scm-mapbox{position:relative;background:var(--ink-deep);border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;min-height:200px}
.scm-mapbox svg{display:block;width:100%;height:auto}
.scm-mapbox svg[hidden]{display:none}
.scm-nojs{padding:24px;color:var(--on-dark-body)}
.scm-country{fill:rgba(245,248,251,.09);stroke:var(--ink-deep);stroke-width:.6}
.scm-country.hit{fill:rgba(179,50,63,.42);stroke:#e9a0a8;stroke-width:.8}
.scm-state{fill:var(--accent-dark);stroke:var(--ink-deep);stroke-width:1.2;cursor:pointer}
.scm-state:hover,.scm-state:focus{stroke:var(--on-dark);stroke-width:2;outline:none}
.scm-ping{fill:var(--rose);fill-opacity:.85;stroke:var(--on-dark);stroke-opacity:.6;stroke-width:1;cursor:pointer}
.scm-ping.soft{fill:var(--accent-dark);fill-opacity:.7}
.scm-ping:hover,.scm-ping:focus{fill-opacity:1;stroke-opacity:1;stroke-width:2;outline:none}
.scm-halo{fill:var(--rose);fill-opacity:.22;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  .scm-ping,.scm-halo{transform-box:fill-box;transform-origin:center;animation:scm-land .6s cubic-bezier(.2,.8,.2,1) both}
  .scm-halo{animation:scm-land .6s cubic-bezier(.2,.8,.2,1) both,scm-breathe 3.6s ease-in-out .8s infinite}
  @keyframes scm-land{from{transform:scale(0)}to{transform:scale(1)}}
  @keyframes scm-breathe{0%,100%{opacity:1}50%{opacity:.4}}
}
.scm-tip{position:absolute;z-index:3;pointer-events:none;max-width:260px;background:var(--paper);color:var(--ink);border-radius:12px;padding:9px 12px;font-size:14px;line-height:1.35;box-shadow:0 12px 30px -12px rgba(0,0,0,.6)}
.scm-tip b{display:block}
.scm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 4px 0;font-size:14px;color:var(--on-dark-mute)}
.scm-scale{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.scm-ramp{display:inline-block;width:120px;height:10px;border-radius:5px;background:linear-gradient(90deg,rgba(134,198,236,.12),var(--accent-dark))}
.scm-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--rose);vertical-align:-1px;margin-right:6px}
.scm-dot.soft{background:var(--accent-dark)}

.scm-readout{display:flex;flex-direction:column;gap:12px;min-width:0}
.scm-readout h3{font-size:22px;line-height:1.2;color:var(--on-dark)}
.scm-big{font:500 clamp(40px,5vw,56px)/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--on-dark)}
.scm-big-label{color:var(--on-dark-mute);font-size:15px;margin-top:-4px}
.scm-readout p{color:var(--on-dark-body);font-size:16px;line-height:1.5}
.scm-place{border-top:1px solid rgba(255,255,255,.12);padding-top:14px;display:flex;flex-direction:column;gap:6px;min-height:104px}
.scm-place .name{font-weight:700;color:var(--on-dark)}
.scm-place .fig{font:500 15px/1.4 var(--mono);font-variant-numeric:tabular-nums;color:var(--accent-dark)}
.scm-place span{color:var(--on-dark-body);font-size:15px}
.scm-place .scm-hint{color:var(--on-dark-mute)}
.scm-readout .scm-src{color:var(--on-dark-mute);font-size:13px}

.scm-track{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink)}
.scm-step{position:relative;padding:28px 24px 28px 0;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--border)}
.scm-step::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}
.scm-step.on::before{background:var(--rose);border-color:var(--rose)}
.scm-step h3{font-size:22px;line-height:1.2}
.scm-breaks{color:var(--ink);font-size:17px;line-height:1.5}
.scm-breaks .k{font:500 1em var(--mono);font-variant-numeric:tabular-nums}
.scm-case{color:var(--muted);font-size:15px;line-height:1.5}
.scm-fix{color:var(--body);font-size:16px;line-height:1.5;padding-left:14px;border-left:3px solid var(--accent)}
.scm-fix strong{color:var(--accent);font-weight:700}
.scm-show{align-self:flex-start;font:500 14px/1 var(--sans);color:var(--ink);background:transparent;border:1px solid var(--line-strong);border-radius:999px;padding:10px 16px;min-height:44px;cursor:pointer;margin-top:auto}
.scm-show:hover{background:var(--ink);color:var(--paper)}

.scm-src-h{font-size:20px}
.scm-sources{margin:0;padding-left:18px;display:grid;gap:6px;font-size:15px;color:var(--body)}
.scm-note{color:var(--muted);font-size:14px;line-height:1.55;max-width:820px}

@media (max-width:980px){.scm-stage{grid-template-columns:1fr}.scm-track{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.scm-panel{padding:16px;border-radius:20px}.scm-track{grid-template-columns:1fr}.scm-step{padding-right:0}}
