/* ============================================================================
   ORBITAL RADAR — SPACE WEATHER PANEL (.asw-*)  flagship redesign
   Dedicated, fully ID-scoped stylesheet for the left-menu Space Weather panel.

   WHY EVERY RULE IS PREFIXED WITH #space-weather-panel:
   The shared style.css styles all panels via `.panel-main span/button/h2…`
   (specificity 0-1-1). A bare `.asw-*` class is 0-1-0 and LOSES that fight, so
   spans inherit 15.5px + margins and buttons turn into filled yellow buttons.
   Prefixing with the panel id (→ ≥1-1-0) makes these rules win cleanly — the
   same pattern the events-feed panel uses (style.css ~21200). The element
   resets below sit at 1-0-1 (beats the 0-1-1 bleed, loses to the 1-1-0
   components), neutralising the master-sheet bleed for un-classed nodes.

   This file is loaded AFTER style.css and is presentation only — all derivation
   lives server-side. Fonts (Orbitron / JetBrains Mono) + FontAwesome 6 are
   already loaded by the host page.
   ============================================================================ */

/* Container: strip the generic .panel-main chrome; pin geometry explicitly so we
   don't inherit the old panel's scattered #space-weather-panel.panel-main rules. */
/* !important needed: dead legacy #space-weather-panel rules in style.css set
   width:700px / overflow:hidden / padding with !important (lines ~2056-2240, 14960)
   — only this panel is affected, and this file loads last, so matching !important
   wins without editing the master sheet. NOTE: do NOT set left/top here — the shared
   rule (style.css ~6726) already positions all left panels to the right of the open
   hamburger menu; overriding left forces the panel back on top of the menu. */
#space-weather-panel.panel-main{
  width:min(500px,92vw) !important; min-width:0 !important; max-width:96vw !important; max-height:none !important;
  padding:0 !important; overflow:visible !important;
  background:transparent !important; border:none !important; box-shadow:none !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  color:#e8ecf8; display:block;
  font-family:'JetBrains Mono','Fira Mono','Consolas',monospace;
}
#space-weather-panel #swpc-metrics{ width:100% !important; max-width:100% !important; overflow:visible !important; padding:0 !important; }

/* Element resets (1-0-1) — neutralise .panel-main span/p/button/h* bleed for any
   un-classed node; component rules (≥1-1-0) below still win. */
#space-weather-panel span,#space-weather-panel p,#space-weather-panel h2,#space-weather-panel h3,#space-weather-panel h4,#space-weather-panel li,#space-weather-panel label{
  font-size:inherit;line-height:inherit;margin:0;color:inherit;font-weight:inherit;word-break:normal;
}
#space-weather-panel button{
  margin:0;padding:0;border:none;background:none;color:inherit;font:inherit;box-shadow:none;border-radius:0;vertical-align:baseline;
}
#space-weather-panel .asw-ic{display:inline-flex;align-items:center;justify-content:center;vertical-align:-.125em;flex:none}
#space-weather-panel .asw-ic svg{width:1em;height:1em;display:block}

