/* Earth's Vital Signs dashboard. Uses news-article.css for chart styles. */
body{background:#f4f7f5;}
.vs-hero{background:radial-gradient(ellipse at 80% -10%,#24543b 0%,#12301f 45%,#0b1b12 100%);color:#e9f5ee;padding:72px 24px 120px;}
.vs-hero-in{max-width:1180px;margin:0 auto;}
.vs-kicker{display:inline-flex;align-items:center;gap:8px;font:800 .74rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#95d5b2;margin-bottom:16px;}
.vs-kicker i{width:8px;height:8px;border-radius:50%;background:#52b788;box-shadow:0 0 0 0 rgba(82,183,136,.6);animation:vsPulse 2s infinite;}
@keyframes vsPulse{0%{box-shadow:0 0 0 0 rgba(82,183,136,.6);}70%{box-shadow:0 0 0 10px rgba(82,183,136,0);}100%{box-shadow:0 0 0 0 rgba(82,183,136,0);}}
.vs-hero h1{font-family:"Playfair Display",Georgia,serif;font-weight:800;font-size:clamp(2.3rem,5.4vw,3.9rem);line-height:1.04;letter-spacing:-.01em;color:#fff;margin:0 0 16px;max-width:820px;}
.vs-hero p.vs-dek{font-family:"Source Serif 4",Georgia,serif;font-size:1.2rem;line-height:1.6;color:#c9e3d3;max-width:720px;margin:0;}
.vs-sum{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.vs-sum div{display:flex;align-items:baseline;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(149,213,178,.18);border-radius:12px;padding:12px 18px;}
.vs-sum b{font:800 1.9rem/1 Inter,sans-serif;color:#fff;}
.vs-sum span{font:600 .84rem Inter,sans-serif;color:#b7d9c4;}
.vs-sum .s-rec b{color:#ff9b8a;}.vs-sum .s-warn b{color:#ffc97a;}.vs-sum .s-good b{color:#8fe0ae;}
.vs-status{display:flex;align-items:flex-start;gap:10px;margin-top:22px;font:500 .84rem/1.5 Inter,sans-serif;color:#a9cbb6;max-width:760px;}
.vs-status::before{content:"";flex:0 0 8px;height:8px;margin-top:6px;border-radius:50%;background:#9aa29e;}
.vs-status.ok::before{background:#52b788;}
.vs-status b{color:#fff;font-weight:600;}

.vs-wrap{max-width:1180px;margin:-78px auto 0;padding:0 24px 30px;position:relative;}
.vs-group{margin-bottom:34px;}
.vs-ghead{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:0 0 14px;padding:0 2px;}
.vs-group:first-child .vs-ghead h2,.vs-group:first-child .vs-ghead p{color:#fff;}
.vs-group:first-child .vs-ghead p{color:#b7d9c4;}
.vs-ghead h2{font:800 .8rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#0f1a14;margin:0;}
.vs-ghead p{font:500 .88rem Inter,sans-serif;color:#6b7770;margin:0;}
.vs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.vs-tile{display:flex;flex-direction:column;background:#fff;border-radius:16px;padding:20px 20px 16px;box-shadow:0 10px 30px rgba(12,31,21,.08);border-top:4px solid #b9bfbb;min-width:0;}
.vs-tile.is-rec{border-top-color:#c0392b;}.vs-tile.is-warn{border-top-color:#e0962f;}.vs-tile.is-good{border-top-color:#1a7f4b;}.vs-tile.is-cool{border-top-color:#2a78d6;}
.vs-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.vs-tile h3{font:800 1.02rem/1.3 Inter,sans-serif;color:#0f1a14;margin:0;}
.vs-pill{flex:0 0 auto;font:800 .62rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:#eef1ef;color:#4b5850;white-space:nowrap;}
.vs-pill.rec{background:#fde8e6;color:#a8291d;}.vs-pill.warn{background:#fff1dc;color:#8a5200;}.vs-pill.good{background:#e1f4e8;color:#156a3c;}.vs-pill.cool{background:#e3eefb;color:#1d5aa6;}
.vs-val{margin:14px 0 2px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.vs-val b{font:800 2.35rem/1 Inter,sans-serif;letter-spacing:-.03em;color:#0f1a14;font-variant-numeric:tabular-nums;}
.vs-val span{font:600 .84rem Inter,sans-serif;color:#6b7770;}
.vs-when{font:500 .78rem/1.4 Inter,sans-serif;color:#6b7770;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.vs-live{display:inline-flex;align-items:center;gap:5px;font:800 .6rem Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#156a3c;background:#e1f4e8;padding:2px 7px;border-radius:999px;}
.vs-live::before{content:"";width:6px;height:6px;border-radius:50%;background:#1a7f4b;}
.vs-spark{display:block;width:100%;height:64px;margin:12px 0 8px;}
.vs-chg{font:600 .82rem/1.45 Inter,sans-serif;color:#3d4a42;}
.vs-chg.bad::before{content:"▲ ";color:#c0392b;font-size:.7rem;}
.vs-chg.ok::before{content:"● ";color:#1a7f4b;font-size:.7rem;}
.vs-extra{margin-top:6px;font:500 .78rem/1.5 Inter,sans-serif;color:#6b7770;}
.vs-more{margin-top:auto;align-self:flex-start;font:700 .8rem Inter,sans-serif;color:#1a7f4b;background:none;border:0;padding:14px 0 0;cursor:pointer;}
.vs-more::after{content:" →";transition:margin .2s;}
.vs-more:hover::after{margin-left:4px;}
.vs-more:focus-visible{outline:2px solid #1a7f4b;outline-offset:3px;border-radius:4px;}

.vs-about{max-width:1180px;margin:0 auto 90px;padding:0 24px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;}
.vs-box{background:#fff;border-radius:16px;padding:26px 28px;box-shadow:0 10px 30px rgba(12,31,21,.06);}
.vs-box h2{font-family:"Playfair Display",Georgia,serif;font-size:1.4rem;color:#0f1a14;margin:0 0 10px;}
.vs-box p,.vs-box li{font:500 .9rem/1.65 Inter,sans-serif;color:#3d4a42;}
.vs-box table{width:100%;border-collapse:collapse;font:500 .8rem/1.45 Inter,sans-serif;margin-top:8px;}
.vs-box th{text-align:left;color:#6b7770;font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 8px 6px 0;border-bottom:1px solid #0f1a14;}
.vs-box td{padding:7px 8px 7px 0;border-bottom:1px solid #e3e7e4;color:#3d4a42;vertical-align:top;}
.vs-box td:first-child{font-weight:700;color:#0f1a14;}
.vs-box a{color:#1a7f4b;font-weight:600;}
.vs-links{list-style:none;padding:0;margin:8px 0 0;}
.vs-links li{border-top:1px solid #e3e7e4;}
.vs-links a{display:block;padding:11px 0;text-decoration:none;color:#0f1a14;font-weight:700;}
.vs-links a:hover{color:#1a7f4b;}
.vs-links small{display:block;font-weight:500;color:#6b7770;font-size:.78rem;}

/* dialog */
.vs-dialog{position:fixed;inset:0;z-index:10001;background:rgba(8,18,12,.62);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .2s;}
.vs-dialog.show{opacity:1;}
.vs-dialog[hidden]{display:none;}
.vs-panel{background:#fff;border-radius:18px;width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:26px 30px 24px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(12px);transition:transform .2s;}
.vs-dialog.show .vs-panel{transform:none;}
.vs-phead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.vs-phead h2{font-family:"Playfair Display",Georgia,serif;font-size:1.7rem;line-height:1.15;color:#0f1a14;margin:0 0 6px;}
.vs-close{flex:0 0 40px;height:40px;border-radius:50%;border:1px solid #e3e7e4;background:#fff;font-size:1.3rem;line-height:1;color:#0f1a14;cursor:pointer;}
.vs-close:hover{background:#f4f7f5;}
.vs-close:focus-visible{outline:2px solid #1a7f4b;outline-offset:2px;}
.vs-pmeta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.vs-pmeta .vs-val{margin:0;}
.vs-pmeta .vs-val b{font-size:1.8rem;}
.vs-ptext{font-family:"Source Serif 4",Georgia,serif;font-size:1.02rem;line-height:1.6;color:#3d4a42;margin:6px 0 14px;max-width:760px;}
.vs-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:6px;font:600 .78rem Inter,sans-serif;color:#3d4a42;}
.vs-legend span{display:inline-flex;align-items:center;gap:6px;}
.vs-legend i{display:inline-block;width:16px;height:3px;border-radius:2px;}
.vs-legend i.sq{width:14px;height:10px;}
.vs-rel{margin-top:12px;font:600 .86rem Inter,sans-serif;}
.vs-rel a{color:#1a7f4b;}
body.vs-lock{overflow:hidden;}

@media (max-width:980px){.vs-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.vs-about{grid-template-columns:1fr;}}
@media (max-width:640px){
  .vs-hero{padding:48px 16px 100px;}
  .vs-wrap{padding:0 16px 20px;}
  .vs-grid{grid-template-columns:1fr;}
  .vs-dialog{padding:0;align-items:flex-end;}
  .vs-panel{border-radius:18px 18px 0 0;max-height:92vh;padding:20px 16px 18px;}
  .vs-phead h2{font-size:1.35rem;}
  .vs-about{padding:0 16px;}
  .vs-box{padding:22px 18px;}
}
@media (prefers-reduced-motion:reduce){.vs-kicker i{animation:none;}.vs-dialog,.vs-panel{transition:none;}}
