/* ==========================================================================
   SUPPLY CHAIN SIMULATOR — styles
   Palette: bright yellow (--yellow) + black + white, chart accents colorful.
   Loaded after styles.css — inherits --yellow / --blue / --green / --red / --dark-yellow.
   ========================================================================== */

:root{
  --sim-purple:#7C3AED;
  --sim-teal:#0EA5A6;
  --sim-yellow:#FFD400;
  --sim-black:#0A0A0A;
}

.sim-page{background:#fff}
.sim-page main{max-width:none}

/* nav live dot */
.nav a.nav-live{color:#fff;display:inline-flex;align-items:center;gap:7px}
.live-dot{width:7px;height:7px;border-radius:50%;background:#FF3B3B;display:inline-block;box-shadow:0 0 0 0 rgba(255,59,59,.6);animation:simPulseDot 1.6s infinite}
@keyframes simPulseDot{0%{box-shadow:0 0 0 0 rgba(255,59,59,.55)}70%{box-shadow:0 0 0 8px rgba(255,59,59,0)}100%{box-shadow:0 0 0 0 rgba(255,59,59,0)}}

/* progress rail */
.sim-rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:35;display:flex;flex-direction:column;align-items:center;gap:22px}
.sim-rail-fill{position:absolute;left:50%;top:0;width:2px;height:0%;background:var(--sim-black);transform:translateX(-50%);transition:height .25s linear;z-index:0}
.sim-rail:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(0,0,0,.15);transform:translateX(-50%)}
.sim-rail-dot{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--sim-black);cursor:pointer;transition:.2s}
.sim-rail-dot span{position:absolute;right:20px;top:50%;transform:translateY(-50%);font:700 10px 'Space Grotesk',sans-serif;letter-spacing:.08em;color:var(--sim-black);opacity:0;transition:.2s;white-space:nowrap;background:#fff;padding:3px 7px;border-radius:6px;border:1px solid #eee}
.sim-rail-dot:hover span{opacity:1}
.sim-rail-dot.active{background:var(--yellow);border-color:var(--sim-black);transform:scale(1.3)}
@media (max-width:900px){.sim-rail{display:none}}

/* ---------- HERO ---------- */
.sim-hero{min-height:92vh;background:var(--yellow);color:var(--sim-black);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 6vw 60px;position:relative;overflow:hidden}
.sim-hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(0,0,0,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.05) 1px,transparent 1px);background-size:46px 46px;pointer-events:none}
.sim-hero-inner{max-width:900px;position:relative;z-index:2}
.sim-eyebrow{font:800 12px/1 'Space Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;background:var(--sim-black);color:var(--yellow);display:inline-block;padding:9px 16px;border-radius:100px;margin-bottom:26px}
.sim-hero h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(42px,7.4vw,92px);line-height:.98;letter-spacing:-.05em;font-weight:700;margin:0 0 26px}
.sim-hero h1 em{font-style:normal;-webkit-text-stroke:2px var(--sim-black);color:var(--yellow)}
.sim-hero p{max-width:640px;margin:0 auto;font-size:18px;line-height:1.75;color:#221d00;font-weight:600}
.sim-start-btn{display:inline-flex;align-items:center;gap:12px;margin-top:38px;background:var(--sim-black);color:#fff;font:800 15px 'Space Grotesk',sans-serif;letter-spacing:-.01em;padding:0 26px;height:58px;border-radius:12px;text-decoration:none;box-shadow:0 14px 34px rgba(0,0,0,.25);transition:.22s}
.sim-start-btn:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(0,0,0,.32)}
.sim-start-btn span{transition:.2s}
.sim-start-btn:hover span{transform:translateX(4px)}
.sim-hero-strip{display:flex;gap:38px;justify-content:center;margin-top:52px}
.sim-hero-strip div{text-align:center}
.sim-hero-strip b{display:block;font:700 30px 'Space Grotesk',sans-serif}
.sim-hero-strip span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.7;margin-top:2px}
.sim-scroll-cue{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--sim-black);font:800 10px 'Space Grotesk',sans-serif;letter-spacing:.14em}
.sim-scroll-cue i{width:1px;height:34px;background:var(--sim-black);position:relative;overflow:hidden}
.sim-scroll-cue i:after{content:'';position:absolute;left:-2px;top:-20px;width:5px;height:14px;background:var(--sim-black);border-radius:3px;animation:simScrollDrop 1.6s infinite}
@keyframes simScrollDrop{0%{top:-14px;opacity:0}30%{opacity:1}100%{top:34px;opacity:0}}

