:root{--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--blue:#2563eb;--red:#e11d48;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:Pretendard,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#111a2e;--text:#e2e8f0;--muted:#94a3b8;--line:#1e293b}.map-scroll svg .label{fill:#cbd5e1}}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;border-radius:12px;padding:10px 14px}button.primary{background:var(--blue);color:#fff;border:0;width:100%;padding:14px;font-size:1.05rem;font-weight:700}button.blue{background:var(--blue);color:#fff;border:0}button.red{background:var(--red);color:#fff;border:0}.app{flex-direction:column;max-width:720px;min-height:100dvh;margin:0 auto;display:flex}header{justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}h1{margin:0;font-size:1.1rem}.tabs{gap:4px;display:flex}.tabs button{border-radius:999px;padding:6px 12px}.tabs button.on{background:var(--text);color:var(--bg)}.pickers{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:0 16px 8px;display:grid}.picker{background:var(--card);border:2px solid;border-radius:12px;flex-direction:column;min-width:0;padding:6px 10px;display:flex}.picker span{font-size:.75rem;font-weight:700}.picker input{font:inherit;color:var(--text);background:0 0;border:0;outline:0;min-width:0;font-weight:600}.swap{padding:8px 10px}main{flex:1;min-height:50vh;position:relative}.map-scroll{touch-action:pan-x pan-y;position:absolute;inset:0;overflow:auto}.map-scroll svg{min-width:100%;display:block}.label{fill:#334155;pointer-events:none;paint-order:stroke;stroke:var(--bg);stroke-width:4px}.label.strong{font-weight:700}.station{cursor:pointer}.pulse{fill:#facc15;opacity:.6;transform-box:fill-box;transform-origin:50%;animation:1.2s infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{opacity:.2;transform:scale(1.6)}}.zoom{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.zoom button{width:44px;height:44px;padding:0;font-size:1.3rem;box-shadow:0 2px 8px #0002}.sheet{background:var(--card);border-top:1px solid var(--line);padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;display:flex;box-shadow:0 -4px 20px #0001}.sheet.pick strong{font-size:1.3rem}.chips{gap:4px;display:flex}i{color:#fff;border-radius:999px;margin-right:6px;padding:2px 8px;font-size:.75rem;font-style:normal;font-weight:700}.row{gap:8px;display:flex}.row button{flex:1}.summary b{font-size:1.3rem}.legs{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.legs li{border-left:4px solid;padding-left:10px}.toggles{gap:16px;display:flex}.toggles label{align-items:center;gap:6px;font-weight:600;display:flex}.toggles input{width:20px;height:20px}.now{align-items:baseline;gap:8px;display:flex}.now strong{font-size:2rem}.next{border-radius:12px;padding:12px;font-size:1.1rem;font-weight:700}.next.transfer{color:#92400e;background:#fef3c7}.next.arrive{color:#9f1239;background:#ffe4e6}.sim{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.muted{color:var(--muted)}.alarm{color:#fff;text-align:center;z-index:10;background:#e11d48ee;place-items:center;animation:.6s infinite alternate flash;display:grid;position:fixed;inset:0}.alarm h2{margin:0 0 8px;font-size:2.2rem}.alarm p{font-size:1.2rem}.alarm button{color:#e11d48;background:#fff;border:0;padding:14px 40px;font-weight:800}@keyframes flash{0%{background:#e11d48ee}to{background:#be123cee}}.arrivals{flex-direction:column;gap:6px;max-height:30vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.arrivals li{align-items:center;gap:4px;font-size:.9rem;display:flex}.arrivals .heading{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.arrivals .heading b{color:var(--red);font-size:.8rem}.arrivals .when{white-space:nowrap;font-weight:700}p.muted{margin:0}
