:root{--bg:#fff8f0;--ink:#2b1d14;--accent:#d9480f;--accent2:#f59f00;--card:#fff;--line:#f0dcc8;--muted:#7a6656}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}
.bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding-top:10px;padding-bottom:10px}
.logo{font-weight:800;font-size:1.2rem;text-decoration:none;color:var(--ink)}.logo span{color:var(--accent)}
nav a{margin-left:14px;text-decoration:none;color:var(--ink);font-weight:600}nav a.on,nav a:hover{color:var(--accent)}
.hero{background:linear-gradient(135deg,#ffe8cc,#ffd8a8);padding:48px 0}.hero.small{padding:28px 0}
.hero h1{font-size:clamp(1.7rem,5vw,2.8rem);margin:0 0 10px;line-height:1.15}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:999px;padding:9px 18px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn[disabled]{opacity:.55;cursor:not-allowed}
h2{margin:32px 0 12px}.muted{color:var(--muted)}.small{font-size:.85rem}.pad{padding:12px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
input,select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}
#q{flex:2 1 220px}.filters select{flex:1 1 140px}
.wrap.wide{max-width:1400px}
.split{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:14px;align-items:start}
#mapbox{height:calc(100vh - 110px);min-height:480px;max-height:820px;border-radius:14px;border:1px solid var(--line);position:sticky;top:76px}
.list{list-style:none;margin:0;padding:0;height:calc(100vh - 110px);min-height:480px;max-height:820px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;position:sticky;top:76px}
.list li button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 12px;font:inherit;cursor:pointer}
.list li button:hover,.list li button:focus{background:#fff4e6}.list li span{display:block;color:var(--muted);font-size:.85rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:12px 0}
.deal{border:2px dashed var(--accent2)}.tag{display:inline-block;background:var(--accent2);color:#2b1d14;border-radius:6px;padding:1px 8px;font-size:.75rem;font-weight:800;vertical-align:middle}
.tag.soon{background:#e9ecef}.tag.warn{background:#ffe3e3;color:#c92a2a}
.todo{background:#fff3bf;padding:1px 6px;border-radius:4px}
.signup{display:flex;gap:8px;flex-wrap:wrap}.signup input{flex:1 1 220px}
table{border-collapse:collapse;width:100%;background:#fff}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#fff4e6}.rank{display:table}
.foot{background:#2b1d14;color:#f3e3d3;margin-top:40px;padding:24px 0;font-size:.9rem}.foot a{color:#ffc078}
@media(max-width:900px){.split{grid-template-columns:1fr}#mapbox{position:relative;top:0;height:420px;min-height:0}.list{position:static;height:auto;max-height:420px;min-height:0}}
@media(max-width:760px){.hide-s{display:none}nav a{margin-left:10px}}
.chk{display:flex;align-items:center;gap:6px;font-weight:600}.chk input{min-width:auto}
.src{font-size:.78rem;color:#7a6656}
.leaflet-popup-content em{display:block;margin-top:2px}
.draft-badge{display:inline-block;background:#c92a2a;color:#fff;border-radius:8px;padding:2px 14px;font-size:.5em;letter-spacing:.12em;vertical-align:middle;box-shadow:0 2px 0 #8f1d1d}
.sub{font-size:.8rem;color:var(--muted);display:none}@media(max-width:760px){.sub{display:block}}
.tagline{display:block;font-size:.72rem;font-weight:500;color:var(--muted);letter-spacing:.02em}
.logo{line-height:1.1}.lead{font-size:1.2rem;margin:0 0 10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:760px){.grid2{grid-template-columns:1fr}}
.foot-signup{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #4a372a}.foot-signup .signup{margin-top:6px}
.foot .muted{color:#d8c3ae}

.pin-wrap{background:none;border:0}.pin{display:block;width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);margin:2px;transition:transform .12s}
.pin.active,.pin-wrap.hl .pin{transform:rotate(-45deg) scale(1.45);box-shadow:0 0 0 3px rgba(43,29,20,.45)}.pin-wrap.hl{z-index:9999!important}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font:inherit;font-size:.82rem;cursor:pointer}
.chip i,.list .dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none}.chip.off{opacity:.45;text-decoration:line-through}.chip small{color:var(--muted)}
.list li button .dot{margin-right:6px;vertical-align:baseline}.list li button.on{background:#ffe8cc;box-shadow:inset 3px 0 0 var(--accent)}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:rgba(217,72,15,.25)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background-color:rgba(217,72,15,.85);color:#fff;font-weight:700}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media(max-width:760px){.grid3{grid-template-columns:1fr}}
.teaser{display:block;text-decoration:none;color:var(--ink)}.teaser:hover{border-color:var(--accent)}.teaser h3{margin:6px 0}.teaser p{margin:0;color:var(--muted)}
.lead2{font-size:1.1rem;margin:0 0 6px;font-weight:600}.notice{background:#fff3bf;border-left:4px solid var(--accent2);padding:8px 12px;border-radius:6px}
.trail-split{margin-top:8px}#trailmap{height:calc(100vh - 110px);min-height:480px;max-height:820px;border-radius:14px;border:1px solid var(--line);position:sticky;top:76px}
.trail-list{height:calc(100vh - 110px);min-height:480px;max-height:820px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 0}
.grp{margin:10px 12px 4px;font-size:.95rem;color:var(--accent)}.stops{list-style:none;margin:0;padding:0}
.stops li button{display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 12px;font:inherit;cursor:pointer}.stops li button:hover{background:#fff4e6}
.st{display:flex;flex-direction:column;min-width:0}.st>span{color:var(--muted);font-size:.85rem}.st .blurb{color:var(--ink)}
.num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;font-size:.8rem;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45)}.num.sm{flex:none;width:26px;height:26px}
.guide{margin:24px 0}.glist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.gitem{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.gitem span{color:var(--muted);font-size:.88rem}.empty{border-style:dashed}
@media(max-width:900px){#trailmap{position:relative;top:0;height:420px;min-height:0}.trail-list{height:auto;max-height:480px;min-height:0}}
