*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --green:#27ae60;
  --green-dark:#1e8449;
  --yellow:#f1c40f;
  --yellow-dark:#d4ac0d;
  --blue:#1565c0;
  /* Themeable backgrounds — default = Grape (purple). Overridden per-visitor by the theme picker (site.js). */
  --pg:#c6bcd8;          /* content area behind the cards */
  --panel:#d6cee4;       /* header panel — low-contrast partner to --pg */
  --surround:#d9d5df;    /* soft purple-grey behind the floating site card */
  --card:#fff;
  --border:#dddfda;
  --t1:#0d1117;
  --t2:#444;
  --t3:#777;
  --r:8px;
  --max:1180px;
  --topbar-h:134px; /* two-row header: logo row + search row */
  --nav-h:52px;
  --chrome-h:134px; /* nav is hidden by default now, so sticky offsets only need to clear the topbar */
}
body{font-family:'Inter',system-ui,sans-serif;background:var(--surround);color:var(--t1);overflow-x:clip}

/* ── SITE CARD — the whole site wrapped as one rounded panel floating on the surround ── */
.site-card{
  max-width:var(--max);
  width:calc(100% - 36px);
  margin:18px auto;
  background:var(--pg);
  border-radius:18px;
  overflow:hidden;                 /* clip header/footer to the rounded corners */
  box-shadow:0 14px 44px rgba(0,0,0,.16);
}
/* inside the card the inner blocks fill the card instead of re-centring at their own max-widths */
.site-card .topbar{position:static;background:transparent}
.site-card .topbar-inner{max-width:none;margin:0;border-radius:0;box-shadow:none}
.site-card .page{max-width:none;width:auto;margin:16px 0 0}
.site-card .footer-inner{max-width:none}
/* card look is a static layout — sidebars scroll with the page rather than sticking */
.site-card .page > aside{position:static;max-height:none;overflow:visible}
/* Site loads at natural 100% scale (no built-in zoom). */
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
svg{display:block;flex-shrink:0}

/* ── TOPBAR ── */
.topbar{
  background:var(--pg);
  position:sticky;top:0;z-index:100;
}
.topbar-inner{
  max-width:calc(var(--max) - 32px);
  margin:0 auto;
  background:var(--panel);
  border-bottom:1px solid var(--border);
  box-shadow:0 1px 4px rgba(0,0,0,.04);
  padding:14px 16px;
  height:auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  column-gap:12px;
  row-gap:10px;
  position:relative;              /* anchor for the apps panel */
}
/* Desktop: [apps btn · weather · time]  ·  centered logo  ·  [dark switch / account stack] ; centered search on row 2 */
.head-left{grid-column:1;grid-row:1;justify-self:start;display:flex;align-items:center;gap:12px;min-width:0}
.apps-wrap{position:relative;flex-shrink:0}
.logo-box{grid-column:2;grid-row:1;justify-self:center}
.corner{grid-column:3;grid-row:1;justify-self:stretch;align-self:center}

/* ── Apps launcher button (3×3 dots) ── */
.apps-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;
  border:1px solid var(--border);background:#fff;color:var(--t2);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.apps-btn svg{width:22px;height:22px;fill:currentColor}
