:root{--bg: #0b0e14;--glass: rgba(14, 17, 26, .84);--line: rgba(255, 255, 255, .09);--text: #e9edf5;--muted: #9aa4b8;--accent: #2fb8ff;--radius: 14px;color-scheme:dark}*{box-sizing:border-box}html,body,#app{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,select,input{font:inherit;color:inherit}button{cursor:pointer}canvas.view{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none}.topbar,.panel,.card,.walkbar,.loading .box{background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 40px #00000059}.topbar{position:absolute;top:12px;left:12px;right:12px;height:50px;display:flex;align-items:center;gap:18px;padding:0 14px;z-index:20}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;letter-spacing:.2px;white-space:nowrap;color:inherit;text-decoration:none}.brand img{border-radius:6px}.brand b{color:var(--accent)}.cities{display:flex;gap:4px;background:#ffffff0d;padding:3px;border-radius:10px}.cities a{border:0;background:none;padding:6px 14px;border-radius:8px;color:var(--muted);text-decoration:none}.cities a:hover{color:var(--text)}.cities a.on{background:var(--accent);color:#04121c;font-weight:600}.qual{display:flex;align-items:center;gap:8px;color:var(--muted);white-space:nowrap}.daylight{display:flex;gap:2px;margin-left:auto;padding:3px;border-radius:10px;background:#ffffff0d}.daylight button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:5px 11px;border-radius:8px;color:var(--muted);white-space:nowrap}.daylight button:hover{color:var(--text)}.daylight button.on{background:#ffffff24;color:var(--text);font-weight:600}.qual select,.field select,.endrow select,.walkbar select{background:#ffffff0f;border:1px solid var(--line);border-radius:8px;padding:5px 8px}option,optgroup{background:#161a24}.panel{position:absolute;top:74px;left:12px;bottom:38px;width:370px;display:flex;flex-direction:column;overflow:hidden;z-index:15}.panel nav{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}.panel .grab{display:none}.panel nav button{border:0;background:none;padding:11px 2px;color:var(--muted);font-size:12px;border-bottom:2px solid transparent;white-space:nowrap}.panel nav button.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.panel .body{flex:1;overflow-y:auto;padding:14px 16px 20px}.panel h2{margin:2px 0 12px;font-size:18px}.panel h3{margin:18px 0 8px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.search{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:#ffffff0f;outline:none}.search:focus{border-color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chips button{border:1px solid var(--line);background:#ffffff0a;color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12.5px}.chips button.on{border-color:var(--c);color:var(--text);background:color-mix(in srgb,var(--c) 22%,transparent)}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll button{flex:none}.count{color:var(--muted);font-size:12.5px;margin:6px 0 8px}.list{list-style:none;margin:0;padding:0}.list li{display:flex;gap:10px;align-items:flex-start;padding:9px 8px;border-radius:10px;cursor:pointer}.list li:hover,.list li.on{background:#ffffff0f}.list li b{display:block;font-weight:600}.list li small{display:block;color:var(--muted);font-size:12px;margin-top:1px}.list li small.one{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list.compact li{padding:6px 8px}.list .ic{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:15px;background:color-mix(in srgb,var(--c) 30%,#10131b);border:1.5px solid var(--c)}.list li>span:nth-child(2){flex:1;min-width:0}.list .go{flex:none;border:1px solid var(--line);background:#ffffff0d;border-radius:8px;padding:4px 8px}.field{display:flex;align-items:center;gap:10px;margin:8px 0;color:var(--muted)}.field select,.field .endrow{flex:1;min-width:0}.field input[type=range]{flex:1}.field b{color:var(--text);min-width:52px;text-align:right}.endrow{display:flex;gap:6px}.endrow select{flex:1;min-width:0}.pick{border:1px solid var(--line);background:#ffffff0d;border-radius:8px;padding:0 9px}.pick.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 25%,transparent)}.hint{color:var(--muted);font-size:12.5px}.pickhint{color:var(--accent)}.primary{width:100%;margin-top:10px;padding:10px;border:0;border-radius:10px;background:var(--accent);color:#04121c;font-weight:600}.primary:disabled{opacity:.4;cursor:default}.result{margin-top:14px;padding:12px 14px;border-radius:12px;background:#ffffff0d;border:1px solid var(--line)}.result>div:not(.hint){display:flex;justify-content:space-between;padding:3px 0}.result span{color:var(--muted)}.result b{font-size:15px}.result .hint{margin-top:6px}.table-wrap{overflow-x:auto}.dtable{border-collapse:collapse;font-size:11.5px;width:100%}.dtable th{color:var(--muted);font-weight:500;padding:4px;text-align:center;white-space:nowrap;max-width:64px;overflow:hidden;text-overflow:ellipsis}.dtable tr th:first-child{text-align:right;max-width:96px}.dtable th.col{vertical-align:bottom;padding:0 0 6px;max-width:none}.dtable th.col span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);max-height:92px;overflow:hidden;text-overflow:ellipsis}.dtable td{text-align:center;padding:5px 2px;cursor:pointer;border-radius:6px;font-variant-numeric:tabular-nums}.dtable td:hover{outline:1px solid var(--accent)}.dtable td.self{color:var(--muted);cursor:default}.near{background:#3ddc842e}.mid{background:#f5c4512e}.far{background:#ff5d5d29}.k{padding:0 4px;border-radius:4px}.card{position:absolute;top:74px;right:12px;width:330px;padding:16px 18px;z-index:15;display:none}.card.on{display:block}.card h3{margin:8px 0 6px;font-size:19px}.card p{margin:0 0 10px;color:#c9d0dd}.card .x{position:absolute;top:10px;right:10px;border:0;background:none;color:var(--muted);font-size:15px}.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--c) 25%,transparent);border:1px solid var(--c)}.fact{margin:6px 0;font-size:13px}.fact.small{color:var(--muted);font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.actions button{border:1px solid var(--line);background:#ffffff0f;border-radius:9px;padding:7px 10px;font-size:12.5px}.actions button:first-child{background:var(--accent);color:#04121c;border-color:var(--accent);font-weight:600}.walkbar{position:absolute;bottom:40px;left:calc(50% + 190px);transform:translate(-50%);width:min(760px,calc(100% - 420px));display:none;align-items:center;gap:12px;padding:10px 12px;z-index:16}.walkbar.on{display:flex}.walkbar .pp,.walkbar .stop{border:0;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#04121c;font-size:15px;flex:none}.walkbar .stop{background:#ffffff14;color:var(--text)}.walkbar .prog{flex:1;min-width:0}.walkbar .bar{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.walkbar .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3ddc84,var(--accent))}.walkbar .txt{display:flex;justify-content:space-between;gap:10px;margin-top:5px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}.walkbar .txt .el{color:var(--text)}.walkbar label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px}.walkbar .modes{display:flex;gap:3px;background:#ffffff0d;padding:3px;border-radius:9px}.walkbar .modes button{border:0;background:none;color:var(--muted);padding:5px 9px;border-radius:7px;font-size:12px;white-space:nowrap}.walkbar .modes button.on{background:#ffffff24;color:var(--text)}.credit{position:absolute;right:14px;bottom:10px;font-size:11px;color:#e9edf5b3;text-shadow:0 1px 3px rgba(0,0,0,.8);z-index:14}.credit a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:10}.pin{position:absolute;left:0;top:0;margin:-26px 0 0 -13px;display:flex;align-items:center;gap:5px;pointer-events:auto;cursor:pointer;white-space:nowrap;transition:opacity .2s}.pin .ic{width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);display:grid;place-items:center;background:color-mix(in srgb,var(--c) 35%,#10131b);border:2px solid var(--c);box-shadow:0 2px 8px #00000080;font-size:13px}.pin .ic>i{transform:rotate(45deg);font-style:normal}.pin .nm{display:none;padding:3px 9px;border-radius:10px;background:#0a0c12d1;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);font-size:12px;font-weight:500}.pin.named .nm,.pin:hover .nm{display:block}.pin.dim{opacity:.28}.pin.hl .ic{box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 35%,transparent),0 2px 8px #00000080}.pin.sel .ic{width:32px;height:32px;margin:-3px;box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 45%,transparent),0 2px 12px #0009}.pin.sel .nm{font-weight:700;font-size:13px}.loading{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#182032,#07090e 70%);z-index:50}.loading .box{width:min(420px,90vw);padding:26px 28px;text-align:center}.loading .logo{display:block;margin:0 auto 10px;border-radius:11px}.loading h2{margin:0 0 16px}.loading .bar{height:8px;border-radius:4px;background:#ffffff1a;overflow:hidden}.loading .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3ddc84,var(--accent));transition:width .3s}.loading .label{margin-top:10px;color:var(--muted);font-size:13px}.panel.folded{display:none}.foldbtn{position:absolute;top:84px;left:382px;z-index:16;display:flex;align-items:center;gap:6px;height:40px;padding:0 10px 0 8px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 6px 20px #0000004d;color:var(--text);font-size:13px}.foldbtn .ch{font-size:20px;line-height:1;color:var(--accent)}.foldbtn .lbl{max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .2s}.foldbtn:hover .lbl,#app.folded .foldbtn .lbl{max-width:120px}#app.folded .foldbtn{left:12px;border-left:1px solid var(--line);border-radius:10px;padding:0 14px 0 10px}#app.folded .foldbtn .ch{transform:scaleX(-1)}@media (max-width: 760px){.topbar{gap:10px;overflow-x:auto}.panel{inset:auto 8px 8px;width:auto;height:46%}.card{left:8px;right:8px;width:auto}.walkbar{left:8px;right:8px;width:auto;transform:none;bottom:calc(46% + 16px);flex-wrap:wrap}.walkbar .prog{order:-1;flex:1 1 100%}.panel.folded{display:flex;top:auto;bottom:8px;height:auto}.panel.folded .body{display:none}.panel .grab{display:flex;align-items:center;justify-content:flex-end;position:relative;height:26px;padding:0 12px;border:0;background:none;color:var(--muted);font-size:12px}.panel .grab i{position:absolute;left:50%;top:10px;width:44px;height:5px;margin-left:-22px;border-radius:3px;background:#ffffff52}.foldbtn{display:none}.panel.folded~.walkbar{bottom:104px}}.card .star{position:absolute;top:8px;right:36px;border:0;background:none;font-size:19px;color:var(--muted);line-height:1;padding:2px 4px}.card .star.on{color:#f5c451}.chip.stay{--c: #2fb8ff}.actions2{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.actions2 button{border:1px solid var(--line);background:#ffffff0f;border-radius:9px;padding:7px 10px;font-size:12.5px}.favmark{color:#f5c451;font-size:12px}.pin.fav .ic:after{content:"★";position:absolute;top:-7px;right:-7px;font-size:11px;color:#f5c451;text-shadow:0 0 3px #000}.pin .ic{position:relative}.badge{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 25%,transparent);border:1px solid var(--accent);vertical-align:1px}.hotel{padding:9px 8px;border-radius:10px;background:#ffffff08;border:1px solid var(--line);margin-bottom:8px}.hotel .hhead{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.hotel .hhead>span:last-child{flex:1;min-width:0}.hotel small{display:block;color:var(--muted);font-size:12px;margin-top:1px}.hotel small.note{font-style:italic}.hotel .ic,.stops .ic{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:15px;background:color-mix(in srgb,var(--c) 30%,#10131b);border:1.5px solid var(--c)}.htools{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 0 40px}.htools button,.dtools button,.tools button{border:1px solid var(--line);background:#ffffff0d;border-radius:7px;padding:3px 8px;font-size:12px}.htools button:disabled,.dtools button:disabled,.tools button:disabled{opacity:.35;cursor:default}.hotel.editing .hhead{cursor:default;align-items:center}.elsewhere a{color:var(--accent)}.chainnote{margin:-4px 0 8px;color:var(--accent);font-size:12.5px}.result .ghost{margin-top:8px}.triphead{display:flex;justify-content:space-between;margin-bottom:8px}.triphead .delete{color:#ff8a7a}.tname{font-size:17px;font-weight:600}.stepper{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px;border-radius:9px;border:1px solid var(--line);background:#ffffff0f;color:var(--text)}.stepper button{width:30px;height:28px;border:0;border-radius:7px;background:#ffffff12}.totals{margin:12px 0 4px}.totals .budgetbar{display:block!important;height:6px;border-radius:3px;background:#ffffff14;margin:6px 0;overflow:hidden;padding:0!important}.totals .budgetbar i{display:block;height:100%;background:#4cd08a}.totals .budgetbar.over i{background:#e5484d}.totals .over b,.totals .over span{color:#ff8a7a}.totals .left b{color:#6fe0a6}.day{margin:14px 0;padding:10px;border-radius:12px;background:#ffffff08;border:1px solid var(--line)}.dhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.dhead>span:not(.dtools){color:var(--muted);font-size:12.5px}.dtools{margin-left:auto;display:flex;gap:5px}.stops{list-style:none;margin:0;padding:0}.stops li{display:flex;gap:8px;padding:7px 0;border-top:1px solid var(--line)}.stops li:first-child{border-top:0}.sbody{flex:1;min-width:0}.srow{display:flex;align-items:center;gap:6px}.srow .nm{flex:1;min-width:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tools{display:flex;gap:3px;flex:none}.tools button{padding:1px 6px}.srow2{display:grid;grid-template-columns:92px 72px 1fr;gap:5px;margin-top:5px}.srow2 input{min-width:0;padding:4px 6px;border-radius:7px;border:1px solid var(--line);background:#ffffff0d;font-size:12px}.addp{margin-top:8px;padding:7px 9px;font-size:12.5px}.dsum{margin-top:7px;color:var(--muted);font-size:12px}@media (max-width: 760px){.acct.in span:not(.av){display:none}.topbar .brand,.topbar .cities,.topbar .daylight{display:none}.topbar .citysel,.topbar .lightsel{display:block}.topbar .acctbar{margin-left:auto}.topbar{left:8px;right:8px;padding:0 8px;gap:8px;overflow:visible}.citysel,.lightsel{min-width:0;flex:0 1 auto;padding:0 24px 0 10px;background-position:right 8px center,0 0;font-size:13px}.acct.in{padding:0 4px}.panel nav button{font-size:11px}.srow2{grid-template-columns:1fr 1fr}.srow2 .n{grid-column:1 / -1}}.citysel,.lightsel{display:none;height:34px;padding:0 28px 0 12px;border-radius:10px;border:1px solid var(--line);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239aa4b8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 10px center / 11px no-repeat,#ffffff0f;color:var(--text);font-weight:600;appearance:none;-webkit-appearance:none}.citysel{background-color:color-mix(in srgb,var(--accent) 22%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.pin.minor{margin:-20px 0 0 -10px}.pin.minor .ic{width:20px;height:20px;font-size:10px;border-width:1.5px}.pin.minor .nm{font-size:11px;padding:2px 8px}.svbtn{position:absolute;right:12px;bottom:34px;z-index:16;display:flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 24px #00000059;color:var(--text);font-weight:600;font-size:13.5px}.svbtn span:first-child{font-size:17px}.svbtn.on{background:var(--accent);border-color:var(--accent);color:#04121c}#app.picklook canvas.view{cursor:crosshair}.indoors{position:absolute;inset:0;z-index:9;display:grid;place-items:center;background:radial-gradient(ellipse at center,#060c16d6,#060c16f2);pointer-events:none;opacity:0;transition:opacity .3s}.indoors.on{opacity:1}.indoors span{padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--glass);color:var(--text);font-weight:600;font-size:14px}.svbar{position:absolute;top:74px;left:50%;transform:translate(-50%);z-index:17;display:none;align-items:center;gap:16px;padding:10px 10px 10px 18px;border:1px solid var(--line);border-radius:14px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 10px 30px #0006;max-width:calc(100% - 24px)}.svbar b{display:block;font-size:15px}.svbar .how{display:block;color:var(--muted);font-size:12px}.svbar .back{flex:none;border:0;border-radius:10px;padding:9px 14px;background:var(--accent);color:#04121c;font-weight:700;font-size:13px}#app.street .svbar{display:flex}#app.street .svbtn{display:none}#app.street canvas.view{cursor:grab}@media (max-width: 760px){.svbtn{right:8px;bottom:calc(46% + 18px)}#app.folded .svbtn{bottom:104px}.svbar{top:66px;left:8px;right:8px;transform:none;max-width:none}}.walkbar.on~.svbtn{display:none}#app.street .card,#app.street .foldbtn{display:none}
