/* ============================================================================
 *  STRATEGY DISCOVERY — scoped styles (.sd-*). Laid out to match the mockup:
 *  a prominent 7-step pipeline, a left inputs rail, and a dense results grid.
 *  Loaded only on lab.html; reuses the sitewide CSS variables; no global rules.
 * ==========================================================================*/

/* rail nav button (styled like a labtool, but NOT .labtool) */
.sd-navtool{display:flex;align-items:center;gap:13px;text-align:left;padding:14px 15px;border-radius:14px;
  border:1px solid var(--line);background:rgba(255,255,255,.015);cursor:pointer;transition:.18s;font-family:inherit;color:var(--ink);width:100%}
.sd-navtool:hover{border-color:var(--line-strong);background:rgba(255,255,255,.04)}
.sd-navtool.active{border-color:var(--gold,#f0a93b);background:rgba(240,169,59,.12);box-shadow:0 0 0 1px rgba(240,169,59,.25)}
.sd-navtool .lt-ic{width:40px;height:40px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;font-size:18px;
  background:linear-gradient(160deg,rgba(240,169,59,.22),rgba(255,214,130,.08));border:1px solid var(--line);color:var(--gold,#f0a93b)}
.sd-navtool.active .lt-ic{background:linear-gradient(160deg,var(--gold,#f0a93b),#ffd98a);color:#231603}
.sd-navtool .lt-tx b{display:block;font-size:14px;font-weight:600}
.sd-navtool .lt-tx small{font-size:11.5px;color:var(--ink-3)}

#discoveryRoot{display:none;grid-column:2;grid-row:1}
#discoveryRoot.on{display:block}
@media(max-width:900px){ #discoveryRoot{grid-column:1} }
.sd-wrap{color:var(--ink)}

/* ---- header with the Sanctum framing ---- */
.sd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;background:radial-gradient(120% 200% at 88% -40%,rgba(240,169,59,.12),transparent 55%)}
.sd-head h2{font-family:'Space Grotesk';font-size:22px;margin:0;color:#fff}
.sd-head .sd-sub{font-size:12.5px;color:var(--ink-3);margin-top:3px}
.sd-sanctum{text-align:right;flex:none}
.sd-sanctum .sd-orb{width:34px;height:34px;border-radius:50%;margin:0 0 6px auto;
  background:radial-gradient(circle at 60% 40%,#ffe6b0,#b9791b 55%,#1a1206 78%);box-shadow:0 0 22px rgba(240,169,59,.4)}
.sd-sanctum b{display:block;font-family:'Space Grotesk';font-size:12px;letter-spacing:.14em;color:var(--gold,#f0a93b)}
.sd-sanctum small{display:block;font-size:10px;color:var(--ink-3);letter-spacing:.04em;line-height:1.5}

/* ---- pipeline ---- */
.sd-pipe-section{padding:16px 24px;border-bottom:1px solid var(--line)}
.sd-pipe-title{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}
.sd-pipe{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:4px}
.sd-step{flex:1 0 92px;text-align:center;position:relative;opacity:.55;transition:.2s}
.sd-step.done,.sd-step.run{opacity:1}
.sd-step::after{content:'';position:absolute;top:19px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--line);z-index:0}
.sd-step:last-child::after{display:none}
.sd-step.done::after{background:rgba(240,169,59,.5)}
.sd-step .sd-dot{position:relative;z-index:1;width:38px;height:38px;margin:0 auto 8px;border-radius:50%;display:grid;place-items:center;
  font-size:14px;font-weight:700;border:1.5px solid var(--line-strong);color:var(--ink-3);background:#0b1022}
.sd-step.done .sd-dot{border-color:var(--gold,#f0a93b);color:var(--gold,#f0a93b)}
.sd-step.run .sd-dot{border-color:var(--gold,#f0a93b);color:#231603;background:var(--gold,#f0a93b);animation:sdpulse 1s infinite}
@keyframes sdpulse{0%,100%{box-shadow:0 0 0 0 rgba(240,169,59,.5)}50%{box-shadow:0 0 0 7px rgba(240,169,59,0)}}
.sd-step b{display:block;font-size:11.5px;color:var(--ink-2);line-height:1.3}
.sd-step small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:3px}
.sd-pipe-status{text-align:center;font-size:12.5px;color:var(--ink-3);margin-top:14px}

/* ---- body: inputs rail + dashboard ---- */
.sd-body{display:grid;grid-template-columns:288px 1fr;gap:20px;padding:20px 24px}
@media(max-width:1000px){ .sd-body{grid-template-columns:1fr} }

.sd-inputs{display:grid;gap:14px;align-content:start}
.sd-field label{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.sd-field input,.sd-field select{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line-strong);border-radius:10px;
  padding:11px 12px;color:#fff;font-size:14px;font-family:inherit;outline:none}
.sd-field input:focus,.sd-field select:focus{border-color:var(--gold,#f0a93b);box-shadow:0 0 0 3px rgba(240,169,59,.16)}
.sd-inputrow{position:relative}
.sd-pctbadge{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--ink-3);pointer-events:none}
.sd-conv{font-size:11.5px;color:var(--ink-3);margin-top:5px}
.sd-chips{display:flex;gap:6px;flex-wrap:wrap}
.sd-chip{flex:1;min-width:52px;text-align:center;background:rgba(255,255,255,.04);border:1px solid var(--line-strong);border-radius:9px;
  padding:9px 4px;color:var(--ink-2);font-size:12.5px;cursor:pointer;font-family:inherit}
.sd-chip.on{border-color:var(--gold,#f0a93b);background:rgba(240,169,59,.14);color:#fff}
.sd-toggle{display:flex;gap:6px}
.sd-datewrap{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sd-btn{width:100%;font-family:inherit;font-size:14px;font-weight:600;border-radius:11px;padding:13px;cursor:pointer;border:1px solid transparent;
  background:linear-gradient(160deg,var(--gold,#f0a93b),#e08a1a);color:#231603;transition:.16s}
.sd-btn:hover{filter:brightness(1.06)} .sd-btn:disabled{opacity:.55;cursor:default;filter:none}
.sd-btn.ghost{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}
.sd-adeq{font-size:12px;padding:8px 11px;border-radius:9px;line-height:1.5}
.sd-adeq.good{background:rgba(52,211,153,.09);border:1px solid rgba(52,211,153,.3);color:#cfead9}
.sd-adeq.good::before{content:'✓ ';color:var(--green)}
.sd-adeq.thin{background:rgba(240,169,59,.1);border:1px solid rgba(240,169,59,.32);color:#ffe6bf}
.sd-adeq.insufficient{background:rgba(251,107,107,.1);border:1px solid rgba(251,107,107,.34);color:#ffd9d9}
.sd-contract{margin-top:2px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.012)}
.sd-contract b{font-size:12.5px;color:#fff;display:block;margin-bottom:2px}
.sd-contract span{font-size:11.5px;color:var(--ink-3);display:block;line-height:1.5}

/* ---- dashboard grid ---- */
.sd-dash{display:grid;gap:14px}
/* auto-fit so the grid adapts to the PANEL width (it sits inside the Lab,
   narrower than the full-page mockup) without needing container queries */
.sd-row{display:grid;gap:14px}
.sd-row.r3{grid-template-columns:repeat(auto-fit,minmax(228px,1fr))}
.sd-row.r4{grid-template-columns:repeat(auto-fit,minmax(186px,1fr))}
.sd-row.rdata{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}

.sd-panel{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:rgba(255,255,255,.015);min-width:0}
.sd-panel h3{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px;display:flex;gap:6px;align-items:baseline}
.sd-panel h3 .sd-h3note{text-transform:none;letter-spacing:0;color:var(--ink-3);font-size:10.5px}

/* survival headline */
.sd-survival{display:grid;place-items:center;text-align:center;padding:6px 0 2px}
.sd-surv-ring{width:180px;height:180px;border-radius:50%;display:grid;place-items:center;position:relative;margin-bottom:8px}
.sd-surv-ring::before{content:'';position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 50% 42%,rgba(240,169,59,.18),transparent 60%);
  box-shadow:inset 0 0 0 2px rgba(240,169,59,.28),0 0 40px rgba(240,169,59,.12)}
.sd-surv-ring::after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;background:#060912;
  box-shadow:0 0 30px 4px rgba(0,0,0,.6),inset 0 0 20px rgba(0,0,0,.8)}
.sd-surv-inner{position:relative;z-index:1}
.sd-surv-pct{font-family:'Space Grotesk';font-size:44px;font-weight:700;color:#fff;line-height:1}
.sd-surv-pct.bad{color:var(--red)} .sd-surv-pct.ok{color:var(--green)} .sd-surv-pct.dim{color:var(--ink-3)}
.sd-surv-of{font-size:11px;color:var(--ink-3);margin-top:4px}
.sd-surv-sub{font-size:12px;color:var(--ink-2);margin-top:6px;line-height:1.5}

/* performance metric grid */
.sd-perf{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 12px}
@media(max-width:560px){ .sd-perf{grid-template-columns:1fr 1fr} }
.sd-pm label{display:block;font-size:10.5px;color:var(--ink-3);margin-bottom:3px;white-space:nowrap}
.sd-pm b{font-family:'Space Grotesk';font-size:16px;color:#fff}
.sd-pm b.up{color:var(--green)} .sd-pm b.down{color:var(--red)} .sd-pm b.dim{color:var(--ink-3)}

/* disqualification checks */
.sd-flags{display:grid;gap:11px}
.sd-flag{display:flex;align-items:center;gap:10px;font-size:12.5px}
.sd-flag .ic{width:18px;height:18px;border-radius:50%;flex:none;border:1.5px solid var(--line-strong);display:grid;place-items:center;font-size:11px}
.sd-flag.pass .ic{background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.5);color:var(--green)}
.sd-flag.fail .ic{background:rgba(251,107,107,.16);border-color:rgba(251,107,107,.5);color:var(--red)}
.sd-flag.idle .ic{color:var(--ink-3)}
.sd-flag .sd-fdetail{margin-left:auto;font-size:11px;color:var(--ink-3);text-align:right}

/* charts */
.sd-chart{width:100%;height:150px;display:block}
.sd-chart-cap{font-size:11px;color:var(--ink-3);margin-top:6px}
.sd-chart-empty{height:150px;display:grid;place-items:center;color:var(--ink-3);font-size:12px;
  border:1px dashed var(--line);border-radius:10px}

/* validation table */
.sd-table{width:100%;border-collapse:collapse;font-size:12px}
.sd-table th,.sd-table td{text-align:right;padding:7px 6px;border-bottom:1px solid var(--line)}
.sd-table th:first-child,.sd-table td:first-child{text-align:left;color:var(--ink-2)}
.sd-table th{font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.sd-table td{font-family:'Space Grotesk';color:#fff}
.sd-table td.dim{color:var(--ink-3);font-family:inherit}

/* stat blocks */
.sd-stat{margin-bottom:12px}
.sd-stat:last-child{margin-bottom:0}
.sd-stat label{display:block;font-size:10.5px;color:var(--ink-3);margin-bottom:3px}
.sd-stat b{font-family:'Space Grotesk';font-size:16px;color:#fff}
.sd-stat b.up{color:var(--green)} .sd-stat b.down{color:var(--red)} .sd-stat b.big{font-size:26px}
.sd-dist{font-family:'Space Grotesk';font-size:13px;color:#fff}
.sd-dist .dim{color:var(--ink-3);font-family:inherit;font-size:10.5px}

/* assessment */
.sd-assess{font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.sd-assess p{margin:0 0 8px} .sd-assess b{color:#fff}
.sd-assess.empty{color:var(--ink-3);font-style:italic}

/* data & costs */
.sd-costrow{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
@media(max-width:700px){ .sd-costrow{grid-template-columns:repeat(3,1fr)} }
.sd-cost label{display:block;font-size:10px;color:var(--ink-3);margin-bottom:3px}
.sd-cost b{font-family:'Space Grotesk';font-size:15px;color:#fff}

/* export */
.sd-export{display:grid;gap:10px}
.sd-export .sd-btn{background:rgba(255,255,255,.04);border:1px solid var(--line-strong);color:var(--ink);text-align:left;display:flex;gap:9px;align-items:center}
.sd-export .sd-btn:hover{border-color:var(--gold,#f0a93b)}
.sd-export .sd-btn:disabled{opacity:.5}

/* library + states */
.sd-lib{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:700px){ .sd-lib{grid-template-columns:1fr} }
.sd-libitem{border:1px solid var(--line);border-radius:11px;padding:11px 13px;cursor:pointer;transition:.15s;background:rgba(255,255,255,.012)}
.sd-libitem:hover{border-color:var(--line-strong)}
.sd-libitem.on{border-color:var(--gold,#f0a93b);background:rgba(240,169,59,.08)}
.sd-libitem b{font-size:12.5px;color:#fff;display:block}
.sd-libitem .sd-fam{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold,#f0a93b)}
.sd-libitem p{font-size:11px;color:var(--ink-3);margin:5px 0 0;line-height:1.5}
.sd-libitem .sd-libres{font-size:11px;margin-top:6px;font-family:'Space Grotesk'}
.sd-nosurv{border:1px solid rgba(251,107,107,.34);background:linear-gradient(135deg,rgba(251,107,107,.1),rgba(240,169,59,.05));
  border-radius:14px;padding:16px 18px}
.sd-nosurv b{font-family:'Space Grotesk';font-size:16px;color:#ffd9d9;display:block;margin-bottom:8px}
.sd-nosurv p{font-size:12.5px;color:var(--ink-2);line-height:1.6;margin:0 0 6px}
.sd-reconfail{border:1px solid var(--red);background:rgba(251,107,107,.12);border-radius:14px;padding:16px 18px}
.sd-reconfail b{color:#ffd9d9;font-size:16px;display:block;margin-bottom:6px}
.sd-warn{font-size:12.5px;color:#ffe6bf;background:rgba(240,169,59,.1);border:1px solid rgba(240,169,59,.3);border-radius:10px;padding:10px 12px;line-height:1.55}
.sd-dim{color:var(--ink-3)}

/* footer motto */
.sd-footer{text-align:center;padding:14px;border-top:1px solid var(--line);font-size:11.5px;letter-spacing:.1em;
  color:var(--gold,#f0a93b);text-transform:uppercase;opacity:.8}
