:root{
  --navy:#0C2340; --navy-2:#143255; --gold:#C99700; --gold-lt:#E8B923;
  --bg:#F6F7F9; --card:#fff; --text:#12181F; --muted:#5A6570; --line:#E3E7EC;
  --accent:#0C2340;
  --pill-bg:rgba(201,151,0,.14); --pill-fg:#8A6800;
  --pillnavy-bg:rgba(12,35,64,.09); --pillnavy-fg:#143255;
  --nav-bg:rgba(255,255,255,.90); --nav-halo:rgba(12,35,64,.06);
  --row-press:#EFF2F6; --urgent:#B3202D; --urgent-line:rgba(179,32,45,.30);
  --shadow:0 1px 2px rgba(12,35,64,.06);
  --safe-b:env(safe-area-inset-bottom,0px);
}
/* System dark, unless the viewer explicitly chose light. */
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --bg:#0B1017;--card:#141C26;--text:#EAEFF5;--muted:#93A1B0;--line:#243040;--accent:#E8B923;--pill-bg:rgba(232,185,35,.16);--pill-fg:#E8B923;--pillnavy-bg:rgba(150,180,220,.14);--pillnavy-fg:#9FB8D4;--nav-bg:rgba(20,28,38,.92);--nav-halo:rgba(232,185,35,.11);--row-press:#1B2532;--urgent:#FF8A93;--urgent-line:rgba(255,138,147,.26);--shadow:0 1px 2px rgba(0,0,0,.35); } }
/* Explicit dark choice wins over a light OS. */
:root[data-theme="dark"]{ --bg:#0B1017;--card:#141C26;--text:#EAEFF5;--muted:#93A1B0;--line:#243040;--accent:#E8B923;--pill-bg:rgba(232,185,35,.16);--pill-fg:#E8B923;--pillnavy-bg:rgba(150,180,220,.14);--pillnavy-fg:#9FB8D4;--nav-bg:rgba(20,28,38,.92);--nav-halo:rgba(232,185,35,.11);--row-press:#1B2532;--urgent:#FF8A93;--urgent-line:rgba(255,138,147,.26);--shadow:0 1px 2px rgba(0,0,0,.35); }
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);
  font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  overscroll-behavior-y:none}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:40;background:var(--navy);color:#fff;
  padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 12px;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.brand{display:flex;align-items:center;gap:10px}
.dome{width:26px;height:26px;flex:none}
header h1{margin:0;font-size:19px;font-weight:700;letter-spacing:-.02em}
header p{margin:2px 0 0;font-size:12.5px;color:#A9BBD0;font-weight:500}
.srch{margin-top:11px;position:relative;display:none}
.srch.on{display:block}
.srch input{width:100%;padding:10px 12px 10px 36px;border-radius:10px;border:none;
  background:#fff;color:#12181F;font-size:16px;outline:none}
.srch svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);opacity:.45}

/* ---------- layout ---------- */
main{padding:14px 14px calc(86px + var(--safe-b));max-width:900px;margin:0 auto}
.view{display:none;animation:fade .18s ease}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
h2.sec{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
  margin:22px 0 9px;font-weight:700}
h2.sec:first-child{margin-top:4px}

.card{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:14px;margin-bottom:10px;box-shadow:var(--shadow)}
.card h3{margin:0 0 5px;font-size:15.5px;font-weight:650;letter-spacing:-.01em}
.card p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.52}
.card a{color:inherit;text-decoration:none}
a.card{display:block;color:inherit;text-decoration:none}
a.card:active{transform:scale(.995)}

.pill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:11px;
  font-weight:650;letter-spacing:.02em;background:var(--pill-bg);color:var(--pill-fg)}