#space-weather-panel .asw-panel{
  --gold:#ffe060;--cyan:#60eafe;--green:#39ff14;--red:#ff6a6a;--ink:#e8ecf8;--dim:#9aa3c4;
  --orb:'Orbitron','JetBrains Mono',sans-serif;--mono:'JetBrains Mono','Fira Mono',monospace;
  position:relative;width:100%;
  background:linear-gradient(180deg,#12152b,#0b0e1d);
  border:1.5px solid rgba(255,255,255,.10);border-radius:16px;
  box-shadow:0 10px 44px rgba(0,0,0,.55),0 0 0 1px var(--glow),0 0 42px var(--glow);
  font-family:var(--mono);color:var(--ink);
  max-height:calc(100vh - 96px);overflow-y:auto;overflow-x:hidden;
  padding:0 0 14px;
}
#space-weather-panel .asw-panel *{box-sizing:border-box}
#space-weather-panel .asw-panel[data-state=quiet]{--accent:#39ff14;--glow:rgba(57,255,20,.14);--aurora-op:.16;--cme-op:0;--wind-dur:2.6s;--wind-op:.5;--sun-a:#ffd27a;--sun-b:#ff8a1e}
#space-weather-panel .asw-panel[data-state=active]{--accent:#ffe060;--glow:rgba(255,224,96,.20);--aurora-op:.55;--cme-op:0;--wind-dur:1.8s;--wind-op:.85;--sun-a:#ffe39a;--sun-b:#ff7a12}
#space-weather-panel .asw-panel[data-state=severe]{--accent:#ff6a6a;--glow:rgba(255,70,70,.28);--aurora-op:.95;--cme-op:1;--wind-dur:1.1s;--wind-op:1;--sun-a:#fff0c0;--sun-b:#ff4a08}
#space-weather-panel .asw-panel:not([data-state]){--accent:#60eafe;--glow:rgba(96,234,254,.16);--aurora-op:.3;--cme-op:0;--wind-dur:2.2s;--wind-op:.6;--sun-a:#ffe39a;--sun-b:#ff7a12}

/* Pause every animation while the panel is closed — zero CPU when hidden */
#space-weather-panel:not(.visible) .asw-panel *{animation-play-state:paused!important}

#space-weather-panel .asw-sweep{position:absolute;top:0;left:0;right:0;height:2px;overflow:hidden;z-index:3;border-radius:16px 16px 0 0}
#space-weather-panel .asw-sweep::before{content:'';position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:aswSweep 3.8s linear infinite}
@keyframes aswSweep{to{left:120%}}

#space-weather-panel .asw-hd{display:flex;align-items:center;gap:11px;padding:15px 16px 10px}
#space-weather-panel .asw-badge{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,#1d2545,#10142b);border:1px solid var(--glow);color:var(--accent);font-size:18px;flex:none}
#space-weather-panel .asw-ttl{font-family:var(--orb);font-weight:800;font-size:15px;letter-spacing:2.5px;color:var(--gold);text-shadow:0 0 16px var(--glow);line-height:1}
#space-weather-panel .asw-sub{font-family:var(--mono);font-size:10.5px;color:var(--dim);letter-spacing:.5px;margin-top:3px;display:flex;align-items:center;gap:5px}
#space-weather-panel .asw-live{margin-left:auto;display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--green)}
#space-weather-panel .asw-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:aswPulse 1.6s infinite}
@keyframes aswPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.65)}}
#space-weather-panel .asw-x{width:25px;height:25px;background:rgba(255,255,255,.05);color:var(--dim);border-radius:7px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
#space-weather-panel .asw-x:hover{background:rgba(255,255,255,.12);color:var(--ink)}

#space-weather-panel .asw-seg{display:flex;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:9px;padding:3px;width:max-content;margin:0 16px 12px auto}
#space-weather-panel .asw-seg button{color:var(--dim);font-family:var(--orb);font-weight:500;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:5px 13px;border-radius:6px;cursor:pointer}
#space-weather-panel .asw-seg button.on{background:var(--glow);color:var(--accent)}

