/*!
 * live-status.css — foundation styles for tirumala-live-status.php
 *
 * v1.0 — 21 May 2026
 *
 * Extracted from the first inline <style> block of
 * tirumala-live-status.php (151 KB). Pure CSS — no PHP interpolation.
 * Contains: :root vars, body.light overrides, button system, animations,
 * tab styles, card primitives, layout grid, info-strip, all foundation.
 *
 * Loaded with normal <link rel="stylesheet"> from the live page <head>
 * so it parallelizes with HTML download but still blocks paint (avoids
 * FOUC on first visit). Cached aggressively (Cache-Control: public,
 * max-age=2592000) so repeat visits skip the 147 KB transfer entirely.
 *
 * Bump the ?v=YYYYMMDDNN query in the <link> tag to bust caches on edits.
 */

/* ===== RESET & VARIABLES ===== */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --gold:#C8920A;--gold2:#E8A800;--goldbright:#FFD700;
  --red:#7a0a0a;--red2:#a01212;
  --wa:#25D366;--tg:#2ca5e0;
  /* Extended temple palette — saffron for warning/closing-soon states,
     tulasi-green for live/open states, deeper shadows for premium feel. */
  --saffron:#cc6611;--saffron2:#e07820;--saffron-glow:rgba(224,120,32,0.45);
  --tulasi:#3a7a5a;--tulasi2:#4f9b78;--tulasi-glow:rgba(79,155,120,0.4);
  --shadow-deep:0 14px 32px -10px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.35);
  --shadow-soft:0 4px 14px -4px rgba(0,0,0,0.4);
  --gold-filigree:linear-gradient(135deg,rgba(255,215,0,0.55),rgba(200,146,10,0.18) 35%,rgba(255,215,0,0.55));
  --bg:#06010e;--bg2:#0d0222;--bg3:#14042a;
  --border:rgba(200,146,10,0.25);--border2:rgba(200,146,10,0.48);
  --txt:#f0e8ff;
  --txt2:rgba(240,232,255,0.85);
  --txt3:rgba(240,232,255,0.58);
  --txt4:rgba(240,232,255,0.35);
  --card:rgba(255,255,255,0.05);
  --hdr-bg:linear-gradient(180deg,#1e0500 0%,#08011a 100%);
  --msg-admin-bg:linear-gradient(135deg,rgba(100,8,8,0.88),rgba(60,4,4,0.92));
  --msg-user-bg:rgba(255,255,255,0.08);
  --msg-other-bg:rgba(255,255,255,0.045);
  --reply-bg:rgba(255,255,255,0.07);
  --at-del-c:rgba(255,255,255,0.5);--at-del-b:rgba(255,255,255,0.2);
}
body.light{
  --bg:#f5ede0;--bg2:#ede0cc;--bg3:#e0d0b8;
  --border:rgba(120,70,0,0.25);--border2:rgba(120,70,0,0.5);
  --txt:#1a0800;
  --txt2:rgba(26,8,0,0.82);
  --txt3:rgba(26,8,0,0.58);
  --txt4:rgba(26,8,0,0.38);
  --card:rgba(255,255,255,0.78);
  --hdr-bg:linear-gradient(180deg,#2a0800 0%,#180004 100%);
  --msg-admin-bg:linear-gradient(135deg,#7a1010,#a01212);
  --msg-user-bg:rgba(66,103,178,0.12);
  --msg-other-bg:rgba(0,0,0,0.06);
  --reply-bg:rgba(0,0,0,0.06);
  --at-del-c:rgba(26,8,0,0.45);--at-del-b:rgba(26,8,0,0.2);
  /* Extended temple palette (light mode) */
  --saffron:#b35008;--saffron2:#cc6611;--saffron-glow:rgba(179,80,8,0.32);
  --tulasi:#2d5d44;--tulasi2:#3a7a5a;--tulasi-glow:rgba(58,122,90,0.28);
  --shadow-deep:0 10px 26px -8px rgba(80,30,0,0.22), 0 1px 4px rgba(80,30,0,0.12);
  --shadow-soft:0 4px 10px -3px rgba(80,30,0,0.18);
}

/* ============================================================
   FOUNDATION — global button system, utility animations, and
   the temple-bell CTA + diya flicker primitives. Used across the
   live page (tabs, poll bars, quiz card, empty states).
============================================================ */

/* Button system — three weights for clear visual hierarchy.
   Use .ttv-btn as the base, then layer one of the variant classes. */
.ttv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:10px;font-family:'Cinzel',serif;font-size:13.5px;font-weight:600;letter-spacing:.5px;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .2s, background .2s, border-color .2s;-webkit-tap-highlight-color:transparent;user-select:none;line-height:1.2;position:relative;overflow:hidden}
.ttv-btn:active{transform:scale(.97)}
.ttv-btn:focus-visible{outline:2px solid var(--goldbright);outline-offset:2px}
.ttv-btn[disabled],.ttv-btn.is-disabled{opacity:.55;cursor:not-allowed;transform:none}

/* Primary — the big "Play / Submit / Vote" calls to action.
   Red→saffron gradient with a gold filigree border + soft halo. */
.ttv-btn-primary{background:linear-gradient(135deg,var(--red) 0%, #9a1818 45%, var(--saffron) 100%);color:#ffe7b3;border-color:rgba(255,215,0,0.55);box-shadow:0 4px 14px -4px rgba(122,10,10,0.55), inset 0 1px 0 rgba(255,215,0,0.25)}
.ttv-btn-primary:hover{box-shadow:0 8px 22px -6px rgba(224,120,32,0.55), inset 0 1px 0 rgba(255,215,0,0.4);border-color:var(--goldbright)}
.ttv-btn-primary::before{content:'';position:absolute;inset:0;background:var(--gold-filigree);opacity:0;transition:opacity .25s;pointer-events:none}
.ttv-btn-primary:hover::before{opacity:.18}

/* Secondary — outlined gold, used for "View leaderboard / View rules". */
.ttv-btn-secondary{background:rgba(255,215,0,0.06);color:var(--goldbright);border-color:rgba(255,215,0,0.45)}
.ttv-btn-secondary:hover{background:rgba(255,215,0,0.12);border-color:var(--goldbright);box-shadow:0 0 0 3px rgba(255,215,0,0.10)}

/* Ghost — minimal, for tertiary "Skip / Cancel / Close" actions. */
.ttv-btn-ghost{background:transparent;color:var(--txt2);border-color:rgba(255,255,255,0.10)}
.ttv-btn-ghost:hover{color:var(--goldbright);border-color:rgba(255,215,0,0.35);background:rgba(255,215,0,0.04)}

/* Temple-bell shape — apply to .ttv-btn-primary for the marquee CTA on
   the quiz card. Uses clip-path instead of a real bell SVG so the button
   stays a real <a>/<button> element with full a11y semantics. */
.ttv-btn-bell{padding:13px 26px 16px;border-radius:14px 14px 22px 22px;position:relative}
.ttv-btn-bell::after{content:'';position:absolute;left:50%;bottom:-5px;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle,var(--goldbright) 0%,var(--gold) 60%,transparent 75%);transform:translateX(-50%);box-shadow:0 0 12px rgba(255,215,0,0.7);pointer-events:none}

/* Pulse-soon — used when a quiz/poll countdown drops below 1h. */
@keyframes ttvPulseSoon{
  0%,100%{box-shadow:0 4px 14px -4px rgba(122,10,10,0.55), inset 0 1px 0 rgba(255,215,0,0.25), 0 0 0 0 rgba(255,215,0,0.55)}
  50%{box-shadow:0 4px 14px -4px rgba(122,10,10,0.55), inset 0 1px 0 rgba(255,215,0,0.4), 0 0 0 6px rgba(255,215,0,0)}
}
.ttv-pulse-soon{animation:ttvPulseSoon 1.6s ease-in-out infinite}

/* Gold-leaf hairline — a 2px decorative top accent for cards/tabs. */
.ttv-hairline{position:relative}
.ttv-hairline::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent 0%, var(--gold2) 25%, var(--goldbright) 50%, var(--gold2) 75%, transparent 100%);background-size:200% 100%;animation:ttvHairlineSweep 6s linear infinite;pointer-events:none}
@keyframes ttvHairlineSweep{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Status pills — open/closing-soon/closed semantic chips. */
.ttv-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.6px;text-transform:uppercase;font-family:'Oswald',sans-serif;line-height:1.4}
.ttv-pill-open{background:linear-gradient(135deg,var(--tulasi),var(--tulasi2));color:#eafff5;box-shadow:0 0 12px var(--tulasi-glow)}
.ttv-pill-soon{background:linear-gradient(135deg,var(--saffron),var(--saffron2));color:#fff5e0;box-shadow:0 0 12px var(--saffron-glow);animation:ttvPillSoonBlink 2s ease-in-out infinite}
.ttv-pill-closed{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.55);border:1px solid rgba(255,255,255,0.12)}
@keyframes ttvPillSoonBlink{0%,100%{filter:brightness(1)}50%{filter:brightness(1.2)}}

/* Diya flicker — an animated lamp used in empty-state SVGs. */
@keyframes ttvDiyaFlicker{
  0%,100%{transform:translate(0,0) scale(1) skewX(0deg);opacity:.95}
  18%{transform:translate(-0.4px,-0.7px) scale(1.04) skewX(-1.2deg);opacity:.85}
  37%{transform:translate(0.5px,-0.3px) scale(.97) skewX(.8deg);opacity:1}
  58%{transform:translate(-0.2px,-1.1px) scale(1.06) skewX(-.6deg);opacity:.88}
  78%{transform:translate(0.3px,-0.5px) scale(.99) skewX(1deg);opacity:.97}
}
.ttv-diya-flame{transform-origin:50% 100%;animation:ttvDiyaFlicker 0.55s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(255,200,80,0.85))}
.ttv-diya-glow{transform-origin:50% 50%;animation:ttvDiyaGlow 2.4s ease-in-out infinite}
@keyframes ttvDiyaGlow{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.78;transform:scale(1.12)}}

/* Empty state container — used for "No quiz today / No poll" cards. */
.ttv-empty{text-align:center;padding:34px 20px 28px;color:var(--txt3);font-size:13px;background:radial-gradient(ellipse at 50% 30%,rgba(255,215,0,0.06),transparent 65%);border-radius:14px;border:1px dashed rgba(255,215,0,0.18)}
.ttv-empty-svg{width:90px;height:90px;margin:0 auto 14px;display:block}
.ttv-empty-title{color:var(--txt2);font-size:14px;margin-bottom:5px;font-family:'Cinzel',serif;letter-spacing:.4px}
.ttv-empty-sub{font-size:11.8px;color:var(--txt3);line-height:1.65;max-width:340px;margin:0 auto}

/* Reduced-motion fallback — disables animations for users with
   prefers-reduced-motion. Required for accessibility. */
@media (prefers-reduced-motion: reduce){
  .ttv-pulse-soon,.ttv-hairline::before,.ttv-pill-soon,.ttv-diya-flame,.ttv-diya-glow{animation:none !important}
}
html,body{width:100%;min-height:100vh;background:var(--bg);font-family:'Oswald',sans-serif;color:var(--txt);overflow-x:hidden}
body.theme-ready{transition:background .25s,color .25s}

/* ===== PAGE WRAP — boxes entire site to 700px on desktop ===== */
.page-wrap{width:100%;max-width:700px;margin:0 auto;position:relative;min-height:100vh}
@media(min-width:720px){
  body{background:#000}
  body.light{background:#2a1800}
  .page-wrap{background:var(--bg);box-shadow:0 0 80px rgba(0,0,0,0.9)}
}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(100,20,160,0.12) 0%,transparent 60%);pointer-events:none;z-index:0}
body.light::before{background:radial-gradient(ellipse at 50% 0%,rgba(200,146,10,0.05) 0%,transparent 60%)}

/* HEADER */
.hdr{position:relative;z-index:10;background:var(--hdr-bg);border-bottom:1px solid var(--border)}
/* Animated gold hairline anchored to the bottom of the header — adds a subtle
   sweep of light that ties the brand strip to the page below. */
.hdr::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent 0%, var(--gold) 20%, var(--goldbright) 50%, var(--gold) 80%, transparent 100%);background-size:220% 100%;animation:hdrHairlineSweep 9s linear infinite;pointer-events:none;opacity:.85}
@keyframes hdrHairlineSweep{0%{background-position:220% 0}100%{background-position:-220% 0}}
@media (prefers-reduced-motion: reduce){.hdr::after{animation:none;background-position:0 0}}
.hdr-inner{max-width:700px;margin:0 auto;padding:12px 14px 10px}
/* Fixed-width sides + flexible middle = logo truly centered on every device.
   Both .hdr-clock and .theme-btn are forced to the same 56px width so
   asymmetric content can't pull the logo off-center. */
.hdr-row1{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:6px;margin-bottom:6px}
.hdr-middle{min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
/* Logo uses clamp() so it auto-shrinks on narrow Android devices and never gets
   ellipsized. white-space:nowrap kept so it stays on one line, but overflow is
   visible — clamp() guarantees the text fits within the middle grid column. */
.hdr-logo{font-family:'Cinzel',serif;font-size:clamp(0.88rem, 4vw, 1.15rem);letter-spacing:.4px;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:5px;max-width:100%;white-space:nowrap;line-height:1.15}
.hdr-logo-om{font-size:1.15em;-webkit-text-fill-color:initial;background:none;animation:omPulse 2.5s ease-in-out infinite;flex-shrink:0}
@keyframes omPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 4px rgba(255,215,0,0.4))}50%{transform:scale(1.12);filter:drop-shadow(0 0 10px rgba(255,215,0,0.8))}}
/* Logo text approach — solid gold base for guaranteed visibility on every browser
   (Firefox mobile, old WebViews, in-app browsers). Desktop browsers that fully
   support background-clip:text get an additional gradient shimmer animation. */
/* SAFE BASE — solid gold, always visible everywhere (Firefox mobile, old browsers, all WebViews) */
.hdr-logo-text{
  color:var(--goldbright);
  text-shadow:none;
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  text-overflow:clip;
  font-weight:600;
}
/* PROGRESSIVE ENHANCEMENT — only desktop Chrome/Safari/Edge get the gradient shimmer.
   We use @supports + min-width to skip mobile entirely (Firefox mobile fails this). */