.pill.navy{background:var(--pillnavy-bg);color:var(--pillnavy-fg)}
.pill.gold{background:var(--gold);color:#fff}
.pill.pill-warn{background:rgba(190,30,45,.12);color:#A8202E}
:root[data-theme="dark"] .pill.pill-warn,
:root:not([data-theme="light"]) .pill.pill-warn{color:#FF8A93}
.card.game{border-color:var(--gold);background:linear-gradient(180deg,rgba(201,151,0,.07),transparent)}
.card.game h3{font-size:18px}

/* urgent cards */
.card.urgent{border-color:rgba(190,30,45,.35);background:linear-gradient(180deg,rgba(190,30,45,.05),transparent)}
.tel{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:8px 13px;
  background:#BE1E2D;color:#fff!important;border-radius:9px;font-weight:650;font-size:14px;text-decoration:none}
.tel.alt{background:var(--navy)}

/* chips / filters */
.chips{display:flex;gap:7px;overflow-x:auto;padding:2px 0 9px;margin:0 -14px;
  padding-left:14px;padding-right:14px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:7px 13px;border-radius:99px;border:1px solid var(--line);
  background:var(--card);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}

/* map */
#map{height:calc(100vh - 250px);min-height:330px;border-radius:13px;border:1px solid var(--line);
  box-shadow:var(--shadow);background:var(--card)}
.leaflet-container{border-radius:13px;font:inherit}

/* events */
.ev{display:flex;gap:12px;align-items:flex-start}
.date{flex:none;width:50px;text-align:center;background:var(--navy);color:#fff;
  border-radius:9px;padding:6px 0;line-height:1.15}
.date .m{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-lt);font-weight:700}
.date .d{font-size:19px;font-weight:700}
.meta{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:5px;flex-wrap:wrap;align-items:center}

/* nav */
nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;
  background:var(--nav-bg);border-top:1px solid var(--line);
  padding-bottom:var(--safe-b);backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px)}
#navbar{position:absolute;top:-1px;left:0;height:3px;border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt));
  transition:transform .38s cubic-bezier(.34,1.2,.44,1),width .38s cubic-bezier(.34,1.2,.44,1);
  will-change:transform,width;pointer-events:none}
nav button{position:relative;flex:1;border:0;background:none;padding:9px 2px 8px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);
  font-size:10.5px;font-weight:650;font-family:inherit;
  transition:color .22s ease}
nav button svg{width:22px;height:22px;stroke-width:1.9;
  transition:transform .32s cubic-bezier(.34,1.4,.5,1),stroke-width .22s ease}
nav button span{transition:opacity .22s ease}
nav button.on{color:var(--accent)}
nav button.on svg{stroke-width:2.2}
nav button:active svg{transform:translateY(0) scale(.94)}
/* soft halo behind the active icon */
nav button.on svg{transform:translateY(-1.5px) scale(1.06)}

.empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:14px}
.count{font-size:12px;color:var(--muted);margin:0 0 10px}
.more{display:block;width:100%;padding:12px;margin-top:4px;border:1px solid var(--line);
  background:var(--card);border-radius:11px;font:inherit;font-weight:650;color:var(--accent);cursor:pointer}
/* Masthead: plain, no gradient, no photo. */
.mast{padding:2px 0 14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.mast h2{margin:0 0 4px;font-size:20px;letter-spacing:-.02em;font-weight:680}
.mast p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5;max-width:60ch}

/* List rows — the workhorse. Dividers, not a card per item. */
.list{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px;
  border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.row:last-child{border-bottom:0}
.row:active{background:var(--row-press)}
.row .rmain{flex:1;min-width:0}
.row .rt{font-size:14.5px;font-weight:600;line-height:1.35}
.row .rs{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.row .rr{flex:none;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.row .chev{flex:none;width:8px;height:8px;border-right:1.8px solid var(--muted);
  border-bottom:1.8px solid var(--muted);transform:rotate(-45deg);opacity:.55}

/* Call rows: urgent, but compact — not three big blocks. */
.calls{border:1px solid var(--urgent-line);border-radius:10px;overflow:hidden;background:var(--card)}
.call{display:flex;align-items:center;gap:12px;padding:11px 14px;
  border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.call:last-child{border-bottom:0}
.call .cn{flex:1;min-width:0}
.call .ct{font-size:14px;font-weight:620}
.call .cd{font-size:12px;color:var(--muted);margin-top:1px}
.call .cnum{flex:none;font-size:14px;font-weight:680;color:var(--urgent);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.call:active{background:var(--row-press)}

/* Section headings: sentence case, quiet. */
h2.sec{font-size:13px;letter-spacing:0;text-transform:none;color:var(--text);
  margin:24px 0 9px;font-weight:670}
h2.sec:first-child{margin-top:4px}
.sub{font-size:12.5px;color:var(--muted);margin:-5px 0 10px}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px;
  box-shadow:var(--shadow);cursor:pointer;text-align:left;font:inherit;color:inherit}
.tile b{display:block;font-size:17px;color:var(--accent);letter-spacing:-.02em}
.tile span{font-size:12px;color:var(--muted);font-weight:600}
.instbar{background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:13px;
  margin-bottom:14px;font-size:13px;color:var(--muted)}
.instbar b{color:var(--text)}

/* keyboard focus + reduced motion */
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2.5px solid var(--accent);outline-offset:2px;border-radius:8px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .view{animation:none}}
