/* Nepal Trek Conditions — CoastMetric design system (tokens + components mirrored from app/index.php) */
:root{
  --deep:#f0f4f8;--surface:#fff;--chalk:#0f172a;--chalk-dim:#334155;--muted:#64748b;--faint:#94a3b8;
  --seafoam:#72b94a;--seafoam-light:#9ed55d;--gold:#d97706;--gold-bright:#f59e0b;--coral:#e0705a;--danger:#b91c1c;--sky:#4a90d9;--ice:#5aa6e0;
  --card:#fff;--border:rgba(0,0,0,.07);--sub:rgba(0,0,0,.025);--sub-border:rgba(0,0,0,.07);
  --excellent:#16a34a;--good:#72b94a;--fair:#d97706;--poor:#e0705a;--avoid:#b91c1c;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --deep:#0d1117;--surface:#121c2c;--chalk:#e8dfd4;--chalk-dim:rgba(232,223,212,.7);--muted:rgba(203,213,225,.62);--faint:rgba(203,213,225,.42);
  --card:rgba(18,32,52,.92);--border:rgba(255,255,255,.07);--sub:rgba(255,255,255,.04);--sub-border:rgba(255,255,255,.07);
}}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--deep);color:var(--chalk);overflow-x:hidden;-webkit-font-smoothing:antialiased;min-height:100vh}
h1,h2,h3,h4,.df{font-family:'Outfit',sans-serif}
a{color:inherit}
button{font-family:inherit}
.bg-overlay{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 15% 60%,rgba(114,185,74,.07),transparent 55%),radial-gradient(ellipse at 85% 15%,rgba(74,144,217,.06),transparent 50%)}
.bg-peaks{position:fixed;left:-40px;bottom:90px;width:420px;opacity:.05;pointer-events:none;z-index:0;color:var(--chalk)}
main{position:relative;z-index:2;max-width:28rem;margin:0 auto;padding:20px 16px calc(env(safe-area-inset-bottom,0px) + 96px);display:flex;flex-direction:column;gap:20px}
.glass-card{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 6px 24px rgba(0,0,0,.06);position:relative}
.pad{padding:20px 18px}
.sl{font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--seafoam);opacity:.9}
.st{font-family:'Outfit',sans-serif;font-size:20px;font-weight:800;color:var(--chalk);letter-spacing:-.3px}
.sub{font-size:12px;color:var(--muted);line-height:1.5}
.tab-panel{display:none;flex-direction:column;gap:20px}
.tab-panel.active{display:flex}