.apps-btn:hover,.apps-btn[aria-expanded="true"]{background:#f0f7f0;border-color:var(--green);color:var(--green)}
html.dark .apps-btn{background:#161b22;border-color:#30363d}
html.dark .apps-btn:hover,html.dark .apps-btn[aria-expanded="true"]{background:#1f2d1f}

/* ── Apps launcher panel (floating grid) ── */
.apps-panel{position:absolute;top:calc(100% + 10px);right:0;left:auto;z-index:200;width:340px;max-width:calc(100vw - 24px);
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  box-shadow:0 12px 34px rgba(0,0,0,.18);padding:14px;
  transform-origin:top left;animation:appsPop .14s ease}
.apps-panel[hidden]{display:none}
@keyframes appsPop{from{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}
html.dark .apps-panel{background:#161b22;border-color:#30363d}
.apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.app-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;
  padding:14px 6px;border-radius:12px;text-decoration:none;color:var(--t1);transition:background .15s}
.app-tile:hover{background:#f2f5f9}
html.dark .app-tile{color:#e6edf3}
html.dark .app-tile:hover{background:#1f2733}
.app-ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px}
.app-ic img{width:30px;height:30px;object-fit:contain}
.app-label{font-size:0.78rem;font-weight:600;text-align:center;line-height:1.2}

/* ── Corner row: [settings gear] floats in the gap, apps launcher sits at the far right ── */
.corner{display:flex;flex-direction:row;align-items:center;width:100%}
.corner .settings-wrap{margin-left:auto;position:relative;display:flex}  /* floats in the gap */
.corner .apps-wrap{margin-left:auto}                                     /* flush right */

/* account icon (now on the left) */
.acct-btn .acct-ic{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:#555}
html.dark .acct-btn .acct-ic{color:#c9d1d9}

/* ── Settings: transparent gear button (png-style) → dropdown ── */
.gear-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;
  border:none;background:transparent;color:var(--t2);cursor:pointer;transition:color .15s,transform .12s;padding:0}
.gear-btn svg{width:23px;height:23px}
.gear-btn:hover,.gear-btn[aria-expanded="true"]{color:var(--green-dark);transform:rotate(20deg)}
html.dark .gear-btn{color:#c9d1d9}
html.dark .gear-btn:hover,html.dark .gear-btn[aria-expanded="true"]{color:var(--green)}

/* Public Announcement button (replaces the header gear; png-style, transparent, with label) */
.pa-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:9px;
  border:none;background:transparent;cursor:pointer;transition:transform .12s;padding:0 4px;text-decoration:none}
.pa-btn img{width:23px;height:23px;object-fit:contain;flex-shrink:0}
.pa-btn .pa-txt{font-size:0.82rem;font-weight:600;white-space:nowrap;color:var(--t1)}
.pa-btn:hover{transform:translateY(-1px)}
.pa-btn:hover .pa-txt{color:var(--green-dark)}
html.dark .pa-btn .pa-txt{color:#c9d1d9}
.pa-short{display:none}   /* desktop shows the full label */

.settings-panel{position:absolute;top:calc(100% + 12px);right:0;z-index:210;width:320px;max-width:calc(100vw - 40px);
  background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.22);
  padding:14px;animation:appsPop .14s ease}
.settings-panel[hidden]{display:none}
html.dark .settings-panel{background:#161b22;border-color:#30363d}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 10px}
.set-label{font-size:0.86rem;font-weight:700;color:var(--t1)}
html.dark .set-label{color:#e6edf3}
.set-sep{height:1px;background:var(--border);margin:0 -14px 12px}
.tp-head{font-size:0.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);margin:0 0 4px}
.tp-set{grid-column:1 / -1;font-size:0.66rem;font-weight:800;letter-spacing:.05em;color:var(--t3);margin:9px 2px 3px}
.tp-set:first-child{margin-top:2px}
.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tp-opt{border:2px solid transparent;border-radius:10px;background:transparent;padding:3px;cursor:pointer;text-align:center;transition:border-color .12s,transform .1s}
.tp-opt:hover{transform:translateY(-1px)}
.tp-opt.active{border-color:var(--green)}
.tp-opt .duo{display:flex;height:30px;border-radius:7px;overflow:hidden;border:1px solid rgba(0,0,0,.12)}
.tp-opt .duo .a{flex:2}.tp-opt .duo .b{flex:1}
.tp-opt .nm{display:block;font-size:0.6rem;font-weight:700;color:var(--t2);margin-top:3px;line-height:1.1}
html.dark .tp-opt .nm{color:#c9d1d9}
/* Row 2: three lottery companies, centered under the logo */
.lotto-nav{grid-column:1 / -1;grid-row:2;display:flex;align-items:stretch;justify-content:center;gap:12px;flex-wrap:nowrap}
.lotto-brand{display:flex;align-items:center;justify-content:center;height:58px;padding:6px 18px;
  background:#fff;border:1px solid var(--border);border-radius:12px;cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .15s,border-color .15s,transform .1s;min-width:0}
.lotto-brand img{height:42px;width:auto;max-width:150px;object-fit:contain;display:block}
.lotto-brand:hover{border-color:var(--green);transform:translateY(-1px)}
.lotto-brand.active{border-color:var(--green);box-shadow:0 3px 12px rgba(39,174,96,.22)}
html.dark .lotto-brand{background:#fff;border-color:#30363d}

/* Row 2 utility bar: centered search box */
.util-bar{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;justify-content:center}
.util-left{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.util-bar .top-search{flex:0 0 auto;width:min(560px,100%);max-width:100%;min-width:0}
.util-right{display:none}

/* Weather chip */
.wx-chip{display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  background:#fff;border:1px solid var(--border);border-radius:20px;padding:6px 12px;
  font-size:0.82rem;font-weight:600;color:var(--t1);white-space:nowrap;transition:background .15s,border-color .15s}
.wx-chip:hover{background:#f0f7f0;border-color:var(--green)}
.wx-ico{font-size:1rem;line-height:1}
.wx-temp{font-weight:800}
.wx-dot{color:var(--t3)}
.wx-place{color:var(--t2)}
/* Date + time chip */
.dt-chip{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}
.dt-date{font-size:0.78rem;font-weight:700;color:var(--t1)}
.dt-time{font-size:0.72rem;font-weight:600;color:var(--green)}
html.dark .wx-chip{background:#161b22;border-color:#30363d}
html.dark .wx-chip:hover{border-color:var(--green)}

/* Nav scroller + desktop scroll arrows (no touch on desktop) */
.nav-wrap{position:relative;display:flex;align-items:center;gap:2px}
.nav-arrow{flex-shrink:0;display:none;align-items:center;justify-content:center;width:28px;height:34px;border:none;background:transparent;color:var(--t2);cursor:pointer;border-radius:6px}
.nav-arrow.show{display:flex}
.nav-arrow:hover{background:#f0f7f0;color:var(--green)}
.nav-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
html.dark .nav-arrow:hover{background:#1f2d1f}

/* Account button */
.acct-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;flex-shrink:0;background:#fff;border:1px solid var(--border);transition:background .15s,border-color .15s}
.acct-btn img{width:20px;height:20px}
.acct-btn:hover{background:#f0f7f0;border-color:var(--green)}
html.dark .acct-btn{background:#161b22;border-color:#30363d}
html.dark .acct-btn:hover{border-color:var(--green)}

/* LOGO */
.logo-box{
  display:inline-flex;align-items:center;
  background:#fff;border-radius:8px;
  border:1px solid rgba(0,0,0,.1);
  padding:2px 8px;                 /* very tight — hugs the wordmark */
  box-shadow:0 1px 8px rgba(0,0,0,.1);
  white-space:nowrap;flex-shrink:0;
  text-decoration:none;
}
.brand-text{
  font-family:'Book Antiqua','Cormorant Garamond',Georgia,serif;
  font-size:2.3rem;line-height:0.82;   /* trim the serif's built-in leading so the box hugs vertically */
  display:flex;align-items:center;
}
.cl-W {color:#f1c40f;text-shadow:-0.01em -0.01em 0 #000,0.01em -0.01em 0 #000,-0.01em 0.01em 0 #000,0.01em 0.01em 0 #000}
.cl-A1{color:#000;text-shadow:-1px -1px 0 #f1c40f,1px -1px 0 #f1c40f,-1px 1px 0 #f1c40f,1px 1px 0 #f1c40f}
.cl-A2{color:#f1c40f;text-shadow:-1px -1px 0 #27ae60,1px -1px 0 #27ae60,-1px 1px 0 #27ae60,1px 1px 0 #27ae60}
.cl-g {color:#27ae60;text-shadow:-0.01em -0.01em 0 #000,0.01em -0.01em 0 #000,-0.01em 0.01em 0 #000,0.01em 0.01em 0 #000}
.cl-w {color:#f1c40f;text-shadow:-0.01em -0.01em 0 #000,0.01em -0.01em 0 #000,-0.01em 0.01em 0 #000,0.01em 0.01em 0 #000}
.cl-a1{color:#000;text-shadow:-1px -1px 0 #f1c40f,1px -1px 0 #f1c40f,-1px 1px 0 #f1c40f,1px 1px 0 #f1c40f}
.cl-a2{color:#f1c40f;text-shadow:-1px -1px 0 #27ae60,1px -1px 0 #27ae60,-1px 1px 0 #27ae60,1px 1px 0 #27ae60}
.cl-n {color:#27ae60;text-shadow:-0.01em -0.01em 0 #000,0.01em -0.01em 0 #000,-0.01em 0.01em 0 #000,0.01em 0.01em 0 #000}
.cl-q{font-weight:bold;display:inline-block;background:linear-gradient(to bottom,#f1c40f 60%,#27ae60 40%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* SEARCH */
/* Section nav strip — the scroller inside .nav-wrap.
   Desktop: right of the logo, same row. Mobile: its own full-width row. */
.mobile-nav-inline{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1;scroll-behavior:smooth}
.mobile-nav-inline::-webkit-scrollbar{display:none}

/* SEARCH — shorter pill with a search button on the right, inside the box */
.top-search{
  position:relative;display:flex;align-items:center;
  width:420px;max-width:100%;
  border:1.5px solid var(--green);border-radius:26px;
  background:#f7f7f7;overflow:hidden;transition:background .18s;
}
.top-search:focus-within{background:#fff}
.top-search input{
  flex:1;min-width:0;
  padding:10px 8px 10px 18px;
  border:none;outline:none;background:transparent;
  font-size:0.95rem;font-family:inherit;color:var(--t1);
}
.top-search .sbtn{
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:44px;align-self:stretch;
  background:var(--green);color:#fff;border:none;cursor:pointer;
  transition:background .15s;
}
.top-search .sbtn:hover{background:var(--green-dark)}
.top-search .sbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
html.dark .top-search{background:#0d1117;border-color:var(--green)}
html.dark .top-search input{color:var(--t1)}
html.dark .top-search input::placeholder{color:#8b949e}

/* LIGHT / DARK SWITCH — a two-sided sliding toggle */
.theme-switch{
  flex-shrink:0;border:none;background:transparent;padding:0;margin:0;
  cursor:pointer;line-height:0;
}
.ts-track{
  position:relative;display:inline-flex;align-items:center;justify-content:space-between;
  width:44px;height:22px;border-radius:999px;padding:0 4px;
  background:#e6eaef;border:1.5px solid var(--border);
  transition:background .2s,border-color .2s;
}
.ts-ico{width:12px;height:12px;display:block;position:relative;z-index:1}
.ts-ico svg{width:12px;height:12px;display:block}
.ts-sun{color:#f1a20a}
.ts-moon{color:#7a869a}
.ts-knob{
  position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);
  transition:transform .2s ease;z-index:2;
}
.theme-switch:hover .ts-track{border-color:var(--green)}
/* Dark mode: track darkens, knob slides to the moon (right) side */
html.dark .theme-switch .ts-track{background:#243041;border-color:#30363d}
html.dark .theme-switch .ts-knob{transform:translateX(22px);background:#0d1117}
html.dark .ts-sun{color:#6b7280}
html.dark .ts-moon{color:#f1c40f}

/* ══════════════════════════════════════════
   DARK MODE — applied via html.dark class
══════════════════════════════════════════ */
html.dark{
  --pg:#0d1117;--panel:#161b22;--surround:#05070a;--card:#161b22;--border:#30363d;
  --t1:#e6edf3;--t2:#c9d1d9;--t3:#8b949e;
  --green:#3fb950;--green-dark:#2ea043;
}
html.dark body{background:var(--surround);color:var(--t1)}
html.dark .topbar{background:transparent}
html.dark nav[aria-label="Site sections"]{background:var(--pg)}
html.dark .nav{background:#161b22;border-color:#30363d}
html.dark .topbar-inner{background:var(--panel);border-color:#30363d}
html.dark .logo-box{background:#fff;border-color:rgba(0,0,0,.15)}
html.dark .top-search input{background:#0d1117;border-color:var(--green);color:var(--t1)}
html.dark .top-search input::placeholder{color:#8b949e}
html.dark .appmenu{background:#161b22;border-color:#30363d;color:#c9d1d9}
html.dark .appmenu:hover{border-color:var(--green);color:var(--green)}
html.dark .appmenu.open{background:var(--green);border-color:var(--green);color:#0d1117}
html.dark .sb-card{background:#161b22;border-color:#30363d}
html.dark .story-card,.html.dark .hw-card{background:#161b22;border-color:#30363d}
html.dark .hw-card{background:#161b22;border-color:#30363d}
html.dark .feed-item{border-color:#30363d}
html.dark .feed-img{background:#1c2128}
html.dark .sec-more{color:var(--green)}
html.dark .hero-carousel{border-color:#30363d;background:#161b22}
html.dark .hero-arrow{background:transparent}
html.dark .dot{background:#30363d}
html.dark .dot.active{background:var(--green)}
html.dark .weather-card{background:linear-gradient(135deg,#0d2744,#0a1929)}
html.dark .fin-item{background:#161b22;border-color:#30363d}
html.dark .fin-name{color:var(--t3)}
html.dark .trend-item{border-color:#30363d}
html.dark .lotto-pane{background:#1c2128}
html.dark .sport-match{border-color:#30363d}
html.dark .sport-league{color:var(--t3)}
html.dark .feed-ad,.html.dark .feed-widget{border-color:#30363d}
html.dark .feed-widget{border-color:#30363d}
html.dark .today-item{border-color:#1c2128}
html.dark .today-item:hover{background:#1c2128}
html.dark .net-link{background:#1c2128;border-color:#30363d;color:var(--t2)}
html.dark .net-link:hover{background:#1f2d1f;color:var(--green);border-color:var(--green)}
html.dark .fixture{background:#1c2128;border-color:#30363d}
html.dark .fixture:hover{background:#1f2d1f}
html.dark .watch-card{background:#161b22;border-color:#30363d}
html.dark .main-footer{background:#161b22;border-color:#30363d}
html.dark .hero-ad-banner .test-ad{filter:brightness(.85)}

/* ── NAV (sticky, sits below topbar) — pill style matching mobile menu ── */
/* Hidden by default on every screen size — toggled open via the hamburger button */
nav[aria-label="Site sections"]{display:none;position:sticky;top:var(--topbar-h);z-index:99;background:var(--pg)}
nav[aria-label="Site sections"].open{display:block}
.nav{background:#f7f8fa;border-bottom:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.06);display:flex;align-items:center;max-width:calc(var(--max) - 32px);margin:0 auto;padding:0 16px}

/* Left/right scroll arrows flanking the nav row — desktop click-to-scroll since there's no touch swipe */
.nav-scroll-arrow{
  flex-shrink:0;width:32px;height:32px;margin:0 6px;
  border-radius:50%;border:1.5px solid var(--border);background:#fff;
  display:none;align-items:center;justify-content:center;cursor:pointer;
  transition:background .15s,border-color .15s,opacity .15s;
}
.nav-scroll-arrow.show{display:flex}
.nav-scroll-arrow:hover{background:#f0f7f0;border-color:var(--green)}
.nav-scroll-arrow svg{width:14px;height:14px;stroke:#555;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
html.dark .nav-scroll-arrow{background:#1c2128;border-color:#30363d}
html.dark .nav-scroll-arrow svg{stroke:#c9d1d9}
.nav-inner{
  display:flex;align-items:center;gap:6px;
  padding:8px 0;overflow-x:auto;scrollbar-width:none;
  flex:1;min-width:0;
}
.nav-inner::-webkit-scrollbar{display:none}
.nav-item{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;font-size:0.83rem;font-weight:800;
  color:var(--t2);white-space:nowrap;cursor:pointer;
  border:1px solid #eee;border-radius:20px;background:#fafafa;
  transition:background .15s,border-color .15s,color .15s;text-decoration:none;
  flex:0 0 auto;
}
.nav-item:hover,.nav-item.active{background:#f0f7f0;border-color:currentColor}
.nav-item svg,.nav-item img{width:22px;height:22px;fill:currentColor;flex-shrink:0;object-fit:contain}
html.dark .nav-item{background:#1c2128;border-color:#30363d}
html.dark .nav-item:hover,html.dark .nav-item.active{background:#1f2d1f}

/* Per-item colours — text/icon colour identifies the section; pill background/border handle interaction state */
.nav-home{color:var(--green)}
.nav-home svg{width:20px;height:20px}
.nav-home:hover,.nav-home.active{color:var(--green-dark)}

.nav-news       {color:#e65100}
.nav-news:hover,.nav-news.active      {color:#bf360c}
.nav-news svg   {stroke:none}

.nav-email      {color:#c0720e}
.nav-email:hover,.nav-email.active    {color:#a05a08}

.nav-finance    {color:#27ae60}
.nav-finance:hover,.nav-finance.active{color:#1e8449}

.nav-weather    {color:#0288d1}
.nav-weather:hover,.nav-weather.active{color:#0277bd}

.nav-sports     {color:#c0392b}
.nav-sports:hover,.nav-sports.active  {color:#96281b}

/* LifeStyle — Life blue, Style hot pink, joined */
.nav-lifestyle  {gap:5px}
.nav-lifestyle .ls-life {color:#1565c0;font-weight:700;letter-spacing:0}
.nav-lifestyle .ls-style{color:#e91e8c;font-weight:700;letter-spacing:0;margin-left:0}
.nav-lifestyle:hover .ls-life,.nav-lifestyle.active .ls-life  {color:#0d47a1}
.nav-lifestyle:hover .ls-style,.nav-lifestyle.active .ls-style{color:#c2185b}

.nav-shop       {color:#e05a00}
.nav-shop:hover,.nav-shop.active      {color:#b34600}

/* Watch — solid purple */
.nav-watch      {color:#7b2fbe}
.nav-watch:hover,.nav-watch.active    {color:#5e1a9e}
.nav-watch .w-r,.nav-watch .w-g,.nav-watch .w-b{color:inherit}

.nav-pa{color:#e91e2c}
.nav-pa:hover,.nav-pa.active{color:#c0001a}

main{min-width:0}
.page{
  display:grid;grid-template-columns:1fr 290px;gap:14px;
  max-width:var(--max);margin:16px auto;padding:0 16px;
}
/* 3-column layout (Yahoo-style): widgets rail | center | Today rail */
.page-3col{grid-template-columns:250px minmax(0,1fr) 300px}
.page-3col .rail-right .ad-live,.page-3col .rail-right .ad-live-box{max-width:300px;margin-left:auto;margin-right:auto}
@media(max-width:820px){.page,.page-3col{grid-template-columns:1fr}.page > aside{display:none}}
/* Both rails stay fixed in view while the center scrolls */
.page > aside{position:sticky;top:calc(var(--chrome-h) + 12px);align-self:start;max-height:calc(100vh - var(--chrome-h) - 24px);overflow-y:auto;scrollbar-width:none;padding-top:0}
.page > aside::-webkit-scrollbar{display:none}
/* Top of the first rail card lines up with the top of the Main Slider */
.page > aside > :first-child{margin-top:0}

/* Standalone slider (no more side boxes) */
.hero-solo{margin-bottom:14px}

/* 3 story boxes directly under the slider (natural height → source always shows) */
.under-slider{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
/* reset the old hero-grid placement so these flow across the 3 columns */
.under-slider .story-card.hw-card{grid-column:auto;grid-row:auto;height:auto}
.under-slider .hw-card .sc-title{-webkit-line-clamp:3}
@media(max-width:820px){.under-slider{grid-template-columns:1fr;gap:0}}

/* ── HERO CAROUSEL — card/leaf page-turn style ── */
.hero-carousel{border:1.5px solid var(--border);border-radius:12px;overflow:hidden;position:relative;height:340px;width:100%;perspective:1200px;
  background:#f8f7f4;padding:4px}   /* thin cream frame → larger slider image */
.hero-track{position:relative;width:100%;height:100%;border-radius:8px;overflow:hidden}
.hero-slide{
  position:absolute;inset:0;
  width:100%;height:100%;
  display:flex;align-items:flex-end;
  backface-visibility:hidden;
  transform-origin:left center;
  transform:rotateY(0deg);
  transition:transform .55s cubic-bezier(.4,0,.2,1), opacity .55s ease;
  opacity:1;
  z-index:1;
}
.hero-slide.leaving{
  transform:rotateY(-90deg);
  opacity:0;
  z-index:2;
  pointer-events:none;
}
.hero-slide.entering{
  transform:rotateY(90deg);
  opacity:0;
  z-index:0;
  pointer-events:none;
}
.hero-slide.entering.active{
  transform:rotateY(0deg);
  opacity:1;
  z-index:1;
}
/* hide arrows on touch devices */
/* arrows hidden on touch/mobile — rule lives in the mobile media block below */

/* One unified card wrapping the slider AND the boxes around it (like the screenshot) */
.hero-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:6px;                 /* tighter frame → content fills more of the card */
  margin-bottom:20px;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
html.dark .hero-card{background:#161b22;border-color:#30363d}

/* Unified hero grid: carousel + 2 side cards on top, 4 cards row below (desktop).
   Rows keep the slider at 340px (rectangular) with a tighter 6px gap. */
.hero-wrap{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:167px 167px auto;   /* 167 + 167 + 6 gap = 340px slider */
  gap:6px;
}
/* Inside the unified card the tiles drop their own borders so it reads as one
   container (the outer card provides the frame). Sizes are unchanged. */
.hero-card .story-card.hw-card{border:none;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.hero-card .hero-carousel{border:none}
.hw-cards{display:contents}   /* on desktop, cards participate directly in the grid */
.hw-carousel{grid-column:2 / 5;grid-row:1 / 3}   /* carousel spans both half-rows */
.hw-carousel .hero-carousel{height:100%}
.hw-card:nth-child(1){grid-column:1;grid-row:1}  /* first side card: top-left half */
.hw-card:nth-child(2){grid-column:1;grid-row:2}  /* second side card: bottom-left half */
.hw-card:nth-child(3){grid-column:1;grid-row:3}
.hw-card:nth-child(4){grid-column:2;grid-row:3}
.hw-card:nth-child(5){grid-column:3;grid-row:3}
.hw-card:nth-child(6){grid-column:4;grid-row:3}
/* .story-card.hw-card (two classes) so it beats the later .story-card rule */
.story-card.hw-card{display:flex;flex-direction:column;overflow:hidden;
  border:1.5px solid var(--border);border-radius:12px;background:#f8f7f4;  /* cream */
  box-shadow:0 1px 4px rgba(0,0,0,.05);transition:box-shadow .18s,transform .18s}
.story-card.hw-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.10);transform:translateY(-2px)}
/* Image inset inside the card frame (not full-bleed) → clear card effect.
   ~1.6:1 landscape thumbnail. */
.hw-card .sc-img{margin:5px 5px 0;border-radius:8px;height:100px;flex:none;min-height:100px;max-height:100px}
/* Fixed-height cards: clamp headline to 2 lines so the source line always fits. */
.hw-card .sc-title{-webkit-line-clamp:2}
.hw-card .sc-body{padding:6px 10px 8px}
.hero-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.hero-emoji{font-size:7rem;opacity:.15;user-select:none}
.hero-overlay{position:absolute;inset:0;background:none}
.hero-content{position:relative;z-index:2;padding:22px 24px}
.hero-src{display:inline-flex;align-items:center;gap:6px;background:#f1c40f;color:#000;border-radius:4px;font-size:0.68rem;font-weight:700;padding:2px 8px;margin-bottom:8px;letter-spacing:.03em}
.hero-headline{color:#fff;font-size:1.5rem;font-weight:700;line-height:1.25;margin-bottom:8px;max-width:580px;text-shadow:0 0 6px rgba(0,0,0,.9),0 1px 3px rgba(0,0,0,.8)}
.hero-meta{color:rgba(255,255,255,.85);font-size:0.76rem;text-shadow:0 1px 3px rgba(0,0,0,.8)}
/* arrows */
.hero-arrows{position:absolute;top:14px;right:14px;display:flex;gap:6px;z-index:4}
.hero-arrow{width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.25);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;flex-shrink:0}
.hero-arrow:hover{background:rgba(0,0,0,.72)}
.hero-arrow svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
/* dots */
.hero-dots{position:absolute;bottom:14px;right:14px;display:flex;gap:5px;z-index:3}
.dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;transition:background .2s}
.dot.active{background:#f1c40f}

/* ── HERO AD BANNER (under hero boxes, above Stories) ── */
.hero-ad-banner{margin-top:10px}

/* ── Story card: category label + source with icon ── */
.sc-cat{font-size:0.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.sc-meta{display:flex;align-items:center;gap:5px;font-size:0.66rem;color:var(--t3);margin-top:5px}
.feed-meta span,.sc-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src-icon{flex-shrink:0;display:inline-block;color:currentColor;vertical-align:middle;object-fit:contain;width:14px;height:14px}
.sc-meta{overflow:hidden}
.sc-meta span,.feed-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Solid black advertisement placeholder ── */
.ad-black{display:flex;align-items:center;justify-content:center;width:100%;min-height:90px;background:#000;color:#8a8a8a;border-radius:10px;text-decoration:none;letter-spacing:.2em;text-transform:uppercase;font-size:0.72rem;font-weight:600}
.ad-black span{opacity:.85}
.sidebar-ad{margin-top:12px}
html.dark .ad-black{background:#000;color:#6f6f6f}
/* Box ad (similar size to the lottery card) at the top of the sidebar */
.ad-box{min-height:240px;border-radius:12px}
/* Live pasted ad code (from the CMS Ads tab).
   No overflow clipping and no forced height — the ad network sizes its own
   iframe; we only stop it from pushing past the column width. */
.ad-live{width:100%;text-align:center}
.ad-live img{max-width:100%;height:auto}
.ad-live iframe,.ad-live ins{max-width:100%}
.ad-live-box{border-radius:12px}
.feed-woven .ad-live,.feed-woven .ad-black{margin:0}

/* ── Placeholder "coming soon" sections (Sports, Today in Jamaica) ── */
.section-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 12px;color:var(--t3);text-align:center}
.section-soon .soon-icon{font-size:1.7rem;opacity:.7}
.section-soon .soon-text{font-size:0.8rem;font-weight:600}

/* ── TODAY — ranked story list (Yahoo-style). Compact to fit the narrow
   left panel; roomier automatically when shown full-width (mobile weave). ── */
.td-card{padding:14px 14px 6px}
.td-head{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:800;color:var(--t1);margin-bottom:4px}
.td-head .td-ic{font-size:1.08rem;line-height:1}
.td-list{display:flex;flex-direction:column}
.td-item{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}
.td-item:last-child{border-bottom:none}
.td-item:hover .td-hl{color:var(--green)}
.td-thumb{position:relative;flex-shrink:0;width:60px;height:46px}
.td-img{display:block;width:60px;height:46px;border-radius:8px;background-size:cover;background-position:center;background-color:#eef0f3}
.td-noimg{display:flex;align-items:center;justify-content:center;font-size:1rem}
.td-rank{position:absolute;top:-5px;left:-5px;width:20px;height:20px;border-radius:6px;background:#fff;border:1px solid var(--border);
  box-shadow:0 1px 3px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;font-size:0.74rem;font-weight:800;color:var(--t1)}
.td-hl{font-size:0.9rem;font-weight:700;line-height:1.3;color:var(--t1);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.td-new{display:inline-block;background:#f9e000;color:#111;font-size:0.62rem;font-weight:800;border-radius:5px;padding:1px 6px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.td-more{display:flex;align-items:center;justify-content:center;gap:6px;padding:13px 0 7px;font-size:0.88rem;font-weight:800;color:var(--t1);text-decoration:none}
.td-more span{font-size:1.1rem}
.td-more:hover{color:var(--green)}
html.dark .td-rank{background:#0d1117;border-color:#30363d;color:#e6edf3}
/* Roomier in a wider context (right sidebar + mobile weave) */
.feed-woven .td-thumb,.feed-woven .td-img,.page > aside .td-thumb,.page > aside .td-img{width:78px;height:56px}
.feed-woven .td-hl,.page > aside .td-hl{font-size:0.98rem;-webkit-line-clamp:2}
.feed-woven .td-head,.page > aside .td-head{font-size:1.12rem}

/* ── Mobile weave: woven non-story sections are hidden on desktop ── */
/*    (the right sidebar shows those sections on desktop instead)     */
.feed-woven{display:none}

/* ── LATEST STORIES — desktop horizontal rail ── */
/* ── LATEST STORIES: vertical feed aligned to carousel's right edge ── */
/* Latest Stories — 3-column: upcoming-left | feed-center | (right sidebar handles itself) */
.latest-stories-section{
  display:grid;
  grid-template-columns:1fr;   /* full width — Today moved to the right sidebar */
  grid-template-rows:auto auto;
  gap:0 16px;
  align-items:start;
}
.latest-stories-section .sec-head{
  grid-column:1;
  grid-row:1;
  padding-bottom:10px;
}
.latest-stories-section .desktop-rail{grid-column:1;grid-row:2}
.latest-stories-section .mobile-feed{grid-column:1;grid-row:2}
/* Left upcoming panel — sticky so it stays visible while feed scrolls */
.feed-left-panel{
  grid-column:1;
  grid-row:1 / 3;
  position:sticky;
  top:calc(var(--chrome-h) + 12px);
  align-self:start;
  max-height:calc(100vh - var(--chrome-h) - 24px);
  overflow-y:auto;
  scrollbar-width:none;
}
.feed-left-panel::-webkit-scrollbar{display:none}
@media(max-width:820px){
  .latest-stories-section{display:block}
  .feed-left-panel{display:none}
}

/* Latest Stories — vertical feed only, horizontal rail removed */
.desktop-rail{display:none!important}
.mobile-feed{display:block}
.feed-item{
  display:flex;gap:14px;
  padding:16px 0;
  border-bottom:1px solid #f0f0f0;
  text-decoration:none;color:inherit;
  align-items:flex-start;
}
.feed-item:last-child{border-bottom:none}
.feed-item:hover .feed-title{color:var(--green)}
.feed-img{
  flex:0 0 48%;
  aspect-ratio:16/9;
  border-radius:8px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  font-size:3rem;background:#eee;
  background-size:cover;background-position:center;
}
.feed-body{flex:1;min-width:0;padding-top:2px}
.feed-cat{font-size:0.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.feed-title{font-size:1.15rem;font-weight:700;color:var(--t1);line-height:1.35;transition:color .15s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feed-meta{font-size:0.78rem;color:var(--t3);margin-top:7px;display:flex;align-items:center;gap:6px}
.feed-ad{padding:12px 0;border-bottom:1px solid #f0f0f0}
@media(max-width:600px){
  .feed-img{flex:0 0 138px;width:138px;height:134px;aspect-ratio:unset;font-size:2.4rem;border-radius:9px}
  /* card body = header colour; only the text block is white. Thin frame — image + text fill the card. */
  .feed-item{
    gap:5px;padding:4px;align-items:stretch;
    background:var(--panel);border:1px solid rgba(0,0,0,.06);border-radius:12px;
    box-shadow:0 2px 10px rgba(0,0,0,.06);margin-bottom:12px;border-bottom:none;
  }
  html.dark .feed-item{background:var(--panel);border-color:#30363d}
  .feed-body{padding:5px 10px 8px;background:#fff;border-radius:9px;display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
  html.dark .feed-body{background:#0d1117}
  .feed-title{font-size:0.9rem;-webkit-line-clamp:5;line-height:1.3}
  /* smaller category + source text, bigger source icon */
  .feed-cat{font-size:0.64rem;margin-bottom:4px;text-align:center}
  .feed-meta{font-size:0.68rem;gap:7px;margin-top:6px;justify-content:center}
  .src-icon{width:20px;height:20px}
}
/* sidebar widgets woven into the mobile feed */
.feed-widget{padding:12px 0;border-bottom:1px solid #f0f0f0}
.feed-widget .sb-card{border:none;padding:0;margin-top:0}
.feed-widget .weather-card{border-radius:10px}

/* Upcoming matches fixture list */
.fixture-list{display:flex;flex-direction:column;gap:2px}
.fixture{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:inherit;background:#fafafa;margin-bottom:6px;border:1px solid #f0f0f0}
.fixture:hover{background:#f2f7f2}
.fix-comp{font-size:0.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--green);margin-bottom:4px}
.fix-teams{display:flex;align-items:center;gap:8px;font-size:0.9rem;font-weight:600;color:var(--t1)}
.fix-v{font-size:0.72rem;font-weight:400;color:var(--t3)}
.fix-when{font-size:0.74rem;color:var(--t3);margin-top:4px}
.fix-more{display:inline-block;margin-top:8px;font-size:0.8rem;font-weight:600;color:var(--green);text-decoration:none}

/* Today in Jamaica left panel */
.today-list{display:flex;flex-direction:column;gap:2px}
.today-item{display:flex;align-items:center;gap:10px;padding:8px 6px;text-decoration:none;color:inherit;border-radius:7px;border-bottom:1px solid #f5f5f5}
.today-item:hover{background:#f8fdf8}
.today-item:last-child{border-bottom:none}
.today-icon{font-size:1.2rem;flex-shrink:0;width:28px;text-align:center}
.today-body{min-width:0}
.today-label{font-size:0.82rem;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-sub{font-size:0.72rem;color:var(--t3);margin-top:1px}
.today-up{color:#27ae60;font-weight:600}

/* Gwaan Network links */
.network-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.net-link{display:inline-flex;align-items:center;gap:4px;font-size:0.78rem;font-weight:600;text-decoration:none;color:var(--t1);background:#f5f5f5;padding:5px 9px;border-radius:16px;border:1px solid #e8e8e8;transition:background .15s,color .15s}
.net-link:hover{background:#e8f5e9;color:var(--green);border-color:#c8e6c9}

/* Gwaan Watch video card */
.watch-card{display:block;text-decoration:none;color:inherit;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--card)}
.watch-thumb{position:relative;height:170px;display:flex;align-items:center;justify-content:center}
.watch-play{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.9);color:#1a1a2e;display:flex;align-items:center;justify-content:center;font-size:1.3rem;padding-left:4px}
.watch-dur{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.8);color:#fff;font-size:0.7rem;font-weight:600;padding:2px 6px;border-radius:4px}
.watch-badge{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.6);color:#fff;font-size:0.68rem;font-weight:700;padding:3px 8px;border-radius:12px}
.watch-body{padding:12px 14px}
.watch-cat{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8e44ad;margin-bottom:4px}
.watch-title{font-size:0.95rem;font-weight:600;color:var(--t1);line-height:1.4}
.watch-meta{font-size:0.74rem;color:var(--t3);margin-top:5px}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.story-card{background:var(--card);border-radius:var(--r);border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:box-shadow .18s,transform .18s}
.story-card:hover{box-shadow:0 4px 18px rgba(0,0,0,.11);transform:translateY(-1px)}
.sc-img{height:88px;display:flex;align-items:center;justify-content:center;font-size:2.2rem;background:linear-gradient(135deg,#eef6ff,#d8f3e8)}
.sc-body{padding:9px 10px 11px}
.sc-src{font-size:0.64rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.sc-title{font-size:0.8rem;font-weight:600;color:var(--t1);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ── SECTION ── */
.section{margin-top:16px}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sec-title{font-size:0.9rem;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:7px}
.sec-title::before{content:'';display:inline-block;width:3px;height:15px;background:var(--yellow);border-radius:2px}
.sec-more{font-size:0.76rem;color:var(--green);font-weight:600;cursor:pointer}
.sec-more:hover{text-decoration:underline}

/* ── LOTTERY — compact autoscroll ── */
.lottery-card{
  background:linear-gradient(135deg,#0b1a0b,#1a3a1a);
  border-radius:12px;padding:14px 16px;color:#fff;
  overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;
}
.lottery-card::-webkit-scrollbar{width:4px}
.lottery-card::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}
.lot-header{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.lot-title{font-size:0.88rem;font-weight:700}
.lot-badge{background:#f1c40f;color:#000;font-size:0.6rem;font-weight:700;padding:2px 7px;border-radius:10px;letter-spacing:.03em}
.lot-sub{font-size:0.68rem;color:rgba(255,255,255,.45);margin-bottom:12px}
.lot-game{margin-bottom:10px}
.lot-game-name{font-size:0.66rem;font-weight:700;color:#f1c40f;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.balls{display:flex;gap:5px;flex-wrap:wrap}
.ball{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;flex-shrink:0}
.ball-r{background:#e74c3c;color:#fff}
.ball-g{background:#27ae60;color:#fff}
.ball-y{background:#f1c40f;color:#000}
.ball-b{background:#3498db;color:#fff}
.ball-w{background:#fff;color:#111;border:2px solid #ccc}
.lot-bonus{font-size:0.68rem;color:rgba(255,255,255,.6);margin-top:4px}
.lot-divider{border:none;border-top:1px solid rgba(255,255,255,.1);margin:8px 0}
.lot-footer{font-size:0.64rem;color:rgba(255,255,255,.32)}

/* ── FINANCE ── */
.fin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.fin-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:10px 13px;transition:box-shadow .15s}
.fin-item:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.fin-name{font-size:0.7rem;color:var(--t3);font-weight:600;margin-bottom:3px}
.fin-val{font-size:1.05rem;font-weight:700;color:var(--t1);margin-bottom:1px}
.fin-chg{font-size:0.73rem;font-weight:600}
.fin-chg.up{color:#1a7a40}
.fin-chg.dn{color:#c0392b}

/* ── LIFESTYLE GRID ── */
.life-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.life-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:box-shadow .18s,transform .18s}
.life-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.1);transform:translateY(-1px)}
.lc-img{height:80px;display:flex;align-items:center;justify-content:center;font-size:2.2rem}
.lc-body{padding:8px 10px 10px}
.lc-cat{font-size:0.62rem;font-weight:700;color:#e07b00;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.lc-title{font-size:0.78rem;font-weight:600;color:var(--t1);line-height:1.3}

/* ── SCROLLING STORY RAIL ── */
.story-rail-wrap{position:relative;margin-top:0}
.story-rail{
  display:flex;gap:12px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:4px;
  -webkit-overflow-scrolling:touch;
}
.story-rail::-webkit-scrollbar{display:none}
.rail-card{
  flex:0 0 220px;scroll-snap-align:start;
  background:var(--card);border-radius:10px;
  border:1px solid var(--border);overflow:hidden;
  cursor:pointer;transition:box-shadow .18s,transform .18s;
  text-decoration:none;color:inherit;
}
.rail-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.12);transform:translateY(-2px)}
.rail-img{
  height:130px;display:flex;align-items:center;
  justify-content:center;font-size:3rem;
  position:relative;overflow:hidden;
}
.rail-img-label{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to top,rgba(0,0,0,.7),transparent);
  padding:18px 8px 6px;
}
.rail-cat{
  display:inline-block;font-size:0.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
  background:var(--yellow);color:#111;
  padding:1px 6px;border-radius:3px;
}
.rail-body{padding:9px 10px 12px}
.rail-src{font-size:0.62rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.rail-title{font-size:0.82rem;font-weight:600;color:var(--t1);line-height:1.35}
.rail-time{font-size:0.68rem;color:var(--t3);margin-top:5px}

/* ── TOP STORIES TWO-COLUMN ── */
.ts-wrap{display:grid;grid-template-columns:1fr 180px;gap:12px;align-items:stretch}
.ts-list{display:flex;flex-direction:column}
.ts-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #f0f0f0;cursor:pointer;text-decoration:none;color:inherit}
.ts-item:last-child{border-bottom:none}
.ts-item:hover .ts-title{color:var(--green)}
.ts-num{font-size:1.4rem;font-weight:700;color:#e0e0e0;min-width:26px;line-height:1.1;flex-shrink:0}
.ts-body{flex:1}
.ts-cat{font-size:0.62rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.ts-title{font-size:0.84rem;font-weight:600;color:var(--t1);line-height:1.36;transition:color .15s}
.ts-meta{font-size:0.68rem;color:var(--t3);margin-top:2px}
.ts-ad{background:#f3f3f3;border:1px dashed #ccc;border-radius:var(--r);display:flex;align-items:center;justify-content:center;overflow:hidden;height:100%;min-width:0}

/* ── AD SLOT ── */
.ad-slot{background:#f8f8f8;border:1px dashed #ccc;border-radius:var(--r);height:84px;display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:600;color:#bbb;text-transform:uppercase;letter-spacing:.08em;margin-top:14px}

/* ── DUMMY TEST-AD CREATIVE (design-time placeholder that looks like a real ad) ── */
.test-ad{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:100%;border-radius:var(--r);overflow:hidden;cursor:pointer;color:#fff;padding:12px 14px;background:linear-gradient(120deg,#3a1c71,#d76d77,#ffaf7b);text-decoration:none}
.test-ad::after{content:'Ad';position:absolute;top:4px;right:6px;font-size:0.55rem;font-weight:700;background:rgba(255,255,255,.85);color:#333;padding:1px 5px;border-radius:3px;letter-spacing:.03em}
.test-ad-icon{font-size:1.8rem;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.test-ad-body{min-width:0}
.test-ad-title{font-size:0.86rem;font-weight:800;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.test-ad-sub{font-size:0.68rem;opacity:.9;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.test-ad-cta{margin-top:5px;display:inline-block;font-size:0.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:rgba(0,0,0,.25);padding:3px 8px;border-radius:10px}
/* vertical variant for the tall Top-Stories slot */
.test-ad.vertical{flex-direction:column;justify-content:center;text-align:center;background:linear-gradient(160deg,#0f2027,#203a43,#2c5364)}
.test-ad.vertical .test-ad-sub{white-space:normal}

/* ── SIDEBAR ── */
.weather-card{background:linear-gradient(135deg,#1565c0,#0288d1);border-radius:12px;padding:16px;color:#fff}
.wc-loc{font-size:0.73rem;font-weight:700;opacity:.8;margin-bottom:4px}
.wc-temp{font-size:2.6rem;font-weight:700;line-height:1}
.wc-desc{font-size:0.82rem;opacity:.85;margin-bottom:6px}
.wc-detail{font-size:0.72rem;opacity:.7}
.wc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}
.wc-day-col{text-align:center}
.wc-day{font-size:0.64rem;font-weight:700;opacity:.7;margin-bottom:2px}
.wc-icon{font-size:1.15rem;margin-bottom:1px}
.wc-hi{font-size:0.8rem;font-weight:700}
.wc-lo{font-size:0.7rem;opacity:.6}

.sb-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;margin-top:12px}
.sb-title{font-size:0.84rem;font-weight:700;color:var(--t1);margin-bottom:11px;display:flex;align-items:center;gap:7px}

/* Lottery "Results" header with icon + centered tab row (Yahoo Games style) */
.lotto-head-icon{display:flex;align-items:center;gap:7px;font-size:0.95rem;font-weight:800;color:var(--t1);margin-bottom:10px}
.lotto-head-icon .li-emoji{font-size:1.1rem}
.lotto-tabs{display:flex;justify-content:center;gap:22px;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:10px}
.lotto-tab{
  background:none;border:none;cursor:pointer;
  font-size:0.85rem;font-weight:600;color:var(--t3);
  padding:2px 0;position:relative;
  font-family:inherit;transition:color .15s;
}
.lotto-tab.active{color:#7b2fbe;font-weight:700}
.lotto-tab.active::after{
  content:'';position:absolute;left:0;right:0;bottom:-11px;
  height:2px;background:#7b2fbe;border-radius:2px;
}
html.dark .lotto-tabs{border-color:#30363d}
html.dark .lotto-tab{color:#8b949e}
html.dark .lotto-tab.active{color:#c084fc}
html.dark .lotto-tab.active::after{background:#c084fc}
.sb-title::before{content:'';display:inline-block;width:3px;height:13px;background:#f1c40f;border-radius:2px}

/* Sidebar lottery — multi-provider scrolling carousel */
.lotto-carousel{position:relative}
.lotto-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:10px}
.lotto-track::-webkit-scrollbar{display:none}
.lotto-pane{
  flex:0 0 100%;scroll-snap-align:start;
  padding:12px 14px;color:#fff;
  max-height:340px;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;
}
.lotto-pane::-webkit-scrollbar{width:3px}
.lotto-pane::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.lotto-pane.sv{background:linear-gradient(135deg,#0b1a0b,#1a3a1a)}
.lotto-pane.iz{background:linear-gradient(135deg,#1a0b1a,#3a1a3a)}
.lotto-pane.lp{background:linear-gradient(135deg,#0b1420,#1a3050)}
.sbl-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.sbl-title{font-size:0.8rem;font-weight:700}
.sbl-badge{background:#f1c40f;color:#000;font-size:0.58rem;font-weight:700;padding:1px 6px;border-radius:8px}
.sbl-date{font-size:0.65rem;color:rgba(255,255,255,.4);margin-bottom:10px}
.sbl-game{margin-bottom:9px}
.sbl-name{font-size:0.62rem;font-weight:700;color:#f1c40f;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}
.sbl-balls{display:flex;gap:4px;flex-wrap:wrap}
.sb-ball{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:700;flex-shrink:0}
.sb-ball-r{background:#e74c3c;color:#fff}
.sb-ball-g{background:#27ae60;color:#fff}
.sb-ball-y{background:#f1c40f;color:#000}
.sb-ball-b{background:#3498db;color:#fff}
.sb-ball-w{background:#fff;color:#111;border:1.5px solid #ccc}
.sb-ball-p{background:#9b59b6;color:#fff}
.sbl-bonus{font-size:0.64rem;color:rgba(255,255,255,.55);margin-top:3px}
.sbl-next{font-size:0.62rem;color:rgba(255,255,255,.3);margin-top:8px;border-top:1px solid rgba(255,255,255,.08);padding-top:7px}

/* Trending */
.trend-item{display:flex;align-items:flex-start;gap:8px;padding:7px 0;border-bottom:1px solid #f5f5f5;cursor:pointer}
.trend-item:last-child{border-bottom:none}
.trend-item:hover .trend-title{color:var(--green)}
.trend-num{font-size:1.15rem;font-weight:700;color:#ddd;min-width:23px;line-height:1.2}
.trend-title{font-size:0.81rem;font-weight:600;color:var(--t1);line-height:1.3;transition:color .15s}
.trend-badge{display:inline-block;background:#fff3cd;color:#856404;font-size:0.58rem;font-weight:700;padding:1px 5px;border-radius:3px;margin-left:4px}
.trend-sub{font-size:0.68rem;color:var(--t3);margin-top:1px}

/* Sports */
.sport-match{background:#f8f9fa;border-radius:var(--r);padding:10px;margin-bottom:9px}
.sport-match:last-child{margin-bottom:0}
.sport-league{font-size:0.65rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.sport-teams{display:flex;align-items:center;justify-content:space-between}
.sport-team{text-align:center;flex:1}
.sport-flag{font-size:1.4rem;margin-bottom:2px}
.sport-team-name{font-size:0.76rem;font-weight:600;color:var(--t1)}
.sport-score{font-size:1.35rem;font-weight:700;padding:0 10px;color:var(--t1);text-align:center;line-height:1.2}
.sport-vs{font-size:0.62rem;color:#aaa;display:block}
.sport-status{text-align:center;font-size:0.69rem;color:var(--t3);margin-top:5px;font-weight:600}
.sport-status.live{color:#e74c3c}

/* ── FOOTER ── */
.main-footer{background:#fff;border-top:1px solid var(--border);padding:20px 16px;margin-top:28px}
.footer-inner{max-width:var(--max);margin:0 auto}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:10px}
.footer-links a{font-size:0.76rem;color:var(--t3);cursor:pointer;transition:color .15s}
.footer-links a:hover{color:var(--green)}
.footer-divider{width:100%;height:1px;background:#f0f0f0;margin-bottom:10px}
.footer-copy{text-align:center;font-size:0.72rem;color:var(--t3)}

/* ══ MOBILE OVERRIDES (placed last so they win the cascade) ══ */
@media(max-width:600px){
  /* subtle dark shade behind hero text for readability over busy images */
  .hero-content{
    background:linear-gradient(to top,rgba(0,0,0,.55) 0%,rgba(0,0,0,.25) 70%,transparent 100%);
    border-radius:0 12px 0 0;
    padding:16px 16px 14px;
    width:100%;
  }
  /* ---- Hard guarantee: nothing exceeds the device width ---- */
  html,body{overflow-x:clip;width:100%;max-width:100%}
  :root{--surround:#ffffff}                 /* white behind the card on mobile (light mode) */
  .site-card{width:calc(100% - 16px);margin:8px auto;border-radius:14px}
  .site-card .page{margin-top:10px}
  .page{padding:0 6px}                 /* minimal gutter — content nearly fills the card */
  .page > main, .page > aside{min-width:0;max-width:100%}

  /* ---- Topbar (mobile): account left · logo centered · settings + apps right ---- */
  .topbar-inner{
    grid-template-columns:1fr auto 1fr;
    column-gap:8px;
    row-gap:8px;
    padding:10px 12px;
  }
  .head-left{grid-column:1;grid-row:1;justify-self:start;gap:8px;min-width:0}
  .logo-box{grid-column:2;grid-row:1;justify-self:center}
  .corner{grid-column:3;grid-row:1;justify-self:end;width:auto;gap:6px;min-width:0}
  .brand-text{font-size:1.6rem}
  .apps-btn{width:38px;height:38px}
  .corner .settings-wrap,.corner .apps-wrap{margin-left:0}   /* cluster the two at the right */
  .gear-btn{width:32px;height:32px}
  .gear-btn svg{width:22px;height:22px}
  .pa-btn{height:32px;padding:0 3px;gap:4px}
  .pa-btn img{width:20px;height:20px}
  .pa-btn .pa-txt{font-size:0.78rem}
  .pa-full{display:none}      /* mobile shows just "PA" */
  .pa-short{display:inline}
  .acct-btn{width:38px;height:38px}
  .acct-btn .acct-ic{width:20px;height:20px}
  /* dropdowns as fixed sheets so the card's overflow:hidden can't clip them */
  .settings-panel{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:none}
  .apps-panel{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:none}
  .theme-grid{grid-template-columns:repeat(4,1fr)}

  /* Lottery companies row — fit all three across a phone */
  .lotto-nav{gap:7px}
  .lotto-brand{height:46px;padding:5px 9px;border-radius:10px;flex:1 1 0;max-width:120px}
  .lotto-brand img{height:30px;max-width:100%}

  /* Utility bar on its own row: hide the date/weather chip, search fills the width, no magnifier button */
  .util-bar{grid-column:1 / -1;grid-row:2;display:block;width:100%}
  .util-left,.util-right{display:none}
  .util-bar .top-search{width:100%;max-width:100%;margin:0}
  .top-search .sbtn{display:none}
  .top-search input{padding:9px 14px;font-size:0.85rem}

  /* Carousel — proportional shape, never wider than screen */
  /* Hero ad banner — full width on mobile */
  /* On mobile the weave already drops an ad after the hero stories,
     so hide the fixed banner to avoid two ads back-to-back. */
  .hero-ad-banner{display:none}
  .hero-wrap{display:flex;flex-direction:column;gap:12px}
  .hw-carousel{height:auto}
  .hw-carousel .hero-carousel{height:auto;aspect-ratio:4/3;max-width:100%}
  /* Hero stories stack vertically on mobile, styled like feed stories */
  .hw-cards{
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .hw-card{
    flex:none !important;
    width:100%;min-width:0;
    grid-column:auto !important;grid-row:auto !important;
    flex-direction:row !important;
    align-items:stretch;             /* image + white text block match height */
    gap:5px;
    padding:4px !important;
    margin-bottom:12px;
    background:var(--panel) !important;   /* inherit header colour */
    border:1px solid rgba(0,0,0,.06) !important;
    border-bottom:1px solid rgba(0,0,0,.06) !important;
    border-radius:12px !important;
    box-shadow:0 2px 10px rgba(0,0,0,.06) !important;
  }
  html.dark .hw-card{background:var(--panel) !important;border-color:#30363d !important}
  .hw-card .sc-img{flex:0 0 138px;width:138px;height:134px;min-height:134px;max-height:134px;margin:0;border-radius:9px}
  .hw-card .sc-body{padding:5px 10px 8px !important;background:#fff;border-radius:9px;display:flex;flex-direction:column;justify-content:flex-start}
  html.dark .hw-card .sc-body{background:#0d1117}
  .hw-card .sc-body{flex:1;min-width:0;padding:0}
  .hw-card .sc-title{font-size:0.9rem;-webkit-line-clamp:5;line-height:1.3}
  .hw-card .sc-cat{font-size:0.64rem;margin-bottom:4px;text-align:center}
  .hw-card .sc-meta{font-size:0.68rem;gap:7px;margin-top:6px;justify-content:center}

  /* Show the woven non-story sections in the mobile vertical flow */
  .feed-woven{display:block;padding:14px 0;border-bottom:1px solid var(--border)}
  .feed-woven .sb-card,.feed-woven .weather-card,.feed-woven .watch-card{margin:0}
  .feed-woven .sb-card{border:none;padding:0}
  .hero-carousel{height:auto;aspect-ratio:4/3;max-width:100%}
  .hero-headline{font-size:1.05rem;line-height:1.2}

  /* ── Mobile: swipe-card carousel with visible nav arrows ── */
  .hero-carousel{perspective:none;overflow:hidden}
  .hero-track{
    display:flex !important;
    /* pin inside the 4px cream frame so iOS's scroll layer can't overrun the bottom border */
    position:absolute;inset:4px;height:auto;width:auto;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .hero-track::-webkit-scrollbar{display:none}
  .hero-slide{
    position:relative !important;
    inset:auto !important;
    flex:0 0 100% !important;
    width:100% !important;
    height:100% !important;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    transform:none !important;
    opacity:1 !important;
    transition:none !important;
    backface-visibility:visible !important;
    z-index:1 !important;
    pointer-events:auto !important;
  }
  .hero-slide.leaving,.hero-slide.entering{
    transform:none !important;opacity:1 !important;
  }

  /* Nav arrows — visible on mobile, vertically centered, conditionally shown */
  .hero-arrows{
    display:flex !important;
    position:absolute;top:50%;left:0;right:0;
    transform:translateY(-50%);
    justify-content:space-between;
    padding:0 10px;
    z-index:4;
    gap:0;
  }
  .hero-arrow{
    width:30px;height:30px;
    background:transparent;
    border:2px solid #fff;
    opacity:1;transition:opacity .2s;
  }
  .hero-arrow svg{width:19px;height:19px;stroke-width:3}
  .hero-arrow.is-hidden{opacity:0;pointer-events:none}

  /* center the swipe dots at the bottom */
  .hero-dots{left:50%;right:auto;transform:translateX(-50%);bottom:10px;background:rgba(0,0,0,.35);padding:5px 9px;border-radius:12px}
  .hero-dots .dot{width:7px;height:7px}

  /* Story strip — horizontal scroll row on mobile */
  .strip{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:10px;
    grid-template-columns:unset;
  }
  .strip::-webkit-scrollbar{display:none}
  .story-card{
    flex:0 0 150px;
    scroll-snap-align:start;
    min-width:150px;
  }
  /* Top Stories — 2 columns x 3 rows, slim horizontal ad banner below */
  .ts-wrap{display:block}
  .ts-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-auto-flow:column;
    grid-template-rows:repeat(3,auto);
    column-gap:12px;
    margin-bottom:10px;
  }
  .ts-item{
    padding:8px 0;
    border-bottom:1px solid #f0f0f0;
  }
  .ts-num{font-size:1.15rem;min-width:20px}
  .ts-title{font-size:0.78rem;line-height:1.3}
  .ts-ad{
    writing-mode:horizontal-tb;
    text-orientation:initial;
    height:70px;
    min-height:0;
    width:100%;
    padding:10px;
  }
}

/* ── Section-page category logo lockup: "Gwaan ! <Category>" ── */
.brand-bang{font-weight:bold;display:inline-block;margin:0 6px 0 8px;background:linear-gradient(to bottom,#f1c40f 60%,#27ae60 40%);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-badge{display:inline-flex;align-items:center;color:#fff;font-weight:700;font-size:0.72em;border-radius:7px;padding:2px 10px;margin-left:3px;
  text-shadow:-.5px -.5px 0 rgba(0,0,0,.28),.5px -.5px 0 rgba(0,0,0,.28),-.5px .5px 0 rgba(0,0,0,.28),.5px .5px 0 rgba(0,0,0,.28)}
/* Travel nav item (replaces Weather in the nav) */
.nav-travel    {color:#0288d1}
.nav-travel:hover,.nav-travel.active{color:#0277bd}

/* ── Gwaan ! Bet — lottery result cards ── */
.svl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.gcard{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 15px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
html.dark .gcard{background:#161b22;border-color:#30363d}
.gc-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:2px}
.gc-name{font-size:1rem;font-weight:800;color:var(--t1)}
.gc-sched{font-size:.66rem;font-weight:600;color:var(--t3);white-space:nowrap}
.gc-when{font-size:.72rem;font-weight:700;color:#8e44ad;margin:6px 0 10px}
html.dark .gc-when{color:#c39bE0}
.balls{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.ball{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;color:#fff;flex-shrink:0}
.b-p{background:#8e44ad}.b-g{background:#27ae60}.b-y{background:#f1c40f;color:#3a2f00}.b-r{background:#c0392b}
.b-bonus{background:#fff;color:#8e44ad;border:2px solid #8e44ad}
html.dark .b-bonus{background:#161b22}
.ball-sep{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--t3);margin:0 2px 0 4px;align-self:center}
.gc-empty{font-size:.8rem;color:var(--t3);padding:8px 0 2px;font-style:italic}
@media(max-width:600px){
  .svl-grid{grid-template-columns:1fr 1fr;gap:10px}
  .gcard{padding:11px 12px}
  .gc-name{font-size:.9rem}.gc-sched{display:none}
  .ball{width:30px;height:30px;font-size:.76rem}
}

/* ── Gwaan ! Bet — clickable cards, day lists, game page ── */
.svl-grid{align-items:start}
a.gcard{display:block;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .1s,border-color .15s}
a.gcard:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);transform:translateY(-1px);border-color:#8e44ad}
.gc-arrow{color:#8e44ad;font-weight:800}
.gc-draws{display:flex;flex-direction:column;gap:9px;margin-top:8px}
.gc-draw{display:flex;align-items:center;gap:10px}
.gc-time{flex:0 0 62px;font-size:.66rem;font-weight:800;color:var(--t3);text-transform:uppercase;letter-spacing:.02em}
html.dark .gc-time{color:#8b949e}

/* back link + game hero */
.back-link{display:inline-block;margin:2px 0 12px;font-size:.8rem;font-weight:700;color:#8e44ad;text-decoration:none}
.back-link:hover{text-decoration:underline}
.game-hero{margin-bottom:14px}
.gh-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;font-weight:700;color:var(--t1);line-height:1}
.gh-meta{font-size:.78rem;font-weight:600;color:var(--t3);margin-top:4px}

/* latest highlight card */
.latest-card{background:#fff;border:1px solid var(--border);border-left:5px solid #8e44ad;border-radius:14px;padding:16px 18px;box-shadow:0 3px 14px rgba(142,68,173,.14);margin-bottom:18px}
html.dark .latest-card{background:#161b22;border-color:#30363d;border-left-color:#8e44ad}
.lc-tag{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#8e44ad}
.lc-when{font-size:.8rem;font-weight:700;color:var(--t2);margin:2px 0 12px}
.balls-lg .ball{width:46px;height:46px;font-size:1.05rem}

/* day + history lists */
.day-list{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:4px 12px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
html.dark .day-list{background:#161b22;border-color:#30363d}
.day-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid rgba(0,0,0,.06)}
html.dark .day-row{border-bottom-color:#30363d}
.day-row:last-child{border-bottom:none}
.day-time{flex:0 0 72px;font-size:.72rem;font-weight:800;color:var(--t3);text-transform:uppercase}
.hist{display:flex;flex-direction:column;gap:14px}
.hist-day .hist-date{font-size:.82rem;font-weight:800;color:var(--t1);margin:0 0 6px 2px}

@media(max-width:600px){
  .balls-lg .ball{width:40px;height:40px;font-size:.95rem}
  .day-time{flex-basis:60px;font-size:.66rem}
  .gc-time{flex-basis:54px}
  .gh-name{font-size:1.7rem}
}
