@import url('fonts.css');
:root{--yellow:#fcd116;--bg:#131414;--surface:#1c1c1c;--card:#202121;--text:#f4f6f7;--muted:#a0a6a6;--line:#383b3b;--green:#65df9e;--pink:#ff55aa;--blue:#70a4ff;--header:linear-gradient(90deg,#111 3%,#111b 35%,#1111 85%);color-scheme:dark}
:root[data-theme=light]{--bg:#f4f6f7;--surface:#fff;--card:#fff;--text:#1c1c1c;--muted:#565e60;--line:#d6dbdd;--green:#005a36;--pink:#b00058;--blue:#004bff;--header:linear-gradient(90deg,#f4f6f7 3%,#f4f6f7dc 35%,#f4f6f700 85%);color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}a{color:var(--blue)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3,.timer,.condensed,strong.stat{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif}button{border:0}main{max-width:1240px;margin:auto;padding:0 32px}#load{padding:20vh 10%;font-family:Impact,sans-serif;font-size:50px;color:var(--yellow)}#load small{font:16px Arial;color:#aaa}.micro{font-family:'Barlow Condensed',Arial,sans-serif;letter-spacing:1.8px;font-size:12px;font-weight:600;display:block}.hero{max-width:1440px;margin:auto;position:relative;min-height:340px;padding:28px 6% 18px;overflow:hidden;background:var(--header),url('assets/hero-v3.webp') 70% 45%/cover}.hero-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.hero-top .micro{font-size:11px}.iconbutton{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font-size:24px}.hero-copy{position:relative;width:max-content;margin-top:20px}.checks{width:160px;height:12px;background:conic-gradient(var(--yellow) 25%,transparent 0 50%,var(--yellow) 0 75%,transparent 0) 0 0/24px 24px;margin-bottom:9px}h1{font-size:102px;font-weight:900;letter-spacing:-3px;line-height:.79}h1 span{color:var(--yellow);padding-left:8px}h1 em{font-style:normal;color:var(--yellow)}[data-theme=light] h1 em{color:#1c1c1c;background:var(--yellow);padding:0 7px 3px;margin-left:-7px}.tracking{font-size:10px;letter-spacing:4px;margin-top:19px;font-weight:600}.hero-side{position:absolute;right:7%;top:125px;letter-spacing:4px;font:13px/1.8 'Barlow Condensed';color:#fff;text-shadow:0 1px 8px #000}.hero-side i{display:block;width:45px;height:4px;background:var(--yellow);margin-top:18px}.hero-bottom{display:flex;justify-content:space-between;margin-top:25px;font:10px 'DM Sans';letter-spacing:2px;color:var(--muted)}.hero-bottom span:last-child{color:var(--green);background:var(--bg);padding:3px 6px}.daystrip{display:flex;justify-content:space-between;align-items:center;padding:30px 0 20px;gap:15px}.daystrip .micro{color:var(--muted);font-size:10px}.daystrip h2{font-size:34px;font-weight:700;margin-top:4px}.ghost{border:1px solid var(--line);background:transparent;color:var(--text);padding:10px 15px;border-radius:6px}.days{display:flex;gap:7px;overflow:auto;padding:0 0 20px;scrollbar-width:thin}.day{flex:1;min-width:95px;border:1px solid var(--line);padding:11px 13px;text-align:left;background:var(--surface);color:var(--text);border-radius:5px}.day small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.4px}.day strong{font-family:'Barlow Condensed';font-size:21px}.day.active{background:var(--yellow);border-color:var(--yellow);color:#111}.day.active small{color:#333}.departure{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.departure>div+div{border-left:1px solid var(--line);padding-left:25px}.departure strong{font:700 23px 'Barlow Condensed';display:block;margin-top:4px}.departure .micro{font-size:10px;color:var(--muted)}.dashboard{display:grid;grid-template-columns:1.1fr .8fr 1fr;gap:30px;padding:27px 0;border-bottom:1px solid var(--line)}.dashboard>div+div{border-left:1px solid var(--line);padding-left:30px}.timer{font-size:88px;line-height:1;font-weight:800;color:var(--yellow);letter-spacing:-2px;margin:8px 0 14px}[data-theme=light] .timer{color:var(--text)}.primary{background:var(--yellow);color:#111;border:1px solid var(--yellow);border-radius:6px;padding:12px 22px;font-weight:700;min-height:44px}.small{padding:9px 12px;font-size:12px}.finishbox>strong{display:block;font:700 48px/1.1 'Barlow Condensed';margin:14px 0 6px}.finishbox #delta{color:var(--pink);font-weight:700;display:block;font-size:14px}.finishbox small{display:block;color:var(--muted);font-size:11px;margin-top:8px}.progressbox strong{display:block;font:600 29px 'Barlow Condensed';margin-top:18px}.progress{height:5px;background:var(--line);margin:18px 0;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:var(--yellow);width:0}.progressbox #sessionHint{font-size:12px;color:var(--muted)}.alert{border:1px solid var(--line);border-left:3px solid var(--yellow);padding:12px 15px;margin-top:15px;font-size:12px;background:var(--surface)}.alert.danger{border-left-color:var(--pink)}.nextpanel{display:flex;gap:20px;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px 24px;margin:24px 0}.nextpanel h2{font-size:30px;line-height:1.1;margin:6px 0}.nextpanel .micro{color:var(--muted)}.nextpanel p{font-size:12px;color:var(--muted)}.nextactions{display:flex;gap:8px;flex-wrap:wrap}.nextactions .ghost{color:var(--pink);border-color:var(--pink)}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:35px}.sectionhead{display:flex;justify-content:space-between;gap:14px;align-items:center;padding-bottom:20px}.sectionhead h3{font-size:18px;font-weight:600;letter-spacing:1px}.sectionhead h3 span{color:var(--muted);font:12px 'DM Sans';margin-left:10px}.textbutton{background:none;color:var(--blue);font-size:12px;white-space:nowrap;padding:10px 0}.stop{position:relative;padding:0 0 22px 48px;border-left:2px solid var(--line);margin-left:16px}.stop:last-child{border-left-color:transparent}.stopnum{position:absolute;left:-17px;top:0;width:32px;height:32px;border-radius:50%;background:var(--line);color:var(--text);font-family:'Barlow Condensed';font-size:18px;font-weight:700;display:grid;place-items:center;border:0}.stop.current .stopnum,.stop.done .stopnum{background:var(--yellow);color:#111}.stop.current{border-left-color:var(--yellow)}.stop.skipped{opacity:.55}.stop.skipped .stopname{text-decoration:line-through}.stophead{display:flex;justify-content:space-between;gap:10px;align-items:start}.stop .time{font:700 17px 'Barlow Condensed';color:var(--muted);min-width:37px}.stop.current .time{color:var(--yellow)}[data-theme=light] .stop.current .time{color:#8b5b00}.stopname{font:700 25px/1.1 'Barlow Condensed';background:none;color:var(--text);text-align:left;padding:0}.stoploc{font-size:11px;color:var(--muted);margin-top:4px}.stopmeta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:11px;margin-top:11px}.stopmeta .warning{color:var(--pink)}.badge{display:inline-block;border:1px solid var(--line);border-radius:3px;padding:2px 6px;color:var(--muted);font-size:9px;letter-spacing:1px}.badge.meal{color:var(--green);border-color:var(--green)}.badge.pin{color:var(--pink);border-color:var(--pink)}.stoptools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px}.stoptools button{color:var(--muted);background:none;padding:4px 2px;font-size:11px;min-height:30px}.stoptools button:hover{color:var(--text)}.stoptools a{font-size:11px;text-decoration:none}.stop.done .stopname{color:var(--muted)}.stopdesc{margin-top:10px;color:var(--muted);font-size:12px}.mapaside{position:sticky;top:22px;align-self:start}.mapheading{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px}.mapheading h3{font-size:26px}.mapheading .micro{color:var(--muted);font-size:10px}#map{height:430px;z-index:1;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.pin{width:29px;height:29px;border-radius:50%;background:var(--yellow);color:#111;display:grid;place-items:center;font-weight:700;border:2px solid #171717;box-shadow:0 2px 6px #0005}.pin.done{background:#888}.pin.current{background:#ff1493;color:#fff;transform:scale(1.2)}.mapcontrols{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.mapcontrols .ghost{font-size:12px;padding:8px 10px}.fine{font-size:10px;color:var(--muted);line-height:1.7;margin:12px 0}.pdf{display:block;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;font-size:12px;color:var(--text);text-decoration:none}.citycard{padding:24px 0}.citycard>span{font:800 43px/.98 'Barlow Condensed';letter-spacing:-1px}.citycard em{color:var(--yellow);font-style:normal}[data-theme=light] .citycard em{color:#8b5b00}.citycard p{color:var(--muted);font-size:11px;margin-top:13px}.notes{border-top:1px solid var(--line);padding:18px 0}.notes summary{font-weight:600;font-size:12px;cursor:pointer}.notes p{font-size:12px;color:var(--muted);white-space:pre-line;margin:10px 0}.footer{display:flex;justify-content:space-between;gap:15px;padding:30px 0 110px;border-top:1px solid var(--line);margin-top:30px;font-size:9px;letter-spacing:1px;color:var(--muted)}.bottomnav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);display:flex;padding:12px 12px max(12px,env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #0002}.bottomnav button{flex:1;background:none;color:var(--muted);font-size:12px;position:relative}.bottomnav button span{display:block;font-size:22px;line-height:1.2;margin-bottom:4px}.bottomnav button.active{color:var(--text)}.bottomnav button.active:after{content:'';position:absolute;bottom:-8px;left:38%;right:38%;height:3px;background:var(--yellow);border-radius:3px}.bottomnav button.active span{color:var(--yellow)}[data-theme=light] .bottomnav button.active span{color:#111}#places{padding:25px 0}#places h2{font-size:42px;line-height:1.05}#places h2 em{font-style:normal;color:var(--muted)}.searchbox{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--line);border-radius:6px;background:var(--surface);margin:18px 0}.searchbox input{width:100%;background:none;border:0;color:var(--text);outline:none}.placegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.placecard{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:19px}.placecard h3{font-size:25px;line-height:1.1;margin:8px 0}.placecard p{font-size:12px;color:var(--muted)}.placecard .textbutton{display:inline-block}.placecard small{font-size:9px;letter-spacing:1px;color:var(--muted)}dialog{width:min(560px,calc(100% - 24px));max-height:88dvh;border:1px solid var(--line);border-radius:13px;padding:24px;background:var(--surface);color:var(--text);box-shadow:0 25px 100px #0009}dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.modalhead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.modalhead h2{font-size:30px;line-height:1.1}.modalhead .iconbutton{flex-shrink:0}.field{display:block;font-size:12px;color:var(--muted);margin:15px 0}.field input,.field select,.field textarea{display:block;width:100%;padding:11px;margin-top:6px;background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--text)}.field input[type=checkbox]{display:inline;width:auto;margin:0 8px 0 0}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formactions{display:flex;flex-wrap:wrap;gap:9px;margin-top:23px}.modalcopy{font-size:13px;color:var(--muted);white-space:pre-line}.modalcopy strong{color:var(--text)}.result{padding:12px 0;border-bottom:1px solid var(--line)}.result>button{background:none;color:var(--text);font-weight:600;text-align:left;padding:6px 0}.result small{display:block;color:var(--muted);font-size:11px}.empty{padding:28px 0;color:var(--muted)}.themeoptions{display:flex;gap:8px}.themeoptions button{flex:1}.themeoptions button.selected{background:var(--yellow);color:#111;border-color:var(--yellow)}#toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translateX(-50%);background:var(--yellow);color:#111;max-width:calc(100% - 30px);padding:13px 20px;border-radius:6px;box-shadow:0 5px 25px #0005;font-size:13px;font-weight:600}.mapmode .workspace{display:block}.mapmode .routepanel{display:none}.mapmode .mapaside{position:static}.mapmode #map{height:65dvh}.mapmode .citycard{display:none}.mapmode .dashboard,.mapmode .departure,.mapmode .nextpanel,.mapmode #alerts{display:none}
@media(min-width:1400px){.hero{border-radius:0 0 12px 12px}}@media(max-width:850px){main{padding:0 20px}.hero{padding:20px 24px 16px;min-height:310px}.hero-top .micro{font-size:9px;letter-spacing:1.2px}h1{font-size:89px}.hero-side{right:6%;font-size:11px}.tracking{font-size:8px;letter-spacing:2.2px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.dashboard{gap:18px}.dashboard>div+div{padding-left:18px}.timer{font-size:74px}.progressbox strong{font-size:24px}.daystrip h2{font-size:30px}.placegrid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){body{font-size:13px}main{padding:0 17px}.hero{min-height:310px;padding:16px 20px 12px;background-position:center,62% 50%}.hero-top .micro{font-size:8px;max-width:250px}.hero-copy{margin-top:26px}h1{font-size:86px}.hero-side{top:132px;right:6%;font-size:10px;letter-spacing:2px}.hero-bottom{font-size:8px;letter-spacing:1px}.hero-top .iconbutton{width:38px;height:38px;font-size:21px}.tracking{font-size:7px;letter-spacing:2px}.daystrip{padding:22px 0 15px}.daystrip .micro{font-size:8px;letter-spacing:1px}.daystrip h2{font-size:27px;line-height:1.1}.daystrip .ghost{font-size:10px;padding:8px}.day{min-width:74px;padding:9px 11px}.day strong{font-size:20px}.day small{font-size:8px}.days{padding-bottom:16px}.departure{gap:10px;padding:13px 0}.departure>div+div{padding-left:12px}.departure .micro{font-size:8px;letter-spacing:1px}.departure strong{font-size:18px}.dashboard{grid-template-columns:1.15fr 1fr;gap:15px;padding:20px 0}.dashboard .micro{font-size:9px;letter-spacing:1.2px}.timer{font-size:78px;margin:7px 0 10px}.timerbox .primary{width:100%;padding:9px 12px;font-size:12px}.finishbox>strong{font-size:44px;margin-top:12px}.finishbox #delta{font-size:12px}.finishbox small{font-size:10px}.dashboard .progressbox{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:13px 0 0;display:grid;grid-template-columns:1fr auto;gap:7px 12px}.progressbox strong{font-size:16px;margin:0}.progress{margin:0;align-self:center}.progressbox #sessionHint{font-size:10px;text-align:right}.nextpanel{padding:16px;margin:18px 0;align-items:stretch;flex-direction:column;gap:14px}.nextpanel h2{font-size:28px}.nextactions{flex-wrap:nowrap}.nextactions button{flex:1;padding:10px 8px;font-size:12px}.workspace{display:flex;flex-direction:column;gap:15px}.mapaside{position:static;order:2}.sectionhead h3{font-size:16px;letter-spacing:.5px}.sectionhead h3 span{display:block;margin:3px 0 0;font-size:10px}.stop{padding-left:33px;margin-left:15px;padding-bottom:23px}.stopname{font-size:24px}.stopmeta{gap:5px 10px}.stoptools{gap:12px}.stoptools button{font-size:11px;min-height:34px}.stopdesc{font-size:11px}.mapaside #map{height:350px}.citycard>span{font-size:44px}.footer{font-size:8px;flex-wrap:wrap;letter-spacing:.4px}.placegrid{grid-template-columns:1fr}.formrow{gap:9px}.mapmode #map{height:60dvh}.mapmode .mapaside{width:100%}.mapmode .workspace{display:block}.modalhead h2{font-size:27px}.mapcontrols .small{font-size:11px}.mapcontrols .ghost{font-size:11px}}
.days{scrollbar-width:none}.days::-webkit-scrollbar{display:none}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,color .15s}button:hover{filter:brightness(1.08)}}

/* v1.2: two independent title lines; no light-theme block crossing the NYC line. */
h1{display:flex;flex-direction:column;gap:.08em;line-height:.9}
h1>.brand-top{display:block;color:inherit;padding:0}
h1 .brand-slash{color:var(--yellow);padding-left:8px}
h1 em{display:block}
[data-theme=light] h1 em{background:transparent;margin:0;padding:0;color:#1c1c1c}
.tracking{margin-top:16px}
#load{text-align:center;padding:16vh 20px;color:var(--text);font:800 38px 'Barlow Condensed',Impact,sans-serif}
#load img{display:block;width:140px;height:140px;object-fit:contain;margin:0 auto 22px;border-radius:28px}
#load small{display:block;font:13px 'DM Sans',Arial,sans-serif;color:var(--muted);margin-top:12px}

/* v1.3 — compact operational timeline */
.stop{padding:0 0 0 25px;margin-left:11px;border-left:2px solid var(--line)}
.stopnum{left:-12px;top:16px;width:22px;height:22px;font-size:13px}
.stoprow{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:78px;padding:12px 0;border-bottom:1px solid var(--line)}
.stop .time{font-size:21px;font-weight:700;align-self:start;padding-top:3px}
.stopname{font-size:24px;line-height:1.05;display:inline-flex;align-items:center;gap:6px}
.stop-main{min-width:0}.row-caption{color:var(--muted);font:13px 'Barlow Condensed';margin-top:5px}
.row-state{color:var(--muted);font:12px 'Barlow Condensed';letter-spacing:.6px;white-space:nowrap}
.meal-state{color:var(--green);border:1px solid var(--green);border-radius:12px;padding:4px 7px;font-size:10px}
.row-metrics{display:flex;gap:14px}.metric{display:flex;align-items:center;gap:5px}.metric span{display:flex;flex-direction:column}.metric strong{font:600 20px 'Barlow Condensed';white-space:nowrap}.metric small{font:10px 'Barlow Condensed';color:var(--muted);max-width:85px}.metric-icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.stopname>.metric-icon{width:18px;height:18px}.stop.current .stoprow{background:linear-gradient(90deg,#fcd1160b,transparent);border-bottom-color:#fcd11666}.stop.done .stopname{color:var(--text)}.stop.done .time{color:var(--muted)}
.row-details{padding:0 0 8px 56px}.row-details summary{color:var(--muted);font-size:10px;cursor:pointer;width:max-content;padding:4px 0;list-style:none}.row-details summary::-webkit-details-marker{display:none}.row-details summary span{margin-left:6px}.row-details[open] summary{color:var(--text)}.row-location,.row-source{font-size:11px;color:var(--muted);margin:5px 0}.row-source.warning{color:var(--pink)}.row-details .stoptools{margin-top:4px}.hotel-stop .stoprow{min-height:65px}.hotel-stop .row-state{font-size:11px}
.quickbar{position:fixed;z-index:31;left:50%;transform:translateX(-50%);bottom:calc(73px + env(safe-area-inset-bottom));width:min(520px,100%);display:flex;gap:8px;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:12px 12px 0 0}.quickbar button{display:flex;justify-content:center;align-items:center;gap:6px;flex:1;font:700 19px 'Barlow Condensed';min-height:45px;border-radius:7px;border:1px solid var(--pink);color:var(--pink);background:var(--surface)}.quickbar button span{font-size:16px}.quickbar button:nth-child(2){color:var(--blue);border-color:var(--blue)}.quickbar button:last-child{color:#111;background:var(--yellow);border-color:var(--yellow)}.footer{padding-bottom:185px}.bottomnav{border-radius:0}
.timing-summary{display:flex;gap:20px;margin:20px 0}.timing-summary>div{flex:1;border-left:3px solid var(--yellow);padding-left:12px}.timing-summary small{font:11px 'Barlow Condensed';letter-spacing:1px;color:var(--muted);display:block}.timing-summary strong{font:700 38px 'Barlow Condensed'}
.catalog-stop{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.catalog-stop small{color:var(--muted);font-size:10px}.catalog-stop h3{font-size:25px;line-height:1.1;margin:5px 0}.catalog-stop p{color:var(--muted);font-size:12px}.catalog-stop .metric-icon{width:15px;height:15px}.catalog-stop button{font-size:22px;min-width:44px}
@media(max-width:650px){.stop{padding-left:18px;margin-left:10px}.stoprow{grid-template-columns:39px minmax(0,1fr) auto;gap:7px;min-height:74px}.stop .time{font-size:19px}.stopname{font-size:22px}.row-caption{font-size:12px}.row-state{font-size:10px;letter-spacing:.2px}.row-metrics{gap:7px}.metric{gap:3px}.metric-icon{width:18px;height:18px}.metric strong{font-size:17px}.metric small{font-size:9px;max-width:52px}.row-details{padding-left:46px}.row-details summary{font-size:9px}.meal-state{font-size:9px;padding:3px 5px}.quickbar{gap:6px;padding:8px 10px}.quickbar button span{font-size:15px}.nextpanel{padding:13px 15px;margin:17px 0}.nextpanel h2{font-size:26px}.hero{min-height:280px}.hero-copy{margin-top:16px}h1{font-size:74px}.tracking{font-size:7px}.hero-side{top:126px}.hero-bottom{margin-top:18px}}
@media(max-width:360px){.row-metrics{flex-direction:column;gap:5px}.metric span{flex-direction:row;align-items:baseline;gap:4px}.metric small{max-width:unset}.row-metrics .metric strong{font-size:16px}}