#space-weather-panel .asw-hero{margin:0 14px;border-radius:14px;background:radial-gradient(120% 90% at 8% 40%,rgba(255,150,40,.10),transparent 55%),linear-gradient(160deg,#0c1126,#080a17);border:1px solid rgba(255,255,255,.07);overflow:hidden}
#space-weather-panel .asw-scene{display:block;width:100%;height:auto}
#space-weather-panel .asw-scene .sLab{fill:#9aa3c4;font-family:var(--mono);font-size:11px;letter-spacing:.5px}
#space-weather-panel .asw-scene .aswSunMid{stop-color:var(--sun-a)}
#space-weather-panel .asw-scene .aswSunEdge{stop-color:var(--sun-b)}
#space-weather-panel .asw-flare{stroke:var(--accent)}
#space-weather-panel .asw-corona,#space-weather-panel .asw-wind,#space-weather-panel .asw-cme,#space-weather-panel .asw-aur{transform-box:fill-box;transform-origin:center}
#space-weather-panel .asw-corona{animation:aswCor 3.8s ease-in-out infinite}
@keyframes aswCor{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}
#space-weather-panel .asw-wind{opacity:var(--wind-op);animation:aswWind var(--wind-dur) linear infinite;will-change:transform}
@keyframes aswWind{0%{transform:translateX(0);opacity:0}14%{opacity:var(--wind-op)}86%{opacity:var(--wind-op)}100%{transform:translateX(248px);opacity:0}}
#space-weather-panel .asw-cme-wrap{opacity:var(--cme-op)}
#space-weather-panel .asw-cme{animation:aswCme 3.4s linear infinite}
@keyframes aswCme{0%{transform:translateX(0) scale(.5);opacity:0}12%{opacity:1}80%{opacity:1}100%{transform:translateX(250px) scale(1.2);opacity:0}}
#space-weather-panel .asw-aur{opacity:var(--aurora-op);animation:aswAur 2.4s ease-in-out infinite}
@keyframes aswAur{0%,100%{stroke-width:3}50%{stroke-width:4.6}}
#space-weather-panel .asw-clouds{animation:aswSpin 70s linear infinite;will-change:transform}
@keyframes aswSpin{from{transform:translateX(0)}to{transform:translateX(-60px)}}
#space-weather-panel .asw-lights circle{animation:aswTwk 3.2s ease-in-out infinite}
@keyframes aswTwk{0%,100%{opacity:.95}50%{opacity:.4}}

#space-weather-panel .asw-verdict{display:flex;align-items:center;gap:13px;padding:11px 14px 13px}
#space-weather-panel .asw-g{font-family:var(--orb);font-weight:800;font-size:30px;line-height:1;color:var(--accent);text-shadow:0 0 18px var(--glow);min-width:62px;text-align:center}
#space-weather-panel .asw-glab{font-family:var(--mono);font-size:9.5px;letter-spacing:1.5px;color:var(--dim);text-align:center;margin-top:4px;text-transform:uppercase}
#space-weather-panel .asw-vT{font-family:var(--orb);font-weight:700;font-size:14.5px;color:var(--accent);letter-spacing:.3px}
#space-weather-panel .asw-vS{font-family:var(--mono);font-size:11.5px;color:var(--dim);line-height:1.5;margin-top:4px}

#space-weather-panel .asw-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;padding:4px 16px 2px}
#space-weather-panel .asw-ind{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);border-radius:11px;padding:10px 9px 9px;cursor:pointer;transition:border-color .2s,background .2s}
#space-weather-panel .asw-ind:hover{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06)}
#space-weather-panel .asw-il{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9.5px;letter-spacing:1px;color:var(--dim);text-transform:uppercase}
#space-weather-panel .asw-il i{font-size:13px}
#space-weather-panel .asw-iv{font-family:var(--orb);font-weight:700;font-size:15px;margin-top:7px;color:var(--ink);word-break:break-word}
#space-weather-panel .asw-chev{margin-left:auto;color:var(--dim);font-size:11px;transition:transform .25s}
#space-weather-panel .asw-ind.open .asw-chev{transform:rotate(180deg)}
#space-weather-panel .asw-exp{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s,opacity .3s,margin .3s;font-family:var(--mono);font-size:10.5px;line-height:1.5;color:var(--dim)}
#space-weather-panel .asw-ind.open .asw-exp{max-height:120px;opacity:1;margin-top:8px}

#space-weather-panel .asw-hook{display:flex;align-items:center;gap:9px;margin:9px 16px 0;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);font-family:var(--mono);font-size:11.5px;color:var(--ink);cursor:pointer;text-decoration:none}
#space-weather-panel .asw-hook:hover{border-color:rgba(255,255,255,.16)}
#space-weather-panel .asw-hook>i:first-child{font-size:15px;color:var(--cyan);flex:none}
#space-weather-panel .asw-hook .asw-arw{margin-left:auto;color:var(--dim);font-size:12px}
#space-weather-panel .asw-hook.moat{background:rgba(255,224,96,.06);border-color:rgba(255,224,96,.22)}
#space-weather-panel .asw-hook.moat>i:first-child{color:var(--gold)}
#space-weather-panel .asw-hook b{font-weight:500;color:var(--accent)}
#space-weather-panel .asw-hook[hidden]{display:none}