/* ---------- STAGE shells ---------- */
.sim-stage{padding:110px 6vw;position:relative}
.sim-stage-dark{background:var(--sim-black);color:#fff}
.sim-stage-yellow{background:var(--yellow);color:var(--sim-black)}
.sim-stage-head{max-width:1300px;margin:0 auto 54px}
.sim-step-tag{font:800 11px 'Space Grotesk',sans-serif;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:14px}
.sim-stage h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(30px,4.2vw,52px);letter-spacing:-.05em;line-height:1.02;margin:0 0 16px;max-width:820px}
.sim-stage-head p{max-width:620px;font-size:16px;line-height:1.75}
.sim-stage-dark .sim-stage-head p{color:#b9b9b9}
.sim-stage-yellow .sim-stage-head p{color:#1f1a00;font-weight:600}

.sim-panel{max-width:1300px;margin:0 auto;background:#fff;border-radius:26px;padding:44px;box-shadow:0 30px 80px rgba(0,0,0,.14)}
.sim-panel-dark{background:#111;border:1px solid #262626}
.sim-continue{display:inline-flex;align-items:center;gap:10px;margin-top:34px;font:800 13px 'Space Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:inherit;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:4px;transition:.2s;opacity:.55;pointer-events:none}
.sim-continue.is-ready{opacity:1;pointer-events:auto}
.sim-continue:hover{gap:16px}
.sim-continue.standalone{max-width:1300px;margin:34px auto 0;display:flex;justify-content:flex-end;opacity:1;pointer-events:auto}
.sim-stage-dark .sim-continue.standalone{color:#fff}
.sim-stage-yellow .sim-continue.standalone{color:var(--sim-black)}

/* ---------- STAGE 1 : map / hotspots ---------- */
.sim-map{max-width:1300px;margin:0 auto 20px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding-top:10px}
.sim-map-lines{position:absolute;top:-34px;left:0;width:100%;height:120px;pointer-events:none;z-index:0}
.sim-map-lines path{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1.5;stroke-dasharray:4 6}
.sim-node{position:relative;z-index:1;background:#151515;border:1px solid #2a2a2a;border-radius:20px;padding:26px 20px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:.25s;color:#fff}
.sim-node:hover{transform:translateY(-6px);border-color:var(--yellow)}
.sim-node[aria-pressed="true"]{background:var(--yellow);color:var(--sim-black);border-color:var(--yellow);box-shadow:0 20px 50px rgba(255,212,0,.25)}
.sim-node-ping{position:absolute;top:14px;right:14px;width:9px;height:9px;border-radius:50%;background:#EF4444;box-shadow:0 0 0 0 rgba(239,68,68,.6);animation:simPulseDot 1.8s infinite}
.sim-node[aria-pressed="true"] .sim-node-ping{background:var(--sim-black);box-shadow:none;animation:none}
.sim-iso{width:104px;height:104px;margin-bottom:10px}
.iso-base{fill:#3a3a3a}
.sim-node[aria-pressed="true"] .iso-base{fill:#000}
.iso-left{fill:#2a2a2a}
.sim-node[aria-pressed="true"] .iso-left{fill:#000;opacity:.75}
.iso-right{fill:#454545}
.sim-node[aria-pressed="true"] .iso-right{fill:#000;opacity:.55}
.iso-chimney,.iso-door,.iso-truck,.iso-storefront{fill:var(--yellow)}
.sim-node[aria-pressed="true"] .iso-chimney,.sim-node[aria-pressed="true"] .iso-door,.sim-node[aria-pressed="true"] .iso-truck,.sim-node[aria-pressed="true"] .iso-storefront{fill:#000}
.iso-truck-cab{fill:#fff}
.iso-wheel{fill:#111}
.iso-signal{stroke:#666;stroke-width:2;stroke-dasharray:2 3}
.sim-node[aria-pressed="true"] .iso-signal{stroke:#000}
.iso-warn{fill:#EF4444;animation:simPulseDot 1.8s infinite}
.sim-node[aria-pressed="true"] .iso-warn{fill:#000;animation:none}
.sim-node strong{font:700 16px 'Space Grotesk',sans-serif}
.sim-node small{opacity:.65;font-size:12.5px;margin-top:3px}

.sim-diagnosis{max-width:1300px;margin:38px auto 0;background:#151515;border:1px solid #262626;border-radius:22px;padding:36px 40px;min-height:80px}
.sim-diagnosis-empty{color:#8a8a8a;font-weight:700;font-size:14px;text-align:center;padding:16px 0}
.sim-diagnosis[data-active="none"] .sim-diagnosis-body{display:none}
.sim-diagnosis[data-active="none"] .sim-continue{display:none}
.sim-diagnosis-body{display:none}
.sim-diagnosis[data-active] .sim-diagnosis-empty{display:none}
.sim-diagnosis[data-active="none"] .sim-diagnosis-empty{display:block}
.sim-diagnosis-body[data-visible="true"]{display:block;animation:simFadeUp .4s ease both}
@keyframes simFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.sim-tag-red{background:#EF4444;color:#fff}
.sim-diagnosis h3{font-family:'Space Grotesk',sans-serif;font-size:26px;margin:16px 0 12px;max-width:680px;color:#fff}
.sim-diagnosis p{color:#b9b9b9;max-width:680px;font-size:15px;line-height:1.8}
.sim-diag-stats{display:flex;gap:34px;margin-top:22px}
.sim-diag-stats b{display:block;font:700 26px 'Space Grotesk',sans-serif;color:var(--yellow)}
.sim-diag-stats span{display:block;font-size:12px;color:#8a8a8a;margin-top:2px;max-width:160px}

/* ---------- STAGE 2 : slider ---------- */
.sim-slider-block{margin-bottom:38px}
.sim-slider-readout{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.sim-slider-readout small{display:block;font:800 11px 'Space Grotesk',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#777}
.sim-slider-readout strong{font:700 46px 'Space Grotesk',sans-serif;color:var(--sim-black)}
.sim-slider-state{font:800 12px 'Space Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.06em;background:#111;color:var(--yellow);padding:8px 14px;border-radius:100px;transition:.25s}
.sim-slider-state.optimized{background:#16A34A;color:#fff}
#accuracySlider{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:6px;background:linear-gradient(90deg,#EF4444,#FFD400 50%,#22C55E);outline:none;cursor:pointer}
#accuracySlider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:30px;height:30px;border-radius:50%;background:#fff;border:5px solid var(--sim-black);box-shadow:0 6px 16px rgba(0,0,0,.3);cursor:grab}
#accuracySlider::-moz-range-thumb{width:30px;height:30px;border-radius:50%;background:#fff;border:5px solid var(--sim-black);box-shadow:0 6px 16px rgba(0,0,0,.3);cursor:grab}
.sim-slider-ticks{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#777}

.sim-visual-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sim-visual-row-3{grid-template-columns:1.2fr 1fr 1fr}
.sim-visual-card{background:#f8f8f4;border:1px solid #eaeae2;border-radius:18px;padding:20px}
.sim-panel-dark .sim-visual-card{background:#1a1a1a;border-color:#2a2a2a}
.sim-visual-label{font:800 11px 'Space Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#888;margin-bottom:10px}
.sim-visual-caption{font-size:12.5px;font-weight:700;margin-top:10px;color:#444;text-align:center}
.sim-panel-dark .sim-visual-caption{color:#ccc}

.sim-shelf-svg,.sim-line-svg,.sim-bar-svg{width:100%;height:140px;display:block}
.sim-floor,.sim-axis{stroke:#ccc;stroke-width:1.5}
.sim-panel-dark .sim-floor,.sim-panel-dark .sim-axis{stroke:#3a3a3a}
.shelf-bar{transition:height .25s ease,y .25s ease,fill .25s ease}

.sim-store-flag{display:flex;align-items:center;justify-content:center;gap:8px;background:#EF4444;color:#fff;font:800 13px 'Space Grotesk',sans-serif;letter-spacing:.05em;padding:12px;border-radius:10px;transition:.3s}
.sim-store-flag.ok{background:#16A34A}
.sim-flag-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:simPulseDot 1.4s infinite}
.sim-store-bars{display:flex;gap:6px;margin-top:16px;height:60px;align-items:flex-end}
.store-bar{flex:1;border-radius:4px 4px 2px 2px;transition:height .25s ease,background .25s ease}

.sim-line{fill:none;stroke-width:3;stroke-linecap:round}
.sim-line-cost{stroke:#EF4444}
.sim-line-service{stroke:#2563EB}
.sim-dot{transition:cx .25s ease,cy .25s ease}
.sim-dot-cost{fill:#EF4444}
.sim-dot-service{fill:#2563EB}
.sim-chart-legend{display:flex;gap:16px;margin-top:10px;font-size:11.5px;font-weight:700;color:#555}
.sim-panel-dark .sim-chart-legend{color:#ccc}
.sim-chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}
.sim-legend-cost{background:#EF4444}
.sim-legend-service{background:#2563EB}

.sim-metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#eaeae2;margin-top:30px;border-radius:14px;overflow:hidden}
.sim-metric-strip div{background:#fff;padding:18px 20px}
.sim-metric-strip small{display:block;font:800 10px 'Space Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.07em;color:#888}
.sim-metric-strip strong{display:block;font:700 24px 'Space Grotesk',sans-serif;margin-top:6px;transition:color .2s}
.sim-metric-strip-dark{background:#2a2a2a}
.sim-metric-strip-dark div{background:#1a1a1a;color:#fff}
.sim-metric-strip-dark small{color:#999}

/* ---------- STAGE 3 : toggle ---------- */
.sim-toggle-row{display:flex;align-items:center;gap:20px;margin-bottom:34px;color:#fff}
.sim-toggle{position:relative;display:inline-block}
.sim-toggle input{opacity:0;width:0;height:0;position:absolute}
.sim-toggle-track{display:block;width:64px;height:36px;background:#333;border-radius:100px;position:relative;cursor:pointer;transition:.25s}
.sim-toggle-thumb{position:absolute;top:4px;left:4px;width:28px;height:28px;border-radius:50%;background:#fff;transition:.25s;box-shadow:0 3px 8px rgba(0,0,0,.3)}
.sim-toggle input:checked + .sim-toggle-track{background:#16A34A}
.sim-toggle input:checked + .sim-toggle-track .sim-toggle-thumb{transform:translateX(28px)}
.sim-toggle-row strong{font:700 17px 'Space Grotesk',sans-serif;display:block}
.sim-toggle-row small{color:#999;font-size:12.5px}

.sim-aisle-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;height:130px}
.aisle-cell{border-radius:4px;transition:background .3s ease,order .3s ease}

.sim-cap-bar{transition:height .3s ease,y .3s ease,fill .3s ease}
.sim-cap-before{fill:#EF4444}
.sim-cap-after{fill:#16A34A}
.sim-bar-text{font:700 13px 'Space Grotesk',sans-serif;fill:#fff;text-anchor:middle;transition:y .3s ease}
.sim-axis-text{font:700 11px 'Space Grotesk',sans-serif;fill:#888;text-anchor:middle}

.sim-donut-wrap{position:relative;width:120px;height:120px;margin:6px auto 0}
.sim-donut-svg{width:100%;height:100%;transform:rotate(-90deg)}
.sim-donut-track{fill:none;stroke:#2a2a2a;stroke-width:12}
.sim-donut-fill{fill:none;stroke:#FFD400;stroke-width:12;stroke-linecap:round;stroke-dasharray:314;stroke-dashoffset:88;transition:stroke-dashoffset .35s ease,stroke .35s ease}
.sim-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.sim-donut-center strong{font:700 24px 'Space Grotesk',sans-serif}
.sim-donut-center span{font-size:10px;color:#999;text-transform:uppercase;letter-spacing:.06em}

/* ---------- STAGE 4 : ROI calculator ---------- */
.sim-roi-panel{padding-bottom:50px}
.sim-roi-inputs{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;margin-bottom:40px}
.sim-roi-inputs label{display:flex;flex-direction:column;gap:8px;font:800 11px 'Space Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#666}
.sim-roi-inputs input{height:54px;border-radius:12px;border:2px solid #eee;padding:0 16px;font:700 17px 'Space Grotesk',sans-serif;color:var(--sim-black)}
.sim-roi-inputs input:focus{outline:none;border-color:var(--sim-black)}
.sim-roi-inputs .btn{height:54px}

.sim-flow-visual{margin:10px 0 40px;background:#faf9f2;border-radius:16px;padding:20px 10px 12px}
.sim-flow-svg{width:100%;height:150px;display:block;overflow:visible}
.sim-flow-path{fill:none;stroke:#e2ddb8;stroke-width:3;stroke-dasharray:2 8}
.sim-flow-node circle{fill:#fff;stroke:var(--sim-black);stroke-width:2.5}
.sim-flow-node text{font:800 10px 'Space Grotesk',sans-serif;fill:var(--sim-black);text-anchor:middle;text-transform:uppercase;letter-spacing:.04em}
.sim-flow-dot{fill:#EF4444;offset-path:path('M40,90 C160,90 160,30 260,30 C360,30 360,90 460,90 C540,90 560,55 640,55');animation:simFlowMove 3.2s linear infinite}
@keyframes simFlowMove{from{offset-distance:0%}to{offset-distance:100%}}
@supports not (offset-path: path('M0,0')){.sim-flow-dot{display:none}}

.sim-roi-results{border-top:2px dashed rgba(0,0,0,.15);padding-top:34px}
.sim-roi-empty{text-align:center;color:#5a4e00;font-weight:700;padding:14px 0}
.sim-roi-results[data-ready="false"] .sim-roi-cards,.sim-roi-results[data-ready="false"] .sim-final-cta,.sim-roi-results[data-ready="false"] .sim-disclaimer{display:none}
.sim-roi-results[data-ready="true"] .sim-roi-empty{display:none}
.sim-roi-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;animation:simFadeUp .4s ease both}
.sim-roi-card{background:var(--sim-black);color:#fff;border-radius:18px;padding:26px 22px}
.sim-roi-card:nth-child(2){background:#EF4444}
.sim-roi-card:nth-child(3){background:#2563EB}
.sim-roi-card small{display:block;font:800 10.5px 'Space Grotesk',sans-serif;letter-spacing:.1em;opacity:.7}
.sim-roi-card strong{display:block;font:700 30px 'Space Grotesk',sans-serif;margin:10px 0 6px;letter-spacing:-.02em}
.sim-roi-card span{font-size:12.5px;opacity:.75}
.sim-final-cta{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:30px;background:var(--sim-black);color:#fff;font:800 15px 'Space Grotesk',sans-serif;height:60px;border-radius:14px;text-decoration:none;box-shadow:0 16px 36px rgba(0,0,0,.28);transition:.22s}
.sim-final-cta:hover{transform:translateY(-3px);background:#000}
.sim-disclaimer{display:block;text-align:center;margin-top:16px;color:#5a4e00;font-size:11.5px;max-width:560px;margin-left:auto;margin-right:auto}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .sim-map,.sim-visual-row,.sim-visual-row-3,.sim-metric-strip,.sim-roi-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .sim-map,.sim-visual-row,.sim-visual-row-3,.sim-metric-strip,.sim-roi-cards,.sim-roi-inputs{grid-template-columns:1fr}
  .sim-stage{padding:80px 6vw}
  .sim-diagnosis{padding:26px 22px}
  .sim-hero{min-height:auto;padding:130px 6vw 70px}
}
