:root{
  --ink:#111; --muted:#555; --line:#e3e3e3; --bg:#fff;
  --open:#16a34a; --pilot:#f59e0b; --accent:#e8590c;
  --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
header.site{border-bottom:1px solid var(--line);background:#fff}
.brand{display:flex;align-items:baseline;gap:12px;padding:14px 0}
.brand .logo{font-weight:800;font-size:22px;letter-spacing:-.5px}
.brand .logo a{color:var(--ink)}
.brand .tag{color:var(--muted);font-size:13px;background:none;border-radius:0;border:0;padding:0;font-weight:400;line-height:1.3;white-space:normal}
nav.main{margin-left:auto;display:flex;gap:16px;font-size:15px}
nav.main a{color:var(--ink);font-weight:600}
nav.main a:hover{color:var(--accent)}
nav.main a.navon{color:var(--accent);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.hero{padding:34px 0 22px}
.hero h1{font-size:34px;margin:0 0 8px;letter-spacing:-.6px}
.hero p{color:var(--muted);max-width:640px;margin:0}
.mapcard{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
#map{height:430px;background:#eee}
.legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border:1.5px solid var(--line);
  border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;background:#fff;user-select:none}
.chip .sw{width:12px;height:12px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1.5px #ccc}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip.on .sw{box-shadow:0 0 0 1.5px #fff}
.chip .sw.g{background:var(--open)} .chip .sw.o{background:var(--pilot)} .chip .sw.a{background:var(--accent)}
.swing{transform:rotate(45deg);border-radius:3px 50% 50% 50%;width:13px;height:13px}
.chip .sw.d{background:#fff;border:2px solid var(--ink);box-shadow:none}
.chip .sw.m{background:#7c3aed}
.counts{font-size:13px;color:var(--muted);padding:2px 14px 10px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;margin:16px 0 10px}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff}
.card h3{margin:0 0 4px;font-size:18px}
.card .sub{color:var(--muted);font-size:13.5px;margin-bottom:8px}
.badge{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;margin-right:6px}
.badge.open{background:#e6f4ea;color:var(--open)} .badge.pilot{background:#fdf1dd;color:#b45309}
.badge.metro{background:#eee;color:#555}
.facts{font-size:13px;color:var(--muted);margin:6px 0 10px}
.facts span{display:inline-block;margin-right:12px}
.ai{display:flex;flex-wrap:wrap;gap:6px}
.ai i{font-style:normal;font-size:12px;color:#444;background:#f2f2f2;border:1px solid var(--line);border-radius:999px;padding:2px 9px}
.btn{display:inline-block;background:var(--ink);color:#fff;border:0;padding:9px 16px;border-radius:8px;
  font-weight:700;font-size:14px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--accent);text-decoration:none}
.btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--ink)}
.prose{max-width:760px}
.prose h2{margin-top:26px;letter-spacing:-.3px}
.prose ul{line-height:1.7}
.prose .note{background:#fff8e6;border:1px solid #f0e2b0;border-radius:8px;padding:12px 14px;font-size:14px}
.prose .ok{color:var(--open)}
table.am{padding-top:14px;font-size:14px}
table.am td{padding:6px 18px 6px 0;border-bottom:1px solid var(--line)}
table.am .y{color:var(--open);font-weight:700}
table.am .n{color:#c0392b;font-weight:700}
table.am .u{color:var(--muted)}
.rev{border-bottom:1px solid var(--line);padding:12px 0}
.rev .who{font-weight:700;font-size:14px}
.rev .when{color:var(--muted);font-size:12.5px}
.stars{color:var(--accent);letter-spacing:1px}
.rev .txt{margin-top:4px;font-size:14.5px}
form.review{display:grid;gap:10px;margin-top:12px;max-width:560px}
form.review input,form.review textarea{font:inherit;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px}
form.review textarea{min-height:90px}
form.review .row{display:flex;gap:10px}
form.review .row>*{flex:1}
.foot{border-top:1px solid var(--line);margin-top:44px;padding:20px 0 30px;color:var(--muted);font-size:13.5px}
.ad-slot{margin:22px auto;text-align:center;background:#fafafa;border:1px dashed var(--line);border-radius:8px;
  color:#888;font-size:12px;padding:22px;max-width:728px}
.exit{color:var(--muted);font-size:13px}
.leaflet-container{outline:none}
.pin{display:flex;align-items:flex-end;font-weight:800;color:#fff}
.leaflet-popup-content{font-size:14px}
dd{font-size:12px}
.pin-wrap{background:transparent;border:none}
.pin-wrap svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
.brand img.logo-img{max-width:240px;height:auto;display:block;margin-bottom:2px}
.site{padding:14px 18px 10px;border-bottom:1px solid var(--line);background:#fff}
@media(max-width:560px){ .brand img.logo-img{max-width:180px} }
.hero{padding:6px 0 2px}
.hero h1{font-size:clamp(20px,3.2vw,30px);margin:8px 0 4px;font-weight:800;letter-spacing:-.01em}
.hero p{margin:0 0 8px;color:var(--muted)}
.hero .stats{display:inline-flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}
.site-banner{background:var(--accent);color:#fff;padding:8px 14px;font-size:14px}
.site-banner.warn{background:#c0392b}
.site-banner a{color:#fff;text-decoration:underline}
.site-banner .bw{max-width:1100px;margin:0 auto;display:flex;gap:10px;align-items:center;line-height:1.35}
.site-banner .ico{font-weight:800}
.site-banner .bt{flex:1}
.site-banner .x{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1;padding:0 2px}

/* Dog-bone favorites ("my treat bag") + bone ratings */
.card{position:relative}
.card.fav{background:#fff5ec}
.bonebtn{background:none;border:none;cursor:pointer;color:var(--muted);line-height:0;padding:5px;border-radius:8px;vertical-align:middle}
.bonebtn:hover{background:rgba(0,0,0,.06)}
.bonebtn.on{color:var(--accent)}
.card .bonebtn{position:absolute;top:8px;right:8px}
.chip.treats{font-weight:700}
.chip.treats .fcount{display:inline-block;min-width:22px;text-align:center;margin:0 3px 0 2px;border-radius:999px;background:rgba(0,0,0,.08);padding:0 4px;font-size:12px;line-height:16px}
.stars{color:var(--accent);display:inline-flex;gap:1px;align-items:center}
.stars .empty{color:#ccc}
.leaflet-popup-content .bonebtn{display:inline-block;margin-right:10px}

/* ===== Events calendar page ===== */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border:1.5px solid var(--line);
  background:#fff;border-radius:999px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink)}
.chip:hover{border-color:var(--accent)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cals{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-bottom:28px}
.cmonth{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px}
.cmonth h3{margin:0 0 12px;font-size:17px}
.cmcal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cmwd{font-size:11px;text-align:center;color:var(--muted);font-weight:700;padding:2px 0}
.cmday{position:relative;min-height:56px;border-radius:8px;border:1px solid var(--line);padding:4px 4px 6px;background:#fff}
.cmday.past{opacity:.35}
.cmday.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.cmn{font-size:12px;font-weight:700;color:var(--ink);display:block;padding-left:3px}
.cmdots{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px;padding-left:3px}
.cmdots i{width:8px;height:8px;border-radius:50%;display:inline-block}
.cmcnt{position:absolute;top:2px;right:3px;font-size:9px;font-weight:800;color:var(--muted)}
.lst-m{margin:8px 0 10px;font-size:18px;border-bottom:2px solid var(--ink);padding-bottom:6px}
.ev-card{display:flex;gap:14px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
.ev-date{flex:0 0 150px;font-size:13px;font-weight:700;color:var(--accent);line-height:1.4}
.ev-date .tag{margin-top:5px}
.ev-body h4{margin:0 0 3px;font-size:17px}
.ev-meta{color:var(--muted);font-size:13px;margin-bottom:6px}
.ev-desc{font-size:14px;margin-bottom:8px}
.ev-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tag{display:inline-block;background:var(--ink);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px}
.tag.ghost{background:#efefef;color:var(--ink)}
.tag.rec{background:#7048e8}
.ev-foot .more{margin-left:auto;color:var(--accent);font-weight:700;font-size:13px}
.addr-placeholder{color:var(--muted)}

/* ===== Admin control panel ===== */
body.admin{background:#fafafa}
.admin-login,.admin-wrap{max-width:960px;margin:30px auto;padding:0 16px}
.admin-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:22px}
.admin-card h2{margin:0 0 6px;font-size:20px}
.admin-card .sub{color:var(--muted);font-size:13px;margin-bottom:14px}
.admin-card .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin-card input[type=password],.admin-card input[type=text]{font:inherit;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;flex:1;min-width:200px}
.btn.danger{background:#c0392b}
.btn.small{padding:5px 11px;font-size:13px}
.panel{margin-top:18px}
.panel h3{font-size:16px;margin:0 0 4px}
.panel .stat{font-size:13px;color:var(--muted);margin-bottom:10px}
.item{border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:10px;background:#fff;display:flex;gap:10px;justify-content:space-between;align-items:flex-start}
.item .grow{flex:1}
.item .ttl{font-weight:700;font-size:14px}
.item .sub{color:var(--muted);font-size:12px;margin-top:2px;white-space:pre-wrap}
.item .acts{display:flex;gap:6px;flex-shrink:0}
.empty{color:var(--muted);font-style:italic;padding:8px 2px}
.msg{padding:10px 12px;border-radius:8px;font-size:13px;margin:10px 0;display:none}
.msg.show{display:block}
.msg.ok{background:#e6f4ea;color:#1e7e34}
.msg.err{background:#fdecea;color:#c0392b}
.admin-foot{text-align:center;color:var(--muted);font-size:12px;padding:30px 0 20px}

/* ===== Park page: directions + nearby ===== */
.dirrow{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.nwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.wx{background:#f7f7f4;border:1px solid #ddd;border-left:4px solid #4a8f4a;border-radius:8px;padding:12px 14px;margin:10px 0}
.wx .wxt{font-weight:700}
.wx .wxw{color:#8a5a00;font-weight:600}
.wx .wx.paw{margin-top:2px}
.wx .coldrisk{display:block;margin-top:8px;font-weight:700;color:#0b4f70;background:#eef3fb;border-left:3px solid #7aa4cf;padding:7px 10px;border-radius:0 8px 8px 0;font-size:14px}
.wxin[data-cold="1"]{border-color:#b8c4d8}
.wx .paw{display:block;margin-top:4px}
.wx.hot{border-left-color:#c00;background:#fff5f5}
.wx.hot .paw{color:#a00;font-weight:600}
.geo{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.geo .geo-out{font-size:13px;color:#333}
.geo .geo-out a{color:#1a7ac4;font-weight:600}
.geo .geo-out.ok{color:#2a7d2a}
.geo .geo-out.err{color:#c00}
.nblock{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px}
.nblock h3{margin:0 0 8px;font-size:14px}
.nblock ul{list-style:none;margin:0;padding:0}
.nblock li{display:flex;align-items:center;gap:8px;font-size:13.5px;padding:5px 0;border-bottom:1px dashed var(--line)}
.nblock li:last-child{border-bottom:0}
.nblock li.em{background:#fff7e6;border:1px solid #f0c24b;border-radius:8px;padding:7px 9px;margin-top:6px}
.nblock .nm{font-weight:600;flex:1;min-width:0}
.nblock .tag2{font-size:11px;color:var(--muted);background:#f1f1f1;border-radius:999px;padding:2px 8px;white-space:nowrap}
.nblock .dst{font-size:12px;color:var(--accent);font-weight:700;white-space:nowrap}
.nblock .m{font-size:12px;color:var(--accent);text-decoration:none;white-space:nowrap}
.nblock .exit{font-size:12px;color:var(--muted);margin:8px 0 0}




/* Play-date profile card line */
.ev-dog{font-size:.85rem;color:#222;background:#f4efe6;border:1px solid #e6dcc6;border-radius:8px;padding:4px 8px;margin:2px 0 6px}
.ev-dog .tag{font-size:.72rem}
.ev-dog b{margin-right:2px}

/* --- Doggo (dating) --- */
.dg-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px}
.dg-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.dg-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}
.dg-card-head b{font-size:17px}
.dg-facts{font-size:14px;font-weight:600;margin:2px 0}
.dg-tags{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.dg-actions{display:flex;gap:8px;flex-wrap:wrap}
.dg-actions .btn{font-size:13.5px;padding:7px 14px}
.btn-active{background:#16a34a}
.ghost-btn{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.ghost-btn:hover{background:#faf7f0}
.pawed-you{background:#16a34a}
.match-tag{background:var(--accent)}
.unread-tag{background:#c0392b}
.dg-count{color:var(--muted);font-size:12px}
.dg-chatbox{max-width:680px;padding:0}
.dg-chat-head{border-bottom:1px solid var(--line);padding:14px 18px;font-weight:700}
.dg-chat-msgs{min-height:180px;max-height:46vh;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.dg-msg{max-width:80%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.35;white-space:pre-wrap}
.dg-msg.theirs{background:#f2efe8;align-self:flex-start;border-bottom-left-radius:4px}
.dg-msg.mine{background:var(--ink);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.dg-compose{display:flex;gap:8px;border-top:1px solid var(--line);padding:12px 14px}
.dg-compose input{flex:1;border:1.5px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px}
.dg-compose .btn{white-space:nowrap}
.tab{padding-top:6px}

/* --- Park-condition status / pack tip / vote / report (per-park page) --- */
.statusrow{margin:8px 0 2px;padding:8px 11px;border:1px solid #b8c4d8;border-left:3px solid #0b4f70;border-radius:0 8px 8px 0;background:#eef3fb;font-size:14.5px;font-weight:700;color:#0b4f70;line-height:1.4}
.statusrow .exit{font-weight:400;color:#33475f}
#visitbox{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.packtip{font-size:14px;color:#222;background:#f7f3ea;border:1px solid #e6dcc6;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:8px 11px}
.packtip a{font-weight:700}
.voterow{display:flex;align-items:center;gap:8px}
.voterow .exit{margin:0}
.reportbox{border:1px solid var(--line);border-radius:10px;background:#fff}
.reportbox summary{cursor:pointer;padding:9px 12px;font-weight:700;font-size:14px;list-style:none}
.reportbox summary::-webkit-details-marker{display:none}
.report{padding:4px 12px 12px;display:flex;flex-direction:column;gap:8px}
.report .sub{margin:0}
.dirrow{display:flex;gap:8px;flex-wrap:wrap}
.dirrow .btn{border:1.5px solid var(--line);background:#fff;color:var(--ink)}
.dirrow .btn.picked{background:var(--ink);color:#fff;border-color:var(--ink)}
.reportnote{display:flex;gap:8px}
.reportnote input{flex:1;border:1.5px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px;min-width:0}
.reportnote .btn{white-space:nowrap}

/* --- Guide cards (static "Best for" / city / most-loved) --- */
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:6px}
.ggcard{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px}
.ggcard h3{margin:0 0 2px}
.ggcard h3 a{color:var(--ink)}
.ggcard .sub{color:var(--muted);font-size:13px;margin-bottom:8px}
.ggols{font-size:13.5px;color:var(--muted);margin-top:8px}
.pg{font-size:15px;color:var(--muted);margin:10px 0}
.lovemini .stat{font-weight:800;color:var(--accent)}
.lovemini .exit{margin:0}

/* --- Sponsor card (local businesses) --- */
.sponsor{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}
.sponsor h3{margin:0 0 2px}
.sponsor .exit{margin:6px 0 0}

/* --- Index: search + most-loved widget + guide link cards --- */
.searchlabel{display:block;font-weight:700;font-size:15px;margin:14px 0 8px}
.searchlabel input{display:block;width:100%;max-width:520px;margin-top:6px;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;font-size:15px}
.card.link{display:block;color:var(--ink);transition:.12s}
.card.link:hover{border-color:var(--ink);text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.ml{position:relative}
.ml-rank{position:absolute;top:14px;right:16px;font-weight:800;color:var(--muted);font-size:22px;opacity:.5}
.ml-bar{height:6px;border-radius:999px;background:#ececec;overflow:hidden;margin:8px 0 4px}
.ml-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.ml h3{margin-right:34px}

/* --- Dark mode (data-theme="dark" is set by _theme.js before first paint) --- */
[data-theme="dark"]{ --ink:#e8e8e8; --muted:#94a3b8; --line:#2f3640; --bg:#0f1419; --accent:#ff8a5c; --open:#49b06b; --pilot:#ffc04d }
[data-theme="dark"] html,[data-theme="dark"] body{ background:#0f1419; color:#e8e8e8 }
[data-theme="dark"] header.site{ background:#0f1419 }
[data-theme="dark"] header.site .brand .logo a{ color:#e8e8e8 }
[data-theme="dark"] nav.main a{ color:#e8e8e8 }
[data-theme="dark"] .card,[data-theme="dark"] .mapcard,[data-theme="dark"] .legend,[data-theme="dark"] .chip,
[data-theme="dark"] .note,[data-theme="dark"] .ad-slot,[data-theme="dark"] .reportbox,[data-theme="dark"] .sponsor,
[data-theme="dark"] .ggcard,[data-theme="dark"] .dg-card,[data-theme="dark"] .dg-chatbox,
[data-theme="dark"] .statcard,[data-theme="dark"] .pagecard,[data-theme="dark"] .skim{
  background:#171d26; color:#e8e8e8; border-color:#2f3640 }
[data-theme="dark"] #map{ background:#1a212b }
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4{ color:#f2f2f2 }
[data-theme="dark"] .ggcard h3 a{ color:#f2f2f2 }
[data-theme="dark"] .sub,[data-theme="dark"] .exit,[data-theme="dark"] .counts,[data-theme="dark"] .dg-tags,
[data-theme="dark"] .facts,[data-theme="dark"] .ml-rank{ color:#94a3b8 }
[data-theme="dark"] a{ color:#ff8a5c }
[data-theme="dark"] input,[data-theme="dark"] textarea,[data-theme="dark"] select,[data-theme="dark"] .reportnote input,
[data-theme="dark"] .dg-compose input,[data-theme="dark"] .searchlabel input{
  background:#10151c; color:#e8e8e8; border-color:#2f3640 }
[data-theme="dark"] .chip{ background:#171d26; color:#e8e8e8 }
[data-theme="dark"] .chip.on{ background:#e8e8e8; color:#0f1419; border-color:#e8e8e8 }
[data-theme="dark"] .ghost-btn{ background:#171d26; color:#e8e8e8; border-color:#2f3640 }
[data-theme="dark"] .ghost-btn:hover{ background:#202936 }
[data-theme="dark"] .statusrow{ background:#10141c; color:#8fc3ff; border-color:#2f3640 }
[data-theme="dark"] .statusrow .exit{ color:#94a3b8 }
[data-theme="dark"] .packtip{ background:#201a10; color:#f0e8d8; border-color:#5a4524 }
[data-theme="dark"] .dg-msg.theirs{ background:#232a35; color:#e8e8e8 }
[data-theme="dark"] .dg-msg.mine{ background:#ff8a5c; color:#111 }
[data-theme="dark"] .badge.open{ background:#12351f; color:#49b06b }
[data-theme="dark"] .badge.pilot{ background:#3a2c06; color:#ffc04d }
[data-theme="dark"] .badge.metro{ background:#272e3a; color:#b8c4d8 }
[data-theme="dark"] .ml-bar{ background:#232a35 }
[data-theme="dark"] .ev-dog{ background:#2a2418; border-color:#54401f; color:#f0e8d8 }
[data-theme="dark"] footer.foot{ background:#0d1117; color:#94a3b8 }
[data-theme="dark"] .dirrow .btn{ background:#171d26; color:#e8e8e8; border-color:#2f3640 }
[data-theme="dark"] .dirrow .btn.picked{ background:#e8e8e8; color:#0f1419; border-color:#e8e8e8 }

/* --- Print: clean pack-list / checklist sheets --- */
@media print{
  header.site, footer.foot, .ad-slot, #print-btn, nav.main, .exit a, .note,
  .statusrow, .voterow, .report, .dg-actions, .dg-bar{ display:none !important }
  body{ background:#fff; color:#111; font-size:13px }
  .wrap{ max-width:100% }
  a{ color:#111; text-decoration:none }
  .card{ break-inside:avoid }
}
/* --- Mission control (admin) --- */
.mstat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:6px 0 16px}
.mtile{background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:12px 10px;text-align:center}
.mtile-n{font-size:26px;font-weight:800;line-height:1;color:var(--ink)}
.mtile-l{font-size:12px;color:var(--muted);margin-top:5px}
.mtwo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:6px}
@media(max-width:640px){.mtwo{grid-template-columns:1fr}}
.msub{border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--bg)}
.msub h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.4px}
.mbar{display:flex;align-items:center;gap:8px;font-size:12px;padding:2px 0}
.mbar-l{flex:0 0 130px;color:var(--ink)}
.mbar-t{flex:1;height:10px;background:var(--line);border-radius:999px;overflow:hidden}
.mbar-f{height:100%;background:var(--accent,var(--ink))}
.mbar-v{flex:0 0 46px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.cline{font-size:13px;padding:3px 0}
.cline.sub{color:var(--muted)}
/* Dark-mode admin panels (admin.html is noindex but still theme-aware) */
[data-theme="dark"] body.admin,[data-theme="dark"] .admin-foot{background:#0f1419}
[data-theme="dark"] .admin-card,[data-theme="dark"] .panel,[data-theme="dark"] .msub,[data-theme="dark"] .mtile{background:#171d26;border-color:#2f3640}
[data-theme="dark"] .admin-card input,[data-theme="dark"] .admin-card select,[data-theme="dark"] .panel input,[data-theme="dark"] .panel select{background:#0f1419;color:#e8e8e8;border-color:#2f3640}

/* --- Dark-mode Leaflet map + popups (U8) --- */
[data-theme="dark"] .leaflet-container{background:#171d26}
[data-theme="dark"] .leaflet-tile{filter:invert(100%) hue-rotate(180deg) brightness(.9) contrast(.9) saturate(.55)}
[data-theme="dark"] .leaflet-popup-content-wrapper,
[data-theme="dark"] .leaflet-popup-tip{background:#171d26;color:var(--ink)}
[data-theme="dark"] .leaflet-popup-content-wrapper a{color:#7cc}
[data-theme="dark"] .leaflet-control-zoom a{background:#171d26;color:var(--ink);border-color:#2f3640}
[data-theme="dark"] .leaflet-control-zoom a:hover{background:#2a323d}
[data-theme="dark"] .leaflet-control-attribution{background:rgba(23,29,38,.85);color:#9aa}
[data-theme="dark"] .leaflet-control-attribution a{color:#7cc}

/* --- Mobile header: stack logo/tagline, wrap nav into rows --- */
@media(max-width:720px){
  header.site .wrap.brand{ flex-wrap:wrap; align-items:center; gap:6px 14px; padding:12px 0 14px }
  header.site .brand img.logo-img{ max-width:150px }
  .brand .tag{ flex-basis:100%; order:1; font-size:14px; line-height:1.25;
               color:var(--ink); opacity:.8; letter-spacing:.1px; margin-top:2px }
  nav.main{ order:99; margin-left:0; width:100%; flex-wrap:wrap; gap:9px 18px;
            font-size:14px; line-height:1.1; padding-top:11px; margin-top:7px;
            border-top:1px solid var(--line) }
  nav.main a{ padding:5px 0 }
}

/* park photos (Wikimedia Commons, credited) */
.park-photo{margin:1.4rem 0 .6rem;border:1px solid var(--line,#ddd);background:var(--card,#fff);max-width:100%}
.park-photo img{display:block;width:100%;height:auto}
.park-photo figcaption{font-size:12px;line-height:1.5;color:var(--muted);padding:.45rem .7rem;border-top:1px solid var(--line,#ddd)}
.park-photo figcaption a{color:var(--muted);text-decoration:underline}
.park-photo figcaption a:hover{color:var(--ink,#000)}
.park-photo .photosrc{white-space:normal}

/* Doggo meetups poster banner (user brand art) */
.doggo-poster{margin:0 auto 1.3rem;max-width:620px;border:1px solid var(--line,#ddd);border-radius:var(--radius);overflow:hidden;background:var(--card,#fff)}
.doggo-poster img{display:block;width:100%;height:auto}

/* Page hero artwork (user brand art — e.g. the passport passbook mockup).
   Generic so any static page can drop a hero figure.page-art; clone-safe. */
.page-art{margin:0 auto 1.5rem;max-width:560px;border:1px solid var(--line,#ddd);border-radius:var(--radius);overflow:hidden;background:var(--card,#fff)}
.page-art img{display:block;width:100%;height:auto}
.brand .logo-img{max-height:66px;width:auto}