#space-weather-panel .asw-pro{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:11px 16px 2px}
#space-weather-panel .asw-panel:not(.pro) .asw-pro{display:none}
#space-weather-panel .asw-prohdr{grid-column:1/-1;display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#6b7494;padding:0 2px 2px}
#space-weather-panel .asw-prohdr i{font-size:11px}
#space-weather-panel .asw-mc{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:9px 11px 7px;overflow:hidden}
#space-weather-panel .asw-mctop{display:flex;align-items:center;justify-content:space-between;gap:6px}
#space-weather-panel .asw-mcl{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;letter-spacing:.6px;color:var(--dim);text-transform:uppercase}
#space-weather-panel .asw-mcl i{font-size:11px;color:#aeb6d6}
#space-weather-panel .asw-pill{font-family:var(--mono);font-size:8.5px;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:5px;white-space:nowrap}
#space-weather-panel .asw-pill.good{color:#46e08a;background:rgba(70,224,138,.12);border:1px solid rgba(70,224,138,.3)}
#space-weather-panel .asw-pill.warn{color:#ffce5a;background:rgba(255,206,90,.12);border:1px solid rgba(255,206,90,.32)}
#space-weather-panel .asw-pill.bad{color:#ff6a6a;background:rgba(255,106,106,.13);border:1px solid rgba(255,106,106,.34)}
#space-weather-panel .asw-mcv{font-family:var(--orb);font-weight:700;font-size:15px;margin-top:7px;color:var(--ink)}
#space-weather-panel .asw-spark{display:block;width:100%;height:26px;margin-top:5px}
#space-weather-panel .asw-sparkline{fill:none;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
#space-weather-panel .asw-sparkfill{opacity:.15;stroke:none}

#space-weather-panel .asw-foot{display:flex;gap:9px;padding:14px 16px 4px}
#space-weather-panel .asw-btn{flex:none;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:var(--ink);font-family:var(--orb);font-weight:500;font-size:11px;letter-spacing:.5px;padding:9px 13px;border-radius:10px;cursor:pointer}
#space-weather-panel .asw-btn.on{background:rgba(57,255,20,.12);border-color:rgba(57,255,20,.4);color:var(--green)}
#space-weather-panel .asw-cta{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(96deg,#ffbe41,#ffe060);color:#2a2206;font-family:var(--orb);font-weight:700;font-size:12px;letter-spacing:.5px;padding:9px 13px;border-radius:10px;text-decoration:none;cursor:pointer}
#space-weather-panel .asw-cta:hover{filter:brightness(1.06)}
#space-weather-panel .asw-links{display:flex;flex-wrap:wrap;gap:5px 14px;padding:11px 17px 3px;font-family:var(--mono);font-size:10.5px}
#space-weather-panel .asw-links a{color:var(--dim);text-decoration:none;border-bottom:1px dotted rgba(154,163,196,.4);padding-bottom:1px}
#space-weather-panel .asw-links a:hover{color:var(--cyan);border-color:var(--cyan)}

#space-weather-panel .asw-rise{animation:aswRise .5s cubic-bezier(.22,1,.36,1) both}
@keyframes aswRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Server-rendered fallback shown to crawlers / before the engine mounts */
#space-weather-panel .asw-ssr{padding:16px 18px;font-family:var(--mono);color:#e8ecf8}
#space-weather-panel .asw-ssr h2{font-family:var(--orb);font-size:15px;letter-spacing:1.5px;color:#ffe060;margin:0 0 8px}
#space-weather-panel .asw-ssr p{font-size:12px;line-height:1.6;color:#9aa3c4;margin:0 0 10px}
#space-weather-panel .asw-ssr a{color:#60eafe;text-decoration:none}

@media (max-width:520px){
  #space-weather-panel .asw-grid{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  #space-weather-panel .asw-panel *{animation:none!important}
}
