:root{--bg:#f6f7f9;--panel:#fff;--text:#1c1f24;--muted:#6b7280;--border:#e3e6ea;--accent:#1f6feb;--accent-text:#fff;--ok:#1a7f37;--warn:#b45309;--err:#cf222e;--shadow:0 4px 18px #0000001f;--tabbar:58px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111317;--panel:#1b1e24;--text:#e8eaed;--muted:#9aa0a6;--border:#2d3139;--accent:#4c8dff;--shadow:0 4px 18px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;font-family:system-ui,Noto Sans TC,Noto Sans JP,sans-serif;font-size:15px}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:8px 12px}button:disabled{opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.link{color:var(--accent);background:0 0;border:none;padding:4px 6px}button.danger{color:var(--err)}input,textarea,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;padding:9px 11px}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.muted{color:var(--muted)}.small{font-size:13px}.row{align-items:center;gap:8px;display:flex}.row>button{white-space:nowrap;flex:none}.spacer{flex:1}.app{flex-direction:column;height:100%;display:flex}.page{flex:1;min-height:0;position:relative}.page.scroll{padding:16px 16px calc(24px + env(safe-area-inset-bottom));overflow-y:auto}.page h1{margin:4px 0 14px;font-size:22px}.tabbar{height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--panel);border-top:1px solid var(--border);flex:none;display:flex}.tabbar button{color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.tabbar button .ico{font-size:20px;line-height:1}.tabbar button.on{color:var(--accent);font-weight:600}.toast{left:16px;right:16px;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom));color:#fff;z-index:50;text-align:center;background:#222;border-radius:10px;padding:10px 14px;position:fixed}@media (width>=720px){body{background:color-mix(in srgb, var(--bg) 80%, #000 20%)}.app{background:var(--bg);max-width:480px;box-shadow:var(--shadow);margin:0 auto;overflow:hidden;transform:translateZ(0)}}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:14px}.card h3{margin:0 0 8px;font-size:16px}.field{margin-bottom:12px;display:block}.field>span{color:var(--muted);margin-bottom:5px;font-size:13px;display:block}.chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.chip{box-shadow:var(--shadow);border-radius:999px;flex:none;padding:6px 12px;font-size:14px}.chip.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.map{position:absolute;inset:0}.map-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.map-top{top:calc(10px + env(safe-area-inset-top));z-index:5;flex-direction:column;gap:8px;display:flex;position:absolute;left:10px;right:10px}.search-box{background:var(--panel);box-shadow:var(--shadow);border-radius:14px;gap:6px;padding:5px;display:flex}.search-box input{background:0 0;border:none}.search-box input:focus{outline:none}.fab-col{z-index:5;flex-direction:column;gap:10px;transition:bottom .2s;display:flex;position:absolute;right:12px}.fab{width:48px;height:48px;box-shadow:var(--shadow);border-radius:50%;padding:0;font-size:20px}.fab.lost{color:#fff;background:#e5534b;border-color:#e5534b;border-radius:24px;width:auto;padding:0 16px;font-size:15px;font-weight:600}.sheet{z-index:6;background:var(--panel);box-shadow:var(--shadow);border-radius:18px 18px 0 0;flex-direction:column;max-height:62%;display:flex;position:absolute;bottom:0;left:0;right:0}.sheet.tall{max-height:80%}.sheet-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 14px 8px;display:flex}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:17px;overflow:hidden}.sheet-body{padding:8px 14px 14px;overflow-y:auto}.close{color:var(--muted);background:0 0;border:none;padding:0 6px;font-size:22px}.place-row{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;align-items:flex-start;gap:10px;width:100%;padding:11px 2px;display:flex}.place-row:last-child{border-bottom:none}.place-main{flex:1;min-width:0}.place-name{font-weight:600}.place-meta{color:var(--muted);margin-top:2px;font-size:13px}.rating{color:#e3a008}.open{color:var(--ok)}.closed{color:var(--err)}.dist{color:var(--muted);white-space:nowrap;font-size:13px}.mode-tabs{gap:6px;margin:6px 0 10px;display:flex}.mode-tabs button{flex:1;padding:7px 4px;font-size:14px}.mode-tabs button.on{border-color:var(--accent);color:var(--accent);font-weight:600}.route{text-align:left;width:100%;margin-bottom:8px;padding:11px 12px;display:block}.route.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.route-top{align-items:baseline;gap:8px;display:flex}.route-time{font-size:19px;font-weight:700}.route-flow{flex-wrap:wrap;align-items:center;gap:4px;margin-top:7px;font-size:13px;display:flex}.line-badge{color:#fff;background:#888;border-radius:5px;padding:1px 6px;font-weight:600}.walk-badge{color:var(--muted)}.steps{border-left:3px solid var(--border);margin:8px 0 0;padding:0;list-style:none}.steps li{padding:6px 0 6px 12px;font-size:14px}.steps li.transit{border-left:3px solid var(--accent);margin-left:-3px}.badge-tag{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:12px;display:inline-block}.trip-card{text-align:left;width:100%;display:block}.day{margin-bottom:18px}.day-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.day-head h3{margin:0;font-size:16px}.stop{align-items:flex-start;gap:10px;display:flex}.stop-time{font-variant-numeric:tabular-nums;flex:none;width:50px;padding-top:12px;font-weight:600}.stop-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex:1;min-width:0;padding:10px 12px}.leg{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 4px 60px;font-size:13px;display:flex}.modal-mask{z-index:40;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--panel);width:100%;max-height:88%;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;overflow-y:auto}.modal h2{margin:0 0 12px;font-size:18px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.card.fallback{border-color:color-mix(in srgb, var(--warn) 45%, var(--border));margin:0 0 8px}