@media (min-width:769px){
  @supports (-webkit-background-clip:text) and (background-clip:text){
    .hdr-logo-text{
      background:linear-gradient(90deg,var(--goldbright) 0%,#fff8dc 50%,var(--goldbright) 100%);
      background-size:200% auto;
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      animation:logoShimmer 4s linear infinite;
    }
  }
}
@keyframes logoShimmer{0%{background-position:0% center}100%{background-position:200% center}}
.hdr-sub{font-size:.5rem;color:rgba(255,215,0,0.6);letter-spacing:2.5px;text-transform:uppercase;text-align:center;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.theme-btn{width:52px;height:42px;border-radius:10px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;justify-self:end;padding:0}
.theme-btn:active{transform:scale(.9)}

/* IST Clock in header */
.hdr-clock{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:52px;justify-self:start}
.hdr-clock-time{font-family:'Oswald',sans-serif;font-size:13px;font-weight:700;color:var(--goldbright);letter-spacing:.5px;line-height:1;font-variant-numeric:tabular-nums}
.hdr-clock-label{font-size:8px;color:rgba(255,215,0,0.45);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}

/* Tirumala Weather Strip */
.hdr-weather{display:none;align-items:center;justify-content:center;gap:5px;padding:5px 14px 7px;border-top:1px solid rgba(255,215,0,0.1);flex-wrap:wrap}
.hdr-weather.show{display:flex}
.hw-icon{font-size:13px}
.hw-temps{display:inline-flex;align-items:center;gap:5px}
.hw-loc{font-size:9px;color:rgba(255,215,0,0.45);letter-spacing:.5px;text-transform:uppercase}
.hw-temp{font-size:12px;font-weight:700;color:var(--goldbright)}
.hw-tempsep{font-size:10px;color:rgba(255,215,0,0.2)}
.hw-sep{color:rgba(255,215,0,0.22);font-size:10px}
.hw-cond{font-size:11px;color:rgba(255,255,255,0.8)}
.hw-aqi-wrap{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,215,0,0.15);border-radius:12px;padding:2px 8px}
.hw-aqi-lbl{font-size:9px;color:rgba(255,215,0,0.45);letter-spacing:.8px;text-transform:uppercase}
.hw-aqi{font-size:12px;font-weight:700}
.hw-aqi-cat{font-size:10px;font-weight:600}


/* Social links use a fixed 4-column grid so that uneven Android emoji widths
   can't make the row look skewed. Every cell is equal width. */
.hdr-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.nav-a{font-size:10.5px;color:rgba(255,215,0,0.7);text-decoration:none;padding:7px 6px;border:1px solid rgba(255,215,0,0.25);border-radius:6px;transition:all .2s;white-space:nowrap;letter-spacing:.3px;min-height:36px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis}
@media(max-width:360px){.nav-a{font-size:9.5px;padding:7px 3px;letter-spacing:.1px}}
.nav-a:hover,.nav-a:active{color:var(--goldbright);border-color:rgba(255,215,0,0.6);background:rgba(255,215,0,0.08)}
.nav-a.fb{color:rgba(150,195,255,0.8);border-color:rgba(66,103,178,0.3)}
.nav-a.fb:hover{color:#a0ccff;border-color:rgba(66,103,178,0.65)}

/* NEWS TICKER — thin marquee strip between header and status bar.
   Self-contained: zero effect on surrounding elements when hidden.
   When visible, reserves exactly its own height and nothing else. */
.news-strip{background:linear-gradient(90deg,rgba(122,10,10,0.4),rgba(60,4,4,0.55));border-top:1px solid rgba(255,215,0,0.22);border-bottom:1px solid rgba(255,215,0,0.18);display:flex;align-items:stretch;overflow:hidden;position:relative;height:36px}
body.light .news-strip{background:linear-gradient(90deg,rgba(160,30,30,0.9),rgba(120,20,20,0.95));border-color:rgba(0,0,0,0.15)}
.news-badge{background:#c0392b;color:#fff;font-size:10px;font-weight:700;letter-spacing:1px;display:flex;align-items:center;justify-content:center;padding:0 10px;flex-shrink:0;animation:newsBadgePulse 1.6s ease-in-out infinite;border-right:1px solid rgba(0,0,0,0.2)}
@keyframes newsBadgePulse{0%,100%{opacity:1}50%{opacity:.55}}
.news-track-wrap{flex:1;overflow:hidden;position:relative;display:flex;align-items:center}
.news-track{display:inline-flex;gap:30px;white-space:nowrap;padding-left:16px;animation:newsScroll 45s linear infinite;will-change:transform}
.news-track:hover,.news-track.paused{animation-play-state:paused}
.news-track a,.news-track span.news-item{color:#fff;font-size:12.5px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;line-height:1}
.news-track a:hover,.news-track a:active{color:#ffd700;text-decoration:underline}
.news-track .news-dot{color:rgba(255,215,0,0.35);font-size:8px;user-select:none}
.news-track .news-tone-red::before   {content:'●';color:#ff6b5b;margin-right:5px;font-size:10px}
.news-track .news-tone-gold::before  {content:'●';color:#ffd700;margin-right:5px;font-size:10px}
.news-track .news-tone-blue::before  {content:'●';color:#59c2f0;margin-right:5px;font-size:10px}
@keyframes newsScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(max-width:480px){
  .news-strip{height:32px}
  .news-badge{font-size:9px;padding:0 7px;letter-spacing:.5px}
  .news-track a,.news-track span.news-item{font-size:11.5px}
  .news-track{gap:24px}
}

/* STATUS BAR */
.sbar{background:rgba(0,0,0,0.42);border-bottom:1px solid var(--border);padding:7px 14px}
body.light .sbar{background:rgba(0,0,0,0.07)}

/* ─── STALE DATA BANNER ─── */
.stale-banner{margin:8px 14px 0;padding:10px 13px;border-radius:8px;border:1px solid;border-left-width:3px;font-size:11.5px;line-height:1.55}
.stale-lvl-1{background:rgba(255,193,7,0.08);border-color:rgba(255,193,7,0.35);border-left-color:#ffc107}
.stale-lvl-2{background:rgba(231,76,60,0.10);border-color:rgba(231,76,60,0.40);border-left-color:#ef4444}
.stale-banner .stale-title{font-size:12px;font-weight:600;display:flex;align-items:center;gap:5px}
.stale-lvl-1 .stale-title{color:#ffc107}
.stale-lvl-2 .stale-title{color:#ff9a8c}
body.light .stale-lvl-1 .stale-title{color:#a36e00}
body.light .stale-lvl-2 .stale-title{color:#a32d2d}
.stale-banner .stale-detail{font-size:11px;color:rgba(255,255,255,0.78);margin-top:4px}
.stale-banner .stale-detail b{color:#fff;font-weight:600}
body.light .stale-banner .stale-detail{color:rgba(0,0,0,0.7)}
body.light .stale-banner .stale-detail b{color:#000}
.stale-banner .stale-note{font-size:10.5px;color:rgba(255,255,255,0.5);margin-top:4px;font-style:italic}
body.light .stale-banner .stale-note{color:rgba(0,0,0,0.55)}

/* Per-tab stale indicator dot */
.stab-stale{position:absolute;top:6px;right:6px;width:14px;height:14px;border-radius:50%;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;color:#000;animation:staleP 2s ease-in-out infinite}
.stab-stale-1{background:#ffc107}
.stab-stale-2{background:#ef4444;color:#fff}
@keyframes staleP{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}
.stab{position:relative}
.sbar-inner{max-width:700px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.live-badge{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:#ff5555;letter-spacing:.8px;text-transform:uppercase}
body.light .live-badge{color:#cc0000}
.live-dot{width:7px;height:7px;border-radius:50%;background:#ff5555;animation:pulse 1.5s infinite;box-shadow:0 0 6px #ff555588}
body.light .live-dot{background:#cc0000;box-shadow:0 0 6px #cc000055}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.65)}}
.upd-time{font-size:10px;color:var(--txt3);font-weight:500;padding:2px 9px;border-radius:999px;background:rgba(255,215,0,0.04);border:1px solid rgba(255,215,0,0.10);box-shadow:inset 0 1px 0 rgba(255,215,0,0.06);font-variant-numeric:tabular-nums}
.ref-info{font-size:9px;color:var(--txt4)}

/* MAIN */
.main{position:relative;z-index:1;max-width:700px;margin:0 auto;padding:14px 12px 22px}

/* STATUS TABS */
/* Base = 5 tabs (sarva, ssd, accom, stats, forecast). Poll +1, Quiz +1, both +2.
   On narrow mobile we relax to a 2-row wrap so cells don't get squished. */
/* ── Tab bar — bordered box style, grid on desktop, scroll on mobile ── */
.stabs-wrap{margin-bottom:10px}
/* Base grid is 6 (Sarva · SSD · Rooms · Journey · Stats · Forecast). Optional
   tabs (Hindu Calendar / Poll / Quiz) each add a column when their setting is
   on. Bumped from 5→6 on 08 May 2026 when the Journey tab was added. */
.stabs{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:6px;
  margin-bottom:0;
}
.stabs.has-poll{grid-template-columns:repeat(7,1fr)}
.stabs.has-quiz{grid-template-columns:repeat(7,1fr)}
.stabs.has-hinducal{grid-template-columns:repeat(7,1fr)}
.stabs.has-poll.has-quiz{grid-template-columns:repeat(8,1fr)}
.stabs.has-poll.has-hinducal{grid-template-columns:repeat(8,1fr)}
.stabs.has-quiz.has-hinducal{grid-template-columns:repeat(8,1fr)}
.stabs.has-poll.has-quiz.has-hinducal{grid-template-columns:repeat(9,1fr)}
/* [20-May-2026] has-rasi — Raashi Phalalu tab is always rendered, so every
   layout variant gets +1 column when this class is present. Default 6→7,
   each optional tab still adds 1 on top. */
.stabs.has-rasi{grid-template-columns:repeat(7,1fr)}
.stabs.has-rasi.has-poll,
.stabs.has-rasi.has-quiz,
.stabs.has-rasi.has-hinducal{grid-template-columns:repeat(8,1fr)}
.stabs.has-rasi.has-poll.has-quiz,
.stabs.has-rasi.has-poll.has-hinducal,
.stabs.has-rasi.has-quiz.has-hinducal{grid-template-columns:repeat(9,1fr)}
.stabs.has-rasi.has-poll.has-quiz.has-hinducal{grid-template-columns:repeat(10,1fr)}
/* [13-May-2026] Q&A enabled — TWO-ROW LAYOUT (Option B / 5+4 split).
   Row 1 = live darshan context (Sarva, SSD/DD, Rooms, Hindu Calendar,
   Journey Track). Row 2 = analytics + community (Daily Stats, Crowd
   Forecast, Poll, Pilgrim Q&A, Quiz). Each row max-5 columns; tabs are
   ~30% wider than the single-row variant so labels read cleanly. Grid
   stays at 5 cols regardless of which optional tabs are visible — empty
   columns just appear when optional tabs are off. Explicit grid-row
   anchoring preserves the semantic split (info above, community below)
   no matter the source order. */
/* !important on grid-template-columns because the .has-quiz.has-hinducal
   rule above uses an 8-column count with equal class-specificity (2 vs 2).
   Without !important the cascade order decides — fragile. !important on
   each row pin guarantees community tabs ALWAYS land on row 2 regardless
   of source order shifts in the future. */
.stabs.has-qa{grid-template-columns:repeat(5,1fr) !important}
.stabs.has-qa.has-hinducal,
.stabs.has-qa.has-poll,
.stabs.has-qa.has-quiz,
.stabs.has-qa.has-poll.has-hinducal,
.stabs.has-qa.has-quiz.has-hinducal,
.stabs.has-qa.has-poll.has-quiz,
.stabs.has-qa.has-poll.has-quiz.has-hinducal{grid-template-columns:repeat(5,1fr) !important}
/* [20-May-2026] Q&A + rasi — bump to 6 cols × 2 rows so rasi fits on
   row 2 alongside the community tabs without spilling. Pin rasi to row 2. */
.stabs.has-qa.has-rasi,
.stabs.has-qa.has-rasi.has-hinducal,
.stabs.has-qa.has-rasi.has-poll,
.stabs.has-qa.has-rasi.has-quiz,
.stabs.has-qa.has-rasi.has-poll.has-hinducal,
.stabs.has-qa.has-rasi.has-quiz.has-hinducal,
.stabs.has-qa.has-rasi.has-poll.has-quiz,
.stabs.has-qa.has-rasi.has-poll.has-quiz.has-hinducal{grid-template-columns:repeat(6,1fr) !important}
.stabs.has-qa > #stab-sarva,
.stabs.has-qa > #stab-ssd,
.stabs.has-qa > #stab-accom,
.stabs.has-qa > #stab-hinducal,
.stabs.has-qa > #stab-rasi,
.stabs.has-qa > #stab-journey{grid-row:1 !important}
.stabs.has-qa > #stab-stats,
.stabs.has-qa > #stab-forecast,
.stabs.has-qa > #stab-poll,
.stabs.has-qa > #stab-qa,
.stabs.has-qa > #stab-quiz{grid-row:2 !important}
.stab{
  padding:10px 4px;
  border:1.5px solid var(--border);
  border-radius:11px;
  background:var(--card);
  font-family:'Cinzel',serif;
  font-size:9px;
  font-weight:600;
  letter-spacing:.2px;
  cursor:pointer;
  color:var(--txt3);
  text-align:center;
  transition:all .2s cubic-bezier(.34,1.56,.64,1);
  user-select:none;
  line-height:1.3;
  min-height:68px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.stab::after{
  content:'';position:absolute;left:50%;bottom:4px;width:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--goldbright),transparent);
  box-shadow:0 0 8px rgba(255,215,0,.6);
  transform:translateX(-50%);
  transition:width .3s cubic-bezier(.34,1.56,.64,1);
  border-radius:2px;
}
.stab:hover{border-color:var(--border2);color:var(--gold2);background:rgba(200,146,10,.07)}
.stab:active{transform:scale(.96)}
.stab.on{
  background:linear-gradient(135deg,var(--red),var(--red2));
  border-color:var(--goldbright);
  color:var(--goldbright);
  box-shadow:0 4px 16px rgba(122,10,10,.5),inset 0 1px 0 rgba(255,215,0,.2);
}
.stab.on::after{width:30px}
.stab-icon{font-size:15px;display:block;margin-bottom:2px;transition:transform .2s}
.stab.on .stab-icon{transform:scale(1.08)}
.stab-ts{font-size:7.5px;color:rgba(255,215,0,.35);letter-spacing:.3px;margin-top:2px;display:block;font-family:'Oswald',sans-serif}
.stab.on .stab-ts{color:rgba(255,215,0,.65)}
body.light .stab{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.12)}
body.light .stab:hover{background:rgba(120,70,0,.06);border-color:rgba(120,70,0,.25)}
body.light .stab-ts{color:rgba(107,58,0,.4)}
body.light .stab.on .stab-ts{color:rgba(107,58,0,.7)}
.stab-dim{opacity:.45}

/* ════════ COLOR-CODED tabs — each tab gets its own hue when ACTIVE ════════ */
#stab-sarva.on   {background:linear-gradient(135deg,#7a0a0a,#c8102e);border-color:#ffd700;box-shadow:0 4px 18px rgba(231,76,60,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-ssd.on     {background:linear-gradient(135deg,#0f6e3e,#1aa063);border-color:#7adf90;box-shadow:0 4px 18px rgba(34,197,94,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-accom.on   {background:linear-gradient(135deg,#7a4a0a,#c08820);border-color:#ffe89e;box-shadow:0 4px 18px rgba(212,160,23,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff8d8}
#stab-stats.on   {background:linear-gradient(135deg,#0c4a6e,#0ea5e9);border-color:#7dd3fc;box-shadow:0 4px 18px rgba(14,165,233,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-forecast.on{background:linear-gradient(135deg,#5b21b6,#a855f7);border-color:#d8b4fe;box-shadow:0 4px 18px rgba(168,85,247,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-poll.on    {background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-color:#93c5fd;box-shadow:0 4px 18px rgba(59,130,246,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-quiz.on    {background:linear-gradient(135deg,#9d174d,#ec4899);border-color:#fbcfe8;box-shadow:0 4px 18px rgba(236,72,153,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff}
#stab-hinducal.on{background:linear-gradient(135deg,#9a3412,#ea580c);border-color:#fdba74;box-shadow:0 4px 18px rgba(234,88,12,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#fff5e6}
#stab-journey.on {background:linear-gradient(135deg,#15803d,#22c55e);border-color:#86efac;box-shadow:0 4px 18px rgba(34,197,94,.55),inset 0 1px 0 rgba(255,255,255,.18);color:#dcfce7}

/* Inactive tabs get a subtle hint of their group color via top-edge stripe */
#stab-sarva   {border-top-color:rgba(231,76,60,.45)}
#stab-ssd     {border-top-color:rgba(34,197,94,.45)}
#stab-accom   {border-top-color:rgba(212,160,23,.55)}
#stab-stats   {border-top-color:rgba(14,165,233,.45)}
#stab-forecast{border-top-color:rgba(168,85,247,.45)}
#stab-poll    {border-top-color:rgba(59,130,246,.45)}
#stab-quiz    {border-top-color:rgba(236,72,153,.45)}
#stab-hinducal{border-top-color:rgba(234,88,12,.55)}
#stab-journey {border-top-color:rgba(34,197,94,.55)}

/* ════════ SHINE effect — sweeping highlight on active tab ════════ */
.stab.on::before{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.18) 50%,transparent 100%);
  animation:stabShine 3.2s ease-in-out infinite;pointer-events:none;
}
@keyframes stabShine{
  0%   {left:-60%;opacity:0}
  20%  {opacity:.9}
  60%  {left:140%;opacity:.4}
  100% {left:140%;opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .stab.on::before{animation:none;display:none}
}

/* ════════ MOBILE: one row, horizontal scroll, all 6-7 tabs visible ════════ */
@media (max-width: 600px){
  .stabs-wrap{
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    margin-left:-8px;margin-right:-8px;     /* edge-to-edge */
    padding:0 8px 4px;
  }
  .stabs-wrap::-webkit-scrollbar{display:none}
  /* [20-May-2026] has-rasi added to the mobile flex-flatten rule. Mobile
     turns the strip into a horizontal-scroll flex row regardless of which
     optional tabs are on, so all permutations of has-* classes (including
     the always-on has-rasi) need to match this selector. */
  .stabs,
  .stabs.has-poll,
  .stabs.has-quiz,
  .stabs.has-qa,
  .stabs.has-rasi,
  .stabs.has-poll.has-quiz,
  .stabs.has-qa.has-quiz,
  .stabs.has-qa.has-poll,
  .stabs.has-qa.has-poll.has-quiz,
  .stabs.has-rasi.has-poll,
  .stabs.has-rasi.has-quiz,
  .stabs.has-rasi.has-hinducal,
  .stabs.has-rasi.has-poll.has-quiz,
  .stabs.has-rasi.has-poll.has-hinducal,
  .stabs.has-rasi.has-quiz.has-hinducal,
  .stabs.has-rasi.has-poll.has-quiz.has-hinducal,
  .stabs.has-qa.has-rasi,
  .stabs.has-qa.has-rasi.has-poll,
  .stabs.has-qa.has-rasi.has-quiz,
  .stabs.has-qa.has-rasi.has-hinducal,
  .stabs.has-qa.has-rasi.has-poll.has-quiz,
  .stabs.has-qa.has-rasi.has-poll.has-hinducal,
  .stabs.has-qa.has-rasi.has-quiz.has-hinducal,
  .stabs.has-qa.has-rasi.has-poll.has-quiz.has-hinducal{
    display:flex;
    grid-template-columns:none;
    gap:6px;
    flex-wrap:nowrap;
  }
  .stab{
    flex:0 0 auto;
    min-width:84px;
    width:84px;
    padding:8px 4px;
    min-height:64px;
    font-size:8.5px;
    border-radius:9px;
    scroll-snap-align:start;
  }
  .stab-icon{font-size:14px;margin-bottom:1px}
  .stab-ts{font-size:7px}
}
@media (max-width: 360px){
  .stab{min-width:76px;width:76px;font-size:8px;min-height:60px}
  .stab-icon{font-size:13px}
}

/* LANG TABS */
.ltabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.ltab{padding:8px 6px;border:1.5px solid var(--border);border-radius:7px;background:var(--card);font-size:12px;font-weight:600;cursor:pointer;color:var(--txt3);text-align:center;transition:all .2s;user-select:none}
.ltab:hover{border-color:var(--border2);color:var(--txt2)}
.ltab.on{background:rgba(200,146,10,0.14);border-color:var(--gold2);color:var(--gold2);font-weight:700;box-shadow:0 0 8px rgba(200,146,10,0.2)}
body.light .ltab.on{color:#7a4a00}
.tab-panel{display:none}.tab-panel.on{display:block}
.tab-panel:not(.on){content-visibility:auto;contain-intrinsic-size:0 400px}
.lang-panel{display:none}.lang-panel.on{display:block}

/* CONTENT CARD */
.content-card{background:linear-gradient(160deg,rgba(18,4,40,0.92),rgba(8,1,18,0.96));border:1px solid var(--border);border-radius:12px;overflow:hidden;position:relative;box-shadow:0 3px 18px rgba(0,0,0,0.22)}
body.light .content-card{background:linear-gradient(160deg,rgba(255,252,245,0.99),rgba(255,248,235,1));box-shadow:0 2px 12px rgba(0,0,0,0.09)}
.content-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold2),transparent)}
.content-text{padding:16px;font-family:'Noto Sans Telugu','Noto Sans Devanagari','Oswald',sans-serif;font-size:15px;line-height:2.1;color:var(--txt2);white-space:pre-wrap;word-break:break-word}
body.light .content-text{color:#1a0800}

/* PER-TAB DISCLAIMER (gold-accent note placed under each content card) */
.tab-disclaimer{margin-top:8px;background:rgba(212,160,23,0.08);border-left:3px solid var(--gold2);border-radius:0 8px 8px 0;padding:9px 11px;font-size:12px;color:var(--txt3);line-height:1.55}
body.light .tab-disclaimer{background:rgba(212,160,23,0.10);color:#7a5a10}
.tab-disclaimer .td-lead{color:var(--gold2);font-weight:600;margin-right:4px}
body.light .tab-disclaimer .td-lead{color:#7a4a00}
.tab-disclaimer .td-time{color:var(--txt4);margin-left:6px;font-size:11px}
body.light .tab-disclaimer .td-time{color:#8a7a4a}

/* ===== DAILY STATS TAB ===== */
.ds-wrap{padding:4px 0 2px}
.ds-hero{background:linear-gradient(160deg,rgba(212,160,23,0.10),rgba(60,8,8,0.30));border:1.5px solid rgba(212,160,23,0.30);border-radius:14px;padding:14px 14px 12px;margin-bottom:12px;position:relative;overflow:hidden}
body.light .ds-hero{background:linear-gradient(160deg,rgba(212,160,23,0.12),rgba(255,248,225,0.85));border-color:rgba(212,160,23,0.45)}
.ds-hero-watermark{position:absolute;right:-10px;top:-12px;font-size:80px;opacity:.05;pointer-events:none}
.ds-hero-date{font-family:'Cinzel',serif;font-size:12px;color:var(--goldbright);letter-spacing:.5px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.ds-hero-sub{font-size:10.5px;color:var(--txt3);margin-bottom:12px}
.ds-hero-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ds-metric{background:rgba(0,0,0,0.35);border:1px solid rgba(212,160,23,0.18);border-radius:10px;padding:10px 11px;position:relative}
body.light .ds-metric{background:rgba(255,255,255,0.70);border-color:rgba(212,160,23,0.35)}
.ds-metric-icon{font-size:15px;margin-bottom:4px;opacity:.85}
.ds-metric-lbl{font-size:9.5px;color:var(--txt4);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px;font-family:'Oswald',sans-serif}
.ds-metric-val{font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;color:#ffd76b;line-height:1.1;letter-spacing:.3px}
body.light .ds-metric-val{color:#8a5a00}
.ds-metric-delta{font-size:9.5px;color:var(--txt3);margin-top:3px;font-weight:600}
.ds-delta-up{color:#5ed49a}
.ds-delta-down{color:#ff8a8a}
body.light .ds-delta-up{color:#1a7a3a}
body.light .ds-delta-down{color:#cc2200}
.ds-range-tabs{display:flex;gap:4px;margin-bottom:10px;background:rgba(0,0,0,0.25);border:1px solid rgba(212,160,23,0.15);border-radius:10px;padding:3px}
body.light .ds-range-tabs{background:rgba(0,0,0,0.04);border-color:rgba(212,160,23,0.28)}
.ds-range{flex:1;text-align:center;padding:7px 2px;font-size:11px;font-family:'Oswald',sans-serif;letter-spacing:.4px;color:var(--txt3);border-radius:7px;cursor:pointer;transition:all .15s}
.ds-range.on{background:linear-gradient(160deg,rgba(212,160,23,0.30),rgba(212,160,23,0.18));color:var(--goldbright);box-shadow:inset 0 0 0 1px rgba(212,160,23,0.5)}
body.light .ds-range.on{background:linear-gradient(160deg,rgba(212,160,23,0.40),rgba(212,160,23,0.22));color:#6b3a00}
.ds-chart-card{background:rgba(0,0,0,0.25);border:1px solid rgba(212,160,23,0.18);border-radius:12px;padding:12px 12px 10px;margin-bottom:10px}
body.light .ds-chart-card{background:rgba(255,255,255,0.75);border-color:rgba(212,160,23,0.30)}
.ds-chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.ds-chart-title{font-size:11.5px;color:var(--txt2);font-weight:600}
.ds-chart-meta{font-size:11px;color:var(--goldbright);font-family:'Oswald',sans-serif}
.ds-chart-canvas-wrap{position:relative;height:150px;width:100%}
.ds-yoy-card{background:linear-gradient(140deg,rgba(26,60,30,0.35),rgba(60,30,10,0.25));border:1.5px solid rgba(94,212,154,0.30);border-radius:12px;padding:12px 14px;margin-bottom:10px}
body.light .ds-yoy-card{background:linear-gradient(140deg,rgba(255,248,225,0.80),rgba(228,250,238,0.80));border-color:rgba(39,174,96,0.40)}
.ds-yoy-lbl{font-size:10.5px;color:var(--txt3);margin-bottom:5px;letter-spacing:.4px;font-family:'Oswald',sans-serif;text-transform:uppercase}
.ds-yoy-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ds-yoy-now{font-family:'Oswald',sans-serif;font-size:22px;font-weight:700;color:#ffd76b}
body.light .ds-yoy-now{color:#8a5a00}
.ds-yoy-then{font-size:11.5px;color:var(--txt3)}
.ds-yoy-delta{margin-top:4px;font-size:12px;font-weight:700}
.ds-month-meter{background:linear-gradient(140deg,rgba(230,126,34,0.18),rgba(60,8,8,0.30));border:1.5px solid rgba(230,126,34,0.35);border-radius:12px;padding:12px 14px;margin-bottom:10px;position:relative;overflow:hidden}
body.light .ds-month-meter{background:linear-gradient(140deg,rgba(255,248,225,0.80),rgba(255,238,210,0.85));border-color:rgba(230,126,34,0.55)}
.ds-mm-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.ds-mm-title{font-size:11.5px;color:var(--goldbright);font-weight:700;letter-spacing:.3px}
body.light .ds-mm-title{color:#a04800}
.ds-mm-sub{font-size:10px;color:var(--txt3)}
.ds-mm-val{font-family:'Oswald',sans-serif;font-size:26px;font-weight:700;color:#ffd76b;line-height:1;margin-bottom:3px}
body.light .ds-mm-val{color:#a04800}
.ds-mm-bar{height:7px;background:rgba(0,0,0,0.3);border-radius:999px;overflow:hidden;margin:7px 0 5px}
body.light .ds-mm-bar{background:rgba(230,126,34,0.15)}
.ds-mm-fill{height:100%;background:linear-gradient(90deg,#e67e22,#ffd76b);border-radius:999px;transition:width 1.2s cubic-bezier(.2,.8,.3,1)}
.ds-mm-foot{display:flex;justify-content:space-between;font-size:10px;color:var(--txt4);margin-top:3px;font-family:'Oswald',sans-serif;letter-spacing:.3px}
.ds-insight{background:rgba(212,160,23,0.08);border-left:3px solid var(--gold2);border-radius:0 10px 10px 0;padding:9px 12px;margin-bottom:10px;font-size:11.5px;color:var(--txt2);line-height:1.55}
body.light .ds-insight{background:rgba(212,160,23,0.10);color:#7a5a10}
.ds-insight b{color:var(--gold2);font-weight:700}
body.light .ds-insight b{color:#7a4a00}
.ds-wkday{background:rgba(0,0,0,0.22);border:1px solid rgba(212,160,23,0.18);border-radius:12px;padding:12px 12px 10px;margin-bottom:10px}
body.light .ds-wkday{background:rgba(255,255,255,0.72);border-color:rgba(212,160,23,0.30)}
.ds-wkday-title{font-size:11.5px;color:var(--txt2);font-weight:600;margin-bottom:6px}
.ds-wkday-bars{display:flex;align-items:flex-end;gap:4px;height:60px;padding:0 2px}
.ds-wkday-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.ds-wkday-bar-fill{width:100%;background:linear-gradient(180deg,#d4a017,#7a4a00);border-radius:3px 3px 0 0;min-height:4px;transition:height .6s ease}
.ds-wkday-bar.best .ds-wkday-bar-fill{background:linear-gradient(180deg,#ffd76b,#d4a017)}
.ds-wkday-bar.worst .ds-wkday-bar-fill{background:linear-gradient(180deg,#e67e22,#8a3a00);opacity:.6}
.ds-wkday-lbl{font-size:9.5px;color:var(--txt4);font-family:'Oswald',sans-serif;letter-spacing:.2px}
.ds-custom-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:8px;background:rgba(0,0,0,0.2);border:1px solid rgba(212,160,23,0.15);border-radius:10px;padding:8px 10px}
body.light .ds-custom-row{background:rgba(255,255,255,0.65);border-color:rgba(212,160,23,0.28)}
.ds-custom-row label{font-size:10.5px;color:var(--txt3);font-family:'Oswald',sans-serif;letter-spacing:.3px}
.ds-custom-row input[type=date]{background:rgba(0,0,0,0.35);border:1px solid rgba(212,160,23,0.25);border-radius:6px;color:var(--txt2);padding:4px 7px;font-size:11.5px;font-family:'Oswald',sans-serif}
body.light .ds-custom-row input[type=date]{background:#fff;color:#3a2a10;border-color:rgba(212,160,23,0.40)}
.ds-empty{text-align:center;padding:40px 20px;color:var(--txt3);font-size:12px;background:rgba(0,0,0,0.2);border:1px dashed rgba(212,160,23,0.25);border-radius:12px}
body.light .ds-empty{background:rgba(255,255,255,0.5);border-color:rgba(212,160,23,0.35);color:#7a5a10}
.ds-empty-icon{font-size:32px;margin-bottom:8px}
.ds-source{font-size:10px;color:var(--txt4);text-align:center;margin-top:6px}
.ds-source a{color:var(--gold2);text-decoration:none;border-bottom:1px dotted var(--gold2)}

/* SHARE BUTTONS */
.share-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.sbtn{padding:10px 5px;border-radius:9px;font-size:11.5px;font-weight:700;letter-spacing:.3px;cursor:pointer;text-align:center;transition:all .2s;border:1.5px solid;display:flex;align-items:center;justify-content:center;gap:4px;text-decoration:none;white-space:nowrap}
.sbtn:active{transform:scale(.96)}
.sbtn-wa{background:linear-gradient(135deg,#075e54,var(--wa));border-color:var(--wa);color:#fff;box-shadow:0 2px 10px rgba(37,211,102,.3)}
.sbtn-wa:hover{box-shadow:0 3px 18px rgba(37,211,102,.55)}
.sbtn-tg{background:linear-gradient(135deg,#0a3a6b,var(--tg));border-color:var(--tg);color:#fff;box-shadow:0 2px 10px rgba(44,165,224,.3)}
.sbtn-tg:hover{box-shadow:0 3px 18px rgba(44,165,224,.55)}
.sbtn-link{background:linear-gradient(135deg,rgba(200,146,10,0.22),rgba(200,146,10,0.12));border-color:var(--gold2);color:var(--goldbright);box-shadow:0 2px 10px rgba(200,146,10,.18)}
body.light .sbtn-link{color:#7a4a00;border-color:#8B5A00}
.sbtn-link:hover{box-shadow:0 3px 18px rgba(200,146,10,.38)}
.sbtn-copy{background:rgba(39,174,96,0.12);border-color:rgba(39,174,96,0.45);color:rgba(80,220,120,0.95)}
.sbtn-copy:hover{background:rgba(39,174,96,0.22)}
.sbtn-copy.copied{background:rgba(39,174,96,0.25)!important;border-color:#27ae60!important;color:#27ae60!important}
.sbtn-share{background:rgba(44,165,224,0.12);border-color:rgba(44,165,224,0.45);color:rgba(44,165,224,0.95)}
.sbtn-share:hover{background:rgba(44,165,224,0.22)}
.sbtn.copied{background:linear-gradient(135deg,#1a5a30,#27ae60)!important;border-color:#27ae60!important;color:#fff!important}

/* EMPTY STATES */
.empty-sec{text-align:center;padding:26px 14px;background:var(--card);border:1px dashed var(--border);border-radius:10px}
.empty-sec p{font-size:12px;color:var(--txt3);line-height:1.7}
.empty-page{text-align:center;padding:60px 20px}
.empty-om{font-size:3.5rem;margin-bottom:14px;opacity:.25}
.empty-title{font-family:'Cinzel',serif;font-size:1rem;color:var(--gold2);margin-bottom:8px}
.empty-sub{font-size:13px;color:var(--txt3);line-height:1.8}

/* DIVIDER */
.divider{border:none;border-top:1px solid var(--border);margin:20px 0;opacity:.6}

/* PLANNER LINKS */
.planner-wrap{margin:0}
.planner-title{font-family:'Cinzel',serif;font-size:.6rem;color:var(--gold2);letter-spacing:2px;text-transform:uppercase;margin-bottom:10px}
body.light .planner-title{color:#7a4a00}
.planner-grid{display:flex;flex-direction:column;gap:8px}
.plan-btn{display:flex;align-items:center;gap:11px;padding:13px;border-radius:11px;text-decoration:none;border:1.5px solid;transition:all .2s}
.plan-btn:active{transform:scale(.98)}
.plan-trip{background:rgba(122,10,10,0.1);border-color:rgba(200,146,10,0.4)}
body.light .plan-trip{background:rgba(122,10,10,0.06);border-color:rgba(139,90,0,0.4)}
.plan-trip:hover{background:rgba(200,146,10,0.1);border-color:var(--gold2)}
.plan-ssd{background:rgba(10,58,107,0.12);border-color:rgba(44,165,224,0.35)}
body.light .plan-ssd{background:rgba(10,58,107,0.06)}
.plan-ssd:hover{background:rgba(44,165,224,0.1);border-color:var(--tg)}
.plan-icon{font-size:20px;flex-shrink:0}
.plan-text{flex:1}
.plan-name{font-family:'Cinzel',serif;font-size:11.5px;color:var(--gold2);letter-spacing:.3px;margin-bottom:2px;font-weight:700}
body.light .plan-name{color:#6b3a00}
.plan-sub{font-size:10.5px;color:var(--txt3)}
.plan-arrow{font-size:18px;color:var(--txt3)}

/* SHARE PAGE BOX */
.share-box{background:rgba(200,146,10,0.05);border:1.5px solid var(--border);border-radius:12px;padding:13px}
body.light .share-box{background:rgba(200,146,10,0.06)}
.share-box-title{font-family:'Cinzel',serif;font-size:.6rem;color:var(--gold2);letter-spacing:2px;text-transform:uppercase;margin-bottom:9px}
body.light .share-box-title{color:#7a4a00}
.share-url{background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:7px;padding:8px 11px;font-size:11.5px;color:var(--txt2);word-break:break-all;margin-bottom:9px}
body.light .share-url{background:rgba(0,0,0,0.05);color:#1a0800}
.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.shbtn{padding:10px 6px;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:.3px;cursor:pointer;text-align:center;border:1.5px solid;background:transparent;transition:all .2s;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:5px}
.shbtn:active{transform:scale(.96)}
.shbtn-wa{border-color:var(--wa);color:#4de88e;background:rgba(37,211,102,.1)}
body.light .shbtn-wa{color:#1a7a3a}
.shbtn-wa:hover{background:rgba(37,211,102,.18)}
.shbtn-tg{border-color:var(--tg);color:var(--tg);background:rgba(44,165,224,.08)}
body.light .shbtn-tg{color:#0070aa}
.shbtn-tg:hover{background:rgba(44,165,224,.18)}
.shbtn-link{border-color:var(--gold2);color:var(--gold2);background:rgba(200,146,10,.09)}
body.light .shbtn-link{color:#7a4a00;border-color:#8B5A00}
.shbtn-link:hover{background:rgba(200,146,10,.18)}
.shbtn-ref{border-color:var(--border);color:var(--txt3);background:var(--card)}
.shbtn-ref:hover{border-color:var(--border2);color:var(--txt2)}
.shbtn.copied{background:rgba(39,174,96,.2)!important;border-color:#27ae60!important;color:#2ecc71!important}

/* CHAT BOX */
.chat-wrap{background:linear-gradient(160deg,var(--bg3),var(--bg2));border:1.5px solid var(--border);border-radius:13px;overflow:visible;position:relative}
body.light .chat-wrap{background:rgba(250,244,235,0.95);border-color:rgba(120,70,0,0.25)}

/* Pinned message */
.pinned-bar{background:rgba(200,146,10,0.14);border-bottom:1px solid rgba(200,146,10,0.25);padding:8px 12px;display:flex;align-items:flex-start;gap:7px}
body.light .pinned-bar{background:rgba(200,146,10,0.1)}
.pin-icon{font-size:13px;flex-shrink:0;margin-top:1px}
.pin-text{font-size:12px;color:var(--txt2);line-height:1.6;flex:1;word-break:break-word}
body.light .pin-text{color:#1a0800}
.pin-text a{color:var(--gold2);text-decoration:underline}
body.light .pin-text a{color:#7a4a00}

/* Chat header */
.chat-hdr{padding:11px 13px;background:linear-gradient(135deg,rgba(26,8,0,0.92),rgba(60,8,8,0.88));border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.chat-hdr-left{display:flex;align-items:center;gap:9px}
.chat-hdr-icon{font-size:18px}
.chat-hdr-title{font-family:'Cinzel',serif;font-size:11px;color:var(--goldbright);letter-spacing:.4px}
.chat-hdr-status{display:flex;align-items:center;gap:5px;margin-top:2px}
.adot{width:6px;height:6px;border-radius:50%;background:#555;flex-shrink:0;animation:bk 2s infinite}
@keyframes bk{0%,100%{opacity:1}50%{opacity:.2}}
.adot.online{background:#27ae60}
.adot-lbl{font-size:9px;color:rgba(255,255,255,0.6);letter-spacing:.3px}
.chat-toggle{padding:5px 10px;background:rgba(200,146,10,0.14);border:1px solid rgba(200,146,10,0.35);border-radius:6px;font-size:10.5px;color:var(--goldbright);cursor:pointer;letter-spacing:.3px;transition:all .2s}
.chat-toggle:hover{background:rgba(200,146,10,0.25)}

/* Admin session name picker */
.admin-name-picker{position:relative}
.anp-btn{padding:5px 9px;background:rgba(200,146,10,0.12);border:1px solid rgba(200,146,10,0.3);border-radius:6px;font-size:10px;color:var(--goldbright);cursor:pointer;letter-spacing:.2px;transition:all .2s;white-space:nowrap}
.anp-btn:hover{background:rgba(200,146,10,0.22)}
.anp-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:linear-gradient(160deg,#14042a,#0d0222);border:1.5px solid rgba(200,146,10,0.35);border-radius:10px;padding:10px;min-width:180px;z-index:500;box-shadow:0 8px 28px rgba(0,0,0,0.55)}
body.light .anp-dropdown{background:linear-gradient(160deg,#fff8ee,#fff3e0);border-color:rgba(120,70,0,0.3);box-shadow:0 8px 28px rgba(0,0,0,0.15)}
.anp-title{font-family:'Cinzel',serif;font-size:9px;color:var(--gold2);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}
body.light .anp-title{color:#7a4a00}
.anp-presets{display:flex;flex-direction:column;gap:5px;margin-bottom:9px}
.anp-preset{padding:7px 10px;background:rgba(200,146,10,0.08);border:1px solid rgba(200,146,10,0.2);border-radius:6px;font-size:11.5px;color:var(--txt2);cursor:pointer;text-align:left;transition:all .18s;font-family:'Oswald',sans-serif;letter-spacing:.2px}
.anp-preset:hover{background:rgba(200,146,10,0.18);border-color:var(--gold2);color:var(--goldbright)}
.anp-preset.active{background:rgba(200,146,10,0.22);border-color:var(--gold2);color:var(--goldbright);font-weight:700}
body.light .anp-preset{color:#1a0800}
body.light .anp-preset:hover{color:#7a4a00}
.anp-custom-row{display:flex;gap:5px}
.anp-inp{flex:1;background:rgba(255,255,255,0.07);border:1px solid rgba(200,146,10,0.22);border-radius:6px;padding:7px 9px;color:var(--txt);font-family:'Oswald',sans-serif;font-size:12px;outline:none;-webkit-appearance:none}
.anp-inp:focus{border-color:var(--gold2)}
.anp-inp::placeholder{color:var(--txt4)}
body.light .anp-inp{background:rgba(255,255,255,0.9);color:#1a0800}
.anp-apply{padding:7px 10px;background:linear-gradient(135deg,var(--red),var(--red2));border:1px solid var(--gold2);border-radius:6px;color:var(--goldbright);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}
.anp-apply:hover{box-shadow:0 2px 8px rgba(122,10,10,0.4)}

/* Messages */
.chat-msgs{height:240px;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:rgba(200,146,10,0.18) transparent}
.chat-msgs.collapsed{display:none}

/* Scroll-to-bottom button */
.scroll-btn{position:fixed;bottom:58px;right:14px;width:32px;height:32px;border-radius:50%;background:var(--red2);border:1px solid var(--gold2);color:var(--goldbright);font-size:14px;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,0.35);transition:all .2s}
.scroll-btn.show{display:flex}
.scroll-btn:active{transform:scale(.9)}

/* Typing indicator */
.typing-indicator{display:none;align-items:center;gap:6px;padding:4px 8px;align-self:flex-start}
.typing-indicator.show{display:flex}
.typing-dots{display:flex;gap:3px}
.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--gold2);animation:tdot 1.2s infinite}
.typing-dots span:nth-child(2){animation-delay:.2s}
.typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
.typing-name{font-size:10px;color:var(--txt3);letter-spacing:.3px}

/* Date separator */
.date-sep{text-align:center;font-size:9.5px;color:var(--txt4);letter-spacing:.8px;padding:6px 0;display:flex;align-items:center;gap:8px}
.date-sep::before,.date-sep::after{content:'';flex:1;border-top:1px solid var(--border)}
.chat-msgs::-webkit-scrollbar{width:3px}
.chat-msgs::-webkit-scrollbar-thumb{background:rgba(200,146,10,0.2);border-radius:3px}
.sys-msg{text-align:center;font-size:10px;color:var(--txt4);letter-spacing:.4px;padding:2px 0}
.msg{max-width:84%;display:flex;flex-direction:column;gap:1px}
.msg.is-admin{align-self:flex-start}
.msg.is-user{align-self:flex-end}
.msg.is-other{align-self:flex-start}
.msg-meta{display:flex;align-items:center;gap:4px;padding:0 3px;flex-wrap:wrap}
.msg-name{font-size:9.5px;letter-spacing:.2px;font-weight:700}
.msg.is-admin .msg-name{color:var(--goldbright)}
.msg.is-user .msg-name{color:rgba(160,200,255,0.95)}
body.light .msg.is-user .msg-name{color:#1a50a0}
.msg.is-other .msg-name{color:var(--txt3)}
.adm-badge{font-size:7.5px;background:rgba(200,146,10,0.25);border:1px solid rgba(200,146,10,0.5);border-radius:3px;padding:1px 4px;color:var(--goldbright);letter-spacing:.4px}
body.light .adm-badge{color:#7a4a00;background:rgba(200,146,10,0.18)}
.pid-badge{font-size:7.5px;color:var(--txt4);letter-spacing:.2px}
.loc-badge{font-size:8px;color:rgba(120,210,255,0.85);background:rgba(100,200,255,0.1);border:1px solid rgba(100,200,255,0.22);border-radius:3px;padding:1px 4px}
body.light .loc-badge{color:#005588;background:rgba(0,100,180,0.08);border-color:rgba(0,100,180,0.2)}
.msg-bbl{padding:7px 11px;font-family:'Oswald',sans-serif;font-size:13px;line-height:1.55;word-break:break-word;color:var(--txt2)}
.msg.is-admin .msg-bbl{background:var(--msg-admin-bg);border:1px solid rgba(200,146,10,0.22);border-radius:3px 11px 11px 11px;color:#fff}
.msg.is-user .msg-bbl{background:var(--msg-user-bg);border:1px solid rgba(255,255,255,0.1);border-radius:11px 3px 11px 11px}
body.light .msg.is-user .msg-bbl{border-color:rgba(66,103,178,0.22);color:#0a1840}
.msg.is-other .msg-bbl{background:var(--msg-other-bg);border:1px solid rgba(255,255,255,0.08);border-radius:3px 11px 11px 11px}
body.light .msg.is-other .msg-bbl{border-color:rgba(0,0,0,0.1);color:#1a0800}
.msg-time{font-size:8.5px;color:var(--txt4);padding:0 3px}
.msg.is-user .msg-time{text-align:right}
.msg-banned .msg-bbl{opacity:.28;text-decoration:line-through;font-style:italic}

/* Action tools */
.at-tools{display:flex;gap:4px;margin-top:2px;padding:0 3px}
.at-btn{font-size:8.5px;padding:2px 6px;border-radius:4px;cursor:pointer;border:1px solid;letter-spacing:.2px;font-family:'Oswald',sans-serif;transition:all .18s}
.at-ban{background:rgba(231,76,60,0.1);border-color:rgba(231,76,60,0.42);color:#f07060}
body.light .at-ban{color:#cc2200;border-color:rgba(204,34,0,0.4)}
.at-ban:hover{background:rgba(231,76,60,0.22)}
.at-del{background:transparent;border-color:var(--at-del-b);color:var(--at-del-c)}
.at-del:hover{background:rgba(0,0,0,0.1)}
.at-reply{background:rgba(200,146,10,0.1);border-color:rgba(200,146,10,0.38);color:var(--gold2)}
body.light .at-reply{color:#7a4a00;border-color:rgba(122,74,0,0.42)}
.at-reply:hover{background:rgba(200,146,10,0.22)}

/* Reply quote */
.reply-quote{background:var(--reply-bg);border-left:2px solid rgba(200,146,10,0.65);border-radius:4px;padding:5px 9px;margin-bottom:5px;line-height:1.4}
.reply-quote-name{font-size:9.5px;color:var(--gold2);margin-bottom:2px;font-weight:700}
body.light .reply-quote-name{color:#8B5A00}
.reply-quote-text{font-size:10.5px;color:var(--txt3);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:220px}

/* Reply bar */
.reply-bar{padding:7px 12px;background:rgba(200,146,10,0.1);border-top:1px solid rgba(200,146,10,0.22);display:none;align-items:center;gap:8px}
body.light .reply-bar{background:rgba(200,146,10,0.08)}
.reply-bar.show{display:flex}
.reply-bar-left{flex:1;min-width:0}
.reply-bar-to{font-size:9.5px;color:var(--gold2);letter-spacing:.3px;margin-bottom:2px;font-weight:700}
body.light .reply-bar-to{color:#8B5A00}
.reply-bar-text{font-size:11.5px;color:var(--txt2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.reply-cancel{background:none;border:none;color:var(--txt3);font-size:18px;cursor:pointer;padding:2px 4px;flex-shrink:0;line-height:1}
.reply-cancel:hover{color:var(--txt)}

/* Banned */
.banned-notice{background:rgba(231,76,60,0.1);border:1px solid rgba(231,76,60,0.3);border-radius:8px;padding:12px;text-align:center;margin:8px;font-size:11.5px;color:#e74c3c;line-height:1.6}

/* Chat rules */
.rules-card{background:rgba(200,146,10,0.07);border:1px solid var(--border);border-radius:9px;padding:10px 12px;margin:3px 0}
body.light .rules-card{background:rgba(200,146,10,0.06)}
.rules-ttl{font-family:'Cinzel',serif;font-size:10px;color:var(--gold2);letter-spacing:.8px;margin-bottom:6px}
body.light .rules-ttl{color:#7a4a00}
.rules-ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px}
.rules-ul li{font-size:11px;color:var(--txt2);padding-left:12px;position:relative;line-height:1.5}
body.light .rules-ul li{color:#1a0800}
.rules-ul li::before{content:'•';position:absolute;left:0;color:var(--gold2)}
.rules-foot{font-size:9.5px;color:rgba(231,76,60,0.75);margin-top:6px}
body.light .rules-foot{color:#cc2200}

/* Name setup */
.name-setup{padding:12px 13px;border-top:1px solid var(--border);background:rgba(0,0,0,0.18)}
body.light .name-setup{background:rgba(0,0,0,0.04)}
.ns-title{font-size:12px;color:var(--txt3);text-align:center;margin-bottom:9px;font-weight:500}
body.light .ns-title{color:#5a3000}
.ns-inp{width:100%;background:rgba(255,255,255,0.07);border:1.5px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--txt);font-family:'Oswald',sans-serif;font-size:13.5px;outline:none;margin-bottom:7px;-webkit-appearance:none;appearance:none;transition:border-color .2s,background .2s}
.ns-inp:focus{border-color:var(--gold2);background:rgba(255,255,255,0.1)}
.ns-inp::placeholder{color:var(--txt4)}
select.ns-inp{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 5L10 1' stroke='%23C8920A' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;cursor:pointer}
select.ns-inp option{background:#0d0420;color:#fff}
body.light .ns-inp{background:rgba(255,255,255,0.92);border-color:rgba(120,70,0,0.3);color:#1a0800}
body.light .ns-inp:focus{border-color:#8B5A00;background:#fff}
body.light .ns-inp::placeholder{color:rgba(26,8,0,0.35)}
body.light select.ns-inp option{background:#fff;color:#1a0800}
.ns-btn{width:100%;padding:11px;background:linear-gradient(135deg,var(--red),var(--red2));border:1.5px solid var(--gold2);border-radius:9px;color:var(--goldbright);font-family:'Cinzel',serif;font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.7px;transition:all .2s}
.ns-btn:hover{box-shadow:0 3px 16px rgba(122,10,10,0.6);transform:translateY(-1px)}
.ns-btn:active{transform:scale(.98)}

/* Chat input */
.chat-input-wrap{padding:9px 12px;border-top:1px solid var(--border);background:rgba(0,0,0,0.2);display:flex;gap:7px;align-items:flex-end}
body.light .chat-input-wrap{background:rgba(0,0,0,0.04)}
.chat-inp{flex:1;background:rgba(255,255,255,0.07);border:1.5px solid var(--border);border-radius:18px;padding:8px 13px;color:var(--txt);font-family:'Oswald',sans-serif;font-size:13px;outline:none;resize:none;max-height:70px;line-height:1.4;-webkit-appearance:none;transition:border-color .2s,background .2s}
.chat-inp:focus{border-color:var(--gold2);background:rgba(255,255,255,0.1)}
.chat-inp::placeholder{color:var(--txt4)}
body.light .chat-inp{background:rgba(255,255,255,0.92);border-color:rgba(120,70,0,0.25);color:#1a0800}
body.light .chat-inp:focus{border-color:#8B5A00;background:#fff}
body.light .chat-inp::placeholder{color:rgba(26,8,0,0.35)}
.send-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--red),var(--red2));border:1.5px solid var(--gold2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;transition:all .2s;box-shadow:0 2px 8px rgba(122,10,10,0.4)}
.send-btn:active{transform:scale(.9)}
.char-ct{font-size:8.5px;color:var(--txt4);text-align:right;padding:2px 13px 5px}

/* Admin pin bar */
.pin-bar{padding:7px 12px;border-top:1px solid var(--border);background:rgba(200,146,10,0.06);display:flex;gap:6px;align-items:center}
.pin-inp{flex:1;background:rgba(255,255,255,0.07);border:1px solid var(--border);border-radius:7px;padding:6px 10px;color:var(--txt);font-family:'Oswald',sans-serif;font-size:11.5px;outline:none;-webkit-appearance:none}
.pin-inp::placeholder{color:var(--txt4)}
body.light .pin-inp{background:rgba(255,255,255,0.9);color:#1a0800}
body.light .pin-inp::placeholder{color:rgba(26,8,0,0.35)}
.pin-save{padding:6px 9px;background:rgba(200,146,10,0.18);border:1px solid var(--border2);border-radius:6px;color:var(--goldbright);font-size:10.5px;font-weight:700;cursor:pointer;white-space:nowrap}
body.light .pin-save{color:#7a4a00;border-color:rgba(120,74,0,0.5)}
.pin-clr{padding:6px 8px;background:rgba(231,76,60,0.1);border:1px solid rgba(231,76,60,0.38);border-radius:6px;color:#e74c3c;font-size:12px;cursor:pointer}

/* REFRESH BAR */
.rbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:700px;z-index:200;background:rgba(3,1,10,0.97);border-top:1px solid var(--border);height:calc(44px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;align-items:center;backdrop-filter:blur(8px)}
body.light .rbar{background:rgba(232,220,200,0.97);border-top-color:rgba(120,70,0,0.22)}
.rbar-inner{max-width:700px;margin:0 auto;width:100%;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.rbar-left{display:flex;align-items:center;gap:6px}
.rbar-txt{font-size:10px;color:var(--txt3)}
.rbar-cd{font-size:12px;color:var(--gold2);font-weight:700;min-width:34px}
body.light .rbar-cd{color:#7a4a00}
.rbar-btn{padding:6px 12px;background:rgba(200,146,10,0.14);border:1.5px solid var(--border2);border-radius:6px;font-size:10px;color:var(--gold2);cursor:pointer;letter-spacing:.3px;font-weight:700;transition:all .2s}
body.light .rbar-btn{color:#7a4a00;border-color:rgba(120,74,0,0.48)}
.rbar-btn:hover{background:rgba(200,146,10,0.25)}
.rbar-btn:active{transform:scale(.95)}

/* FOOTER */
.hm-wrap{padding:10px 13px;border-top:1px solid rgba(255,255,255,.05)}
.hm-title{font-size:8.5px;color:var(--txt4);letter-spacing:.7px;text-transform:uppercase;margin-bottom:7px}
.hm-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:2px}
.hm-cell{height:20px;border-radius:2px;cursor:pointer;transition:opacity .15s}
.hm-cell:hover{opacity:.7}
.hm-cell.hm-now{outline:1.5px solid var(--goldbright);outline-offset:1px;z-index:2}
.hm-axis{display:grid;grid-template-columns:repeat(8,1fr);font-size:8px;color:var(--txt4);margin-top:3px;text-align:center}
.hm-legend{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:9px;color:var(--txt4);flex-wrap:wrap}
.hm-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.week-chart-wrap{padding:10px 13px;border-bottom:1px solid rgba(255,255,255,.05)}
.week-chart-title{font-size:8.5px;color:var(--txt4);letter-spacing:.7px;text-transform:uppercase;margin-bottom:8px}
.week-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;height:64px;align-items:flex-end}
.week-bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.week-bar-inner{width:100%;border-radius:3px 3px 0 0;min-height:3px}
.week-legend{display:flex;gap:10px;margin-top:6px;font-size:9px;color:var(--txt4);align-items:center}
.week-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.token-gauge-wrap{padding:10px 13px;border-bottom:1px solid rgba(255,255,255,.05)}
.tg-row{display:flex;align-items:center;gap:12px}
.tg-ring{position:relative;width:72px;height:72px;flex-shrink:0}
.tg-ring svg{width:100%;height:100%}
.tg-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.tg-pct{font-size:15px;font-weight:700;font-family:"Cinzel",serif;line-height:1}
.tg-lbl{font-size:8px;color:var(--txt4);margin-top:1px}
.tg-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px;flex:1}
.tg-stat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:6px 8px}
.tg-stat-v{font-size:13px;font-weight:700;font-family:"Cinzel",serif;color:var(--gold2);display:block;line-height:1.2}
.tg-stat-l{font-size:7.5px;color:var(--txt4);margin-top:2px;display:block}
.room-quota-bars{padding:8px 13px 10px;border-top:1px solid rgba(255,255,255,.05)}
.rqb-title{font-size:8.5px;color:var(--txt4);letter-spacing:.7px;text-transform:uppercase;margin-bottom:8px}
.rqb-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.rqb-label{font-size:9.5px;color:var(--txt3);min-width:52px}
.rqb-track{flex:1;height:8px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden}
.rqb-fill{height:100%;border-radius:4px;transition:width .4s}
.rqb-pct{font-size:9.5px;color:var(--txt3);min-width:32px;text-align:right}
.city-dist-wrap{margin-top:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:10px 12px}
.city-dist-title{font-size:9px;color:var(--txt4);letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px}
.city-row-vis{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.city-rank-vis{font-size:10px;color:var(--txt4);min-width:16px}
.city-name-vis{font-size:11px;color:var(--txt2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.city-bar-track{width:80px;height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.city-bar-fill{height:100%;border-radius:3px;background:rgba(212,160,23,.6)}
.city-count-vis{font-size:10px;color:var(--txt4);min-width:22px;text-align:right}
.ds-sparkline-wrap{padding:10px 13px 0}
.ds-sparkline{display:flex;align-items:flex-end;gap:2px;height:36px}
.ds-spark-bar{flex:1;border-radius:1px 1px 0 0;min-height:2px}
.ds-spark-delta{font-size:10px;margin-top:3px}
.darshan-card-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 13px 0;padding:11px 14px;background:linear-gradient(135deg,rgba(122,10,10,.6),rgba(212,160,23,.15));border:1.5px solid rgba(212,160,23,.35);border-radius:11px;font-family:"Cinzel",serif;font-size:11px;font-weight:700;color:var(--goldbright);letter-spacing:.4px;cursor:pointer;transition:all .2s;box-sizing:border-box;width:calc(100% - 26px)}
.darshan-card-btn:hover{border-color:var(--goldbright)}
.dc-modal{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.85);display:flex;align-items:flex-end;justify-content:center}
.dc-modal-inner{background:#0d0221;border-radius:18px 18px 0 0;border:1px solid rgba(212,160,23,.25);width:100%;max-width:500px;max-height:92vh;overflow-y:auto;padding:18px 16px calc(env(safe-area-inset-bottom) + 16px)}
.dc-modal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.dc-modal-title{font-family:"Cinzel",serif;font-size:14px;color:var(--goldbright);font-weight:700}
.dc-modal-close{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:var(--txt2);padding:5px 10px;font-size:12px;cursor:pointer}
.dc-preview{width:100%;border-radius:12px;overflow:hidden;margin-bottom:12px;display:block}
.dc-field{margin-bottom:10px}
.dc-field label{display:block;font-size:9px;color:var(--txt4);letter-spacing:.6px;text-transform:uppercase;margin-bottom:4px}
.dc-field input,.dc-field select{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--txt);font-size:13px;padding:9px 12px;box-sizing:border-box;outline:none;font-family:inherit}
.dc-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dc-photo-drop{border:1.5px dashed rgba(212,160,23,.3);border-radius:8px;padding:14px;text-align:center;font-size:11px;color:var(--txt4);cursor:pointer;margin-bottom:10px;transition:border-color .2s}
.dc-action-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.dc-btn{padding:11px;border-radius:10px;font-family:"Cinzel",serif;font-size:11px;font-weight:700;cursor:pointer;text-align:center;letter-spacing:.4px;border:none}
.dc-btn-dl{background:linear-gradient(135deg,#7a1010,#D4A017);color:#fff}
.dc-btn-share{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);color:var(--goldbright)}

/* ══ SSD Token Visualisation CSS ══ */
.ssd-card{background:linear-gradient(160deg,#0d1a2e,#0d0221);border:1px solid rgba(96,165,250,.2);border-radius:13px;overflow:hidden;margin-bottom:10px}
.ssd-tok-hdr{display:flex;align-items:center;justify-content:space-between;padding:11px 14px 6px}
.ssd-tok-name{font-size:11px;font-weight:600;color:rgba(240,232,255,.8);letter-spacing:.3px}
.ssd-tok-active{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);border-radius:999px;padding:2px 10px;font-size:9px;font-weight:700;color:#4ade80;letter-spacing:.4px}
.ssd-tok-done{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);border-radius:999px;padding:2px 10px;font-size:9px;font-weight:700;color:#f87171;letter-spacing:.4px}
.ssd-bal-display{padding:4px 14px 8px;text-align:center}
.ssd-bal-label{font-size:8px;color:rgba(96,165,250,.5);letter-spacing:1px;text-transform:uppercase;margin-bottom:5px}
.ssd-bal-number{font-family:'Cinzel',serif;font-size:36px;font-weight:700;color:#4ade80;line-height:1;font-variant-numeric:tabular-nums;transition:color .5s}
.ssd-bal-sub{font-size:9px;color:rgba(240,232,255,.3);margin-top:3px}
.ssd-arc-wrap{padding:0 14px 8px}
.ssd-arc-track{width:100%;height:10px;background:rgba(255,255,255,.06);border-radius:5px;overflow:hidden}
.ssd-arc-fill{height:100%;border-radius:5px;transition:width .4s;position:relative}
.ssd-arc-fill::after{content:'';position:absolute;right:0;top:0;height:100%;width:20px;background:rgba(255,255,255,.25);filter:blur(3px);animation:ssd-shimmer 1s ease-in-out infinite}
@keyframes ssd-shimmer{0%,100%{opacity:0}50%{opacity:1}}
.ssd-arc-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:8.5px;color:rgba(240,232,255,.3)}
.ssd-stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:0 14px 10px}
.ssd-s3{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:9px;padding:7px 8px;text-align:center}
.ssd-s3-v{font-size:13px;font-weight:700;color:#FFD700;display:block;line-height:1.2;font-variant-numeric:tabular-nums;transition:color .5s}
.ssd-s3-l{font-size:8px;color:rgba(240,232,255,.4);margin-top:3px;display:block;text-transform:uppercase;letter-spacing:.3px}
.ssd-s3.booked .ssd-s3-v{color:#fb923c}
.ssd-s3.avail .ssd-s3-v{color:#4ade80}
.ssd-tick-row{padding:3px 14px 10px;display:flex;align-items:center;gap:7px}
.ssd-tick-bar{flex:1;height:2px;background:rgba(255,255,255,.06);border-radius:1px;overflow:hidden}
.ssd-tick-fill{height:100%;width:0%;background:#60a5fa;animation:ssd-tick 2s linear infinite}
@keyframes ssd-tick{0%{width:0%}100%{width:100%}}
.ssd-divider{height:1px;background:rgba(255,255,255,.05);margin:0 14px}
.ssd-done-side{display:grid;grid-template-columns:1fr 1fr}
.ssd-done-half{padding:12px 14px}
.ssd-done-half:first-child{border-right:1px solid rgba(255,255,255,.05)}
.ssd-done-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}
.ssd-done-banner{background:rgba(239,68,68,.07);border-top:1px solid rgba(239,68,68,.15);padding:10px 14px;text-align:center}
.ssd-done-title{font-size:13px;font-weight:700;color:#f87171;font-family:'Cinzel',serif}
.ssd-done-sub{font-size:10px;color:rgba(248,113,113,.6);margin-top:3px}
.ssd-cd-wrap{padding:12px 14px;text-align:center}
.ssd-cd-lbl{font-size:8px;color:rgba(212,160,23,.5);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}
.ssd-cd-time{font-family:'Cinzel',serif;font-size:34px;font-weight:700;color:#FFD700;letter-spacing:3px;font-variant-numeric:tabular-nums}
.ssd-cd-sub{font-size:10px;color:rgba(96,165,250,.6);margin-top:5px}

.hist-wrap{padding:12px 14px;margin-bottom:10px}
.hist-title{font-size:8.5px;color:var(--txt4);letter-spacing:.7px;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.hist-tabs{display:flex;gap:4px;margin-bottom:10px}
.hist-tab{font-size:9px;padding:3px 9px;border-radius:5px;cursor:pointer;border:1px solid rgba(255,255,255,.1);color:var(--txt3);background:transparent;transition:all .2s}
.hist-tab.on{background:rgba(212,160,23,.15);border-color:rgba(212,160,23,.4);color:var(--goldbright)}
.hist-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;height:80px;align-items:flex-end}
.hist-bar-col{display:flex;flex-direction:column;align-items:center;gap:2px}
.hist-bar-outer{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
.hist-bar-inner{width:100%;border-radius:3px 3px 0 0;min-height:3px;transition:height .4s}
.hist-day-lbl{font-size:7.5px;color:var(--txt4);text-align:center;white-space:nowrap}
.hist-val-lbl{font-size:7.5px;color:var(--txt3);text-align:center}
.hist-legend{display:flex;gap:10px;margin-top:6px;font-size:9px;color:var(--txt4);flex-wrap:wrap}
.hist-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.hist-no-data{text-align:center;font-size:11px;color:var(--txt4);padding:20px 0}

/* ── Footer ── */
.site-footer{
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(6,1,14,.9) 100%);
  border-top:1px solid var(--border);
  padding:0 0 calc(68px + env(safe-area-inset-bottom));
  text-align:center;
}
body.light .site-footer{background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.02))}

/* ── Footer inner box ── */
.ft-inner{
  max-width:700px;margin:10px auto 0;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(200,146,10,.18);
  border-radius:14px;
  overflow:hidden;
}
body.light .ft-inner{background:rgba(255,255,255,.55);border-color:rgba(120,70,0,.2)}
/* ── Brand + CTA ── */
.ft-action{padding:14px 14px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.ft-brand-row{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:10px}
.ft-om{font-size:16px}
.ft-brand{font-family:'Cinzel',serif;font-size:.88rem;color:var(--goldbright);letter-spacing:.8px;margin:0}
body.light .ft-brand{color:#6b3a00}
.ft-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-width:420px;margin:0 auto}
@media(max-width:360px){.ft-cta-row{grid-template-columns:1fr}}
.ft-wa-btn,.ft-share-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:10px 14px;
  border-radius:11px;color:#fff;
  font-family:'Cinzel',serif;font-size:10px;font-weight:700;letter-spacing:.4px;
  text-decoration:none;border:none;cursor:pointer;
  transition:filter .2s;box-sizing:border-box;
}
.ft-wa-btn{background:linear-gradient(135deg,#075e54,#25D366);animation:waglow 2.5s infinite alternate}
.ft-share-btn{background:linear-gradient(135deg,#1a5a30,#22c55e)}
@keyframes waglow{from{box-shadow:0 0 6px rgba(37,211,102,.25)}to{box-shadow:0 0 16px rgba(37,211,102,.55)}}
.ft-wa-btn:hover,.ft-share-btn:hover{filter:brightness(1.08)}

/* ── Social links — compact pill row ── */
.ft-social{
  display:flex;justify-content:center;flex-wrap:wrap;gap:5px;
  padding:10px 12px 8px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.ft-soc-btn{
  display:inline-flex;align-items:center;gap:4px;
  padding:5px 10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-radius:7px;
  font-size:10px;color:var(--txt3);text-decoration:none;
  transition:all .18s;white-space:nowrap;
}
.ft-soc-btn:hover{background:rgba(200,146,10,.1);border-color:rgba(200,146,10,.28);color:var(--gold2)}
.ft-soc-btn.fb:hover{background:rgba(100,149,255,.08);border-color:rgba(100,149,255,.25);color:#80aaff}
body.light .ft-soc-btn{background:rgba(255,255,255,.65);border-color:rgba(0,0,0,.1);color:rgba(26,8,0,.55)}

/* ── Legal ── */
.ft-legal{display:flex;justify-content:center;gap:16px;padding:7px 14px 5px;flex-wrap:wrap}
.ft-legal a{font-size:10px;color:var(--txt4);text-decoration:none;display:flex;align-items:center;gap:3px;transition:color .18s}
.ft-legal a:hover{color:var(--gold2)}
body.light .ft-legal a{color:rgba(26,8,0,.38)}

/* ── Visitor counters — compact 3-col ── */
.ft-visitors{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:6px;padding:8px 12px 6px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.ft-vis-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;
  background:rgba(200,146,10,.06);border:1px solid rgba(200,146,10,.18);
  border-radius:9px;padding:7px 6px;
}
body.light .ft-vis-card{background:rgba(200,146,10,.05);border-color:rgba(200,146,10,.22)}
.ft-vis-card.online{border-color:rgba(39,174,96,.25);background:rgba(39,174,96,.05)}
body.light .ft-vis-card.online{border-color:rgba(39,174,96,.3);background:rgba(39,174,96,.06)}
.ft-vis-icon{font-size:11px;line-height:1;margin-bottom:1px}
.ft-vis-num{font-family:'Cinzel',serif;font-size:.82rem;color:var(--goldbright);font-weight:700;line-height:1.2}
body.light .ft-vis-num{color:#6b3a00}
.ft-vis-card.online .ft-vis-num{color:#4ade80}
body.light .ft-vis-card.online .ft-vis-num{color:#15803d}
.ft-vis-lbl{font-size:7.5px;color:var(--txt4);letter-spacing:.4px;text-transform:uppercase;margin-top:1px}
.ft-online-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#27ae60;margin-right:2px;animation:pulse 2s ease-in-out infinite;vertical-align:middle}

/* ── Disclaimer ── */
.ft-disc{font-size:9px;color:var(--txt4);line-height:1.65;padding:8px 14px 6px;max-width:520px;margin:0 auto}

/* Pull to Refresh indicator */
.ptr-indicator{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:999;font-size:22px;opacity:0;transition:opacity .2s;pointer-events:none;filter:drop-shadow(0 2px 8px rgba(212,160,23,0.5))}
.ptr-indicator.ptr-ready{animation:none}
.ptr-indicator.ptr-spin{animation:ptrSpin .6s linear}
@keyframes ptrSpin{from{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(360deg)}}

/* Toast notification */
.toast-msg{position:fixed;bottom:70px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(15,5,35,0.95);border:1px solid rgba(212,160,23,0.4);color:var(--goldbright);font-size:12.5px;font-weight:600;padding:10px 20px;border-radius:22px;z-index:999;opacity:0;transition:all .3s;pointer-events:none;white-space:nowrap;backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(0,0,0,0.4)}
.toast-msg.show{opacity:1;transform:translateX(-50%) translateY(0)}
body.light .toast-msg{background:rgba(255,248,235,0.97);color:#6b3a00;border-color:rgba(107,58,0,0.3)}

/* Swipe hint arrows on tab panels */
.swipe-hint{text-align:center;font-size:9px;color:var(--txt4);letter-spacing:.5px;padding:6px 0 2px;opacity:.6}

/* Share row — 4 buttons now */
.share-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;margin-top:10px}
@media(max-width:360px){.share-row{grid-template-columns:1fr 1fr}}
/* old footer CSS removed — see ft-action section above */

@media(min-width:480px){
  .hdr-logo{font-size:clamp(1.1rem, 3.2vw, 1.38rem)}
  .hdr-logo-om{font-size:1.15em}
  .content-text{font-size:15px}
  .stab{font-size:10.5px;padding:12px 6px;letter-spacing:.25px}
  .sbtn{font-size:12.5px}
}
/* Extra-narrow Android phones (Galaxy A10/A12, Redmi Go, some 320-360px devices).
   Tighter letter-spacing + tiny font-size so logo always fits without ellipsis. */
@media(max-width:360px){
  .hdr-row1{grid-template-columns:46px 1fr 46px;gap:4px}
  .hdr-clock,.theme-btn{width:46px}
  .theme-btn{height:40px;font-size:15px}
  .hdr-logo{font-size:clamp(0.82rem, 3.7vw, 1rem);letter-spacing:.3px;gap:4px}
  .hdr-sub{font-size:.45rem;letter-spacing:1.8px}
  /* Mobile single-row scroll handled by main @media (max-width:600px) above —
     no grid override needed here. Just keep tile sizing tight. */
  .stab-icon{font-size:13px;margin-bottom:1px}
  .stab-ts{font-size:7px}
}


  /* Two smart bar rows on very wide — keep 3 per row */
  .smart-bar-3{grid-template-columns:repeat(3,1fr);gap:10px}

  /* Slightly larger fonts for readability */
  .smart-card-val{font-size:16px}
  .tsc-val{font-size:17px}
  .tok-countdown-time{font-size:1.9rem;letter-spacing:3px}

  /* Content text more comfortable */
  .content-text{font-size:16px;line-height:2.15;padding:20px}

  /* Bigger share buttons */
  .sbtn{padding:12px 10px;font-size:13px;border-radius:10px}

  /* More room in schedule */
  .sch-item{padding:11px 18px}
  .sch-time{min-width:110px;font-size:11.5px}
  .sch-desc{font-size:12.5px}
}

/* ===== WIDGETS WRAP ===== */
.widgets-wrap{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}

/* ===== TAB STATUS CARDS (inside SSD & Rooms tabs) ===== */
.tab-status-card{display:flex;align-items:center;gap:13px;background:var(--card);border:1.5px solid var(--border);border-radius:12px;padding:13px 14px;margin-bottom:8px}
.tsc-icon{font-size:26px;flex-shrink:0}
.tsc-body{flex:1;min-width:0}
.tsc-title{font-size:10px;color:var(--txt4);letter-spacing:.6px;text-transform:uppercase;margin-bottom:4px}
.tsc-val{font-size:15px;font-weight:700;line-height:1.2;margin-bottom:3px}
.tsc-sub{font-size:11px;color:var(--txt3);line-height:1.5}

/* status colour variants */
.tab-status-card.green{border-color:rgba(39,174,96,0.45);background:rgba(39,174,96,0.07)}
.tab-status-card.green .tsc-val{color:#27ae60}
body.light .tab-status-card.green .tsc-val{color:#1a7a3a}
.tab-status-card.amber{border-color:rgba(230,126,34,0.45);background:rgba(230,126,34,0.07)}
.tab-status-card.amber .tsc-val{color:#e67e22}
body.light .tab-status-card.amber .tsc-val{color:#a04800}
.tab-status-card.red{border-color:rgba(231,76,60,0.45);background:rgba(231,76,60,0.07)}
.tab-status-card.red .tsc-val{color:#e74c3c}
body.light .tab-status-card.red .tsc-val{color:#cc2200}
.tab-status-card.blue{border-color:rgba(44,165,224,0.45);background:rgba(44,165,224,0.07)}
.tab-status-card.blue .tsc-val{color:var(--tg)}
body.light .tab-status-card.blue .tsc-val{color:#0070aa}

/* Rooms progress bar */
.rooms-prog-wrap{background:var(--card);border:1.5px solid var(--border);border-radius:11px;padding:12px 14px;margin-bottom:8px}
.rooms-prog-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.rooms-prog-lbl{font-size:11px;color:var(--txt3);font-weight:600}
body.light .rooms-prog-lbl{color:#5a3000}
.rooms-prog-pct{font-size:13px;font-weight:700;color:var(--gold2)}
body.light .rooms-prog-pct{color:#7a4a00}
.rooms-prog-track{height:10px;background:rgba(255,255,255,0.08);border-radius:6px;overflow:hidden;margin-bottom:7px}
body.light .rooms-prog-track{background:rgba(0,0,0,0.08)}
.rooms-prog-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,#27ae60,#2ecc71);transition:width .6s ease}
.rooms-prog-detail{font-size:10.5px;color:var(--txt3);line-height:1.6}
body.light .rooms-prog-detail{color:#5a3000}

/* Rooms info strip */
.rooms-info-strip{display:flex;gap:6px;flex-direction:column;background:rgba(44,165,224,0.06);border:1px solid rgba(44,165,224,0.2);border-radius:9px;padding:10px 13px}
.rooms-info-strip span{font-size:11px;color:var(--txt2);line-height:1.5}
body.light .rooms-info-strip span{color:#1a0800}
.rooms-info-strip strong{color:var(--goldbright)}
body.light .rooms-info-strip strong{color:#6b3a00}

/* Rooms 3-column stats row */
.rooms-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}
@media(max-width:560px){.rooms-stats-row{grid-template-columns:repeat(2,1fr)}}
.rstat{background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px}
.rstat-mid{border-color:rgba(39,174,96,0.35);background:rgba(39,174,96,0.06)}
.rstat-cro{border-color:rgba(212,160,23,0.45);background:rgba(212,160,23,0.08)}
.rstat-icon{font-size:16px;line-height:1}
.rstat-num{font-family:'Cinzel',serif;font-size:14px;font-weight:700;color:var(--goldbright);line-height:1.2}
body.light .rstat-num{color:#6b3a00}
.rstat-lbl{font-size:9px;color:var(--txt4);letter-spacing:.4px;text-transform:uppercase;line-height:1.3}

/* Locker message */
.rooms-locker-msg{background:linear-gradient(135deg,rgba(122,10,10,0.18),rgba(60,4,4,0.22));border:1.5px solid rgba(231,76,60,0.35);border-radius:12px;padding:14px;margin-bottom:8px}
body.light .rooms-locker-msg{background:rgba(231,76,60,0.06);border-color:rgba(200,50,30,0.3)}
.locker-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.locker-icon{font-size:20px;flex-shrink:0}
.locker-title{font-family:'Cinzel',serif;font-size:11.5px;color:#e74c3c;font-weight:700;letter-spacing:.3px;line-height:1.3}
body.light .locker-title{color:#cc2200}
.locker-body{font-size:11.5px;color:var(--txt2);line-height:1.7;margin-bottom:12px;padding:10px 12px;background:rgba(255,255,255,0.04);border-radius:8px;border-left:3px solid rgba(231,76,60,0.4)}
body.light .locker-body{background:rgba(0,0,0,0.04);color:#1a0800}
.locker-places{background:rgba(200,146,10,0.07);border:1px solid rgba(200,146,10,0.2);border-radius:9px;padding:11px 13px}
.locker-places-title{font-size:11px;font-weight:700;color:var(--gold2);margin-bottom:8px;letter-spacing:.3px}
body.light .locker-places-title{color:#7a4a00}
.locker-place{font-size:11.5px;color:var(--txt2);padding:5px 0;border-bottom:1px solid rgba(200,146,10,0.1);line-height:1.5}
body.light .locker-place{color:#1a0800}
.locker-place:last-of-type{border-bottom:none}
.locker-place strong{color:var(--goldbright)}
body.light .locker-place strong{color:#6b3a00}
.locker-note{font-size:10.5px;color:var(--txt3);margin-top:9px;padding-top:8px;border-top:1px dashed rgba(200,146,10,0.2);line-height:1.6;font-style:italic}
body.light .locker-note{color:#5a3000}

/* Smart bar — 3 cards in 1 row */
.smart-card{background:var(--card);border:1.5px solid var(--border);border-radius:11px;padding:11px 10px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;text-align:center;min-height:64px;box-sizing:border-box;overflow:hidden}
.smart-card.green{border-color:rgba(39,174,96,0.4);background:rgba(39,174,96,0.07)}
.smart-card.green .smart-card-val{color:#27ae60}
body.light .smart-card.green .smart-card-val{color:#1a7a3a}
.smart-card.amber{border-color:rgba(230,126,34,0.4);background:rgba(230,126,34,0.07)}
.smart-card.amber .smart-card-val{color:#e67e22}
body.light .smart-card.amber .smart-card-val{color:#a04800}
.smart-card.red{border-color:rgba(231,76,60,0.4);background:rgba(231,76,60,0.07)}
.smart-card.red .smart-card-val{color:#e74c3c}
body.light .smart-card.red .smart-card-val{color:#cc2200}
.smart-card.blue{border-color:rgba(44,165,224,0.4);background:rgba(44,165,224,0.07)}
.smart-card.blue .smart-card-val{color:var(--tg)}
body.light .smart-card.blue .smart-card-val{color:#0070aa}
.smart-card.gold{border-color:rgba(200,146,10,0.4);background:rgba(200,146,10,0.07)}
.smart-card.gold .smart-card-val{color:var(--gold2)}
body.light .smart-card.gold .smart-card-val{color:#7a4a00}
.smart-bar{display:grid;gap:7px;align-items:stretch}
.smart-bar-3{grid-template-columns:repeat(3,1fr)}
/* Keep 3 columns on phones. Force equal height + center content so uneven
   text widths don't skew the row. */
@media(max-width:420px){
  .smart-bar-3{gap:5px}
  .smart-card{padding:8px 4px;min-height:60px}
  .smart-card-lbl{font-size:8.5px;letter-spacing:.3px}
  .smart-card-val{font-size:11.5px}
  .smart-card-sub{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
}
@media(max-width:340px){
  .smart-card-lbl{font-size:7.5px}
  .smart-card-val{font-size:10.5px}
  .smart-card-sub{font-size:8px}
}

/* Updated smart card labels with icons */
.smart-card-lbl{font-size:9px;color:var(--txt4);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.light .smart-card-lbl{color:rgba(26,8,0,0.45)}
.smart-card-val{font-size:13px;font-weight:700;color:var(--txt);line-height:1.2}
.smart-card-sub{font-size:9px;color:var(--txt3);line-height:1.4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.light .smart-card-sub{color:rgba(26,8,0,0.5)}

/* Token countdown — updated for inside tab */
.tok-countdown{background:linear-gradient(135deg,rgba(122,10,10,0.25),rgba(60,4,4,0.35));border:1.5px solid rgba(200,146,10,0.3);border-radius:11px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
body.light .tok-countdown{background:linear-gradient(135deg,rgba(122,10,10,0.06),rgba(60,4,4,0.06));border-color:rgba(139,90,0,0.3)}
.tok-countdown-left{flex:1}
.tok-countdown-lbl{font-size:10px;color:rgba(255,215,0,0.65);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
body.light .tok-countdown-lbl{color:#8B5A00}
.tok-countdown-time{font-family:'Cinzel',serif;font-size:1.5rem;color:var(--goldbright);letter-spacing:2px;font-weight:700}
body.light .tok-countdown-time{color:#6b3a00}
.tok-countdown-sub{font-size:10px;color:var(--txt3);margin-top:3px;line-height:1.5}
.tok-countdown-icon{font-size:26px;flex-shrink:0}

/* Leave city calculator */
.tok-countdown{background:linear-gradient(135deg,rgba(122,10,10,0.3),rgba(60,4,4,0.4));border:1.5px solid rgba(200,146,10,0.3);border-radius:11px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.tok-countdown-left{flex:1}
.tok-countdown-lbl{font-size:10px;color:rgba(255,215,0,0.6);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.tok-countdown-time{font-family:'Cinzel',serif;font-size:1.4rem;color:var(--goldbright);letter-spacing:1px;font-weight:700}
body.light .tok-countdown-time{color:#6b3a00}
.tok-countdown-sub{font-size:10px;color:var(--txt3);margin-top:3px}
.tok-countdown-icon{font-size:28px;flex-shrink:0}

/* Group share button */


/* Day schedule */
.schedule-card{background:var(--card);border:1.5px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:6px}
.schedule-hdr{background:linear-gradient(135deg,rgba(10,58,107,0.6),rgba(44,165,224,0.2));padding:10px 14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.schedule-hdr-title{font-family:'Cinzel',serif;font-size:11px;color:var(--tg);letter-spacing:.4px;display:flex;align-items:center;gap:7px}
body.light .schedule-hdr-title{color:#0070aa}
.schedule-body{display:none;padding:0}
.schedule-body.open{display:block}
.sch-item{display:flex;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border)}
.sch-item:last-child{border-bottom:none}
.sch-time{font-size:10.5px;color:var(--gold2);font-weight:700;min-width:90px;flex-shrink:0;padding-top:1px;font-family:monospace}
body.light .sch-time{color:#7a4a00}
.sch-desc{font-size:11px;color:var(--txt2);line-height:1.5}
body.light .sch-desc{color:#1a0800}
.sch-note{font-size:10px;color:var(--txt3);margin-top:2px}

/* Quick chat prompts */
.chat-prompts{padding:8px 12px;display:none;flex-wrap:wrap;gap:6px;border-top:1px solid var(--border);background:rgba(200,146,10,0.04)}
.chat-prompts.show{display:flex}
.prompt-btn{padding:6px 11px;background:rgba(200,146,10,0.08);border:1px solid rgba(200,146,10,0.22);border-radius:20px;font-size:11px;color:var(--txt2);cursor:pointer;transition:all .18s;white-space:nowrap}
.prompt-btn:hover{background:rgba(200,146,10,0.18);border-color:var(--gold2);color:var(--goldbright)}
body.light .prompt-btn{color:#1a0800}
body.light .prompt-btn:hover{color:#7a4a00}

/* ===== WELCOME MODAL ===== */
.welcome-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.82);z-index:1000;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px);animation:wfadein .35s ease;padding-bottom:env(safe-area-inset-bottom,0px)}
@keyframes wfadein{from{opacity:0}to{opacity:1}}
.welcome-sheet{width:100%;max-width:520px;background:linear-gradient(170deg,#1a0428,#0a011a);border:1.5px solid rgba(200,146,10,0.35);border-radius:22px 22px 0 0;padding:0 0 max(28px,env(safe-area-inset-bottom,28px));max-height:92dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:wslide .4s cubic-bezier(.32,.72,0,1)}
@keyframes wslide{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(min-width:640px){.welcome-overlay{align-items:center}.welcome-sheet{border-radius:20px;max-height:88dvh}}
body.light .welcome-sheet{background:linear-gradient(170deg,#fff8ee,#fff3e0)}
.welcome-handle{width:40px;height:4px;background:rgba(200,146,10,0.3);border-radius:4px;margin:12px auto 0}
.welcome-hdr{text-align:center;padding:18px 20px 12px}
.welcome-om{font-size:clamp(2.2rem,6vw,2.8rem);line-height:1;margin-bottom:8px}
.welcome-title{font-family:'Cinzel',serif;font-size:clamp(1rem,4.5vw,1.15rem);color:var(--goldbright);letter-spacing:.8px;margin-bottom:4px;line-height:1.3}
body.light .welcome-title{color:#6b3a00}
.welcome-sub{font-size:clamp(11px,3vw,12px);color:var(--txt3);line-height:1.6}
body.light .welcome-sub{color:#5a3000}
.welcome-divider{border:none;border-top:1px solid var(--border);margin:0 20px 16px}
.welcome-cards{display:flex;flex-direction:column;gap:10px;padding:0 16px}
.wcard{display:flex;align-items:flex-start;gap:12px;background:rgba(200,146,10,0.06);border:1px solid rgba(200,146,10,0.18);border-radius:12px;padding:13px 14px;min-height:44px}
body.light .wcard{background:rgba(200,146,10,0.07);border-color:rgba(120,70,0,0.2)}
.wcard-icon{font-size:22px;flex-shrink:0;margin-top:1px}
.wcard-text{flex:1;min-width:0}
.wcard-title{font-family:'Cinzel',serif;font-size:11.5px;color:var(--gold2);margin-bottom:3px;font-weight:700}
body.light .wcard-title{color:#7a4a00}
.wcard-desc{font-size:11.5px;color:var(--txt2);line-height:1.6;word-break:break-word}
body.light .wcard-desc{color:#1a0800}
.wcard-desc span{color:var(--goldbright);font-weight:600}
body.light .wcard-desc span{color:#8B5A00}
.welcome-lang{display:flex;gap:8px;justify-content:center;margin:14px 16px 0;flex-wrap:wrap}
.wlang-btn{padding:9px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:1.5px solid var(--border);background:var(--card);color:var(--txt3);transition:all .2s;min-height:44px;display:inline-flex;align-items:center}
.wlang-btn.picked{border-color:var(--gold2);background:rgba(200,146,10,0.12);color:var(--gold2)}
.welcome-cta{margin:18px 16px 0}
.wcta-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--red),var(--red2));border:2px solid var(--gold2);border-radius:12px;color:var(--goldbright);font-family:'Cinzel',serif;font-size:clamp(12px,3.5vw,13px);font-weight:700;cursor:pointer;letter-spacing:.6px;transition:all .2s;box-shadow:0 4px 18px rgba(122,10,10,0.4);min-height:48px}
.wcta-btn:hover{box-shadow:0 6px 24px rgba(122,10,10,0.6);transform:translateY(-1px)}
.wcta-btn:active{transform:scale(.98)}
.welcome-skip{text-align:center;margin-top:10px;font-size:11px;color:var(--txt4);cursor:pointer;padding:10px 6px;min-height:44px;display:flex;align-items:center;justify-content:center}
.welcome-skip:hover{color:var(--txt3)}

/* ===== IN-PAGE SPOTLIGHT TOUR ===== */
.spt-scrim{position:fixed;inset:0;z-index:1200;pointer-events:none}
.spt-hole{position:fixed;border-radius:8px;z-index:1201;pointer-events:none;transition:all .4s cubic-bezier(.4,0,.2,1)}
.spt-hole.on{box-shadow:0 0 0 9999px rgba(0,0,0,0.72);outline:4px solid rgba(242,207,116,0.8);outline-offset:2px;animation:sptPulse 2s ease-in-out infinite}
@keyframes sptPulse{0%,100%{outline-color:rgba(242,207,116,0.7);outline-width:4px}50%{outline-color:rgba(242,207,116,1);outline-width:7px}}
.spt-tip{position:fixed;z-index:1202;background:linear-gradient(160deg,#1e0530,#100120);border:1.5px solid rgba(200,146,10,0.5);border-radius:12px;padding:12px 14px;max-width:260px;min-width:190px;box-shadow:0 8px 24px rgba(0,0,0,0.5)}
body.light .spt-tip{background:linear-gradient(160deg,#fff8ee,#ffefd0);border-color:rgba(120,70,0,0.35)}
.spt-tip-num{font-size:9px;color:rgba(200,146,10,0.55);letter-spacing:.7px;text-transform:uppercase;font-weight:700;margin-bottom:4px}
.spt-tip-title{font-family:'Cinzel',serif;font-size:12.5px;color:#f2cf74;margin-bottom:4px;line-height:1.3}
body.light .spt-tip-title{color:#6b3a00}
.spt-tip-body{font-size:11px;color:rgba(255,255,255,0.65);line-height:1.6;margin-bottom:10px}
body.light .spt-tip-body{color:#3a1800}
.spt-tip-body b{color:#f2cf74}
body.light .spt-tip-body b{color:#8B5A00}
.spt-tip-nav{display:flex;align-items:center;justify-content:space-between;gap:6px}
.spt-tip-dots{display:flex;gap:3px}
.spt-tip-dot{width:5px;height:5px;border-radius:50%;background:rgba(200,146,10,0.2);cursor:pointer;transition:all .2s}
.spt-tip-dot.on{width:13px;border-radius:2px;background:#f2cf74}
.spt-tip-btns{display:flex;gap:5px}
.spt-btn-back{padding:5px 9px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:1px solid rgba(200,146,10,0.25);background:none;color:rgba(242,207,116,0.5);min-height:30px;transition:all .15s}
.spt-btn-back:disabled{opacity:.2;cursor:not-allowed}
.spt-btn-next{padding:5px 11px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#7a0e0e,#9b1515);border:1px solid rgba(200,146,10,0.45);color:#f2cf74;min-height:30px;white-space:nowrap;transition:all .15s}
.spt-btn-next.fin{background:linear-gradient(135deg,#c8920a,#a47d2a);border-color:#f2cf74;color:#1a0428}
.spt-skip-btn{position:fixed;bottom:max(70px,calc(60px + env(safe-area-inset-bottom)));right:14px;z-index:1203;font-size:11px;color:rgba(255,255,255,0.4);cursor:pointer;padding:6px 10px;border-radius:999px;border:0.5px solid rgba(255,255,255,0.15);background:rgba(0,0,0,0.55)}
@media(prefers-reduced-motion:reduce){.spt-hole.on{animation:none}}

/* ===== Wait-Time ETA chip (sits inside sc-wait card) ===== */
.eta-chip{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;line-height:1.3;background:rgba(39,174,96,0.14);color:#1a7a3a;border:1px solid rgba(39,174,96,0.35);white-space:nowrap}
body:not(.light) .eta-chip{background:rgba(39,174,96,0.18);color:#7de0a6;border-color:rgba(39,174,96,0.4)}
.eta-chip[data-state="soft"]{background:rgba(44,165,224,0.12);color:#0070aa;border-color:rgba(44,165,224,0.35)}
body:not(.light) .eta-chip[data-state="soft"]{color:#7fc8ec}
.eta-chip .eta-dot{width:6px;height:6px;border-radius:50%;background:#27ae60;animation:pulseEta 1.6s infinite}
@keyframes pulseEta{0%,100%{opacity:.5}50%{opacity:1}}

/* ===== 6-Hour Forecast strip (compact by default, expands on tap) ===== */
.fc-wrap{margin:10px 0 0;background:var(--card);border:1.5px solid var(--border);border-radius:11px;padding:10px 12px;box-sizing:border-box;overflow:hidden;transition:all .25s}
.fc-wrap[hidden]{display:none}
.fc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;user-select:none}
.fc-title{font-size:11.5px;font-weight:700;letter-spacing:.3px;color:var(--txt2);display:flex;align-items:center;gap:6px}
.fc-title .fc-icon{font-size:14px}
.fc-meta{font-size:10px;color:var(--txt4);font-weight:500}
.fc-chev{color:var(--txt3);font-size:11px;transition:transform .2s}
.fc-wrap.open .fc-chev{transform:rotate(180deg)}
.fc-bars{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px;align-items:end;height:54px}
.fc-bar{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;border-radius:5px 5px 3px 3px;background:linear-gradient(180deg,#2ca5e0,#1688c3);min-height:6px;transition:opacity .2s}
.fc-bar.bar-green{background:linear-gradient(180deg,#27ae60,#1d8a4a)}
.fc-bar.bar-amber{background:linear-gradient(180deg,#f39c12,#c87600)}
.fc-bar.bar-red  {background:linear-gradient(180deg,#e74c3c,#b03424)}
.fc-bar.bar-muted{background:repeating-linear-gradient(-45deg,#555 0 4px,#444 4px 8px);opacity:.45}
.fc-bar .fc-val{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:9.5px;color:var(--txt3);font-weight:600;white-space:nowrap;opacity:0;transition:opacity .2s}
.fc-wrap.open .fc-bar .fc-val{opacity:1}
.fc-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:4px}
.fc-lbl{font-size:10px;color:var(--txt4);text-align:center;font-weight:600}
.fc-body-extra{display:none;margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);font-size:11px;color:var(--txt3);line-height:1.5}
.fc-wrap.open .fc-body-extra{display:block}
.fc-body-extra b{color:var(--txt1)}
.fc-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:10px;color:var(--txt4)}
.fc-legend span{display:inline-flex;align-items:center;gap:3px}
.fc-legend i{display:inline-block;width:9px;height:9px;border-radius:2px}

/* ===== Install-App prompt (small dismissable pill) ===== */
.pwa-inst{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:9999;background:var(--card);border:1.5px solid var(--gold2);border-radius:999px;padding:9px 14px 9px 12px;display:none;gap:10px;align-items:center;box-shadow:0 6px 24px rgba(0,0,0,0.25);max-width:calc(100vw - 24px)}
.pwa-inst.on{display:inline-flex}
.pwa-inst .pwa-ico{font-size:18px}
.pwa-inst .pwa-txt{font-size:12.5px;color:var(--txt2);font-weight:600;white-space:nowrap}
.pwa-inst button{border:0;background:var(--red);color:#fff;padding:6px 12px;border-radius:999px;font-size:11.5px;font-weight:700;cursor:pointer}
.pwa-inst .pwa-close{background:transparent;color:var(--txt4);padding:4px 6px;font-size:14px}

/* ===== DAILY SUBSCRIBE POP-IN MODAL =====
   Shown once per session-segment (visit triggers configured in Site Settings).
   Centered card on a dim overlay; channel buttons stack vertically; dismissable
   with × or "Don't show again" link (suppresses for popin_dismiss_days). */
.subpop-back{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:99998;display:none;align-items:center;justify-content:center;padding:18px;animation:subpopFade .2s ease}
.subpop-back.on{display:flex}
@keyframes subpopFade{from{opacity:0}to{opacity:1}}
.subpop{background:linear-gradient(160deg,#160628,#0a0118);border:1px solid rgba(212,160,23,0.35);border-radius:16px;padding:20px 18px;width:100%;max-width:340px;font-family:'Oswald',sans-serif;position:relative;box-shadow:0 20px 60px rgba(0,0,0,0.5);animation:subpopIn .25s ease}
body.light .subpop{background:linear-gradient(160deg,#fff8e8,#fff)}
@keyframes subpopIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.subpop-x{position:absolute;top:8px;right:12px;background:transparent;border:0;color:var(--txt4);font-size:22px;cursor:pointer;line-height:1;padding:4px 8px}
.subpop-x:hover{color:var(--txt)}
.subpop-head{text-align:center;margin-bottom:14px}
.subpop-om{font-size:32px;line-height:1}
.subpop-ttl{color:var(--gold2);font-weight:700;font-size:16px;margin-top:6px}
body.light .subpop-ttl{color:#7a4a00}
.subpop-sub{color:var(--txt3);font-size:12px;margin-top:4px;line-height:1.5}
body.light .subpop-sub{color:#5a4a20}
.subpop-row{display:flex;align-items:center;gap:11px;border-radius:11px;padding:10px 12px;margin-bottom:7px;text-decoration:none;border:1px solid;transition:transform .12s ease, background .12s ease;cursor:pointer}
.subpop-row:active{transform:scale(.98)}
.subpop-row .sr-ico{font-size:20px;flex:0 0 auto}
.subpop-row .sr-body{flex:1;min-width:0}
.subpop-row .sr-ttl{font-weight:700;font-size:13.5px;line-height:1.2}
.subpop-row .sr-sub{color:var(--txt4);font-size:11px;margin-top:2px}
body.light .subpop-row .sr-sub{color:#7a6a40}
.subpop-row .sr-arr{color:inherit;font-size:16px;opacity:.7}
.subpop-row.tg{background:rgba(44,165,224,0.10);border-color:rgba(44,165,224,0.40);color:#67c5f0}
.subpop-row.wa{background:rgba(37,211,102,0.10);border-color:rgba(37,211,102,0.40);color:#5dd97c}
.subpop-row.pwa{background:rgba(212,160,23,0.10);border-color:rgba(212,160,23,0.40);color:#e0b340}
.subpop-row.ig{background:rgba(220,80,150,0.08);border-color:rgba(220,80,150,0.35);color:#e788bb}
.subpop-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,0.08);padding-top:10px;margin-top:6px;font-size:11px}
body.light .subpop-foot{border-top-color:rgba(0,0,0,0.10)}
.subpop-foot a{color:var(--txt4);text-decoration:underline;cursor:pointer}
.subpop-foot a:hover{color:var(--txt2)}

/* Floating PWA-install pill (separate from modal). Bottom-right, slim, gold. */
.pwa-pill{position:fixed;bottom:78px;right:14px;z-index:9997;background:linear-gradient(140deg,#1a0628,#0a0118);border:1.5px solid var(--gold2);border-radius:999px;padding:8px 14px 8px 12px;display:none;gap:8px;align-items:center;color:var(--gold2);font-family:'Oswald',sans-serif;font-size:12.5px;font-weight:700;box-shadow:0 6px 22px rgba(0,0,0,0.35);cursor:pointer;animation:pillIn .3s ease}
.pwa-pill.on{display:inline-flex}
.pwa-pill .pp-x{margin-left:4px;color:var(--txt4);background:transparent;border:0;cursor:pointer;font-size:14px;line-height:1}
@keyframes pillIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Exit-intent bottom bar — slim full-width nudge */
.exit-nudge{position:fixed;left:0;right:0;bottom:0;z-index:9996;background:rgba(15,5,28,0.98);border-top:1.5px solid var(--gold2);padding:11px 14px;display:none;align-items:center;gap:10px;color:var(--txt2);font-size:13px;animation:nudgeUp .25s ease}
body.light .exit-nudge{background:rgba(255,250,238,0.99);color:#3a2a10}
.exit-nudge.on{display:flex}
.exit-nudge .en-msg{flex:1;min-width:0}
.exit-nudge .en-cta{background:var(--gold2);color:#0a0118;padding:7px 14px;border-radius:999px;text-decoration:none;font-weight:700;font-size:12.5px;white-space:nowrap}
.exit-nudge .en-x{background:transparent;border:0;color:var(--txt4);font-size:18px;cursor:pointer;padding:4px 8px;line-height:1}
@keyframes nudgeUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* ========== Testimonials rail (Bucket #6) — shown in chat-off slot ========== */
.ttv-section{background:var(--card);border:1.5px solid var(--border);border-radius:13px;padding:16px 15px 14px;margin:0 0 12px;box-shadow:0 6px 20px rgba(0,0,0,0.28)}
body.light .ttv-section{background:rgba(250,244,235,0.95);border-color:rgba(120,70,0,0.25)}
.ttv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.ttv-title{font-family:'Cinzel',Georgia,serif;font-size:1rem;color:var(--goldbright);font-weight:700;letter-spacing:.4px;margin:0;display:flex;align-items:center;gap:7px}
body.light .ttv-title{color:#6b3a00}
.ttv-om{font-size:1.2rem;filter:drop-shadow(0 0 7px rgba(255,215,107,0.4))}
.ttv-subtitle{font-size:11px;color:var(--txt4);margin:3px 0 0;line-height:1.5}
.ttv-share-btn{background:transparent;border:1px solid var(--border);color:var(--txt3);font-size:10.5px;font-weight:600;padding:5px 10px;border-radius:7px;cursor:pointer;letter-spacing:.2px;white-space:nowrap;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}
.ttv-share-btn:hover{background:var(--goldbright);color:#1a0428;border-color:var(--goldbright)}
body.light .ttv-share-btn{border-color:rgba(120,70,0,0.35);color:#6b3a00}
.ttv-rail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 10px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:rgba(200,146,10,0.55) transparent}
.ttv-rail::-webkit-scrollbar{height:5px}
.ttv-rail::-webkit-scrollbar-thumb{background:rgba(200,146,10,0.55);border-radius:3px}
.ttv-rail::-webkit-scrollbar-track{background:transparent}
.ttv-card{flex:0 0 270px;scroll-snap-align:start;background:linear-gradient(165deg,rgba(255,215,107,0.09) 0%,rgba(255,215,107,0.03) 100%);border:1px solid rgba(200,146,10,0.22);border-radius:11px;padding:14px 13px 12px;display:flex;flex-direction:column;position:relative;transition:transform .18s ease,border-color .18s ease}
body.light .ttv-card{background:rgba(255,215,107,0.1);border-color:rgba(200,146,10,0.3)}
.ttv-card:hover{transform:translateY(-2px);border-color:var(--border)}
.ttv-card .ttv-quote{position:absolute;top:4px;right:11px;font-family:Georgia,serif;font-size:38px;color:var(--goldbright);opacity:0.22;line-height:1;pointer-events:none}
.ttv-stars{font-size:11px;color:var(--goldbright);letter-spacing:1px;margin-bottom:7px;line-height:1}
.ttv-stars .dim{color:rgba(255,215,107,0.28)}
body.light .ttv-stars{color:#b8770a}
.ttv-text{font-size:12.8px;line-height:1.6;color:var(--txt2);margin:0 0 12px;flex:1;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
body.light .ttv-text{color:#2a1400}
.ttv-meta{display:flex;align-items:center;gap:9px;margin-top:auto}
.ttv-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:linear-gradient(135deg,#c8920a 0%,#6b3a00 100%);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#ffe9c2;border:1px solid rgba(255,215,107,0.4)}
.ttv-person{line-height:1.3;min-width:0;flex:1}
.ttv-name{font-size:12px;font-weight:700;color:var(--txt3);display:flex;align-items:center;gap:4px}
body.light .ttv-name{color:#3d2000}
.ttv-verified{color:#4ecdc4;font-size:10.5px}
body.light .ttv-verified{color:#0b7a6a}
.ttv-place{font-size:10px;color:var(--txt4);margin-top:1px}
.ttv-date{font-size:9.5px;color:var(--txt4);margin-top:1px;letter-spacing:.2px;opacity:.85}
.ttv-dots{display:flex;justify-content:center;gap:5px;margin-top:4px}
.ttv-dots .dot{width:5px;height:5px;border-radius:50%;background:rgba(200,146,10,0.25);transition:background .15s ease,width .15s ease}
.ttv-dots .dot.active{background:var(--goldbright);width:16px;border-radius:3px}
.ttv-footnote{font-size:10.5px;color:var(--txt4);text-align:center;line-height:1.6;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(200,146,10,0.22)}
.ttv-footnote a{color:var(--goldbright);text-decoration:none;font-weight:600}
body.light .ttv-footnote a{color:#6b3a00}
.ttv-footnote a:hover{text-decoration:underline}
.ttv-cta-card{flex:0 0 200px;scroll-snap-align:start;background:rgba(255,215,107,0.04);border:1.5px dashed var(--border);border-radius:11px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:background .15s ease,transform .15s ease;text-decoration:none;color:inherit}
.ttv-cta-card:hover{background:rgba(255,215,107,0.09);transform:translateY(-2px)}
.ttv-cta-icon{font-size:26px;margin-bottom:6px}
.ttv-cta-title{font-size:12px;font-weight:700;color:var(--goldbright);margin-bottom:3px}
body.light .ttv-cta-title{color:#6b3a00}
.ttv-cta-sub{font-size:10px;color:var(--txt3);line-height:1.45}
@media(max-width:520px){.ttv-section{padding:13px 11px 13px;border-radius:12px}.ttv-title{font-size:.95rem}.ttv-share-btn{font-size:10px;padding:4px 8px}.ttv-card{flex-basis:240px;padding:12px 11px}.ttv-cta-card{flex-basis:178px}.ttv-text{font-size:12.5px;-webkit-line-clamp:4}}


/* === CROWD FORECAST INLINE STYLES — managed block === */
/* ============================================================
   CROWD FORECAST TAB — scoped styles (all classes prefixed cf-,
   all IDs prefixed cf-). Vars defined locally to avoid touching
   the live page's globals.
============================================================ */
#tp-forecast{
  --cf-gold:#D4A017; --cf-gold2:#FFD700; --cf-goldbright:#FFE066;
  --cf-gdim:rgba(212,160,23,0.25);
  --cf-red:#7a1010;
  --cf-txt:#fff; --cf-txt2:rgba(255,255,255,0.72); --cf-txt3:rgba(255,255,255,0.42);
  --cf-card:rgba(255,255,255,0.03); --cf-inp:rgba(255,255,255,0.05);
  --cf-c-light:#27ae60; --cf-c-med:#d4a017; --cf-c-modhi:#e67e22;
  --cf-c-high:#c0392b; --cf-c-vhigh:#7a1010;
  color:var(--cf-txt);
  font-family:'Oswald',sans-serif;
}

#tp-forecast .cf-wrap {padding:8px 0 24px}#tp-forecast .cf-hdr {padding:6px 4px 13px;text-align:center;border-bottom:1px solid var(--cf-gdim);margin-bottom:12px}#tp-forecast .cf-hdr-eyebrow {font-size:9.5px;color:rgba(212,160,23,0.55);letter-spacing:3px;text-transform:uppercase;margin-bottom:5px}#tp-forecast .cf-hdr-title {font-family:'Cinzel',serif;font-size:1.18rem;color:var(--cf-gold2);letter-spacing:1px}#tp-forecast .cf-hdr-meta {font-size:10.5px;color:var(--cf-txt3);margin-top:5px;letter-spacing:.4px}#tp-forecast .cf-hdr-meta .dot {display:inline-block;width:6px;height:6px;border-radius:50%;background:#27ae60;margin-right:5px;vertical-align:middle;animation:bk 1.4s infinite}
@keyframes bk{0%,100%{opacity:1}50%{opacity:.3}}#tp-forecast .cf-sec-title {font-family:'Cinzel',serif;font-size:11.5px;color:var(--cf-gold);letter-spacing:2px;text-transform:uppercase;margin:18px 0 9px;border-left:3px solid var(--cf-gold);padding-left:9px;display:flex;align-items:center;gap:6px;justify-content:space-between}#tp-forecast .cf-sec-title .cf-meta {font-family:'Oswald',sans-serif;font-size:9.5px;color:var(--cf-txt3);font-weight:400;letter-spacing:.6px;text-transform:none;border:none;padding:0}#tp-forecast .cf-best-today {background:linear-gradient(160deg,rgba(39,174,96,0.16),rgba(15,80,40,0.30));border:1.5px solid rgba(39,174,96,0.55);border-radius:13px;padding:13px 14px;margin-bottom:14px}#tp-forecast .cf-best-today.cf-is-now {background:linear-gradient(160deg,rgba(212,160,23,0.18),rgba(80,50,5,0.30));border-color:var(--cf-gold)}#tp-forecast .cf-bt-head {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}#tp-forecast .cf-bt-eyebrow {font-size:9.5px;color:rgba(255,255,255,0.55);letter-spacing:2.5px;text-transform:uppercase}#tp-forecast .cf-bt-icon {font-size:19px}#tp-forecast .cf-bt-line {font-family:'Cinzel',serif;font-size:1rem;color:#a8edc1;letter-spacing:.6px;line-height:1.3}#tp-forecast .cf-best-today.cf-is-now .cf-bt-line {color:var(--cf-goldbright)}#tp-forecast .cf-bt-sub {font-size:11.5px;color:var(--cf-txt2);margin-top:4px;line-height:1.5;letter-spacing:.2px}#tp-forecast .cf-bt-link{display:inline-flex;align-items:center;gap:5px;margin-top:8px;background:rgba(255,215,0,.08);border:1px solid rgba(255,215,0,.22);border-radius:8px;padding:5px 12px;font-size:10px;font-weight:600;color:#FFD700;cursor:pointer;letter-spacing:.3px;text-decoration:none}#tp-forecast .cf-day {background:var(--cf-card);border:1px solid var(--cf-gdim);border-radius:12px;padding:13px;margin-bottom:13px}#tp-forecast .cf-day.cf-primary {background:linear-gradient(160deg,rgba(122,16,16,0.16),rgba(60,4,4,0.30));border-color:rgba(212,160,23,0.45);box-shadow:0 4px 18px rgba(0,0,0,0.3)}#tp-forecast .cf-day-head {display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;gap:10px}#tp-forecast .cf-day-label {font-family:'Cinzel',serif;font-size:13px;color:var(--cf-gold);letter-spacing:1.5px;text-transform:uppercase}#tp-forecast .cf-day.cf-primary .cf-day-label {font-size:14px;color:var(--cf-gold2);letter-spacing:2px}#tp-forecast .cf-day-date {font-size:11px;color:var(--cf-txt3);letter-spacing:.5px;display:block;margin-top:2px}#tp-forecast .cf-day-now {font-size:10.5px;color:#a8edc1;letter-spacing:.5px;text-transform:uppercase;text-align:right}#tp-forecast .cf-day-now b {color:var(--cf-gold2);font-weight:700}#tp-forecast .cf-fest-flag {margin-top:6px;font-size:10.5px;color:#ffcfa3;background:rgba(230,126,34,0.10);border-left:3px solid var(--cf-c-modhi);padding:5px 9px;border-radius:0 6px 6px 0;letter-spacing:.3px}#tp-forecast .cf-hours-wrap {position:relative;margin-top:10px}#tp-forecast .cf-hours {display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:32px;border-radius:7px;overflow:hidden;background:rgba(0,0,0,0.35)}#tp-forecast .cf-day.cf-primary .cf-hours {height:42px}#tp-forecast .cf-hr {height:100%;transition:transform .12s,filter .12s;cursor:pointer;position:relative}#tp-forecast .cf-hr:active {filter:brightness(1.35);transform:scaleY(1.1);z-index:2}#tp-forecast .cf-hr-now {box-shadow:inset 0 0 0 2px var(--cf-gold2),0 0 8px rgba(255,215,0,0.5);z-index:3}#tp-forecast .cf-hours-axis {display:grid;grid-template-columns:repeat(24,1fr);font-size:8.5px;color:var(--cf-txt3);margin-top:4px;letter-spacing:0;font-feature-settings:"tnum"}#tp-forecast .cf-hours-axis span {text-align:center;line-height:1}#tp-forecast .cf-hours-axis span.lbl {color:rgba(212,160,23,0.55);font-weight:600}#tp-forecast .cf-day-summary {display:flex;align-items:center;gap:8px;margin-top:9px;font-size:11.5px;color:var(--cf-txt2);flex-wrap:wrap}#tp-forecast .cf-chip {display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;border:1px solid;background:rgba(255,255,255,0.04);font-family:'Oswald',sans-serif;line-height:1.3;white-space:nowrap}#tp-forecast .cf-chip-dot {width:6px;height:6px;border-radius:50%;background:currentColor}#tp-forecast .cf-chip.cf-light {color:var(--cf-c-light);border-color:rgba(39,174,96,0.5);background:rgba(39,174,96,0.1)}#tp-forecast .cf-chip.cf-med {color:var(--cf-c-med);  border-color:rgba(212,160,23,0.5);background:rgba(212,160,23,0.1)}#tp-forecast .cf-chip.cf-modhi {color:var(--cf-c-modhi);border-color:rgba(230,126,34,0.5);background:rgba(230,126,34,0.1)}#tp-forecast .cf-chip.cf-high {color:var(--cf-c-high); border-color:rgba(192,57,43,0.55);background:rgba(192,57,43,0.12)}#tp-forecast .cf-chip.cf-vhigh {color:#ff8378; border-color:rgba(122,16,16,0.7); background:rgba(122,16,16,0.22)}#tp-forecast .cf-peak-line {font-size:11.5px;color:var(--cf-txt3);letter-spacing:.4px;margin-top:7px}#tp-forecast .cf-peak-line strong {color:var(--cf-gold2);font-weight:700;letter-spacing:.6px}#tp-forecast .cf-tap-hint {font-size:10px;color:var(--cf-txt3);margin-top:5px;letter-spacing:.4px;text-align:center;font-style:italic}#tp-forecast .cf-week-card {background:var(--cf-card);border:1px solid var(--cf-gdim);border-radius:12px;padding:12px;margin-bottom:13px}#tp-forecast .cf-wkrow {display:grid;grid-template-columns:60px 1fr 75px;gap:9px;align-items:center;padding:7px 4px;font-size:12px}#tp-forecast .cf-wkrow + .cf-wkrow {border-top:1px solid rgba(255,255,255,0.04)}#tp-forecast .cf-wkrow .cf-wkday {color:var(--cf-txt2);font-weight:600;letter-spacing:.5px}#tp-forecast .cf-wkrow .cf-wkday small {display:block;font-size:9.5px;color:var(--cf-txt3);font-weight:400;letter-spacing:.3px;margin-top:1px}#tp-forecast .cf-wkrow .cf-wkbar {height:14px;border-radius:5px;background:rgba(0,0,0,0.35);overflow:hidden;position:relative;cursor:pointer}#tp-forecast .cf-wkrow .cf-wkbar > i {display:block;height:100%;border-radius:5px}#tp-forecast .cf-wkrow .cf-wklbl {font-size:10.5px;text-align:right}#tp-forecast .cf-wkrow.cf-weekend {background:rgba(212,160,23,0.04)}#tp-forecast .cf-wkrow.cf-weekend .cf-wkday {color:var(--cf-gold2)}#tp-forecast .cf-wkrow.cf-fest {box-shadow:inset 3px 0 0 var(--cf-c-modhi)}#tp-forecast .cf-wkrow .cf-fest-tag {font-size:9px;color:var(--cf-c-modhi);letter-spacing:.4px;display:block;margin-top:1px}#tp-forecast .cf-yoy {display:flex;align-items:flex-end;gap:8px;height:80px;padding:0 6px}#tp-forecast .cf-yoy-col {flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}#tp-forecast .cf-yoy-bars {flex:1;width:100%;display:flex;align-items:flex-end;gap:5px;justify-content:center;padding-bottom:4px}#tp-forecast .cf-yoy-bar {width:14px;border-radius:3px 3px 0 0}#tp-forecast .cf-yoy-bar.last {background:rgba(255,255,255,0.18)}#tp-forecast .cf-yoy-bar.this {background:linear-gradient(180deg,#FFE066,#D4A017)}#tp-forecast .cf-yoy-lbl {font-size:9px;color:var(--cf-txt3);letter-spacing:.3px}#tp-forecast .cf-yoy-val {font-size:10px;color:var(--cf-gold);font-weight:700}#tp-forecast .cf-yoy-key {display:flex;justify-content:center;gap:14px;font-size:10px;color:var(--cf-txt3);margin-top:6px;letter-spacing:.3px}#tp-forecast .cf-yoy-key span i {display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}#tp-forecast .cf-planner {background:var(--cf-card);border:1px solid var(--cf-gdim);border-radius:12px;padding:14px}#tp-forecast .cf-pl-row {display:flex;gap:9px;margin-bottom:10px}#tp-forecast .cf-pl-field {flex:1}#tp-forecast .cf-pl-field label {display:block;font-size:9.5px;color:rgba(212,160,23,0.6);letter-spacing:1.3px;text-transform:uppercase;margin-bottom:4px}#tp-forecast .cf-pl-field select, #tp-forecast .cf-pl-field input {width:100%;padding:9px 10px;background:var(--cf-inp);border:1px solid var(--cf-gdim);border-radius:6px;color:var(--cf-txt);font-family:inherit;font-size:13.5px;-webkit-appearance:none;outline:none}#tp-forecast .cf-pl-field select {background-image:none}#tp-forecast .cf-pl-field select:focus, #tp-forecast .cf-pl-field input:focus {border-color:var(--cf-gold)}#tp-forecast .cf-pl-field select option {background:#0d0420;color:#fff}#tp-forecast .cf-pl-result {padding:11px 12px;background:linear-gradient(160deg,rgba(212,160,23,0.10),rgba(80,50,5,0.18));border:1px dashed rgba(212,160,23,0.45);border-radius:9px;font-size:13px;line-height:1.65;color:var(--cf-txt2);letter-spacing:.2px}#tp-forecast .cf-pl-result b {color:var(--cf-gold2);font-weight:700}#tp-forecast .cf-pl-result .cf-pl-line + .cf-pl-line {margin-top:4px}#tp-forecast .cf-tips {background:var(--cf-card);border:1px solid var(--cf-gdim);border-radius:12px;padding:13px;margin-bottom:13px}#tp-forecast .cf-tip-item {display:flex;gap:10px;padding:8px 0;font-size:12px;color:var(--cf-txt2);line-height:1.5}#tp-forecast .cf-tip-item + .cf-tip-item {border-top:1px solid rgba(255,255,255,0.04)}#tp-forecast .cf-tip-icon {flex-shrink:0;font-size:16px;width:24px;text-align:center}#tp-forecast .cf-tip-body strong {color:var(--cf-gold2);font-weight:700;letter-spacing:.3px}#tp-forecast .cf-weather {display:flex;gap:10px;background:var(--cf-card);border:1px solid var(--cf-gdim);border-radius:12px;padding:11px 12px;margin-bottom:13px;align-items:center}#tp-forecast .cf-wt-icon {font-size:26px}#tp-forecast .cf-wt-body {flex:1}#tp-forecast .cf-wt-line {font-size:13px;color:var(--cf-gold2);font-weight:600;letter-spacing:.3px}#tp-forecast .cf-wt-impact {font-size:11px;color:var(--cf-txt3);margin-top:2px;line-height:1.4}#tp-forecast .cf-conf {display:flex;justify-content:space-between;align-items:center;background:rgba(52,152,219,0.06);border:1px solid rgba(52,152,219,0.25);border-radius:9px;padding:9px 12px;margin-bottom:13px;font-size:11.5px;color:#9ed4f5;letter-spacing:.3px;line-height:1.45}#tp-forecast .cf-conf b {color:#fff;font-weight:700}#tp-forecast .cf-conf-bar {flex-shrink:0;width:60px;height:5px;background:rgba(255,255,255,0.08);border-radius:3px;overflow:hidden;margin-left:10px}#tp-forecast .cf-conf-bar > i {display:block;height:100%;background:linear-gradient(90deg,#3498db,#2980b9)}#tp-forecast .cf-legend {display:flex;justify-content:center;gap:9px;flex-wrap:wrap;font-size:9.5px;color:var(--cf-txt3);margin:5px 0 14px;letter-spacing:.4px}#tp-forecast .cf-lg-item {display:inline-flex;align-items:center;gap:4px}#tp-forecast .cf-lg-swatch {width:11px;height:11px;border-radius:3px}#tp-forecast .cf-disclaimer {margin-top:10px;padding:10px 12px;background:rgba(52,152,219,0.07);border-left:3px solid #3498db;border-radius:4px 8px 8px 4px;font-size:11px;color:rgba(255,255,255,0.55);line-height:1.55;letter-spacing:.2px}#tp-forecast .cf-disclaimer b {color:#9ed4f5;font-weight:700}#tp-forecast .cf-pred-notice {display:flex;align-items:flex-start;gap:9px;margin:10px 0 14px;padding:10px 12px;background:linear-gradient(90deg,rgba(255,193,7,0.10),rgba(255,193,7,0.04));border:1px solid rgba(255,193,7,0.32);border-radius:8px;font-size:11.5px;line-height:1.55;color:rgba(255,255,255,0.8);letter-spacing:.2px}#tp-forecast .cf-pred-notice .cf-pn-ic {flex-shrink:0;font-size:14px;line-height:1.2}#tp-forecast .cf-pred-notice b {color:#ffd54a;font-weight:700;letter-spacing:.3px}#tp-forecast .cf-pred-notice .cf-pn-body {flex:1}#tp-forecast .cf-qs-row {display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:6px 0 14px}#tp-forecast .cf-qs-card {background:linear-gradient(170deg,rgba(212,160,23,0.07),rgba(122,16,16,0.05));border:1px solid var(--cf-gdim);border-radius:9px;padding:9px 7px;text-align:center;min-height:64px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}#tp-forecast .cf-qs-num {font-family:'Cinzel',serif;font-size:1.05rem;color:var(--cf-gold2);font-weight:700;line-height:1.05;letter-spacing:.4px;white-space:nowrap}#tp-forecast .cf-qs-num.cf-sm {font-size:.85rem}#tp-forecast .cf-qs-lbl {font-size:8.5px;color:var(--cf-txt3);text-transform:uppercase;letter-spacing:.5px;line-height:1.25;margin-top:2px}#tp-forecast .cf-qs-ic {font-size:11px;margin-bottom:2px;opacity:.8}
@media (max-width:380px){#tp-forecast .cf-qs-num {font-size:.95rem}#tp-forecast .cf-qs-num.cf-sm {font-size:.78rem}}#tp-forecast .cf-patterns-card {background:linear-gradient(160deg,rgba(0,0,0,0.32),rgba(0,0,0,0.18));border:1px solid var(--cf-gdim);border-radius:10px;padding:12px;margin-bottom:10px}#tp-forecast .cf-pat-block {margin-bottom:14px}#tp-forecast .cf-pat-block:last-child {margin-bottom:0}#tp-forecast .cf-pat-h {font-family:'Cinzel',serif;font-size:10.5px;color:var(--cf-gold2);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:7px;display:flex;align-items:center;gap:5px}#tp-forecast .cf-pat-h .cf-meta {font-family:'Oswald',sans-serif;font-size:9px;color:var(--cf-txt3);font-weight:400;letter-spacing:.4px;text-transform:none;margin-left:auto}#tp-forecast .cf-hod-wrap {position:relative;height:88px;background:rgba(0,0,0,0.28);border-radius:7px;padding:6px 8px 4px}#tp-forecast .cf-hod-svg {width:100%;height:100%;display:block;overflow:visible}#tp-forecast .cf-hod-x-lbl {font-size:8.5px;fill:var(--cf-txt3);font-family:'Oswald',sans-serif;letter-spacing:.3px}#tp-forecast .cf-hod-area {fill:url(#hodGrad);opacity:.85}#tp-forecast .cf-hod-line {stroke:var(--cf-gold);stroke-width:1.6;fill:none}#tp-forecast .cf-hod-peak-dot {fill:var(--cf-gold2);stroke:var(--maroon);stroke-width:1.5}#tp-forecast .cf-hod-now-line {stroke:#3498db;stroke-width:1.2;stroke-dasharray:3,3}#tp-forecast .cf-hod-now-lbl {font-size:8px;fill:#9ed4f5;font-family:'Oswald',sans-serif}#tp-forecast .cf-bars-row {display:flex;gap:3px;align-items:flex-end;height:54px;padding:4px 0}#tp-forecast .cf-bar-col {flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}#tp-forecast .cf-bar-fill-wrap {width:100%;height:42px;background:rgba(255,255,255,0.04);border-radius:3px 3px 0 0;display:flex;align-items:flex-end;overflow:hidden;position:relative}#tp-forecast .cf-bar-fill {width:100%;background:linear-gradient(180deg,#FFD700,#7a1010);border-radius:2px 2px 0 0;transition:height .4s ease;min-height:2px}#tp-forecast .cf-bar-fill.cf-weekend {background:linear-gradient(180deg,#FFE066,#D4A017)}#tp-forecast .cf-bar-fill.cf-now {outline:1.5px solid var(--cf-gold);outline-offset:1px;animation:nowGlow 1.6s ease-in-out infinite alternate}
@keyframes nowGlow{from{box-shadow:0 0 0 0 rgba(255,215,0,0.5)}to{box-shadow:0 0 8px 2px rgba(255,215,0,0.25)}}#tp-forecast .cf-bar-lbl {font-size:8.5px;color:var(--cf-txt3);font-family:'Oswald',sans-serif;letter-spacing:.3px;text-transform:uppercase}#tp-forecast .cf-bar-lbl.cf-now {color:var(--cf-gold2);font-weight:700}#tp-forecast .cf-bar-val {font-size:7.5px;color:var(--cf-txt3);font-family:'Oswald',sans-serif;height:9px;line-height:1}#tp-forecast .cf-month-bars .cf-bar-lbl {font-size:7.5px}#tp-forecast .cf-pat-cap {font-size:9.5px;color:rgba(255,255,255,0.45);line-height:1.45;margin-top:4px;letter-spacing:.2px}#tp-forecast .cf-pat-cap b {color:var(--cf-gold2);font-weight:600}#tp-forecast .cf-ph-card {background:linear-gradient(160deg,rgba(52,152,219,0.08),rgba(212,160,23,0.04));border:1px solid rgba(52,152,219,0.22);border-radius:10px;padding:11px 12px;margin:6px 0 14px}#tp-forecast .cf-ph-head {display:flex;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px dashed rgba(255,255,255,0.10)}#tp-forecast .cf-ph-h {font-family:'Cinzel',serif;font-size:10.5px;color:#9ed4f5;letter-spacing:1.4px;text-transform:uppercase}#tp-forecast .cf-ph-h .cf-badge {display:inline-block;margin-left:6px;padding:1.5px 6px;background:rgba(39,174,96,0.18);border:1px solid rgba(39,174,96,0.5);border-radius:10px;font-family:'Oswald',sans-serif;font-size:8.5px;color:#7ed99e;letter-spacing:.5px;text-transform:uppercase}#tp-forecast .cf-ph-grid {display:grid;grid-template-columns:repeat(2,1fr);gap:6px 9px}#tp-forecast .cf-ph-item {display:flex;align-items:center;gap:7px;padding:5px 2px;font-size:10.5px;color:rgba(255,255,255,0.78);line-height:1.3;letter-spacing:.15px}#tp-forecast .cf-ph-item .cf-ic {flex-shrink:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;border-radius:5px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08)}#tp-forecast .cf-ph-item b {color:var(--cf-gold2);font-weight:700;font-family:'Oswald',sans-serif;letter-spacing:.3px}#tp-forecast .cf-ph-foot {margin-top:8px;padding-top:7px;border-top:1px dashed rgba(255,255,255,0.10);display:flex;align-items:center;gap:6px;font-size:9.5px;color:rgba(255,255,255,0.5);letter-spacing:.2px}#tp-forecast .cf-ph-foot .cf-pulse {width:6px;height:6px;border-radius:50%;background:#27ae60;box-shadow:0 0 0 0 rgba(39,174,96,0.7);animation:phPulse 2s ease-out infinite}
@keyframes phPulse{0%{box-shadow:0 0 0 0 rgba(39,174,96,0.55)}70%{box-shadow:0 0 0 8px rgba(39,174,96,0)}100%{box-shadow:0 0 0 0 rgba(39,174,96,0)}}
@media (max-width:380px){#tp-forecast .cf-ph-grid {grid-template-columns:1fr}}#tp-forecast .cf-modal {position:fixed;inset:0;background:rgba(0,0,0,0.86);z-index:9000;display:none;align-items:flex-end;justify-content:center;padding:0}#tp-forecast .cf-modal.cf-show {display:flex}#tp-forecast .cf-modal-inner {width:100%;max-width:480px;max-height:92vh;background:linear-gradient(170deg,#0a0220,#060115);border-top:1.5px solid var(--cf-gold);border-radius:14px 14px 0 0;padding:18px 16px 26px;overflow-y:auto;animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}#tp-forecast .cf-modal-grab {width:40px;height:4px;background:rgba(212,160,23,0.4);border-radius:3px;margin:0 auto 10px}#tp-forecast .cf-modal-head {display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--cf-gdim)}#tp-forecast .cf-modal-time {font-family:'Cinzel',serif;font-size:1.25rem;color:var(--cf-gold2);letter-spacing:1px}#tp-forecast .cf-modal-day {font-size:11px;color:var(--cf-txt3);letter-spacing:.5px;margin-top:2px}#tp-forecast .cf-modal-x {background:none;border:1px solid var(--cf-gdim);color:var(--cf-gold2);font-size:18px;width:30px;height:30px;border-radius:6px;cursor:pointer;flex-shrink:0;line-height:1}#tp-forecast .cf-modal-hero {display:flex;align-items:center;gap:12px;background:rgba(0,0,0,0.3);border-radius:10px;padding:11px 13px;margin-bottom:14px;border-left:4px solid var(--cf-c-light)}#tp-forecast .cf-modal-hero.cf-med {border-left-color:var(--cf-c-med)}#tp-forecast .cf-modal-hero.cf-modhi {border-left-color:var(--cf-c-modhi)}#tp-forecast .cf-modal-hero.cf-high {border-left-color:var(--cf-c-high)}#tp-forecast .cf-modal-hero.cf-vhigh {border-left-color:var(--cf-c-vhigh)}#tp-forecast .cf-modal-hero-num {font-family:'Cinzel',serif;font-size:1.6rem;color:var(--cf-gold2);font-weight:700;line-height:1;letter-spacing:.5px}#tp-forecast .cf-modal-hero-lbl {font-size:11px;color:var(--cf-txt3);letter-spacing:.5px;text-transform:uppercase}#tp-forecast .cf-modal-hero-state {flex:1;text-align:right}#tp-forecast .cf-modal-grid {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:13px}#tp-forecast .cf-modal-stat {background:rgba(255,255,255,0.025);border:1px solid var(--cf-gdim);border-radius:8px;padding:9px 11px}#tp-forecast .cf-ms-lbl {font-size:9px;color:rgba(212,160,23,0.55);letter-spacing:1.3px;text-transform:uppercase;margin-bottom:3px}#tp-forecast .cf-ms-val {font-size:14px;color:#fff;font-weight:600;letter-spacing:.3px}#tp-forecast .cf-ms-sub {font-size:10px;color:var(--cf-txt3);margin-top:1px;letter-spacing:.3px}#tp-forecast .cf-modal-section {margin-top:14px}#tp-forecast .cf-modal-section .cf-mh {font-family:'Cinzel',serif;font-size:11px;color:var(--cf-gold);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:7px}#tp-forecast .cf-modal-rec {padding:11px 13px;background:linear-gradient(160deg,rgba(39,174,96,0.10),rgba(15,80,40,0.15));border:1px solid rgba(39,174,96,0.35);border-radius:9px;font-size:12.5px;color:#a8edc1;line-height:1.6;letter-spacing:.2px}#tp-forecast .cf-modal-rec.cf-warn {background:linear-gradient(160deg,rgba(230,126,34,0.10),rgba(115,60,15,0.15));border-color:rgba(230,126,34,0.4);color:#ffcfa3}#tp-forecast .cf-modal-rec.cf-danger {background:linear-gradient(160deg,rgba(192,57,43,0.10),rgba(85,15,15,0.15));border-color:rgba(192,57,43,0.4);color:#ffb4a8}#tp-forecast .cf-modal-rec b {font-weight:700;letter-spacing:.4px}

/* ── SSD card ── */
.ssd-card{background:var(--card);border:1px solid var(--border);border-radius:13px;overflow:hidden;margin-bottom:10px}
.ssd-card-hdr{background:linear-gradient(135deg,rgba(13,60,100,.55),rgba(0,0,0,.35));padding:10px 13px;border-bottom:1px solid rgba(44,165,224,.2)}
.ssd-card-title{font-size:11px;font-weight:600;color:#60a5fa;letter-spacing:.4px;margin-bottom:3px}
.ssd-card-meta{font-size:9.5px;color:var(--txt3);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ssd-block{padding:10px 13px;border-bottom:1px solid rgba(255,255,255,.05)}
.ssd-block:last-of-type{border-bottom:none}
.ssd-block-title{font-size:10px;font-weight:700;color:rgba(240,232,255,.7);letter-spacing:.3px;margin-bottom:7px}
.ssd-block-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;margin-bottom:7px}
.ssd-block-name{font-size:10px;font-weight:700;color:rgba(240,232,255,.7);letter-spacing:.3px}
.ssd-status-done{display:inline-flex;align-items:center;gap:4px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#f87171;font-size:9px;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:.4px}
.ssd-status-active{display:inline-flex;align-items:center;gap:4px;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.28);color:#4ade80;font-size:9px;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:.4px}
.ssd-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:6px}
.ssd-stat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:7px 9px}
.ssd-stat-v{font-size:13px;font-weight:700;color:#FFD700;display:block;line-height:1.2}
.ssd-stat-l{font-size:8px;color:var(--txt4);letter-spacing:.2px;margin-top:2px;display:block}
.ssd-stat.avail .ssd-stat-v{color:#4ade80}
.ssd-stat.warn  .ssd-stat-v{color:#fb923c}
.ssd-alert{margin-top:7px;padding:6px 9px;background:rgba(251,146,60,.1);border:1px solid rgba(251,146,60,.25);border-radius:7px;font-size:10.5px;color:#fb923c;font-weight:600}
.ssd-timings{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:9px 13px;border-top:1px solid rgba(255,255,255,.04)}
.ssd-countdown{padding:9px 13px;background:rgba(255,215,0,.04);border-bottom:1px solid rgba(255,215,0,.1);display:flex;justify-content:space-between;align-items:center}
/* Hide old widget countdown when new structured card is shown */
/* countdown managed inline */
.ssd-cd-lbl{font-size:8.5px;color:rgba(255,215,0,.5);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px}
.ssd-cd-time{font-size:20px;font-weight:700;color:#FFD700;font-variant-numeric:tabular-nums;letter-spacing:1px;line-height:1}
.ssd-cd-sub{font-size:8px;color:var(--txt4);margin-top:3px}

/* ── Accom card ── */
.accom-card{background:var(--card);border:1px solid var(--border);border-radius:13px;overflow:hidden;margin-bottom:10px}
.accom-card-hdr{background:linear-gradient(135deg,rgba(30,50,20,.55),rgba(0,0,0,.35));padding:10px 13px;border-bottom:1px solid rgba(34,197,94,.18)}
.accom-card-title{font-size:11px;font-weight:600;color:#4ade80;letter-spacing:.4px;margin-bottom:3px}
.accom-card-meta{font-size:9.5px;color:var(--txt3);display:flex;flex-wrap:wrap;gap:6px}
.accom-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:10px 13px}
.accom-stat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:7px 9px}
.accom-stat-v{font-size:14px;font-weight:700;color:#FFD700;display:block;line-height:1.2}
.accom-stat-l{font-size:8px;color:var(--txt4);letter-spacing:.2px;margin-top:2px;display:block}
.accom-stat.avail .accom-stat-v{color:#4ade80}
.accom-stat.warn  .accom-stat-v{color:#fb923c}
.accom-prog{padding:8px 13px;border-top:1px solid rgba(255,255,255,.04)}
.accom-prog-hdr{display:flex;justify-content:space-between;font-size:9px;color:var(--txt3);margin-bottom:5px}
.accom-prog-track{height:8px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden}
.accom-prog-bar{height:100%;border-radius:4px;background:linear-gradient(90deg,#15803d,#4ade80);transition:width .4s}
.accom-cats{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px 13px;border-top:1px solid rgba(255,255,255,.04)}
.accom-cat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:7px 9px}
.accom-cat-id{font-size:11px;font-weight:700;color:#FFD700}
.accom-cat-price{font-size:10px;color:#4ade80;margin-top:1px}
.accom-cat-lbl{font-size:8px;color:var(--txt4);letter-spacing:.2px;margin-top:2px}
.accom-info{padding:7px 13px;background:rgba(255,255,255,.02);border-top:1px solid rgba(255,255,255,.04);font-size:9.5px;color:var(--txt3);display:flex;gap:10px;flex-wrap:wrap}
.accom-info span{display:flex;align-items:center;gap:4px}
body.light .ssd-card,.light .accom-card{background:rgba(255,255,255,.8)}

/* ── Sarva structured card ── */
.sarva-card{background:var(--card);border:1px solid var(--border);border-radius:13px;overflow:hidden;margin-bottom:10px}
/* ── Card headers — redesigned hierarchy ── */
.sarva-card-hdr{background:linear-gradient(160deg,#1e0500 0%,#0d0221 100%);padding:14px 14px 12px;border-bottom:1px solid rgba(200,146,10,.18);position:relative;overflow:hidden}
.sarva-card-hdr::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#FFD700 40%,transparent)}
.hdr-status-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.hdr-live-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:8.5px;font-weight:700;letter-spacing:.6px}
.hdr-live-badge.gold{background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.28);color:#FFD700}
.hdr-live-badge.blue{background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.28);color:#60a5fa}
.hdr-live-badge.green{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.28);color:#4ade80}
.hdr-live-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;animation:pulse 1.5s ease-in-out infinite}
.hdr-live-dot.gold{background:#FFD700}
.hdr-live-dot.blue{background:#60a5fa}
.hdr-live-dot.green{background:#4ade80}
.hdr-updated{font-size:8.5px;color:rgba(240,232,255,.3)}
.hdr-temple-name{font-family:'Cinzel',serif;font-size:15px;font-weight:700;letter-spacing:.3px;margin-bottom:2px;line-height:1.3}
.hdr-temple-name.gold{color:#FFD700}
.hdr-temple-name.blue{color:#60a5fa}
.hdr-temple-name.green{color:#4ade80}
.hdr-subtitle{font-size:9.5px;letter-spacing:.2px;margin-bottom:10px}
.hdr-subtitle.gold{color:rgba(255,215,0,.45)}
.hdr-subtitle.blue{color:rgba(96,165,250,.45)}
.hdr-subtitle.green{color:rgba(34,197,94,.45)}
.hdr-chips-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.hdr-date-chip{display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600}
.hdr-date-chip.gold{background:rgba(255,215,0,.08);border:1px solid rgba(255,215,0,.2);color:#FFD700}
.hdr-date-chip.blue{background:rgba(96,165,250,.08);border:1px solid rgba(96,165,250,.2);color:#60a5fa}
.hdr-date-chip.green{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);color:#4ade80}
.hdr-time-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600;color:rgba(240,232,255,.88)}
.hdr-day-chip{font-size:10px;color:rgba(240,232,255,.4);padding:5px 2px}
.hdr-env-row{display:flex;gap:5px;flex-wrap:wrap}
.hdr-env-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:7px;padding:3px 8px;font-size:10px;color:rgba(240,232,255,.65)}
/* keep old for fallback */
.sarva-card-title{font-family:'Cinzel',serif;font-size:11px;color:var(--gold2);letter-spacing:.5px;margin-bottom:2px}
.sarva-card-meta{font-size:10px;color:var(--txt3);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sarva-card-meta .sep{opacity:.3}
.sarva-env{display:flex;gap:6px;flex-wrap:wrap;padding:8px 13px;background:rgba(255,255,255,.02);border-bottom:1px solid rgba(255,255,255,.04)}
.env-pill{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px 9px;font-size:10.5px;color:var(--txt2)}
/* ── Sarva stats grid ── */
.sarva-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 13px}
.sstat{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:10px;padding:10px 12px;
  display:flex;flex-direction:column;justify-content:center;
}
.sstat-v{font-size:15px;font-weight:700;font-family:'Cinzel',serif;display:block;line-height:1.2;color:var(--gold2)}
.sstat-l{font-size:8.5px;color:var(--txt4);letter-spacing:.3px;margin-top:3px;display:block;text-transform:uppercase}
.sstat.full{grid-column:1/-1}

/* ROW 1a — Pilgrims in Queue: RED — most alarming number */
.sstat.sstat-wait{
  background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(185,28,28,.08));
  border:1.5px solid rgba(239,68,68,.4);
}
.sstat.sstat-wait .sstat-v{color:#f87171;font-size:20px}
.sstat.sstat-wait .sstat-l{color:rgba(248,113,113,.65)}

/* ROW 1b — Active Compartments: AMBER — capacity pressure */
.sstat.sstat-comp{
  background:linear-gradient(135deg,rgba(251,146,60,.12),rgba(194,65,12,.08));
  border:1.5px solid rgba(251,146,60,.4);
}
.sstat.sstat-comp .sstat-v{color:#fb923c;font-size:20px}
.sstat.sstat-comp .sstat-l{color:rgba(251,146,60,.65)}
/* Capacity at 90%+ — bright red warning */
.sstat.sstat-comp.cap-danger{
  background:linear-gradient(135deg,rgba(239,68,68,.14),rgba(185,28,28,.1));
  border-color:rgba(239,68,68,.5);
}
.sstat.sstat-comp.cap-danger .sstat-v{color:#f87171}

/* ROW 2 — Darshan Completed: FULL-WIDTH GREEN — positive, reassuring */
.sstat.sstat-done{
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(21,128,61,.08));
  border:1.5px solid rgba(34,197,94,.4);
}
.sstat.sstat-done .sstat-v{color:#4ade80;font-size:20px}
.sstat.sstat-done .sstat-l{color:rgba(74,222,128,.6)}

/* ROW 3 — Balance / Beyond capacity: FULL-WIDTH AMBER or RED */
.sstat.sstat-r5.beyond{
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(185,28,28,.08));
  border:1.5px solid rgba(239,68,68,.42);
}
.sstat.sstat-r5.beyond .sstat-v{color:#f87171;font-size:18px}
.sstat.sstat-r5.beyond .sstat-l{color:rgba(248,113,113,.6)}
.sstat.sstat-r5.balance{
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(251,146,60,.12),rgba(194,65,12,.08));
  border:1.5px solid rgba(251,146,60,.42);
}
.sstat.sstat-r5.balance .sstat-v{color:#fb923c;font-size:18px}
.sstat.sstat-r5.balance .sstat-l{color:rgba(251,146,60,.6)}

/* Light mode */
body.light .sstat.sstat-wait{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.35)}
body.light .sstat.sstat-comp{background:rgba(234,88,12,.07);border-color:rgba(234,88,12,.35)}
body.light .sstat.sstat-done{background:rgba(21,128,61,.07);border-color:rgba(21,128,61,.35)}
body.light .sstat.sstat-r5.beyond{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.35)}
body.light .sstat.sstat-r5.balance{background:rgba(234,88,12,.07);border-color:rgba(234,88,12,.35)}
/* ── Slim info strip — replaces big card headers ── */
.info-strip{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 13px;
  background:rgba(255,255,255,.03);
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-wrap:wrap;gap:4px;
}
.info-strip-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.is-chip{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;color:rgba(240,232,255,.75)}
.is-chip.gd{color:var(--goldbright)}
.is-chip.bl{color:#60a5fa}
.is-chip.gn{color:#4ade80}
.is-chip.dim{color:rgba(240,232,255,.45);font-weight:400}
.is-live{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;font-weight:700;letter-spacing:.5px}
.is-live.gd{color:var(--goldbright)}
.is-live.bl{color:#60a5fa}
.is-live.gn{color:#4ade80}
.is-sep{color:rgba(255,255,255,.2);margin:0 1px}
body.light .info-strip{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.08)}
body.light .is-chip{color:rgba(26,8,0,.65)}
body.light .is-chip.gd{color:#7a4a00}
body.light .is-chip.bl{color:#1d4ed8}
body.light .is-chip.gn{color:#15803d}
/* ── Crowd status block — centered, highlighted ── */
/* ── Crowd block — horizontal compact layout ── */
.crowd-block{
  display:flex;align-items:stretch;gap:0;
  padding:0;
  border-top:1px solid rgba(255,255,255,.05);
  border-bottom:1px solid rgba(255,255,255,.05);
  position:relative;overflow:hidden;
}
.crowd-block::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.crowd-vh::before{background:linear-gradient(90deg,transparent,#dc2626,transparent)}
.crowd-hi::before{background:linear-gradient(90deg,transparent,#ef4444,transparent)}
.crowd-mh::before{background:linear-gradient(90deg,transparent,#f97316,transparent)}
.crowd-yw::before{background:linear-gradient(90deg,transparent,#eab308,transparent)}
.crowd-gn::before{background:linear-gradient(90deg,transparent,#22c55e,transparent)}
.crowd-block.crowd-vh{background:rgba(220,38,38,.06)}
.crowd-block.crowd-hi{background:rgba(239,68,68,.05)}
.crowd-block.crowd-mh{background:rgba(249,115,22,.05)}
.crowd-block.crowd-yw{background:rgba(234,179,8,.04)}
.crowd-block.crowd-gn{background:rgba(34,197,94,.04)}
/* Left: coloured accent band — icon + level centered */
.crowd-left{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;flex-shrink:0;width:80px;padding:10px 8px;
  border-right:1px solid rgba(255,255,255,.08);
  align-self:stretch;
}
.crowd-icon{font-size:20px;line-height:1}
.crowd-level{font-size:10px;font-weight:800;letter-spacing:.3px;font-family:'Cinzel',serif;line-height:1.25;text-align:center;word-break:break-word}
.crowd-vh .crowd-level{color:#fca5a5}
.crowd-hi .crowd-level{color:#f87171}
.crowd-mh .crowd-level{color:#fb923c}
.crowd-yw .crowd-level{color:#facc15}
.crowd-gn .crowd-level{color:#4ade80}
/* Right: message + pill centered vertically */
.crowd-right{flex:1;min-width:0;padding:9px 12px;display:flex;flex-direction:column;justify-content:center;gap:5px;align-self:stretch}
.crowd-msg{font-size:10px;line-height:1.45;color:rgba(240,232,255,.65);margin:0}
.crowd-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;align-self:flex-start}
.crowd-vh .crowd-pill{background:rgba(220,38,38,.16);border:1px solid rgba(220,38,38,.35);color:#fca5a5}
.crowd-hi .crowd-pill{background:rgba(239,68,68,.13);border:1px solid rgba(239,68,68,.3);color:#f87171}
.crowd-mh .crowd-pill{background:rgba(249,115,22,.13);border:1px solid rgba(249,115,22,.28);color:#fb923c}
.crowd-yw .crowd-pill{background:rgba(234,179,8,.1);border:1px solid rgba(234,179,8,.25);color:#facc15}
.crowd-gn .crowd-pill{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);color:#4ade80}
body.light .crowd-msg{color:rgba(26,8,0,.55)}
/* ── Schedule current/next seva highlight ── */
.sch-item-now{background:rgba(255,215,0,.06);border-left:3px solid rgba(255,215,0,.5)}
.sch-item-next{border-left:3px solid rgba(96,165,250,.3)}
.sch-now-badge{display:inline-block;font-size:7px;font-weight:700;letter-spacing:.8px;background:#FFD700;color:#1a0800;border-radius:3px;padding:1px 5px;margin-left:5px;vertical-align:middle;line-height:1.6}
.sch-next-badge{display:inline-block;font-size:7px;font-weight:700;letter-spacing:.8px;background:rgba(96,165,250,.2);color:#60a5fa;border:1px solid rgba(96,165,250,.3);border-radius:3px;padding:1px 5px;margin-left:5px;vertical-align:middle;line-height:1.6}
/* ── Wait timing section — hierarchy: Sarva primary, others secondary ── */
.timing-section{padding:10px 13px;border-top:1px solid rgba(255,255,255,.06)}
.timing-section-title{font-size:8.5px;color:var(--txt4);letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px}
/* Primary — Free Darshan (full width, gold, prominent) */
.stiming-primary{background:rgba(255,215,0,.06);border:1.5px solid rgba(255,215,0,.28);border-radius:11px;padding:10px 12px;margin-bottom:7px;display:flex;align-items:center;justify-content:space-between;min-height:56px}
.stiming-primary-left{display:flex;flex-direction:column;gap:2px}
.stiming-primary-label{font-size:8.5px;color:rgba(255,215,0,.55);letter-spacing:.7px;text-transform:uppercase}
.stiming-primary-val{font-size:22px;font-weight:700;color:var(--goldbright);line-height:1;font-family:'Cinzel',serif}
.stiming-primary-sub{font-size:9px;color:rgba(240,232,255,.42);margin-top:3px}
.stiming-primary-icon{font-size:26px;opacity:.65}
/* Secondary — SSD/DD + ₹300 (smaller, side by side) */
.stiming-secondary-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.stiming-secondary{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:8px 9px;display:flex;align-items:center;gap:7px;min-height:48px}
.stiming-secondary-icon{font-size:17px;flex-shrink:0;opacity:.65}
.stiming-secondary-right{display:flex;flex-direction:column;gap:1px}
.stiming-secondary-val{font-size:14px;font-weight:700;color:rgba(240,232,255,.82);line-height:1.2}
.stiming-secondary-lbl{font-size:8px;color:var(--txt4);letter-spacing:.2px;line-height:1.3}
/* Fallback for old 3-col grid */
.sarva-timings{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 13px;border-top:1px solid rgba(255,255,255,.04)}
.stiming{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:9px;padding:7px 8px;text-align:center}
.stiming-v{display:block;font-size:13px;font-weight:700;color:var(--goldbright);line-height:1.2}
.stiming-l{display:block;font-size:8px;color:var(--txt4);letter-spacing:.2px;margin-top:3px;line-height:1.3}
body.light .stiming-primary{background:rgba(120,70,0,.06);border-color:rgba(120,70,0,.22)}
body.light .stiming-primary-val{color:#7a4a00}
body.light .stiming-secondary{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}
body.light .sarva-card{background:rgba(255,255,255,.75)}
body.light .sstat{background:rgba(255,255,255,.6)}
body.light .stiming{background:rgba(255,255,255,.6)}
body.light .sstat-v{color:#7a4a00}
body.light .stiming-v{color:#7a4a00}
/* === END CROWD FORECAST INLINE STYLES === */

.ttv-shine-sub{font-size:10.5px !important;line-height:1.5;padding:2px 0}
.ttv-shine-brand{display:inline-block;font-weight:700;font-style:italic;background:linear-gradient(90deg,#ffd700 0%,#fff5b3 25%,#ffd700 50%,#fff5b3 75%,#ffd700 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:ttvShine 3s linear infinite;letter-spacing:.2px;text-shadow:0 0 6px rgba(255,215,0,.18)}
.ttv-shine-link{color:#ffd700 !important;text-decoration:none;font-weight:600;letter-spacing:.2px;border-bottom:1px dotted rgba(255,215,0,.5);transition:color .2s,border-color .2s}
.ttv-shine-link:hover{color:#fff5b3 !important;border-bottom-color:#fff5b3}
@keyframes ttvShine{0%{background-position:200% 0}100%{background-position:-200% 0}}
