:root{--bg:#f4f5f2;--surface:#fff;--text:#111a14;--muted:#4a564e;--border:#d3d8d2;--brand:#0b5d3b;--brand-ink:#fff;--warn-bg:#fff1c2;--warn-ink:#5c4300;--tap:56px;--nav-h:68px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font:18px/1.45 system-ui,-apple-system,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);overscroll-behavior-y:none;margin:0}button{font:inherit;min-height:var(--tap);cursor:pointer}.app{min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}.topbar{z-index:10;background:var(--brand);color:var(--brand-ink);padding:calc(12px + env(safe-area-inset-top)) 16px 12px;position:sticky;top:0}.topbar h1{margin:0;font-size:22px}.topbar p{opacity:.9;margin:2px 0 0;font-size:15px}.notice{background:var(--warn-bg);color:var(--warn-ink);border-radius:12px;margin:12px 16px 0;padding:12px 14px;font-size:16px}.station-list{gap:10px;margin:0;padding:12px 16px;list-style:none;display:grid}.station{background:var(--surface);border:1px solid var(--border);text-align:start;width:100%;min-height:76px;color:inherit;border-radius:14px;align-items:center;gap:12px;padding:14px;display:flex}.station:active{background:#eef2ee}.station-main{flex-direction:column;flex:1;min-width:0;display:flex}.station-name{font-size:19px;font-weight:700}.station-side{flex-direction:column;align-items:center;gap:2px;display:flex}.station-distance{color:var(--text);font-size:15px;font-weight:600}.station-addr{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.station-price{text-align:center;color:var(--muted);min-width:72px;font-size:14px}.attribution{color:var(--muted);padding:4px 16px 20px;font-size:13px}.attribution a{color:inherit}.bottom-nav{inset-inline:0;z-index:20;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0}.bottom-nav button{height:var(--nav-h);color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:15px;font-weight:600;display:flex}.bottom-nav button[aria-current=page]{color:var(--brand)}.bottom-nav .icon{font-size:24px;line-height:1}.placeholder{text-align:center;color:var(--muted);padding:32px 16px}.toolbar{align-items:center;gap:10px;padding:12px 16px 0;display:flex}.segmented{background:#e3e7e2;border-radius:12px;flex:1;grid-template-columns:1fr 1fr;padding:4px;display:grid}.segmented button{min-height:48px;color:var(--muted);background:0 0;border:0;border-radius:9px;font-weight:700}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--brand);box-shadow:0 1px 3px #00000026}.chip{border:2px solid var(--brand);background:var(--surface);min-height:56px;color:var(--brand);white-space:nowrap;border-radius:12px;padding:0 14px;font-weight:700}.chip-on{background:var(--brand);color:var(--brand-ink)}.chip:disabled{opacity:.7}.main-map{height:calc(100dvh - var(--nav-h) - env(safe-area-inset-bottom) - 72px - env(safe-area-inset-top));flex-direction:column;display:flex}.map{border:1px solid var(--border);border-radius:14px;flex:1;min-height:300px;margin:12px 16px;overflow:hidden}.sheet-backdrop{z-index:30;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;margin:0 auto;animation:.18s ease-out sheet-in}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sheet-head h2{margin:0;font-size:24px}.sheet-addr{color:var(--muted);margin:4px 0 0;font-size:16px}.icon-button{background:#e3e7e2;border:0;border-radius:12px;flex:none;width:56px;font-size:20px}.price-grid{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;display:grid}.price-box{border:2px solid var(--border);text-align:center;border-radius:14px;padding:12px}.price-label{font-size:17px;font-weight:700}.price-value{font-size:28px;font-weight:800}.price-empty{color:var(--muted);padding:8px 0;font-size:16px;font-weight:500}.sheet-actions{gap:10px;display:grid}.sheet-actions button{border-radius:12px;font-weight:700}.primary{background:var(--brand);color:var(--brand-ink);border:0;font-size:19px}.primary:disabled{background:#9fb5a9}.nav-buttons{grid-template-columns:1fr 1fr;gap:10px;display:grid}.nav-buttons button{border:2px solid var(--border);background:var(--surface);color:var(--text)}
