:root{--bg: #12141a;--panel: #1a1d26;--panel-2: #222634;--line: #2e3342;--text: #e7e9ef;--muted: #9aa1b4;--accent: #4f8cff;--want: #34c98a;--skip: #ef5a5a;--warn: #f2b64c;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:6px 10px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.ghost{background:transparent}button.danger:hover{border-color:var(--skip);color:var(--skip)}input,select,textarea{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}a{color:var(--accent)}.center-screen{height:100%;display:grid;place-items:center;padding:24px;overflow:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;width:min(520px,100%)}.card h1{margin:0 0 4px;font-size:22px}.card h2{margin:0 0 12px;font-size:17px}.sub{color:var(--muted);margin:0 0 18px}.field{margin-bottom:12px}.field label{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.spacer{flex:1}.code-input{font-size:26px;letter-spacing:6px;text-align:center;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;text-transform:uppercase}.link-code{margin-top:10px;padding:14px;background:var(--panel-2);border:1px solid var(--accent);border-radius:10px;text-align:center}.link-code-value{font-size:34px;font-weight:700;letter-spacing:8px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;color:var(--accent)}.error{background:#3a1f22;border:1px solid #6b2b30;color:#ffb4b4;border-radius:8px;padding:8px 10px;margin-bottom:12px;font-size:13px}.app{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}.topbar>button{flex:none}.topbar>div:not(.avatars):not(.spacer){min-width:0}.topbar .trip-name,.topbar .city{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .trip-name{font-weight:650}.topbar .city{color:var(--muted);font-size:12px}.avatars{flex:none}.avatars{display:flex;gap:4px}.avatar{width:26px;height:26px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:50%;font-size:14px}.main{flex:1;display:flex;min-height:0}.sidebar{width:380px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.tabs{display:flex;border-bottom:1px solid var(--line);flex:none}.tabs button{flex:1;border:0;border-radius:0;background:transparent;padding:10px 6px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.scroll{overflow-y:auto;flex:1;min-height:0;padding:10px}.map-wrap{flex:1;position:relative;min-width:0}.map-wrap>.map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted)}.map-overlay{position:absolute;left:50%;bottom:24px;transform:translate(-50%);z-index:10;width:min(320px,calc(100% - 24px));background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 12px 32px #000b}.map-overlay label{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.map-overlay.hint{display:flex;align-items:center;gap:8px;justify-content:space-between;color:var(--muted);font-size:13px;width:auto}.search-box{padding:10px;border-bottom:1px solid var(--line);flex:none;position:relative}.chips{margin-top:8px;gap:5px}.chip{font-size:12px;padding:3px 9px;border-radius:999px;background:transparent}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.results{position:absolute;top:100%;left:10px;right:10px;z-index:20;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;max-height:320px;overflow-y:auto;box-shadow:0 12px 32px #0009}.result{padding:9px 11px;border-bottom:1px solid var(--line);cursor:pointer}.result:last-child{border-bottom:0}.result:hover{background:#2b3143}.result .n{font-weight:550}.result .a{color:var(--muted);font-size:12px}.item{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;cursor:pointer}.item:hover{border-color:var(--accent)}.item.selected{outline:2px solid var(--accent)}.item.status-scheduled{border-left-color:var(--accent)}.item.status-rejected{border-left-color:var(--skip);opacity:.55}.item.status-accepted{border-left-color:var(--want)}.item .title{font-weight:600;display:flex;align-items:center;gap:6px}.place-icon{font-size:15px;flex:none}.day-badge{background:transparent;font-weight:600}.more-btn{padding:2px 8px;font-size:15px;line-height:1}.day-dot{width:10px;height:10px;border-radius:50%;flex:none}.stop-num{width:20px;height:20px;flex:none;border-radius:50%;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}.item .meta{color:var(--muted);font-size:12px;margin-top:2px}.item .added{color:var(--muted);font-size:12px;margin-top:6px}.item .note{font-size:13px;margin-top:6px;color:#cfd4e2;font-style:italic}.editor{margin-top:8px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.editor label{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.hint-line{color:var(--muted);font-size:11px;margin-top:6px}.vote-row{display:flex;align-items:center;gap:6px;margin-top:8px}.vote-btn{padding:3px 9px;font-size:13px}.vote-btn.on-want{background:var(--want);border-color:var(--want);color:#08130d;font-weight:700}.vote-btn.on-skip{background:var(--skip);border-color:var(--skip);color:#1a0808;font-weight:700}.voters{display:flex;gap:2px;font-size:13px}.voters .v-skip{filter:grayscale(1);opacity:.5}.badge{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.badge.want{color:var(--want);border-color:#2a6b52}.badge.sched{color:var(--accent);border-color:#2f4d80}.empty{color:var(--muted);text-align:center;padding:28px 12px;font-size:13px}.day{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px}.day.drag-over{border-color:var(--accent);background:#253052}.day h3{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}.stop{display:flex;gap:8px;padding:6px 0;border-top:1px solid var(--line);cursor:grab}.stop:first-of-type{border-top:0}.stop.drop-target{border-top:2px solid var(--accent)}.stop:active{cursor:grabbing}.stop .time{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px;width:46px;flex:none}.stop .body{flex:1;min-width:0}.stop .transit{color:var(--muted);font-size:11px}.feed-line{padding:5px 2px;border-bottom:1px solid var(--line);font-size:13px}.feed-line:last-child{border-bottom:0}.feed-line .when{color:var(--muted);font-size:11px}.pin{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 6px #0006;cursor:pointer;font-size:14px;line-height:1;-webkit-user-select:none;user-select:none}.pin.numbered{color:#fff;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}.pin.faded{opacity:.45}.pin.search{background:var(--warn)}.pin.active{outline:3px solid var(--text);outline-offset:1px;z-index:5}.map-wrap .maplibregl-popup-content{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:10px;font:inherit;padding:10px 12px}.map-wrap .maplibregl-popup-tip{border-top-color:var(--panel-2)!important}.map-wrap .maplibregl-popup-close-button{color:var(--muted);font-size:18px}.print-plan{display:none}@media print{body{background:#fff;color:#000;overflow:visible}.app>.topbar,.main,.error{display:none!important}.print-plan{display:block;padding:0}.print-plan h1{font-size:20pt;margin:0 0 2pt}.print-plan h2{font-size:13pt;margin:14pt 0 4pt;border-bottom:1pt solid #999;padding-bottom:2pt}.print-sub{color:#444;margin:0 0 8pt;font-size:10pt}.print-day{break-inside:avoid;page-break-inside:avoid}.print-plan table{width:100%;border-collapse:collapse}.print-plan td{vertical-align:top;padding:4pt 0;border-top:.5pt solid #ddd}.print-time{width:48pt;font-weight:700;white-space:nowrap}.print-muted{color:#555;font-size:9pt}.print-note{font-style:italic;font-size:9pt}.print-footer{margin-top:16pt;border-top:.5pt solid #ccc;padding-top:4pt}}.mobile-tabs{display:none}.avatar.more{font-size:11px;color:var(--muted)}@media (max-width: 820px){html,body,#root{height:100dvh}.topbar{gap:6px;padding:6px 8px}.topbar .trip-name{font-size:14px}.btn-label{display:none}.avatars{gap:2px}.avatar{width:22px;height:22px;font-size:12px}.mobile-tabs{display:flex;flex:none;border-bottom:1px solid var(--line);background:var(--panel)}.mobile-tabs button{flex:1;border:0;border-radius:0;background:transparent;color:var(--muted);padding:9px 6px;border-bottom:2px solid transparent}.mobile-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.main{flex-direction:column}.sidebar{width:100%;height:100%;border-right:0}.map-wrap{height:100%}.main.show-list .map-wrap,.main.show-map .sidebar{display:none}input,select,textarea{font-size:16px}.results{max-height:50vh}.card{padding:18px}}@media (pointer: coarse){button{padding:9px 12px}.vote-btn{padding:8px 14px;font-size:15px}.chip{padding:7px 12px;font-size:13px}.stop button{padding:8px 10px!important}.result{padding:12px 11px}.tabs button,.mobile-tabs button{padding:12px 6px}}.guide-paste textarea{resize:vertical;min-height:110px;margin-top:8px}.guide-help{color:var(--muted);font-size:12px;line-height:1.5}.guide-help>div+div{margin-top:2px}.item.guide{cursor:default}.item.guide .guide-head{cursor:pointer}.item.guide .chev{color:var(--muted)}.item.guide.open{border-color:var(--accent)}.guide-tips{margin:8px 0 0;padding-left:18px;font-size:12px;color:#cfd4e2}.guide-tips li+li{margin-top:2px}.guide-day{margin-top:10px;padding:8px;border-radius:8px;background:var(--panel);border:1px solid var(--line)}.guide-day h4{margin:0 0 4px;font-size:13px;display:flex;align-items:center;gap:6px}.guide-stop{display:flex;gap:8px;padding:6px 0;border-top:1px solid var(--line);align-items:flex-start}.guide-stop:first-of-type{border-top:0}.guide-stop input[type=checkbox]{width:auto;margin-top:3px;flex:none}.guide-stop .time{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px;width:46px;flex:none}.guide-stop .body{flex:1;min-width:0}.guide-stop .transit{color:var(--muted);font-size:11px}.guide-stop .local{color:var(--muted);font-size:12px}.guide-stop .guide-note{color:#cfd4e2;font-style:italic}.guide-stop.off-map .body>div:first-child{opacity:.7}.guide-edit-stop{padding:8px 0;border-top:1px solid var(--line)}.guide-edit-stop:first-of-type{border-top:0}.guide-edit-stop input{padding:6px 8px}.guide-actions{position:sticky;bottom:-10px;margin:10px -10px -10px;padding:10px 12px;background:var(--panel-2);border-top:1px solid var(--line);border-radius:0 0 10px 10px}.guide-notice{margin-top:10px;color:var(--want);font-size:13px}.badge.warn{color:var(--warn);border-color:#6b5524}.stop .time-btn{background:transparent;border:0;border-bottom:1px dashed #2f4d80;align-self:flex-start;border-radius:0;padding:0 0 1px;text-align:left;height:fit-content;white-space:nowrap;width:auto;min-width:46px;cursor:pointer}.stop .time-btn:hover{border-bottom-color:var(--accent)}.stop .time-btn.fixed{color:var(--warn);border-bottom-color:#6b5524}.stop .time-btn .fixed-pin{font-size:9px;margin-left:1px}.stop .time-edit{width:96px;flex:none;display:flex;flex-direction:column;gap:2px}.stop .time-edit input{padding:3px 4px;font-size:13px}.day-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.day-chip{font-size:12px;padding:3px 9px;border-radius:999px;background:transparent;font-weight:600}.day-chip:hover:not(:disabled){background:#253052}.map-wrap .ask-ctrl{font-size:16px;line-height:1;padding:0}.chat-panel{position:absolute;right:54px;top:10px;bottom:30px;z-index:15;width:min(360px,calc(100% - 64px));max-height:560px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #000b;overflow:hidden}.chat-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}.chat-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.chat-empty{color:var(--muted);font-size:13px}.chat-suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chat-msg{max-width:88%;padding:7px 10px;border-radius:10px;margin-bottom:8px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.chat-msg.user{margin-left:auto;background:var(--accent);color:#fff;border-bottom-right-radius:3px}.chat-msg.claude{background:var(--panel-2);border:1px solid var(--line);border-bottom-left-radius:3px}.chat-msg.thinking{color:var(--muted);font-style:italic}.chat-secs{font-style:normal;font-size:11px;margin-left:4px}.chat-bullet{padding-left:10px;text-indent:-10px}.chat-input{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}.chat-input input{flex:1}@media (max-width: 820px){.chat-panel{left:8px;right:8px;top:8px;bottom:8px;width:auto;max-height:none}}.tabs button{padding:10px 2px;font-size:13px}.money-label{color:var(--muted);font-size:12px}.money-big{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.money-big.pos{color:var(--want)}.money-big.neg{color:var(--warn)}.settle-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line);font-size:13px}.settle-row:first-of-type{border-top:0}.money-day{display:flex;color:var(--muted);font-size:12px;margin:12px 2px 6px;font-variant-numeric:tabular-nums}.item.expense .title{gap:8px;font-variant-numeric:tabular-nums}.expense-form h3{margin-bottom:8px}.seg{display:flex;flex:none;border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{border:0;border-radius:0;background:transparent;padding:6px 10px}.seg button.on{background:var(--accent);color:#fff;font-weight:600}.rate-line{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px}.rate-line input{padding:4px 6px}.share-list{margin-top:4px}.share-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13px}.share-row.off{opacity:.5}.share-row input[type=checkbox]{width:auto}.share-row input[type=number]{padding:3px 6px}.share-amt{color:var(--muted);font-size:12px;min-width:70px;text-align:right;font-variant-numeric:tabular-nums}.chat-history{flex:1;min-height:0;overflow-y:auto;padding:10px}.chat-history-row{display:flex;gap:8px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:7px 2px;font-size:13px}.chat-history-row:hover{background:var(--panel-2)}.chat-history-row .when{color:var(--muted);font-size:11px;flex:none;width:74px;padding-top:1px}.chat-msg.flash{outline:2px solid var(--warn)}.money-wrap{display:flex;flex-direction:column;flex:1;min-height:0}.seg.money-views{margin:8px 10px 0;flex:none}.seg.money-views button{flex:1;font-size:12px;padding:5px 2px}.budget-bars{margin-top:8px}.budget-bar{display:flex;align-items:center;gap:8px;margin-top:6px}.budget-bar-label{width:52px;flex:none}.budget-track{flex:1;height:10px;background:var(--panel);border-radius:0 4px 4px 0}.budget-fill{height:100%;border-radius:0 4px 4px 0}.budget-fill.target{background:#4b5263}.budget-fill.plan{background:#3987e5}.budget-fill.spent{background:#d95926}.budget-fill.over{outline:2px solid var(--warn)}.budget-bar-val{width:104px;flex:none;text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.budget-day-nums{font-weight:400;font-size:12px;font-variant-numeric:tabular-nums}.estimate-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-top:1px solid var(--line);font-size:13px}.estimate-row input{width:80px;padding:4px 6px}.estimate-row select{width:70px;padding:4px}.booking{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;margin-bottom:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px}.booking input[type=checkbox]{width:18px;height:18px;margin-top:2px;flex:none}.booking .meta{color:var(--muted);font-size:12px;margin-top:2px}.booking.done .booking-title{text-decoration:line-through;color:var(--muted)}.chart{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px}.chart h4{margin:0 0 8px;font-size:13px}.bar-row,.pair{padding:3px 0}.bar-label{font-size:12px;color:var(--muted);margin-bottom:2px}.bar-line{display:flex;align-items:center;gap:8px}.bar-pair .bar-line+.bar-line{margin-top:2px}.bar-track{flex:1;height:10px}.bar-fill{height:100%;border-radius:0 4px 4px 0}.bar-fill.s1,.swatch.s1{background:#3987e5}.bar-fill.s2,.swatch.s2{background:#d95926}.bar-val{width:118px;flex:none;white-space:nowrap;text-align:right;font-size:12px;color:var(--text);font-variant-numeric:tabular-nums}.chart-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-bottom:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}.chart-tip{position:absolute;z-index:30;pointer-events:none;max-width:240px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;box-shadow:0 6px 18px #000a}.num-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.num-table th,.num-table td{padding:4px 2px;border-bottom:1px solid var(--line);text-align:right}.num-table th:first-child,.num-table td:first-child{text-align:left}.leg{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:3px 0 3px 18px;font-size:11px;color:var(--muted);position:relative}.leg-line{position:absolute;left:66px;top:0;bottom:0;border-left:2px dotted var(--line)}.leg-text{margin-left:62px;font-variant-numeric:tabular-nums}.leg-leave{opacity:.8}.leg-tip{font-size:10px;padding:1px 6px;cursor:pointer;background:transparent}.leg-route{font-size:11px;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:1px 8px}.leg-route:hover{border-color:var(--accent)}.leg-tip-text{flex-basis:100%;margin-left:62px;color:var(--text);background:var(--panel);border:1px solid #6b5524;border-radius:8px;padding:6px 8px;font-size:12px}.leg+.stop{border-top:0}.people-btn{cursor:pointer;border-radius:999px}.people-btn:hover .avatar{border-color:var(--accent)}.people-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:grid;place-items:center;padding:16px}.people-panel{width:min(420px,100%);max-height:min(640px,100%);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #000b;overflow:hidden}.people-body{overflow-y:auto;padding:10px}.person{padding:8px 0;border-bottom:1px solid var(--line)}.person-face{font-size:22px;width:32px;text-align:center}button.leg-route{background:transparent;color:var(--accent);font-size:11px;padding:1px 8px;border-radius:999px}button.leg-route.on{background:var(--accent);color:#fff;border-color:var(--accent)}.route-card,.route-paste,.route-embed{flex-basis:100%;margin-left:62px}.route-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text);font-size:12px;cursor:pointer}.route-head{display:flex;gap:8px;font-size:13px;font-variant-numeric:tabular-nums}.route-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px}.route-step{display:inline-flex;align-items:center;gap:4px}.route-sep{color:var(--muted)}.line-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:5px;font-size:11px;font-weight:600;white-space:nowrap}.line-sym{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#fff;color:#111;font-size:10px}.route-sub{color:var(--muted);margin-top:5px}.route-more{color:var(--accent)}.route-steps{list-style:none;margin:8px 0 0;padding:0}.route-steps li{display:flex;gap:8px;padding:4px 0;border-top:1px solid var(--line)}.route-step-icon{width:18px;text-align:center;flex:none}.route-paste textarea{margin-top:4px;resize:vertical;font-size:12px}.route-embed iframe{width:100%;height:320px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}@media (max-width: 820px){.route-card,.route-paste,.route-embed,.leg-tip-text{margin-left:0}}.route-card,.route-paste,.route-embed,.leg-tip-text{position:relative;z-index:1}.route-paste,.route-embed{background:var(--panel-2)}.leg-main{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-left:62px;min-width:0}.leg-main .leg-text{margin-left:0}.leg-actions{display:inline-flex;gap:4px;margin-left:auto}.leg-act{font-size:11px;padding:1px 8px;border-radius:999px;white-space:nowrap;border:1px solid var(--line);background:transparent;color:var(--accent);text-decoration:none}.leg-act:hover{border-color:var(--accent)}.leg-tip{padding:1px 5px}@media (max-width: 1100px) and (min-width: 821px){.leg-tip-label{display:none}}.route-stops{display:flex;flex-direction:column;border-left:2px solid var(--line);padding-left:8px;margin:2px 0;font-size:12px}.route-others,.route-option{flex-basis:100%;margin-left:62px;position:relative;z-index:1}.route-option{margin-top:6px;padding:6px 10px;border:1px dashed var(--line);border-radius:10px;background:var(--panel-2);cursor:pointer;font-size:12px;margin-left:0}.route-option:hover{border-color:var(--accent)}.route-view{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;background:var(--panel)}.route-view-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600}.route-view-head .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-view iframe{flex:1;width:100%;border:0;background:#e8eaed}.route-view-foot{color:var(--muted);font-size:11px;padding:4px 10px}@media (max-width: 820px){.leg-main,.route-others,.leg-actions{margin-left:0}}.route-head{flex-wrap:wrap;align-items:baseline}.route-head strong{white-space:nowrap}.route-head .money-label{font-size:10px;white-space:nowrap}.leg-act.on{background:var(--accent);color:#fff;border-color:var(--accent)}.t-list{flex-basis:100%;margin-left:62px;position:relative;z-index:1;display:flex;flex-direction:column;gap:6px}.t-opt{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;cursor:pointer}.t-opt.best{border-left:3px solid var(--accent)}.t-opt:hover{border-color:var(--accent)}.t-head{display:flex;flex-direction:column}.t-dur{font-size:15px;font-weight:700}.t-times{font-size:13px;font-variant-numeric:tabular-nums}.t-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px}.t-step{display:inline-flex;align-items:center;gap:4px}.t-sep{color:var(--muted)}.t-sub{color:var(--muted);margin-top:5px}@media (max-width: 820px){.t-list{margin-left:0}}.t-fast{font-size:10px;font-weight:600;margin-left:8px;vertical-align:2px}.t-opt.shown{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.live-chip{position:absolute;top:10px;left:10px;right:60px;z-index:15;display:flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 10px #0000002e;font-size:13px;font-weight:600}.live-chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-stop{display:flex;align-items:center;gap:4px;pointer-events:none}.live-stop-dot{width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid #333;box-sizing:content-box;flex:none}.live-stop-name{font-size:11px;font-weight:600;color:#1d2230;white-space:nowrap;background:#ffffffeb;padding:1px 5px;border-radius:4px;box-shadow:0 1px 3px #0003}.route-panel{position:absolute;top:0;left:0;bottom:0;width:380px;max-width:100%;z-index:20;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--line);box-shadow:2px 0 12px #00000026}.route-panel .route-view-head{flex:none}.route-panel-list{flex:1;overflow-y:auto;margin:0;padding:8px 10px;border:0}.t-when{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.t-pick{font:inherit;font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid var(--line);background:transparent;color:inherit;color-scheme:light dark}.t-pick.on{border-color:var(--accent)}.t-live{color:#1a9e5c;font-size:11px;font-weight:700;margin-right:6px}@media (max-width: 820px){.route-panel{top:auto;width:100%;height:55%;border-right:0;border-top:1px solid var(--line)}}.plan-elapsed{color:var(--muted);font-size:13px;font-weight:400;font-variant-numeric:tabular-nums}.plan-steps{list-style:none;padding:0;margin:14px 0 16px}.plan-step{display:flex;gap:10px;padding:5px 0;color:var(--muted)}.plan-step.now{color:var(--text);font-weight:600}.plan-step.done{color:var(--want)}.plan-step-icon{width:18px;flex:none;text-align:center}.plan-step-detail{font-weight:400;color:var(--muted);font-size:12px}.spinner{display:inline-block;width:12px;height:12px;vertical-align:-1px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}}.muted{color:var(--muted)}.plan-day{border-top:1px solid var(--line);padding:10px 0 4px}.plan-day-head{margin-bottom:6px;font-size:13px}.plan-stop{display:flex;align-items:center;gap:10px;padding:4px 0;font-size:13px;animation:plan-in .3s ease-out}.plan-stop.missing{opacity:.5;text-decoration:line-through}.plan-stop.writing .plan-found,.plan-stop.pending .plan-found{opacity:.6}.plan-photo{width:44px;height:44px;flex:none;border-radius:8px;object-fit:cover;background:var(--panel-2);display:grid;place-items:center;font-size:18px}.plan-time{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:8px}.plan-found{flex:none;width:20px;text-align:center}@keyframes plan-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){.plan-stop{animation:none}}.stop-photo{width:40px;height:40px;flex:none;border-radius:7px;object-fit:cover;background:var(--panel-2);cursor:pointer;align-self:center}.item .place-photo{display:block;width:calc(100% + 20px);height:140px;object-fit:cover;margin:-10px -10px 10px;border-radius:9px 9px 0 0;background:var(--panel-2)}
