/* TownTapestry — lean front end (index1.php). Standalone: no design.css/site.css underneath.
   Brand = one attribute on <html data-brand="…">; every color below derives from --accent. */

/* ---------- tokens ---------- */
:root{
  --bg:#fff; --surface:#f6f7f9; --line:#e6e8ec; --hair:#eff1f4;
  --ink:#0f1623; --ink-2:#2e3746; --muted:#5a6372; --faint:#949cab;
  --accent:#0e9f57; --accent-ink:#0b7f45; --accent-tint:#eafaf1; --accent-soft:#7fe0ad;
  --gA:#15803d; --gB:#4d7c0f; --gC:#b45309; --gD:#c2410c; --gF:#b91c1c;
  --good:#15803d; --bad:#b91c1c; --bar:#cfd4dc; --night:#121a26;
  --r:12px; --r-lg:16px; --hdr:64px; --nav:248px; --page:1192px;
  --sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
img{display:block;max-width:100%}
h1,h2,h3,h4{margin:0}
.num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:8px;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:14px;white-space:nowrap}
.btn:hover{border-color:#cdd2da}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn-glass{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(8px)}
.btn-glass:hover{background:rgba(255,255,255,.26);border-color:rgba(255,255,255,.5)}
.btn-sm{height:32px;padding:0 12px;font-size:13px}
.link{color:var(--accent-ink);font-weight:600}
.link:hover{text-decoration:underline}

/* ---------- header ---------- */
.hd{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);height:var(--hdr);display:flex;align-items:center;padding:0 20px 0 0}
.logo{width:var(--nav);padding-left:20px;display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em;white-space:nowrap;flex:none}
.logo .mk{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;flex:none}
.logo .mk svg{width:16px;height:16px}
.logo em{font-style:normal;color:var(--accent)}
.menu-btn{display:none;border:0;background:none;padding:8px;margin-left:8px;border-radius:8px}
.hd-search{flex:1;max-width:440px;position:relative;margin-left:4px}
.hd-search input{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px 0 38px;font:inherit;font-size:14.5px;background:var(--surface);color:var(--ink)}
.hd-search input:focus{outline:none;border-color:var(--accent);background:#fff}
.hd-search .ic{position:absolute;left:12px;top:11px;color:var(--faint)}
.hd-results{position:absolute;left:0;right:0;top:46px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,22,35,.12);padding:6px;display:none;z-index:40}
.hd-results.open{display:block}
.hd-results a{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;font-size:14px}
.hd-results a:hover,.hd-results a.on{background:var(--surface)}
.hd-results small{color:var(--muted)}
.hd-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.hd-user{font-weight:600;font-size:14px}

/* ---------- shell + sidebar ---------- */
.shell{display:grid;grid-template-columns:var(--nav) minmax(0,1fr);max-width:1480px}
.shell.no-nav{grid-template-columns:minmax(0,1fr);max-width:none}
.nav{position:sticky;top:var(--hdr);height:calc(100vh - var(--hdr));overflow-y:auto;border-right:1px solid var(--line);padding:16px 12px 24px;scrollbar-width:thin;display:flex;flex-direction:column;gap:2px;background:#fff}
.nav > *{flex-shrink:0}
.nav-town{display:flex;gap:10px;align-items:center;padding:6px 8px 14px;margin-bottom:6px;border-bottom:1px solid var(--hair)}
.nav-town .th{width:40px;height:40px;border-radius:10px;object-fit:cover;background:var(--accent-tint);flex:none;display:grid;place-items:center;color:var(--accent);font-weight:800}
.nav-town b{display:block;font-size:15px;letter-spacing:-.01em;line-height:1.25}
.nav-town span{font-size:12.5px;color:var(--accent-ink);font-weight:600}
.nav-grp{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px}
.nav-a{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:8px;font-size:14.5px;color:var(--ink-2);font-weight:500}
.nav-a:hover{background:var(--surface)}
.nav-a.on{background:var(--accent-tint);color:var(--accent-ink);font-weight:600}
.nav-a .ic{color:var(--faint)}
.nav-a.on .ic{color:var(--accent)}
.nav-a .meta{margin-left:auto;font-size:12px;color:var(--faint);font-weight:500;white-space:nowrap;max-width:84px;overflow:hidden;text-overflow:ellipsis}
.nav-a .star{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:auto}
.nav-toc{display:flex;flex-direction:column;border-left:2px solid var(--hair);margin:2px 0 4px 18px}
.nav-toc a{font-size:13.5px;color:var(--muted);padding:5px 12px;margin-left:-2px;border-left:2px solid transparent}
.nav-toc a:hover{color:var(--ink)}
.nav-toc a.on{color:var(--ink);border-left-color:var(--accent);font-weight:600}
.nav-post{margin:16px 6px 0;height:40px}
.nav-foot{font-size:12px;color:var(--faint);padding:16px 10px 0;display:flex;gap:10px;flex-wrap:wrap}
.nav-foot a:hover{color:var(--ink)}
.scrim{display:none}

/* ---------- page ---------- */
.page{min-width:0;padding:24px 32px 64px;max-width:var(--page)}
.sec{scroll-margin-top:calc(var(--hdr) + 20px)}
.notice{background:var(--accent-tint);border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:16px}
.demo{background:#fff7e6;color:#7a4b00}

/* ---------- hero ---------- */
.hero{position:relative;border-radius:18px;overflow:hidden;min-height:440px;display:flex;align-items:flex-end;color:#fff;background:#24302a}
.hero > img.bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,12,20,.3) 0%,rgba(8,12,20,0) 30%,rgba(8,12,20,.05) 50%,rgba(8,12,20,.8) 100%);pointer-events:none}
.hero.sepia > img.bgimg{filter:sepia(.35) contrast(1.02)}
.hero-top{position:absolute;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;z-index:2;gap:8px}
.crumb{font-size:13px;display:flex;gap:6px;align-items:center;background:rgba(8,12,20,.38);backdrop-filter:blur(8px);padding:6px 11px;border-radius:999px;white-space:nowrap}
.crumb a:hover{text-decoration:underline}
.hero-acts{display:flex;gap:8px}
.hero-body{position:relative;z-index:2;padding:28px 30px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;width:100%}
.hero h1{font-size:72px;line-height:.95;letter-spacing:-.045em;font-weight:800}
.hero h1 small{font-size:.4em;font-weight:600;letter-spacing:-.02em;opacity:.85;margin-left:8px}
.hero .kick{color:rgba(255,255,255,.85);margin-bottom:8px;display:block}
.lede{font-size:17px;max-width:600px;margin:12px 0 0;color:rgba(255,255,255,.93);line-height:1.45}
.hero-map{flex:none;width:230px;background:rgba(255,255,255,.96);color:var(--ink);border-radius:14px;padding:10px 10px 8px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.hero-map svg{width:100%;height:auto;display:block}
.hero-map .cap{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;padding:2px 4px 0}
.credit{position:absolute;right:14px;bottom:8px;z-index:2;font-size:11px;color:rgba(255,255,255,.7)}
.credit a{text-decoration:underline}
/* map hero: no photo → the town and its neighbors, drawn */
.hero.maphero{background:linear-gradient(160deg,var(--accent-tint),#fff 60%);color:var(--ink);border:1px solid var(--line)}
.hero.maphero::after{display:none}
.hero.maphero .bgmap{position:absolute;right:-2%;top:4%;bottom:4%;width:62%;opacity:1}
.hero.maphero .bgmap svg{width:100%;height:100%}
.hero.maphero .bgmap.solo{right:6%;top:14%;bottom:14%;width:34%}
.hero.maphero .bgmap.solo .me{fill:var(--accent);fill-opacity:.9;filter:drop-shadow(0 10px 24px rgba(15,22,35,.18))}
.hero.maphero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(15,22,35,.07) 1px,transparent 1px);background-size:18px 18px;pointer-events:none}
.hero.maphero .lede{color:var(--muted)}
.hero.maphero .crumb{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.hero.maphero .kick{color:var(--accent-ink)}
.hero.maphero .hero-body{max-width:56%}

/* neighbor maps */
.nbmap .o{fill:#eef0f3;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.nbmap a:hover .o{fill:#dde1e7}
.nbmap .me{fill:var(--accent);stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.maphero .nbmap .o{fill:#fff;stroke:var(--line)}

/* ---------- vitals ---------- */
.vitals{display:grid;grid-template-columns:repeat(var(--n,5),1fr);border-bottom:1px solid var(--line)}
.vital{padding:18px 20px 18px 0;min-width:0}
.vital + .vital{padding-left:20px;border-left:1px solid var(--hair)}
.vital .k{font-size:12.5px;color:var(--muted);font-weight:500}
.vital .v{font-size:26px;font-weight:600;margin-top:2px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vital .d{font-size:12.5px;color:var(--faint)}
.up{color:var(--good)} .down{color:var(--bad)}

/* ---------- section heads ---------- */
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:44px 0 16px}
.sh h2{font-size:26px;letter-spacing:-.03em;font-weight:700}
.sh p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.sh > a{font-size:14px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.why{font-size:12.5px;color:var(--faint);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.kick{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink)}

/* ---------- standouts ---------- */
.stand{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.stand.n3{grid-template-columns:1.25fr 1fr 1fr}
.stand.n1{grid-template-columns:minmax(0,560px)}
.stand.n2{grid-template-columns:1fr 1fr}
.sc{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;background:#fff;transition:box-shadow .15s,border-color .15s}
.sc:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.sc .vis{height:190px;background:var(--surface);position:relative;overflow:hidden}
.sc .vis img{width:100%;height:100%;object-fit:cover}
.sc .bd{padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px;flex:1}
.sc .big{font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.05}
.sc .big em{font-style:normal;color:var(--accent)}
.sc .t{font-size:15px;font-weight:600}
.sc .c{font-size:13px;color:var(--muted);margin-top:auto;padding-top:8px}
.tag{position:absolute;left:12px;bottom:12px;background:rgba(15,22,35,.72);color:#fff;font-size:11.5px;padding:4px 9px;border-radius:999px;backdrop-filter:blur(6px)}
.pctvis{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:22px}
.dots{display:grid;grid-template-columns:repeat(20,1fr);gap:4px}
.dots i{aspect-ratio:1;border-radius:50%;background:#d7dbe2}
.dots i.on{background:var(--accent)}
.dots i.me{background:var(--ink);box-shadow:0 0 0 3px #fff,0 0 0 4px var(--ink)}
.pctvis .lg{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:12px}
.bignum{position:absolute;inset:0;display:grid;place-items:center;font-size:84px;font-weight:800;letter-spacing:-.05em;color:var(--accent)}
.bignum small{display:block;font-size:13px;letter-spacing:0;color:var(--muted);font-weight:600;text-align:center}

/* ---------- report card ---------- */
.rc{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}
.tile{border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px;min-height:128px;background:#fff;transition:border-color .15s,box-shadow .15s}
.tile:hover{border-color:#c9ced7;box-shadow:0 2px 10px rgba(15,22,35,.05)}
.tile .t{font-size:13px;font-weight:600;color:var(--muted)}
.tile .c{font-size:12px;color:var(--muted);line-height:1.35;margin-top:auto}
.tok{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1;white-space:nowrap}
.rc .tok{font-size:24px}
.tok small{font-size:14px;color:var(--faint);font-weight:600}
.badge{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:10px;color:#fff;font-weight:800;font-size:22px;letter-spacing:-.02em;background:var(--faint)}
.badge.xs{width:26px;height:26px;font-size:13px;border-radius:6px}
.badge.ga{background:var(--gA)} .badge.gb{background:var(--gB)} .badge.gc{background:var(--gC)} .badge.gd{background:var(--gD)} .badge.gf{background:var(--gF)}
.chip{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:6px;font-size:12.5px;font-weight:600;background:var(--surface);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- now in town ---------- */
.now{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:16px;align-items:start}
.now.two{grid-template-columns:1fr 1.5fr}
.card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff;min-width:0}
.card h3{font-size:15px;font-weight:700}
.card .ch{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;gap:8px}
.card .ch a{font-size:13px;color:var(--accent-ink);font-weight:600;white-space:nowrap}
.weigh{background:var(--accent-tint);border-color:transparent}
.weigh .q{font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.3;margin:6px 0 14px}
.vbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vbtns button{height:42px;border-radius:10px;border:1px solid rgba(15,22,35,.12);background:#fff;font-weight:600}
.vbtns button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.reply{display:none;margin-top:10px}
.reply.open{display:block}
.reply textarea,.field{width:100%;border:1px solid rgba(15,22,35,.15);border-radius:10px;padding:10px;font:inherit;font-size:14px;resize:vertical;background:#fff;color:var(--ink)}
.reply .row{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12.5px;color:var(--muted);gap:8px}
.composer{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 8px 8px 12px;margin-bottom:6px;width:100%;background:#fff;text-align:left}
.composer:hover{border-color:#c9ced7}
.composer .av .ic{width:14px;height:14px}
.linkbtn{border:0;background:none;padding:0;color:var(--accent-ink);font-weight:600;font-size:inherit}
.linkbtn:hover{text-decoration:underline}
.composer span.ph{flex:1;color:var(--faint);font-size:14.5px}
.av{width:28px;height:28px;border-radius:50%;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:12px;flex:none;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.post{padding:14px 0;border-top:1px solid var(--hair);display:block}
.post .who{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--muted)}
.post .who b{color:var(--ink)}
.post h4{margin:6px 0 2px;font-size:15.5px;letter-spacing:-.01em}
.post p{margin:0;color:var(--muted);font-size:14px}
.post .pa{display:flex;gap:16px;margin-top:8px;font-size:12.5px;color:var(--muted);font-weight:500}
.post:hover h4{color:var(--accent-ink)}
.list{list-style:none;margin:0;padding:0}
.list li{padding:9px 0;border-top:1px solid var(--hair);font-size:14px}
.list li:first-child{border-top:0;padding-top:0}
.list .m{font-size:12.5px;color:var(--muted);margin-top:2px}
.list b{font-weight:600}
.list a:hover b{color:var(--accent-ink)}
.muted{color:var(--muted);font-size:13px}
.empty{color:var(--muted);font-size:14px;margin:0}
.empty a{color:var(--accent-ink);font-weight:600}
.ev{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.ev:first-child{border-top:0}
.ev .day{width:44px;flex:none;text-align:center;border:1px solid var(--line);border-radius:8px;padding:3px 0;font-size:11px;font-weight:600;color:var(--accent-ink);text-transform:uppercase}
.ev .day b{display:block;font-size:18px;color:var(--ink);line-height:1.1}
.ev small{display:block;color:var(--muted);font-size:12.5px}

/* conversation starters + weigh-in footer */
.starters{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.starters .kick{margin-bottom:4px}
.starter{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 12px;font-size:14.5px;font-weight:600;color:var(--ink-2)}
.starter:hover{border-color:var(--accent);background:var(--accent-tint)}
.starter .si{width:30px;height:30px;border-radius:8px;background:var(--surface);display:grid;place-items:center;flex:none;color:var(--accent-ink)}
.starter:hover .si{background:#fff}
.starter .si .ic{width:16px;height:16px}
.starter .st{flex:1;min-width:0}
.starter .go{color:var(--faint);font-weight:500}
.weigh-f{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.weigh-f .linkbtn{align-self:flex-start;font-size:13.5px}

/* ---------- topic module (one grammar for every data section) ---------- */
.topic{padding:32px 0;border-top:1px solid var(--line)}
.topics > .topic:first-child{border-top:0;padding-top:8px}
.t-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.t-head h3{font-size:24px;line-height:1.2;letter-spacing:-.025em;margin:6px 0 0;font-weight:700;max-width:640px}
.t-lead{color:var(--muted);margin:8px 0 0;max-width:660px}
.t-tok{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;text-align:right}
.t-tok small{font-size:12px;color:var(--muted)}
.t-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;margin-top:22px}
.t-body.one{grid-template-columns:minmax(0,1fr)}
.t-foot{display:flex;justify-content:space-between;gap:16px;margin-top:20px;font-size:12.5px;color:var(--faint);align-items:center;flex-wrap:wrap}
.t-foot a{color:var(--accent-ink);font-weight:600;font-size:14px;white-space:nowrap}
.t-foot a:hover{text-decoration:underline}
.cmp{display:flex;flex-direction:column;gap:18px;min-width:0}
.cmp h4,.panel-h{font-size:13px;font-weight:600;margin:0 0 8px}
.cmp h4 span{color:var(--faint);font-weight:400}
.brow{display:grid;grid-template-columns:110px minmax(0,1fr) 60px;gap:10px;align-items:center;min-height:26px}
.brow .l{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brow .trk{height:10px;position:relative}
.brow .fill{position:absolute;left:0;top:0;bottom:0;border-radius:0 4px 4px 0;background:var(--bar);min-width:3px}
.brow.me .l{color:var(--ink);font-weight:600}
.brow.me .fill{background:var(--accent)}
.brow .v{font-size:13px;text-align:right;white-space:nowrap}
.brow.me .v{font-weight:600}
.range .fill{border-radius:4px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;align-self:start}
.stat{background:#fff;padding:14px 16px;min-width:0}
.stat .v{font-size:22px;font-weight:600;letter-spacing:-.02em}
.stat .k{font-size:12.5px;color:var(--muted);line-height:1.35;margin-top:2px}
.stat.wide{grid-column:span 2}
.better{color:var(--good);font-weight:600} .worse{color:var(--bad);font-weight:600}
.split{display:flex;height:12px;gap:2px}
.split i{display:block;border-radius:3px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);flex-wrap:wrap;margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:0 0 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:10px 8px 10px 0;border-bottom:1px solid var(--hair);vertical-align:middle}
.tbl .r{text-align:right;padding-right:0}
.tbl tr:last-child td{border-bottom:0}
.tbl .nm{font-weight:600}
.tbl .sm{font-size:12.5px;color:var(--muted)}
.tbl a:hover{color:var(--accent-ink)}
.mapfig{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fffdf9;margin:0}
.mapfig img{width:100%;height:300px;object-fit:cover}
.mapfig figcaption{font-size:12px;color:var(--muted);padding:8px 12px;border-top:1px solid var(--hair);background:#fff}
.scale{position:relative;height:8px;margin:30px 0 8px}
.scale .seg3{position:absolute;inset:0;display:flex;gap:2px}
.scale .seg3 i{flex:1;background:#e3e6eb;border-radius:4px}
.scale .seg3 i.hit{background:var(--accent)}
.scale .pin{position:absolute;top:-26px;transform:translateX(-50%);font-size:12px;font-weight:600;white-space:nowrap}
.scale .pin::after{content:"";position:absolute;left:50%;top:20px;width:2px;height:14px;background:var(--ink);transform:translateX(-50%)}
.scale-l{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.tip{position:fixed;pointer-events:none;background:var(--ink);color:#fff;font-size:12.5px;padding:6px 9px;border-radius:7px;z-index:60;opacity:0;transition:opacity .1s;max-width:260px}

/* ---------- signature sections (only towns of a kind get each) ---------- */
.sig{position:relative;border-radius:18px;padding:28px;margin-top:44px;overflow:hidden;border:1px solid var(--line);background:#fff}
.sig-h{margin-bottom:18px;max-width:720px}
.sig-k{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink)}
.sig-h h2{font-size:28px;letter-spacing:-.03em;line-height:1.15;margin:6px 0 0;font-weight:800}
.sig-h p{margin:8px 0 0;color:var(--muted);font-size:15px}
.sig-grid,.sig-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:start;position:relative}
.sig-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sig-stats.one{grid-template-columns:1fr;gap:12px}
.sig-stats div{background:rgba(255,255,255,.75);border:1px solid rgba(15,22,35,.06);border-radius:14px;padding:16px}
.sig-stats b{display:block;font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.sig-stats span{font-size:13px;color:var(--muted)}
.sig-sub{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:0 0 6px}
.sig-list{list-style:none;margin:0 0 16px;padding:0}
.sig-list li{padding:8px 0;border-top:1px solid rgba(15,22,35,.08);font-size:14.5px}
.sig-list li:first-child{border-top:0}
.sig-list a{font-weight:600}
.sig-list a:hover{color:var(--accent-ink)}
.sig-list a span{font-weight:500;font-size:12.5px;color:var(--accent-ink);margin-left:4px}
.sig-cta{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:12px;background:var(--ink);color:#fff;font-weight:600;font-size:14.5px;padding:12px 16px;text-align:left}
.sig-cta:hover{background:#1f2a3b}
.sig-cta .ic{width:17px;height:17px}
.sig-src{font-size:12px;color:var(--faint);margin:16px 0 0}
.sig-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
.sig-foot .sig-src{margin:0}
.sig-more{display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--accent-ink)}
.sig-note{color:var(--muted);font-size:13.5px;margin:0 0 16px}
.sig-txt{min-width:0}
/* coastal */
.sig-sea{background:linear-gradient(180deg,#eef6fb 0%,#f5fafc 70%,#fff 100%);border-color:#dbe9f2}
.sig-sea .sig-k{color:#1f5a86}
.sig-waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:46px;opacity:.5}
.sig-waves path:first-child{fill:#d6e8f3}.sig-waves path:last-child{fill:#c4dcec}
.sig-sea .sig-grid,.sig-sea .sig-h,.sig-sea .sig-src{position:relative;z-index:1}
/* archive */
.sig-archive{background:#f7f3ea;border-color:#e9e0cc}
.sig-archive .sig-k{color:#8a5a2b}
.sig-photo{position:relative;display:block;border-radius:6px;overflow:hidden;background:#fff;padding:10px 10px 36px;box-shadow:0 10px 30px rgba(60,40,10,.18);transform:rotate(-1.2deg)}
.sig-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:sepia(.25)}
.sig-stamp{position:absolute;left:14px;bottom:9px;font-size:13px;font-weight:700;color:#5c4a2e;letter-spacing:.02em}
.sig-archive .sig-cta{background:#5c4a2e}
.sig-archive .sig-cta:hover{background:#463824}
/* outdoors */
.sig-out{padding-bottom:22px}
.sig-map{position:relative;display:block;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fffdf9}
.sig-map img{width:100%;height:380px;object-fit:cover}
.sig-leg{position:absolute;left:12px;bottom:12px;display:flex;gap:12px;background:rgba(255,255,255,.9);border-radius:8px;padding:5px 10px;font-size:12px;color:var(--ink-2)}
.sig-leg i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-right:5px;vertical-align:0}
.sig-leg i.c{background:rgba(14,159,87,.35)}.sig-leg i.t{border-top:2px dashed #8a5a2b;height:0;margin-bottom:3px}
.sig-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.sig-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.sig-card > div{flex:1;min-width:0}
.sig-card b{display:block;font-size:14px;line-height:1.25}
.sig-card small{font-size:12.5px;color:var(--muted)}
.sig-n{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
/* college */
.sig-college{background:linear-gradient(160deg,var(--accent-tint),#fff 70%)}
.sig-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.sig-co{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.sig-co:hover{border-color:var(--accent)}
.sig-co-ic{width:36px;height:36px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;margin-bottom:6px}
.sig-co b{font-size:16px;letter-spacing:-.01em}
.sig-co small{color:var(--muted);font-size:13px}
.sig-co dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--hair)}
.sig-co dt{font-size:11.5px;color:var(--muted)}
.sig-co dd{margin:0;font-weight:700;font-size:16px}
/* work flow map */
.sig-flow{width:100%;height:auto;background:#fafbfc;border:1px solid var(--line);border-radius:14px}
.sig-flow .fp{fill:none;stroke:var(--accent);stroke-opacity:.55;stroke-linecap:round}
.sig-flow .dn{fill:#fff;stroke:var(--accent);stroke-width:2}
.sig-flow .dl{font:600 12px var(--sans);fill:var(--ink-2)}
.sig-flow .me{fill:var(--ink);stroke:#fff;stroke-width:3}
.sig-flow .ml{font:700 13px var(--sans);fill:var(--ink)}
/* growth */
.sig-bars{display:flex;align-items:flex-end;gap:18px;height:220px;padding:0 8px}
.sig-bars .sb{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}
.sig-bars .sb-b{width:100%;max-width:90px;background:var(--bar);border-radius:8px 8px 0 0;min-height:6px}
.sig-bars .sb:last-child .sb-b{background:var(--accent)}
.sig-bars .sb-v{font-weight:700;font-size:15px}
.sig-bars .sb-y{font-size:12.5px;color:var(--muted)}
/* small town */
.sig-small{background:linear-gradient(160deg,#fff,var(--surface))}
.sig-small .nbbox{background:#fff}

/* ---------- story band ---------- */
.story{background:var(--night);color:#fff;border-radius:18px;padding:28px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;margin-top:44px}
.story .kick{color:var(--accent-soft)}
.story h2{font-size:28px;letter-spacing:-.03em;margin:6px 0 4px}
.story p{color:#aeb7c6;margin:0 0 16px;font-size:14.5px}
.story .feat{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#000}
.story .feat img{width:100%;height:100%;object-fit:cover}
.tn{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#000;user-select:none;touch-action:none;cursor:ew-resize}
.tn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.tn .then{clip-path:inset(0 50% 0 0)}
.tn .handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.tn .handle::after{content:"⇆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#fff;color:var(--night);display:grid;place-items:center;font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.tn .lbl{position:absolute;top:12px;font-size:12px;font-weight:600;background:rgba(0,0,0,.55);padding:4px 9px;border-radius:999px;pointer-events:none}
.tn .lbl.l{left:12px}.tn .lbl.r{right:12px}
.cap{font-size:12.5px;color:#8f99aa;margin-top:8px}
.story .cap a{text-decoration:underline}
.tl{list-style:none;margin:0;padding:0;border-left:2px solid #2a3547}
.tl li{position:relative;padding:0 0 14px 18px}
.tl li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--night);border:2px solid #6c7a90}
.tl li.hl::before{background:var(--accent);border-color:var(--accent)}
.tl b{display:block;font-size:13px;color:#fff;font-variant-numeric:tabular-nums}
.tl span,.tl a{font-size:14px;color:#c4ccd8}
.tl a:hover{color:#fff;text-decoration:underline}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.thumbs a{display:block;border-radius:8px;overflow:hidden;aspect-ratio:1}
.thumbs img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:opacity .15s}
.thumbs a:hover img{opacity:1}
.story .go{display:inline-block;margin-top:14px;color:#fff;font-weight:600;font-size:14px;border-bottom:1px solid rgba(255,255,255,.4)}
.story.lead{margin-top:28px}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.pp{display:flex;flex-direction:column;gap:8px;min-width:0}
.pp .ph{aspect-ratio:3/4;border-radius:12px;background:var(--surface);overflow:hidden;display:grid;place-items:center;color:var(--faint);font-size:28px;font-weight:800}
.pp .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15)}
.pp:hover .ph img{filter:none}
.pp b{font-size:14.5px;letter-spacing:-.01em;line-height:1.2}
.pp span{font-size:12.5px;color:var(--muted);line-height:1.3}

/* ---------- landmarks (historic places) ---------- */
.lm{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.lm a{border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.lm a:hover{border-color:#c9ced7}
.lm .ph{height:130px;background:var(--surface)}
.lm .ph img{width:100%;height:100%;object-fit:cover}
.lm .b{padding:10px 12px}
.lm b{display:block;font-size:14px;line-height:1.3}
.lm span{font-size:12.5px;color:var(--muted)}

/* ---------- neighbors ---------- */
.nb{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.nbbox{position:relative;border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:10px}
.nbbox .in{position:relative}
.nbbox svg{width:100%;height:auto;display:block;max-height:460px}
.nbl{position:absolute;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#3a4352;white-space:nowrap;pointer-events:none;text-shadow:0 0 3px #fff,0 0 3px #fff}
.nbl.me{color:#fff;text-shadow:none;font-size:13px}
.nbrow{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-top:1px solid var(--hair);font-size:14.5px;gap:10px}
.nbrow:first-child{border-top:0}
.nbrow .d{font-size:12.5px;color:var(--muted)}
.nbrow a b:hover{color:var(--accent-ink)}

/* ---------- more ---------- */
.more{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mc{border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.mc:hover{border-color:#c9ced7}
.mc img{height:120px;object-fit:cover;width:100%}
.mc .ph{height:120px;background:var(--surface);display:grid;place-items:center;color:var(--faint)}
.mc .ph .ic{width:28px;height:28px}
.mc .b{padding:12px 14px}
.mc b{display:block;font-size:14.5px}
.mc span{font-size:12.5px;color:var(--muted)}
.oneline{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted);padding:14px 0;border-top:1px solid var(--line);margin-top:28px}
.oneline b{color:var(--ink-2)}
.oneline a{color:var(--accent-ink);font-weight:600}

/* ---------- neighbors strip (Now header) ---------- */
.faces{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}
.faces:hover{border-color:#c9ced7}
.faces .stack{display:flex}
.faces .stack .av{width:30px;height:30px;border:2px solid #fff;margin-left:-8px;font-size:12px}
.faces .stack .av:first-child{margin-left:0}
.faces .fl{display:flex;flex-direction:column;line-height:1.2}
.faces b{font-size:13.5px}
.faces small{font-size:12px;color:var(--accent-ink);font-weight:600}
.sh p .link{font-size:14px}

/* ---------- about ---------- */
.about-in{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:start}
.about-tx p{margin:0;font-size:15.5px;line-height:1.65;color:var(--ink-2);max-width:68ch}
.about-tx .src{margin-top:12px;font-size:12.5px;color:var(--faint)}
.about-tx .src a{text-decoration:underline}
.ledger{margin:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ledger div{display:flex;justify-content:space-between;gap:12px;padding:11px 16px;border-top:1px solid var(--hair)}
.ledger div:first-child{border-top:0}
.ledger dt{color:var(--muted);font-size:13.5px}
.ledger dd{margin:0;font-weight:600}

/* ---------- composer (dialog) ---------- */
.cdlg:not([open]){display:none}
.cdlg{border:0;padding:0;border-radius:16px;width:min(580px,calc(100vw - 24px));max-height:calc(100vh - 40px);box-shadow:0 24px 64px rgba(15,22,35,.25);color:var(--ink)}
.cdlg::backdrop{background:rgba(15,22,35,.45)}
.cdlg form{display:flex;flex-direction:column;max-height:calc(100vh - 40px)}
.cmp-h{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 8px}
.cmp-h h2{font-size:18px;letter-spacing:-.02em}
.cmp-x{border:0;background:var(--surface);width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1}
.cmp-body{padding:8px 18px 4px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.cmp-kinds{display:inline-flex;background:var(--surface);border-radius:10px;padding:3px;align-self:flex-start}
.cmp-kinds button{border:0;background:none;padding:6px 14px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--muted)}
.cmp-kinds button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,22,35,.12)}
.cmp-title{border:0;border-bottom:1px solid var(--line);font:inherit;font-size:18px;font-weight:600;padding:8px 0;outline:none;color:var(--ink)}
.cmp-title:focus{border-bottom-color:var(--accent)}
.cmp-text{border:0;font:inherit;font-size:15.5px;line-height:1.55;resize:vertical;min-height:110px;outline:none;padding:4px 0;color:var(--ink)}
.cmp-when{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cmp-when label,.cmp-guest label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted)}
.cmp-when small{font-weight:400;color:var(--faint)}
.cmp-when input,.cmp-guest input,.cmp-topic input{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink);background:#fff}
.cmp-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cmp-photo{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border:1px dashed #c9ced7;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer}
.cmp-photo:hover{border-color:var(--accent);color:var(--accent-ink)}
.cmp-photo input{position:absolute;opacity:0;width:1px;height:1px}
.cmp-photo .ic{width:16px;height:16px}
.cmp-topic{flex:1;min-width:160px}
.cmp-topic input{width:100%}
.cmp-files{display:flex;gap:8px;flex-wrap:wrap}
.cmp-files img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.cmp-guest{display:flex;flex-direction:column;gap:6px}
.cmp-guest small{font-weight:400;color:var(--faint);font-size:12.5px}
.cmp-err{margin:0;color:var(--bad);font-size:13.5px;font-weight:600}
.cmp-f{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px 16px;border-top:1px solid var(--hair);margin-top:8px}
.cmp-f .btn{min-width:96px}
.cmp-done{padding:36px 24px 28px;text-align:center}
.cmp-done-ic{width:56px;height:56px;border-radius:50%;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;font-size:26px;margin:0 auto 12px}
.cmp-done h3{font-size:20px;margin-bottom:6px}
.cmp-done p{color:var(--muted);margin:0 0 18px}
.cdlg.sent .cmp-h,.cdlg.sent .cmp-body,.cdlg.sent .cmp-f{display:none}
@media (max-width:640px){.cdlg{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:16px 16px 0 0;max-height:92vh}.cmp-when{grid-template-columns:1fr}.faces .fl small{display:none}}

/* ---------- gauge ---------- */
.gwrap{max-width:340px}
.gauge{width:100%;height:auto;display:block;overflow:visible}
.gauge path{fill:none}
.gauge .g-off{stroke:#e3e6eb}
.gauge .g-on{stroke:var(--accent)}
.gauge .g-needle{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.gauge .g-dot{fill:#fff;stroke:var(--ink);stroke-width:2.5}
.gauge .g-big{font:700 30px var(--sans);fill:var(--ink);letter-spacing:-.03em}
.gauge .g-rate{font:600 12.5px var(--sans);fill:var(--muted)}
.gauge .g-end{font:500 11px var(--sans);fill:var(--faint)}

/* ---------- hero lightbox ---------- */
.hero[data-zoomable]{cursor:zoom-in}
.hero[data-zoomable] a,.hero[data-zoomable] button{cursor:pointer}
.hero-zoom{position:absolute;z-index:3;right:14px;bottom:30px;width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:rgba(8,12,20,.38);backdrop-filter:blur(8px);color:#fff;display:grid;place-items:center;opacity:.85}
.hero-zoom:hover{opacity:1;background:rgba(8,12,20,.55)}
.hero-zoom .ic{width:16px;height:16px}
.lbx{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;margin:0;overflow:hidden}
.lbx:not([open]){display:none}
.lbx[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.lbx::backdrop{background:rgba(8,12,20,.9)}
.lbx img{max-width:94vw;max-height:84vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.4);cursor:zoom-out}
.lbx-cap{margin:0;color:#c4ccd8;font-size:13px;text-align:center;padding:0 16px}
.lbx-cap a{color:#fff;text-decoration:underline}
.lbx-x{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:24px;line-height:1}
.lbx-x:hover{background:rgba(255,255,255,.26)}

/* ---------- Town Square ---------- */
.shell.with-rail{grid-template-columns:var(--nav) minmax(0,1fr) 320px;max-width:1560px}
.sq-rail{position:sticky;top:var(--hdr);height:calc(100vh - var(--hdr));overflow-y:auto;padding:24px 20px 24px 0;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin}
.sq-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.sq-head h1{font-size:40px;letter-spacing:-.04em;line-height:1.05;margin-top:6px}
.sq-meta{margin:8px 0 0;color:var(--muted);font-size:14.5px}
.sq-start{height:44px;padding:0 18px;font-size:15px}
.sq-start .ic{width:16px;height:16px}
/* debate */
.debate{border-radius:18px;padding:24px;background:linear-gradient(160deg,var(--accent-tint),#fff 75%);border:1px solid var(--line);margin-top:28px}
.db-top h2{font-size:26px;letter-spacing:-.03em;line-height:1.2;margin-top:6px;max-width:720px}
.db-bar{display:flex;height:34px;border-radius:10px;overflow:hidden;margin:18px 0 16px;gap:2px;font-size:13px;font-weight:700}
.db-bar i{font-style:normal;display:flex;align-items:center;padding:0 12px;color:#fff;white-space:nowrap;overflow:hidden;min-width:0}
.db-bar i.a{background:var(--accent)}
.db-bar i.d{background:#5a6372;justify-content:flex-end}
.db-bar.none{background:var(--surface);border:1px dashed #c9ced7;align-items:center;justify-content:center;color:var(--muted);font-weight:600}
.db-sides{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.db-side{display:flex;flex-direction:column;gap:10px}
.db-btn{height:46px;font-size:15px;width:100%}
.db-side.agree .db-btn:hover{border-color:var(--accent);color:var(--accent-ink)}
.db-quote{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--ink-2);line-height:1.45}
.db-quote small{display:block;margin-top:6px;color:var(--muted);font-size:12.5px}
.db-quote:hover{border-color:#c9ced7}
.db-past{margin-top:16px;display:flex;flex-direction:column;gap:2px}
.db-past .kick{margin-bottom:6px}
.db-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 150px;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--hair);font-size:14px}
.db-row .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-row .mini{height:8px;border-radius:4px;background:#5a6372;overflow:hidden}
.db-row .mini i{display:block;height:100%;background:var(--accent)}
.db-row .ct{font-size:12.5px;color:var(--muted);text-align:right}
/* needs an answer */
.qa{display:flex;flex-direction:column;gap:8px}
.qa-item{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-left:4px solid #e3a008;border-radius:12px;padding:12px 14px}
.qa-item:hover{border-color:#c9ced7;border-left-color:#e3a008}
.qa-ic{width:32px;height:32px;border-radius:50%;background:#fff7e0;color:#9a6700;display:grid;place-items:center;font-weight:800;flex:none}
.qa-tx{flex:1;min-width:0}
.qa-tx b{display:block;font-size:15px}
.qa-tx small{color:var(--muted);font-size:12.5px}
/* filters + sort */
.seg2{display:inline-flex;background:var(--surface);border-radius:10px;padding:3px}
.seg2 a{padding:6px 12px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--muted)}
.seg2 a[aria-current]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,22,35,.12)}
.sq-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-2);background:#fff}
.pill:hover{border-color:#c9ced7}
.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pill i{font-style:normal;font-weight:500;color:var(--faint);font-size:12px}
.pill.on i{color:rgba(255,255,255,.7)}
.sq-div{width:1px;height:20px;background:var(--line);margin:0 4px}
/* cards */
.sq-feed{display:flex;flex-direction:column}
.sqc{display:flex;gap:14px;padding:18px 0;border-top:1px solid var(--line)}
.sqc-vote{display:flex;flex-direction:column;align-items:center;gap:2px;width:36px;flex:none;padding-top:2px}
.sqc-vote form{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0}
.vb{border:0;background:none;color:var(--faint);font-size:13px;line-height:1;padding:4px 6px;border-radius:6px}
.vb:hover{background:var(--surface);color:var(--ink)}
.vb.on{color:var(--accent)}
.vb.off{opacity:.35;cursor:default}
.vb.off:hover{background:none;color:var(--faint)}
.sqc-vote .num{font-weight:700;font-size:14px}
.sqc-main{flex:1;min-width:0}
.sqc .who{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.sqc .who b{color:var(--ink)}
.tagk{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--surface);color:var(--ink-2)}
.tagk.agree{background:var(--accent-tint);color:var(--accent-ink)}
.tagk.disagree{background:#eef0f3;color:#3a4352}
.tagt{font-size:12px;color:var(--muted)}
.tagt::before{content:"# ";color:var(--faint)}
.sqc-t{display:block;font-size:17px;font-weight:700;letter-spacing:-.015em;margin:6px 0 4px;line-height:1.3}
.sqc-t:hover{color:var(--accent-ink)}
.sqc-on{font-size:12.5px;color:var(--muted);margin-bottom:2px}
.sqc p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}
.sqc-when{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--accent-ink);margin-bottom:4px}
.sqc-when .ic{width:15px;height:15px}
.sqc-imgs{display:grid;gap:6px;margin-top:10px;max-width:560px}
.sqc-imgs.n1{grid-template-columns:1fr}.sqc-imgs.n2{grid-template-columns:1fr 1fr}.sqc-imgs.n3{grid-template-columns:2fr 1fr 1fr}
.sqc-imgs img{width:100%;height:180px;object-fit:cover;border-radius:10px}
.sqc-imgs.n1 img{height:300px}
.sqc-f{display:flex;align-items:center;gap:14px;margin-top:10px;font-size:13px;font-weight:600;color:var(--muted)}
.sqc-f a{display:inline-flex;align-items:center;gap:6px}
.sqc-f a:hover{color:var(--accent-ink)}
.sqc-f .ic{width:15px;height:15px}
.sqc-f .hint{color:#9a6700;font-weight:600}
.sqc.deb-agree{box-shadow:inset 3px 0 0 var(--accent);padding-left:12px}
.sqc.deb-disagree{box-shadow:inset 3px 0 0 #5a6372;padding-left:12px}
.sq-empty{text-align:center;padding:40px 20px;border:1px dashed #c9ced7;border-radius:16px}
.sq-empty b{font-size:17px}.sq-empty p{color:var(--muted);margin:6px 0 16px}
.sq-pager{display:flex;justify-content:center;gap:10px;margin-top:20px}
/* rail */
.roster{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.roster .av{width:100%;height:auto;aspect-ratio:1;font-size:14px}
.newest{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.nw{display:flex;align-items:center;gap:10px;font-size:13.5px}
.nw small{display:block;color:var(--muted);font-size:12px}

/* ---------- The Handbook (Guide) ---------- */
.hb-hero{position:relative;border-radius:18px;padding:32px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line);overflow:hidden}
.hb-hero.has-photo{background:#fff}
.hb-bg{position:absolute;right:0;top:0;width:58%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 35%,#000 75%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 35%,#000 75%)}
.hb-in{position:relative;z-index:1;max-width:680px}
.hb-hero.has-photo .hb-in{background:linear-gradient(90deg,#fff 62%,rgba(255,255,255,0));padding-right:40px;margin:-32px 0 -32px -32px;padding:32px 60px 32px 32px}
.rk-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.rk{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 5px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.rk:hover{border-color:var(--accent)}
.rk i{font-style:normal;display:grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);font-size:12px;font-weight:800;padding:0 5px}
.rk-row .link{font-size:13.5px;margin-left:4px}
h2.im .who{color:var(--accent);transition:color .2s}
/* path feature card */
.hbf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);border-radius:16px;overflow:hidden;border:1px solid var(--line);margin-bottom:14px;background:#fff;min-height:200px}
.hbf:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.hbf-v{background:var(--surface);position:relative;min-height:180px;display:grid;place-items:center;overflow:hidden}
.hbf-v > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hbf-map{width:100%;height:100%;padding:14px;display:grid;place-items:center}
.hbf-map svg{width:100%;height:auto;max-height:220px}
.hbf-g{width:100%;max-width:280px;padding:16px}
.hbf-badge{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);font-size:13px;font-weight:600}
.hbf-badge .badge{width:88px;height:88px;border-radius:20px;font-size:44px}
.hbf-badge .ic{width:56px;height:56px;color:var(--accent)}
.hbf-t{padding:24px 26px;display:flex;flex-direction:column;gap:6px;justify-content:center}
.hbf-t h3{font-size:24px;letter-spacing:-.025em;line-height:1.2}
.hbf-t p{margin:0 0 10px;color:var(--muted);font-size:14.5px}
.hbf-t .btn{align-self:flex-start}
/* beyond the handbook */
.bey{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bey-v .nbmap .o,.hbf-map .nbmap .o{fill:#dfe3e8;stroke:#fff}
.bey-c{border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;background:#fff;transition:box-shadow .15s,border-color .15s}
.bey-c:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.bey-v{height:150px;background:var(--surface);position:relative;overflow:hidden;display:grid;place-items:center}
.bey-v > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bey-v .yr{position:absolute;left:10px;bottom:10px;background:rgba(255,253,245,.92);color:#5c4a2e;font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:999px}
.bey-v .bignum{font-size:40px}
.bey-v .bignum small{margin-top:4px}
.mosaic{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:2px}
.mosaic img{width:100%;height:100%;object-fit:cover;filter:grayscale(.1)}
.bey-b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:2px}
.bey-b b{font-size:16px;letter-spacing:-.01em}
.bey-b small{font-size:13px;color:var(--muted)}
.hb-ask{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:44px;padding:20px 22px;border-radius:16px;background:var(--ink);color:#fff}
.hb-ask b{display:block;font-size:18px}
.hb-ask span{color:#c4ccd8;font-size:14.5px}
.hb-hero h1{font-size:44px;letter-spacing:-.04em;line-height:1.02;margin-top:6px}
.hb-hero > p{color:var(--muted);margin:10px 0 20px;font-size:16px;max-width:640px}
.hb-search{display:flex;gap:8px;max-width:720px}
.hb-search label{flex:1;position:relative}
.hb-search input{width:100%;height:52px;border:1px solid var(--line);border-radius:14px;padding:0 16px 0 46px;font:inherit;font-size:16px;background:#fff;color:var(--ink);box-shadow:0 2px 10px rgba(15,22,35,.05)}
.hb-search input:focus{outline:none;border-color:var(--accent)}
.hb-search .ic{position:absolute;left:16px;top:17px;color:var(--faint)}
.hb-search .btn{height:52px;padding:0 20px;font-size:15px}
.hb-qs{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.hb-qs a{font-size:13.5px;font-weight:600;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.hb-qs a:hover{border-color:var(--accent);color:var(--accent-ink)}
/* life-moment paths */
.paths{margin-top:8px}
.path-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.path-tabs button{flex:none;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;font-weight:600;font-size:14.5px;color:var(--ink-2)}
.path-tabs button .ic{width:17px;height:17px;color:var(--faint)}
.path-tabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.path-tabs button[aria-selected="true"] .ic{color:#fff}
.path-panel{margin-top:14px}
.path-lead{color:var(--muted);margin:0 0 14px;font-size:14.5px}
.ans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.ans{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px;background:#fff;min-width:0}
.ans:hover{border-color:#c9ced7}
.ans .q{font-size:13px;font-weight:600;color:var(--muted)}
.ans .a{font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.25;word-break:break-word}
.ans .a.sm{font-size:16px}
.ans .d{font-size:13px;color:var(--muted)}
.ans .go{margin-top:auto;padding-top:6px;font-size:13px;font-weight:600;color:var(--accent-ink)}
.ans.missing{border-style:dashed;background:var(--surface);font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%}
.ans.missing:hover{border-color:var(--accent);background:var(--accent-tint)}
.cmp-guest small{display:inline}
.ans.missing .a{color:var(--faint);font-weight:600;font-size:16px}
/* trust badges */
.tb{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;align-self:flex-start}
.tb::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tb.ok{background:var(--accent-tint);color:var(--accent-ink)}
.tb.src{background:#eef2f7;color:#3a4f6b}
.tb.warn{background:#fff7e0;color:#9a6700}
/* completeness meter */
.meter{display:flex;align-items:center;gap:18px;border:1px dashed #c9ced7;border-radius:16px;padding:18px 20px;margin-top:16px;flex-wrap:wrap;background:var(--surface)}
.meter-ring{width:64px;height:64px;flex:none}
.meter-ring circle{fill:none;stroke-width:7}
.meter-ring .bg{stroke:#e8ebef}.meter-ring .fg{stroke:var(--accent);stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}
.meter-ring text{font:700 15px var(--sans);fill:var(--ink)}
.meter-tx{flex:1;min-width:200px}
.meter-tx b{font-size:16px}
.meter-tx p{margin:2px 0 0;color:var(--muted);font-size:13.5px}
.meter-miss{display:flex;flex-wrap:wrap;gap:6px}
.meter-miss button,.meter-miss a{border:1px dashed #c9ced7;background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--ink-2)}
.meter-miss button:hover,.meter-miss a:hover{border-color:var(--accent);color:var(--accent-ink)}
/* school pipeline */
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pipe > div{padding:14px 16px;border-left:1px solid var(--hair);position:relative;min-width:0}
.pipe > div:first-child{border-left:0}
.pipe .g{font-size:12px;font-weight:700;color:var(--accent-ink);letter-spacing:.04em}
.pipe b{display:block;font-size:14.5px;margin-top:4px;line-height:1.3}
.pipe small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.pipe > div:not(:last-child)::after{content:"→";position:absolute;right:-8px;top:14px;width:16px;height:16px;background:#fff;color:var(--faint);font-size:12px;display:grid;place-items:center;z-index:1}
/* explainers */
.xp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.xp{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;text-align:left;width:100%;font:inherit;color:inherit}
.xp:hover{border-color:#c9ced7}
.xp .xi{width:34px;height:34px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;flex:none;font-weight:700}
.xp b{display:block;font-size:14.5px}
.xp small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;line-height:1.35}
.xp.wanted{border-style:dashed;background:var(--surface)}
.xp.wanted .xi{background:#fff;color:var(--faint)}
.xp.wanted small{color:var(--accent-ink);font-weight:600}
/* numbers table vs state + U.S. */
.cmpt{width:100%;border-collapse:collapse;font-size:14px}
.cmpt th{font-size:12px;font-weight:500;color:var(--muted);text-align:right;padding:0 0 8px;border-bottom:1px solid var(--line)}
.cmpt th:first-child{text-align:left}
.cmpt td{padding:10px 0;border-bottom:1px solid var(--hair);text-align:right;white-space:nowrap}
.cmpt td:first-child{text-align:left;white-space:normal;color:var(--ink-2)}
.cmpt td.me{font-weight:700}
.cmpt .vs{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 6px;border-radius:5px;margin-left:6px;background:var(--surface);color:var(--muted)}
.cmpt .grp td{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding-top:18px;border-bottom:0}
.nbt tr.me td{font-weight:700;background:var(--accent-tint)}
.nbt td:first-child a:hover{color:var(--accent-ink)}
@media (max-width:900px){.bey{grid-template-columns:1fr 1fr}.pipe{grid-template-columns:1fr 1fr}.pipe > div:nth-child(3){border-left:0}.pipe > div:nth-child(n+3){border-top:1px solid var(--hair)}.pipe > div::after{display:none}.hb-hero{padding:22px}.hb-hero h1{font-size:32px}}
@media (max-width:640px){.hbf{grid-template-columns:1fr}.hbf-v{min-height:160px}.hb-hero.has-photo .hb-in{background:rgba(255,255,255,.88)}.hb-bg{width:100%;-webkit-mask-image:none;mask-image:none;opacity:.35}.hb-search{flex-direction:column}.hb-search .btn{height:46px}.cmpt .vs{display:none}}

/* ---------- single post ---------- */
.pst-crumb{display:flex;gap:8px;font-size:13.5px;color:var(--muted);margin-bottom:14px}
.pst-crumb a:hover{color:var(--accent-ink)}
.pst-deb{border-radius:16px;padding:20px;background:linear-gradient(160deg,var(--accent-tint),#fff 75%);border:1px solid var(--line);margin-bottom:20px}
.pst-deb h2{font-size:20px;letter-spacing:-.02em;margin-top:4px}
.pst-deb .db-bar{margin:14px 0}
.pst-deb-f{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.pst-deb-b{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pst-a .who{display:flex;align-items:center;gap:10px}
.pst-a .who .av{width:40px;height:40px;font-size:15px}
.pst-a .who .nm{font-weight:700}
.pst-a .who small{display:block;color:var(--muted);font-size:12.5px}
.pst-tags{margin-left:auto;display:flex;gap:8px;align-items:center}
.pst-a h1{font-size:34px;letter-spacing:-.035em;line-height:1.15;margin:16px 0 12px}
.pst-body{font-size:16.5px;line-height:1.7;color:var(--ink-2);max-width:70ch}
.pst-on{color:var(--muted);margin:0}
.pst-ev{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:16px;flex-wrap:wrap}
.pst-ev .day{width:58px;flex:none;text-align:center;border:1px solid var(--line);border-radius:10px;padding:5px 0;font-size:12px;font-weight:700;color:var(--accent-ink);text-transform:uppercase}
.pst-ev .day b{display:block;font-size:24px;color:var(--ink);line-height:1.1}
.pst-ev > div:nth-child(2){flex:1;min-width:200px}
.pst-ev small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.pst-ev-b{display:flex;gap:8px}
.pst-ev-b form{margin:0}
.pst-imgs{display:grid;gap:8px;margin-top:16px}
.pst-imgs.n1{grid-template-columns:1fr}.pst-imgs.n2{grid-template-columns:1fr 1fr}.pst-imgs.n3{grid-template-columns:repeat(3,1fr)}
.pst-imgs img{width:100%;max-height:520px;object-fit:cover;border-radius:12px}
.pst-src{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:14px;max-width:520px}
.pst-src img{width:72px;height:56px;object-fit:cover;border-radius:8px}
.pst-src small{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pst-bar{display:flex;align-items:center;gap:6px;margin-top:20px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}
.pst-bar form{margin:0}
.pst-vote{display:flex;align-items:center;gap:4px;margin-right:8px}
.pst-vote form{display:flex;align-items:center;gap:4px}
.pst-vote .num{font-weight:700;min-width:18px;text-align:center}
.pst-act{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--muted)}
.pst-act:hover{background:var(--surface);color:var(--ink)}
.pst-act.on{color:var(--accent-ink)}
.pst-act .ic{width:15px;height:15px}
/* replies */
.rb{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:18px}
.rb:focus-within{border-color:var(--accent)}
.rb textarea{flex:1;border:0;font:inherit;font-size:15px;resize:vertical;outline:none;min-height:42px;padding:4px 0;color:var(--ink)}
.rb .btn{align-self:flex-end}
.rb-out{justify-content:space-between;align-items:center;color:var(--muted)}
.rp{display:flex;gap:10px;padding:14px 0;border-top:1px solid var(--hair)}
.rt > .rp:first-child{border-top:0}
.rp.sub{border-top:0;padding:10px 0 0}
.rp .av{flex:none}
.rp-m{flex:1;min-width:0}
.rp-h{font-size:13px;color:var(--muted)}
.rp-h b{color:var(--ink)}
.rp-b{font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:2px;word-wrap:break-word}
.rp-f{display:flex;gap:4px;align-items:center;margin-top:4px}
.rp-react{display:flex;gap:2px;margin:0}
.rp-x{border:0;background:none;font-size:12.5px;font-weight:600;color:var(--muted);padding:4px 8px;border-radius:6px}
.rp-x:hover{background:var(--surface);color:var(--ink)}
.rp-x.on{color:var(--accent-ink)}
.rp-x.off{cursor:default}.rp-x.off:hover{background:none;color:var(--muted)}
.rp-in{margin-top:8px}
.rp-in .rb{margin-bottom:6px}
.rp-kids{border-left:2px solid var(--hair);padding-left:14px;margin-top:6px}
.rp-kids.flat{border-left:0;padding-left:0}
/* rail */
.pst-data h3{font-size:16px;margin-top:4px;line-height:1.3}
.pst-au{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pst-au .av{width:44px;height:44px;font-size:16px}
.pst-au > div{flex:1;min-width:0}
.pst-au small{display:block;color:var(--muted);font-size:12.5px}
.pst-au .link{font-size:13.5px}
@media (max-width:640px){.pst-a h1{font-size:26px}.pst-deb-f{grid-template-columns:1fr}.pst-tags{margin-left:0;width:100%}.pst-a .who{flex-wrap:wrap}}

/* ---------- groups (Town Square) ---------- */
.grp-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.grp{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;min-width:0}
.grp:hover{border-color:#c9ced7}
.grp-cov{height:84px;position:relative;display:block}
.grp-em{position:absolute;left:14px;bottom:-18px;width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:24px;box-shadow:0 4px 12px rgba(15,22,35,.12)}
.grp-k{position:absolute;right:10px;top:10px;font-size:11.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.22);padding:3px 8px;border-radius:999px}
.grp-b{padding:26px 14px 14px;display:flex;flex-direction:column;gap:4px;flex:1}
.grp-b b{font-size:15.5px;letter-spacing:-.01em}
.grp-b a:hover b{color:var(--accent-ink)}
.grp-b p{margin:0;font-size:13px;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.grp-act{font-size:12.5px;font-weight:600;color:var(--accent-ink)}
.grp-act.quiet{color:var(--faint)}
.grp-f{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px}
.grp-f small{font-size:12.5px;color:var(--muted);flex:1}
.grp-f form{margin:0}
.grp-faces{display:flex}
.grp-faces .av{width:24px;height:24px;font-size:10px;border:2px solid #fff;margin-left:-6px}
.grp-faces .av:first-child{margin-left:0}
.grp-in{font-size:12.5px;font-weight:700;color:var(--accent-ink)}
.grp-new{align-items:center;justify-content:center;text-align:center;gap:6px;padding:20px;border-style:dashed;background:var(--surface);font:inherit;color:inherit;cursor:pointer;min-height:220px}
.grp-new:hover{border-color:var(--accent);background:var(--accent-tint)}
.grp-new small{color:var(--muted);font-size:13px;max-width:200px}
.grp-plus{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:22px}
.grp-ideas{margin-top:16px}
.grp-ideas .kick{display:block;margin-bottom:8px}
.tagg{font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px;background:color-mix(in srgb,var(--gc) 14%,#fff);color:color-mix(in srgb,var(--gc) 75%,#000)}
/* group dialog */
.grp-namerow{display:flex;gap:8px}
.grp-namerow input{font:inherit;font-size:15px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink)}
.grp-namerow input[name="name"]{flex:1;min-width:0}
.grp-emoji{width:56px;text-align:center;font-size:20px!important}
.grp-form textarea{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink);resize:vertical}
.grp-kinds{display:flex;flex-wrap:wrap;gap:6px}
.grp-kinds label{cursor:pointer}
.grp-kinds input{position:absolute;opacity:0;width:1px;height:1px}
.grp-kinds span{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.grp-kinds input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.grp-kinds input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.grp-colors{display:flex;gap:8px}
.grp-colors label{cursor:pointer}
.grp-colors input{position:absolute;opacity:0;width:1px;height:1px}
.grp-colors span{display:block;width:30px;height:30px;border-radius:50%;background:var(--sw);border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.grp-colors input:checked + span{box-shadow:0 0 0 2px var(--ink)}

/* ---------- Schools ---------- */
.sch-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center;border-radius:18px;padding:28px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line)}
.sch-hero .badge{width:112px;height:112px;border-radius:26px;font-size:56px}
.sch-hero .nog{width:112px;height:112px;border-radius:26px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent)}
.sch-hero .nog .ic{width:52px;height:52px}
.sch-hero h1{font-size:38px;letter-spacing:-.035em;line-height:1.08;margin-top:6px}
.sch-hero p{margin:10px 0 0;color:var(--ink-2);font-size:15.5px;max-width:640px}
.sch-hero .rk-row{margin-top:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:16px}
.kpi{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
.kpi .k{font-size:12.5px;color:var(--muted);font-weight:600}
.kpi .v{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-top:2px}
.kpi .s{font-size:12.5px;color:var(--muted)}
.kpi .s b{color:var(--good)}.kpi .s b.lo{color:var(--bad)}
.kpi .bar{height:6px;border-radius:3px;background:#e8ebef;margin-top:8px;position:relative}
.kpi .bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--accent)}
.kpi .bar em{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);font-style:normal}
/* grade picker */
.gpick{display:flex;flex-wrap:wrap;gap:6px}
.gpick button{min-width:46px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:14px;color:var(--ink-2)}
.gpick button:hover{border-color:var(--accent)}
.gpick button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.gres{margin-top:14px}
.gres-c{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fff}
.gres-c .gl{font-size:12px;font-weight:700;color:var(--accent-ink);letter-spacing:.05em;text-transform:uppercase}
.gres-c h3{font-size:22px;letter-spacing:-.02em;margin-top:2px}
.gres-c p{margin:4px 0 0;color:var(--muted);font-size:14px}
.gres-ic{width:56px;height:56px;border-radius:14px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center}
.gres-ic .ic{width:28px;height:28px}
.gres-many{border:1px dashed #c9ced7;border-radius:14px;padding:16px;color:var(--muted)}
.gres-many b{color:var(--ink)}
/* school cards */
.scards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.scard{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px;background:#fff}
.scard:hover{border-color:#c9ced7;box-shadow:0 4px 16px rgba(15,22,35,.05)}
.scard-h{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.scard b{font-size:15.5px;letter-spacing:-.01em;line-height:1.3}
.scard .meta{font-size:13px;color:var(--muted)}
.scard .tags{display:flex;flex-wrap:wrap;gap:4px}
.scard .row{display:flex;gap:14px;font-size:13px;color:var(--ink-2);margin-top:auto;padding-top:8px;border-top:1px solid var(--hair)}
.scard .row span b{font-size:14px}
.scard .row .muted{margin-left:auto}
.stars{color:#e3a008;font-size:13px;letter-spacing:1px}
.stars small{color:var(--muted);letter-spacing:0;margin-left:4px}
.sch-band{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:20px 0 8px}
/* grade context */
.card.gx{margin-top:16px}
.gx .gx-row{margin-top:14px}
.gx-lab{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;margin-bottom:6px}
.gx-lab small{color:var(--faint)}
.gx-bar{position:relative;height:10px;border-radius:5px;background:#e8ebef}
.gx-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:#c9ced7}
.gx-bar em,.gx-scale em{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 0 0 1px var(--ink);transform:translate(-50%,-50%)}
.gx-scale{position:relative;display:flex;gap:2px;height:10px}
.gx-scale span{border-radius:3px;opacity:.28}
.gx-scale span.on{opacity:1}
.gx-scale .ga{background:var(--gA)}.gx-scale .gb{background:var(--gB)}.gx-scale .gc{background:var(--gC)}.gx-scale .gd{background:var(--gD)}.gx-scale .gf{background:var(--gF)}
.gx-conf{margin-top:16px;padding:12px 14px;border-radius:10px;background:var(--surface);font-size:13.5px;color:var(--ink-2)}
.gx-how{margin-top:12px;font-size:14px}
.gx-how summary{cursor:pointer;font-weight:600;color:var(--accent-ink)}
.gx-how ul{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--ink-2)}
/* districts + test scores */
.dlist{display:flex;flex-direction:column;gap:10px}
.dcard{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}
.dcard:hover{border-color:#c9ced7}
.dic{width:40px;height:40px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.dtx{flex:1;min-width:0}
.dtx b{display:block;font-size:14.5px}
.dtx small,.dpp small{display:block;font-size:12.5px;color:var(--muted)}
.dpp{text-align:right}
.ts{margin-bottom:12px}
.ts-l{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;font-weight:600}
.ts-l b{color:var(--accent-ink)}
.ts-b{position:relative;height:9px;border-radius:5px;background:#e8ebef;margin:6px 0 3px}
.ts-b i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--accent)}
.ts-b em{position:absolute;top:-3px;width:2px;height:15px;background:var(--ink)}
.ts small{font-size:12px;color:var(--faint)}
/* colleges within reach */
.clist{display:flex;flex-direction:column;gap:8px}
.crow{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
a.crow:hover{border-color:#c9ced7}
.crow.nopage{border-style:dashed;background:var(--surface)}
.crow > div:nth-child(2){flex:1;min-width:0}
.crow b{font-size:14.5px}
.crow small{display:block;font-size:12.5px;color:var(--muted)}
.cdot{width:9px;height:9px;border-radius:50%;flex:none}
.cdot.u{background:#6b57c9}.cdot.c{background:#2f74d0}
.cmi{text-align:right;flex:none}
@media (max-width:640px){.sch-hero{grid-template-columns:1fr;padding:20px}.sch-hero .badge,.sch-hero .nog{width:84px;height:84px;font-size:42px}.sch-hero h1{font-size:28px}.gres-c{grid-template-columns:1fr}.gres-c .gres-ic{display:none}}

/* ---------- school & district detail ---------- */
.sd-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;border-radius:18px;padding:26px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line)}
.sd-id{display:flex;gap:20px;align-items:center;min-width:0;flex:1}
.sd-id .badge{width:88px;height:88px;border-radius:22px;font-size:42px;flex:none}
.sd-id .nog{width:88px;height:88px;border-radius:22px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);flex:none}
.sd-id .nog .ic{width:40px;height:40px}
.sd-id h1{font-size:34px;letter-spacing:-.035em;line-height:1.1;margin-bottom:8px}
.sd-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sd-rating{display:flex;flex-direction:column;align-items:flex-end;font-size:13px;color:var(--muted);margin-right:6px}
.sd-rating .stars{font-size:16px}
.vrd{border-radius:16px;padding:20px 22px;border:1px solid var(--line);margin-top:16px;background:#fff}
.vrd h3{font-size:18px;margin:4px 0 12px}
.vrd ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 18px}
.vrd li{display:flex;gap:10px;align-items:baseline;font-size:14.5px;color:var(--ink-2)}
.vrd li span{font-size:11px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:none;transform:translateY(3px);background:var(--surface);color:var(--muted)}
.vrd li.good span{background:var(--accent-tint);color:var(--accent-ink)}
.vrd li.watch span{background:#fdecec;color:var(--bad)}
.pipe .pipe-me{background:var(--accent-tint)}
.pipe .pipe-me b{color:var(--accent-ink)}
.pipe a:hover b{color:var(--accent-ink)}
.ts-l b.lo{color:var(--bad)}
.ts-b.low i{background:#e3a008}
.tmap{position:relative;height:240px;border-radius:12px;overflow:hidden;background:#e8ebef}
.tmap-t{position:absolute;width:1280px;height:768px}
.tmap-t img{position:absolute;width:256px;height:256px;max-width:none}
.tmap-pin{position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--accent);border:3px solid #fff;transform:translate(-50%,-100%) rotate(-45deg);box-shadow:0 2px 8px rgba(0,0,0,.3)}
.tmap-attr{position:absolute;right:6px;bottom:4px;font-size:10.5px;background:rgba(255,255,255,.85);padding:1px 6px;border-radius:4px;color:var(--muted)}
.enr{display:flex;align-items:flex-end;gap:10px;height:150px}
.enr-c{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.enr-c i{width:100%;max-width:56px;border-radius:6px 6px 0 0;background:var(--bar)}
.enr-c.on i{background:var(--accent)}
.enr-c span{font-size:12px;font-weight:600}
.enr-c small{font-size:11.5px;color:var(--muted)}
.split.stk{height:16px;margin-top:6px}
.rvw-sum{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.rvw-big{display:flex;flex-direction:column;align-items:center;gap:2px}
.rvw-big b{font-size:44px;letter-spacing:-.03em;line-height:1}
.rvw-big small{color:var(--muted);font-size:12.5px}
.rvw-list{margin-top:14px}
.rate-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:600;color:var(--ink-2)}
.rate-row small{font-weight:400;color:var(--faint)}
.rate-row.big{font-size:16px;color:var(--ink)}
.starin{display:inline-flex;flex-direction:row-reverse}
.starin input{position:absolute;opacity:0;width:1px;height:1px}
.starin label{font-size:26px;color:#d7dbe2;cursor:pointer;padding:0 2px;line-height:1}
.rate-row:not(.big) .starin label{font-size:20px}
.starin label:hover,.starin label:hover ~ label,.starin input:checked ~ label{color:#e3a008}
.starin input:focus-visible + label{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.rate-del{padding:0 18px 14px;margin:0}
@media (max-width:640px){.sd-id h1{font-size:26px}.sd-id .badge,.sd-id .nog{width:64px;height:64px;font-size:30px}.rvw-sum{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--line);margin-top:56px;padding-top:20px;font-size:12.5px;color:var(--faint);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ft a:hover{color:var(--ink)}

/* ---------- responsive ---------- */
@media (max-width:1280px){.people{grid-template-columns:repeat(3,1fr)}.lm{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1280px){.shell.with-rail{grid-template-columns:var(--nav) minmax(0,1fr)}.sq-rail{position:static;height:auto;grid-column:2;padding:0 32px 48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media (max-width:1180px) and (min-width:901px){
  :root{--nav:72px}
  .logo .wm{display:none}
  .nav{padding:12px 8px;align-items:center}
  .nav-town div,.nav-grp,.nav-toc,.nav-foot,.nav-a .lb,.nav-a .meta,.nav-a .star,.nav-post .lb{display:none}
  .nav-town{padding:4px 0 12px;justify-content:center}
  .nav-a{justify-content:center;padding:10px;width:48px}
  .nav-post{width:48px;padding:0;margin:12px 0 0}
  .now{grid-template-columns:1fr 1fr}
  .now > :last-child{grid-column:span 2}
  .now.two > :last-child{grid-column:auto}
}
@media (max-width:900px){
  .about-in{grid-template-columns:minmax(0,1fr)}
  .menu-btn{display:inline-grid;place-items:center}
  .logo{width:auto;padding-left:4px}
  .shell{grid-template-columns:minmax(0,1fr)}
  .nav{position:fixed;left:0;top:var(--hdr);bottom:0;height:auto;width:280px;z-index:40;transform:translateX(-100%);transition:transform .2s;box-shadow:0 10px 40px rgba(0,0,0,.15)}
  body.nav-open .nav{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:var(--hdr) 0 0 0;background:rgba(15,22,35,.35);z-index:35}
  .page{padding:16px 16px 48px}
  .stand,.stand.n3,.now,.now.two{grid-template-columns:1fr}
  .now > :last-child{grid-column:auto}
  .t-body,.story,.nb,.sig-grid,.sig-split{grid-template-columns:minmax(0,1fr)}
  .shell.with-rail{grid-template-columns:minmax(0,1fr)}
  .sq-rail{grid-column:auto;padding:0 16px 40px;grid-template-columns:1fr}
  .db-sides{grid-template-columns:1fr}
  .db-row{grid-template-columns:minmax(0,1fr) 80px}
  .db-row .ct{display:none}
  .sq-head{flex-direction:column;align-items:flex-start}
  .sq-head h1{font-size:30px}
  .sig-cards{grid-template-columns:1fr}
  .sig-map img{height:260px}
  .sig{padding:20px}
  .sig-h h2{font-size:23px}
  .vitals{grid-template-columns:repeat(3,1fr)}
  .vital:nth-child(3n+1){padding-left:0;border-left:0}
  .vital:nth-child(n+4){border-top:1px solid var(--hair)}
  .more{grid-template-columns:1fr 1fr}
  .hero-map{display:none}
  .hero-zoom{bottom:auto;top:62px}
  .hero.maphero .hero-body{max-width:none}
  .hero.maphero .bgmap{width:90%;right:-20%;opacity:.5}
}
@media (max-width:640px){
  .hd-search{display:none}
  .hd-right .btn:not(.btn-accent),.hd-user{display:none}
  .hero{min-height:420px;border-radius:14px}
  .hero h1{font-size:46px}
  .hero-body{padding:20px}
  .lede{font-size:15.5px}
  .hero-acts .btn:not(.btn-accent){display:none}
  .crumb{font-size:12px}
  .crumb .co{display:none}
  .vitals{grid-template-columns:1fr 1fr}
  .vital,.vital + .vital{padding:12px 0;border-left:0}
  .vital:nth-child(even){padding-left:16px;border-left:1px solid var(--hair)}
  .vital:nth-child(n+3){border-top:1px solid var(--hair)}
  .rc{grid-template-columns:1fr 1fr}
  .sig-stats{grid-template-columns:1fr}
  .sig-photo{transform:none}
  .people{grid-template-columns:repeat(2,1fr)}
  .lm{grid-template-columns:1fr 1fr}
  .t-head h3{font-size:20px}
  .t-tok small{display:none}
  .brow{grid-template-columns:84px minmax(0,1fr) 52px}
  .sh{flex-direction:column;align-items:flex-start;gap:6px}
  .sh h2{font-size:23px}
  .story{padding:18px}
  .mapfig img{height:220px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- housing (app/pages/housing.php) ---------- */
.hz-hero h1{font-size:40px;max-width:620px}
.hz-hero h1 em{font-style:normal;color:var(--accent-ink);white-space:nowrap}
.hz-hero .hb-in > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;max-width:600px}
.hz-traits{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.hz-trait{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;transition:border-color .15s,box-shadow .15s}
.hz-trait:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.hz-trait.top{background:var(--accent-tint);border-color:transparent}
.hz-trait b{font-size:17px;letter-spacing:-.015em;margin-top:6px}
.hz-trait small{font-size:13.5px;color:var(--muted);line-height:1.4}
.hz-ti{width:36px;height:36px;border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--accent-ink)}
.hz-trait.top .hz-ti{background:#fff}
.hz-star > .sh .kick{color:var(--accent-ink)}
.hz-star > .sh h2{color:var(--ink)}
.hz-two{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}
.hz-side{display:flex;flex-direction:column;gap:12px}
.hz-side .stats,.hz-two > .stats{align-self:stretch}
.hz-then{border-radius:14px;background:var(--surface);padding:16px}
.hz-then p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.45}
.hz-then-d{font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--accent-ink);margin-top:6px}
.hz-chart{position:relative}
.hz-chart svg{width:100%;height:auto;display:block;overflow:visible}
.hz-grid{stroke:var(--hair);stroke-width:1}
.hz-ax{font:11px var(--sans);fill:var(--faint)}
.hz-line{fill:none;stroke:#9aa3b2;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.hz-line.me{stroke:var(--accent);stroke-width:2.6}
.hz-area{fill:var(--accent);opacity:.08}
.hz-end{fill:#fff;stroke:var(--accent);stroke-width:2.5}
.hz-cross{stroke:var(--faint);stroke-width:1;stroke-dasharray:3 3}
.hz-dot{fill:#9aa3b2;stroke:#fff;stroke-width:2}
.hz-dot.me{fill:var(--accent)}
.hz-tip{position:absolute;pointer-events:none;background:var(--night);color:#fff;font-size:12.5px;line-height:1.45;border-radius:8px;padding:7px 10px;white-space:nowrap;transform:translate(-50%,-118%);z-index:2}
.hz-bar .hit{fill:transparent}
.hz-bar .one{fill:var(--accent)}
.hz-bar .more{fill:#2f74d0}
.hz-bar.part rect.one,.hz-bar.part rect.more{opacity:.4}
.hz-bar:hover .one,.hz-bar:hover .more{filter:brightness(.88)}
.hz-tbl{margin-top:12px;font-size:13px;color:var(--muted)}
.hz-tbl summary{cursor:pointer;font-weight:600;color:var(--accent-ink);font-size:13.5px}
.hz-tbl .tbl{margin-top:10px}
.hz-tw{overflow-x:auto}
.hz-tw .tbl{min-width:560px}
.hz-me td{font-weight:700;background:var(--accent-tint)}
.hz-me td:first-child{padding-left:8px;border-radius:8px 0 0 8px}
.hz-rk{margin:14px 0 0;font-size:14px}
.hz-pace .gwrap{margin:0 auto;width:100%}
.hz-grow{margin-top:18px;max-width:720px}
.hz-grow .kick{display:block;margin-bottom:10px}
.hz-grow p{margin:10px 0 0;font-size:14px;color:var(--ink-2);line-height:1.5}
/* the calculator */
.hz-calc{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:24px;border:1px solid var(--line);border-radius:18px;padding:22px;background:linear-gradient(160deg,var(--accent-tint),#fff 55%)}
.hz-in{display:flex;flex-direction:column;gap:16px}
.hz-in label{display:flex;flex-direction:column;gap:6px}
.hz-in label > span{font-size:13px;font-weight:700}
.hz-in label > span small{font-weight:400;color:var(--faint)}
.hz-money{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;height:44px}
.hz-money:focus-within{border-color:var(--accent)}
.hz-money i{font-style:normal;color:var(--muted);font-weight:600}
.hz-money input{border:0;outline:0;font:inherit;font-size:18px;font-weight:600;width:100%;padding:0 6px;background:none;color:var(--ink);font-variant-numeric:tabular-nums}
.hz-seg{align-self:flex-start}
.hz-seg button{border:0;background:none;padding:7px 14px;border-radius:8px;font-weight:600;font-size:14px;color:var(--muted)}
.hz-seg button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,22,35,.12)}
.hz-out{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-content:start}
.hz-res,.hz-mo,.hz-reach{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.hz-res{grid-column:1/-1}
.hz-big{font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-top:4px}
.hz-meter{position:relative;height:12px;border-radius:6px;background:#e8ebef;margin:18px 0 30px}
.hz-meter i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--accent);transition:width .25s}
.hz-meter em{position:absolute;top:-5px;width:2px;height:22px;background:var(--ink);font-style:normal;transition:left .25s}
.hz-meter em span{position:absolute;top:24px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:600;color:var(--muted)}
.hz-meter em.r span{left:auto;right:0;transform:none}
.hz-meter em.l span{left:0;transform:none}
.hz-verdict{margin:0;font-size:15px;font-weight:600;color:var(--ink-2)}
.hz-verdict.short{color:var(--bad)}
.hz-mo-t{font-size:28px;font-weight:700;letter-spacing:-.03em;margin:4px 0 6px}
.hz-mo .legend b{color:var(--ink);font-weight:600}
.hz-reach-l{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hz-reach-l a{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:7px 11px;min-width:0}
.hz-reach-l a b{font-size:13.5px}
.hz-reach-l a small{font-size:12px;color:var(--muted)}
.hz-reach-l a.in{border-color:var(--accent-soft);background:var(--accent-tint)}
.hz-reach-l a.in small{color:var(--accent-ink);font-weight:600}
.hz-reach-l a.out{opacity:.6}
.hz-reach-l a:hover{border-color:var(--accent);opacity:1}
/* historic houses + listings */
.hz-hist .ph{position:relative}
.hz-noimg{display:grid;place-items:center;height:100%;color:var(--faint)}
.hz-noimg .ic{width:34px;height:34px}
.hz-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.hz-list a{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}
.hz-list a:hover{border-color:var(--accent)}
.hz-list b{display:block;font-size:14.5px}
.hz-list small{font-size:12.5px;color:var(--muted)}
.hz-li{width:34px;height:34px;border-radius:9px;background:var(--surface);display:grid;place-items:center;color:var(--accent-ink);flex:none}
@media (max-width:1100px){.hz-calc{grid-template-columns:1fr}.hz-two{grid-template-columns:1fr}}
@media (max-width:640px){.hz-kpis{grid-template-columns:1fr 1fr;gap:8px}.hz-kpis .kpi{padding:12px}.hz-kpis .kpi .v{font-size:22px}.hz-hero h1{font-size:28px}.hz-hero h1 em{white-space:normal}.hz-out{grid-template-columns:1fr}.hz-big{font-size:36px}.hz-calc{padding:16px}.hz-traits{grid-template-columns:1fr 1fr}.hz-trait{padding:12px}.hz-trait b{font-size:15px}}
@media (max-width:420px){.hz-traits{grid-template-columns:1fr;gap:8px}.hz-trait{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;row-gap:2px}.hz-ti{grid-row:span 2}.hz-trait b{margin-top:0}}

/* ---------- safety (app/pages/safety.php) ---------- */
.sf-dotwrap{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}
.sf-dots{width:100%;height:auto;display:block}
.sf-dots circle{fill:#dfe3e8}
.sf-dots circle.p{fill:#2f74d0}
.sf-dots circle.v{fill:#e0763a}
.sf-trends{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.sf-map .nbmap .o.sf-ga,.sf-sw.sf-ga{fill:#bfe6cd;background:#bfe6cd}
.sf-map .nbmap .o.sf-gb,.sf-sw.sf-gb{fill:#dcebb5;background:#dcebb5}
.sf-map .nbmap .o.sf-gc,.sf-sw.sf-gc{fill:#f6ddb3;background:#f6ddb3}
.sf-map .nbmap .o.sf-gd,.sf-sw.sf-gd{fill:#f3c6b2;background:#f3c6b2}
.sf-map .nbmap .o.sf-gn,.sf-sw.sf-gn{fill:#eef0f3;background:#eef0f3}
.sf-map .nbmap a:hover .o{filter:brightness(.93)}
.sf-alerts{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.sf-alert{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:12px 14px;background:#fff7e6;border:1px solid #f3d9a4}
.sf-alert b{font-size:14.5px;color:#8a5300}
.sf-alert span{font-size:13.5px;color:var(--ink-2)}
.sf-ready{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.sf-rc{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.sf-rc p{margin:2px 0 10px;font-size:14px;color:var(--muted)}
.sf-name{font-size:18px;letter-spacing:-.015em;margin-top:6px}
.sf-911{background:linear-gradient(160deg,#fdecec,#fff 60%);border-color:#f5d0d0}
.sf-911 .kick{color:var(--bad)}
.sf-big{font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--bad);margin-top:6px}
.sf-calls{display:flex;flex-direction:column;gap:6px;width:100%}
.sf-calls a,.sf-calls button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 12px;font-size:13.5px;text-align:left}
.sf-calls span{color:var(--muted)}
.sf-calls button b{color:var(--accent-ink);font-weight:600}
.sf-calls a:hover,.sf-calls button:hover{border-color:var(--accent)}
@media (max-width:900px){.sf-trends{grid-template-columns:1fr}}
@media (max-width:640px){.sf-tw .tbl{min-width:0;font-size:13.5px}.sf-tw .yr{display:none}.sf-map .nbl:not(.me){font-size:10px}.sf-big{font-size:40px}}

/* ---------- natural hazards (app/pages/hazards.php) ---------- */
.haz-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;border-radius:18px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--hb) 45%,#fff),#fff 70%)}
.haz-hin{padding:30px 28px 28px 32px;min-width:0}
.haz-hero h1{font-size:38px;letter-spacing:-.035em;line-height:1.06;margin-top:8px;max-width:640px}
.haz-hero .haz-hin > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;line-height:1.5;max-width:620px}
.haz-hchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.haz-hchips a{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px 0 8px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-2)}
.haz-hchips a span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--hc) 16%,#fff);font-size:13px}
.haz-hchips a b{color:var(--hc);font-weight:700}
.haz-hchips a:hover{border-color:var(--hc)}
.haz-dial{display:grid;place-items:center;padding:22px;background:color-mix(in srgb,var(--hb) 60%,#fff) center/cover no-repeat}
.haz-dc{background:rgba(255,255,255,.94);border-radius:16px;padding:14px 14px 12px;width:100%;max-width:256px;text-align:center;box-shadow:0 8px 30px rgba(15,22,35,.12)}
.haz-dc .gauge{width:100%;height:auto;display:block}
.haz-dc small{display:block;font-size:12px;color:var(--muted);line-height:1.35;margin-top:2px}
/* exposure */
.haz-exp{display:flex;flex-direction:column}
.haz-scale{position:relative;display:flex;gap:3px;height:16px;margin:34px 0 8px}
.haz-scale span{flex:1;border-radius:4px;opacity:.55}
.haz-scale span.on{opacity:1;box-shadow:inset 0 0 0 2px rgba(15,22,35,.18)}
.haz-scale em{position:absolute;top:-6px;bottom:-6px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--ink);font-style:normal}
.haz-scale em b{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;background:var(--ink);color:#fff;border-radius:6px;padding:2px 7px}
.haz-sl span{flex:1;text-align:center;font-size:11.5px}
.haz-sl span.on{color:var(--ink);font-weight:700}
.haz-st{margin:16px 0 0;font-size:14.5px;color:var(--ink-2)}
.haz-st b{color:var(--ink)}
.haz-dwrap{display:flex;align-items:center;gap:18px}
.haz-donut{width:132px;height:132px;flex:none}
.haz-dkey{display:flex;flex-direction:column;gap:7px;font-size:13.5px;min-width:0;flex:1}
.haz-dkey span{display:flex;align-items:center;gap:8px}
.haz-dkey i{width:10px;height:10px;border-radius:3px;flex:none}
.haz-dkey b{margin-left:auto;font-variant-numeric:tabular-nums}
/* hazard tiles */
.haz-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.haz-tile{border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(170deg,color-mix(in srgb,var(--hc) 9%,#fff),#fff 55%);min-width:0}
.haz-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:color-mix(in srgb,var(--hc) 16%,#fff);flex:none}
.haz-tile h3{font-size:16px;margin:10px 0 0;letter-spacing:-.01em}
.haz-big{font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1.05;color:var(--hc);margin-top:4px}
.haz-big small{display:block;font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--muted);margin-top:2px}
.haz-meter{display:flex;gap:3px;margin:12px 0 6px}
.haz-meter i{flex:1;height:6px;border-radius:3px;background:#e8ebef}
.haz-meter i.on{background:var(--hc)}
.haz-vs{font-size:12.5px;color:var(--muted);line-height:1.4}
.haz-vs b{color:var(--ink-2)}
.haz-fq{font-size:12.5px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--hair)}
.haz-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}
.haz-none .chip{background:#fff;border:1px dashed var(--line);color:var(--faint)}
.haz-tip{display:flex;gap:10px;align-items:flex-start;margin-top:16px;border-radius:12px;background:var(--surface);padding:12px 14px;font-size:14px;color:var(--ink-2)}
.haz-tip .ic{width:18px;height:18px;color:var(--accent-ink);flex:none;margin-top:1px}
/* flood */
.haz-cc{position:relative;height:150px;margin-top:26px;border-bottom:1px solid var(--line)}
.haz-bars{width:100%;height:100%;display:block}
.haz-bars rect{fill:#8cc0e2}
.haz-bars rect.pk{fill:#2f74d0}
.haz-bars rect.hit{fill:transparent}
.haz-bars g:hover rect:not(.hit){fill:#1f5a86}
.haz-pl{position:absolute;transform:translate(-50%,-3px);font-size:11.5px;font-weight:700;color:var(--ink-2);pointer-events:none;white-space:nowrap}
.haz-axl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint);margin-top:4px}
.haz-ev{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.haz-ev li{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-bottom:1px solid var(--hair);padding-bottom:6px}
.haz-ev li span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.haz-rep{margin-top:18px}
.haz-houses{display:flex;flex-wrap:wrap;gap:3px;max-width:640px}
.haz-houses svg{width:20px;height:20px}
.haz-ins{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:18px;align-items:center;margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:16px}
.haz-ring{display:flex;flex-direction:column;align-items:center;gap:4px;width:118px;text-align:center}
.haz-ring svg{width:84px;height:84px}
.haz-ring text{font:700 17px var(--sans);fill:var(--ink)}
.haz-ring small{font-size:12px;color:var(--muted);line-height:1.3}
.haz-crs{display:flex;flex-direction:column;gap:4px;border-radius:12px;padding:12px 14px;background:var(--surface);min-width:0}
.haz-crs.on{background:var(--accent-tint)}
.haz-crs b{font-size:20px;letter-spacing:-.02em}
.haz-crs p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.45}
.haz-crs small{font-size:12px;color:var(--faint)}
.haz-done{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.haz-done div{border-radius:12px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column}
.haz-done b{font-size:26px;letter-spacing:-.03em;color:var(--accent-ink)}
.haz-done small{font-size:13px;color:var(--muted)}
/* storms remembered */
.haz-tl{list-style:none;margin:0;padding:0;position:relative}
.haz-tl::before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:2px;background:var(--hair)}
.haz-tl li{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:0 0 16px}
.haz-tdot{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:color-mix(in srgb,var(--dc) 16%,#fff);box-shadow:0 0 0 4px #fff}
.haz-tl li > div{display:flex;flex-direction:column;gap:2px;padding-top:1px}
.haz-ty{font-size:12.5px;font-weight:700;color:var(--dc);letter-spacing:.02em}
.haz-tl b{font-size:15.5px;letter-spacing:-.01em}
.haz-tl small{font-size:13.5px;color:var(--muted)}
.haz-more summary{cursor:pointer;font-weight:600;color:var(--accent-ink);font-size:14px;margin:0 0 14px 52px}
.haz-decs{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;align-items:end;height:140px}
.haz-decs > div{display:flex;flex-direction:column;align-items:center;height:100%;gap:3px}
.haz-decs span{flex:1;width:100%;max-width:30px;display:flex;flex-direction:column-reverse}
.haz-decs i{display:block;width:100%}
.haz-decs i.h{background:var(--accent)}
.haz-decs i.c{background:#cfd4dc;border-radius:4px 4px 0 0}
.haz-decs b{font-size:12px;min-height:15px}
.haz-decs small{font-size:11px;color:var(--faint)}
.haz-cl{margin:12px 0 10px;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.haz-clist{margin-top:10px}
.haz-ag{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.haz-ag a{display:flex;flex-direction:column;gap:4px;min-width:0}
.haz-ag img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--surface);filter:sepia(.15)}
.haz-ag small{font-size:12px;color:var(--muted);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* storm season */
.haz-months{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;height:170px}
.haz-months > div{display:flex;flex-direction:column;align-items:center;height:100%;gap:3px}
.haz-months span{flex:1;width:100%;max-width:38px;display:flex;flex-direction:column-reverse;border-radius:6px;overflow:hidden}
.haz-months i{display:block;width:100%}
.haz-months b{font-size:12px;min-height:15px}
.haz-months small{font-size:12px;color:var(--muted);font-weight:600}
/* be ready */
.haz-kit{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.haz-kc{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:linear-gradient(170deg,color-mix(in srgb,var(--hc) 8%,#fff),#fff 50%);display:flex;flex-direction:column}
.haz-kh{display:flex;align-items:center;gap:10px}
.haz-kh b{font-size:17px;letter-spacing:-.015em}
.haz-kc ul,.haz-chk{margin:12px 0;padding-left:18px;display:flex;flex-direction:column;gap:7px;font-size:14px;color:var(--ink-2);line-height:1.45}
.haz-kc .link{font-size:13.5px;margin-top:auto}
.haz-chk{margin:8px 0 0}
.haz-fv{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 12px;font-size:13.5px}
.haz-fv span{color:var(--muted)}
.haz-ready .sf-calls a b{color:var(--accent-ink);font-weight:600}
/* neighbors */
.haz-map .nbmap .o.haz-b1{fill:#cfe6f5}.haz-map .nbmap .o.haz-b2{fill:#c9ead6}.haz-map .nbmap .o.haz-b3{fill:#f4e3a6}.haz-map .nbmap .o.haz-b4{fill:#f5c79c}.haz-map .nbmap .o.haz-b5{fill:#ef9f8a}.haz-map .nbmap .o.haz-bn{fill:#eef0f3}
.haz-map .nbmap .me{fill:var(--mb);stroke:var(--ink);stroke-width:2.2}
.haz-map .nbl.me{color:var(--ink);text-shadow:0 0 3px #fff,0 0 3px #fff;font-weight:800}
.haz-map .nbmap a:hover .o{filter:brightness(.92)}
.haz-pill{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.haz-tw .tbl{min-width:0}
@media (max-width:1100px){.haz-hero{grid-template-columns:minmax(0,1fr) 250px}}
@media (max-width:900px){.haz-hero{grid-template-columns:1fr}.haz-dial{padding:18px}.haz-ins{grid-template-columns:auto auto}.haz-crs{grid-column:1/-1}}
@media (max-width:640px){.haz-hin{padding:22px 18px}.haz-dc{max-width:220px}.haz-hero h1{font-size:28px}.haz-two{grid-template-columns:1fr}.haz-tiles{grid-template-columns:1fr 1fr;gap:8px}.haz-tile{padding:12px}.haz-big{font-size:28px}.haz-dwrap{gap:12px}.haz-donut{width:104px;height:104px}.haz-months{gap:3px;height:140px}.haz-decs{gap:3px}.haz-sl span{font-size:10px}.haz-tw td.sm,.haz-tw th:nth-child(3){display:none}}
@media (max-width:420px){.haz-tiles{grid-template-columns:1fr}}

/* ---------- Health (app/pages/health.php): .he-* ---------- */
.he-b{color:var(--good)} .he-w{color:var(--bad)} .he-s{color:var(--muted)}
b.he-b,b.he-w,b.he-s{font-weight:600}
.he-kpis .kpi .s b.he-b{color:var(--good)} .he-kpis .kpi .s b.he-w{color:var(--bad)} .he-kpis .kpi .s b.he-s{color:var(--muted)}
.he-top{display:flex;gap:18px;align-items:center}
.he-hbadge{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none}
.he-hbadge .badge{width:84px;height:84px;border-radius:20px;font-size:40px}
.he-hbadge small{font-size:11.5px;font-weight:600;color:var(--muted)}
.he-hero h1 em{font-style:normal;color:var(--accent-ink)}
.he-hero .hb-in > p{color:var(--ink-2);margin:14px 0 0;font-size:16px;max-width:640px}
.he-hero .hb-in > p.he-src{font-size:13px;color:var(--muted);margin-top:8px}
.he-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.he-kpis .kpi{display:block;transition:border-color .15s}
.he-kpis .kpi:hover{border-color:#c9ced7}
.he-kpis .kpi .s{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.he-subs{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:18px}
.he-sub{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;background:var(--surface)}
.he-sub span{display:flex;flex-direction:column;min-width:0}
.he-sub b{font-size:13.5px}
.he-sub small{font-size:12px;color:var(--muted)}
.he-say{font-size:13.5px;color:var(--ink-2);margin:-4px 0 14px}
/* conditions */
.he-cond{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:start}
.he-pict{display:flex;flex-direction:column;gap:12px}
.he-say2{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.35}
.he-say2 b{font-size:34px;letter-spacing:-.03em;margin-right:4px;vertical-align:-3px}
.he-say2 b.he-s{color:var(--ink)}
.he-grid{display:grid;grid-template-columns:repeat(20,1fr);gap:4px 3px}
.hp{width:100%;aspect-ratio:10/16;height:auto;fill:#dfe3e8;display:block}
.hp.on.b{fill:var(--good)} .hp.on.w{fill:var(--bad)} .hp.on.s{fill:#6b7484} .hp.on.v{fill:#6b57c9}
.he-cmp{font-size:13px;color:var(--muted)}
.he-bars{display:flex;flex-direction:column;gap:2px}
.he-bar{display:grid;grid-template-columns:150px minmax(0,1fr) 52px;gap:10px;align-items:center;border:0;background:none;padding:6px 8px;border-radius:8px;text-align:left}
.he-bar:hover{background:var(--surface)}
.he-bar.on{background:var(--accent-tint)}
.he-bar .l{font-size:13.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.he-bar.on .l{font-weight:600;color:var(--ink)}
.he-bar .t{position:relative;height:10px;background:#f0f2f5;border-radius:4px}
.he-bar .t i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}
.he-bar .t i.b{background:var(--good)} .he-bar .t i.w{background:var(--bad)} .he-bar .t i.s{background:#c3c9d2}
.he-bar .t u{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink);text-decoration:none}
.he-bar .v{font-size:13px;text-align:right}
.he-age{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:center;margin-top:16px;padding:18px;border-radius:14px;background:#f7f5ff;border:1px solid #e7e2fb}
.he-age .kick{color:#5b47b8}
.he-age p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2)}
.he-age h4{font-size:13px;font-weight:600;margin:0 0 8px}
/* habits */
.he-db{display:flex;flex-direction:column;gap:6px}
.he-dbr{display:grid;grid-template-columns:170px minmax(0,1fr) 84px;gap:14px;align-items:center;min-height:38px}
.he-dbr .nm{font-size:14px;font-weight:600}
.he-dbr .trk{position:relative;height:14px;background:linear-gradient(var(--line),var(--line)) center/100% 2px no-repeat}
.he-dbr .ln{position:absolute;top:5px;height:4px;border-radius:2px;opacity:.45}
.he-dbr .ln.b{background:var(--good)} .he-dbr .ln.w{background:var(--bad)} .he-dbr .ln.s{background:#9aa3b1}
.he-dbr .sv{position:absolute;top:0;width:14px;height:14px;margin-left:-7px;border-radius:50%;border:2.5px solid var(--ink);background:#fff}
.he-dbr .dot{position:absolute;top:-1px;width:16px;height:16px;margin-left:-8px;border-radius:50%;box-shadow:0 0 0 3px #fff}
.he-dbr .dot.b{background:var(--good)} .he-dbr .dot.w{background:var(--bad)} .he-dbr .dot.s{background:#9aa3b1}
.he-dbr .out{display:flex;flex-direction:column;text-align:right;line-height:1.2}
.he-dbr .out b{font-size:16px}
.he-dbr .out small{font-size:12px;color:var(--muted)}
.he-dbs{display:grid;grid-template-columns:170px minmax(0,1fr) 84px;gap:14px;margin-top:2px}
.he-dbs > span:nth-child(2){display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint)}
.he-dbs em{font-style:normal;width:0;display:flex;justify-content:center}
.he-ring{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);margin-right:5px;vertical-align:-1px;box-sizing:border-box}
.he-db .legend i.he-ring{background:#fff}
.he-move{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px;align-items:center;margin-top:16px;padding:18px;border-radius:16px;background:linear-gradient(160deg,var(--accent-tint),#fff 75%);border:1px solid var(--line)}
.he-move.one{grid-template-columns:1fr}
.he-movemap{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff}
.he-movemap img{width:100%;height:auto}
.he-move h3{font-size:19px;letter-spacing:-.02em;margin:6px 0 12px}
.he-places{display:flex;flex-direction:column;gap:6px}
.he-places a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.he-places a:hover{border-color:var(--accent)}
.he-places .n{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}
.he-places b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.he-places small{font-size:12.5px;color:var(--muted);white-space:nowrap}
.he-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
/* care */
.he-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.he-q{display:flex;flex-direction:column;gap:3px;padding:16px;border-radius:14px;border:1px solid var(--line);background:#fff}
.he-q.er{background:#fff5f3;border-color:#f6dcd6}
.he-q.top{background:#fffaf0;border-color:#f3e6c6}
.he-q.low{background:var(--accent-tint);border-color:transparent}
.he-q .ql{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.he-q .ql i{font-style:normal;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800}
.he-q.er .ql i{background:#c0492f} .he-q.top .ql i{background:#b7791f} .he-q.low .ql i{background:var(--accent)}
.he-q b{font-size:15.5px;margin-top:6px;line-height:1.3}
.he-q small{font-size:13px;color:var(--muted)}
.he-q .link{font-size:13.5px;margin-top:6px}
.he-cbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.he-filt{display:flex;flex-wrap:wrap;gap:6px}
.he-filt button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--ink-2)}
.he-filt button em{font-style:normal;font-size:11.5px;color:var(--faint)}
.he-filt button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.he-filt button.on em{color:#c9ced7}
.he-filt button:disabled{opacity:.45;cursor:default}
.he-tools{display:flex;gap:8px}
.he-search{display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:var(--faint)}
.he-search input{border:0;outline:none;font:inherit;font-size:13.5px;width:140px;color:var(--ink);background:none}
.he-tools select{height:34px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13.5px;padding:0 8px;background:#fff;color:var(--ink)}
.he-count{font-size:12.5px;color:var(--muted);margin:12px 0 8px;min-height:18px}
.he-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.he-cf.js .he-fac.cut,.he-cf.js .he-fac.off{display:none}
.he-fac{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.he-fac .fi{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px}
.he-fac.h .fi{background:#c0492f} .he-fac.c .fi{background:var(--accent)}
.he-fac .bd{flex:1;min-width:0;position:relative}
.he-fac .dist{position:absolute;right:0;top:0;font-weight:700;font-size:15px}
.he-fac .dist small{font-weight:500;color:var(--muted);font-size:12px}
.he-fac .nm{font-weight:600;font-size:14.5px;padding-right:58px;line-height:1.3}
.he-fac .mt{font-size:13px;color:var(--muted);margin-top:2px}
.he-fac .nr{color:var(--faint)}
.he-q .hl-stars,.he-fac .hl-stars{color:#d29a1e;letter-spacing:1px}
.he-q .hl-stars em,.he-fac .hl-stars em{font-style:normal;color:#dfe3e8}
.he-fac .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.he-fac .tags span{font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:5px;background:var(--surface);color:var(--muted)}
.he-fac .tags .er{background:#fdeae6;color:#a33a22}
.he-fac .tags .in{background:var(--accent-tint);color:var(--accent-ink)}
.he-fac .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:13px;font-weight:600}
.he-fac .acts a,.he-fac .acts button{color:var(--accent-ink);border:0;background:none;padding:0;font-size:13px;font-weight:600}
.he-fac .acts a:hover,.he-fac .acts button:hover{text-decoration:underline}
.he-fac .sites{margin-top:10px;border-top:1px solid var(--hair);padding-top:8px;display:flex;flex-direction:column;gap:5px;font-size:13px}
.he-fac .sites div{display:flex;justify-content:space-between;gap:8px}
.he-fac .sites span{color:var(--muted);white-space:nowrap}
.he-fac .sites a:hover{color:var(--accent-ink)}
.he-empty{grid-column:1/-1;padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}
.he-more{margin-top:12px;width:100%}
.he-hpsa{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:16px}
.he-hpsa > div{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:12px;font-size:13.5px}
.he-hpsa .ok{background:var(--surface);color:var(--muted)}
.he-hpsa .ok b{color:var(--good)}
.he-hpsa .short{background:#fff5f0;border:1px solid #f5ddd0;color:var(--ink-2)}
.he-hpsa .short b{color:#b4441f}
.he-hpsa small{font-size:12px;color:var(--muted)}
/* screenings */
.he-rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.he-ringc{display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 10px;border:1px solid var(--line);border-radius:14px}
.he-ringc svg{width:96px;height:96px}
.he-ringc circle{fill:none;stroke-width:10}
.he-ringc .bg{stroke:#eef0f3}
.he-ringc .fg{stroke-linecap:round}
.he-ringc .fg.b{stroke:var(--good)} .he-ringc .fg.w{stroke:var(--bad)} .he-ringc .fg.s{stroke:#9aa3b1}
.he-ringc .tk{stroke:var(--ink);stroke-width:2.5}
.he-ringc text{font:700 19px var(--sans);fill:var(--ink)}
.he-ringc b{font-size:13.5px;margin-top:6px;line-height:1.25}
.he-ringc small{font-size:12px;color:var(--muted)}
.he-insure{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;margin-top:14px}
.he-insure .n,.he-one .n,.he-needs .n,.he-dis .n{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.he-people{display:flex;flex-wrap:wrap;gap:3px}
.he-people .hp{width:14px}
.he-insure .muted,.he-one .muted,.he-needs .muted{font-size:13px}
/* mind */
.he-ones{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.he-one{display:flex;flex-direction:column;gap:10px}
.he-one .r1{display:flex;flex-direction:column;gap:2px}
.he-one .w{font-size:14px;color:var(--ink-2)}
.he-conn{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-top:14px;background:linear-gradient(160deg,#f7f5ff,#fff 75%);border-color:#e7e2fb}
.he-conn .kick{color:#5b47b8}
.he-conn h3{font-size:19px;letter-spacing:-.02em;margin-top:6px;line-height:1.3}
.he-conn p{margin:6px 0 0;font-size:14px}
.he-faces{display:flex;flex:none}
.he-faces .av{width:44px;height:44px;border:3px solid #fff;margin-left:-12px;font-size:16px}
.he-faces .av:first-child{margin-left:0}
.he-988{font-size:13px;color:var(--muted);margin:12px 0 0}
/* needs, disability */
.he-needs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.he-needs .card{display:flex;flex-direction:column;gap:4px}
.he-needs .ni{width:36px;height:36px;border-radius:10px;background:#eaf3fa;color:#2f7fb5;display:grid;place-items:center;margin-bottom:6px}
.he-needs .ni svg{width:20px;height:20px;fill:currentColor}
.he-needs .w{font-size:14px;color:var(--ink-2);margin-bottom:4px}
.he-needfoot{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.he-needfoot p{margin:0}
.he-dis{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;align-items:center}
.he-dis p{margin:6px 0 0;font-size:14px}
.he-hb{display:grid;grid-template-columns:170px minmax(0,1fr) 52px;gap:10px;align-items:center;min-height:30px;font-size:13.5px}
.he-hb .t{position:relative;height:10px;background:#f0f2f5;border-radius:4px}
.he-hb .t i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#8b7fd0}
.he-hb .t u{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink);text-decoration:none}
.he-hb b{text-align:right;font-weight:600}
/* around town */
.he-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.he-chips button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--ink-2)}
.he-chips button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.he-mapwrap{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.he-map{border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:8px}
.he-map svg{width:100%;height:auto;display:block;max-height:560px}
.he-map .tp{stroke:#fff;stroke-width:1.2;transition:fill .25s}
.he-map .tp.me{stroke:var(--ink);stroke-width:2.6}
.he-map text{font:600 10.5px var(--sans);fill:var(--ink-2);paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
.he-map text.me{font-size:13px;font-weight:800;fill:var(--ink)}
.he-map .pin circle{stroke:#fff;stroke-width:2}
.he-map .pin.h circle{fill:#c0492f} .he-map .pin.c circle{fill:var(--accent)}
.he-map .pin text{font:800 9px var(--sans);fill:#fff;stroke:none}
.he-map .pin.lit circle{stroke:var(--ink);stroke-width:3}
.he-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin-top:8px}
.he-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px;border:1px solid rgba(15,22,35,.08)}
.he-legend .pin-k{font-style:normal;width:16px;height:16px;border-radius:50%;color:#fff;font-size:9px;font-weight:800;display:inline-grid;place-items:center;border:0;vertical-align:-3px}
.he-legend .pin-k.h{background:#c0492f} .he-legend .pin-k.c{background:var(--accent)}
.he-side .rank{font-size:34px;font-weight:700;letter-spacing:-.03em;margin:4px 0 10px;line-height:1.1}
.he-side .rank small{display:block;font-size:12.5px;font-weight:500;color:var(--muted);letter-spacing:0}
.he-side .mini{display:flex;flex-direction:column}
.he-side .mini div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--hair);font-size:13.5px}
.he-side .mini div.me{font-weight:700}
.he-side .mini div.st{color:var(--muted);border-bottom:0}
.he-nbg{margin-top:16px;max-width:760px}
.he-nbg .brow{grid-template-columns:140px minmax(0,1fr) 40px;min-height:32px}
.he-nbg .brow:hover .l{color:var(--accent-ink)}
.he-nbg .brow .v{display:flex;justify-content:flex-end}
/* all measures, how */
.he-all{border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.he-all summary{cursor:pointer;font-weight:600;padding:12px 0}
.he-all .tbl{margin-bottom:12px}
.he-all td.he-g{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:18px}
.he-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.he-how p{margin:6px 0 0;font-size:14px;color:var(--muted)}
@media (max-width:1100px){.he-mapwrap{grid-template-columns:1fr}.he-cond{grid-template-columns:1fr}}
@media (max-width:900px){.he-move,.he-age,.he-dis{grid-template-columns:1fr}.he-conn{flex-direction:column;align-items:flex-start}}
@media (max-width:640px){
  .he-top{flex-direction:column;align-items:flex-start;gap:12px}.he-hbadge{flex-direction:row}.he-hbadge .badge{width:56px;height:56px;font-size:28px;border-radius:14px}
  .he-hero h1{font-size:30px}.he-kpis{grid-template-columns:1fr 1fr;gap:8px}.he-kpis .kpi{padding:12px}.he-kpis .kpi .v{font-size:22px}
  .he-bar{grid-template-columns:112px minmax(0,1fr) 46px;gap:8px;padding:6px 4px}.he-bar .l{font-size:12.5px}
  .he-dbr,.he-dbs{grid-template-columns:96px minmax(0,1fr) 62px;gap:10px}.he-dbr .nm{font-size:12.5px}
  .he-hb{grid-template-columns:120px minmax(0,1fr) 44px;font-size:12.5px}
  .he-insure{grid-template-columns:1fr;gap:10px}.he-cbar{flex-direction:column;align-items:stretch}.he-tools{width:100%}.he-search{flex:1}.he-search input{width:100%}
  .he-grid2{grid-template-columns:1fr}.he-rings{grid-template-columns:repeat(2,1fr)}.he-needs,.he-ones{grid-template-columns:1fr 1fr;gap:8px}.he-needs .card,.he-one{padding:14px}.he-needs .n,.he-one .n{font-size:24px}.he-needs .w,.he-one .w{font-size:13px}.he-nbg .brow{grid-template-columns:100px minmax(0,1fr) 34px}
}

/* ---------- outdoors (app/pages/outdoors.php) ---------- */
:root{--lz-trail:#8a5a2b;--lz-bike:#2f74d0;--lz-hot:#d9412b}
.lz-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.lz-legend button{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--faint)}
.lz-legend button.on{color:var(--ink-2);border-color:#cfd5dd}
.lz-sw{display:inline-block;width:16px;height:10px;border-radius:3px}
.lz-sw.fee{background:rgba(14,159,87,.3)}
.lz-sw.ease{background:repeating-linear-gradient(45deg,rgba(14,159,87,.45) 0 2px,transparent 2px 5px)}
.lz-sw.trail{height:0;border-radius:0;border-top:2.5px dashed var(--lz-trail)}
.lz-sw.bike{height:0;border-radius:0;border-top:3px solid var(--lz-bike)}
.lz-sw.poi{width:12px;height:12px;border-radius:50%;border:2px solid var(--lz-hot);background:#fff}
.lz-legend button:not(.on) .lz-sw{opacity:.35}
.lz-map{position:relative;border-radius:16px;overflow:hidden;background:#f3f5f2;border:1px solid var(--line)}
.lz-map svg{display:block;width:100%;height:auto;max-height:680px;touch-action:manipulation}
.lz-town{fill:#fbfcf9}
.lz-line{fill:none;stroke:#43483a;stroke-width:1.6;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;opacity:.7}
.lz-fee{fill:rgba(14,159,87,.24);stroke:rgba(14,159,87,.45);stroke-width:.8;fill-rule:evenodd;vector-effect:non-scaling-stroke}
.lz-ease{fill:url(#lzHatch);stroke:rgba(14,159,87,.3);stroke-width:.8;fill-rule:evenodd;vector-effect:non-scaling-stroke}
.lz-hatch{stroke:rgba(14,159,87,.5);stroke-width:2}
.lz-trail{fill:none;stroke:var(--lz-trail);stroke-width:1.7;stroke-dasharray:4 2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.lz-bike{fill:none;stroke:var(--lz-bike);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.lz-bike.path{stroke-width:3.4}
.lz-hl{fill:rgba(217,65,43,.14);stroke:var(--lz-hot);stroke-width:2;fill-rule:evenodd;vector-effect:non-scaling-stroke;pointer-events:none}
.lz-pin{cursor:pointer;outline:none}
.lz-pin circle{fill:var(--accent);stroke:#fff;stroke-width:2.5;vector-effect:non-scaling-stroke}
.lz-pin text{fill:#fff;font:700 12px var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.lz-pin.hot circle,.lz-pin:focus-visible circle{fill:var(--lz-hot)}
.lz-map.zoomed .lz-pin:not(.hot){opacity:.35}
.lz-poi circle{fill:#fff;stroke:var(--lz-hot);stroke-width:2.5;vector-effect:non-scaling-stroke}
.lz-poi text{font-size:10px;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.lz-poi.hot circle{fill:var(--lz-hot)}
.lz-reset{position:absolute;top:12px;right:12px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font:600 13px var(--sans);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.lz-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--faint);margin-top:8px}
.lz-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.lz-filters button{height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.lz-filters button small{color:var(--faint);font-weight:500;margin-left:2px}
.lz-filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.lz-filters button[aria-pressed="true"] small{color:#c9ced7}
.lz-walks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.lz-walk{display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:border-color .15s,box-shadow .15s}
.lz-walk:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.lz-walk.hot{border-color:var(--lz-hot)}
.lz-walk-v{position:relative;border:0;padding:12px;background:#f3f5f2;display:grid;place-items:center;min-height:150px;cursor:zoom-in}
.lz-shape{width:100%;height:100%;max-height:150px;display:block}
.lz-shape-f{fill:rgba(14,159,87,.22);stroke:rgba(14,159,87,.65);stroke-width:1.2;fill-rule:evenodd;vector-effect:non-scaling-stroke}
.lz-num{position:absolute;left:10px;top:10px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px #fff}
.lz-walk.hot .lz-num{background:var(--lz-hot)}
.lz-walk-b{padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.lz-walk-b h3{font-size:16.5px;letter-spacing:-.015em;line-height:1.25}
.lz-facts{display:flex;gap:14px;font-size:13.5px;color:var(--muted)}
.lz-facts b{color:var(--ink);font-size:15px}
.lz-tchips{display:flex;flex-wrap:wrap;gap:5px}
.lz-tchips span{font-size:12px;font-weight:600;color:var(--lz-trail);background:rgba(138,90,43,.07);border:1px solid rgba(138,90,43,.2);border-radius:6px;padding:2px 7px}
.lz-dog{font-size:13px;font-weight:600;color:var(--muted)}
.lz-dog.yes,.lz-dog.leashed{color:var(--accent-ink)}
.lz-dog.no{color:var(--bad)}
.lz-acts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}
.lz-all{margin-top:16px}
.lz-rows{display:flex;flex-direction:column;margin-top:8px}
.lz-rows2{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));column-gap:24px}
.lz-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair);font-size:14px}
.lz-row > div{flex:1;min-width:0}
.lz-row b{display:block;font-weight:600}
.lz-row small{font-size:12.5px;color:var(--muted)}
.lz-ri{width:32px;height:32px;border-radius:9px;background:var(--surface);display:grid;place-items:center;flex:none;font-size:16px}
.lz-ra{display:flex;gap:12px;align-items:center;white-space:nowrap;font-size:13.5px}
.lz-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-bottom:16px}
.lz-kinds button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;text-align:left}
.lz-kinds button span{font-size:20px;line-height:1.1}
.lz-kinds button b{font-size:18px;margin-top:4px}
.lz-kinds button small{font-size:12.5px;color:var(--muted)}
.lz-kinds button[aria-selected="true"]{border-color:var(--accent);background:var(--accent-tint)}
.lz-kh{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lz-water{display:flex;flex-wrap:wrap;gap:6px}
.lz-water a{display:inline-flex;align-items:baseline;gap:6px;padding:6px 11px;border-radius:10px;background:#eef4fb;border:1px solid #d3e2f3;color:#245a95;font-size:13.5px;font-weight:600}
.lz-water a small{font-weight:500;color:#5a7ea6}
.lz-water a:hover{border-color:var(--lz-bike)}
.lz-courts{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.lz-courts div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}
.lz-courts b{font-size:20px}
.lz-courts span{font-size:12.5px;color:var(--muted)}
.lz-acc{font-size:12px;font-weight:700;border-radius:6px;padding:2px 8px;background:var(--surface);color:var(--muted)}
.lz-acc.ok{background:var(--accent-tint);color:var(--accent-ink)}
.lz-acc.warn{background:#fff4e0;color:#8a5300}
.lz-acc.no{background:#fdecec;color:var(--bad)}
.lz-week{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.lz-day{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.lz-day .g{font-size:26px;line-height:1.2}
.lz-day .t{font-weight:700;font-size:16px}
.lz-day .t small{color:var(--faint);font-weight:500}
.lz-day > small{font-size:12px;color:var(--muted)}
.lz-nbt .tbl{min-width:0}
.lz-shape{overflow:hidden}
.lz-day.best{border-color:var(--accent);background:var(--accent-tint)}
@media (max-width:640px){.lz-walks{grid-template-columns:1fr}.lz-walk{grid-template-columns:104px minmax(0,1fr)}.lz-walk-v{min-height:120px;padding:8px}.lz-week{grid-template-columns:repeat(3,minmax(0,1fr))}.lz-rows2{grid-template-columns:1fr}.lz-ra{gap:8px}}

/* ---------- Library (app/pages/library.php) · prefix lib- ---------- */
.lib-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;border-radius:18px;padding:32px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line);overflow:hidden}
.lib-bg{position:absolute;right:0;top:0;width:62%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 70%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 70%)}
.lib-hero.has-photo{background:#fff}
.lib-hin{position:relative;z-index:1;max-width:620px}
.lib-hero.has-photo .lib-hin{background:linear-gradient(90deg,#fff 70%,rgba(255,255,255,0));margin:-32px 0 -32px -32px;padding:32px 56px 32px 32px}
.lib-hero h1{font-size:42px;letter-spacing:-.04em;line-height:1.04;margin-top:6px}
.lib-hin > p{color:var(--ink-2);margin:10px 0 0;font-size:16px}
.lib-addr{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:14.5px;margin-top:14px}
.lib-addr .ic{width:16px;height:16px;margin-top:3px;color:var(--accent-ink)}
.lib-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.lib-acts .ic{width:16px;height:16px}
.lib-hero .rk-row{margin-top:14px}
.lib-hero .credit{position:absolute;right:12px;bottom:8px;z-index:1;font-size:11px;color:#fff;background:rgba(15,22,35,.55);padding:2px 8px;border-radius:6px;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* the library card */
.lib-cardwrap{position:relative;z-index:1;width:330px}
.lib-card{position:relative;aspect-ratio:1.586;border-radius:16px;padding:16px 18px;color:#fff;background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 12px),linear-gradient(135deg,#0a6b3b,#0e9f57 62%,#17b86d);box-shadow:0 18px 40px rgba(10,60,35,.28),0 2px 6px rgba(10,60,35,.2);transform:rotate(-3deg);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.lib-ct{display:flex;gap:10px;align-items:center}
.lib-ct b{display:block;font-size:15px;line-height:1.2;letter-spacing:-.01em}
.lib-ct small{font-size:11.5px;opacity:.8}
.lib-cm{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.lib-cm .ic{width:19px;height:19px}
.lib-cn small{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;opacity:.75}
.lib-cn span{font-size:14px;font-weight:600;font-style:italic;border-bottom:1px dashed rgba(255,255,255,.5);padding-bottom:1px}
.lib-cp{display:flex;gap:5px;flex-wrap:wrap}
.lib-cp span{font-size:10.5px;font-weight:700;background:rgba(255,255,255,.18);border-radius:999px;padding:2px 8px}
.lib-cf{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lib-cf small{font-size:10.5px;opacity:.85;text-align:right}
.lib-bc{display:flex;gap:1.5px;height:28px;background:#fff;border-radius:5px;padding:4px 7px}
.lib-bc i{display:block;height:100%;background:#0f1623}
.lib-stamp{position:absolute;right:14px;top:58px;border:2.5px solid #ffd45c;color:#ffd45c;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;border-radius:8px;transform:rotate(-14deg);opacity:.95}
.lib-cq{margin:14px 0 0;text-align:center;font-size:13px;color:var(--muted);font-weight:600}
.lib-hero.has-photo .lib-cq{color:#fff;background:rgba(15,22,35,.62);backdrop-filter:blur(6px);border-radius:999px;padding:5px 12px;width:max-content;max-width:100%;margin:16px auto 0}
/* a year at the library */
.lib-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.lib-tile{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
.lib-tile .v{font-size:30px;font-weight:700;letter-spacing:-.03em;margin-top:10px;line-height:1.1}
.lib-tile .k{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.lib-tile .s{font-size:12.5px;color:var(--accent-ink);font-weight:600;margin-top:2px}
.lib-clock{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:2px;margin-top:14px;border-radius:16px;overflow:hidden;background:#1c2634}
.lib-clock > div{background:var(--night);color:#fff;padding:16px 18px;display:flex;flex-direction:column}
.lib-clock .kick{color:var(--accent-soft)}
.lib-clock b{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-top:4px}
.lib-clock small{font-size:13px;color:#b8c0cc}
.lib-extra{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lib-extra span{font-size:13.5px;color:var(--muted);background:var(--surface);border-radius:999px;padding:6px 12px}
.lib-extra b{color:var(--ink);font-weight:700}
/* how it compares */
.lib-pbar i{background:var(--accent-soft)}
.lib-pbar em{background:var(--accent-ink);box-shadow:0 0 0 1px var(--accent-ink)}
.gx-lab b.lib-up{color:var(--good)}
.gx-lab b.lib-dn{color:var(--muted);font-weight:600}
.lib-rkl{display:flex;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.lib-rkl:first-of-type{border-top:0;margin-top:4px}
.lib-rkl b{font-size:22px;font-weight:700;color:var(--accent-ink);min-width:44px}
.lib-rkl span{font-size:14px;font-weight:600}
.lib-rkl small{display:block;font-size:12.5px;color:var(--muted);font-weight:400}
.lib-rkl:hover span{color:var(--accent-ink)}
/* what people borrow */
.lib-donut{display:flex;gap:24px;align-items:center}
.lib-donut svg{width:190px;height:190px;flex:none}
.lib-dn1{font-size:20px;font-weight:700;fill:var(--ink);letter-spacing:-.02em}
.lib-dn2{font-size:10.5px;fill:var(--muted)}
.lib-dkey{flex-direction:column;gap:9px;font-size:13.5px;margin:0}
.lib-dkey b{color:var(--ink);margin-left:4px}
/* what your card is worth */
.lib-calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;border:1px solid var(--line);border-radius:18px;padding:22px;background:linear-gradient(160deg,var(--accent-tint),#fff 55%)}
.lib-cin{display:flex;flex-direction:column;gap:8px}
.lib-step{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 10px 9px 14px}
.lib-step b{display:block;font-size:14.5px}
.lib-step small{display:block;font-size:12.5px;color:var(--muted)}
.lib-pm{display:flex;align-items:center;flex:none}
.lib-pm button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px;font-weight:600;line-height:1;color:var(--accent-ink)}
.lib-pm button:hover{border-color:var(--accent);background:var(--accent-tint)}
.lib-pm output{min-width:40px;text-align:center;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.lib-cout{display:flex;flex-direction:column;gap:12px;min-width:0}
.lib-res,.lib-pays{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.lib-big{font-size:48px;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-top:4px;color:var(--accent-ink)}
.lib-res > small{font-size:13.5px;color:var(--muted)}
.lib-res > small b{color:var(--ink)}
.lib-cbar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#e8ebef;margin:14px 0 10px}
.lib-cbar i{flex:0 0 auto;width:0;transition:width .25s}
.lib-cbar .c0{background:#0e9f57}.lib-cbar .c1{background:#e0a030}.lib-cbar .c2{background:#2f74d0}.lib-cbar .c3{background:#8b5cf6}.lib-cbar .c4{background:#e0763a}.lib-cbar .c5{background:#14b8a6}
.lib-ret{margin:0;font-size:15px;font-weight:600;color:var(--ink-2)}
.lib-pbig{font-size:30px;font-weight:700;letter-spacing:-.03em;margin-top:4px}
.lib-pbig small{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.lib-pays p{margin:6px 0 0;font-size:14px;color:var(--ink-2);line-height:1.45}
.lib-stack{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:12px 0 0;background:#e8ebef}
.lib-stack i{display:block;height:100%}
.lib-ff{display:flex;gap:8px;align-items:flex-start}
.lib-ff .ic{color:var(--accent-ink);margin-top:1px}
/* the building */
.lib-nr{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;margin-top:20px;border-radius:16px;padding:16px;background:var(--surface)}
.lib-nr img{width:100%;height:100%;max-height:240px;object-fit:cover;border-radius:12px}
.lib-nr h3{font-size:20px;letter-spacing:-.02em;margin-top:4px}
.lib-nr p{margin:8px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.5}
.lib-nr p.lib-nrx{color:var(--muted);font-size:14px}
.lib-nr .link{display:inline-block;margin-top:10px;font-size:14px}
.lib-h3{font-size:17px;letter-spacing:-.015em;margin:26px 0 10px}
.lib-note{border-radius:14px;padding:16px;background:var(--surface);font-size:14.5px;color:var(--ink-2)}
/* nearest libraries */
.lib-nlist{display:flex;flex-direction:column;gap:8px}
.lib-nlist a{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.lib-nlist a:hover{border-color:var(--accent)}
.lib-nlist b{display:block;font-size:14.5px}
.lib-nlist small{font-size:12.5px;color:var(--muted)}
.lib-nlist em{font-style:normal;font-size:13px;font-weight:600;color:var(--accent-ink)}
.lib-mi{font-size:24px;font-weight:700;color:var(--accent-ink);letter-spacing:-.03em;line-height:1}
.lib-mi small{font-size:12px;color:var(--muted);margin-left:2px;font-weight:600}
/* libraries next door */
.lib-map .nbmap .o.lib-q1,.lib-sw.lib-q1{fill:#d6f0e1;background:#d6f0e1}
.lib-map .nbmap .o.lib-q2,.lib-sw.lib-q2{fill:#a7e0c0;background:#a7e0c0}
.lib-map .nbmap .o.lib-q3,.lib-sw.lib-q3{fill:#62c893;background:#62c893}
.lib-map .nbmap .o.lib-q4,.lib-sw.lib-q4{fill:#27a463;background:#27a463}
.lib-map .nbmap .o.lib-qn,.lib-sw.lib-qn{fill:#eef0f3;background:#e3e6ea}
.lib-map .nbmap .me{fill:var(--night)}
.lib-map .nbmap a:hover .o{filter:brightness(.93)}
.hz-tw .tbl.lib-tbl{min-width:0}.lib-tbl th.r{white-space:nowrap}
.lib-ffc{display:inline-block;font-size:11px;font-weight:600;color:var(--accent-ink);background:var(--accent-tint);border-radius:999px;padding:0 7px;margin-left:4px;white-space:nowrap}
@media (max-width:1100px){.lib-calc{grid-template-columns:1fr}}
@media (max-width:900px){.lib-hero{grid-template-columns:1fr;padding:22px}.lib-hero.has-photo .lib-hin{background:rgba(255,255,255,.9);margin:-22px -22px 0;padding:22px;border-radius:0}.lib-bg{width:100%;-webkit-mask-image:none;mask-image:none}.lib-cardwrap{justify-self:center}.lib-hero h1{font-size:32px}}
@media (max-width:640px){.lib-hero h1{font-size:28px}.lib-cardwrap{width:min(300px,100%)}.lib-card{padding:13px 15px}.lib-tiles{grid-template-columns:1fr 1fr;gap:8px}.lib-tile{padding:12px}.lib-tile .v{font-size:24px}.lib-clock b{font-size:28px}.lib-donut{flex-direction:column;align-items:flex-start}.lib-donut svg{width:170px;height:170px}.lib-calc{padding:14px}.lib-big{font-size:40px}.lib-nr{grid-template-columns:1fr}.lib-tbl .hr,.lib-tbl .lib-ffc{display:none}.lib-tbl td.sm{font-size:12px}.lib-nlist a{grid-template-columns:48px minmax(0,1fr)}.lib-nlist em{display:none}}

/* ---------- colleges (app/pages/colleges.php; cl- prefix) ---------- */
.cl-seg{display:flex;flex-wrap:wrap;gap:6px}
.cl-seg button{height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600;font-size:13.5px;color:var(--ink-2)}
.cl-seg button:hover{border-color:var(--accent)}
.cl-seg button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.cl-hero-t h1 em{font-style:normal;color:var(--accent-ink)}
.cl-hero-t .rk i .ic{width:14px;height:14px}
.cl-every{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
.cl-every.nomap{grid-template-columns:1fr}
.cl-map svg{display:block;width:100%;height:auto}
.cl-ctx{fill:#f1f3f5;stroke:#d5dae1;stroke-width:1}
.cl-ctx.me{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.6}
.cl-dot{stroke:#fff;stroke-width:2;fill-opacity:.9;cursor:pointer}
a:hover > .cl-dot{fill-opacity:1;stroke:var(--ink)}
.cl-lab{font:700 12px var(--sans);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.cl-lab.sm{font-size:11px;font-weight:600;fill:var(--ink-2)}
.cl-lab.me{font-size:12.5px;font-weight:800}
.cl-cards-w{display:flex;flex-direction:column;gap:12px;min-width:0}
.cl-cards{display:grid;grid-template-columns:1fr;gap:10px}
.cl-every.nomap .cl-cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.cl-card{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-left:4px solid var(--tc,var(--accent));border-radius:14px;padding:14px 16px;background:#fff;transition:border-color .15s,box-shadow .15s}
a.cl-card:hover{box-shadow:0 6px 24px rgba(15,22,35,.07);border-color:#c9ced7;border-left-color:var(--tc)}
.cl-ch{display:flex;gap:12px;align-items:center}
.cl-ch > span:nth-child(2){flex:1;min-width:0}
.cl-ch b{display:block;font-size:16px;letter-spacing:-.01em}
.cl-ch small{display:block;font-size:12.5px;color:var(--muted)}
.cl-ci{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--tc) 12%,#fff);color:var(--tc)}
.cl-go{color:var(--accent-ink);font-weight:700;flex:none;font-size:13.5px;white-space:nowrap}
.cl-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:10px;border-top:1px solid var(--hair)}
.cl-nums b{display:block;font-size:17px}
.cl-nums small{font-size:11.5px;color:var(--muted)}
.cl-pick{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cl-prows{display:flex;flex-direction:column;gap:6px;margin-top:16px}
.cl-prow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 92px;gap:14px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.cl-pn{display:flex;gap:10px;align-items:center;min-width:0}
.cl-pn b{display:block;font-size:14.5px}
.cl-pn small{display:block;font-size:12px;color:var(--muted)}
a.cl-pn:hover b{color:var(--accent-ink)}
.cl-pb{display:block;height:10px;border-radius:5px;background:#eef0f3;position:relative;overflow:hidden}
.cl-pb i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--accent);transition:width .3s}
.cl-pv{text-align:right}
.cl-pv b{display:block;font-size:16px}
.cl-pv small{font-size:11.5px;color:var(--muted)}
.cl-scatter{display:block;width:100%;height:auto}
.cl-scatter .gl{stroke:#eef0f3}
.cl-scatter .ax{font:500 11px var(--sans);fill:var(--faint)}
.cl-scatter .ax.t{font-weight:700;fill:var(--muted)}
.cl-sp{fill:#c3c9d2;stroke:#fff;stroke-width:1.5;cursor:pointer}
.cl-sp.me{stroke-width:2.5}
a:hover > .cl-sp{stroke:var(--ink)}
.cl-payl{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cl-po{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:13.5px;color:var(--muted);padding-top:8px;border-top:1px solid var(--hair)}
.cl-po > b{color:var(--ink);font-size:14.5px;margin-right:auto}
.cl-po span b{color:var(--ink)}
.cl-mix{display:flex;height:16px;gap:2px}
.cl-mix i{display:block;border-radius:4px}
.cl-maj{display:flex;flex-direction:column}
.cl-mr{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 84px;gap:14px;align-items:center;padding:9px 0;border-top:1px solid var(--hair)}
.cl-mn b{display:block;font-size:14px;line-height:1.3}
.cl-mn small{display:block;font-size:12px;color:var(--muted)}
.cl-gown{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.cl-hund{display:grid;grid-template-columns:repeat(20,1fr);gap:3px;max-width:340px}
.cl-hund i{aspect-ratio:1;border-radius:3px;background:#e8ebef}
.cl-hund i.on{background:#5a3fb0}
.cl-gbig{font-size:15.5px;color:var(--ink-2);margin:12px 0 0}
.cl-gbig b{font-size:22px;color:#5a3fb0}
.cl-gst{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--hair)}
.cl-gst b{display:block;font-size:22px;font-weight:700}
.cl-gst small{display:block;font-size:12.5px;color:var(--muted);line-height:1.35}
.cl-doors,.cl-lv{display:flex;flex-direction:column;gap:8px}
.cl-dph{position:relative;display:block;border-radius:14px;overflow:hidden;height:150px;background:var(--surface)}
.cl-dph img{width:100%;height:100%;object-fit:cover}
.cl-dph span{position:absolute;left:12px;bottom:10px;color:#fff;font-weight:700;font-size:15px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.cl-door{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.cl-door:hover{border-color:var(--accent)}
.cl-door > span:nth-child(2){flex:1;min-width:0}
.cl-door b{display:block;font-size:14.5px}
.cl-door small{display:block;font-size:12.5px;color:var(--muted)}
.cl-live{display:grid;grid-template-columns:1fr;gap:12px}
.cl-live.has-photo{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch}
.cl-live .cl-dph{height:100%;min-height:240px}
.cl-reach{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:16px;align-items:start}
.cl-rmap svg{display:block;width:100%;max-width:420px;height:auto;margin:0 auto}
.cl-ring{fill:none;stroke:#dde1e7;stroke-dasharray:3 4}
.cl-rmap .ax{font:500 10.5px var(--sans);fill:var(--faint)}
.cl-me{fill:var(--ink);stroke:#fff;stroke-width:3}
.cl-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);margin-bottom:14px}
.cl-crumbs a{color:var(--accent-ink);font-weight:600}
.cl-crumbs b{color:var(--ink-2)}
.cl-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:stretch;border:1px solid var(--line);border-radius:18px;padding:28px;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 9%,#fff),#fff 70%)}
.cl-top h1{font-size:40px;letter-spacing:-.04em;line-height:1.05;margin:6px 0 10px}
.cl-top .kick{color:var(--tc)}
.cl-top p{color:var(--muted);font-size:15.5px;margin:12px 0 0;max-width:620px}
.cl-badge{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--tc);color:#fff;margin-bottom:14px}
.cl-badge .ic{width:26px;height:26px}
.cl-chips{display:flex;flex-wrap:wrap;gap:6px}
.cl-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.cl-topmap .tmap{height:100%;min-height:240px}
.cl-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.cl-big{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1.05}
.cl-twenty{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;max-width:360px}
.cl-twenty i{display:grid;place-items:center;aspect-ratio:1;border-radius:8px;background:#eef0f3;color:#b5bcc6}
.cl-twenty i .ic{width:16px;height:16px}
.cl-twenty i.on{background:var(--accent-tint);color:var(--accent-ink)}
.cl-rgs{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.cl-rg{display:grid;grid-template-columns:96px 1fr 70px;gap:12px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.cl-rg b{text-align:right}
.cl-rgb{height:10px;border-radius:5px;background:#eef0f3;position:relative}
.cl-rgb i{position:absolute;top:0;bottom:0;border-radius:5px;background:var(--accent)}
.cl-stk{height:22px}
.cl-net{margin:14px 0 0;font-size:14.5px;color:var(--ink-2)}
.cl-mine .cl-seg{margin-bottom:14px}
.cl-mine .cl-seg button{height:32px;padding:0 9px;font-size:12.5px}
.cl-inc{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;height:120px;margin-top:16px;align-items:end}
.cl-ic{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;border:0;background:none;padding:0}
.cl-ic small{font-size:11.5px;font-weight:700;color:var(--muted)}
.cl-ic i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:#c9dfd3}
.cl-ic.on i,.cl-ic:hover i{background:var(--accent)}
.cl-ic.on small{color:var(--ink)}
.cl-incx{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
.cl-dvp{height:12px;border-radius:6px;background:#eef0f3;position:relative;margin-top:12px}
.cl-dvp i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--accent)}
.cl-dvp i.hi{background:var(--gC)}
.cl-dvp em{position:absolute;top:-4px;width:2px;height:20px;background:var(--ink)}
.cl-dvpx{display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint);margin-top:6px}
.cl-outs{margin-top:0}
@media (max-width:1100px){.cl-every,.cl-gown,.cl-reach{grid-template-columns:1fr}.cl-top{grid-template-columns:1fr}.cl-topmap .tmap{min-height:200px}}
@media (max-width:640px){.cl-top{padding:20px}.cl-top h1{font-size:30px}.cl-nums b{font-size:15px}.cl-prow,.cl-mr{grid-template-columns:minmax(0,1fr) 84px;gap:4px 12px}.cl-prow .cl-pb,.cl-mr .cl-pb{grid-column:1/-1;grid-row:2}.cl-live.has-photo{grid-template-columns:1fr}.cl-live .cl-dph{min-height:150px}.cl-rg{grid-template-columns:84px 1fr 62px}.cl-big{font-size:34px}}
.kpis.cl-k3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis.cl-k4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis.cl-k5{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.cl-campus .tmap{height:300px}
@media (max-width:640px){.kpis.cl-k3,.kpis.cl-k4{grid-template-columns:1fr 1fr}}

/* ---------- Work & commute (app/pages/commute.php); every class cm- prefixed ---------- */
.cm-io{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cm-io > div{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;border-top:4px solid var(--c)}
.cm-io b{display:block;font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--c);line-height:1.1}
.cm-io small{font-size:13px;color:var(--muted)}
.cm-iobar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin:14px 0 22px;gap:2px}
.cm-iobar i{min-width:3px}
.cm-dn{align-items:stretch}
.cm-daynight,.cm-hubcard{border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fff}
.cm-daynight{background:linear-gradient(160deg,#f3f5fb,#fff 65%)}
.cm-daynight p,.cm-hubcard p{font-size:14px;color:var(--ink-2);margin:12px 0 0}
.cm-dnr{display:grid;grid-template-columns:104px minmax(0,1fr) 72px;gap:12px;align-items:center;margin-top:14px}
.cm-dnl{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--muted)}
.cm-dnt{height:26px;border-radius:8px;background:#eef0f4;position:relative;overflow:hidden}
.cm-dnt i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:#2b3a55}
.cm-dnr.day .cm-dnt i{background:linear-gradient(90deg,#f2b84b,#e8963a)}
.cm-dnr.day .cm-dnl{color:#b46a12}
.cm-dnr b{font-size:17px;text-align:right}
.cm-hubcard .gwrap{margin:8px auto 0;max-width:280px}
.cm-flowwrap{display:flex;flex-direction:column;gap:14px}
.cm-dir button{display:inline-flex;align-items:center;gap:8px;padding:0 14px}
.cm-dir button i{width:10px;height:10px;border-radius:50%;flex:none}
.cm-dir button[aria-pressed="true"] i{box-shadow:0 0 0 2px #fff}
.cm-flow{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start}
.cm-flow.nomap{grid-template-columns:1fr}
.cm-mapbox{border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:8px}
.cm-mapbox svg{width:100%;height:auto;display:block;max-height:520px}
.cm-t{fill:#eef0f3;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}
.cm-t.me{fill:var(--accent)}
.cm-out .cm-t.hit{fill:#d6e6f3}.cm-in .cm-t.hit{fill:#f4e5c9}
.cm-fl{fill:none;stroke-linecap:round;opacity:.72}
.cm-out .cm-fl{stroke:#2f7fb5}.cm-in .cm-fl{stroke:#b7791f}
.cm-dot{stroke:#fff;stroke-width:1.5}
.cm-out .cm-dot{fill:#2f7fb5}.cm-in .cm-dot{fill:#b7791f}
.cm-me{fill:var(--ink);stroke:#fff;stroke-width:2.5}
.cm-lb{font:600 11.5px var(--sans);fill:#2e3746;paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}
.cm-lb.me{font-size:13px;font-weight:800;fill:var(--ink)}
.cm-list{display:flex;flex-direction:column}
.cm-row{display:grid;grid-template-columns:22px minmax(0,1fr) 64px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair)}
.cm-row:last-child{border-bottom:0}
.cm-row .n{font-size:12px;font-weight:700;color:var(--faint);text-align:center}
.cm-row .nm b{font-size:14px}
.cm-row .nm a:hover b{color:var(--accent-ink);text-decoration:underline}
.cm-row .nm small{font-size:12px;color:var(--muted);margin-left:6px}
.cm-row .bar{height:6px;border-radius:3px;background:#eef0f3;margin-top:5px;overflow:hidden}
.cm-row .bar i{display:block;height:100%;border-radius:3px}
.cm-out .cm-row .bar i{background:#2f7fb5}.cm-in .cm-row .bar i{background:#b7791f}
.cm-row.me .bar i{background:var(--accent)!important}
.cm-row .v{text-align:right;font-weight:700;font-size:15px;line-height:1.1}
.cm-row .v small{display:block;font-weight:400;font-size:11.5px;color:var(--muted)}
.cm-row.rest .nm b{color:var(--muted);font-weight:600}
.cm-tripsh{margin:26px 0 12px}
.cm-tripsh h3{font-size:19px;letter-spacing:-.02em;margin-top:2px}
.cm-trips .bey-v .bignum small{font-size:13px}
.cm-far{align-items:center}
.cm-radarbox{border:1px solid var(--line);border-radius:16px;background:#fafbfc;padding:12px}
.cm-radar{width:100%;max-width:420px;height:auto;display:block;margin:0 auto}
.cm-ring{stroke:#fff;stroke-width:1.5}
.cm-rl{font:700 10.5px var(--sans);fill:#6b7381;letter-spacing:.02em}
.cm-rd{fill:#2f7fb5;fill-opacity:.85;stroke:#fff;stroke-width:1.5}
.cm-rlb{font:600 11.5px var(--sans);fill:#1f2a3a;paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}
.cm-rlb.me{font-weight:800;font-size:12.5px}
.cm-bands{display:flex;height:40px;border-radius:10px;overflow:hidden;gap:2px}
.cm-bands > div{display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;min-width:3px}
.cm-bkey{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.cm-bkey > div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}
.cm-bkey b{font-size:24px;letter-spacing:-.03em;line-height:1.1}
.cm-bkey span{font-size:13.5px;font-weight:600}
.cm-bkey small{font-size:12px;color:var(--muted)}
.cm-note{font-size:13px;margin:14px 0 0}
.cm-jl{margin:0 0 14px}
.cm-pairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cm-pg{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
.cm-pg h4{font-size:14px;margin-bottom:8px}
.cm-pr{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:2px 10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--hair)}
.cm-pr:last-child{border-bottom:0}
.cm-pr .l{font-size:13px;color:var(--ink-2);grid-column:1/-1}
.cm-pb{display:flex;flex-direction:column;gap:3px}
.cm-pb i{display:block;height:7px;border-radius:0 4px 4px 0;min-width:2px}
.cm-pb i.a{background:#b7791f}.cm-pb i.r{background:#2f7fb5}
.cm-pr .v{display:flex;flex-direction:column;text-align:right;font-size:12.5px;line-height:1.25}
.cm-chg{display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-top:16px;background:var(--surface)}
.cm-chg > b{font-size:30px;letter-spacing:-.03em;flex:none}
.cm-chg p{margin:0;font-size:14px;color:var(--ink-2)}
.cm-time{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
.cm-tc{border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fff}
.cm-tc p{font-size:14px;color:var(--ink-2);margin:6px 0 14px}
.cm-big{font-size:46px;font-weight:700;letter-spacing:-.04em;line-height:1.05;margin-top:6px}
.cm-big small{font-size:18px;color:var(--muted);font-weight:600;letter-spacing:0}
.cm-ten{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:340px;margin-bottom:6px}
.cm-ten span{aspect-ratio:1;border-radius:8px;display:grid;place-items:center;background:#eef0f3;color:#9aa3b2}
.cm-ten span.on{background:var(--accent-tint);color:var(--accent-ink)}
.cm-ten .ic{width:60%;height:60%}
.cm-nmap .nbmap .o.cm-n0,.cm-sw.cm-n0{fill:#eef0f3;background:#eef0f3}
.cm-nmap .nbmap .o.cm-n1,.cm-sw.cm-n1{fill:#dbe9f4;background:#dbe9f4}
.cm-nmap .nbmap .o.cm-n2,.cm-sw.cm-n2{fill:#b5d2e8;background:#b5d2e8}
.cm-nmap .nbmap .o.cm-n3,.cm-sw.cm-n3{fill:#7fb0d6;background:#7fb0d6}
.cm-nmap .nbmap .o.cm-n4,.cm-sw.cm-n4{fill:#3f86bd;background:#3f86bd}
.cm-nmap .nbmap a:hover .o{filter:brightness(.92)}
.cm-nlist{display:flex;flex-direction:column;margin-top:16px;border-top:1px solid var(--hair)}
.cm-nlist a{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:14px}
.cm-nlist a span{color:var(--muted);font-size:13px;text-align:right}
.cm-nlist a:hover b{color:var(--accent-ink)}
@media (max-width:1100px){.cm-flow{grid-template-columns:1fr}.cm-pairs{grid-template-columns:1fr 1fr}.cm-time{grid-template-columns:1fr}}
@media (max-width:640px){.cm-io{grid-template-columns:1fr;gap:8px}.cm-io > div{display:flex;align-items:baseline;gap:10px;padding:10px 14px}.cm-io b{font-size:24px}.cm-pairs{grid-template-columns:1fr}.cm-dnr{grid-template-columns:88px minmax(0,1fr) 60px;gap:8px}.cm-big{font-size:38px}.cm-chg{flex-direction:column;align-items:flex-start;gap:6px}.cm-bands > div{font-size:11.5px}.cm-nlist a{flex-direction:column;gap:0}.cm-nlist a span{text-align:left}}
.cm-math{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:4px 18px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.cm-math span{font-size:17px;font-weight:700;letter-spacing:-.02em;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}
.cm-math small{font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:0}
.cm-math .o{color:#2f7fb5}.cm-math .i{color:#b7791f}.cm-math .d{color:#b46a12}
.cm-more .bey-v .bignum .ic{width:42px;height:42px;stroke-width:1.6;display:block;margin:0 auto}
@media (min-width:641px){.cm-kpis{grid-template-columns:repeat(auto-fit,minmax(146px,1fr))}}
@media (max-width:640px){.cm-math{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cm-kpis .kpi:last-child:nth-child(odd){grid-column:1/-1}}

/* ---------- politics (app/pages/politics.php) ---------- */
.vt-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:stretch;border-radius:18px;border:1px solid var(--line);padding:28px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%)}
.vt-hin{min-width:0}
.vt-hero h1{font-size:38px;letter-spacing:-.035em;line-height:1.06;margin-top:8px;max-width:660px}
.vt-hin > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;line-height:1.5;max-width:640px}
.vt-faces{display:inline-flex;align-items:center;margin-top:18px;padding:5px 14px 5px 6px;border-radius:999px;background:#fff;border:1px solid var(--line)}
.vt-faces .vt-ava{margin-right:-8px;box-shadow:0 0 0 2px #fff}
.vt-faces > span:last-child{margin-left:16px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.vt-faces:hover{border-color:var(--accent)}
.vt-ava{width:52px;height:52px;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--surface)}
.vt-ava img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.vt-ava.sm{width:32px;height:32px}
.vt-ava.ini{background:hsl(var(--vh) 30% 90%);color:hsl(var(--vh) 30% 32%);font-weight:700;font-size:17px}
.vt-ava.sm.ini{font-size:12px}
.vt-eday{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:16px;background:#fff;border:1px solid var(--line);padding:18px;box-shadow:0 8px 30px rgba(15,22,35,.07)}
.vt-eday b{font-size:56px;font-weight:800;letter-spacing:-.05em;line-height:1;margin-top:8px;color:var(--accent-ink)}
.vt-eday small{font-size:13px;color:var(--muted);font-weight:600}
.vt-ed{margin-top:10px;font-size:13px;color:var(--ink-2);border-top:1px solid var(--hair);padding-top:10px;width:100%}
.vt-eday:hover{border-color:var(--accent)}
/* races */
.vt-races{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.vt-race{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;min-width:0}
.vt-rh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.vt-rh b{font-size:15px;letter-spacing:-.01em}
.vt-rh small{font-size:12px;color:var(--faint);white-space:nowrap}
.vt-cand{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(50px,1fr) 52px;gap:10px;align-items:center;padding:5px 0;font-size:13.5px}
.vt-cn{display:flex;flex-direction:column;min-width:0}
.vt-cn b{font-weight:600;overflow-wrap:anywhere}
.vt-cand.top .vt-cn b{font-weight:700}
.vt-cn em{font-style:normal;font-size:12px;color:var(--muted)}
.vt-bt{height:12px;background:#eef1f4;border-radius:4px;overflow:hidden}
.vt-bt i{display:block;height:100%;border-radius:0 4px 4px 0}
.vt-pct{text-align:right;font-weight:600}
.vt-ctx{font-size:12.5px;color:var(--muted);margin:6px 0 0;border-top:1px solid var(--hair);padding-top:8px}
/* town to state */
.vt-lad{display:flex;flex-direction:column;gap:12px}
.vt-axis{display:grid;grid-template-columns:150px minmax(0,1fr) 110px;font-size:12px;color:var(--muted);font-weight:600}
.vt-axis span:nth-child(1){grid-column:2;grid-row:1;justify-self:start}
.vt-axis span:nth-child(2){grid-column:2;grid-row:1;justify-self:center}
.vt-axis span:nth-child(3){grid-column:2;grid-row:1;justify-self:end}
.vt-lrow{display:grid;grid-template-columns:150px minmax(0,1fr) 110px;align-items:center;gap:0}
.vt-ln{font-size:14px;font-weight:600;color:var(--ink-2);padding-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-lrow.me .vt-ln{color:var(--ink);font-weight:800}
.vt-lt{position:relative;height:28px;border-radius:14px;background:linear-gradient(90deg,#e7edf1,#f6f7f9 50%,#f3ece0)}
.vt-mid{position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:var(--faint)}
.vt-lt em{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;border:3px solid var(--ink-2)}
.vt-lrow.me .vt-lt em{width:20px;height:20px;margin:-10px 0 0 -10px;background:var(--accent);border-color:#fff;box-shadow:0 0 0 2px var(--accent)}
.vt-lv{text-align:right;font-size:13.5px;font-weight:700;padding-left:10px;white-space:nowrap}
/* ballot */
.vt-ballot{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.vt-ballot li{display:flex;gap:12px;align-items:flex-start}
.vt-ballot .ic{width:30px;height:30px;padding:6px;border-radius:8px;background:var(--accent-tint);color:var(--accent-ink);flex:none}
.vt-ballot div{display:flex;flex-direction:column}
.vt-ballot b{font-size:15px}
.vt-ballot small{font-size:13px;color:var(--muted)}
/* people */
.vt-dh{margin-top:16px}
.vt-dh:first-child{margin-top:0}
.vt-dh small{font-weight:400;color:var(--muted);margin-left:6px}
.vt-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.vt-person{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.vt-person > div{display:flex;flex-direction:column;min-width:0}
.vt-person b{font-size:15px;letter-spacing:-.01em}
.vt-role{font-size:13px;color:var(--ink-2)}
.vt-meta{font-size:12.5px;color:var(--muted)}
.vt-links{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:5px;font-size:13px}
.vt-links a{color:var(--accent-ink);font-weight:600}
.vt-compact{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.vt-compact li{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:14px}
.vt-compact li > div:first-child{display:flex;flex-direction:column}
.vt-compact small{font-size:12px;color:var(--muted)}
.vt-cp{display:flex;flex-wrap:wrap;gap:4px 14px}
.vt-cp a{color:var(--accent-ink);font-weight:600}
.vt-cp em{font-style:normal;font-size:12px;color:var(--muted)}
/* neighbors: shaded by closeness, never party */
.vt-map .nbmap .o.vt-c1,.vt-sw.vt-c1{fill:#f6d99a;background:#f6d99a}
.vt-map .nbmap .o.vt-c2,.vt-sw.vt-c2{fill:#f8ead0;background:#f8ead0}
.vt-map .nbmap .o.vt-c3,.vt-sw.vt-c3{fill:#e3e8ee;background:#e3e8ee}
.vt-map .nbmap .o.vt-c4,.vt-sw.vt-c4{fill:#c9d2dc;background:#c9d2dc}
.vt-map .nbmap .o.vt-cx{fill:#f4f5f7}
.vt-map.vt-me1 .nbmap .me{fill:#f6d99a}.vt-map.vt-me2 .nbmap .me{fill:#f8ead0}.vt-map.vt-me3 .nbmap .me{fill:#e3e8ee}.vt-map.vt-me4 .nbmap .me{fill:#c9d2dc}
.vt-map .nbmap .me{stroke:var(--ink);stroke-width:2.2}
.vt-map .nbl.me{color:var(--ink);text-shadow:0 0 3px #fff,0 0 3px #fff;font-weight:800}
.vt-map .nbmap a:hover .o{filter:brightness(.93)}
/* meetings */
.vt-meet{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.vt-meet li{display:flex;gap:12px;align-items:flex-start}
.vt-meet li > div{display:flex;flex-direction:column;min-width:0;font-size:14px}
.vt-meet li > div small{font-size:12.5px;color:var(--muted)}
.vt-meet .link{font-size:13px}
.vt-md{width:46px;flex:none;border-radius:10px;background:var(--accent-tint);display:flex;flex-direction:column;align-items:center;padding:5px 0}
.vt-md b{font-size:18px;line-height:1.1;color:var(--accent-ink)}
.vt-md small{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--accent-ink)}
@media (max-width:900px){.vt-hero{grid-template-columns:1fr}.vt-eday{flex-direction:row;flex-wrap:wrap;gap:4px 10px;justify-content:flex-start;text-align:left}.vt-eday b{font-size:36px;margin-top:0}.vt-ed{border-top:0;padding-top:0;margin-top:0;width:auto}}
@media (max-width:640px){.vt-hero{padding:20px 18px}.vt-hero h1{font-size:28px}.vt-axis{grid-template-columns:1fr;font-size:11.5px}.vt-axis span:nth-child(n){grid-column:1}.vt-axis span:nth-child(2){display:none}.vt-lrow{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}.vt-ln{white-space:normal}.vt-lt{grid-column:1/-1;grid-row:2}.vt-compact li{grid-template-columns:1fr;gap:4px}.vt-races{grid-template-columns:1fr}.vt-people{grid-template-columns:1fr}}

/* ---------- news (app/pages/news.php) ---------- */
.nx-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}
.nx-head > div{flex:1;min-width:260px}
.nx-head h1{font-size:44px;letter-spacing:-.04em;line-height:1.02;margin-top:6px}
.nx-head p{margin:10px 0 0;font-size:15.5px;color:var(--ink-2);max-width:680px}
.nx-src{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:0;flex:none}
.nx-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--muted)}
.nx-meta .nx-d{margin-left:auto}
.nx-meta .nx-d .btn{height:28px;padding:0 10px;font-size:12.5px}
.nx-meta .nx-d .btn .ic{width:14px;height:14px}
.nx-tag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink)}
.nx-tag .ic{width:13px;height:13px}
[data-nx-b="safety"] .nx-tag{color:var(--muted)}
.nx-front{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;margin-top:22px;align-items:start}
.nx-lead{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.nx-lead-v{position:relative;display:grid;place-items:center;aspect-ratio:16/8;background:radial-gradient(circle at 30% 20%,var(--accent-tint),#f4f6f8 70%);overflow:hidden}
.nx-lead-v img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.nx-plate{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--accent-ink);text-align:center;padding:16px}
.nx-plate .ic{width:46px;height:46px;stroke-width:1.4}
.nx-plate b{font-size:22px;letter-spacing:-.02em;color:var(--ink-2)}
.nx-lead-b{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px}
.nx-lead-b h2{font-size:26px;line-height:1.18;letter-spacing:-.025em}
.nx-lead-b h2 a:hover,.nx-top h3 a:hover,.nx-row h3 a:hover{color:var(--accent-ink)}
.nx-acts{display:flex;gap:8px;flex-wrap:wrap}
.nx-acts .btn .ic{width:15px;height:15px}
.nx-tops{display:flex;flex-direction:column;gap:12px}
.nx-top{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:#fff}
.nx-top h3{font-size:16.5px;line-height:1.3;letter-spacing:-.015em}
.nx-list{display:flex;flex-direction:column}
.nx-row{display:flex;flex-direction:column;gap:6px;padding:14px 0;border-bottom:1px solid var(--hair)}
.nx-row h3{font-size:16px;line-height:1.35;letter-spacing:-.01em}
.nx-week{margin-top:22px;border-radius:16px;padding:18px 20px;background:linear-gradient(160deg,#f3efff,#fff 70%);border:1px solid #e6e0fb}
.nx-week .kick{color:#5b45c4}
.nx-week-b{font-size:15.5px;line-height:1.6;color:var(--ink-2);margin-top:6px}
.nx-week-b p{margin:0 0 8px}
.nx-big{margin-top:28px}
.nx-big-in{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;border-radius:18px;padding:22px;background:linear-gradient(160deg,#eaf2fd,#fff 65%);border:1px solid #d6e4f7}
.nx-big .kick{display:inline-flex;align-items:center;gap:6px;color:#245a95}
.nx-big .kick .ic{width:15px;height:15px}
.nx-big h2{font-size:28px;letter-spacing:-.03em;margin-top:6px}
.nx-big p{margin:6px 0 12px;color:var(--ink-2)}
.nx-big-l{display:flex;flex-direction:column;gap:2px}
.nx-big-l a{padding:9px 0;border-top:1px solid rgba(36,90,149,.12);display:flex;flex-direction:column}
.nx-big-l a:hover b{color:#245a95}
.nx-big-l b{font-size:15px;line-height:1.35}
.nx-big-l small{font-size:12.5px;color:var(--muted)}
.nx-doors{display:flex;flex-direction:column;gap:8px}
.nx-doors a{display:flex;flex-direction:column;background:#fff;border:1px solid #d6e4f7;border-radius:12px;padding:12px 14px}
.nx-doors a:hover{border-color:#245a95}
.nx-doors b{font-size:15px;color:#245a95}
.nx-doors small{font-size:12.5px;color:var(--muted)}
.nx-beats{display:flex;flex-direction:column;gap:6px}
.nx-beats button{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;text-align:left;font-size:14px;font-weight:600;overflow:hidden}
.nx-beats button:first-child{grid-template-columns:minmax(0,1fr) auto}
.nx-beats button .ic{width:17px;height:17px;color:var(--accent-ink);position:relative;z-index:1}
.nx-beats button span,.nx-beats button b{position:relative;z-index:1}
.nx-beats button i{position:absolute;left:0;top:0;bottom:0;background:var(--accent-tint);z-index:0}
.nx-beats button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.nx-pubs{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.nx-pubs div{display:flex;align-items:center;gap:10px;font-size:14px}
.nx-pubs b{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-pubs .num{color:var(--muted)}
.nx-games{display:flex;flex-direction:column;gap:8px}
.nx-games a{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.nx-games a:hover{border-color:var(--accent)}
.nx-games a > span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.nx-games b{font-size:14.5px}
.nx-games small{font-size:12.5px;color:var(--muted)}
.nx-games .go{font-size:12.5px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.nx-gd{width:44px;height:46px;border-radius:10px;background:var(--accent-tint);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;line-height:1}
.nx-gd b{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink)}
.nx-gd i{font-style:normal;font-size:19px;font-weight:800;margin-top:3px}
.nx-obits{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.nx-obits a{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfbfc}
.nx-obits a:hover{border-color:#c9ced7}
.nx-obits b{display:block;font-size:14.5px;font-weight:600}
.nx-obits small{font-size:12.5px;color:var(--muted)}
.nx-dove{font-size:20px;flex:none}
@media (max-width:1000px){.nx-front,.nx-big-in{grid-template-columns:1fr}}
@media (max-width:640px){.nx-head h1{font-size:32px}.nx-lead-b h2{font-size:21px}.nx-lead-v{aspect-ratio:16/10}.nx-big-in{padding:16px}.nx-big h2{font-size:23px}.nx-meta .nx-d{margin-left:0}}

/* ---------- Town Hall (app/pages/townhall.php) · prefix hall- (reuses lib-addr/lib-acts/lib-map/lib-tbl/lib-stack/lib-h3) ---------- */
.hall-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;border-radius:18px;padding:32px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line);overflow:hidden}
.hall-hero.has-photo{background:#fff}
.hall-bg{position:absolute;right:0;top:0;width:62%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 70%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 70%)}
.hall-hin{position:relative;z-index:1;max-width:620px}
.hall-hero.has-photo .hall-hin{background:linear-gradient(90deg,#fff 70%,rgba(255,255,255,0));margin:-32px 0 -32px -32px;padding:32px 56px 32px 32px}
.hall-hero h1{font-size:44px;letter-spacing:-.04em;line-height:1.02;margin-top:6px}
.hall-hin > p{color:var(--ink-2);margin:10px 0 0;font-size:16px}
.hall-hero .credit{position:absolute;right:12px;bottom:8px;z-index:1;font-size:11px;color:#fff;background:rgba(15,22,35,.55);padding:2px 8px;border-radius:6px;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hall-day{position:relative;z-index:1;width:230px;background:#fff;border-radius:18px;padding:18px;text-align:center;box-shadow:0 18px 40px rgba(15,22,35,.16),0 2px 6px rgba(15,22,35,.08)}
.hall-cal{width:110px;margin:10px auto 8px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff}
.hall-cal b{display:block;background:var(--accent);color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:5px 0}
.hall-cal i{display:block;font-style:normal;font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1.15;padding-top:4px}
.hall-cal small{display:block;font-size:12px;color:var(--muted);padding-bottom:8px}
.hall-cd{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em}
.hall-rule{margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.4}
.hall-day .link{display:inline-block;margin-top:8px;font-size:13px}
/* meetings */
.hall-mts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hall-mt{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;border:1px solid var(--line);border-radius:12px;padding:12px}
.hall-mt.past{background:var(--surface);border-color:transparent}
.hall-md{text-align:center;border-radius:10px;background:var(--accent-tint);padding:6px 0;align-self:start}
.hall-mt.past .hall-md{background:#fff}
.hall-md b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink)}
.hall-md i{display:block;font-style:normal;font-size:22px;font-weight:700;line-height:1.1}
.hall-mm b{display:block;font-size:15px}
.hall-mm small{display:block;font-size:13px;color:var(--muted)}
.hall-ml{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px}
.hall-ml a{font-size:13px;font-weight:600;color:var(--accent-ink)}
.hall-ml a:hover{text-decoration:underline}
.hall-tmd{border-radius:14px;background:var(--night);color:#fff;padding:16px}
.hall-tmd .kick{color:var(--accent-soft)}
.hall-tmd .hz-then-d{color:#fff}
.hall-tmd p{margin:6px 0 0;font-size:14px;color:#d5dbe3;line-height:1.45}
.hall-tmd p.muted{color:#9aa4b2}
.hall-tmd .btn{margin-top:12px;background:var(--accent);border-color:var(--accent);color:#fff}
.hall-tmd .btn:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
/* officials */
.hall-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.hall-p{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;text-align:left}
.hall-p b{display:block;font-size:15px}
.hall-p small{display:block;font-size:12.5px;color:var(--muted)}
.hall-role{display:block;font-size:13px;color:var(--accent-ink);font-weight:600}
.hall-av{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:16px;color:#fff;background:hsl(var(--h,150) 38% 42%)}
.hall-av.add{background:var(--accent-tint);color:var(--accent-ink)}
.hall-add{border-style:dashed;cursor:pointer}
.hall-add:hover{border-color:var(--accent)}
.hall-flag{display:block;margin-top:6px;font-size:12.5px;color:var(--muted)}
.hall-flag .linkbtn{font-size:12.5px;color:var(--muted);font-weight:500}
/* the receipt */
.hall-rcpt{position:relative;background:#fffdf7;border:1px solid #ece6d6;border-bottom:0;border-radius:6px 6px 0 0;padding:22px 22px 26px;box-shadow:0 10px 30px rgba(15,22,35,.08);max-width:460px;width:100%;justify-self:center;font-variant-numeric:tabular-nums;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 51% repeat-x,linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 51% repeat-x,linear-gradient(#000 0 0) top/100% calc(100% - 8px) no-repeat}
.hall-rh{text-align:center;border-bottom:2px dashed #d9d2bf;padding-bottom:12px;margin-bottom:10px}
.hall-rh b{display:block;font-size:17px;letter-spacing:.18em}
.hall-rh span{font-size:12px;color:var(--muted)}
.hall-rl{display:flex;align-items:baseline;gap:8px;padding:6px 0}
.hall-rl span{font-size:14.5px;font-weight:600}
.hall-rl span small{display:block;font-size:11.5px;font-weight:400;color:var(--faint)}
.hall-rl i{flex:1;border-bottom:2px dotted #d9d2bf;transform:translateY(-4px);min-width:16px}
.hall-rl b{font-size:15px}
.hall-rt{display:flex;justify-content:space-between;align-items:baseline;border-top:2px dashed #d9d2bf;margin-top:8px;padding-top:12px}
.hall-rt span{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.hall-rt b{font-size:26px;letter-spacing:-.02em;color:var(--accent-ink)}
.hall-rf{margin-top:12px;text-align:center;font-size:12px;color:var(--muted);line-height:1.6}
/* representatives ladder */
.hall-ladder{list-style:none;margin:0;padding:0;position:relative;display:flex;flex-direction:column;gap:8px}
.hall-ladder::before{content:"";position:absolute;left:17px;top:18px;bottom:18px;width:2px;background:var(--line)}
.hall-ladder li{position:relative;display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 14px 10px 0;background:#fff;margin-left:0}
.hall-lv{display:flex;gap:12px;align-items:center}
.hall-ln{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:700;font-size:14px;margin-left:-1px;box-shadow:0 0 0 4px #fff}
.hall-lv b{display:block;font-size:15px}
.hall-lv small{display:block;font-size:12.5px;color:var(--muted)}
.hall-lp{display:flex;flex-wrap:wrap;gap:6px}
.hall-chip{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:4px 11px;background:#fff}
a.hall-chip:hover{border-color:var(--accent);color:var(--accent-ink)}
.hall-chip i,.hall-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
/* contact */
.hall-contact{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.hall-c{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;text-align:left;min-width:0}
.hall-c small{display:block;font-size:12px;color:var(--muted)}
.hall-c b{display:block;font-size:14.5px;overflow-wrap:anywhere}
a.hall-c:hover{border-color:var(--accent)}
.hall-c.miss{border-style:dashed;cursor:pointer}
.hall-c.miss b{color:var(--accent-ink)}
.hall-c.miss:hover{border-color:var(--accent)}
@media (max-width:900px){.hall-hero{grid-template-columns:1fr;padding:22px}.hall-hero.has-photo .hall-hin{background:rgba(255,255,255,.9);margin:-22px -22px 0;padding:22px}.hall-bg{width:100%;-webkit-mask-image:none;mask-image:none}.hall-day{justify-self:center}.hall-hero h1{font-size:32px}.hall-ladder li{grid-template-columns:1fr;gap:8px;padding:12px 14px 12px 0}.hall-lp{padding-left:48px}}
@media (max-width:640px){.hall-hero h1{font-size:30px}.hall-day{width:100%;max-width:300px}.hall-rcpt{padding:18px 16px 24px}.hall-rl span{font-size:14px}}

/* ---------- famous people (app/pages/people.php; fp- prefix) ---------- */
.fp-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:28px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%)}
.fp-hero h1{font-size:42px;letter-spacing:-.04em;line-height:1.04;margin-top:6px}
.fp-hero h1 em{font-style:normal;color:var(--accent-ink)}
.fp-hin > p{color:var(--muted);margin:12px 0 0;font-size:16px;max-width:620px}
.fp-mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fp-mosaic img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;background:var(--surface)}
.fp-mosaic.n1,.fp-mosaic.n2{grid-template-columns:repeat(2,1fr)}.fp-mosaic.n3,.fp-mosaic.n6{grid-template-columns:repeat(3,1fr)}
.fp-mosaic img:nth-child(odd){transform:translateY(10px)}
.fp-mosaic.empty{display:grid;place-items:center;height:180px;border-radius:16px;background:#fff;color:var(--accent-ink)}
.fp-mosaic.empty .ic{width:56px;height:56px;stroke-width:1.2}
.fp-gath{display:flex;align-items:center;gap:10px;margin-top:18px;font-weight:600;color:var(--ink-2)}
.fp-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--accent-tint);border-top-color:var(--accent);animation:fpspin .8s linear infinite}
@keyframes fpspin{to{transform:rotate(360deg)}}
.fp-wait{margin-top:16px}
.fp-kpis .fp-vname{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-top:4px}
.fp-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--fc) 12%,#fff);color:color-mix(in srgb,var(--fc) 80%,#000)}
.fp-ini{display:grid;place-items:center;background:hsl(var(--h) 45% 88%);color:hsl(var(--h) 40% 30%);font-weight:800}
.fp-spot{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.fp-big{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.fp-bph{position:relative;aspect-ratio:4/3;background:var(--surface)}
.fp-bph img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.fp-bph .fp-ini{position:absolute;inset:0;font-size:56px}
.fp-rank{position:absolute;left:12px;top:12px;background:rgba(15,22,35,.78);color:#fff;font-weight:800;font-size:13px;border-radius:999px;padding:4px 10px}
.fp-bb{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.fp-bb h3{font-size:20px;letter-spacing:-.02em}
.fp-bb p{margin:0;color:var(--ink-2);font-size:14.5px}
.fp-yrs{color:var(--muted);font-size:13px}
.fp-f{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:auto;padding-top:8px;font-size:13px}
.fp-f a{color:var(--accent-ink);font-weight:600}
.fp-hide button{border:1px solid var(--line);background:#fff;border-radius:6px;font-size:12px;padding:2px 8px;color:var(--bad)}
.fp-tl svg{display:block;width:100%;height:auto}
.fp-era{fill:#f7f8fa}.fp-era.alt{fill:#eff2f5}
.fp-erl{font:700 12px var(--sans);fill:var(--muted)}
.fp-yl{font:500 11px var(--sans);fill:var(--faint)}
.fp-axis{stroke:#cfd4dc}
.fp-dot{stroke:#fff;stroke-width:1.5;cursor:pointer}
.fp-ring{fill:none;stroke-width:2.5;cursor:pointer}
a:hover > .fp-dot,a:hover > .fp-ring{stroke:var(--ink)}
.fp-fields{display:flex;flex-direction:column}
.fp-fr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 104px;gap:14px;align-items:center;padding:10px 0;border:0;border-top:1px solid var(--hair);background:none;text-align:left;width:100%}
.fp-fr:first-child{border-top:0}
.fp-fr:hover .fp-fl b{color:var(--accent-ink)}
.fp-fl{display:flex;align-items:center;gap:8px;min-width:0}
.fp-fl i{width:10px;height:10px;border-radius:3px;flex:none}
.fp-fl b{font-size:14.5px}
.fp-fl small{color:var(--muted);font-size:12.5px;white-space:nowrap}
.fp-fb{position:relative;height:12px;border-radius:6px;background:#eef0f3}
.fp-fb i{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.fp-fb em,.fp-key{position:absolute;top:-4px;width:2px;height:20px;background:var(--ink)}
.fp-key{position:static;display:inline-block;height:12px;vertical-align:-1px;margin-right:4px}
.fp-fv{text-align:right;font-weight:700;font-size:15px}
.fp-fv small{display:block;font-size:11.5px;font-weight:600;color:var(--muted)}
.fp-fv small.hi{color:var(--good)}
.fp-chips{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.fp-card{display:flex;gap:14px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;scroll-margin-top:calc(var(--hdr) + 20px)}
.fp-card:target,.fp-big:target{outline:2px solid var(--accent);outline-offset:2px}
.fp-ph{width:64px;height:64px;border-radius:50%;overflow:hidden;flex:none;background:var(--surface);font-size:20px}
.fp-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.fp-b{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}
.fp-b h3{font-size:15.5px;letter-spacing:-.01em}
.fp-b p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.4}
.fp-from{font-weight:600;color:var(--ink-2)!important}
.fp-near{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;align-items:start}
.fp-ring-c svg{display:block;width:100%;max-width:400px;margin:0 auto}
.fp-bdot{fill:#5a3fb0;fill-opacity:.85;stroke:#fff;stroke-width:2;cursor:pointer}
a:hover > .fp-bdot{fill-opacity:1;stroke:var(--ink)}
.fp-grid.one{grid-template-columns:1fr}
.fp-cands{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.fp-cand{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;text-align:left;font-size:14px}
.fp-cand:hover{border-color:var(--accent)}
.fp-cph{width:40px;height:40px;border-radius:50%;overflow:hidden;flex:none;font-size:14px}
.fp-cph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.fp-tally{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.fp-tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px;gap:10px;align-items:center;font-size:14px}
.fp-tr .num{text-align:right;font-weight:700}
.fp-next{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.fp-nx{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.fp-nx:hover{border-color:var(--accent)}
.fp-nx > span:nth-child(2){flex:1;min-width:0}
.fp-nx b{display:block;font-size:14.5px}
.fp-nx small{display:block;font-size:12.5px;color:var(--muted)}
.fp-nph{width:44px;height:44px;border-radius:50%;overflow:hidden;flex:none;font-size:15px}
.fp-nph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.fp-credits details{margin-top:8px}
.fp-credits summary{cursor:pointer;font-weight:600;color:var(--muted)}
.fp-credits ul{margin:8px 0 0;padding-left:18px;columns:2;column-gap:24px}
@media (max-width:1100px){.fp-hero{grid-template-columns:1fr}.fp-mosaic{max-width:520px}.fp-near{grid-template-columns:1fr}}
@media (max-width:640px){.fp-hero{padding:20px}.fp-hero h1{font-size:30px}.fp-mosaic img:nth-child(odd){transform:none}.fp-fr{grid-template-columns:minmax(0,1fr) 92px;gap:6px 12px}.fp-fr .fp-fb{grid-column:1/-1;grid-row:2}.fp-cands{grid-template-columns:1fr}.fp-credits ul{columns:1}.fp-grid{grid-template-columns:1fr}}
.fp-showall{margin-top:14px}
.fp-ring-c{position:sticky;top:calc(var(--hdr) + 16px)}
@media (max-width:1100px){.fp-ring-c{position:static}}

/* ---------- History (app/pages/history.php, view=story); every class hi- prefixed ---------- */
.hi-hero{position:relative;border-radius:18px;overflow:hidden;background:var(--night);color:#fff;min-height:440px;display:flex;align-items:flex-end}
.hi-mosaic{position:absolute;inset:0;display:grid;gap:3px}
.hi-mosaic img{width:100%;height:100%;object-fit:cover;filter:sepia(.18) saturate(.9);min-height:0}
.hi-mosaic.n1{grid-template-columns:1fr}
.hi-mosaic.n2{grid-template-columns:1fr 1fr}
.hi-mosaic.n3{grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr}.hi-mosaic.n3 img:first-child{grid-row:span 2}
.hi-mosaic.n4{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr}.hi-mosaic.n4 img:first-child{grid-row:span 2}.hi-mosaic.n4 img:nth-child(4){grid-column:span 2}
.hi-mosaic.n5{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr}.hi-mosaic.n5 img:first-child{grid-row:span 2}
.hi-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,16,24,.94) 0%,rgba(12,16,24,.8) 42%,rgba(12,16,24,.25) 100%),linear-gradient(0deg,rgba(12,16,24,.6),transparent 50%)}
.hi-in{position:relative;z-index:1;max-width:640px;padding:36px}
.hi-in .kick{color:#f2c879}
.hi-in h1{font-size:46px;letter-spacing:-.04em;line-height:1.03;margin-top:8px}
.hi-in h1 em{font-style:normal;color:#f2c879}
.hi-in > p{color:#d5dbe5;font-size:16px;margin:12px 0 0;max-width:560px}
.hi-stats{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px}
.hi-stats div{display:flex;flex-direction:column}
.hi-stats b{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.hi-stats small{font-size:12.5px;color:#aeb7c6}
.hi-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hi-credit{position:absolute;right:14px;bottom:10px;z-index:1;font-size:11.5px;color:rgba(255,255,255,.7)}
.hi-gather{border:1px solid var(--line);border-radius:16px;padding:20px 22px;background:linear-gradient(160deg,#fbf6ec,#fff 70%)}
.hi-gin{display:flex;gap:14px;align-items:center}
.hi-gin b{font-size:17px}
.hi-gin p{margin:2px 0 0;color:var(--muted);font-size:14px}
.hi-spin{width:28px;height:28px;border-radius:50%;border:3px solid #ead9b4;border-top-color:#b7791f;animation:hispin 1s linear infinite;flex:none}
@keyframes hispin{to{transform:rotate(360deg)}}
.hi-gthumbs{display:flex;gap:8px;margin-top:14px;overflow:hidden}
.hi-gthumbs img{width:96px;height:72px;object-fit:cover;border-radius:8px;filter:sepia(.2);animation:hiin .5s ease}
@keyframes hiin{from{opacity:0;transform:translateY(6px)}}
.hi-story{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:start}
.hi-text p{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 14px;max-width:68ch}
.hi-text p.first::first-letter{float:left;font-size:54px;line-height:.9;font-weight:800;margin:6px 10px 0 0;color:#b7791f}
.hi-chap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 6px}
.hi-chap .kick{margin-right:6px}
.hi-facts{border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fbf8f2}
.hi-facts dl{margin:10px 0 14px}
.hi-facts dl > div{display:flex;flex-direction:column;padding:9px 0;border-bottom:1px solid #eee6d6}
.hi-facts dl > div:last-child{border-bottom:0}
.hi-facts dt{font-size:12.5px;color:var(--muted)}
.hi-facts dd{margin:0;font-weight:700;font-size:15.5px;letter-spacing:-.01em}
.hi-tl{list-style:none;margin:0;padding:0;position:relative}
.hi-tl::before{content:"";position:absolute;left:79px;top:6px;bottom:6px;width:2px;background:#eadfca}
.hi-cent{padding:14px 0 6px 102px}
.hi-cent span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#b7791f}
.hi-ev{display:grid;grid-template-columns:62px 36px minmax(0,1fr);gap:0 12px;align-items:center;padding:5px 0}
.hi-ev > b{text-align:right;font-size:16px;color:var(--ink)}
.hi-dot{width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #eadfca;display:grid;place-items:center;color:#9c6a13;position:relative;z-index:1}
.hi-dot .ic{width:15px;height:15px}
.hi-ev.k-f .hi-dot{background:#b7791f;border-color:#b7791f;color:#fff}
.hi-ev.k-h .hi-dot{color:#6b4bc4;border-color:#ddd3f3}.hi-ev.k-b .hi-dot,.hi-ev.k-n .hi-dot{color:#0b7f45;border-color:#cdebd9}
.hi-ev > a,.hi-ev > div{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff;min-width:0}
.hi-ev > a:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.hi-ev img{width:54px;height:40px;object-fit:cover;border-radius:6px;flex:none;filter:sepia(.15)}
.hi-ev span{font-size:14.5px;line-height:1.35;min-width:0}
.hi-ev small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.hi-rows{display:flex;flex-direction:column;gap:14px}
.hi-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:stretch}
.hi-era{display:flex;flex-direction:column;justify-content:center;border-right:3px solid #eadfca;padding-right:10px}
.hi-era b{font-size:20px;letter-spacing:-.03em;line-height:1.1}
.hi-era small{font-size:12px;color:var(--muted)}
.hi-era.gap{border-color:#eef0f3}.hi-era.gap b{font-size:14px;color:var(--muted)}
.hi-era.ask{border-color:#f2c879}
.hi-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.hi-ph{position:relative;flex:none;width:180px;scroll-snap-align:start;display:flex;flex-direction:column;gap:6px}
.hi-ph img{width:180px;height:124px;object-fit:cover;border-radius:10px;background:var(--surface);filter:sepia(.1)}
.hi-ph:hover img{filter:none}
.hi-ph i{position:absolute;left:8px;top:8px;font-style:normal;font-size:12px;font-weight:700;background:rgba(255,253,245,.94);color:#5c4a2e;padding:2px 8px;border-radius:999px}
.hi-ph i.q{background:#f2c879;color:#4a3410}
.hi-ph span{font-size:13px;line-height:1.3;color:var(--ink-2)}
.hi-ph span small{display:block;font-size:11.5px;color:var(--faint)}
.hi-more{flex:none;width:130px;height:124px;border-radius:10px;border:1px dashed var(--line);display:grid;place-content:center;text-align:center}
.hi-more b{font-size:22px}.hi-more small{font-size:12px;color:var(--muted)}
.hi-gap{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px dashed #e2d5b9;border-radius:12px;padding:14px 16px;background:#fdfaf3}
.hi-gap b{display:block;font-size:15px}.hi-gap small{font-size:13px;color:var(--muted)}
.hi-gap.big{padding:22px}
.hi-tns{display:grid;gap:16px}
.hi-tns.n2{grid-template-columns:1fr 1fr}.hi-tns.n3{grid-template-columns:1.6fr 1fr;grid-template-rows:auto auto}.hi-tns.n3 figure:first-child{grid-row:span 2}
.hi-tns figure{margin:0;display:flex;flex-direction:column;gap:8px}
.hi-tns figcaption a{font-weight:700;font-size:15px}.hi-tns figcaption a:hover{color:var(--accent-ink)}
.hi-tns figcaption small{display:block;font-size:12.5px;color:var(--muted)}
.hi-retake{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}
.hi-retake img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;filter:sepia(.15)}
.hi-retake b{display:block;font-size:19px;letter-spacing:-.02em;margin:4px 0 6px}
.hi-retake p{color:var(--ink-2);font-size:14.5px;margin:0 0 14px}
.hi-nrk{margin-top:0}
.hi-nrmid{margin-top:18px}
.hi-nrmap{border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:10px}
.hi-nrmap svg{width:100%;height:auto;display:block;max-height:440px}
.hi-town{fill:#f1ece2;stroke:#d9c9a6;stroke-width:1.5;vector-effect:non-scaling-stroke}
.hi-pt{stroke:#fff;stroke-width:2;fill-opacity:.9}
.hi-nrmap a:hover .hi-pt{stroke:var(--ink)}
.hi-star{font-size:11px;fill:#fff;pointer-events:none;font-weight:700}
.hi-lm{margin-top:18px}
.hi-lm .ph{position:relative}
.hi-nhl{position:absolute;left:8px;top:8px;font-style:normal;font-size:11.5px;font-weight:700;background:#fff7e3;color:#8a5a00;padding:2px 8px;border-radius:999px}
.hi-all{margin-top:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.hi-all summary{cursor:pointer;padding:12px 16px;font-weight:700;font-size:14px}
.hi-allg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 18px;padding:0 16px 12px}
.hi-allg a{display:grid;grid-template-columns:10px minmax(0,1fr);gap:0 10px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.hi-allg a i{width:10px;height:10px;border-radius:50%;grid-row:span 2}
.hi-allg b{font-size:14px}.hi-allg small{font-size:12px;color:var(--muted)}
.hi-allg a:hover b{color:var(--accent-ink)}
.hi-people{grid-template-columns:repeat(6,minmax(0,1fr))}
.hi-help{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start}
.hi-cov{border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fbf8f2}
.hi-cells{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin:12px 0 8px}
.hi-cells span{height:44px;border-radius:8px;background:#eef0f3;color:var(--faint);font-size:11px;font-weight:700;display:grid;place-items:end center;padding-bottom:4px}
.hi-cells span.on{background:#b7791f;color:#fff}
.hi-cov small{font-size:12.5px;color:var(--muted)}
.hi-missions{display:flex;flex-direction:column;gap:10px}
.hi-m{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff}
.hi-m:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.hi-mi{width:40px;height:40px;border-radius:12px;background:#fbf2df;color:#9c6a13;display:grid;place-items:center}
.hi-m b{display:block;font-size:15px}.hi-m small{font-size:13px;color:var(--muted)}
.hi-m > i{font-style:normal;font-size:12px;font-weight:800;color:var(--accent-ink);background:var(--accent-tint);padding:3px 8px;border-radius:999px}
.hi-near{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.hi-near a{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0 10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.hi-near a .ic{grid-row:span 2;color:#b7791f}
.hi-near b{font-size:14.5px}.hi-near small{font-size:12.5px;color:var(--muted)}
.hi-near a:hover{border-color:#d9c9a6}
.hi-dlgb{display:flex;flex-direction:column;gap:14px;padding:6px 18px 12px;overflow-y:auto}
.hi-drop{display:grid;place-items:center;text-align:center;border:2px dashed #e2d5b9;border-radius:14px;padding:20px;background:#fdfaf3;cursor:pointer}
.hi-drop input{max-width:100%;font-size:13px;margin-bottom:6px}
.hi-drop b{display:block}.hi-drop small{font-size:12.5px;color:var(--muted)}
.hi-f{display:flex;flex-direction:column;gap:6px;border:0;padding:0;margin:0}
.hi-f > span,.hi-f legend{font-size:13px;font-weight:700;padding:0}
.hi-f span small{font-weight:400;color:var(--faint)}
.hi-f input:not([type=radio]):not([type=file]),.hi-f select{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;background:#fff;width:100%}
.hi-seg{display:flex;flex-wrap:wrap;gap:12px;font-size:14px}
.hi-when{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hi-r{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.hi-r b{display:block}.hi-r small{color:var(--muted);font-size:12.5px}
.hi-dlgf{display:flex;align-items:center;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--hair)}
.hi-dlgf small{margin-right:auto;font-size:12.5px;color:var(--muted)}
@media (max-width:1100px){.hi-story{grid-template-columns:1fr}.hi-help{grid-template-columns:1fr}.hi-people{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.hi-hero{min-height:0;display:block}.hi-mosaic{position:relative;height:200px}.hi-mosaic.n4,.hi-mosaic.n5{grid-template-columns:1.4fr 1fr}.hi-mosaic.n4 img:nth-child(n+4),.hi-mosaic.n5 img:nth-child(n+4){display:none}.hi-scrim{display:none}.hi-in{padding:20px}.hi-in h1{font-size:30px}.hi-stats b{font-size:21px}.hi-credit{top:176px;bottom:auto}
  .hi-tl::before{left:55px}.hi-cent{padding-left:76px}.hi-ev{grid-template-columns:44px 28px minmax(0,1fr);gap:0 8px}.hi-ev > b{font-size:14px}.hi-dot{width:26px;height:26px}.hi-ev img{display:none}
  .hi-row{grid-template-columns:1fr;gap:6px}.hi-era{flex-direction:row;align-items:baseline;gap:8px;border-right:0;border-bottom:2px solid #eadfca;padding:0 0 4px}.hi-ph,.hi-ph img{width:160px}.hi-ph img{height:112px}
  .hi-gap{flex-direction:column;align-items:flex-start}.hi-tns.n2,.hi-tns.n3{grid-template-columns:1fr}.hi-retake{grid-template-columns:1fr}.hi-cells span{height:34px;font-size:10px}.hi-people{grid-template-columns:repeat(2,minmax(0,1fr))}.hi-when{grid-template-columns:1fr}.hi-dlgf{flex-wrap:wrap}.hi-dlgf small{width:100%}}
.nx-solo .nx-games{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* ---------- Climate (app/pages/climate.php): .clm-* (reuses .he-chips / .he-map from Health) ---------- */
.clm-hero .hb-in > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;max-width:640px}
.clm-today{display:flex;gap:14px;align-items:center;margin-top:16px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);max-width:560px}
.clm-today > b{font-size:28px;font-weight:800;letter-spacing:-.03em;min-width:56px;text-align:center}
.clm-today.warm > b{color:#d0612a} .clm-today.cool > b{color:#3f6fb5} .clm-today.same > b{color:var(--accent-ink)}
.clm-today span{font-size:13.5px;color:var(--muted);line-height:1.4}
.clm-today span b{color:var(--ink);display:block;font-size:14.5px}
.clm-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.clm-kpis .kpi{display:block;transition:border-color .15s}
.clm-kpis .kpi:hover{border-color:#c9ced7}
/* the year at a glance */
.clm-cal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}
.clm-mo{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 8px 10px;border-radius:12px;background:#fff;border:1px solid var(--line);min-height:132px;overflow:hidden}
.clm-mo::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--mc)}
.clm-mo::after{content:"";position:absolute;inset:0;background:var(--mc);opacity:.07;pointer-events:none}
.clm-mo.now{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.clm-mo .mn{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.clm-mo .mn em{font-style:normal;color:var(--accent-ink);text-transform:none;letter-spacing:0}
.clm-mo b{font-size:22px;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-top:4px}
.clm-mo small{font-size:13px;color:var(--muted)}
.clm-mo .tg{display:flex;flex-direction:column;gap:3px;margin-top:auto;padding-top:8px;position:relative;z-index:1}
.clm-mo .tg i{font-style:normal;font-size:10.5px;font-weight:700;padding:2px 5px;border-radius:5px;line-height:1.25;background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.clm-mo .tg i.nice{background:var(--accent-tint);border-color:transparent;color:var(--accent-ink)}
.clm-mo .tg i.snow{background:#efeafb;border-color:transparent;color:#5341a8}
.clm-mo .tg i.frost{background:#e8f0fa;border-color:transparent;color:#2f5f9f}
.clm-mo .tg i.heat{background:#fdece2;border-color:transparent;color:#b4501f}
.clm-mo .tg i.wet{background:#e6f1f9;border-color:transparent;color:#1f5f8f}
.clm-mo .tg i.cold{background:#e8f0fa;border-color:transparent;color:#2f5f9f}
/* a normal year */
.clm-seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.clm-season{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:14px;border:1px solid var(--line);background:#fff;border-top:4px solid var(--sc)}
.clm-season .ic{font-size:20px}
.clm-season > b{font-size:15px;margin-top:4px}
.clm-season .hl{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--sc)}
.clm-season .hl small{font-size:15px;color:var(--muted);font-weight:600}
.clm-season > small{font-size:12.5px;color:var(--muted)}
.clm-range{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:18px 16px 10px 44px;background:#fff}
.card .clm-range{border:0;padding:6px 0 0 34px;margin:0}
.clm-range .pl{position:relative;height:250px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}
.clm-range .gl{position:absolute;left:0;right:0;border-top:1px solid var(--hair)}
.clm-range .gl span{position:absolute;left:-40px;top:-8px;font-size:11px;color:var(--faint);width:32px;text-align:right}
.clm-range .gl.frz{border-top:1.5px dashed #8fb1da}
.clm-range .gl.frz span{color:#3f6fb5;font-weight:600}
.clm-range .c{position:relative}
.clm-range .c i{position:absolute;left:18%;right:18%;border-radius:8px;min-height:4px}
.clm-range .c em{position:absolute;left:0;right:0;text-align:center;font-style:normal;font-size:11.5px;font-weight:600;color:var(--ink-2)}
.clm-range .c em.b{color:var(--muted);font-weight:500}
.clm-range .c.now i{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}
.clm-range .c u{position:absolute;left:10%;right:10%;height:3px;background:var(--ink);border-radius:2px;margin-bottom:-1px}
.clm-range .ax{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;margin-top:8px;font-size:12px;color:var(--muted);text-align:center}
.clm-range .ax .now{color:var(--ink);font-weight:700}
.clm-best{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px;font-size:14px}
.clm-best b{margin-right:4px}
.clm-best span{padding:3px 10px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:13px}
.clm-best em{font-style:normal;color:var(--muted);font-size:13px;margin-left:4px}
/* stats, bars */
.clm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}
.clm-stat{display:flex;flex-direction:column;gap:2px}
.clm-stat .ic{font-size:20px}
.clm-stat > b{font-size:30px;font-weight:700;letter-spacing:-.03em;margin-top:4px}
.clm-stat .d{font-size:13.5px;color:var(--ink-2)}
.clm-stat .r{font-size:12.5px;color:var(--accent-ink);font-weight:600;margin-top:4px}
.clm-stat .vs{font-size:12px;color:var(--muted)}
.clm-meter{display:flex;gap:3px;margin-top:8px}
.clm-meter i{width:22px;height:6px;border-radius:3px;background:#e8ebef}
.clm-meter i.on{background:var(--mc)}
.clm-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.clm-two h3{font-size:15px}
.clm-two .muted{font-size:12.5px;margin:2px 0 10px}
.clm-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;height:130px;align-items:end;padding-top:18px}
.clm-bars .c{position:relative;height:100%}
.clm-bars .c i{position:absolute;left:0;right:0;bottom:0;border-radius:5px 5px 2px 2px;background:var(--bc);min-height:2px;opacity:.85}
.clm-bars .c:hover i{opacity:1}
.clm-bars .c em{position:absolute;left:-10px;right:-10px;text-align:center;font-style:normal;font-size:11px;font-weight:700;color:var(--ink-2)}
.clm-bax{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;margin-top:6px;font-size:11px;color:var(--faint);text-align:center}
.clm-nosnow{color:var(--muted);font-size:14px;padding:30px 0}
/* frost */
.clm-ribbon{margin-bottom:12px;padding:40px 18px 14px}
.clm-ribbon .tr{position:relative;height:30px;border-radius:8px;background:linear-gradient(90deg,#dbe7f3,#e8f0fa)}
.clm-ribbon .grow{position:absolute;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,#9fd8b5,#0e9f57 50%,#9fd8b5);display:flex;align-items:center;justify-content:center;overflow:hidden}
.clm-ribbon .grow span{font-size:12.5px;font-weight:700;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.2);padding:0 6px}
.clm-ribbon .grow em{font-style:normal;font-weight:600}
.clm-ribbon .pin{position:absolute;top:-28px;transform:translateX(-50%);font-size:12.5px;font-weight:700;white-space:nowrap}
.clm-ribbon .mk{display:grid;grid-template-columns:repeat(12,1fr);margin-top:6px;font-size:11px;color:var(--faint);text-align:center}
.clm-nofrost{margin-bottom:12px;font-size:15px}
/* living with it */
.clm-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.clm-plan .card{display:flex;flex-direction:column;gap:4px}
.clm-plan .ic{font-size:22px}
.clm-plan b{font-size:16px;margin-top:4px}
.clm-plan p{margin:2px 0 0;font-size:14px;color:var(--ink-2);line-height:1.5}
.clm-plan .link{font-size:13.5px;margin-top:auto;padding-top:8px}
/* energy */
.clm-hc{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;align-items:center}
.clm-hc svg{width:160px;height:160px}
.clm-hc .n{font:800 28px var(--sans);fill:var(--ink)}
.clm-hc .l{font:600 12px var(--sans);fill:var(--muted)}
.clm-hc .rows{display:flex;flex-direction:column;gap:12px;font-size:14.5px}
.clm-hc .rows small{display:block;font-size:12.5px;color:var(--muted);margin-left:20px}
.clm-hc .sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.clm-hc .muted{font-size:12.5px;margin:0}
/* neighbors */
.clm-nb{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.clm-leg{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:8px}
.clm-leg i{width:140px;height:10px;border-radius:5px}
.clm-leg em{font-style:normal;margin-left:8px}
.clm-list .it{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:13.5px}
.clm-list .it:last-child{border-bottom:0}
.clm-list .it.me{font-weight:700}
.clm-list .it i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;vertical-align:-1px;border:1px solid rgba(15,22,35,.1)}
.clm-list .it a:hover{color:var(--accent-ink)}
.clm-list .it small{color:var(--muted);font-weight:500;min-width:42px;display:inline-block;text-align:right}
/* compare */
.clm-cmp{display:flex;flex-direction:column}
.clm-cmp .row{display:grid;grid-template-columns:170px minmax(0,1fr) 220px;gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair)}
.clm-cmp .row:last-child{border-bottom:0}
.clm-cmp .k b{display:block;font-size:14.5px}
.clm-cmp .k small{font-size:12.5px;color:var(--muted)}
.clm-cmp .strip{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,#eef0f3,var(--c1))}
.clm-cmp .strip .mid{position:absolute;left:50%;top:-3px;width:1px;height:16px;background:#c3c9d2}
.clm-cmp .strip .me{position:absolute;top:-4px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#fff;border:3px solid var(--ink)}
.clm-cmp .ends{display:flex;justify-content:space-between;font-size:11px;color:var(--faint);margin-top:5px}
.clm-cmp .v{font-size:13.5px;color:var(--muted)}
.clm-cmp .v b{color:var(--ink)}
.clm-cmp .v small{display:block;font-size:12px}
/* then & now */
.clm-then{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:12px;margin-bottom:12px}
.clm-then .big{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,#fdece2,#fff 80%);border-color:#f5d9c6}
.clm-then .big b{font-size:44px;font-weight:800;letter-spacing:-.04em;color:#c0541f;line-height:1}
.clm-then .big small{font-size:12.5px;color:var(--muted);margin-top:6px}
.clm-then .big p{margin:8px 0 0;font-size:13px}
.clm-then .s4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.clm-then .s4 .card{display:flex;flex-direction:column;gap:2px}
.clm-then .s4 small{font-size:12.5px;color:var(--muted);font-weight:600}
.clm-then .s4 b{font-size:24px;font-weight:700;letter-spacing:-.03em;color:#c0541f}
.clm-then .s4 .muted{font-size:12px}
.clm-delta h3{font-size:15px;margin-bottom:6px}
.clm-delta .pl{position:relative;height:150px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;padding-top:16px}
.clm-delta .c{position:relative}
.clm-delta .c i{position:absolute;left:12%;right:12%;border-radius:4px;background:#e07a3f}
.clm-delta .c i.neg{background:#4f7fbf}
.clm-delta .c em{position:absolute;left:-8px;right:-8px;text-align:center;font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink-2)}
.clm-delta.neg .pl{background:linear-gradient(var(--line),var(--line)) center/100% 1px no-repeat}
/* table, faq */
.clm-tab tr.now td{background:var(--accent-tint)}
.clm-tab tr.yr td{font-weight:700;border-top:1px solid var(--line)}
.clm-sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:0}
.clm-faq{display:flex;flex-direction:column;gap:8px}
.clm-faq details{border:1px solid var(--line);border-radius:12px;padding:0 16px}
.clm-faq summary{cursor:pointer;font-weight:600;padding:14px 0;font-size:15px}
.clm-faq p{margin:0 0 14px;color:var(--ink-2);font-size:14.5px}
@media (max-width:1100px){.clm-nb{grid-template-columns:1fr}.clm-cal{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:900px){.clm-then{grid-template-columns:1fr}.clm-cmp .row{grid-template-columns:1fr;gap:6px}.clm-seasons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .clm-cal{grid-template-columns:repeat(3,minmax(0,1fr))}.clm-mo{min-height:112px}
  .clm-kpis{grid-template-columns:1fr 1fr;gap:8px}.clm-kpis .kpi{padding:12px}.clm-kpis .kpi .v{font-size:22px}
  .clm-range{padding:14px 10px 8px 34px}.clm-range .pl{height:200px;gap:3px}.clm-range .ax{gap:3px;font-size:10.5px}.clm-range .c em{font-size:9.5px}.clm-range .c i{left:10%;right:10%}
  .clm-then .s4{grid-template-columns:1fr 1fr}.clm-hc{grid-template-columns:1fr;justify-items:center}.clm-ribbon .grow span{font-size:11.5px}.clm-ribbon .grow em{display:none}
  .clm-delta .c em{display:none}
}

/* ---------- Rankings (app/pages/rankings.php; rkl-*) ---------- */
.rkl-kpis .rkl-kv{display:flex;align-items:center;gap:8px;font-size:21px;margin-top:6px}
.rkl-kpis .rkl-kv .ic{width:22px;height:22px;color:var(--accent-ink)}
.rkl-badge{position:relative;width:72px;height:72px;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--accent-tint);color:var(--accent-ink);flex:none;box-shadow:inset 0 0 0 3px rgba(255,255,255,.6)}
.rkl-badge b{font-size:22px;font-weight:800;line-height:1}
.rkl-badge small{font-size:11px;font-weight:600;opacity:.8;margin-top:2px}
.rkl-badge.gt{background:var(--accent);color:#fff}
.rkl-badge.g1{background:linear-gradient(150deg,#fbe38a,#e0a800);color:#4d3800}
.rkl-badge.g2{background:linear-gradient(150deg,#f1f4f7,#b9c2cd);color:#333c48}
.rkl-badge.g3{background:linear-gradient(150deg,#f6cfab,#c47a3d);color:#4f2a0c}
.rkl-badge.g1::after,.rkl-badge.g2::after,.rkl-badge.g3::after,.rkl-badge.gt::after{content:'';position:absolute;left:50%;bottom:-11px;width:28px;height:18px;transform:translateX(-50%);background:var(--accent);clip-path:polygon(0 0,100% 0,100% 100%,50% 66%,0 100%);z-index:-1}
.rkl-badge.sm{position:absolute;left:10px;top:10px;width:46px;height:46px;box-shadow:0 2px 10px rgba(15,22,35,.18),inset 0 0 0 2px rgba(255,255,255,.6)}
.rkl-badge.sm b{font-size:15px}
.rkl-badge.sm::after{display:none}
.rkl-medals{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.rkl-medal{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:12px;min-width:0;transition:border-color .15s,box-shadow .15s}
.rkl-medal:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.rkl-mtop{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:center;isolation:isolate;flex:1}
.rkl-mt{display:flex;flex-direction:column;min-width:0}
.rkl-mt b{font-size:17px;letter-spacing:-.015em;margin-top:2px}
.rkl-mv{font-size:22px;font-weight:800;margin-top:6px;line-height:1.1}
.rkl-mt small{font-size:12.5px;color:var(--muted);line-height:1.35}
.rkl-strip{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent-soft),#eef0f3 60%);margin:2px 6px}
.rkl-strip i{position:absolute;top:-4px;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(15,22,35,.3);transform:translateX(-50%)}
.rkl-mf{display:flex;align-items:center;gap:14px;font-size:13.5px;flex-wrap:wrap}
.rkl-sbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--ink-2)}
.rkl-sbtn:hover{border-color:var(--accent)}
.rkl-sbtn .ic{width:15px;height:15px}
.rkl-mf .rkl-sbtn{margin-left:auto}
/* at a glance */
.rkl-lg{margin:0 0 12px}
.rkl-sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.rkl-sw.top{background:var(--accent);border-radius:50%}
.rkl-sw.good{background:#fff;border:2px solid var(--accent);border-radius:50%}
.rkl-sw.mid{background:#b8bfca;border-radius:50%}
.rkl-fps{columns:2;column-gap:14px}
.rkl-fpc{border:1px solid var(--line);border-radius:14px;padding:14px 16px 8px;background:#fff;min-width:0;break-inside:avoid;margin-bottom:14px}
.rkl-fph{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.rkl-fph b{font-size:15.5px;letter-spacing:-.01em}
.rkl-fph .link{margin-left:auto;font-size:13px}
.rkl-fph .hz-ti{width:30px;height:30px}
.rkl-fp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(70px,1.3fr) 62px;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--hair);font-size:13.5px}
.rkl-fp:hover .l{color:var(--accent-ink)}
.rkl-fp .l{font-weight:600;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-fp .t{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent-tint),#f0f1f4)}
.rkl-fp .t i{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;transform:translateX(-50%);background:#b8bfca;border:2px solid #fff;box-shadow:0 0 0 1px rgba(15,22,35,.08)}
.rkl-fp .t i.top{background:var(--accent)}
.rkl-fp .t i.good{background:#fff;border-color:var(--accent);border-width:2.5px}
.rkl-fp .v{text-align:right;font-weight:700}
.rkl-fp .v small{color:var(--faint);font-weight:500;font-size:11.5px}
/* what kind of place */
.rkl-scs{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.rkl-sc{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:9px;min-width:0;transition:border-color .15s}
.rkl-sc:hover{border-color:#c9ced7}
.rkl-sch b{font-size:16.5px;letter-spacing:-.015em}
.rkl-sch span{color:var(--muted);font-size:14px}
.rkl-scl{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;font-size:11.5px;font-weight:600;color:var(--muted)}
.rkl-scl .t{position:relative;height:8px;border-radius:4px;background:linear-gradient(90deg,#cfe1f3,#eef0f3 50%,#f6dfb9)}
.rkl-scl .t i{position:absolute;top:-4px;width:16px;height:16px;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 1px 4px rgba(15,22,35,.3);transform:translateX(-50%)}
.rkl-sc small{font-size:12.5px;color:var(--muted)}
/* almost there */
.rkl-close{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.rkl-cl{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s}
.rkl-cl:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.rkl-clr{display:flex;align-items:baseline;gap:8px}
.rkl-clr b{font-size:36px;font-weight:800;letter-spacing:-.04em;line-height:1}
.rkl-clr span:last-child{color:var(--muted);font-size:14px}
.rkl-goal{align-self:center;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);margin-right:2px}
.rkl-vs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rkl-vs > div{background:var(--surface);border-radius:10px;padding:8px 10px;min-width:0}
.rkl-vs > div.me{background:var(--accent-tint)}
.rkl-vs small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-vs b{font-size:15.5px}
/* next door */
.rkl-map .nbmap .o.rkl-nw,.rkl-sw.rkl-nw{fill:#bfe6cd;background:#bfe6cd}
.rkl-map .nbmap .o.rkl-nl,.rkl-sw.rkl-nl{fill:#f6ddb3;background:#f6ddb3}
.rkl-map .nbmap .o.rkl-ne,.rkl-sw.rkl-ne{fill:#dfe3e8;background:#dfe3e8}
.rkl-map .nbmap .o.rkl-nn,.rkl-sw.rkl-nn{fill:#f4f5f7;background:#f4f5f7;border:1px solid var(--line)}
.rkl-map .nbmap a:hover .o{filter:brightness(.93)}
.rkl-board{display:flex;flex-direction:column;gap:8px}
.rkl-bd{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff;transition:border-color .15s}
.rkl-bd:hover{border-color:#c9ced7}
.rkl-bdt{display:grid;grid-template-columns:minmax(0,1fr) 30px 10px 30px minmax(0,1fr);gap:6px;align-items:center}
.rkl-bdt .nm{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-bdt .nm.me{text-align:right;color:var(--accent-ink)}
.rkl-bdt b{font-size:21px;font-weight:800;text-align:center;color:var(--faint)}
.rkl-bdt b.win{color:var(--ink)}
.rkl-bdt .dash{color:var(--faint);text-align:center}
.rkl-bd small{display:block;text-align:center;font-size:12.5px;color:var(--muted);margin-top:2px}
/* every list (the hub) */
.rkl-hub{columns:3 280px;column-gap:14px}
.rkl-hg{border:1px solid var(--line);border-radius:14px;padding:14px 16px 6px;background:#fff;min-width:0;break-inside:avoid;margin-bottom:14px}
.rkl-hg h3{display:flex;align-items:center;gap:8px;font-size:15px;letter-spacing:-.01em;margin-bottom:6px}
.rkl-hg h3 .ic{color:var(--accent-ink)}
.rkl-hl{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.rkl-hl:hover b{color:var(--accent-ink)}
.rkl-hth{width:40px;height:40px;border-radius:9px;overflow:hidden;background:var(--surface);display:grid;place-items:center}
.rkl-hth img{width:100%;height:100%;object-fit:cover}
.rkl-hth b{color:var(--faint);font-size:16px}
.rkl-ht{min-width:0}
.rkl-ht b{display:block;font-size:14px}
.rkl-ht small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-hme{font-size:12px;font-weight:800;padding:3px 8px;border-radius:999px;background:var(--surface);color:var(--ink-2)}
.rkl-hme.good{background:var(--accent-tint);color:var(--accent-ink)}
.rkl-hme.top{background:var(--accent);color:#fff}
/* one list */
.rkl-back{margin:0 0 12px;font-size:14px}
.rkl-lhero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:22px;border:1px solid var(--line);border-radius:18px;padding:28px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%)}
.rkl-lt h1{font-size:34px;letter-spacing:-.035em;line-height:1.08;margin-top:6px}
.rkl-lt p{color:var(--ink-2);margin:10px 0 0;font-size:15px;max-width:620px}
.rkl-spot{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px;align-self:start}
.rkl-spn{display:flex;align-items:center;gap:16px;isolation:isolate}
.rkl-spn > div b{display:block;font-size:24px;font-weight:800;letter-spacing:-.03em}
.rkl-spn > div small{display:block;font-size:12.5px;color:var(--muted);line-height:1.35}
.rkl-spa{display:flex;flex-wrap:wrap;gap:8px}
.rkl-nob{font-size:21px;letter-spacing:-.02em}
.rkl-spot.none p{margin:0;color:var(--muted);font-size:14px}
.rkl-pick{margin-top:16px}
.rkl-pick summary{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13.5px;font-weight:600;cursor:pointer;list-style:none}
.rkl-pick summary::-webkit-details-marker{display:none}
.rkl-pick summary .ic{width:15px;height:15px;color:var(--accent-ink)}
.rkl-pick[open] summary{border-color:var(--accent)}
.rkl-pk{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-top:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.rkl-pk b{display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.rkl-pk a{display:block;font-size:13.5px;padding:3px 0;color:var(--ink-2)}
.rkl-pk a:hover{color:var(--accent-ink)}
.rkl-pk a[aria-current]{font-weight:700;color:var(--accent-ink)}
.rkl-pod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.rkl-pod .bey-c.me{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.rkl-race{display:flex;flex-direction:column;gap:6px}
.rkl-rr{display:grid;grid-template-columns:40px minmax(0,1.2fr) minmax(0,1.4fr) auto;gap:14px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14.5px}
.rkl-rr:hover{border-color:#c9ced7}
.rkl-rr .n{font-weight:800;color:var(--muted)}
.rkl-rr .nm{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-rr .trk,.rkl-tr .trk{height:7px;border-radius:4px;background:#eef0f3;overflow:hidden;display:block}
.rkl-rr .trk i,.rkl-tr .trk i{display:block;height:100%;border-radius:4px;background:var(--bar)}
.rkl-rr.me{background:var(--accent-tint);border-color:transparent}
.rkl-rr.me .n,.rkl-rr.me .nm{color:var(--accent-ink)}
.rkl-rr.me .trk i,.rkl-tr.me .trk i{background:var(--accent)}
.rkl-rr em,.rkl-tr em{font-style:normal;font-size:11px;font-weight:700;color:#8a5a00;background:#fff3dc;padding:1px 7px;border-radius:999px;margin-left:6px;white-space:nowrap}
.rkl-tbl{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.rkl-tr{display:grid;grid-template-columns:44px minmax(0,1.5fr) minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.8fr);gap:12px;align-items:center;padding:9px 16px;border-top:1px solid var(--hair);font-size:14px;scroll-margin-top:calc(var(--hdr) + 80px)}
.rkl-tr.hd{border-top:0;background:var(--surface);font-size:12px;font-weight:700;color:var(--muted);padding-top:10px;padding-bottom:10px}
.rkl-tr .n{font-weight:700;color:var(--muted)}
.rkl-tr .tw{min-width:0}
.rkl-tr .tw a{font-weight:600}
.rkl-tr .tw a:hover{color:var(--accent-ink)}
.rkl-tr .tw small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rkl-tr .tw small em{margin-left:0;padding:0 6px}
.rkl-tr .bar{display:flex;align-items:center;gap:10px;min-width:0}
.rkl-tr .bar .trk{flex:1;min-width:30px}
.rkl-tr .bar b{min-width:64px;text-align:right;font-size:13.5px}
.rkl-tr .c{text-align:right;color:var(--muted);font-size:13px}
.rkl-tr.me{background:var(--accent-tint)}
.rkl-tr.me .n,.rkl-tr.me .tw a{color:var(--accent-ink)}
.rkl-tr.nb:not(.me){background:#fffcf5}
.rkl-tr .sg-pill{display:inline-block;min-width:30px;text-align:center;padding:1px 7px;border-radius:999px;font-weight:800;font-size:12px;color:#fff;background:var(--faint)}
.rkl-tr .sg-a{background:var(--gA)}.rkl-tr .sg-b{background:var(--gB)}.rkl-tr .sg-c{background:var(--gC)}.rkl-tr .sg-d{background:var(--gD)}
.rkl-method .card p{margin:0 0 10px;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.rkl-method .card p:last-child{margin-bottom:0}
.rkl-method .card a{color:var(--accent-ink);font-weight:600}
.rkl-method .rk-fine{font-size:12px;color:var(--faint)}
.rkl-method .rk-card{border:0;padding:0;background:none}
.rkl-door{margin:12px 0 0;font-size:14px}
@media (max-width:1100px){.rkl-fps{columns:1}}
@media (max-width:900px){.rkl-lhero{grid-template-columns:1fr;padding:22px}.rkl-lt h1{font-size:28px}.rkl-tr{grid-template-columns:40px minmax(0,1.3fr) minmax(0,1.5fr) minmax(0,.8fr)}.rkl-tr > .c:last-child{display:none}}
@media (max-width:640px){
  .rkl-medals{grid-template-columns:1fr}
  .rkl-mtop{grid-template-columns:62px minmax(0,1fr);gap:14px}
  .rkl-mtop .rkl-badge{width:62px;height:62px}.rkl-mtop .rkl-badge b{font-size:19px}
  .rkl-pod{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .rkl-pod .bey-v{height:96px}.rkl-pod .bey-b{padding:8px 10px 10px}.rkl-pod .bey-b b{font-size:14px}.rkl-pod .bey-b small,.rkl-pod .bey-b .kick{display:none}
  .rkl-badge.sm{width:38px;height:38px;left:6px;top:6px}.rkl-badge.sm b{font-size:13px}
  .rkl-rr{grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:10px 12px}.rkl-rr .trk{display:none}
  .rkl-tr{grid-template-columns:34px minmax(0,1fr) minmax(0,1.05fr);gap:10px;padding:9px 12px}.rkl-tr > .c{display:none}
  .rkl-tr .bar b{min-width:0}
  .rkl-lhero{padding:18px}.rkl-lt h1{font-size:25px}
  .rkl-fp{grid-template-columns:minmax(0,1fr) minmax(60px,1fr) 56px;gap:10px}
  .rkl-scs{grid-template-columns:1fr}.rkl-hub{columns:1}
}

/* ---------- Neighbors (app/pages/neighbors.php) · prefix ng- (reuses hz-traits/hz-two/hz-ti, sq-filters/pill, gpick, nbbox/nbrow, legend) ---------- */
.ng-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:28px;align-items:stretch;border:1px solid var(--line);border-radius:18px;padding:32px;background:linear-gradient(160deg,var(--accent-tint),#fff 65%)}
.ng-hero h1{font-size:42px;letter-spacing:-.04em;line-height:1.04;margin-top:6px}
.ng-hi > p{color:var(--muted);margin:10px 0 18px;font-size:16px;max-width:600px}
.ng-faces{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ng-faces .av{width:40px;height:40px;font-size:15px;border:2px solid #fff;box-shadow:0 1px 3px rgba(15,22,35,.12)}
.ng-faces a:hover .av{transform:translateY(-2px)}
.ng-faces .av{transition:transform .15s}
.ng-faces .av.ghost{background:transparent;border:2px dashed #c9d2cd;box-shadow:none}
.ng-faces .av.join{background:#fff;border:2px solid var(--accent);color:var(--accent-ink);font-size:20px;font-weight:600;padding:0}
.ng-faces .av.join:hover{background:var(--accent);color:#fff}
.ng-fl{margin-left:8px;font-weight:700;font-size:14px}
.ng-fl small{font-weight:500;color:var(--muted);font-size:12.5px}
.ng-cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.ng-love{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 20px 18px;--hc:#e05a6d}
.ng-love.tone-green{--hc:var(--accent)}
.ng-love.tone-amber{--hc:#e0912f}
.ng-heart{width:92px;height:92px}
.ng-heart .tr{fill:#f3f4f6;stroke:var(--hc);stroke-width:1.2}
.ng-heart .fl{fill:var(--hc)}
.ng-love.tone-green .ng-heart{animation:ngbeat 1.6s ease-in-out infinite}
@keyframes ngbeat{0%,100%{transform:scale(1)}12%{transform:scale(1.07)}24%{transform:scale(1)}36%{transform:scale(1.05)}}
.ng-lv{display:flex;flex-direction:column;align-items:center;margin-top:4px}
.ng-state{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--hc)}
.ng-lv b{font-size:34px;line-height:1.1;margin-top:2px}
.ng-lv b small{font-size:15px;color:var(--faint);font-weight:600}
.ng-lvl{font-size:12.5px;color:var(--muted)}
.ng-lstats{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;width:100%;margin-top:14px;padding-top:14px;border-top:1px solid var(--hair)}
.ng-lstats div{display:flex;flex-direction:column}
.ng-lstats b{font-size:20px}
.ng-lstats span{font-size:12px;color:var(--muted)}
.ng-love p{font-size:12.5px;color:var(--muted);margin:12px 0 0;line-height:1.4}
.ng-you{display:inline-block;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 6px;vertical-align:2px;margin-left:4px;letter-spacing:.02em}
/* podium */
.ng-pod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.ng-pod.n1{grid-template-columns:minmax(0,340px)}
.ng-pod.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ng-p{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;border:1px solid var(--line);border-radius:16px;padding:20px 14px 16px;background:#fff;transition:border-color .15s,box-shadow .15s}
.ng-p:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.ng-p.first{background:linear-gradient(180deg,#fff7e0,#fff 60%);border-color:#f1dfa6;padding-top:26px}
.ng-pod.n3 .ng-p.first{order:2}.ng-pod.n3 .ng-p:nth-child(2){order:1}.ng-pod.n3 .ng-p:nth-child(3){order:3}
.ng-md{font-size:26px;line-height:1}
.ng-pav{width:64px;height:64px;font-size:24px}
.ng-p.first .ng-pav{width:80px;height:80px;font-size:30px}
.ng-p b{font-size:16px}
.ng-pk{font-size:22px;font-weight:700;color:var(--accent-ink)}
.ng-pk small{font-size:12.5px;color:var(--muted);font-weight:500}
.ng-pw{font-size:12.5px;color:var(--muted)}
.ng-runners{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ng-runners a{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:4px 12px 4px 4px;font-size:13.5px}
.ng-runners a:hover{border-color:#c9ced7}
.ng-runners .num{color:var(--accent-ink);font-weight:700}
.ng-rk{width:22px;text-align:center;color:var(--faint);font-weight:700;font-size:12px}
/* directory */
.ng-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}
.ng-filt{margin:0}
.ng-filt .pill{cursor:pointer}
.ng-find{display:flex;align-items:center;gap:8px;height:36px;border:1px solid var(--line);border-radius:10px;padding:0 10px;color:var(--faint);min-width:220px}
.ng-find input{border:0;outline:0;font:inherit;font-size:14px;width:100%;color:var(--ink);background:none}
.ng-find:focus-within{border-color:var(--accent)}
.ng-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.ng-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;transition:border-color .15s,box-shadow .15s;min-width:0}
.ng-card:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.ng-card.me{border-color:var(--accent-soft);background:linear-gradient(180deg,var(--accent-tint),#fff 55%)}
.ng-card.bot{background:var(--surface);border-style:dashed}
.ng-ct{display:flex;align-items:center;gap:12px;min-width:0}
.ng-cav{width:46px;height:46px;font-size:18px}
.ng-cn{display:flex;flex-direction:column;min-width:0}
.ng-cn b{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ng-cn small{font-size:12.5px;color:var(--muted)}
.ng-tags{display:flex;flex-wrap:wrap;gap:5px}
.ng-tags .chip{height:22px;font-size:12px}
.ng-lvl-neighbor{background:#e6f4ec;color:var(--accent-ink)}
.ng-lvl-local{background:#e3eefb;color:#245fa8}
.ng-lvl-steward{background:#efe8fb;color:#5a3fb0}
.ng-lvl-pillar{background:#fdf0d5;color:#8a5a00}
.ng-bio{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.ng-cs{display:flex;gap:14px;font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:8px;border-top:1px solid var(--hair)}
.ng-cs b{color:var(--ink);font-size:14px}
.ng-none{margin:14px 0 0;color:var(--muted)}
/* say hello */
.ng-new{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ng-nw{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 12px;border:1px solid var(--line);border-radius:14px;padding:14px}
.ng-nw b{font-size:15px}
.ng-nw small{display:block;font-size:12.5px;color:var(--muted)}
.ng-nav{width:44px;height:44px;font-size:17px}
.ng-nwb{grid-column:1 / -1;justify-self:start}
/* 100 people */
.ng-100{border:1px solid var(--line);border-radius:16px;padding:20px}
.ng-lens{margin-bottom:16px}
.ng-lens button{padding:0 14px}
.ng-lv2{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px;align-items:center}
.ng-dots{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.ng-dots i{aspect-ratio:1;border-radius:50% 50% 45% 45%;background:var(--bar);position:relative}
.ng-dots i.a,.ng-kr i.a{background:var(--accent)}
.ng-dots i.b,.ng-kr i.b{background:#9bb4d6}
.ng-dots i.c,.ng-kr i.c{background:#e0912f}
.ng-key{display:flex;flex-direction:column;gap:12px}
.ng-kr{display:grid;grid-template-columns:14px 52px minmax(0,1fr);align-items:center;gap:10px}
.ng-kr i{width:14px;height:14px;border-radius:50%}
.ng-kr b{font-size:30px;line-height:1}
.ng-kr span{font-size:14.5px;color:var(--ink-2);line-height:1.3}
.ng-kr small{display:block;font-size:12px;color:var(--faint)}
.ng-key p{margin:2px 0 0}
.ng-doors{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--hair)}
.ng-doors a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;background:var(--surface);font-size:13.5px;font-weight:600;color:var(--ink-2)}
.ng-doors a:hover{background:var(--accent-tint);color:var(--accent-ink)}
.ng-doors .ic{width:15px;height:15px}
/* quilt */
.ng-quilt{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.ng-quilt > svg{width:100%;height:auto;display:block;background:#fbfaf7;border:1px solid var(--line);border-radius:12px;padding:6px}
.ng-quilt rect.s{fill:none;stroke:rgba(255,255,255,.7);stroke-width:.8;stroke-dasharray:1.6 1.4}
.ng-quilt rect.e{fill:none;stroke:#d5d9df;stroke-width:.8;stroke-dasharray:2 1.6}
.ng-qk{display:flex;flex-direction:column;gap:2px}
.ng-qk a{display:grid;grid-template-columns:14px 56px minmax(0,1fr);align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:14.5px}
.ng-qk a:hover span{color:var(--accent-ink)}
.ng-qk i{width:14px;height:14px;border-radius:3px}
.ng-qk b{font-size:19px;text-align:right}
.ng-qk .btn{margin-top:12px;align-self:flex-start}
/* groups */
.ng-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.ng-g{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;text-align:left}
.ng-g:hover{border-color:#c9ced7}
.ng-g.idea{border-style:dashed}
.ng-ge{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--surface);flex:none}
.ng-g b{display:block;font-size:14.5px}
.ng-g small{font-size:12.5px;color:var(--muted)}
/* ladder + earn */
.ng-ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}
.ng-rung{position:relative;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:14px 12px;background:#fff}
.ng-rung:nth-child(2){margin-top:-8px}.ng-rung:nth-child(3){margin-top:-16px}.ng-rung:nth-child(4){margin-top:-24px}.ng-rung:nth-child(5){margin-top:-32px}
.ng-ladder{align-items:end;padding-top:32px}
.ng-rung.me{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.ng-step{font-size:12px;color:var(--faint);font-weight:700}
.ng-rung b{font-size:16px}
.ng-rf{display:flex;min-height:26px}
.ng-rf .av{width:26px;height:26px;font-size:11px;border:2px solid #fff;margin-left:-6px}
.ng-rf .av:first-child{margin-left:0}
.ng-rf .av.more{background:var(--surface);color:var(--muted)}
.ng-rung small{font-size:12px;color:var(--muted)}
.ng-prog{height:6px;border-radius:3px;background:var(--surface);overflow:hidden}
.ng-prog i{display:block;height:100%;background:var(--accent);border-radius:3px}
.ng-earn{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.ng-e{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;text-align:left;transition:border-color .15s,box-shadow .15s}
.ng-e:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.ng-e.top{background:var(--accent-tint);border-color:transparent}
.ng-e.top .hz-ti{background:#fff}
.ng-e b{font-size:15.5px;margin-top:6px}
.ng-e small{font-size:13px;color:var(--muted);line-height:1.4}
.ng-pts{display:inline-block;font-size:12px;font-weight:700;color:var(--accent-ink);background:#fff;border:1px solid var(--accent-soft);border-radius:999px;padding:0 7px;margin-left:4px;vertical-align:1px}
/* next door */
.ng-map .nbmap .o.ng-q0,.ng-sw.ng-q0{fill:#eef0f3;background:#e3e6ea}
.ng-map .nbmap .o.ng-q1,.ng-sw.ng-q1{fill:#cdeedb;background:#cdeedb}
.ng-map .nbmap .o.ng-q2,.ng-sw.ng-q2{fill:#7fd3a4;background:#7fd3a4}
.ng-map .nbmap .o.ng-q3,.ng-sw.ng-q3{fill:#2aa865;background:#2aa865}
.ng-map .nbmap .me{fill:var(--night)}
.ng-map .nbmap a:hover .o{filter:brightness(.93)}
@media (max-width:1100px){.ng-hero{grid-template-columns:1fr}.ng-love{display:grid;grid-template-columns:auto minmax(0,1fr);text-align:left;column-gap:18px;align-items:center}.ng-love .ng-heart{grid-row:span 2;width:80px;height:80px}.ng-lv{align-items:flex-start}.ng-lstats{grid-column:1 / -1;grid-template-columns:repeat(4,1fr)}.ng-love p{grid-column:1 / -1}}
@media (max-width:900px){.ng-hero{padding:22px}.ng-hero h1{font-size:32px}.ng-quilt{grid-template-columns:1fr}.ng-ladder{grid-template-columns:1fr 1fr;padding-top:0;align-items:stretch}.ng-rung{margin-top:0!important}.ng-ladder .ng-rung:last-child{grid-column:1 / -1}}
@media (max-width:640px){.ng-hero h1{font-size:28px}.ng-lstats{grid-template-columns:1fr 1fr}.ng-pod,.ng-pod.n2,.ng-pod.n3{grid-template-columns:1fr}.ng-pod.n3 .ng-p{order:0!important}.ng-lv2{grid-template-columns:1fr;gap:18px}.ng-dots{max-width:300px}.ng-find{min-width:0;width:100%}.ng-faces .av{width:34px;height:34px;font-size:13px}}
@media (prefers-reduced-motion:reduce){.ng-love .ng-heart{animation:none}}

/* ---------- Weather (app/pages/weather.php): wx- ---------- */
.wx-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;border-radius:18px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--wt) 30%,#fff),#fff 72%)}
.wx-hin{padding:30px 28px 28px 32px;min-width:0}
.wx-hero h1{font-size:38px;letter-spacing:-.035em;line-height:1.06;margin-top:8px;max-width:640px}
.wx-hin > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;line-height:1.5;max-width:620px}
.wx-hchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.wx-hchips a{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px 0 8px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-2)}
.wx-hchips a span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--hc) 16%,#fff);font-size:13px}
.wx-hchips a b{color:var(--hc)}.wx-hchips a small{color:var(--faint);font-weight:500;margin-left:-3px}
.wx-hchips a:hover{border-color:var(--hc)}
.wx-side{display:grid;place-items:center;padding:22px;background:color-mix(in srgb,var(--wt) 55%,#fff) center/cover no-repeat}
.wx-card{background:rgba(255,255,255,.95);border-radius:16px;padding:16px 18px;width:100%;max-width:270px;box-shadow:0 8px 30px rgba(15,22,35,.14)}
.wx-nt{display:flex;align-items:center;gap:10px;margin-top:4px}
.wx-nt .g{font-size:40px;line-height:1}
.wx-nt b{font-size:52px;font-weight:700;letter-spacing:-.04em;line-height:1}
.wx-nc{font-weight:600;font-size:16px;margin-top:4px}
.wx-nf{font-size:13px;color:var(--muted);margin-top:2px}
.wx-nvs{display:inline-block;margin-top:10px;padding:4px 10px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--tc);background:color-mix(in srgb,var(--tc) 11%,#fff)}
.wx-card > small{display:block;font-size:11.5px;color:var(--faint);margin-top:10px;line-height:1.35}
.wx-wait{color:var(--muted);margin:40px 0 0}

.wx-alerts{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.wx-alert{border-radius:12px;background:#fff7e6;border:1px solid #f3d9a4}
.wx-alert.sev{background:#fdeeea;border-color:#f1b9a8}
.wx-alert summary{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}
.wx-alert summary::-webkit-details-marker{display:none}
.wx-alert summary > span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.wx-alert b{color:#8a5300;font-size:15px}.wx-alert.sev b{color:#a1361b}
.wx-alert summary small{font-size:13px;color:var(--ink-2)}
.wx-ai{font-size:20px}
.wx-more{font-size:13px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.wx-alert[open] .wx-more{opacity:.5}
.wx-ab{padding:0 16px 14px 46px;font-size:14px;color:var(--ink-2)}
.wx-ab p{margin:0 0 8px}.wx-ab small{color:var(--muted)}

.wx-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.wx-kpis .kpi .v{font-size:26px}

.wx-hcard{padding:14px 14px 12px}
.wx-hscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.wx-hrs{display:block;width:100%;min-width:680px;height:auto}
.wx-hrs .nt{fill:#eef1f6}
.wx-hrs .base{stroke:var(--line);stroke-width:1}
.wx-hrs .area{fill:url(#wxArea)}
.wx-hrs .ln{fill:none;stroke:#e48a43;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.wx-hrs .dt{fill:#fff;stroke:#e48a43;stroke-width:2}.wx-hrs .dt.ex{fill:#e48a43}
.wx-hrs .tv{font:600 13px var(--sans);fill:var(--ink-2);text-anchor:middle}.wx-hrs .tv.ex{font-weight:800;fill:var(--ink)}
.wx-hrs .rn{fill:#9cc3e4}
.wx-hrs .rp{font:700 11.5px var(--sans);fill:#2f6fa8;text-anchor:middle}
.wx-hrs .gl{font-size:17px;text-anchor:middle}
.wx-hrs .hr{font:500 12px var(--sans);fill:var(--muted);text-anchor:middle}
.wx-hrs .hit{fill:transparent}
.wx-hrs g:hover .dt{r:5}

.wx-week{padding:6px 18px 14px}
.wx-day{border-bottom:1px solid var(--hair)}
.wx-day summary{display:grid;grid-template-columns:76px 36px minmax(0,1.1fr) minmax(0,2fr) 64px;align-items:center;gap:12px;padding:12px 0;cursor:pointer;list-style:none}
.wx-day summary::-webkit-details-marker{display:none}
.wx-day summary:hover .wx-dl b{color:var(--accent-ink)}
.wx-dl{display:flex;flex-direction:column;line-height:1.2}.wx-dl small{font-size:12px;color:var(--faint)}
.wx-dg{font-size:24px;text-align:center}
.wx-ds{display:flex;flex-direction:column;font-size:13.5px;line-height:1.3;min-width:0}
.wx-ds small{color:var(--faint);font-size:12px}.wx-ds small.wet{color:#2f6fa8;font-weight:600}
.wx-dr{position:relative;height:28px}
.wx-trk{position:absolute;left:34px;right:34px;top:50%;height:8px;margin-top:-4px;border-radius:4px;background:#f1f3f6}
.wx-trk .nrm{position:absolute;top:-4px;bottom:-4px;border-radius:6px;background:repeating-linear-gradient(135deg,#dfe4eb 0 3px,#eef1f5 3px 6px)}
.wx-trk .fc{position:absolute;top:0;bottom:0;border-radius:4px;box-shadow:0 0 0 2px #fff}
.wx-trk .dot{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:2px solid #fff}
.wx-trk em{position:absolute;top:50%;transform:translateY(-50%);font-style:normal;font-size:13px;font-weight:700;white-space:nowrap}
.wx-trk em{background:#fff;padding:0 3px;border-radius:4px}
.wx-trk em.lo{color:var(--muted);font-weight:600}
.wx-dv{text-align:right;font-size:12.5px}
.wx-dv b{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--surface);color:var(--muted)}
.wx-dv b.up{background:#fdeee4;color:#b8501f}.wx-dv b.dn{background:#e7eef8;color:#2f5f9f}
.wx-dt{padding:0 0 14px 88px;font-size:14px;color:var(--ink-2)}
.wx-dt p{margin:0 0 6px}
.wx-wleg{margin-top:12px}
.wx-nrmkey{background:repeating-linear-gradient(135deg,#dfe4eb 0 3px,#eef1f5 3px 6px)!important;width:16px!important}

.wx-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.wx-pc{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
.wx-pc b{font-size:16.5px;letter-spacing:-.015em;margin-top:6px}
.wx-pc small{font-size:13.5px;color:var(--muted);line-height:1.4;flex:1}
.wx-pc .link{font-size:13.5px;margin-top:6px}
.wx-pi{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:22px;background:var(--surface)}
.wx-p-frost .wx-pi,.wx-p-snow .wx-pi{background:#e7eef8}.wx-p-heat .wx-pi{background:#fdeee4}.wx-p-rain .wx-pi{background:#e6f0f8}
.wx-p-walk .wx-pi,.wx-p-dry .wx-pi{background:var(--accent-tint)}.wx-p-stars .wx-pi{background:#efeaf9}
.wx-p-frost,.wx-p-heat,.wx-p-snow{border-color:transparent;background:linear-gradient(160deg,#f6f8fb,#fff)}

.wx-ti{font-size:18px}

.wx-seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.wx-sea{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:2px}
.wx-sea.on{border-color:var(--sc);box-shadow:inset 0 3px 0 var(--sc)}
.wx-sea b{font-size:15px}.wx-sea b small{font-size:11px;font-weight:700;color:var(--sc);text-transform:uppercase;letter-spacing:.06em;margin-left:4px}
.wx-sea > small{font-size:12.5px;color:var(--muted);line-height:1.35}
.wx-si{font-size:20px}
.wx-shl{font-size:26px;font-weight:700;color:var(--sc)}.wx-shl small{font-size:15px;color:var(--faint);font-weight:600}
.wx-yr2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.wx-tc{padding:18px 16px 14px 44px}
.wx-tg{position:relative;height:230px}
.wx-tg .gl{position:absolute;left:0;right:0;border-top:1px solid var(--hair)}
.wx-tg .gl i{position:absolute;left:-36px;top:-8px;font-size:11px;font-style:normal;color:var(--faint);width:30px;text-align:right}
.wx-tg .gl.frz{border-top:1.5px dashed #8eadd6}.wx-tg .gl.frz i{color:#2f63a8;font-weight:600}
.wx-tg{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 4px}
.wx-tg .col{position:relative;height:100%}
.wx-tg .col.now{background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:8px}
.wx-tg .col > i{position:absolute;left:22%;right:22%;border-radius:6px}
.wx-tg .col > b,.wx-tg .col > em{position:absolute;left:0;right:0;text-align:center;font-size:11.5px;font-style:normal;line-height:1}
.wx-tg .col > b{font-weight:700;color:var(--ink-2)}.wx-tg .col > em{color:var(--muted)}
.wx-tg .col > s{position:absolute;left:50%;width:12px;height:12px;margin:0 0 -6px -6px;border-radius:50%;background:var(--ink);border:2px solid #fff;box-shadow:0 0 0 1.5px var(--ink)}
.wx-tg .col > u{position:absolute;left:14%;right:14%;height:3px;margin-bottom:-1.5px;background:var(--ink);border-radius:2px}
.wx-cax{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 4px;margin-top:6px;font-size:11px;color:var(--faint);text-align:center}
.wx-cax.big{font-size:12px}.wx-cax span.now{color:var(--accent-ink);font-weight:700}
.wx-dash{background:none!important;border-top:1.5px dashed #8eadd6;height:0!important;vertical-align:3px!important}
.wx-todot{border-radius:50%!important;background:var(--ink)!important}
.wx-yside{display:flex;flex-direction:column;gap:12px}
.wx-cd{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center;border-radius:14px;padding:14px 16px;background:var(--accent-tint)}
.wx-cd span{grid-row:span 2;font-size:26px}
.wx-cd b{font-size:24px;letter-spacing:-.03em;line-height:1.1}
.wx-cd small{font-size:13px;color:var(--ink-2)}
.wx-cd:hover b{color:var(--accent-ink)}
.wx-best{border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.wx-best > b{font-size:14px}
.wx-best > div{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px}
.wx-best .chip.on{background:var(--accent);color:#fff}
.wx-best > small{font-size:12.5px;color:var(--muted);display:block}
.wx-qs{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.wx-qs a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;border-top:1px solid var(--hair)}
.wx-qs a:first-child{border-top:0}
.wx-qs a:hover{background:var(--surface)}.wx-qs a:hover i{color:var(--accent-ink)}
.wx-qs a > span:first-child{font-size:18px}
.wx-qs a > span > b{display:block;font-size:14px}.wx-qs small{font-size:13px;color:var(--muted)}
.wx-qs i{font-style:normal;color:var(--faint);font-weight:700}

@media (max-width:1100px){.wx-hero{grid-template-columns:minmax(0,1fr) 270px}.wx-yr2{grid-template-columns:1fr}.wx-yside{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:start}}
@media (max-width:900px){.wx-hero{grid-template-columns:1fr}.wx-side{padding:18px}.wx-card{max-width:none}.wx-seasons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .wx-hin{padding:22px 18px}.wx-hero h1{font-size:28px}
  .wx-kpis{grid-template-columns:1fr 1fr;gap:8px}.wx-kpis .kpi{padding:12px}.wx-kpis .kpi .v{font-size:22px}.wx-kpis .kpi:last-child:nth-child(odd){grid-column:1/-1}
  .wx-week{padding:2px 12px 12px}
  .wx-day summary{grid-template-columns:52px 28px minmax(0,1fr) 54px;grid-template-areas:"l g s v" "r r r r";gap:4px 8px}
  .wx-dl{grid-area:l}.wx-dg{grid-area:g;font-size:20px}.wx-ds{grid-area:s}.wx-dv{grid-area:v}.wx-dr{grid-area:r}
  .wx-dt{padding-left:0}
  .wx-tc{padding:14px 10px 12px 34px}.wx-tg{height:200px;gap:0 2px}.wx-tg .gl i{left:-30px;width:26px;font-size:10px}
  .wx-tg .col > b,.wx-tg .col > em{font-size:10px}.wx-tg .col > i{left:16%;right:16%}
  .wx-cax{gap:0 2px;font-size:10px}.wx-cax.big{font-size:10px}
}
@media (max-width:420px){.wx-seasons{gap:8px}.wx-sea{padding:12px}.wx-shl{font-size:22px}}

/* ---------- Places (app/pages/places.php) ---------- */
.pl-page{--pl-eat:#d97706;--pl-shop:#7c3aed;--pl-do:#0e9f57;--pl-stay:#2563eb;--pl-every:#64748b;--pl-civic:#0d9488}
.g-eat,[data-pl-g="eat"]{--pl-c:var(--pl-eat)}.g-shop,[data-pl-g="shop"]{--pl-c:var(--pl-shop)}.g-do,[data-pl-g="do"]{--pl-c:var(--pl-do)}
.g-stay,[data-pl-g="stay"]{--pl-c:var(--pl-stay)}.g-every,[data-pl-g="every"]{--pl-c:var(--pl-every)}.g-civic,[data-pl-g="civic"]{--pl-c:var(--pl-civic)}
.pl-search{display:flex;align-items:center;gap:8px;max-width:560px;margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px 5px 5px 12px;box-shadow:0 4px 18px rgba(15,22,35,.06)}
.pl-search:focus-within{border-color:var(--accent)}
.pl-search .ic{color:var(--faint)}
.pl-search input{flex:1;min-width:0;border:0;outline:none;font:inherit;font-size:15px;height:36px;background:none;color:var(--ink)}
.pl-hacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pl-hacts .ic{width:16px;height:16px}

/* cards */
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.pl-card{position:relative;display:flex;gap:12px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0;transition:border-color .15s,box-shadow .15s}
.pl-card:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.pl-th{width:52px;height:52px;border-radius:12px;flex:none;overflow:hidden;display:grid;place-items:center;font-size:24px;background:color-mix(in srgb,var(--pl-c,var(--accent)) 13%,#fff)}
.pl-th img{width:100%;height:100%;object-fit:cover}
.pl-b{flex:1;min-width:0}
.pl-b h3{font-size:15.5px;font-weight:650;letter-spacing:-.01em;line-height:1.3;padding-right:18px;overflow-wrap:anywhere}
.pl-b h3 a:hover{color:var(--accent-ink)}
.pl-m{font-size:13px;color:var(--muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pl-r{font-size:13px;margin-top:4px}
.pl-r b{color:#b45309}
.pl-n{font-size:13px;color:var(--ink-2);margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pl-new{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-tint);border-radius:6px;padding:2px 7px}
.pl-a{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:13px;font-weight:600}
.pl-a a{color:var(--accent-ink)}
.pl-a a:hover{text-decoration:underline}
.pl-ed{position:absolute;top:9px;right:11px;color:var(--faint);font-size:14px;opacity:.5;line-height:1;padding:3px}
.pl-ed:hover,.pl-ed:focus-visible{opacity:1;color:var(--accent-ink)}

/* shelves + doors */
.pl-tabs{margin-bottom:14px}
.pl-tabs button{height:36px;padding:0 13px;font-weight:600;font-size:13.5px;border-radius:999px}
.pl-tabs button small{font-weight:500;opacity:.7;margin-left:2px}
.pl-more{display:inline-block;margin-top:12px;font-size:14px;font-weight:600;color:var(--accent-ink)}
.pl-more:hover{text-decoration:underline}
.pl-doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.pl-door{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:#fff;min-width:0}
.pl-door:hover{border-color:var(--accent);background:var(--accent-tint)}
.pl-di{width:38px;height:38px;border-radius:10px;background:var(--surface);display:grid;place-items:center;font-size:19px;flex:none}
.pl-door:hover .pl-di{background:#fff}
.pl-dt{min-width:0;display:flex;flex-direction:column;gap:2px}
.pl-dt b{font-size:14.5px}
.pl-dt b .num{color:var(--muted);font-weight:500;margin-left:3px}
.pl-dt small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* the map */
.pl-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pl-legend button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:600;color:var(--ink-2)}
.pl-legend button[aria-pressed="false"]{opacity:.45}
.pl-legend button[aria-pressed="false"] .pl-sw{background:transparent;box-shadow:inset 0 0 0 1.5px var(--pl-c)}
.pl-legend small{color:var(--faint);font-weight:500}
.pl-sw{width:10px;height:10px;border-radius:50%;background:var(--pl-c);flex:none}
.pl-map{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#f7faf8,#eef4f0);padding:8px;overflow:hidden}
.pl-map svg{display:block;width:100%;height:auto;max-height:640px}
.pl-town{fill:#fff;stroke:#b9c8bf;stroke-width:2;stroke-linejoin:round;fill-rule:evenodd}
.pl-dots{fill:none;stroke:var(--pl-c);stroke-linecap:round;stroke-opacity:.8}
.pl-hub{fill:rgba(14,159,87,.07);stroke:var(--accent);stroke-width:1.6;stroke-dasharray:5 4}
.pl-hubl{font:700 16px var(--sans);fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.pl-mapw.off-eat [data-pl-l="eat"],.pl-mapw.off-shop [data-pl-l="shop"],.pl-mapw.off-do [data-pl-l="do"],.pl-mapw.off-stay [data-pl-l="stay"],.pl-mapw.off-every [data-pl-l="every"],.pl-mapw.off-civic [data-pl-l="civic"]{display:none}
.pl-hubs{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.pl-hubs > div{flex:1;min-width:200px;border-radius:14px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column}
.pl-hubs b{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--accent-ink);line-height:1.1}
.pl-hubs span{font-size:14px;font-weight:600;margin-top:2px}
.pl-hubs small{font-size:12.5px;color:var(--muted)}

/* neighbor favorite */
.pl-spot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:36px;background:#fff}
.pl-spot-v{min-height:230px;display:grid;place-items:center;font-size:72px;background:var(--accent-tint)}
.pl-spot-v img{width:100%;height:100%;object-fit:cover}
.pl-spot-b{padding:24px}
.pl-spot-b h2{font-size:26px;letter-spacing:-.025em;margin-top:6px}
.pl-spot-b h2 a:hover{color:var(--accent-ink)}
.pl-spot-b p{margin:6px 0 0}

/* filtered list */
.pl-rhead{border-radius:18px;padding:24px 28px 26px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line)}
.pl-rhead h1{font-size:34px;letter-spacing:-.035em;line-height:1.08;margin:6px 0 4px}
.pl-rhead p{margin:0}
.pl-back{display:inline-block;font-size:13.5px;font-weight:600;color:var(--accent-ink);margin-bottom:12px}
.pl-back:hover{text-decoration:underline}
.pl-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}
.pl-pills.pl-sub{margin-top:10px}
.pl-pill{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.pl-pill small{color:var(--faint);font-weight:500}
.pl-pill:hover{border-color:var(--accent)}
.pl-pill.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pl-pill.on small{color:rgba(255,255,255,.72)}
.pl-sub .pl-pill{height:30px;font-size:13px}
.pl-sub .pl-pill.on{background:var(--accent);border-color:var(--accent)}
.pl-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 14px}
.pl-hood select{height:36px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}
.pl-sort{font-size:13.5px;color:var(--muted);margin-left:auto}
.pl-sort a{font-weight:600;color:var(--accent-ink)}
.pl-sort a.on{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.pl-anchor{grid-column:1/-1;height:0;scroll-margin-top:calc(var(--hdr) + 20px)}
.pl-pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}
.pl-prog{flex-basis:100%;max-width:360px;height:5px;border-radius:3px;background:#e8ebef;position:relative}
.pl-prog i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--accent)}
.pl-none{max-width:560px}
.pl-none p{margin:6px 0 12px}
.pl-none .ic{width:16px;height:16px}

/* talk + add */
.pl-talkl{display:flex;flex-direction:column;gap:16px;min-width:0}
.pl-gap{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--hair);font-size:14px}
.pl-gap > span{white-space:nowrap;font-size:13.5px;color:var(--faint)}
.pl-addtile{display:flex;align-items:center;gap:14px;width:100%;margin-top:34px;padding:16px 18px;border:1.5px dashed #c9ced7;border-radius:16px;background:#fff;text-align:left}
.pl-addtile:hover{border-color:var(--accent);background:var(--accent-tint)}
.pl-addtile .pa{width:42px;height:42px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:500;flex:none}
.pl-addtile b{display:block;font-size:15.5px}
.pl-addtile small{color:var(--muted);font-size:13.5px}

/* the classic add-a-place sheet, bridged to lean tokens */
.ap-lean{--surface:#fff;--surface-2:#f6f7f9;--text:var(--ink);--green:var(--accent);--green-bg:rgba(14,159,87,.10);--green-line:rgba(14,159,87,.30);--display:var(--sans);--line-2:#d5dae1;--bg:#fff}

@media (max-width:760px){
  .pl-spot{grid-template-columns:1fr}.pl-spot-v{min-height:150px}.pl-spot-b{padding:18px}
  .pl-rhead{padding:18px 18px 20px}.pl-rhead h1{font-size:26px}
  .pl-grid{grid-template-columns:minmax(0,1fr)}
  .pl-search{padding-left:10px}.pl-search .btn{padding:0 12px}
  .pl-gap{flex-direction:column;align-items:flex-start;gap:2px}
  .pl-sort{margin-left:0}
  .pl-hubs > div{min-width:0;flex-basis:100%}
}
.pl-nb{max-width:680px;gap:8px}
.pl-hubs > div{max-width:420px}
.pl-back{display:table}

/* ---------- One historic place (app/pages/historicplace.php, view=historic-place); every class hpl- prefixed ---------- */
.hpl-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px;align-items:center;margin-top:12px}
.hpl-photo{margin:0;border-radius:18px;overflow:hidden;background:var(--night);position:relative}
.hpl-photo img{width:100%;height:auto;max-height:560px;object-fit:cover;display:block}
.hpl-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 9px;font-size:11.5px;color:rgba(255,255,255,.85);background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}
.hpl-photo figcaption a{color:#fff;text-decoration:underline}
.hpl-photo.none{background:#fbf8f2;border:1px dashed #e2d5b9}
.hpl-none{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:60px 20px;color:var(--muted)}
.hpl-none .ic{width:44px;height:44px;color:#b7791f}
.hpl-none b{color:var(--ink);font-size:17px}
.hpl-none .btn{margin-top:8px}
.hpl-id h1{font-size:40px;letter-spacing:-.04em;line-height:1.05;margin-top:8px}
.hpl-nhl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:#8a5a00;background:#fff4d6;border:1px solid #f2dca0;padding:4px 11px;border-radius:999px}
.hpl-aka{color:var(--muted);font-size:14px;margin:8px 0 0}
.hpl-fact{margin-top:16px;padding:12px 16px;border-left:4px solid #b7791f;background:#fbf8f2;border-radius:0 12px 12px 0}
.hpl-fact b{display:block;font-size:19px;letter-spacing:-.02em;line-height:1.25}
.hpl-fact small{font-size:13.5px;color:var(--muted)}
.hpl-id .rk-row{margin-top:14px}
.hpl-id .rk i .ic{width:14px;height:14px}
.hpl-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.hpl-note{font-size:13px;color:var(--muted);margin:12px 0 0}
.hpl-tn .tn{aspect-ratio:16/10;max-height:620px}
.hpl-two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:start}
.hpl-prose h2{font-size:26px;letter-spacing:-.03em;margin:4px 0 12px}
.hpl-prose p{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 14px;max-width:68ch}
.hpl-prose p.first::first-letter{float:left;font-size:54px;line-height:.9;font-weight:800;margin:6px 10px 0 0;color:#b7791f}
.hpl-nom{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-top:8px;background:#fff}
.hpl-nom:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.hpl-doc{width:52px;height:64px;border-radius:6px;background:linear-gradient(160deg,#fff,#f3ead8);border:1px solid #e2d5b9;display:grid;place-items:center;font-size:12px;font-weight:800;color:#b42318}
.hpl-nom b{display:block;font-size:15.5px}.hpl-nom small{font-size:13px;color:var(--muted)}
.hpl-nom .go{font-size:18px;color:var(--muted)}
.hpl-rec dd{font-size:14.5px}
.hpl-years{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;position:relative}
.hpl-years li{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;position:relative}
.hpl-years li > b{font-size:24px;letter-spacing:-.03em;color:#9c6a13}
.hpl-years li.now{background:var(--accent-tint);border-color:transparent}.hpl-years li.now > b{color:var(--accent-ink)}
.hpl-yd{position:absolute;top:14px;right:14px;color:#b7791f}.hpl-yd .ic{width:16px;height:16px}
.hpl-years a{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--ink-2)}
.hpl-years a img{width:100%;height:84px;object-fit:cover;border-radius:8px;filter:sepia(.15)}
.hpl-years a:hover span{color:var(--accent-ink);text-decoration:underline}
.hpl-years .t{font-size:13.5px;color:var(--ink-2)}
.hpl-visit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}
.hpl-visit .tmap{height:340px;border-radius:14px}
.hpl-vacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hpl-walk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;position:relative}
.hpl-walk::before{content:"";position:absolute;left:15px;top:16px;bottom:16px;border-left:2px dashed #d9c9a6}
.hpl-walk li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;position:relative}
.hpl-walk .n{width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #b7791f;color:#9c6a13;font-weight:800;font-size:13px;display:grid;place-items:center;z-index:1}
.hpl-walk li.me .n{background:#b7791f;color:#fff}
.hpl-walk li > span:last-child,.hpl-walk a{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff;min-width:0}
.hpl-walk a:hover{border-color:#d9c9a6}
.hpl-walk img{width:52px;height:40px;object-fit:cover;border-radius:6px;flex:none}
.hpl-walk b{display:block;font-size:14px;line-height:1.25}.hpl-walk small{font-size:12px;color:var(--muted)}
.hpl-near{display:flex;flex-direction:column;border-top:1px solid var(--hair)}
.hpl-near a{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair)}
.hpl-near img,.hpl-near .ni{width:52px;height:40px;border-radius:6px;object-fit:cover;background:#fbf8f2;display:grid;place-items:center;color:#b7791f}
.hpl-near b{display:block;font-size:14px;line-height:1.25}.hpl-near small{font-size:12px;color:var(--muted)}
.hpl-near .d{font-weight:700;font-size:14px;text-align:right}.hpl-near .d small{display:block;font-weight:400}
.hpl-near a:hover b{color:var(--accent-ink)}
.hpl-addold{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);font-size:14px;color:var(--ink-2)}
@media (max-width:1100px){.hpl-hero{grid-template-columns:1fr}.hpl-two{grid-template-columns:1fr}.hpl-visit{grid-template-columns:1fr}}
@media (max-width:640px){.hpl-id h1{font-size:28px}.hpl-fact b{font-size:17px}.hpl-photo img{max-height:340px}.hpl-visit .tmap{height:260px}.hpl-years{grid-template-columns:1fr 1fr}.hpl-nom{grid-template-columns:44px minmax(0,1fr)}.hpl-nom .go{display:none}.hpl-acts .btn{flex:1}}
.hpl-crumb{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hpl-crumb a{color:var(--ink-2)}.hpl-crumb a:hover{color:var(--accent-ink);text-decoration:underline}.hpl-crumb span{color:var(--ink);font-weight:600}
#about .hpl-two{margin-top:44px}

/* ---------- One place (app/pages/placedetail.php) ---------- */
.pd-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;color:var(--muted);margin-bottom:14px}
.pd-crumb a{color:var(--accent-ink);font-weight:600}
.pd-crumb a:hover{text-decoration:underline}
.pd-crumb b{font-weight:600;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.pd-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--pl-c,var(--accent)) 9%,#fff),#fff 65%)}
.pd-hero.is-closed{filter:grayscale(.6)}
.pd-hero-b{padding:28px 30px;min-width:0}
.pd-hero h1{font-size:40px;letter-spacing:-.04em;line-height:1.05;margin-top:8px;overflow-wrap:anywhere}
.pd-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.pd-b{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--ink-2)}
.pd-b small{color:var(--faint);font-weight:500}
.pd-b.ok{color:var(--good);border-color:#bfe6cf}
.pd-b.bad{color:var(--bad);border-color:#f3c4c4;background:#fff5f5}
.pd-b.star{color:#b45309;border-color:#f5dcb0}
.pd-b.new{color:var(--accent-ink);background:var(--accent-tint);border-color:transparent}
.pd-b.hist{color:#7c4a12;background:#fbf3e4;border-color:#f0dcb5}
.pd-lede{font-size:16px;color:var(--ink-2);margin:14px 0 0;line-height:1.5;max-width:560px}
.pd-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pd-acts .ic{width:16px;height:16px}
.pd-hero-v{position:relative;min-height:280px;background:var(--surface)}
.pd-hero-v .tmap{position:absolute;inset:0;height:auto;border-radius:0}
.pd-zoom{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.pd-hero-v .pd-zoom{position:absolute;inset:0}
.pd-zoom img{width:100%;height:100%;object-fit:cover}
.pd-more-ph{position:absolute;right:12px;bottom:12px;background:rgba(15,22,35,.72);color:#fff;font-size:13px;font-weight:600;padding:6px 11px;border-radius:999px}
.pd-glyph{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--pl-c,var(--accent)) 14%,#fff)}
.pd-glyph span{font-size:96px;filter:drop-shadow(0 8px 18px rgba(15,22,35,.15))}
.pd-note{margin-top:16px;background:#fff8f0;border-color:#f3dcc0}
.pd-inline{display:inline}
.pd-real{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;background:var(--accent-tint);border-color:transparent}
.pd-real h2{font-size:21px;letter-spacing:-.02em;margin-top:4px}
.pd-real p{margin:4px 0 10px}
.pd-vote{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pd-voted{color:var(--good);font-weight:600;font-size:13.5px}
.pd-pips{display:flex;align-items:center;gap:5px}
.pd-pips i{width:22px;height:6px;border-radius:3px;background:#dde2e8}
.pd-pips i.on{background:var(--accent)}
.pd-pips small{margin-left:6px;font-size:12.5px;color:var(--muted)}

/* where */
.pd-where{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start}
.pd-where.solo{grid-template-columns:1fr}
.pd-facts{display:flex;flex-direction:column;gap:14px}
.pd-facts > div{display:flex;gap:12px;align-items:flex-start}
.pd-facts > div > div{display:flex;flex-direction:column;min-width:0}
.pd-facts small{font-size:12px;color:var(--muted);font-weight:600}
.pd-facts b{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.pd-facts .link{font-size:13px}
.pd-fi{width:34px;height:34px;border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--accent-ink);flex:none}
.pd-dir{align-self:flex-start;margin-top:4px}
.pd-dir .ic{width:16px;height:16px}
.pd-loc{margin:0;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#f7faf8,#eef4f0);padding:8px}
.pd-loc svg{display:block;width:100%;height:auto;max-height:420px}
.pd-o{fill:none;stroke:#b8c0cb;stroke-width:4.5;stroke-linecap:round;stroke-opacity:.55}
.pd-s{fill:none;stroke:var(--pl-c,var(--accent));stroke-width:7;stroke-linecap:round;stroke-opacity:.85}
.pd-pin{fill:var(--accent);stroke:#fff;stroke-width:2.5}
.pd-loc figcaption{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted);padding:8px 6px 2px}
.pd-loc figcaption span{display:inline-flex;align-items:center;gap:6px}
.pd-k{width:9px;height:9px;border-radius:50%;display:inline-block}
.pd-k.me{background:var(--accent)}.pd-k.s{background:var(--pl-c,var(--accent))}.pd-k.o{background:#b8c0cb}.pd-k.r{border:1.5px dashed var(--accent);width:11px;height:11px}

/* about */
.pd-nr{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:18px;border:1px solid #f0dcb5;background:#fffbf3;border-radius:16px;padding:16px;margin-bottom:16px}
.pd-nr img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.pd-nr h3{font-size:18px;letter-spacing:-.015em}
.pd-nr p{margin:6px 0 12px;font-size:14.5px;line-height:1.5}
.pd-about{display:flex;flex-direction:column;gap:12px;max-width:760px}
.pd-noteq{margin:0;font-size:16px;line-height:1.55;color:var(--ink-2);border-left:3px solid var(--accent);padding-left:14px}
.pd-taxo{font-size:13.5px;color:var(--muted);font-weight:600}
.pd-taxo .sep{color:var(--faint);margin:0 3px}
.pd-brand{display:flex;gap:14px;align-items:flex-start;border-radius:14px;background:var(--surface);padding:14px}
.pd-brand img{width:56px;height:56px;object-fit:contain;border-radius:10px;background:#fff;flex:none}
.pd-brand p{margin:0 0 6px;font-size:14px;line-height:1.5}
.pd-ask{margin:0}

/* around the corner */
.pd-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;counter-reset:pd}
.pd-step{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}
.pd-step:hover{border-color:var(--accent);box-shadow:0 6px 24px rgba(15,22,35,.07)}
.pd-sn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:21px;background:color-mix(in srgb,var(--pl-c,var(--accent)) 13%,#fff);flex:none}
.pd-step > span:last-child{display:flex;flex-direction:column;min-width:0}
.pd-step small{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pl-c,var(--accent-ink))}
.pd-step b{font-size:14.5px;line-height:1.3;margin-top:2px}
.pd-step em{font-style:normal;font-size:12.5px;color:var(--muted);margin-top:2px}
.pd-near{margin-top:14px}
.pd-near .lz-row:hover b{color:var(--accent-ink)}

/* photos */
.pd-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.pd-gal.sm{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pd-gal figure{position:relative;margin:0;border-radius:12px;overflow:hidden;background:var(--surface);aspect-ratio:4/3}
.pd-gal img{width:100%;height:100%;object-fit:cover}
.pd-gal.sm figure{aspect-ratio:auto}
.pd-gal.sm img{aspect-ratio:4/3}
.pd-gal figcaption{padding:8px;display:flex;flex-direction:column;gap:6px}
.pd-phdel{position:absolute;top:6px;right:6px}
.pd-phdel button{width:28px;height:28px;border-radius:50%;border:0;background:rgba(15,22,35,.65);color:#fff;font-size:17px;line-height:1}
.pd-pend{margin-top:16px}
.pd-up{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.pd-up small{flex-basis:100%}
.pd-lb{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh}
.pd-lb::backdrop{background:rgba(10,14,22,.82)}
.pd-lb img{max-width:100%;max-height:88vh;border-radius:12px;display:block}
.pd-lb .cmp-x{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.9)}

/* reviews */
.pd-rev{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.pd-rev.solo{grid-template-columns:minmax(0,1fr)}
.pd-rsum{display:flex;flex-direction:column;border-radius:16px;background:var(--surface);padding:18px}
.pd-rsum > b{font-size:46px;font-weight:700;letter-spacing:-.04em;line-height:1}
.pd-rsum .stars,.pd-rby .stars{color:#e3a008;letter-spacing:1px}
.pd-rsum > small{font-size:13px;color:var(--muted)}
.pd-bars{display:flex;flex-direction:column;gap:5px;margin-top:12px}
.pd-bars div{display:grid;grid-template-columns:30px minmax(0,1fr) 22px;gap:8px;align-items:center;font-size:12.5px;color:var(--muted)}
.pd-bars i{height:7px;border-radius:4px;background:#e2e6eb;position:relative;overflow:hidden}
.pd-bars i b{position:absolute;left:0;top:0;bottom:0;background:#e3a008;border-radius:4px}
.pd-bars .num{text-align:right}
.pd-rmain{display:flex;flex-direction:column;gap:10px;min-width:0}
.pd-rform{display:flex;flex-direction:column;gap:10px}
.pd-rform textarea{font:inherit;font-size:14.5px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;resize:vertical;min-height:84px;color:var(--ink)}
.pd-rform textarea:focus{outline:none;border-color:var(--accent)}
.pd-rrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.pd-ri{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--hair)}
.pd-ri .av{width:34px;height:34px;border-radius:50%;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;flex:none}
.pd-ri > div{min-width:0}
.pd-rby{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.pd-ri p{margin:4px 0 0;font-size:14.5px;line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere}

/* locations + edit */
.pd-locf{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pd-locf input,.pd-ed-f input{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:0 11px;height:36px;color:var(--ink);background:#fff;min-width:0}
.pd-locf input[name="address"]{flex:1;min-width:220px}
.pd-locf input:focus,.pd-ed-f input:focus{outline:none;border-color:var(--accent)}
.pd-edit{border:1px solid var(--line);border-radius:16px;background:#fff;margin-top:36px}
.pd-edit > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;list-style:none}
.pd-edit > summary::-webkit-details-marker{display:none}
.pd-edit > summary > span:first-child{display:flex;flex-direction:column}
.pd-edit > summary b{font-size:17px;letter-spacing:-.015em}
.pd-edit > summary small{font-size:13.5px;color:var(--muted)}
.pd-ed-n{min-width:32px;height:32px;padding:0 8px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:14px}
.pd-edit[open] > summary{border-bottom:1px solid var(--hair)}
.pd-ed-b{padding:6px 18px 16px}
.pd-ed-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--hair);align-items:start}
.pd-ed-l{font-size:13.5px;font-weight:700;color:var(--ink-2);padding-top:8px}
.pd-ed-f{display:flex;gap:8px}
.pd-ed-f input{flex:1}
.pd-chg{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--surface);font-size:14px}
.pd-chg s{color:var(--faint)}
.pd-closebtn{color:var(--bad)}
.pd-ed-fine{font-size:13px;margin:12px 0 0}
.pd-ed-row.flash{animation:pdflash 1.4s ease}
@keyframes pdflash{0%,40%{background:var(--accent-tint)}100%{background:transparent}}

@media (max-width:760px){
  .pd-hero{grid-template-columns:1fr}.pd-hero-v{order:-1;min-height:200px}.pd-hero-b{padding:20px 18px 22px}.pd-hero h1{font-size:30px}
  .pd-where,.pd-rev,.pd-nr{grid-template-columns:1fr}
  .pd-ed-row{grid-template-columns:1fr;gap:4px}.pd-ed-l{padding-top:0}
  .pd-glyph span{font-size:72px}
}

/* ---------- Find your town (app/pages/towns.php): fd- ---------- */
.fd-main{max-width:1080px;margin:0 auto}
.fd-hero{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 10px 40px rgba(15,22,35,.06)}
.fd-scene{height:200px;position:relative;background:linear-gradient(180deg,var(--fd-sky1),var(--fd-sky2));transition:background .8s;
  --fd-nt:#1b2340;--fd-dk:0%;--fd-cloud:#fff;--fd-win:#dcecf4;--fd-glow:0;--fd-line:#fff;
  --fd-sky1:#c6e4f3;--fd-sky2:#eef8f2;
  --fd-hf:color-mix(in srgb,var(--accent) 22%,#f6f7f9);--fd-hn:color-mix(in srgb,var(--accent) 40%,#f6f7f9);
  --fd-tree:color-mix(in srgb,var(--accent) 60%,#2b4a35);--fd-tree1:var(--fd-tree);--fd-tree2:var(--fd-tree);--fd-rd:color-mix(in srgb,var(--accent) 8%,#e9ecef)}
.fd-scene svg{position:absolute;inset:0;width:100%;height:100%;display:block}
/* time of day */
.fd-scene.p-morning{--fd-sky1:#cfe6f3;--fd-sky2:#fde7cc;--fd-cloud:#fff6ec;--fd-win:#fdf1d8}
.fd-scene.p-dusk{--fd-sky1:#c98ea4;--fd-sky2:#fcd6a4;--fd-nt:#5a3a55;--fd-dk:16%;--fd-cloud:#f7bfa6;--fd-win:#ffd978;--fd-glow:.55}
.fd-scene.p-night{--fd-sky1:#18213f;--fd-sky2:#35416b;--fd-nt:#151c36;--fd-dk:56%;--fd-cloud:#3b4670;--fd-win:#ffd36a;--fd-glow:.9;--fd-line:#8a93b3}
/* seasons */
.fd-scene.s-spring{--fd-hf:color-mix(in srgb,#7cc576 30%,#f6f7f9);--fd-hn:color-mix(in srgb,#5fb36a 48%,#f6f7f9);--fd-tree:#6fb46a}
.fd-scene.s-summer{--fd-tree:#2f7a4a;--fd-hn:color-mix(in srgb,var(--accent) 50%,#f6f7f9)}
.fd-scene.s-fall{--fd-hf:color-mix(in srgb,#c9a24a 26%,#f6f7f9);--fd-hn:color-mix(in srgb,#9db35a 42%,#f6f7f9);--fd-tree:#d9772b;--fd-tree1:#c4512f;--fd-tree2:#e3a23a}
.fd-scene.s-winter{--fd-hf:#e9eff4;--fd-hn:#f4f7fa;--fd-tree:#3d6b55;--fd-rd:#dfe3e8;--fd-sky2:#eef3f8}
.fd-scene.s-winter.p-night{--fd-sky2:#3a4672}
.fd-scene .fd-tree.t1{fill:color-mix(in srgb,var(--fd-tree1),var(--fd-nt) var(--fd-dk))}
.fd-scene .fd-tree.t2{fill:color-mix(in srgb,var(--fd-tree2),var(--fd-nt) var(--fd-dk))}
.fd-scene .fd-bloom{fill:#f7b6c8;opacity:0}.fd-scene.s-spring .fd-bloom{opacity:1}
.fd-scene .fd-snow,.fd-scene .fd-snowcap{fill:#fbfdff;opacity:0}.fd-scene.s-winter .fd-snow,.fd-scene.s-winter .fd-snowcap{opacity:1}
.fd-scene .fd-flakes{opacity:0}.fd-scene.s-winter .fd-flakes{opacity:.9}
.fd-scene .fd-flakes circle{animation:fdFall 7s linear infinite}.fd-scene .fd-flakes circle:nth-child(2n){animation-duration:9s;animation-delay:-3s}.fd-scene .fd-flakes circle:nth-child(3n){animation-duration:11s;animation-delay:-6s}
.fd-scene .fd-leaves,.fd-scene .fd-pumpkin,.fd-scene .fd-wreath{opacity:0}.fd-scene.s-fall .fd-leaves,.fd-scene.s-fall .fd-pumpkin,.fd-scene.s-winter .fd-wreath{opacity:1}
/* sky pieces */
.fd-scene .fd-cloud{fill:var(--fd-cloud);opacity:.9;animation:fdDrift 24s ease-in-out infinite alternate}.fd-scene .fd-cloud.c2{opacity:.75;animation-duration:33s}
.fd-scene .fd-sun,.fd-scene .fd-stars,.fd-scene .fd-birds,.fd-scene .fd-flies{opacity:0;transition:opacity .8s}
.fd-scene.p-morning .fd-sun-m,.fd-scene.p-morning .fd-birds,.fd-scene.p-day .fd-sun-d,.fd-scene.p-dusk .fd-sun-k,.fd-scene.p-night .fd-moon,.fd-scene.p-night .fd-stars{opacity:1}
.fd-scene.p-night:not(.s-winter) .fd-flies{opacity:1}
.fd-scene.p-dusk .fd-stars{opacity:.35}
.fd-scene .fd-win{fill:var(--fd-win);transition:fill .8s}
.fd-scene .fd-bulb{fill:color-mix(in srgb,#ffd36a calc(var(--fd-glow)*100%),#b9b3a2)}
.fd-scene .fd-glow{fill:#ffd36a;opacity:calc(var(--fd-glow)*.45);transform-box:fill-box;transform-origin:center}
.fd-scene.p-night .fd-glow,.fd-scene.p-dusk .fd-glow{animation:fdGlow 3.2s ease-in-out infinite alternate}
.fd-scene .fd-line{stroke:var(--fd-line);opacity:.8}
.fd-scene .fd-stars circle:nth-child(3n),.fd-scene .fd-flies circle{animation:fdTwinkle 2.4s ease-in-out infinite alternate}
@keyframes fdDrift{to{transform:translateX(26px)}}
@keyframes fdGlow{from{transform:scale(.92)}to{transform:scale(1.08)}}
@keyframes fdTwinkle{from{opacity:.3}to{opacity:1}}
@keyframes fdFall{from{transform:translateY(-20px)}to{transform:translateY(110px)}}
@media (prefers-reduced-motion:reduce){.fd-scene *{animation:none!important;transition:none!important}}

.fd-body{padding:26px 32px 26px}
.fd-kick{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fd-kick .dot{width:9px;height:9px;border-radius:50%;background:#ffc94d;box-shadow:0 0 0 3px rgba(255,201,77,.28)}
.fd-body h1{font-size:44px;letter-spacing:-.04em;line-height:1.05;margin-top:14px}
.fd-hl{color:var(--accent-ink);background:linear-gradient(transparent 68%,var(--accent-tint) 68%)}
.fd-body > p{color:var(--ink-2);font-size:16.5px;margin:10px 0 0;max-width:620px}
.fd-form{margin-top:20px}
.fd-bar{display:flex;gap:10px}
.fd-fld{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:58px;padding:0 18px;border:1.5px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.fd-fld:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}
.fd-fld .ic{width:22px;height:22px;color:var(--accent-ink)}
.fd-fld input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:17px;background:none;color:var(--ink)}
.fd-go{height:58px;padding:0 26px;font-size:16px;border-radius:14px}
.fd-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.fd-sel select{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 34px 0 12px;font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6372' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 10px center/14px no-repeat;-webkit-appearance:none;appearance:none;max-width:220px}
.fd-geo{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent) 35%,#fff);background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:14px}
.fd-geo:hover{border-color:var(--accent)}.fd-geo[aria-busy="true"]{opacity:.6}
.fd-clear{margin-left:auto;font-size:14px;font-weight:600;color:var(--muted)}
.fd-help{font-size:12.5px;color:var(--muted);margin:10px 0 0}

.fd-res{margin-top:22px}
.fd-rh{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.fd-rh h2{font-size:20px;letter-spacing:-.02em}
.fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.fd-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.fd-card:hover,.fd-card.on{border-color:var(--accent);box-shadow:0 6px 20px rgba(15,22,35,.07)}
.fd-pin{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-ink)}
.fd-ct{display:flex;flex-direction:column;min-width:0;line-height:1.3}.fd-ct b{font-size:15px}.fd-ct small,.fd-ct em{font-size:12.5px;color:var(--muted);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fd-ct em{color:var(--faint)}
.fd-arr{color:var(--faint);font-weight:700}.fd-card:hover .fd-arr{color:var(--accent-ink)}
.fd-pager{display:flex;gap:8px;margin-top:14px}

.fd-mine{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.fd-my{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:14px;background:#fff}
.fd-my:hover{border-color:var(--accent)}
.fd-my img,.fd-ph{width:54px;height:54px;border-radius:10px;object-fit:cover}
.fd-ph{display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-ink)}
.fd-my > span:last-child{display:flex;flex-direction:column;min-width:0}.fd-my small{font-size:12px;color:var(--muted)}.fd-my b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-my.home{background:var(--accent-tint);border-color:transparent}.fd-my.home small{color:var(--accent-ink);font-weight:700}
.fd-talk{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.fd-tk{display:flex;flex-direction:column;gap:10px;transition:border-color .15s}.fd-tk:hover{border-color:var(--accent)}
.fd-tkn{display:flex;flex-direction:column}.fd-tkn b{font-size:17px}.fd-tkn small{font-size:12.5px;color:var(--accent-ink);font-weight:600}
.fd-tkp{font-size:14px;color:var(--ink-2);display:flex;flex-direction:column;gap:2px}.fd-tkp small{color:var(--faint);font-size:12px}
.fd-feat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.fd-fc{position:relative;display:block;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:var(--surface)}
.fd-fc img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.fd-fc:hover img{transform:scale(1.04)}
.fd-fcb{position:absolute;inset:auto 0 0 0;padding:34px 14px 12px;background:linear-gradient(180deg,transparent,rgba(10,16,26,.78));color:#fff;display:flex;flex-direction:column}
.fd-fcb b{font-size:17px;letter-spacing:-.01em}.fd-fcb small{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-fcb em{align-self:flex-start;font-style:normal;font-size:11.5px;font-weight:700;background:rgba(255,255,255,.92);color:var(--accent-ink);padding:2px 8px;border-radius:999px;margin-bottom:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-states{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.fd-states a{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid var(--hair);font-size:14px}
.fd-states a:hover{border-color:var(--accent);color:var(--accent-ink)}.fd-states small{color:var(--faint);font-size:12px}

@media (max-width:900px){.fd-feat{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .fd-scene{height:140px}.fd-body{padding:20px 16px}.fd-body h1{font-size:32px}.fd-body > p{font-size:15px}
  .fd-bar{flex-direction:column}.fd-go{width:100%;height:50px}.fd-fld{height:52px;padding:0 14px}.fd-fld input{font-size:16px}
  .fd-sel{flex:1 1 140px}.fd-sel select{width:100%;max-width:none}.fd-geo{flex:1 1 100%;justify-content:center}
  .fd-feat{gap:8px}.fd-fcb{padding:28px 10px 10px}.fd-fcb b{font-size:15px}
  .fd-states{grid-template-columns:1fr 1fr}
  .fd-scene .fd-sun-m{transform:translate(150px,-10px)}.fd-scene .fd-birds{transform:translateX(110px)}.fd-scene .fd-sun-d,.fd-scene .fd-moon{transform:translateX(-72px)}.fd-scene .fd-sun-k{transform:translateX(-96px)}
}

/* ---------- One archive item (app/pages/storyitem.php, view=story-item); every class si- prefixed ---------- */
.si-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:12px}
.si-stage{position:relative;border-radius:18px;background:#14181f;display:grid;place-items:center;min-height:320px;padding:18px;overflow:hidden}
.si-stage > a{display:block}
.si-stage img{max-width:100%;max-height:640px;width:auto;height:auto;object-fit:contain;border-radius:4px;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.si-noimg{display:flex;flex-direction:column;align-items:center;gap:6px;color:#9aa3b2}.si-noimg .ic{width:42px;height:42px}
.si-yr{position:absolute;left:14px;top:14px;font-size:13px;font-weight:800;background:rgba(255,253,245,.95);color:#5c4a2e;padding:4px 11px;border-radius:999px}
.si-yr.ask{background:#f2c879;color:#4a3410}
.si-step{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center;backdrop-filter:blur(6px)}
.si-step:hover{background:rgba(255,255,255,.28)}
.si-step.l{left:12px}.si-step.r{right:12px}
.si-id h1{font-size:32px;letter-spacing:-.035em;line-height:1.1;margin-top:8px}
.si-when{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.si-when b{font-size:20px;letter-spacing:-.02em;color:#9c6a13}
.si-pill{font-size:12px;font-weight:600;background:var(--surface);color:var(--muted);padding:3px 9px;border-radius:999px}
.si-meta{margin:14px 0 0;border-top:1px solid var(--hair)}
.si-meta > div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--hair);font-size:14px}
.si-meta dt{color:var(--muted)}.si-meta dd{margin:0;font-weight:600;text-align:right}
.si-credit{font-size:12.5px;color:var(--faint);margin:12px 0 0}
.si-nr{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;margin-top:16px;border:1px solid #eadfca;border-radius:14px;padding:10px;background:#fbf8f2}
.si-nr:hover{border-color:#d9c9a6;box-shadow:0 4px 16px rgba(15,22,35,.06)}
.si-nr img,.si-nr .ni{width:64px;height:50px;border-radius:8px;object-fit:cover;display:grid;place-items:center;color:#b7791f;background:#fff}
.si-nr small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#9c6a13}
.si-nr b{display:block;font-size:15px}.si-nr em{font-style:normal;font-size:13px;color:var(--accent-ink);font-weight:600}
.si-date{display:flex;flex-direction:column;gap:12px}
.si-decades{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.si-decades button{height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:14px;color:var(--ink-2)}
.si-decades button:hover{border-color:#b7791f;color:#9c6a13}
.si-decades button.on{background:#b7791f;border-color:#b7791f;color:#fff}
.si-guess{display:flex;flex-direction:column;gap:6px;max-width:520px}
.si-guess > div{display:grid;grid-template-columns:56px minmax(0,1fr) 28px;gap:10px;align-items:center;font-size:13.5px}
.si-gb{height:10px;border-radius:5px;background:#f1ece2;overflow:hidden}.si-gb i{display:block;height:100%;background:#b7791f;border-radius:5px}
.si-mem{padding:16px 18px}
.si-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px 44px}
.si-chips .chip{cursor:pointer;border:1px solid var(--line);background:#fff}
.si-thread{margin-top:10px}
.si-retake{margin-top:28px}
.si-report{margin-top:28px;font-size:13.5px;color:var(--muted)}
.si-report summary{cursor:pointer}
.si-report form{display:flex;gap:8px;margin-top:8px;align-items:center}
.si-report select{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:inherit}
@media (max-width:1100px){.si-hero{grid-template-columns:1fr}}
@media (max-width:640px){.si-stage{min-height:220px;padding:10px;border-radius:14px}.si-stage img{max-height:420px}.si-id h1{font-size:25px}.si-decades{grid-template-columns:repeat(4,minmax(0,1fr))}.si-step{width:36px;height:36px;font-size:22px}.si-chips{margin-left:0}}

/* ---------- State rankings (app/pages/rankstate.php; rks-*) ---------- */
.rks-page{margin:0 auto;max-width:1240px}
.rks-crumb{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);margin:0 0 14px;flex-wrap:wrap}
.rks-crumb a:hover{color:var(--accent-ink)}
.rks-crumb b{color:var(--ink-2);font-weight:600}
.rks-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:22px;border:1px solid var(--line);border-radius:18px;padding:32px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%)}
.rks-hin h1{font-size:44px;letter-spacing:-.04em;line-height:1.04;margin-top:8px}
.rks-hin h1 em{font-style:normal;color:var(--accent-ink)}
.rks-hin > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;max-width:620px}
.rks-find{max-width:520px;margin:20px 0 0}
.rks-find input{height:48px;font-size:15.5px;background:#fff;border-radius:12px}
.rks-find .ic{top:15px}
.rks-find .hd-results{top:54px}
.rks-hcard{position:relative;border-radius:16px;overflow:hidden;min-height:240px;background:var(--night);display:flex;align-items:flex-end;color:#fff}
.rks-hcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rks-hcard::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(10,16,24,.78))}
.rks-hcb{position:relative;z-index:1;padding:18px;display:flex;flex-direction:column;gap:2px}
.rks-hcb .kick{color:var(--accent-soft)}
.rks-hcb b{font-size:24px;letter-spacing:-.02em}
.rks-hcb small{font-size:13.5px;opacity:.9}
/* map */
.rks-mapwrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}
.rks-mapwrap-l{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.rks-mapside{display:flex;flex-direction:column;gap:14px;position:sticky;top:calc(var(--hdr) + 16px)}
.rks-sel{display:flex;flex-direction:column;gap:6px}
.rks-sel select{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}
.rks-chips{display:flex;flex-wrap:wrap;gap:6px}
.rks-chips button{height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.rks-chips button:hover{border-color:var(--accent)}
.rks-chips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.rks-top{margin:0;padding:12px 14px 12px 34px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:13.5px}
.rks-top li{padding:4px 0}
.rks-top li b{font-weight:600}
.rks-top li span{color:var(--muted);margin-left:6px;font-size:12.5px}
.rks-full{font-size:13.5px}
.rks-map{position:relative;border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:12px}
.rks-map svg{width:100%;height:auto;display:block;max-height:680px}
.rks-d{stroke:#fff;stroke-width:1.2;transition:fill .25s,opacity .25s}
.rks-map a:hover .rks-d{stroke:var(--ink);stroke-width:2}
.rks-d.rks-off{opacity:.35}
.rks-d0{fill:#dde1e7}
.rks-b1{fill:#0b7f45;background:#0b7f45}.rks-b2{fill:#3fb77a;background:#3fb77a}.rks-b3{fill:#a9dfc2;background:#a9dfc2}.rks-b4{fill:#f1dfb8;background:#f1dfb8}.rks-b5{fill:#e5bf87;background:#e5bf87}
.rks-tip{position:absolute;transform:translate(-50%,calc(-100% - 10px));background:var(--ink);color:#fff;font-size:12.5px;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:2}
.rks-tip b{display:block;font-size:13px}
.rks-lg{align-items:center;gap:6px}
.rks-sw{display:inline-block;width:14px;height:10px;border-radius:3px}
.rks-sw.rks-d0{background:#dde1e7;width:10px;border-radius:50%;margin-right:5px}
.rks-nr{margin-left:12px}
/* champions */
.rks-champs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rks-ch.big{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s}
.rks-ch.big:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.rks-ch.big .bey-v{height:170px}
.rks-cn{font-size:14px;color:var(--ink-2)}
.rks-cn b{font-size:16px}
.rks-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.rks-tags em{font-style:normal;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink)}
.rks-ch:not(.big){display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.rks-ch:not(.big):hover{border-color:#c9ced7}
.rks-ch .n{font-weight:800;color:var(--faint)}
.rks-cht b{display:block;font-size:14.5px}
.rks-cht small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rks-cc{font-size:18px;font-weight:800;color:var(--accent-ink)}
/* counties */
.rks-cos{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.rks-co{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.rks-co:hover{border-color:#c9ced7}
.rks-co .rkl-hth{width:52px;height:52px;border-radius:10px}
.rks-cot{min-width:0;display:flex;flex-direction:column}
.rks-cot .kick{font-size:11px}
.rks-cot b{font-size:15px}
.rks-cot small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* every list */
.rks-grp{margin-bottom:22px}
.rks-grp h3{display:flex;align-items:center;gap:8px;font-size:16px;margin:0 0 10px}
.rks-grp h3 .ic{color:var(--accent-ink)}
.rks-gc{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.rks-lc{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;transition:border-color .15s,box-shadow .15s}
.rks-lc:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.rks-lc > b{font-size:15px;letter-spacing:-.01em;line-height:1.3}
.rks-lc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rks-lc li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.rks-lc li .rkl-hth{width:32px;height:32px;border-radius:7px}
.rks-lc li .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rks-lc li em{font-style:normal;color:var(--muted);font-size:12.5px}
.rks-lc .go{font-size:13px;font-weight:600;color:var(--accent-ink);margin-top:auto}
/* spread */
.rks-spread{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.rks-sp{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px}
.rks-sp:hover{border-color:#c9ced7}
.rks-spx{font-size:40px;font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--accent-ink)}
.rks-spr{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rks-spr > div{background:var(--surface);border-radius:10px;padding:8px 10px;min-width:0}
.rks-spr > div:first-child{background:var(--accent-tint)}
.rks-spr small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rks-spr b{font-size:15px}
/* states */
.rks-states{display:flex;flex-wrap:wrap;gap:6px}
.rks-states a{min-width:44px;height:36px;display:grid;place-items:center;padding:0 8px;border:1px solid var(--line);border-radius:9px;font-size:13px;font-weight:700;color:var(--ink-2);background:#fff}
.rks-states a:hover{border-color:var(--accent)}
.rks-states a.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* one list */
.rks-src{font-size:12.5px!important;color:var(--muted)!important;margin-top:8px!important}
.rks-findbox{gap:10px}
.rks-fin{height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:15px;width:100%;background:var(--surface)}
.rks-fin:focus{outline:none;border-color:var(--accent);background:#fff}
.rks-fmsg{margin:0;font-size:13px;color:var(--muted)}
.rks-findbox .rkl-sbtn{align-self:flex-start}
.rks-strip{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
.rks-strip svg{width:100%;height:auto;display:block;margin-top:8px}
.rks-strip p{margin:6px 0 0;font-size:13.5px;color:var(--ink-2)}
.rks-sd{stroke:#fff;stroke-width:.8}
.rks-axis{stroke:var(--line);stroke-width:1.5}
.rks-ref{stroke:var(--ink);stroke-width:1.2;stroke-dasharray:3 3}
.rks-reft,.rks-ax{font-size:11px;fill:var(--muted);font-family:var(--sans)}
.rks-reft{fill:var(--ink);font-weight:600}
.rkl-tr[hidden]{display:none!important}
@media (max-width:1000px){.rks-mapwrap,.rks-mapwrap-l{grid-template-columns:1fr}.rks-mapside{position:static}.rks-champs{grid-template-columns:1fr 1fr}.rks-hero{grid-template-columns:1fr}.rks-hcard{min-height:180px}}
@media (max-width:640px){.rks-hero{padding:20px}.rks-hin h1{font-size:30px}.rks-champs{grid-template-columns:1fr}.rks-ch.big .bey-v{height:140px}.rks-gc,.rks-cos,.rks-spread{grid-template-columns:1fr}.rks-map{padding:6px}}

/* ---------- account menu (layout.php leanUserMenu) ---------- */
.um{position:relative}
.um-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 4px;border:1px solid transparent;border-radius:999px;background:none;font-weight:600;font-size:14px;color:var(--ink)}
.um-btn:hover,.um-btn[aria-expanded="true"]{background:var(--surface);border-color:var(--line)}
.um-av{width:32px;height:32px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-ink);font-weight:700;font-size:14px;flex:none}
.um-av img{width:100%;height:100%;object-fit:cover}
.um-av.lg{width:44px;height:44px;font-size:18px}
.um-car{width:12px;height:12px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.um-btn[aria-expanded="true"] .um-car{transform:rotate(180deg)}
.um-pop{position:absolute;right:0;top:calc(100% + 8px);width:290px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(15,22,35,.16),0 3px 10px rgba(15,22,35,.06);padding:8px;z-index:60}
.um-id{display:flex;align-items:center;gap:12px;padding:8px 8px 4px}
.um-id > span:last-child{display:flex;flex-direction:column;min-width:0}
.um-id b{font-size:15.5px;letter-spacing:-.01em}
.um-id small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.um-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 8px 4px}
.um-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);font-size:12.5px;font-weight:600}
.um-chip.q{background:var(--surface);color:var(--ink-2)}
.um-chip .ic{width:14px;height:14px}
.um-prof{display:block;margin:8px 8px 6px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);text-align:center;font-size:14px;font-weight:600;color:var(--accent-ink)}
.um-prof:hover{border-color:var(--accent);background:var(--accent-tint)}
.um-sep{display:block;height:1px;background:var(--hair);margin:6px 4px}
.um-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;font-size:14.5px;font-weight:500;color:var(--ink);text-align:left}
.um-row:hover,.um-row:focus-visible{background:var(--surface)}
.um-row .ic{color:var(--muted)}
.um-row > span{flex:1;display:flex;flex-direction:column;min-width:0}
.um-row small{font-size:12px;color:var(--muted);font-weight:400}
.um-row em{font-style:normal;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface);border-radius:999px;padding:1px 8px}
.um-row em.staff{background:#fff4e5;color:#b45309}
.um-f{margin:0}
.um-out{color:var(--ink-2)}
@media (max-width:640px){.um-nm,.um-car{display:none}.um-btn{padding:0;height:auto}.um-pop{position:fixed;top:calc(var(--hdr) + 4px);right:12px}}

.rks-bz{fill:#e6ebe8;background:#e6ebe8}
.rks-hcard.noimg{background:linear-gradient(160deg,var(--accent),var(--accent-ink))}
.rks-hcard.noimg::after{display:none}
.rks-hcn{position:absolute;top:22px;left:18px;font-size:88px;font-weight:800;letter-spacing:-.05em;line-height:.9;color:#fff}
.rks-hcn small{display:block;font-size:14px;letter-spacing:0;font-weight:600;opacity:.85;margin-top:8px}
.rks-hcard.noimg .rks-hcb .kick{color:#d9f7e6}
.rks-lg[hidden]{display:none!important}

.rks-mapwrap-l{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.rks-side{display:flex;flex-direction:column;gap:14px}
.rks-t10{border:1px solid var(--line);border-radius:14px;padding:14px 16px 8px;background:#fff}
.rks-t10 ol{list-style:none;margin:8px 0 0;padding:0}
.rks-t10 li a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--hair);font-size:14px}
.rks-t10 li:first-child a{border-top:0}
.rks-t10 li a:hover b{color:var(--accent-ink)}
.rks-t10 .n{font-weight:800;color:var(--faint)}
.rks-t10 .t b{display:block;font-weight:600}
.rks-t10 .t small{display:block;font-size:12px;color:var(--muted)}
.rks-t10 em{font-style:normal;font-weight:700;font-size:13.5px}

/* ---------- Settings (app/pages/settings.php): set- ---------- */
.set-main{max-width:1120px;margin:0 auto}
.set-crumb{display:inline-block;font-size:14px;font-weight:600;color:var(--muted);margin-bottom:12px}.set-crumb:hover{color:var(--accent-ink)}
.set-flash{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:14.5px;margin-bottom:14px}
.set-flash.err{background:#fdeeea;color:#a1361b}
.set-out{max-width:520px;margin:40px auto;text-align:center;padding:36px 28px}
.set-out h1{font-size:28px;letter-spacing:-.03em;margin-top:12px}.set-oi{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--accent-tint);color:var(--accent-ink)}
.set-acts{display:flex;gap:8px;justify-content:center;margin-top:18px}
.set-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;padding:24px 26px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,var(--accent-tint),#fff 65%)}
.set-hid h1{font-size:32px;letter-spacing:-.035em;line-height:1.1;margin-top:4px}
.set-hid > p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.set-nums{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-top:10px;font-size:14px;color:var(--muted)}.set-nums b{color:var(--ink);font-size:16px}
.set-av{display:grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--accent);color:#fff;font-weight:700;flex:none;position:relative}
.set-av img{width:100%;height:100%;object-fit:cover}
.set-av.big{width:88px;height:88px;font-size:36px;box-shadow:0 0 0 4px #fff,0 6px 20px rgba(15,22,35,.12)}
.set-av.mid{width:76px;height:76px;font-size:30px;cursor:pointer}
.set-av.sm{width:36px;height:36px;font-size:15px}
.set-av.lg{width:64px;height:64px;font-size:26px;margin:0 auto}
.set-cam{position:absolute;right:0;bottom:0;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--accent-ink);display:grid;place-items:center;font-size:15px;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.set-ring{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);position:relative}
.set-ring svg{width:64px;height:64px}.set-ring .tr{fill:none;stroke:#e8ebef;stroke-width:7}.set-ring .fl{fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round}
.set-ring > b{position:absolute;left:16px;width:64px;text-align:center;font-size:15px}
.set-ring small{display:block;font-size:12px;color:var(--muted)}.set-ring a{font-weight:700;color:var(--accent-ink);font-size:14px}.set-ring span{font-size:13.5px;font-weight:600}

.set-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;margin-top:8px}
.set-nav{position:sticky;top:calc(var(--hdr) + 16px);align-self:start;display:flex;flex-direction:column;gap:2px;margin-top:44px}
.set-nav > a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-weight:600;font-size:14.5px;color:var(--ink-2)}
.set-nav > a:hover{background:var(--surface)}.set-nav > a.on{background:var(--accent-tint);color:var(--accent-ink)}
.set-nav > a.dz{color:#a1361b}
.set-check{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:6px}
.set-check b{font-size:13px;margin-bottom:2px}
.set-check a{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.set-check a i{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;flex:none}
.set-check a.ok{color:var(--muted);text-decoration:line-through}.set-check a.ok i{background:var(--accent);border-color:var(--accent);color:#fff}
.set-check a:not(.ok):hover{color:var(--accent-ink)}

.set-sec .sh{margin-top:40px}
.set-pf{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start}
.set-card{padding:22px}
.set-photo{display:flex;gap:16px;align-items:center;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--hair)}
.set-pbtns{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 4px}.set-pbtns .muted{font-size:13px}
.set-fld{display:block;margin-bottom:16px}
.set-lab{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;font-size:14px;margin-bottom:6px}
.set-cnt{font-weight:500;font-size:12px;color:var(--faint)}
.set-fld input[type=text],.set-fld input[type=email],.set-fld input[type=password],.set-fld textarea,.set-inp{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:15px;background:#fff;color:var(--ink)}
.set-fld textarea{resize:vertical;min-height:96px}
.set-fld input:focus,.set-fld textarea:focus,.set-inp:focus-within{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.set-inp{display:flex;align-items:center;gap:8px;padding:0 12px}
.set-inp input{flex:1;min-width:0;border:0!important;box-shadow:none!important;padding:10px 0!important;outline:0}
.set-inp .ic{color:var(--muted)}
.set-at > span{color:var(--muted);font-weight:700}
.set-hint{display:block;font-size:12.5px;color:var(--muted);margin-top:6px}.set-hint.bad{color:var(--bad)}.set-hint.good{color:var(--good)}
.set-chk{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-top:8px;cursor:pointer}
.set-town{position:relative}
.set-tres{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,22,35,.12);padding:4px;max-height:280px;overflow:auto}
.set-tres button{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px}
.set-tres button:hover,.set-tres button.on{background:var(--accent-tint)}.set-tres small{color:var(--muted);font-size:12px}
.set-err{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fdeeea;color:#a1361b;font-size:14px;font-weight:600}
.set-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--hair);font-size:13px}
.set-pv{position:sticky;top:calc(var(--hdr) + 16px);display:flex;flex-direction:column;gap:12px}
.set-post .who{display:flex;gap:10px;align-items:center;margin-bottom:10px}.set-post .who b{display:block;font-size:14.5px}.set-post .who small{font-size:12.5px;color:var(--muted)}.set-post .who small span:not(:empty) ~ span:not(:empty)::before{content:" · "}
.set-post h4{font-size:16px;letter-spacing:-.01em}.set-post p{margin:6px 0 0;font-size:12.5px}
.set-card2{text-align:center;display:flex;flex-direction:column;gap:2px;align-items:center}.set-card2 > b{font-size:17px;margin-top:8px}.set-card2 small{color:var(--muted);font-size:13px}
.set-card2 p{margin:8px 0 0;font-size:14px;color:var(--ink-2);white-space:pre-line}.set-card2 p.empty{color:var(--faint);font-style:italic}
.set-pvl{margin-top:10px;font-size:11.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-weight:700}

.set-tl{display:flex;flex-direction:column}
.set-tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair)}
.set-tr:first-child{padding-top:0}
.set-tm{display:flex;gap:12px;align-items:center;min-width:0}
.set-tm img,.set-tph{width:48px;height:48px;border-radius:10px;object-fit:cover;flex:none}
.set-tph{display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-ink)}
.set-tm > span{display:flex;flex-direction:column;min-width:0}.set-tm b{font-size:15px}.set-tm small{font-size:12.5px;color:var(--muted)}
.set-tm:hover b{color:var(--accent-ink)}
.set-home{font-style:normal;font-weight:700;color:var(--accent-ink);background:var(--accent-tint);padding:1px 7px;border-radius:999px;margin-right:4px}
.set-topics{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding-left:60px}
.set-chipf{display:inline}
.set-tchip{border:0;cursor:pointer}.set-tchip:hover{background:#fdeeea;color:#a1361b}
.set-add{display:flex;gap:10px;margin-top:16px}.set-add .set-town{flex:1;min-width:0}.set-add .set-inp{height:44px}

.set-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.set-grid > .card:last-child:nth-child(odd){grid-column:1/-1}
.set-ch{display:flex;align-items:center;gap:10px;margin-bottom:14px}.set-ch b{font-size:17px}
.set-ci{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--surface);color:var(--ink-2)}
.set-cur{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;margin-bottom:8px;word-break:break-all}
.set-pill{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px}.set-pill.ok{background:var(--accent-tint);color:var(--accent-ink)}.set-pill.warn{background:#fff3dc;color:#8a5300}
.set-inline{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:10px}
.set-note{font-size:13.5px;background:#fff7e6;border-radius:10px;padding:10px 12px;margin:0 0 12px}
.set-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}.set-meter i{height:4px;border-radius:2px;background:#e8ebef}
.set-meter[data-s="1"] i:nth-child(-n+1){background:#d9483b}.set-meter[data-s="2"] i:nth-child(-n+2){background:#e3a23a}.set-meter[data-s="3"] i:nth-child(-n+3){background:#7cb55a}.set-meter[data-s="4"] i{background:var(--accent)}
.set-kv{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted);margin-bottom:12px}.set-kv b{color:var(--ink)}
.set-danger{border-color:#f1c9bd;margin-top:16px}.set-danger .set-ci{background:#fdeeea;color:#a1361b}
.set-dz{margin-top:12px}.set-dz summary{cursor:pointer;font-weight:700;color:#a1361b;font-size:14px;list-style:none}.set-dz summary::-webkit-details-marker{display:none}
.set-dz form{margin-top:12px;max-width:360px}
.set-btn-dz{background:#b4361c;border-color:#b4361c;color:#fff}.set-btn-dz:disabled{opacity:.45;cursor:not-allowed}
.set-f button[disabled]:not(.set-btn-dz){opacity:.5;cursor:not-allowed}

@media (max-width:1000px){.set-wrap{grid-template-columns:1fr}.set-nav{position:sticky;top:var(--hdr);z-index:5;flex-direction:row;overflow-x:auto;margin:16px -4px 0;padding:8px 4px;background:var(--bg);border-bottom:1px solid var(--hair)}.set-nav > a{white-space:nowrap}.set-check{display:none}.set-pf{grid-template-columns:1fr}.set-pv{position:static;order:-1;display:grid;grid-template-columns:1fr 1fr}.set-pv > .kick{grid-column:1/-1}}
@media (max-width:760px){.set-hero{grid-template-columns:auto minmax(0,1fr);padding:20px}.set-ring{grid-column:1/-1}.set-grid{grid-template-columns:1fr}}
@media (max-width:640px){.set-hid h1{font-size:24px}.set-av.big{width:64px;height:64px;font-size:26px}.set-card{padding:16px}.set-pv{grid-template-columns:1fr}.set-add{flex-direction:column}.set-topics{padding-left:0}.set-photo{align-items:flex-start}}
.rks-hcard.noimg{flex-direction:column;align-items:stretch;justify-content:space-between}
.rks-hcard.noimg .rks-hcn{position:static;padding:22px 18px 0}
@media (max-width:640px){.hd-search.rks-find{display:block}.rks-hcard.noimg{min-height:0}.rks-hcn{font-size:64px}}

/* ---------- National homepage (app/pages/landing.php): .ln-* ---------- */
html:has(.ln-page){--bg-2:#f6f7f9} /* explore.js paints the map's ground from --bg-2 */
.ln-main{max-width:1180px;margin:0 auto}
.ln-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;padding:28px 0 8px}
.ln-hin h1{font-size:52px;line-height:1.02;letter-spacing:-.045em;margin-top:10px}
.ln-hin h1 em{font-style:normal;color:var(--accent-ink)}
.ln-hin > p{font-size:17px;color:var(--ink-2);margin:16px 0 22px;max-width:540px}
.ln-search{max-width:540px}
.ln-search input{height:56px;border-radius:14px;font-size:16px;padding-left:46px;background:#fff;box-shadow:0 10px 30px -14px rgba(15,22,35,.25)}
.ln-search .ic{left:16px;top:19px}
.ln-search .hd-results{top:62px}
.hd-search.ln-search{display:block;margin-left:0} /* the header hides .hd-search on phones; the hero's must stay */
.ln-hacts{margin-top:10px;font-size:14px}
.ln-stats{display:flex;flex-wrap:wrap;gap:28px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line);max-width:540px}
.ln-stats b{display:block;font-size:26px;font-weight:700;letter-spacing:-.03em}
.ln-stats span{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ln-mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:440px}
.ln-mosaic.n1{grid-template-columns:1fr}.ln-mosaic.n2{grid-template-rows:1fr}
.ln-tile{position:relative;border-radius:18px;overflow:hidden;background:var(--surface)}
.ln-tile.lead{grid-row:1/3}
.ln-mosaic.n2 .ln-tile.lead{grid-row:auto}
.ln-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ln-tile:hover img{transform:scale(1.04)}
.ln-tile span{position:absolute;left:0;right:0;bottom:0;padding:40px 14px 12px;background:linear-gradient(transparent,rgba(10,14,20,.72));color:#fff;display:flex;flex-direction:column}
.ln-tile b{font-size:17px;letter-spacing:-.01em}
.ln-tile small{font-size:12.5px;opacity:.85}
.ln-loc{display:inline-flex;align-items:center;gap:6px}
.ln-loc .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}
/* cards: near you */
.ln-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.ln-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:border-color .15s,box-shadow .15s}
.ln-card:hover{border-color:#c9ced7;box-shadow:0 8px 28px rgba(15,22,35,.08)}
.ln-card .ph{position:relative;height:140px;background:var(--accent-tint)}
.ln-card .ph img{width:100%;height:100%;object-fit:cover}
.ln-card .ph i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:44px;font-weight:800;color:var(--accent-ink)}
.ln-card .ph em{position:absolute;top:10px;left:10px;font-style:normal;font-size:12px;font-weight:700;background:rgba(255,255,255,.92);padding:3px 8px;border-radius:999px}
.ln-card .bd{display:flex;flex-direction:column;gap:2px;padding:12px 14px 14px}
.ln-card b{font-size:16px}
.ln-card small{font-size:12.5px;color:var(--muted)}
.ln-card .gr,.ln-totd .gr{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.ln-card .gr>span,.ln-totd .gr>span{display:inline-flex;align-items:center;gap:6px}
/* town of the day */
.ln-totd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;transition:box-shadow .2s}
.ln-totd:hover{box-shadow:0 14px 40px -12px rgba(15,22,35,.18)}
.ln-totd .ph{position:relative;min-height:360px;background:var(--accent-tint)}
.ln-totd .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ln-totd .nm{position:absolute;left:0;right:0;bottom:0;padding:60px 20px 18px;background:linear-gradient(transparent,rgba(10,14,20,.75));color:#fff;display:flex;flex-direction:column}
.ln-totd .nm b{font-size:30px;letter-spacing:-.03em;line-height:1.05}
.ln-totd .nm small{font-size:13.5px;opacity:.85}
.ln-totd .bd{display:flex;flex-direction:column;gap:14px;padding:24px}
.ln-totd .ln-lede{font-size:15.5px;color:var(--ink-2);line-height:1.55}
.ln-totd .so{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ln-totd .so > span{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;background:var(--surface)}
.ln-totd .so .kick{font-style:normal}
.ln-totd .so b{font-size:18px;letter-spacing:-.02em;line-height:1.2}
.ln-totd .so b i{font-style:normal;color:var(--accent-ink)}
.ln-totd .so small{font-size:12.5px;color:var(--muted);line-height:1.35}
.ln-totd .go{margin-top:auto;font-weight:600;color:var(--accent-ink);font-size:14.5px}
/* rankings */
.ln-rk{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.ln-rk .card{display:flex;flex-direction:column}
.ln-rk header h3{font-size:16px}
.ln-rk header h3 a:hover{color:var(--accent-ink)}
.ln-rk header p{margin:2px 0 10px;font-size:12.5px;color:var(--muted)}
.ln-rk ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ln-rk li a{display:grid;grid-template-columns:28px 36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--hair)}
.ln-rk li:first-child a{border-top:0}
.ln-rk li a:hover b{color:var(--accent-ink)}
.ln-rk .n{font-weight:700;color:var(--muted);font-size:13px}
.ln-rk .th{width:36px;height:36px;border-radius:9px;overflow:hidden;background:var(--surface);display:grid;place-items:center;font-weight:800;color:var(--accent-ink)}
.ln-rk .th img{width:100%;height:100%;object-fit:cover}
.ln-rk .th.map img{object-fit:contain;background:#fff}
.ln-rk .t{display:flex;flex-direction:column;min-width:0}
.ln-rk .t b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-rk .t small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-rk .v{font-size:13px;font-weight:600}
.ln-rk .ln-more{font-size:13.5px;margin-top:auto;padding-top:10px}
.ln-stand{background:var(--accent-tint);border-color:transparent}
.ln-stand li a{border-top-color:rgba(14,159,87,.15)}
.ln-rkst{display:flex;flex-wrap:wrap;gap:6px}
.ln-rkst a{padding:5px 10px;border-radius:999px;background:#fff;font-size:13px;font-weight:600}
.ln-rkst a:hover{color:var(--accent-ink)}
/* talking, grid */
.ln-talk{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.ln-talk .card{display:flex;flex-direction:column;gap:8px;transition:border-color .15s}
.ln-talk .card:hover{border-color:var(--accent)}
.ln-talk .ln-tn{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ln-talk .ln-tn b{font-size:15.5px}
.ln-talk .ln-tn small{font-size:12px;color:var(--muted);white-space:nowrap}
.ln-talk .ln-q{font-size:14px;color:var(--ink-2);line-height:1.45}
.ln-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ln-gc{position:relative;height:220px;border-radius:16px;overflow:hidden;background:var(--surface)}
.ln-gc img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ln-gc:hover img{transform:scale(1.04)}
.ln-gc span{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 12px;background:linear-gradient(transparent,rgba(10,14,20,.75));color:#fff;display:flex;flex-direction:column}
.ln-gc b{font-size:16px}
.ln-gc small{font-size:12px;opacity:.85}
.ln-gc em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--accent-soft);margin-top:4px}
/* inside every town */
.ln-inside{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ln-inside .card{display:flex;flex-direction:column;gap:6px;transition:border-color .15s,box-shadow .15s}
.ln-inside .card:hover{border-color:#c9ced7;box-shadow:0 8px 28px rgba(15,22,35,.07)}
.ln-inside .ic{width:38px;height:38px;border-radius:11px;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center}
.ln-inside b{font-size:16px;margin-top:4px}
.ln-inside small{font-size:13.5px;color:var(--muted);line-height:1.45}
.ln-inside em{font-style:normal;font-size:13px;font-weight:600;color:var(--accent-ink);margin-top:auto;padding-top:6px}
/* the national map (explore.js) */
.ln-map{position:relative;height:480px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--bg-2)}
.ln-map #xpMap{width:100%;height:100%;display:block}
.ln-map .xp-hint{position:absolute;top:14px;left:50%;transform:translateX(-50%);margin:0;background:rgba(255,255,255,.88);backdrop-filter:blur(6px);border:1px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;pointer-events:none;transition:opacity .5s;white-space:nowrap;z-index:4}
.ln-map .xp-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--bg-2);color:var(--muted);font-size:14px;font-weight:600;z-index:6;transition:opacity .35s}
.ln-map .xp-loading.done{opacity:0;pointer-events:none}
.ln-map .xp-spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--accent);animation:lnspin .8s linear infinite}
@keyframes lnspin{to{transform:rotate(360deg)}}
.ln-map .xp-zc{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;gap:6px;z-index:4}
.ln-map .xp-zc button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.92);font-size:19px;font-weight:700;display:grid;place-items:center;line-height:1}
.ln-map .xp-zc button:hover{border-color:var(--accent);color:var(--accent-ink)}
.ln-map .xp-zc .xp-reset{font-size:11px;font-weight:800;letter-spacing:.04em}
.ln-map .xp-caption{position:absolute;left:16px;bottom:16px;max-width:280px;z-index:4;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 6px 24px rgba(15,22,35,.1)}
.ln-map .xp-caption > b{font-size:16px;letter-spacing:-.01em}
.ln-map .xp-caption p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.ln-map .xp-stat{display:flex;align-items:baseline;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ln-map .xp-stat b{font-size:20px;font-variant-numeric:tabular-nums}
.ln-map .xp-stat span{font-size:11.5px;color:var(--muted)}
.ln-map .xp-toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%,14px);opacity:0;z-index:8;background:var(--accent);color:#fff;font-weight:600;font-size:13.5px;padding:11px 18px;border-radius:12px;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}
.ln-map .xp-toast.on{opacity:1;transform:translate(-50%,0)}
.ln-page .xp-tip{position:fixed;pointer-events:none;z-index:20;background:var(--night);color:#fff;border-radius:10px;padding:8px 11px;font-size:13px;line-height:1.35;box-shadow:0 8px 26px rgba(0,0,0,.3);max-width:230px}
.ln-page .xp-tip b{display:block;font-size:13.5px}
.ln-page .xp-tip .rg{color:#c9ced7;font-size:11.5px}
.ln-page .xp-tip .go{margin-top:5px;color:var(--accent-soft);font-size:11px}
/* states, cta */
.ln-states{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.ln-states a{display:flex;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);font-size:14px}
.ln-states a:hover{border-color:var(--accent)}
.ln-states small{color:var(--muted);font-size:12.5px}
.ln-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:48px;padding:32px;border-radius:20px;background:var(--night);color:#fff}
.ln-cta h2{font-size:28px;letter-spacing:-.03em;line-height:1.1}
.ln-cta p{margin:8px 0 0;color:#c9ced7;font-size:15px;max-width:560px}
.ln-cta .acts{display:flex;gap:10px;flex:none}
.ln-cta .btn:not(.btn-accent){background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.ln-credits a{color:inherit;text-decoration:underline}
@media (max-width:1000px){.ln-hero{grid-template-columns:1fr;gap:24px}.ln-mosaic{height:340px}.ln-grid,.ln-inside{grid-template-columns:repeat(2,minmax(0,1fr))}.ln-totd{grid-template-columns:1fr}.ln-totd .ph{min-height:260px}}
@media (max-width:640px){
  .ln-hin h1{font-size:34px}.ln-hin > p{font-size:15.5px}.ln-stats{gap:18px}.ln-stats b{font-size:21px}
  .ln-mosaic{height:260px;grid-template-columns:1.3fr 1fr}.ln-tile b{font-size:14.5px}
  .ln-grid{grid-template-columns:1fr 1fr;gap:8px}.ln-gc{height:170px}.ln-inside{grid-template-columns:1fr 1fr;gap:8px}.ln-inside .card{padding:14px}.ln-inside small{display:none}.ln-inside b{font-size:15px}.ln-inside em{font-size:12px}
  .ln-map{height:380px}.ln-map #xpMap{touch-action:pan-y}.ln-map .xp-caption{left:10px;right:10px;bottom:10px;max-width:none}.ln-map .xp-hint{display:none}
  .ln-cta{flex-direction:column;align-items:flex-start;padding:24px}.ln-cta h2{font-size:23px}
}

/* ---------- Your pages: Saved / Following / Admin (app/pages/account.php) · prefix acc- ---------- */
.acc-main .set-flash{margin-bottom:16px}
.acc-inl{display:inline}
.acc-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;border-radius:18px;padding:28px 32px;background:linear-gradient(160deg,var(--accent-tint),#fff 70%);border:1px solid var(--line)}
.acc-hero h1{display:flex;align-items:center;gap:12px;font-size:40px;letter-spacing:-.04em;line-height:1.05;margin-top:6px}
.acc-hero p{margin:10px 0 0;color:var(--ink-2);font-size:15.5px;max-width:640px}
.acc-hi{width:46px;height:46px;border-radius:13px;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none}
.acc-hi .ic{width:24px;height:24px}
.acc-seg{display:inline-flex;background:var(--surface);border-radius:12px;padding:4px;gap:2px}
.acc-seg a{padding:8px 14px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted);white-space:nowrap}
.acc-seg a small{font-weight:500;color:var(--faint);margin-left:2px}
.acc-seg a.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,22,35,.12)}
/* saved towns */
.acc-towns{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.acc-tc{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.acc-img{position:relative;display:block;height:150px;background-size:cover;background-position:center}
.acc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,22,35,0) 40%,rgba(15,22,35,.72))}
.acc-img.fb{background:linear-gradient(135deg,hsl(var(--h) 45% 55%),hsl(calc(var(--h) + 40) 50% 40%))}
.acc-ini{position:absolute;inset:0;display:grid;place-items:center;font-size:56px;font-weight:800;color:rgba(255,255,255,.35)}
.acc-pill{position:absolute;left:12px;top:12px;z-index:1;font-size:12px;font-weight:700;background:rgba(255,255,255,.92);color:var(--accent-ink);border-radius:999px;padding:3px 10px}
.acc-nm{position:absolute;left:14px;right:14px;bottom:10px;z-index:1;color:#fff}
.acc-nm b{display:block;font-size:20px;letter-spacing:-.02em}
.acc-nm small{display:block;font-size:12.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-unsave{position:absolute;top:10px;right:10px;z-index:2;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--accent-ink);display:grid;place-items:center}
.acc-unsave .ic{fill:currentColor;width:16px;height:16px}
.acc-unsave:hover{background:#fff;color:var(--bad)}
.acc-tb{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1}
.acc-fresh{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.acc-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.acc-fresh.quiet{color:var(--muted);font-weight:500}.acc-fresh.quiet .acc-dot{background:#c9ced7;box-shadow:none}
.acc-tf{display:flex;justify-content:space-between;align-items:center;margin-top:auto;font-size:13.5px}
.acc-tf span{color:var(--faint);font-size:12.5px}
.acc-add{align-items:flex-start;justify-content:center;gap:6px;padding:20px;border-style:dashed;min-height:240px;background:var(--surface)}
.acc-add form{margin-top:6px}
a.acc-add:hover{border-color:var(--accent)}
.acc-add b{font-size:16px}.acc-add small{font-size:13.5px;color:var(--muted)}
.acc-plus{width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent-ink);margin-bottom:6px}
/* lists */
.acc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.acc-grid.rail{grid-template-columns:minmax(0,1fr) 300px}
.acc-hero + .acc-grid{margin-top:20px}
.acc-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.acc-filters .chip{height:30px;padding:0 12px;border-radius:999px;font-size:13px;border:1px solid transparent}
.acc-filters .chip small{margin-left:4px;color:var(--faint)}
.acc-filters .chip:hover{border-color:var(--line)}
.acc-filters .chip.on{background:var(--ink);color:#fff}.acc-filters .chip.on small{color:#c9ced7}
.acc-fsep{width:1px;height:20px;background:var(--line);margin:0 4px}
.acc-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.acc-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:16px;border-top:1px solid var(--hair)}
.acc-row:first-child{border-top:0}
.acc-row .av{width:36px;height:36px;font-size:14px}
.acc-row.gone{opacity:.7;background:var(--surface)}
.acc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.acc-meta b{color:var(--ink);font-weight:600}
.acc-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;background:var(--surface);color:var(--muted);border-radius:6px;padding:2px 8px}
.acc-tag .ic{width:13px;height:13px}
.acc-tag.town{background:var(--accent-tint);color:var(--accent-ink)}
.acc-tag.ev{background:#eaf2fd;color:#1f5fae}.acc-tag.q{background:#fdf3e2;color:#97600d}
.acc-rb h3{font-size:16.5px;letter-spacing:-.015em;margin-top:5px;line-height:1.3}
.acc-rb h3 a:hover{color:var(--accent-ink)}
.acc-rb p{margin:4px 0 0;font-size:14px;color:var(--ink-2);line-height:1.45}
.acc-acts{display:flex;align-items:center;gap:14px;margin-top:8px;font-size:13px;color:var(--muted)}
.acc-acts a{display:inline-flex;align-items:center;gap:5px}
.acc-acts a:hover{color:var(--accent-ink)}
.acc-acts .ic{width:15px;height:15px}
.acc-saved{display:inline-flex;align-items:center;gap:5px;border:0;background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:12.5px;border-radius:999px;padding:4px 10px}
.acc-saved .ic{width:13px;height:13px;fill:currentColor}
.acc-saved:hover{background:#fdeeea;color:var(--bad)}
.acc-thumb{width:84px;height:84px;border-radius:10px;overflow:hidden;align-self:center}
.acc-thumb img{width:100%;height:100%;object-fit:cover}
.acc-none{padding:24px;text-align:center;color:var(--muted);font-size:14.5px}
.acc-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px 20px}
.acc-empty b{font-size:17px}.acc-empty small{font-size:14px;color:var(--muted);max-width:360px}
.acc-empty .btn{margin-top:8px}
.acc-pager{display:flex;justify-content:space-between;gap:8px;margin-top:12px}
.acc-rail{display:flex;flex-direction:column;gap:12px;position:sticky;top:calc(var(--hdr) + 16px)}
.acc-rail .card .kick{margin-bottom:8px}
.acc-ev{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--hair)}
.acc-ev:first-of-type{border-top:0}
.acc-ev b{display:block;font-size:14px;line-height:1.3}.acc-ev small{font-size:12.5px;color:var(--muted)}
.acc-ev:hover b{color:var(--accent-ink)}
.acc-date{width:44px;flex:none;text-align:center;border-radius:10px;background:var(--accent-tint);padding:4px 0}
.acc-date small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--accent-ink)}
.acc-date b{display:block;font-size:19px;line-height:1.1}
.acc-jump{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;font-size:14px;font-weight:600}
.acc-jump small{font-size:12px;color:var(--accent-ink);font-weight:600}
.acc-jump.cur small{color:var(--faint)}
.acc-jump:hover span{color:var(--accent-ink)}
.acc-sw{width:28px;height:28px;border-radius:8px;background-size:cover;background-position:center;background-color:hsl(var(--h,150) 45% 55%)}
/* following: topic chips */
.acc-ftown{margin-top:10px}.acc-ftown b{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.acc-fchips{display:flex;flex-wrap:wrap;gap:6px}
.acc-fchip{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:600;background:var(--accent-tint);color:var(--accent-ink);border-radius:999px;padding:3px 4px 3px 11px}
.acc-fx{width:22px;height:22px;border:0;border-radius:50%;background:none;color:var(--accent-ink);display:grid;place-items:center;padding:0}
.acc-fx .ic{width:13px;height:13px}
.acc-fx:hover{background:#fff;color:var(--bad)}
.acc-follow{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 11px 4px 8px}
.acc-follow .ic{width:13px;height:13px;color:var(--accent-ink)}
.acc-follow:hover{border-color:var(--accent);background:var(--accent-tint)}
/* admin */
.acc-pulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:16px}
a.kpi:hover{border-color:var(--accent)}
.acc-visits{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.acc-visits li{display:grid;grid-template-columns:32px minmax(0,220px) minmax(0,1fr) 80px;gap:14px;align-items:center;padding:10px 16px;border-top:1px solid var(--hair)}
.acc-visits li:first-child{border-top:0}
.acc-vn{font-weight:700;color:var(--faint)}
.acc-vt b{display:block;font-size:14.5px}.acc-vt small{font-size:12px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-vb{height:10px;border-radius:5px;background:#eef0f3;overflow:hidden}.acc-vb i{display:block;height:100%;background:var(--accent);border-radius:5px}
.acc-vv{text-align:right;font-weight:600}
.acc-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:14px}
.acc-tabs a{padding:9px 14px;font-weight:600;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.acc-tabs a.on{color:var(--ink);border-color:var(--accent)}
.acc-tabs a:hover{color:var(--ink)}
.acc-search{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.acc-sbox{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;height:38px;background:#fff;color:var(--muted)}
.acc-sbox:focus-within{border-color:var(--accent)}
.acc-sbox input{border:0;outline:0;font:inherit;font-size:14px;flex:1;background:none;color:var(--ink);min-width:0}
.acc-chk{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ink-2)}
.acc-mod{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.acc-mr{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--hair)}
.acc-mr:first-child{border-top:0}
.acc-mr.off{background:#fbf8f7}
.acc-mr .av{width:32px;height:32px}
.acc-mm{flex:1;min-width:0}
.acc-mt{display:block;font-weight:600;font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
a.acc-mt:hover{color:var(--accent-ink)}
.acc-mm small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.acc-mm p{margin:4px 0 0;font-size:13.5px;color:var(--ink-2)}
.acc-st{display:inline-block;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--surface);color:var(--muted);white-space:nowrap}
.acc-st.off{background:#fdeeea;color:#a1361b}.acc-st.warn{background:#fdf3e2;color:#97600d}
.acc-k{flex:none;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);background:var(--accent-tint);border-radius:6px;padding:3px 8px}
.acc-two{display:flex;gap:6px;flex:none}
.btn.acc-danger{color:var(--bad)}.btn.acc-danger:hover{border-color:var(--bad);background:#fdeeea}
.acc-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}
.acc-form{display:flex;flex-direction:column;gap:10px}
.acc-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700}
.acc-form input{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14.5px;font-weight:400}
.acc-form input:focus{outline:0;border-color:var(--accent)}
.acc-form .btn{align-self:flex-start}
@media (max-width:1100px){.acc-grid.rail{grid-template-columns:1fr}.acc-rail{position:static}}
@media (max-width:640px){.acc-hero{padding:20px}.acc-add{min-height:0}.acc-hero h1{font-size:30px}.acc-hi{width:38px;height:38px}.acc-seg{width:100%}.acc-seg a{flex:1;text-align:center;padding:8px 6px}.acc-row{grid-template-columns:32px minmax(0,1fr);padding:14px}.acc-thumb{display:none}.acc-visits li{grid-template-columns:24px minmax(0,1fr) 60px;gap:10px}.acc-vb{display:none}.acc-mr{flex-wrap:wrap}.acc-mr .acc-mm{flex-basis:calc(100% - 44px)}}

/* ---------- Explore map (app/pages/explore.php + lean/explore.js) · prefix xm- ---------- */
.xm-body{overflow:hidden}
.xm{position:relative;height:calc(100vh - var(--hdr));height:calc(100dvh - var(--hdr));overflow:hidden;background:#fbfcfd}
.xm-map{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}
.xm-map:active{cursor:grabbing}
.xm-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 18px;transition:opacity .3s}
.xm-loading.done{opacity:0;pointer-events:none}
.xm-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent-tint);border-top-color:var(--accent);animation:xmspin .8s linear infinite}
@keyframes xmspin{to{transform:rotate(360deg)}}
.xm-panel{position:absolute;left:16px;top:16px;width:340px;max-height:calc(100% - 32px);overflow:auto;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 40px rgba(15,22,35,.08);z-index:3;scrollbar-width:thin}
.xm-panel h1{font-size:26px;letter-spacing:-.03em;line-height:1.1;margin-top:4px}
.xm-sub{color:var(--muted);font-size:14px;margin:8px 0 14px;line-height:1.45}
.xm-find{position:relative}
.xm-find .ic{position:absolute;left:12px;top:11px;color:var(--faint);pointer-events:none}
.xm-find input{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px 0 38px;font:inherit;font-size:14.5px;background:var(--surface);color:var(--ink)}
.xm-find input:focus{outline:none;border-color:var(--accent);background:#fff}
.xm-res{position:absolute;left:0;right:0;top:44px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,22,35,.12);padding:4px;z-index:5}
.xm-res button{display:flex;flex-direction:column;align-items:flex-start;width:100%;border:0;background:none;text-align:left;padding:8px 10px;border-radius:8px}
.xm-res button:hover,.xm-res button[aria-selected="true"]{background:var(--accent-tint)}
.xm-res b{font-size:14.5px}
.xm-res small{font-size:12px;color:var(--muted)}
.xm-lenses{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.xm-lenses button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.xm-lenses button:hover{border-color:#c9ced7}
.xm-lenses button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.xm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;font-size:12.5px;color:var(--muted);min-height:22px}
.xm-legend small{flex-basis:100%;font-size:12px;color:var(--faint)}
.xm-lg-pop{display:inline-flex;align-items:center;gap:4px}
.xm-lg-pop i{display:inline-block;border-radius:50%;background:var(--accent)}
.xm-lg-g{display:inline-flex;gap:3px}
.xm-lg-g i{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:6px;color:#fff;font-style:normal;font-weight:800;font-size:12px}
.xm-lg-ramp{display:flex;flex:1;min-width:150px}
.xm-lg-ramp i{flex:1;height:10px}
.xm-lg-ramp i:first-child{border-radius:5px 0 0 5px}.xm-lg-ramp i:last-child{border-radius:0 5px 5px 0}
.xm-lg-ends{display:flex;justify-content:space-between;flex-basis:100%;font-size:12px}
.xm-best{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair)}
.xm-bh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.xm-bh b{font-size:14px}
.xm-dir a{padding:3px 9px;font-size:12px}
.xm-best ol{list-style:none;margin:0;padding:0}
.xm-best li button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;background:none;padding:7px 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:10px;text-align:left}
.xm-best li button:hover{background:var(--surface)}
.xm-bn{display:flex;flex-direction:column;min-width:0}
.xm-bn b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xm-bn small{font-size:12px;color:var(--muted)}
.xm-bv{font-weight:700;font-size:13.5px;color:var(--ink-2)}
.xm-best li.muted{padding:6px 0}
.xm-gb{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 5px;border-radius:7px;color:#fff;font-weight:800;font-size:13.5px;background:var(--faint);flex:none}
.xm-gb.ga{background:var(--gA)}.xm-gb.gb{background:var(--gB)}.xm-gb.gc{background:var(--gC)}.xm-gb.gd{background:var(--gD)}.xm-gb.gf{background:var(--gF)}
.xm-stat{display:flex;align-items:baseline;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--hair)}
.xm-stat b{font-size:22px}
.xm-stat span{font-size:13px;color:var(--muted)}
.xm-zc{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(15,22,35,.06);z-index:2}
.xm-zc button{width:40px;height:40px;border:0;border-top:1px solid var(--line);background:#fff;font-size:19px;font-weight:600;color:var(--ink-2)}
.xm-zc button:first-child{border-top:0}
.xm-zc button:hover{background:var(--surface)}
.xm-zc button:last-child{font-size:11px;font-weight:800;letter-spacing:.04em}
.xm-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);margin:0;background:rgba(15,22,35,.82);color:#fff;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;pointer-events:none;transition:opacity .5s;z-index:2;white-space:nowrap}
.xm-hint.gone{opacity:0}
.xm-tip{position:fixed;z-index:40;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 11px;box-shadow:0 8px 24px rgba(15,22,35,.12);display:flex;flex-direction:column;max-width:240px}
.xm-tip b{font-size:14px}
.xm-tip span{font-size:12px;color:var(--muted)}
.xm-tip em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--accent-ink);margin-top:2px}
.xm-card{position:absolute;right:72px;top:16px;width:330px;max-height:calc(100% - 32px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 44px rgba(15,22,35,.14);z-index:4;animation:xmin .22s ease-out}
@keyframes xmin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.xm-x{position:absolute;right:10px;top:10px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:20px;line-height:1;color:var(--ink-2);z-index:1;box-shadow:0 1px 4px rgba(15,22,35,.15)}
.xm-ph{aspect-ratio:16/9;background:var(--surface);overflow:hidden}
.xm-ph img{width:100%;height:100%;object-fit:cover}
.xm-ch{padding:18px 20px 0}
.xm-ch h2{font-size:24px;letter-spacing:-.025em;line-height:1.1;margin-top:3px;padding-right:30px}
.xm-ch .muted{margin:6px 0 0}
.xm-sk{height:120px;margin:16px 20px 20px;border-radius:12px;background:linear-gradient(90deg,var(--surface),#fafbfc,var(--surface));background-size:200% 100%;animation:xmsk 1.2s linear infinite}
@keyframes xmsk{to{background-position:-200% 0}}
.xm-gr{display:flex;gap:8px;padding:14px 20px 0}
.xm-gr a{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid var(--line);border-radius:12px;padding:10px 6px;font-size:12.5px;font-weight:600;color:var(--muted)}
.xm-gr a:hover{border-color:#c9ced7;color:var(--ink)}
.xm-gr .xm-gb{min-width:38px;height:38px;font-size:18px;border-radius:9px}
.xm-rk{display:flex;flex-direction:column;gap:6px;padding:14px 20px 0}
.xm-rk a{font-size:13.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-tint);border-radius:9px;padding:7px 10px}
.xm-rk a:hover{text-decoration:underline}
.xm-open{display:flex;margin:16px 20px 0;height:44px}
.xm-doors{display:flex;flex-wrap:wrap;gap:6px;padding:12px 20px 0}
.xm-doors a{font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface);border-radius:999px;padding:5px 11px}
.xm-doors a:hover{background:var(--accent-tint);color:var(--accent-ink)}
.xm-mem{font-size:12.5px;color:var(--muted);margin:12px 20px 18px}
@media (max-width:900px){
  .xm-panel{left:10px;right:10px;top:10px;width:auto;padding:12px 14px;border-radius:14px;max-height:none;overflow:visible}
  .xm-panel .kick,.xm-sub,.xm-best,.xm-stat{display:none}
  .xm-panel h1{font-size:17px;margin:0 0 8px}
  .xm-lenses{flex-wrap:nowrap;overflow-x:auto;margin-top:10px;scrollbar-width:none;margin-right:-14px;padding-right:14px}
  .xm-lenses::-webkit-scrollbar{display:none}
  .xm-lenses button{flex:none}
  .xm-legend{margin-top:8px;min-height:0}
  .xm-legend small{display:none}
  .xm-zc{top:auto;bottom:16px;right:10px}
  .xm-card{left:0;right:0;top:auto;bottom:0;width:auto;max-height:56%;border-radius:18px 18px 0 0}
  .xm-ph{aspect-ratio:3/1}
  .xm-hint{bottom:70px}
}
@media (prefers-reduced-motion:reduce){.xm-card,.xm-sk,.xm-spin{animation:none}}

/* ---------- A neighbor's profile (app/pages/member.php): .mb-* ---------- */
.mb-main{max-width:1080px;margin:0 auto}
.mb-404{max-width:520px;margin:60px auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px}
.mb-404 h1{font-size:32px;letter-spacing:-.03em}
.mb-hero{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.mb-cover{position:relative;height:200px;background:linear-gradient(120deg,var(--accent-tint),#dff3e8 45%,#eaf2fb)}
.mb-cover img{width:100%;height:100%;object-fit:cover}
.mb-cover.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(10,14,20,.35))}
.mb-ctown{position:absolute;right:14px;bottom:12px;z-index:1;display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.92);font-size:13px;font-weight:600}
.mb-ctown .ic{width:14px;height:14px;color:var(--accent-ink)}
.mb-id{display:flex;gap:18px;align-items:flex-end;padding:0 24px;margin-top:-48px;position:relative}
.mb-ava{flex:none;width:112px;height:112px;border-radius:50%;border:5px solid #fff;background:var(--accent-tint);color:var(--accent-ink);display:grid;place-items:center;font-size:42px;font-weight:800;overflow:hidden;box-shadow:0 6px 20px rgba(15,22,35,.12)}
.mb-ava img{width:100%;height:100%;object-fit:cover}
.mb-nm{flex:1;min-width:0;padding-bottom:4px}
.mb-nm h1{font-size:32px;letter-spacing:-.035em;line-height:1.1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mb-pill{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:var(--surface);color:var(--muted)}
.mb-pill.adm{background:var(--night);color:#fff}
.mb-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:14px;color:var(--muted)}
.mb-meta > span{display:inline-flex;align-items:center;gap:4px}
.mb-meta .ic{width:14px;height:14px}
.mb-meta a:hover{color:var(--accent-ink)}
.mb-lvl{font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--surface);color:var(--ink-2)}
.mb-lvl.l-neighbor{background:var(--accent-tint);color:var(--accent-ink)}
.mb-lvl.l-local{background:#e7f0fb;color:#2f5f9f}
.mb-lvl.l-steward{background:#fdf1dc;color:#9a5b0b}
.mb-lvl.l-pillar{background:#efeafb;color:#5341a8}
.mb-known{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 12px;border-radius:10px;background:#fffaf0;border:1px solid #f3e6c6;font-size:13.5px;color:var(--ink-2)}
.mb-known .ic{width:15px;height:15px;color:#b7791f}
.mb-acts{display:flex;gap:8px;padding-bottom:6px;flex:none}
.mb-bio{margin:16px 24px 22px;font-size:15.5px;line-height:1.55;color:var(--ink-2);max-width:720px}
.mb-hero > .mb-id:last-child{padding-bottom:22px}
.mb-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.mb-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:16px}
.mb-two > .card h2,.mb-list h2{font-size:19px;letter-spacing:-.02em;margin-top:4px}
.mb-two > .card h3{font-size:13.5px;margin:18px 0 8px}
.mb-two > .card > .muted{margin:4px 0 0;font-size:13.5px}
.mb-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.mb-steps::before{content:"";position:absolute;left:10%;right:10%;top:9px;height:3px;background:#e8ebef;border-radius:2px}
.mb-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.mb-steps i{width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid #dfe3e8;position:relative;z-index:1}
.mb-steps li.on i{border-color:var(--accent);background:var(--accent)}
.mb-steps li.cur i{box-shadow:0 0 0 5px var(--accent-tint)}
.mb-steps b{font-size:12.5px;margin-top:4px}
.mb-steps li:not(.on) b{color:var(--faint)}
.mb-steps small{font-size:11px;color:var(--faint)}
.mb-kbar{display:flex;height:12px;gap:2px;border-radius:6px;overflow:hidden}
.mb-kbar i{display:block}
.mb-hwrap{overflow-x:auto;margin-top:12px}
.mb-hm,.mb-heat{display:grid;grid-template-columns:repeat(26,minmax(9px,1fr));gap:3px;min-width:300px}
.mb-hm{font-size:10.5px;color:var(--faint);margin-bottom:4px}
.mb-hm span{white-space:nowrap}
.mb-heat{grid-template-rows:repeat(7,auto)}
.mb-heat i,.mb-hkey i{display:block;aspect-ratio:1;border-radius:3px;background:#eef0f3}
.mb-heat i.v1,.mb-hkey i.v1{background:#b9e8cd}
.mb-heat i.v2,.mb-hkey i.v2{background:#4cc184}
.mb-heat i.v3,.mb-hkey i.v3{background:var(--accent-ink)}
.mb-hkey{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:8px;font-size:11px;color:var(--faint)}
.mb-hkey i{width:11px}
.mb-towns{display:flex;flex-wrap:wrap;gap:6px}
.mb-towns a{display:inline-flex;align-items:baseline;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);font-size:13.5px;font-weight:600}
.mb-towns a:hover{border-color:var(--accent)}
.mb-towns small{font-size:11.5px;color:var(--muted);font-weight:500}
/* badges */
.mb-next{display:grid;grid-template-columns:auto minmax(0,1fr) 160px;gap:14px;align-items:center;margin-bottom:12px;background:#fffaf0;border-color:#f3e6c6}
.mb-next b{display:block;font-size:15px}
.mb-next small{font-size:13px;color:var(--muted)}
.mb-pbar{height:8px;border-radius:4px;background:#f3e6c6;overflow:hidden}
.mb-pbar i{display:block;height:100%;background:#d29a1e}
.mb-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
.mb-badge{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:14px 8px;border:1px solid var(--line);border-radius:14px;background:#fff}
.mb-badge b{font-size:13.5px;margin-top:4px}
.mb-badge small{font-size:11.5px;color:var(--faint)}
.mb-badge.lock{background:var(--surface);border-style:dashed}
.mb-badge.lock b{color:var(--muted)}
.mb-locked{margin-top:12px}
.mb-locked summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--accent-ink);margin-bottom:10px}
.mb-locked summary small{color:var(--muted);font-weight:500}
.mb-disc{width:48px;height:48px;border-radius:50%;display:grid;place-items:center}
.mb-disc svg{width:24px;height:24px}
.mb-disc.t-gold{background:#fdf1dc;color:#b7791f}.mb-disc.t-teal{background:#e2f6f3;color:#1f9c93}.mb-disc.t-green{background:var(--accent-tint);color:var(--accent-ink)}
.mb-disc.t-blue{background:#e7f0fb;color:#2f74d0}.mb-disc.t-violet{background:#efeafb;color:#6b57c9}.mb-disc.t-amber{background:#fdf1dc;color:#b7791f}
.mb-disc.t-rose{background:#fdeae6;color:#c0492f}.mb-disc.t-lock{background:#e8ebef;color:#9aa3b1}
/* groups, posts, lists */
.mb-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.mb-groups .card{display:flex;gap:12px;align-items:center;padding:14px}
.mb-groups .card:hover{border-color:var(--accent)}
.mb-em{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex:none}
.mb-groups b{display:block;font-size:14.5px}
.mb-groups small{font-size:12.5px;color:var(--muted)}
.mb-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.mb-post{display:flex;flex-direction:column;gap:6px;transition:border-color .15s,box-shadow .15s}
.mb-post:hover{border-color:#c9ced7;box-shadow:0 8px 24px rgba(15,22,35,.07)}
.mb-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mb-top small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-kd{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px;background:var(--surface);color:var(--muted)}
.mb-kd.k-question{background:#e7f0fb;color:#2f5f9f}.mb-kd.k-event{background:#fdf1dc;color:#9a5b0b}.mb-kd.k-photo{background:#fdeae6;color:#a33a22}
.mb-post > b{font-size:15.5px;letter-spacing:-.01em;line-height:1.3}
.mb-ex{font-size:13.5px;color:var(--muted);line-height:1.45}
.mb-ft{display:flex;gap:14px;font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:4px}
.mb-ft span{display:inline-flex;align-items:center;gap:4px}
.mb-ft .ic{width:14px;height:14px}
.mb-empty{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--accent-tint);border-color:transparent}
.mb-empty p{margin:0 0 6px}
.mb-list{display:flex;flex-direction:column}
.mb-list > a{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-top:1px solid var(--hair)}
.mb-list > a:first-of-type{margin-top:8px}
.mb-list > a:hover .mb-q{color:var(--accent-ink)}
.mb-q{font-size:14px;color:var(--ink-2);line-height:1.45}
.mb-list small{font-size:12px;color:var(--muted)}
@media (max-width:900px){.mb-two{grid-template-columns:1fr}}
@media (max-width:640px){
  .mb-cover{height:140px}.mb-id{flex-direction:column;align-items:flex-start;gap:10px;padding:0 16px;margin-top:-44px}.mb-ava{width:88px;height:88px;font-size:34px;border-width:4px}
  .mb-nm h1{font-size:26px}.mb-acts{padding-bottom:0}.mb-bio{margin:12px 16px 18px}.mb-hero > .mb-id:last-child{padding-bottom:16px}
  .mb-kpis{grid-template-columns:1fr 1fr;gap:8px}.mb-kpis .kpi:last-child:nth-child(odd){grid-column:1/-1}.mb-kpis .kpi{padding:12px}.mb-kpis .kpi .v{font-size:22px}
  .mb-next{grid-template-columns:auto minmax(0,1fr)}.mb-next .mb-pbar{grid-column:1/-1}.mb-badges{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mb-steps b{font-size:11px}
}

/* ---------- one group (app/pages/group.php; prefix gv-) ---------- */
.gv{--gc:#0e9f57;--gct:color-mix(in srgb,var(--gc) 11%,#fff);--gci:color-mix(in srgb,var(--gc) 78%,#0f1623)}
.gv-404{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.gv-404 h1{font-size:30px;letter-spacing:-.03em}
.gv-hero{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.gv-cov{height:150px;position:relative;overflow:hidden}
.gv-cov > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:luminosity;opacity:.38}
.gv-crumb{position:absolute;left:16px;top:14px;z-index:1;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.45);color:#fff;font-size:13px;font-weight:600;padding:5px 12px;border-radius:999px;backdrop-filter:blur(8px)}
.gv-crumb:hover{background:rgba(255,255,255,.32)}
.gv-row{display:flex;align-items:flex-start;gap:18px;padding:0 24px;margin-top:-44px;position:relative;flex-wrap:wrap}
.gv-em{width:96px;height:96px;border-radius:24px;background:#fff;border:4px solid #fff;box-shadow:0 6px 20px rgba(15,22,35,.14);display:grid;place-items:center;font-size:50px;line-height:1;flex:none}
.gv-tt{flex:1;min-width:240px;padding-top:56px}
.gv-tt h1{font-size:34px;letter-spacing:-.035em;line-height:1.1}
.gv-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:14px;color:var(--muted)}
.gv-meta a{color:var(--ink-2);font-weight:600}
.gv-meta a:hover{text-decoration:underline}
.gv-pill{background:var(--gct);color:var(--gci);font-weight:700;font-size:12.5px;padding:2px 10px;border-radius:999px}
.gv-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:58px}
.gv-acts form{margin:0}
.gv-joined{position:relative}
.gv-joined summary{list-style:none}
.gv-joined summary::-webkit-details-marker{display:none}
.gv-menu{position:absolute;right:0;top:44px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,22,35,.12);padding:6px;z-index:5;min-width:160px}
.gv-menu form{margin:0}
.gv-menu button{width:100%;text-align:left;border:0;background:none;padding:9px 10px;border-radius:8px;font-size:14px;color:var(--bad);font-weight:600}
.gv-menu button:hover{background:var(--surface)}
.gv-desc{margin:14px 24px 0;font-size:16px;color:var(--ink-2);line-height:1.55;max-width:720px}
.gv-pulse{display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px 20px}
.gv-pz{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 14px 6px 10px;font-size:13.5px;font-weight:600;color:var(--ink-2);max-width:100%}
.gv-pz span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gv-pz .ic{width:16px;height:16px;color:var(--faint)}
.gv-pz.lead{background:var(--gct);border-color:transparent;color:var(--gci)}
.gv-pz.lead .ic{color:var(--gc)}
.gv-pz:hover{border-color:#c9ced7}
.gv-note{margin-top:16px;border:1px solid var(--accent-soft);background:var(--accent-tint);border-radius:14px;padding:14px 16px;font-size:14.5px}
/* invite landing (?i=) */
.gv-hero.is-invite .gv-cov{height:120px}
.gv-inv{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 24px 8px;margin-top:-52px;position:relative}
.gv-em.big{width:104px;height:104px;font-size:56px}
.gv-who{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:15px;color:var(--ink-2)}
.gv-who .av{width:34px;height:34px;font-size:13px}
.gv-inv h1{font-size:38px;letter-spacing:-.04em;line-height:1.08;margin-top:8px}
.gv-sub{margin:6px 0 0;color:var(--muted);font-size:14.5px}
.gv-inv .gv-desc{margin:12px auto 0}
.gv-istats{display:flex;gap:0;margin:20px 0 4px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.gv-istats div{padding:10px 20px;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;align-items:center}
.gv-istats div + div{border-left:1px solid var(--line)}
.gv-istats b{font-size:22px;color:var(--ink);letter-spacing:-.02em}
.gv-join{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.gv-join input[type=email]{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;min-width:0;width:200px}
.gv-join input[type=email]:focus{outline:none;border-color:var(--accent)}
.gv-join.big{margin-top:18px;justify-content:center}
.gv-join.big input[type=email]{height:48px;width:260px;font-size:15px}
.gv-lg{height:48px;padding:0 22px;font-size:15.5px}
.gv-join .gv-done,.gv-join .cmp-err{flex-basis:100%;margin:4px 0 0;font-size:14px}
.gv-join.sent input,.gv-join.sent button{display:none}
.gv-fine{margin:10px 0 0;font-size:13px;color:var(--muted)}
/* organizer checklist */
.gv-cbar{height:6px;border-radius:99px;background:var(--hair);overflow:hidden;margin-bottom:12px}
.gv-cbar i{display:block;height:100%;background:var(--accent);border-radius:99px}
.gv-cl{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.gv-cl li{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#fff}
.gv-cl li + li{border-top:1px solid var(--hair)}
.gv-cl li > div{flex:1;min-width:0}
.gv-cl b{display:block;font-size:14.5px}
.gv-cl small{color:var(--muted);font-size:13px}
.gv-ck{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;flex:none;font-size:13px;font-weight:800;color:#fff}
.gv-cl li.ok .gv-ck{background:var(--accent);border-color:var(--accent)}
.gv-cl li.ok b{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}
/* conversation */
.gv-say{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 10px 10px 12px;text-align:left}
.gv-say:hover{border-color:var(--gc)}
.gv-say .av{width:34px;height:34px;font-size:13px}
.gv-say-t{flex:1;color:var(--faint);font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gv-starts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.gv-starts .ic{width:15px;height:15px;color:var(--gc)}
.gv-feed{margin-top:8px}
.gv-post.pinned{background:var(--gct);border-radius:14px;padding:0 14px;margin:6px 0 10px}
.gv-post.pinned .sqc{border-top:0}
.gv-pinlbl{display:inline-block;font-size:12px;font-weight:700;color:var(--gci);padding-top:12px}
.gv-mod{display:flex;gap:4px;margin:-8px 0 12px 50px}
.gv-mod form{margin:0}
.gv-mod button{border:0;background:none;font-size:12.5px;font-weight:600;color:var(--muted);padding:4px 8px;border-radius:6px}
.gv-mod button:hover{background:var(--surface);color:var(--ink)}
/* next meetup */
.gv-evs{display:flex;flex-direction:column;gap:10px}
.gv-ev{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;flex-wrap:wrap}
.gv-ev.first{border-color:transparent;background:var(--gct);padding:18px}
.gv-day{width:66px;flex:none;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 0;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.gv-day b{display:block;font-size:28px;color:var(--ink);line-height:1.05;letter-spacing:-.03em}
.gv-ev.first .gv-day{border-color:transparent;box-shadow:0 2px 10px rgba(15,22,35,.08)}
.gv-evb{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}
.gv-evt{font-size:17px;font-weight:700;letter-spacing:-.01em}
.gv-evt:hover{text-decoration:underline}
.gv-evb small{color:var(--muted);font-size:13.5px}
.gv-evb p{margin:4px 0 0;font-size:14px;color:var(--ink-2)}
.gv-going{font-size:12.5px;font-weight:700;color:var(--gci);margin-top:4px}
.gv-evbtn{display:flex;gap:8px;flex-wrap:wrap}
.gv-evbtn form{margin:0}
/* the road to 5 / 10 / 25 */
.gv-road{padding:20px 22px}
.gv-rtop{display:flex;align-items:baseline;gap:10px}
.gv-rtop b{font-size:40px;letter-spacing:-.04em;line-height:1}
.gv-rtop span{color:var(--muted);font-size:14.5px}
.gv-rtop strong{color:var(--ink)}
.gv-track{position:relative;height:8px;border-radius:99px;background:var(--hair);margin:26px 12px 34px}
.gv-track > i{position:absolute;left:0;top:0;bottom:0;background:var(--gc);border-radius:99px}
.gv-stop{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;border:3px solid var(--line)}
.gv-stop.on{border-color:var(--gc);background:var(--gc)}
.gv-stop.next{border-color:var(--gc);box-shadow:0 0 0 4px var(--gct)}
.gv-stop em{position:absolute;top:18px;left:50%;transform:translateX(-50%);font-style:normal;font-size:12px;font-weight:700;color:var(--faint)}
.gv-stop.on em,.gv-stop.next em{color:var(--ink-2)}
.gv-faces{display:flex;flex-wrap:wrap;gap:6px}
.gv-faces .av{width:36px;height:36px;font-size:14px}
.gv-seat{border:2px dashed var(--line);background:#fff!important;color:var(--faint)!important;font-weight:500}
.gv-seat:hover{border-color:var(--gc);color:var(--gc)!important}
.gv-rf{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--hair);flex-wrap:wrap;font-size:13.5px}
/* around town for this group */
.gv-kit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:box-shadow .15s,border-color .15s}
.gv-kit:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.gv-kv{position:relative;min-height:200px;background:var(--gc);overflow:hidden;display:flex;align-items:flex-end;padding:18px}
.gv-kv > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:luminosity;opacity:.42}
.gv-kv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.35))}
.gv-kic{position:absolute;left:16px;top:16px;z-index:1;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--gc)}
.gv-kic .ic{width:20px;height:20px}
.gv-big{position:relative;z-index:1;color:#fff;display:flex;flex-direction:column}
.gv-big b{font-size:44px;letter-spacing:-.04em;line-height:1}
.gv-big small{font-size:14px;opacity:.92;margin-top:4px}
.gv-kb{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.gv-items{display:flex;flex-direction:column}
.gv-items > span{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--hair);font-size:14px}
.gv-items > span:first-child{border-top:0}
.gv-items b{font-weight:600;min-width:0}
.gv-items small{color:var(--muted);font-size:13px;text-align:right;flex:none;max-width:50%}
.gv-kp{color:var(--muted);font-size:14.5px}
.gv-kb .link{margin-top:auto}
/* members */
.gv-hi{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:12px;font-size:14.5px;flex-wrap:wrap}
.gv-hi > span:nth-child(2){flex:1;min-width:140px}
.gv-hi .av{width:34px;height:34px;font-size:13px}
.gv-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}
.gv-m{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;border:1px solid var(--line);border-radius:14px;padding:14px 8px 12px;min-width:0}
a.gv-m:hover{border-color:#c9ced7}
.gv-m .av{width:52px;height:52px;font-size:19px;margin-bottom:4px}
.gv-m b{font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gv-m small{font-size:12px;color:var(--muted)}
.gv-m small.org{color:var(--gci);font-weight:700}
.gv-more{justify-content:center;background:var(--surface);border-style:dashed}
.gv-more b{font-size:20px}
/* other groups */
.gv-og .grp-b{padding:12px 14px}
/* rail */
.gv-invite.is-member{border-color:color-mix(in srgb,var(--gc) 35%,#fff);background:linear-gradient(180deg,var(--gct),#fff 70%)}
.gv-link{display:flex;gap:6px}
.gv-link input{flex:1;min-width:0;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 9px;font:inherit;font-size:12.5px;color:var(--muted);background:#fff}
.gv-shares{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:6px;margin-top:10px}
.gv-shares > *{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);border-radius:10px;padding:8px 4px;background:#fff;font-size:17px}
.gv-shares span{font-size:12px;font-weight:600;color:var(--ink-2)}
.gv-shares > *:hover{border-color:#c9ced7}
.gv-istat{margin:12px 0 0;font-size:13px;color:var(--muted)}
.gv-istat b{color:var(--ink)}
.gv-about ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.gv-about li{display:flex;gap:10px;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.gv-about .ic{width:16px;height:16px;color:var(--faint);margin-top:2px}
@media (max-width:640px){
  .gv-cov{height:110px}
  .gv-row{padding:0 16px;margin-top:-36px;gap:12px}
  .gv-em{width:76px;height:76px;font-size:40px;border-radius:20px}
  .gv-tt{min-width:0;flex-basis:100%;padding-top:0}
  .gv-acts{padding-top:0}
  .gv-tt h1{font-size:27px}
  .gv-desc{margin:12px 16px 0;font-size:15px}
  .gv-pulse{padding:14px 16px 16px}
  .gv-inv{padding:0 16px 8px}
  .gv-inv h1{font-size:29px}
  .gv-istats div{padding:8px 12px}
  .gv-join.big{flex-direction:column;align-items:stretch;width:100%}
  .gv-join.big input[type=email]{width:100%}
  .gv-join input[type=email]{width:100%;flex:1}
  .gv-join.guest{flex-wrap:nowrap}
  .gv-join.guest.big{flex-wrap:wrap}
  .gv-kit{grid-template-columns:1fr}
  .gv-kv{min-height:150px}
  .gv-mod{margin-left:0}
  .gv-ev{gap:12px}
  .gv-evbtn{width:100%}
  .gv-wall{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
}

/* ---------- Topic page (app/pages/topic.php): tp-* · the hero wears the topic's palette (--tp-bg/ink/l/m/d) ---------- */
.tp-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;border-radius:18px;padding:32px 0 0 32px;background:var(--tp-bg);overflow:hidden;color:var(--ink)}
.tp-hin{padding-bottom:32px;max-width:640px;min-width:0}
.tp-crumb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;font-weight:600;color:var(--tp-ink)}
.tp-crumb a{opacity:.75}.tp-crumb a:hover{opacity:1;text-decoration:underline}.tp-crumb span{opacity:.45}
.tp-hero h1{font-size:40px;letter-spacing:-.04em;line-height:1.06;margin-top:10px;color:var(--tp-ink)}
.tp-hin > p{color:var(--ink-2);margin:12px 0 0;font-size:16px;max-width:560px}
.tp-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tp-follow{display:inline-flex;margin:0}
.tp-follow .btn.on{background:#fff;border-color:var(--tp-d);color:var(--tp-ink)}
.tp-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:14px;font-size:13px;color:var(--tp-ink);font-weight:600}
.tp-meta span{opacity:.8}
.tp-meta span + span::before{content:"·";margin-right:14px;opacity:.5}
.tp-hero .rk-row{margin-top:14px}
.tp-art{align-self:end;width:340px;line-height:0;pointer-events:none}
.tp-art svg{width:100%;height:auto;display:block}
.tp-subs{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.tp-traits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:16px}
.tp-trait{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;transition:border-color .15s}
.tp-trait:hover{border-color:var(--tp-m)}
.tp-trait b{font-size:14.5px;letter-spacing:-.01em;line-height:1.3}
.tp-trait small{color:var(--muted);font-size:13px;line-height:1.4}

.tp-ex{border:1px solid var(--line);border-left:4px solid var(--tp-d);border-radius:14px;padding:20px 22px;background:#fff}
.tp-ex-b{margin:0;font-size:16px;line-height:1.65;color:var(--ink-2);white-space:normal}
.tp-ex-b.draft{background:var(--surface);border-radius:10px;padding:14px 16px;margin-top:10px}
.tp-ex-note{display:inline-block;background:#fff7e0;color:#9a6700;font-size:13px;font-weight:600;border-radius:999px;padding:4px 12px}
.tp-ex-empty b{font-size:16px}.tp-ex-empty p{margin:6px 0 0;color:var(--muted)}
.tp-ex-prop{border-top:1px solid var(--hair);margin-top:16px;padding-top:14px;font-size:13.5px;color:var(--muted)}
.tp-ex-prop b{color:var(--ink)}.tp-ex-prop p{margin:8px 0;color:var(--ink-2);font-size:14.5px}
.tp-ex-vote{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.tp-ex-f{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.tp-ex-f .btn{margin-left:auto}

.tp-drop{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-bottom:14px}
.tp-dropc{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
a.tp-dropc:hover{border-color:var(--tp-m)}
.tp-dropi{width:44px;height:44px;border-radius:12px;background:var(--tp-bg);display:grid;place-items:center;font-size:21px;flex:none}
.tp-dropc > span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.tp-dropc small{font-size:12px;color:var(--muted);font-weight:600}
.tp-dropc b{font-size:15.5px}
.tp-dropc em{font-style:normal;font-size:13px;color:var(--ink-2)}
.tp-dropc .go{font-size:13px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.tp-facts{margin-bottom:14px}
.tp-tips{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:14px}
.tp-tip{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff}
.tp-tip h3{font-size:16px;letter-spacing:-.01em}
.tp-tip p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.tp-tip small{display:block;margin-top:8px;color:var(--muted);font-size:12.5px}
.tp-add{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;background:var(--surface);border-radius:14px;padding:16px 18px}
.tp-add b{display:block;font-size:15px}.tp-add span{font-size:13.5px;color:var(--muted)}
.tp-addb{display:flex;flex-wrap:wrap;gap:6px}

.tp-door-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-weight:600;font-size:14px}
.tp-door-row:hover{border-color:var(--tp-m)}.tp-door-row .go{color:var(--accent-ink)}

.tp-talk{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.tp-side{display:flex;flex-direction:column;gap:14px}
.tp-tally{height:8px;border-radius:4px;background:#f2d3cb;overflow:hidden;margin:-4px 0 6px}
.tp-tally i{display:block;height:100%;background:var(--accent)}
.tp-tl{margin:0 0 12px;font-size:12.5px}
.tp-bars{display:flex;align-items:flex-end;gap:4px;height:64px;margin-top:12px}
.tp-bars i{flex:1;background:var(--tp-d);border-radius:3px 3px 0 0;min-height:3px}
.tp-bars i.z{background:var(--line)}
.tp-bx{display:flex;justify-content:space-between;font-size:11px;color:var(--faint);margin-top:4px}

.tp-doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.tp-door{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;transition:border-color .15s,box-shadow .15s}
.tp-door:hover{border-color:#c9ced7;box-shadow:0 4px 14px rgba(15,22,35,.06)}
.tp-door.sh{background:var(--tp-bg);border-color:transparent}
.tp-door > .tp-di{width:36px;height:36px;border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--tp-d)}
.tp-door.sh > .tp-di{background:#fff}
.tp-dt{display:flex;flex-direction:column}
.tp-dt small{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tp-door.sh .tp-dt small{color:var(--tp-ink)}
.tp-dt b{font-size:16px;letter-spacing:-.01em}
.tp-dv{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.1;color:var(--tp-ink)}
.tp-ds{font-size:13px;color:var(--muted);line-height:1.4}
.tp-door .go{margin-top:auto;padding-top:6px;font-size:13px;font-weight:600;color:var(--accent-ink)}

.tp-map .nbmap .o.tp-q0,.tp-sw.tp-q0{fill:#eef0f3;background:#eef0f3}
.tp-map .nbmap .o.tp-q1{fill:var(--tp-l);fill-opacity:.55}
.tp-map .nbmap .o.tp-q2,.tp-sw.tp-q2{fill:var(--tp-l);background:var(--tp-l)}
.tp-map .nbmap .o.tp-q3{fill:var(--tp-m)}
.tp-map .nbmap .o.tp-q4,.tp-sw.tp-q4{fill:var(--tp-d);background:var(--tp-d)}
.tp-sw.tp-me{background:var(--accent)}
.tp-map .nbmap a:hover .o{filter:brightness(.92)}
.hz-tw .tbl.tp-tbl{min-width:0}
.tp-nbp{margin-top:18px}
.tp-nbp .kick{margin-bottom:2px}
.tp-nbl{display:flex;flex-wrap:wrap;gap:6px}

.tp-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.tp-mc{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}
.tp-mc.mine{border-color:var(--tp-m)}
.tp-mc h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}
.tp-mc a{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14.5px}
.tp-mc a:hover .tp-mn{color:var(--accent-ink)}
.tp-mi{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px;flex:none}
.tp-mn{flex:1;min-width:0}
.tp-mk{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

@media (max-width:1100px){.tp-talk{grid-template-columns:1fr}.tp-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media (max-width:900px){.tp-art{width:240px}}
@media (max-width:640px){
  .tp-hero{grid-template-columns:1fr;padding:22px 0 0 20px;gap:0}
  .tp-hin{padding:0 20px 8px 0}
  .tp-hero h1{font-size:29px}
  .tp-hin > p{font-size:15px}
  .tp-art{width:210px;justify-self:end;margin-top:-48px}
  .tp-subs{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-right:16px;scrollbar-width:none}
  .tp-subs .pill{flex:none}
  .tp-acts .btn{flex:1 1 auto}
  .tp-side{grid-template-columns:1fr}
  .tp-ex{padding:16px}
}

/* ---------- Compare towns (app/pages/compare.php, public/assets/compare-towns.js). Prefix vs-. Town colors: --vc per .vs-c0…3 ---------- */
.vs-c0{--vc:#0e9f57;--vt:#e8f8ef}.vs-c1{--vc:#4f46e5;--vt:#eeedfd}.vs-c2{--vc:#d97706;--vt:#fdf3e4}.vs-c3{--vc:#db2777;--vt:#fdebf3}
.vs-sw{width:10px;height:10px;border-radius:3px;background:var(--vc);flex:none;display:inline-block}
.vs-hero{padding:8px 0 0}
.vs-hero h1{font-size:46px;letter-spacing:-.04em;line-height:1.04;margin-top:8px}
.vs-hn{box-shadow:inset 0 -.16em 0 color-mix(in srgb,var(--vc) 32%,transparent)}
.vs-v{font-style:normal;font-weight:600;font-size:.5em;color:var(--faint);vertical-align:.32em;letter-spacing:0;margin:0 .1em}
.vs-lede{font-size:17px;color:var(--ink-2);max-width:760px;margin:10px 0 0;line-height:1.5}
.vs-tiles{display:grid;gap:14px;margin-top:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
.vs-tiles.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.vs-tiles.n4,.vs-tiles.n5{grid-template-columns:repeat(4,minmax(0,1fr))}
.vs-tile{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;display:flex;flex-direction:column;min-width:0;border-top:4px solid var(--vc)}
.vs-tv{display:block;height:170px;background:var(--vt);position:relative}
.vs-tv img{width:100%;height:100%;object-fit:cover}
.vs-ini{position:absolute;inset:0;display:grid;place-items:center;font-size:64px;font-weight:800;color:var(--vc);letter-spacing:-.04em}
.vs-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:20px;line-height:1;color:var(--ink-2);box-shadow:0 2px 8px rgba(15,22,35,.15)}
.vs-x:hover{background:#fff;color:var(--bad)}
.vs-tb{display:flex;gap:10px;align-items:flex-start;padding:12px 14px 14px}
.vs-tb .vs-sw{margin-top:7px}
.vs-tb b{font-size:17px;letter-spacing:-.01em}
.vs-tb small{display:block;font-size:13.5px;color:var(--ink-2);font-weight:600}
.vs-tb small.vs-tm{color:var(--muted);font-weight:400;font-size:13px}
.vs-add{border:1.5px dashed #cfd5dd;border-top:1.5px dashed #cfd5dd;background:var(--surface);overflow:visible}
.vs-find{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:22px 16px;height:100%;position:relative;text-align:center}
.vs-plus{width:44px;height:44px;border-radius:999px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent-ink)}
.vs-find b{font-size:16px}
.vs-find input{width:100%;height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14.5px;background:#fff;color:var(--ink)}
.vs-find input:focus{outline:none;border-color:var(--accent)}
.vs-find small{font-size:12.5px;color:var(--muted)}
.vs-res{position:absolute;left:12px;right:12px;top:calc(100% - 46px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,22,35,.14);padding:6px;z-index:20;text-align:left}
.vs-res a{display:flex;flex-direction:column;padding:8px 10px;border-radius:8px}
.vs-res a:hover,.vs-res a.on{background:var(--surface)}
.vs-res b{font-size:14px}.vs-res small{font-size:12px;color:var(--muted)}
.vs-acts{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}

.vs-shine{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.vs-shine.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.vs-shine.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.vs-col{border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(180deg,var(--vt),#fff 120px);display:flex;flex-direction:column;gap:10px;min-width:0}
.vs-colh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vs-colh b{font-size:18px;letter-spacing:-.02em}
.vs-colh small{flex-basis:100%;color:var(--muted);font-size:13px}
.vs-so{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;transition:border-color .15s,box-shadow .15s}
a.vs-so:hover{border-color:var(--vc);box-shadow:0 4px 16px rgba(15,22,35,.06)}
.vs-soi{width:62px;height:62px;border-radius:10px;overflow:hidden;flex:none;background:var(--surface)}
.vs-soi img{width:100%;height:100%;object-fit:cover}
.vs-sot{display:flex;flex-direction:column;min-width:0}
.vs-sot .kick{color:var(--vc);filter:brightness(.85)}
.vs-big{font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin-top:2px}
.vs-big em{font-style:normal;font-weight:800;font-size:22px;color:var(--ink)}
.vs-sot small{font-size:13px;color:var(--muted);line-height:1.35;margin-top:2px}
.vs-more{font-size:13.5px;margin-top:auto}

.vs-diffs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vs-df{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:6px;transition:border-color .15s}
.vs-df:hover{border-color:#c9ced7}
.vs-dfh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.vs-dfh .kick{color:var(--muted)}
.vs-chip{font-size:12.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--vt);color:var(--vc);filter:saturate(1.1)}
.vs-dft{font-size:17px;letter-spacing:-.015em}
.vs-strip{position:relative;height:22px;margin:8px 4px 2px}
.vs-strip::before{content:"";position:absolute;left:0;right:0;top:10px;height:2px;border-radius:2px;background:var(--hair)}
.vs-span{position:absolute;top:9px;height:4px;border-radius:4px;background:#d5dae1}
.vs-dot{position:absolute;top:4px;width:14px;height:14px;margin-left:-7px;border-radius:999px;background:var(--vc);border:2px solid #fff;box-shadow:0 1px 3px rgba(15,22,35,.25)}
.vs-strip.sm{height:18px;margin:0}.vs-strip.sm::before{top:8px}.vs-strip.sm .vs-dot{top:2px;width:12px;height:12px;margin-left:-6px}
.vs-vals{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13.5px;color:var(--muted)}
.vs-vals i,.vs-lhead i,.vs-th i{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--vc);margin-right:6px;vertical-align:1px}
.vs-vals b{color:var(--ink);font-weight:700}

.vs-cost{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff}
.vs-cin{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.vs-cin label{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--muted)}
.vs-cin select,.vs-cin input{height:36px;border:1px solid var(--line);border-radius:9px;padding:0 10px;font:inherit;font-size:14px;color:var(--ink);background:#fff}
.vs-rate{display:inline-flex;align-items:center;gap:4px}.vs-rate input{width:76px}
.vs-crows{display:flex;flex-direction:column;gap:14px}
.vs-crh{display:flex;align-items:baseline;gap:8px}
.vs-crh b{font-size:15.5px}
.vs-crv{margin-left:auto;font-size:24px;font-weight:800;letter-spacing:-.03em}
.vs-crh small{color:var(--muted);font-size:13px}
.vs-cbar{height:12px;border-radius:6px;background:var(--surface);margin:6px 0 4px;overflow:hidden}
.vs-cbar i{display:block;height:100%;border-radius:6px;background:var(--vc);transition:width .25s}
.vs-crs{font-size:12.5px;color:var(--muted)}
.vs-cgap{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--hair);font-size:15px;color:var(--ink-2)}

.vs-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vs-rc{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}
.vs-rch{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.vs-rch b{font-size:16px}
.vs-rcg{display:flex;flex-direction:column;gap:6px}
.vs-g{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;border:1px solid transparent}
.vs-g:hover{background:var(--surface)}
.vs-g.lead{background:var(--vt);border-color:color-mix(in srgb,var(--vc) 30%,transparent)}
.vs-g .badge{width:40px;height:40px;font-size:19px;flex:none}
.vs-pct{width:40px;height:40px;border-radius:10px;background:var(--vc);color:#fff;font-weight:800;font-size:17px;display:grid;place-items:center;flex:none}
.vs-pct small{font-size:10px}
.vs-gt{display:flex;flex-direction:column;min-width:0}
.vs-gt b{font-size:14.5px;display:flex;align-items:center;gap:6px}
.vs-gt b::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--vc)}
.vs-gt small{font-size:12.5px;color:var(--muted);line-height:1.3}
.vs-h2h{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.vs-h2h > .sig-src{grid-column:1/-1;margin-top:0}
.vs-score{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#fff}
.vs-score .muted{grid-column:1/-1;margin:0}
.vs-sc{border-radius:12px;background:var(--vt);padding:10px 12px;display:flex;flex-direction:column}
.vs-sc b{font-size:34px;font-weight:800;letter-spacing:-.04em;color:var(--vc);line-height:1.05}
.vs-sc span{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.vs-lists{border:1px solid var(--line);border-radius:14px;background:#fff;padding:4px 14px}
.vs-li{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(120px,2fr) auto;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--hair)}
.vs-li:first-child{border-top:0}
.vs-li:hover .vs-lil b{color:var(--accent-ink)}
.vs-lil{display:flex;flex-direction:column;min-width:0}.vs-lil b{font-size:14px}.vs-lil small{font-size:12px;color:var(--muted)}
.vs-lir{display:flex;gap:8px;font-size:13px;font-weight:800}
.vs-lir span{color:var(--vc);min-width:34px;text-align:right}

.vs-life{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.vs-life.n3,.vs-life.n4{grid-template-columns:1fr}
.vs-bey{grid-template-columns:repeat(4,minmax(0,1fr))}
.vs-pairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.vs-pr{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s}
.vs-pr:hover{border-color:#c9ced7;box-shadow:0 6px 24px rgba(15,22,35,.07)}
.vs-prv{display:grid;grid-template-columns:1fr 1fr;height:130px;position:relative;background:var(--surface)}
.vs-prv > span{display:block;height:130px;overflow:hidden;min-width:0}
.vs-prv img{width:100%;height:100%;object-fit:cover}
.vs-prv .vs-ini{position:static;display:grid;height:100%;font-size:44px;background:var(--vt)}
.vs-prv em{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:999px;background:#fff;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px;color:var(--muted);box-shadow:0 2px 10px rgba(15,22,35,.2)}
.vs-prb{padding:12px 14px 14px}.vs-prb b{display:block;font-size:16px;letter-spacing:-.01em}.vs-prb small{font-size:13px;color:var(--muted)}
.vs-lg{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}
.vs-lgh{display:flex;align-items:center;gap:10px;margin-bottom:6px}.vs-lgh b{font-size:16px}
.vs-lhead,.vs-lr{display:grid;grid-template-columns:minmax(110px,1fr) repeat(var(--n,2),minmax(0,1fr));gap:8px;align-items:center}
.vs-lhead.n2,.vs-lr.n2{--n:2}.vs-lhead.n3,.vs-lr.n3{--n:3}.vs-lhead.n4,.vs-lr.n4{--n:4}
.vs-lhead{font-size:12px;font-weight:700;color:var(--muted);padding:4px 0 6px;border-bottom:1px solid var(--hair)}
.vs-lhead span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-lr{padding:7px 0;border-bottom:1px solid var(--hair);font-size:14px}
.vs-lr:last-child{border-bottom:0}
.vs-ll{color:var(--muted);font-size:13.5px}
.vs-lc{font-weight:600;font-variant-numeric:tabular-nums;position:relative;padding-left:14px}
.vs-lc.most::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-4px;border-radius:999px;background:var(--vc)}
.vs-lc:hover{color:var(--accent-ink)}
.vs-lc .faint{color:var(--faint);font-weight:400}

.vs-where{align-items:start}
.vs-map .vs-me{stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke;fill:var(--vc)}
.vs-map a:hover .vs-me{opacity:.85}
.vs-lbl{color:#fff!important;text-shadow:0 0 4px rgba(0,0,0,.35)!important}
.vs-shapes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vs-shape{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fafbfc;position:relative}
.vs-shape svg{width:100%;height:120px}
.vs-shape svg path{fill:var(--vc);stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.vs-shape .vs-ini{position:static;height:120px;font-size:48px}
.vs-shape b{font-size:15px;margin-top:6px}.vs-shape small{color:var(--muted);font-size:12.5px}
.vs-wlist{display:flex;flex-direction:column;gap:10px}
.vs-wr{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.vs-wr b{display:block;font-size:14.5px}.vs-wr small{font-size:13px;color:var(--muted)}
.vs-pair{display:flex;margin-top:4px}.vs-pair i{width:14px;height:14px;border-radius:999px;background:var(--vc);border:2px solid #fff}.vs-pair i+i{margin-left:-5px}
.vs-flows{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px}
.vs-fl{display:flex;flex-direction:column;gap:4px;font-size:14px}
.vs-fl small{color:var(--muted)}
.vs-flb{height:8px;border-radius:4px;background:var(--surface);overflow:hidden}.vs-flb i{display:block;height:100%;background:var(--vc);border-radius:4px}
.vs-flows .link{font-size:13.5px}

.vs-pri{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--accent-tint);border-color:transparent}
.vs-chips{display:flex;flex-wrap:wrap;gap:8px}
.vs-pc{height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(15,22,35,.12);background:#fff;font-weight:600;font-size:14px;color:var(--ink-2)}
.vs-pc:hover{border-color:var(--accent)}
.vs-pc[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.vs-pc[aria-pressed="true"]::before{content:"✓ "}
.vs-fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.vs-fit.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.vs-fit.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.vs-ft{background:#fff;border-radius:12px;padding:12px 14px;border-top:3px solid var(--vc)}
.vs-ft b{font-size:14.5px}
.vs-fn{font-size:30px;font-weight:800;letter-spacing:-.04em;color:var(--vc)}
.vs-fn small{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0}
.vs-ft ul{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.vs-fnote{grid-column:1/-1;margin:0;font-size:12.5px;color:var(--muted)}
.vs-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 10px}
.vs-tabs button{height:34px;min-width:0;padding:0 12px;font-size:13.5px;font-weight:600}
.vs-tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.vs-tog{display:flex;gap:14px;font-size:13.5px;color:var(--ink-2)}
.vs-tog label{display:flex;gap:6px;align-items:center;cursor:pointer}
.vs-tog input{accent-color:var(--accent)}
.vs-tbl{border:1px solid var(--line);border-radius:16px;background:#fff}
.vs-thd{border-radius:16px 16px 0 0}.vs-tbl > .vs-tg:last-child > :last-child{border-radius:0 0 16px 16px}
.vs-tr{display:grid;grid-template-columns:minmax(150px,1.1fr) repeat(var(--n),minmax(0,1fr));gap:14px;padding:12px 16px;border-top:1px solid var(--hair);align-items:start}
.vs-thd{position:sticky;top:var(--hdr);z-index:3;background:#fff;border-top:0;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;padding-top:12px;padding-bottom:12px}
.vs-th{display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-tg[hidden]{display:none}
.vs-tgh{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--surface);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line)}
.vs-tgh .ic{width:16px;height:16px;color:var(--accent-ink)}
.vs-mine .vs-tgh{background:var(--accent-tint);color:var(--accent-ink)}
.vs-tl{font-size:14px;font-weight:600;color:var(--ink-2)}
.vs-tl small{display:block;font-weight:400;font-size:12px;color:var(--muted)}
.vs-td{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px}
.vs-td.txt{color:var(--ink-2)}
.vs-td.none{color:var(--faint)}
a.vs-td:hover{color:var(--accent-ink)}
.vs-n{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px}
.vs-n b{font-size:16px;font-weight:700}
.vs-n small{color:var(--muted);font-size:12px}
.vs-moe{color:var(--faint)!important}
.vs-tag{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--surface);color:var(--muted)}
.vs-tag.hi{background:var(--vt);color:var(--vc)}
.vs-tag.fit{background:var(--accent);color:#fff}
.vs-td.is-fit .vs-n b{color:var(--accent-ink)}
.vs-bar{position:relative;height:6px;border-radius:3px;background:var(--surface)}
.vs-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--vc)}
.vs-bar em{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);opacity:.55}
.vs-rel{font-size:12px;color:var(--muted)}
.vs-close{display:flex;gap:8px;align-items:center;padding:8px 16px 10px;font-size:12.5px;color:var(--muted);background:#fbfbfc}
.vs-close .ic{width:15px;height:15px;color:var(--faint)}
.vs-tbl.no-bench .vs-bar em,.vs-tbl.no-bench .vs-rel{display:none}
.vs-tbl.diff-only .vs-tr[data-flat],.vs-tbl.diff-only .vs-close[data-flat]{display:none}
.vs-lgb{background:var(--ink)!important;width:2px!important;height:12px!important;opacity:.55}

.vs-talk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vs-talk.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.vs-talk.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
.vs-tk{border-top:4px solid var(--vc)}
.vs-tkh{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.vs-tkh b{font-size:16px}.vs-tkh .link{margin-left:auto;font-size:13px}
.vs-mh{font-size:15px;margin:18px 0 10px;color:var(--ink-2)}
.vs-mh:first-of-type{margin-top:0}
.vs-bey .bey-v .yr{background:var(--accent);color:#fff}
.vs-src{margin-top:32px}

@media (max-width:1100px){.vs-tiles.n4,.vs-tiles.n5,.vs-shine.n4,.vs-fit.n4{grid-template-columns:repeat(2,minmax(0,1fr))}.vs-cards{grid-template-columns:1fr 1fr}.vs-h2h{grid-template-columns:1fr}}
@media (max-width:900px){.vs-bey,.vs-pairs{grid-template-columns:1fr 1fr}.vs-tiles.n3,.vs-shine.n3,.vs-talk.n3,.vs-fit.n3{grid-template-columns:repeat(2,minmax(0,1fr))}.vs-diffs{grid-template-columns:1fr}}
@media (max-width:640px){
  .vs-hero h1{font-size:32px}.vs-lede{font-size:15.5px}
  .vs-tiles,.vs-tiles.n3,.vs-tiles.n4,.vs-tiles.n5{grid-template-columns:1fr 1fr;gap:10px}
  .vs-tv{height:110px}.vs-tb{padding:10px}.vs-tb b{font-size:15px}.vs-tb small.vs-tm{display:none}
  .vs-tiles .vs-add:nth-child(odd){grid-column:1/-1}
  .vs-find{padding:16px 12px}
  .vs-shine,.vs-shine.n3,.vs-shine.n4,.vs-talk,.vs-talk.n3,.vs-talk.n4,.vs-cards{grid-template-columns:1fr}
  .vs-li{grid-template-columns:1fr auto;gap:6px 10px}.vs-li .vs-strip{grid-column:1/-1;grid-row:2}
  .vs-tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:12px}
  .vs-tr .vs-tl{grid-column:1/-1}
  .vs-thd .vs-tl{display:none}
  .vs-td::before{content:attr(data-town);font-size:11px;font-weight:700;color:var(--vc);text-transform:uppercase;letter-spacing:.04em}
  .vs-thd{display:none}
  .vs-tog{flex-direction:column;gap:6px}
  .vs-lhead,.vs-lr{grid-template-columns:minmax(86px,1fr) repeat(var(--n,2),minmax(0,1fr));gap:6px;font-size:13px}
  .vs-shapes{grid-template-columns:1fr 1fr}
}

/* ---------- Cutover (2026-10-02): the woven TownTapestry logo in the header, and the one-line form message under it (leanFlash) ---------- */
.logo .mk:has(.wv){background:none}
.logo .mk .wv{width:30px;height:30px}
.tt-flash{display:flex;align-items:center;gap:10px;max-width:760px;margin:12px auto 0;padding:12px 16px;border-radius:12px;background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:14.5px}
.tt-flash.err{background:#fdecec;color:#9b1c1c}
.tt-flash .ic{width:18px;height:18px;flex:none}
@media (max-width:640px){.tt-flash{margin:10px 16px 0}}

/* ---------- National rankings (app/pages/rankus.php): /rankings + /rankings/<list>; reuses the rks-* / rkl-* state-ranking styles ---------- */
.rku-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:24px;align-items:start}
.rku-sts li a{grid-template-columns:minmax(0,1fr) auto}
.rku-sts em{color:var(--muted);font-weight:600}
.rku-states a{min-width:0;padding:0 12px;font-weight:600}
.rku-nf h1{font-size:36px;letter-spacing:-.03em;margin:6px 0 10px}
.rku-nf p{color:var(--ink-2);font-size:16px;max-width:640px;margin:0 0 10px}
.rks-hin .rk-row .rkl-sbtn{height:34px}
@media (max-width:1000px){.rku-wrap{grid-template-columns:1fr}}
@media (max-width:640px){.rku-nf h1{font-size:28px}}
