:root{--bg:#111;--fg:#f3f1ec;--mut:#9b978f;--acc:#ff3d2e;--card:#1c1c1c;--ok:#35c46b;--warn:#f5b301}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.top{display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;border-bottom:2px solid var(--acc);position:sticky;top:0;background:var(--bg);z-index:5}
.logo{letter-spacing:.12em;color:var(--acc);display:block}
.sub{font-size:12px;color:var(--mut)}
.demo{font-size:12px;border:1px dashed var(--mut);padding:4px 8px;border-radius:14px;color:var(--mut)}
main{padding:10px 12px 90px;max-width:640px;margin:auto}
.tab{display:none}.tab.active{display:block}
.card{background:var(--card);border-radius:12px;padding:12px 14px;margin:10px 0}
h2{margin:0 0 6px;font-size:18px}.sec{margin:18px 2px 6px;font-size:17px;color:var(--acc);text-transform:uppercase;letter-spacing:.06em}
.muted{color:var(--mut);font-size:13px}.pad{padding:0 4px}
button{font:inherit;color:var(--fg);background:#2a2a2a;border:1px solid #3a3a3a;border-radius:10px;padding:10px 14px;min-height:44px}
button.primary{background:var(--acc);border-color:var(--acc);color:#111;font-weight:700}
button.ghost{background:transparent}
.row{display:flex;gap:8px;margin:8px 0}
select{width:100%;min-height:44px;background:#2a2a2a;color:var(--fg);border:1px solid #3a3a3a;border-radius:10px;padding:8px;font:inherit}
.lbl{display:block;margin-top:8px;font-size:13px;color:var(--mut)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.chips button.on{background:var(--acc);color:#111;border-color:var(--acc);font-weight:700}
.chips.small button{padding:6px 10px;min-height:34px;font-size:13px}
input[type=range]{width:100%;accent-color:var(--acc);height:36px}
.chk{display:block;margin-top:8px;font-size:14px}
.place{background:var(--card);border-radius:12px;padding:12px 14px;margin:8px 0;border-left:4px solid #444}
.place.open{border-left-color:var(--ok)}.place.unk{border-left-color:var(--warn)}
.place h3{margin:0;font-size:17px}.meta{font-size:13px;color:var(--mut);margin:2px 0 6px}
.badge{display:inline-block;font-size:11px;border-radius:8px;padding:1px 7px;margin-right:4px;background:#333}
.badge.open{background:var(--ok);color:#111}.badge.closed{background:#7a2b25}.badge.unk{background:var(--warn);color:#111}.badge.ver{background:#2c4a8a}.badge.nover{background:#444}
.place p{margin:4px 0}
.why{font-size:12px;color:var(--mut)}
.locked{position:relative;filter:blur(0);opacity:.85;border-left-color:var(--acc)}
.lock{background:#2a1512;border:1px solid var(--acc);border-radius:12px;padding:12px;margin:8px 0;text-align:center}
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0b0b0b;border-top:1px solid #333;padding-bottom:env(safe-area-inset-bottom);z-index:6}
.tabs button{flex:1;border:0;border-radius:0;background:none;min-height:54px}
.tabs button.on{color:var(--acc);font-weight:700}
#map{height:62vh;border-radius:12px;margin-top:10px}
.sheet{position:fixed;left:0;right:0;bottom:54px;max-height:70vh;overflow:auto;background:#222;border-top:2px solid var(--acc);padding:14px;z-index:7;border-radius:14px 14px 0 0}
.safety{border:1px solid var(--warn)}
a{color:#7fb4ff}
.step{display:flex;gap:8px;align-items:baseline}.step b{color:var(--acc);min-width:60px}

.row.wrap{flex-wrap:wrap}.btn{display:inline-block;padding:11px 14px;min-height:44px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:10px;color:var(--fg);text-decoration:none}
.h3{margin:12px 0 4px;font-size:15px;color:var(--acc);text-transform:uppercase;letter-spacing:.05em}
.gt{padding-left:0;list-style:none;margin:4px 0}.gt li{margin:4px 0;font-size:14px}
.uw-pin{background:none;border:0}.uw-pin-in{width:44px;height:44px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--acc);border:3px solid #fff;box-shadow:0 2px 8px #000a;display:flex;align-items:center;justify-content:center;animation:uwdrop .4s ease-out}
.uw-pin-in span{transform:rotate(45deg);font-size:20px}
@keyframes uwdrop{from{transform:translateY(-30px) rotate(-45deg);opacity:0}}
.uw-t{background:none;border:0}.uw-t-in{width:24px;height:24px;border-radius:6px;color:#fff;font:700 13px/24px system-ui;text-align:center;border:2px solid #fff}
.uw-t-in.bus{background:#2c6fd6}.uw-t-in.taxi{background:#e0a800;color:#111}
#map .leaflet-interactive{cursor:pointer}
.tabs button{font-size:14px;padding:0 4px}
body.tab-map-open .sheet{max-height:42vh}

.pc{display:flex;gap:10px;align-items:flex-start}.pcb{flex:1;min-width:0}
.thumb{width:84px;height:84px;border-radius:10px;object-fit:cover;flex:none;background:#2a2a2a}
.thumb.ph{display:flex;align-items:center;justify-content:center;font-size:32px;opacity:.9}
.hf{margin:8px 0}.hero{width:100%;height:auto;max-height:240px;object-fit:cover;border-radius:10px;display:block;background:#2a2a2a}
.hero.ph{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:8px 0}.hero.ph span{font-size:40px}.hero.ph small{color:#ddd}
.hf figcaption{margin-top:4px;font-size:12px}
.cred{padding-left:18px;font-size:13px}.cred li{margin:6px 0}