/* Hero */
#scoreHero{padding:26px 20px 26px;overflow:hidden}
.app-top{position:sticky;top:0;z-index:60;margin:-20px -16px -8px;padding:12px 16px 10px;background:var(--deep);background:color-mix(in srgb,var(--deep) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.app-top .hero-brand{margin-bottom:8px}
.app-top .loc-row{margin-bottom:0}
.hero-brand{display:flex;align-items:center;justify-content:center;gap:6px;font-family:'Outfit',sans-serif;font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
.hero-brand b{color:var(--seafoam)}
.loc-row{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:12px}
.loc-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:99px;border:1.5px solid rgba(114,185,74,.3);background:rgba(114,185,74,.08);color:var(--seafoam);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.loc-pill:hover{background:rgba(114,185,74,.15);border-color:rgba(114,185,74,.5)}
.round-btn{width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(114,185,74,.3);background:rgba(114,185,74,.08);color:var(--seafoam);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.hero-title{text-align:center;font-size:22px;margin-bottom:4px}
.hero-sub{text-align:center;font-size:12px;color:var(--chalk-dim);opacity:.65;margin-bottom:6px}
.live-row{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:2px}
.time-note{text-align:center;font-size:10px;color:var(--faint);margin-bottom:20px;min-height:13px}
.refresh-btn{border:1.5px solid rgba(114,185,74,.3);background:rgba(114,185,74,.08);color:var(--seafoam);border-radius:99px;width:24px;height:24px;font-size:13px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0}
.refresh-btn:hover{background:rgba(114,185,74,.16)}
.refresh-btn.spin{animation:spin .8s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.live-dot{width:7px;height:7px;background:var(--seafoam);border-radius:50%;box-shadow:0 0 10px rgba(114,185,74,.55);animation:pulse 2s infinite}
.live-dot.stale{background:var(--gold);box-shadow:0 0 10px rgba(217,119,6,.5)}
.live-label{font-size:10px;font-weight:600;color:var(--faint);letter-spacing:1px;text-transform:uppercase}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero-locator{position:absolute;top:118px;right:2px;width:100px;height:66px;opacity:.85;pointer-events:none}
.loc-pill.long{font-size:10.5px;letter-spacing:.03em;padding:6px 12px}
.hero-locator .np-shape{fill:rgba(74,144,217,.14);stroke:rgba(74,144,217,.45);stroke-width:1.1;stroke-linejoin:round}
.hero-locator .np-route{fill:none;stroke:var(--seafoam);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hero-locator .np-dot{fill:var(--seafoam);stroke:#fff;stroke-width:1.5}
.hero-locator .np-pulse{fill:none;stroke:var(--seafoam);stroke-width:1;transform-origin:center;transform-box:fill-box;animation:npPulse 3.6s ease-out infinite}
@keyframes npPulse{0%{transform:scale(.6);opacity:.7}75%{transform:scale(2.6);opacity:0}100%{opacity:0}}
@media(max-width:380px){.hero-locator{display:none}}
.score-gauge{position:relative;width:200px;margin:0 auto}
.score-ring{display:block;filter:drop-shadow(0 0 20px rgba(114,185,74,.22))}
.score-num-text{fill:var(--faint)}
#scoreTrack{stroke:rgba(0,0,0,.1)}
@media (prefers-color-scheme:dark){#scoreTrack{stroke:rgba(255,255,255,.13)}}
#scoreBand{font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;text-align:center;margin-top:5px;color:var(--faint)}
#scoreContext{font-size:10px;font-weight:500;margin:3px auto 0;color:var(--muted);text-align:center;max-width:280px}
.band-legend{display:flex;justify-content:center;gap:6px;margin:8px 0 14px;flex-wrap:nowrap}
.band-legend span{font-size:8px;font-weight:700}
.band-legend i{font-size:8px;color:var(--faint);font-style:normal}
.status-pill{max-width:330px;margin:4px auto 0;padding:14px 18px;border-radius:18px;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid}
.status-pill .t{font-size:15px;font-weight:800;line-height:1.3}
.status-pill ul{list-style:none;margin-top:6px}
.status-pill li{font-size:11.5px;font-weight:500;line-height:1.45;opacity:.88;margin-top:3px}
.tone-good{background:rgba(114,185,74,.09);border-color:rgba(114,185,74,.2);color:#3f7f22}
.tone-caution{background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.22);color:#9a5504}
.tone-danger{background:rgba(224,112,90,.09);border-color:rgba(224,112,90,.25);color:#a3321d}
.tone-info{background:rgba(74,144,217,.08);border-color:rgba(74,144,217,.2);color:#2a67a8}
@media (prefers-color-scheme:dark){.tone-good{color:#9ed55d}.tone-caution{color:#f5b04a}.tone-danger{color:#f79a86}.tone-info{color:#8cc2f5}}
.now-line{margin-top:10px;font-size:11px;color:var(--muted);text-align:center;line-height:1.5}
.view-mode-switcher{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(15,23,42,.08);border:1px solid rgba(114,185,74,.18)}
.view-mode-btn{border:none;background:transparent;color:var(--muted);font-size:11px;font-weight:800;padding:9px 16px;border-radius:999px;cursor:pointer}
.view-mode-btn.is-active{background:linear-gradient(180deg,rgba(114,185,74,.2),rgba(114,185,74,.08));color:var(--seafoam);box-shadow:0 2px 10px rgba(114,185,74,.16)}
.center{display:flex;justify-content:center}
.digest-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
.digest-card{position:relative;padding:14px 15px;border-radius:20px;background:linear-gradient(180deg,var(--card),var(--sub));border:1px solid var(--border);box-shadow:0 10px 24px rgba(15,23,42,.08);overflow:hidden;text-align:left}
.digest-card::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;opacity:.9;background:linear-gradient(90deg,transparent,rgba(114,185,74,.5),transparent)}
.digest-card.is-danger::after{background:linear-gradient(90deg,transparent,rgba(224,112,90,.75),transparent)}
.digest-card.is-caution::after{background:linear-gradient(90deg,transparent,rgba(245,158,11,.75),transparent)}
.digest-card.is-info::after{background:linear-gradient(90deg,transparent,rgba(74,144,217,.7),transparent)}
.digest-label{display:block;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.digest-title{display:block;font-size:16px;font-weight:800;line-height:1.2}
.digest-title.good{color:#5a9e38}.digest-title.caution{color:var(--gold)}.digest-title.danger{color:#dc2626}.digest-title.info{color:var(--sky)}
.digest-copy{display:block;font-size:11.5px;line-height:1.5;color:var(--muted);margin-top:6px}
.chips3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.fchip{padding:8px 4px;border-radius:12px;text-align:center;border:1px solid}
.fchip .v{font-size:12px;font-weight:800;display:block}
.fchip .l{font-size:9px;opacity:.8;display:block;margin-top:1px}
.hint{margin-top:10px;padding:9px 14px;border-radius:12px;font-size:11px;text-align:center;border:1px solid}
.meta-row{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.meta-pill{font-size:10px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--sub);border:1px solid var(--sub-border);color:var(--muted)}
.link-btn{font-size:11px;font-weight:700;color:var(--seafoam);opacity:.8;background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;margin-top:14px}
.breakdown{display:none;margin-top:12px;text-align:left}
.breakdown.open{display:block}
.fbar{margin-bottom:12px}
.fbar-top{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700}
.fbar-top small{font-weight:600;color:var(--faint);font-size:10px;margin-left:4px}
.fbar-track{height:6px;background:rgba(0,0,0,.07);border-radius:99px;overflow:hidden;margin:5px 0 4px}
.fbar-fill{height:100%;border-radius:99px;transition:width 1s cubic-bezier(.16,1,.3,1)}
.fbar-why{font-size:10.5px;color:var(--muted);line-height:1.45}
.caps{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--sub);border:1px solid var(--sub-border);font-size:10.5px;color:var(--muted);line-height:1.5}
.caps b{color:var(--chalk-dim)}

/* Section cards */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:14px}
.sec-head .right{font-size:10px;color:var(--faint);text-align:right;line-height:1.35}
.hazard{display:flex;gap:10px;padding:11px 12px;border-radius:14px;border:1px solid var(--sub-border);border-left:4px solid;background:var(--sub);margin-bottom:8px}
.hazard:last-child{margin-bottom:0}
.hazard .ic{font-size:18px;line-height:1.1}
.hazard .t{font-size:12.5px;font-weight:800;line-height:1.3}
.hazard .d{font-size:11px;color:var(--muted);line-height:1.45;margin-top:2px}
.hazard .src{font-size:10px;color:var(--faint);margin-top:3px}
.hazard .src a{color:var(--sky);text-decoration:none}
.lvl-danger{border-left-color:var(--coral)}.lvl-caution{border-left-color:var(--gold-bright)}.lvl-info{border-left-color:var(--sky)}
.empty-ok{font-size:12px;color:#5a9e38;font-weight:700;padding:6px 2px}
.cc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cc{background:var(--sub);border:1px solid var(--sub-border);border-radius:16px;padding:12px 13px}
.cc-label{font-size:10px;font-weight:600;color:var(--muted);margin-bottom:3px}
.cc-val{font-size:19px;font-weight:800;line-height:1.2;font-family:'Outfit',sans-serif}
.cc-detail{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4}
.span2{grid-column:span 2}
.meter{height:8px;border-radius:99px;background:linear-gradient(90deg,#72b94a 0%,#f59e0b 45%,#e0705a 70%,#b91c1c 100%);position:relative;margin:10px 0 4px}
.meter i{position:absolute;top:-4px;width:4px;height:16px;border-radius:3px;background:var(--chalk);box-shadow:0 0 0 2px var(--card);transform:translateX(-2px)}
.meter-scale{display:flex;justify-content:space-between;font-size:9px;color:var(--faint)}
.aval-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:8px}
.aval-scale span{font-size:9px;font-weight:800;text-align:center;padding:6px 0;border-radius:8px;opacity:.28;color:#fff}
.aval-scale span.on{opacity:1;box-shadow:0 2px 10px rgba(0,0,0,.15)}

/* Crossing timeline */
.hours{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.hours::-webkit-scrollbar{height:4px}.hours::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:4px}
.hr{flex:0 0 52px;scroll-snap-align:start;text-align:center;padding:8px 2px;border-radius:14px;background:var(--sub);border:1px solid var(--sub-border)}
.hr.best{border-color:rgba(114,185,74,.6);box-shadow:0 0 0 2px rgba(114,185,74,.18)}
.hr .h{font-size:10px;font-weight:800;color:var(--muted)}
.hr .bar{height:36px;width:8px;margin:6px auto;border-radius:6px;background:rgba(0,0,0,.06);position:relative;overflow:hidden}
.hr .bar i{position:absolute;bottom:0;left:0;right:0;border-radius:6px}
.hr .tmp{font-size:12px;font-weight:800;font-family:'Outfit',sans-serif}
.hr .x{font-size:9px;color:var(--muted);line-height:1.35}
.hr.day0{border-style:dashed}
.best-banner{margin-top:12px;padding:10px 14px;border-radius:14px;font-size:12px;font-weight:700;text-align:center}

/* Route profile */
#profileSvg{width:100%;height:auto;display:block}
.wp-row{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--sub-border)}
.wp-row:last-child{border-bottom:none}
.wp-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.wp-name{font-size:13px;font-weight:800;line-height:1.2}
.wp-meta{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.wp-right{text-align:right;font-size:11px;color:var(--muted);line-height:1.4}
.wp-right b{font-size:15px;color:var(--chalk);font-family:'Outfit',sans-serif}
.tag{display:inline-block;font-size:9px;font-weight:800;padding:2px 7px;border-radius:99px;letter-spacing:.02em;vertical-align:middle}
.tag.snow{background:rgba(90,166,224,.14);color:#2a74b5}
.tag.freeze{background:rgba(74,144,217,.12);color:var(--sky)}
.tag.warn{background:rgba(217,119,6,.12);color:var(--gold)}
.tag.bad{background:rgba(224,112,90,.13);color:#c2412b}
.tag.ok{background:rgba(114,185,74,.13);color:#4d8c2c}
#routeMap{height:320px;border-radius:18px;overflow:hidden;border:1px solid var(--sub-border);z-index:1}
.map-toolbar{display:flex;gap:6px;margin-top:8px}
.map-layer-btn{padding:6px 10px;font-size:10px;font-weight:700;border-radius:8px;border:1px solid var(--sub-border);background:var(--sub);color:var(--chalk-dim);cursor:pointer}
.map-layer-btn.active{background:rgba(114,185,74,.12);color:var(--seafoam);border-color:rgba(114,185,74,.25)}
.acc-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:12px;padding:7px 0;border-bottom:1px dashed var(--sub-border)}
.acc-row:last-child{border-bottom:none}
.acc-row .g{font-weight:800;font-size:11px}

/* Forecast */
.day-card{display:grid;grid-template-columns:54px 1fr;gap:12px;padding:14px;border-radius:18px;background:var(--sub);border:1px solid var(--sub-border);margin-bottom:10px;border-left:4px solid}
.day-card.best{box-shadow:0 0 0 2px rgba(114,185,74,.25)}
.day-score{width:54px;height:54px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-family:'Outfit',sans-serif;font-weight:900;font-size:20px;line-height:1}
.day-score small{font-size:8px;font-weight:700;letter-spacing:.04em;margin-top:2px;opacity:.9;text-transform:uppercase}
.day-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.day-name{font-size:14px;font-weight:800;font-family:'Outfit',sans-serif}
.day-date{font-size:10px;color:var(--faint)}
.day-why{font-size:11.5px;color:var(--chalk-dim);line-height:1.45;margin-top:3px}
.day-stats{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:10.5px;color:var(--muted)}
.day-note{margin-top:6px;font-size:10px;font-weight:700;color:var(--gold)}
.minibars{display:flex;gap:3px;margin-top:8px;width:100%;border:none;background:none;padding:4px 0;cursor:pointer}
.minibars span{flex:1;height:5px;border-radius:3px}
.day-factors{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:6px;font-size:11px;color:var(--chalk-dim)}
.day-factors[hidden]{display:none}
.day-factors span{display:flex;align-items:center;gap:6px}
.day-factors i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.day-factors b{margin-left:auto}
.bars-legend{font-size:11px;color:var(--muted);line-height:1.45;margin:-4px 0 12px;padding:8px 10px;border-radius:10px;background:var(--sub);border:1px solid var(--sub-border)}

/* News */
.filter-row{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px;padding-bottom:2px}
.filter-btn{white-space:nowrap;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:700;border:1.5px solid var(--sub-border);background:var(--sub);color:var(--chalk-dim);cursor:pointer}
.filter-btn.active{background:rgba(114,185,74,.1);border-color:rgba(114,185,74,.35);color:var(--seafoam)}
.news-item{display:block;text-decoration:none;padding:12px;border-radius:14px;background:var(--sub);border:1px solid var(--sub-border);margin-bottom:8px}
.news-item:hover{border-color:rgba(114,185,74,.3)}
.news-top{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px}
.news-title{font-size:13px;font-weight:700;line-height:1.35;color:var(--chalk)}
.news-meta{font-size:10.5px;color:var(--muted);margin-top:5px}
.trust{font-size:9px;font-weight:800;padding:2px 7px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}
.trust.official{background:rgba(22,163,74,.13);color:#15803d}.trust.high{background:rgba(74,144,217,.12);color:#2a67a8}
.trust.medium{background:rgba(148,163,184,.18);color:#64748b}.trust.low{background:rgba(148,163,184,.12);color:#94a3b8}
.sev{font-size:9px;font-weight:800;padding:2px 7px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}
.sev.high{background:rgba(224,112,90,.14);color:#c2412b}.sev.medium{background:rgba(245,158,11,.14);color:#b45309}
.sev.low{background:rgba(148,163,184,.14);color:#64748b}.sev.positive{background:rgba(114,185,74,.15);color:#4d8c2c}
.dhm-text{font-size:12px;line-height:1.6;color:var(--chalk-dim)}
.dhm-text mark{background:rgba(114,185,74,.16);color:inherit;padding:0 2px;border-radius:3px}
table.mtn{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}
table.mtn th{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);text-align:left;padding:6px 4px;border-bottom:1px solid var(--sub-border)}
table.mtn td{padding:7px 4px;border-bottom:1px dashed var(--sub-border)}
.src-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--sub-border);text-decoration:none}
.src-link:last-child{border-bottom:none}
.src-link .n{font-size:12.5px;font-weight:800}
.src-link .d{font-size:10.5px;color:var(--muted)}
.plat{font-size:9px;font-weight:800;padding:3px 8px;border-radius:8px;background:var(--sub);border:1px solid var(--sub-border);color:var(--muted);white-space:nowrap}

/* Info */
.info-row{padding:10px 0;border-bottom:1px solid var(--sub-border)}
.info-row:last-child{border-bottom:none}
.info-row .n{font-size:13px;font-weight:800}
.info-row .d{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.method p{font-size:12px;line-height:1.6;color:var(--chalk-dim);margin-bottom:8px}
.method b{color:var(--chalk)}
.disclaimer{font-size:10.5px;color:var(--muted);line-height:1.55;padding:12px 14px;border-radius:14px;background:rgba(217,119,6,.06);border:1px solid rgba(217,119,6,.18)}

/* Nav + sheet */
.glass-nav{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 16px rgba(0,0,0,.06);padding-bottom:env(safe-area-inset-bottom,0px)}
.glass-nav .in{max-width:28rem;margin:0 auto;display:flex;padding:0 10px}
.tab-button{flex:1;padding:10px 0 9px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);position:relative;font-family:'Outfit',sans-serif;border:none;background:none;cursor:pointer;font-size:10px;font-weight:600}
.tab-button svg{width:24px;height:24px}
.tab-button.active{color:var(--seafoam)}
.tab-button.active::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:3px;background:var(--seafoam);border-radius:0 0 99px 99px;box-shadow:0 3px 12px rgba(114,185,74,.4)}
.tab-badge{position:absolute;top:6px;right:calc(50% - 20px);min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--coral);color:#fff;font-size:9px;font-weight:800;display:none;align-items:center;justify-content:center}
.sheet-bg{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:120;display:none}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:121;max-width:28rem;margin:0 auto;background:var(--surface);border-radius:24px 24px 0 0;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateY(105%);transition:transform .35s cubic-bezier(.16,1,.3,1);max-height:82vh;overflow-y:auto}
.sheet.open{transform:none}
.sheet-grab{width:40px;height:4px;border-radius:4px;background:rgba(0,0,0,.15);margin:4px auto 14px}
.trek-opt{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:16px;border:1px solid var(--sub-border);background:var(--sub);margin-bottom:8px;text-decoration:none;color:inherit}
.trek-opt.current{border-color:rgba(114,185,74,.45)}
.trek-opt .sc{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-family:'Outfit',sans-serif;font-size:18px;background:var(--faint)}
.trek-opt .n{font-size:14px;font-weight:800}
.trek-opt .d{font-size:10.5px;color:var(--muted);margin-top:2px}
.skeleton{background:linear-gradient(90deg,var(--sub),rgba(0,0,0,.06),var(--sub));background-size:200% 100%;animation:sk 1.4s infinite;border-radius:10px}
@keyframes sk{to{background-position:-200% 0}}
.err-box{padding:18px;border-radius:16px;background:rgba(224,112,90,.08);border:1px solid rgba(224,112,90,.25);font-size:13px;color:#a3321d;text-align:center}
.foot{text-align:center;font-size:10px;color:var(--faint);line-height:1.6;padding:4px 10px}
.foot a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Ground truth + planner */
.gt-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--sub-border);font-size:12px}
.gt-row:last-child{border-bottom:none}
.gt-row .n{font-weight:800;font-size:12.5px}
.gt-row .d{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.gt-row .v{text-align:right;font-family:'Outfit',sans-serif;font-weight:800;font-size:15px}
.gt-row .v small{display:block;font-family:'DM Sans',sans-serif;font-weight:600;font-size:9.5px;color:var(--muted)}
.gt-h{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:14px 0 2px}
.gt-h:first-child{margin-top:0}
.planner-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--chalk-dim);flex-wrap:wrap}
.date-input{font-family:inherit;font-size:14px;font-weight:700;padding:8px 10px;border-radius:12px;border:1.5px solid rgba(114,185,74,.35);background:var(--sub);color:var(--chalk)}
.plan-sum{margin:12px 0;padding:12px 14px;border-radius:16px;font-size:12.5px;line-height:1.5;border:1px solid}
.plan-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--sub-border)}
.plan-row:last-child{border-bottom:none}
.plan-day{text-align:center;font-family:'Outfit',sans-serif;font-weight:800;font-size:11px;color:var(--muted);line-height:1.2}
.plan-day b{display:block;font-size:15px;color:var(--chalk)}
.plan-row.crit{background:rgba(114,185,74,.06);border-radius:12px;padding:10px 8px}
.plan-row.future{opacity:.55}
.chip{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:26px;padding:0 8px;border-radius:99px;color:#fff;font-weight:900;font-family:'Outfit',sans-serif;font-size:13px}
.breaking{background:#dc2626;color:#fff;font-size:9px;font-weight:900;padding:2px 7px;border-radius:99px;letter-spacing:.06em;animation:pulse 2s infinite}

/* New-alert toast (auto-check) */
.alert-toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;transform:translateX(-50%);z-index:130;width:calc(100% - 24px);max-width:26rem;display:flex;align-items:stretch;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.25);animation:toastIn .45s cubic-bezier(.16,1,.3,1)}
.alert-toast[hidden]{display:none}
.alert-toast.danger{background:linear-gradient(135deg,#dc2626,#e0705a)}
.alert-toast.caution{background:linear-gradient(135deg,#d97706,#f59e0b)}
.alert-toast.good{background:linear-gradient(135deg,#5a9e38,#72b94a)}
.toast-body{flex:1;border:none;background:none;color:#fff;text-align:left;padding:12px 14px;font-size:12.5px;line-height:1.4;cursor:pointer}
.toast-body b{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.9;margin-bottom:2px}
.toast-x{border:none;background:rgba(0,0,0,.12);color:#fff;width:40px;font-size:14px;cursor:pointer}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}
.new-tag{display:inline-block;background:#dc2626;color:#fff;font-size:9px;font-weight:900;letter-spacing:.06em;padding:1px 6px;border-radius:99px;margin-left:6px;vertical-align:middle}
.wind-arrow{display:inline-block;font-weight:900;color:var(--sky);line-height:1}
