@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#12131c;--panel:#1b1d29;--orange:#f08a3c;--text:#ecebf2;--muted:#a2a3b8;--on-track:#7fd49a;--behind:#f2c14e;--turn-around:#ff7a6b;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible", system-ui, sans-serif;--tap:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-variant-numeric:tabular-nums;margin:0;font-size:18px;line-height:1.45;overflow-x:clip}h1,h2,h3{font-family:var(--font-display);line-height:1.1}.app{max-width:560px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));margin:0 auto}.muted{color:var(--muted)}.field{gap:6px;margin:24px 0 16px;display:grid}input{min-height:var(--tap);background:var(--panel);color:var(--text);font:inherit;border:1px solid #2c2f40;border-radius:10px;padding:10px 12px}button{min-height:var(--tap);min-width:var(--tap);font:inherit;cursor:pointer;border-radius:10px}.primary{background:var(--orange);width:100%;color:var(--bg);border:0;font-weight:700}.primary:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--orange);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.masthead h1{color:var(--orange);letter-spacing:-.02em;margin:0;font-size:2.4rem}.masthead p{margin:4px 0 20px}.panel{background:var(--panel);border:1px solid #262939;border-radius:14px;margin:16px 0;padding:16px}.form .field{min-width:0;margin:0 0 16px}.field>span{font-weight:700}.field small,.small{font-size:.85rem}.form input{width:100%;min-width:0}.form input[type=date],.form input[type=time]{appearance:none;text-align:left;max-width:100%;display:block}.form input::-webkit-date-and-time-value{text-align:left}.avoid-line{margin:-8px 0 16px}.avoid-line p{margin:0 0 4px}.avoid-line .suggest{padding:0;font-weight:700}.row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.check{min-height:var(--tap);align-items:center;gap:12px;margin:0 0 16px;display:flex}.check input{width:24px;height:24px;min-height:0;accent-color:var(--orange)}.secondary{width:100%;color:var(--text);background:0 0;border:1px solid #3a3d55;margin-top:10px}.link{color:var(--orange);background:0 0;border:0;padding:0 4px;text-decoration:underline}.error{color:var(--turn-around);font-weight:700}.banner{color:#ffd2ad;background:#2a1d12;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;display:flex}.results h2{margin:32px 0 12px;font-size:1.6rem}.results h3{margin:24px 0 8px;font-size:1.25rem}.num{font-variant-numeric:tabular-nums;font-weight:700}.stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--panel);border-radius:14px;gap:2px;padding:12px;display:grid}.stat .num{font-size:1.35rem}.stat.big .num{font-family:var(--font-display);color:var(--orange);font-size:2rem}.stat.warn .num{color:var(--behind)}.stat .label,.tonight .label{color:var(--muted);font-size:.85rem}.doors{border:1px solid #262939;min-width:0}.doors legend{float:left;width:100%;font-family:var(--font-display);margin:0 0 8px;padding:0;font-size:1.17em;font-weight:700;line-height:1.1}.doors legend+*{clear:both}.doors p{margin:0 0 10px}.door-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.door{cursor:pointer;border:1px solid #3a3d55;border-radius:12px;min-height:56px;padding:8px 12px;display:grid}.door input{opacity:0;pointer-events:none;position:absolute}.door.on{border-color:var(--orange);background:#2a1d12}.door:focus-within{outline:3px solid var(--orange);outline-offset:2px}.door-s{font-weight:700}.door-h{color:var(--muted);font-size:.9rem}.door-d{font-size:.9rem}.tonight h3{margin-top:0}.tonight-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tonight-grid>div{display:grid}.flags{margin:12px 0 4px;padding-left:20px}.map-wrap{margin:16px 0}.map{background:var(--bg);border:1px solid #262939;border-radius:14px;height:380px;overflow:hidden}.map-key{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 0;font-size:.85rem;display:flex}.key-route,.key-busy{border-top:4px solid var(--orange);width:24px;height:0;display:inline-block}.key-busy{border-top:3px dashed var(--turn-around)}.map-pin{background:var(--orange);width:28px;height:28px;color:var(--bg);border:2px solid var(--bg);font:700 14px/1 var(--font-body);border-radius:50%;place-items:center;display:grid;box-shadow:0 1px 4px #0008}.map-home{background:var(--text);color:var(--bg);border:2px solid var(--orange);font:700 13px/1.2 var(--font-body);border-radius:8px;padding:3px 8px;position:relative}.map-home:after{content:"";background:var(--orange);border-radius:0 0 2px 2px;width:3px;height:17px;position:absolute;top:100%;left:calc(50% - 1.5px)}.map-label{color:var(--muted);font:12px/1 var(--font-body);text-shadow:0 0 3px var(--bg), 0 0 3px var(--bg);white-space:nowrap;pointer-events:none}.maplibregl-ctrl-attrib{font-size:11px}.maplibregl-ctrl-attrib.maplibregl-attrib-empty{display:block}.schedule{margin:0;padding:0;list-style:none}.schedule li{border-bottom:1px solid #262939;grid-template-columns:32px 1fr auto;align-items:start;gap:10px;padding:12px 0;display:grid}.schedule .pin{background:var(--orange);width:28px;height:28px;color:var(--bg);border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.schedule li.pass .pin{color:var(--text);background:#3a3d55}.row-main,.row-side{display:grid}.row-name{font-weight:700}.row-how,.row-meta{color:var(--muted);font-size:.88rem}.row-side{text-align:right}.row-time{font-variant-numeric:tabular-nums;font-weight:700}.totals{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.totals p{grid-column:1/-1;margin:8px 0 0}.avoid-warning{border:1px solid var(--behind);width:100%;color:var(--behind);text-align:left;background:#f2c14e1a;border-radius:12px;margin:0 0 16px;padding:12px 16px;font-weight:700;display:block}.notes p{margin:4px 0}.button{min-height:var(--tap);border-radius:10px;justify-content:center;align-items:center;margin-top:8px;padding:10px 16px;text-decoration:none;display:flex}.footnote{margin-top:24px}.map .maplibregl-ctrl-group{background:var(--panel);box-shadow:none;border:1px solid #3a3d55}.map .maplibregl-ctrl-group button{width:var(--tap);height:var(--tap)}.map .maplibregl-ctrl-group button+button{border-top:1px solid #3a3d55}.map .maplibregl-ctrl-group .maplibregl-ctrl-icon{filter:invert()}.map .maplibregl-ctrl.maplibregl-ctrl-attrib{color:var(--text);background:#12131ce6}.map .maplibregl-ctrl-attrib a{color:var(--text)}.step{min-height:1.5em;color:var(--text);align-items:center;gap:10px;margin:10px 0 0;font-weight:700;display:flex}.spinner{border:3px solid #3a3d55;border-top-color:var(--orange);border-radius:50%;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-color:var(--orange);animation:none}}.huge{min-height:60px;font-size:1.2rem;font-family:var(--font-display)}.start-night .check{margin:12px 0 0}.start-night p{margin:8px 0 0}.resume p{margin:0 0 12px}.handoff{margin:16px 0 0}.handoff a,.night .handoff a{color:var(--orange);min-height:var(--tap);align-items:center;font-weight:700;display:inline-flex}.night{min-height:100vh}.night-body{padding-top:12px}.status-bar{z-index:10;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;color:var(--bg);background:var(--on-track);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #0009}.status-bar.behind{background:var(--behind)}.status-bar.turn_around{background:var(--turn-around)}.status-main{font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1.1}.status-sub{font-variant-numeric:tabular-nums;gap:12px;font-weight:700;display:flex}.turn-banner{z-index:9;color:#ffd9d3;border-bottom:3px solid var(--turn-around);background:#3a1512;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:14px 16px;font-size:1.1rem;display:flex;position:sticky;top:64px}.turn-banner strong{font-family:var(--font-display);color:var(--turn-around);width:100%;font-size:1.4rem}.turn-banner .link{color:#ffd9d3;margin-left:auto}.now-card{margin-top:0}.now-label{color:var(--muted);margin:0;font-size:.9rem}.now-name{color:var(--orange);margin:4px 0;font-size:1.7rem}.now-how{margin:0 0 14px}.map.tall{height:min(52vh,440px)}.map-you{border:3px solid var(--text);background:#6fb6ff;border-radius:50%;width:22px;height:22px;box-shadow:0 0 0 6px #6fb6ff44}.map-pin.done{color:var(--muted);background:#3a3d55}.map-pin.now{background:var(--text);border-color:var(--orange);transform:scale(1.15)}.where .secondary,.replan .secondary{margin-top:4px}.where p,.replan p{margin:4px 0}.night-rows li{grid-template-columns:32px 1fr auto;align-items:center}.night-rows li.now .row-name{color:var(--orange)}.night-rows li.done .row-name{color:var(--muted);text-decoration:line-through}.tick{width:52px;height:52px;color:var(--bg);background:0 0;border:2px solid #3a3d55;font-size:1.5rem;font-weight:700}.tick.on{border-color:var(--on-track);background:var(--on-track)}.night-foot{grid-template-columns:1fr 1fr;gap:10px;display:grid}.debug{overflow-wrap:anywhere;border:1px dashed #3a3d55;border-radius:10px;margin-top:16px;padding:12px;font-family:ui-monospace,Menlo,monospace}.debug h3{margin:0 0 6px;font-size:1rem}.debug ol{margin:6px 0;padding-left:28px}.app-foot{text-align:center;margin-top:24px}.settings .field{margin:16px 0 12px}.settings input{width:100%;min-width:0}.key-saved{color:var(--on-track);font-weight:700}.settings-notes{color:var(--muted);margin:16px 0 0;padding-left:20px}.settings-notes li+li{margin-top:6px}.jack h3{margin:0 0 10px}.jack-ask{grid-template-columns:1fr auto;gap:8px;display:grid}.jack-ask input{width:100%;min-width:0}.jack-ask .primary{width:auto;margin:0;padding:0 18px}.jack-answer{border-top:1px solid #262939;margin-top:12px;padding-top:12px}.jack-reply{margin:0 0 8px;font-size:1.05rem}.jack-change{color:var(--orange);margin:0 0 8px;font-weight:700}.jack-note{margin:8px 0 0}.jack-choice{grid-template-columns:1fr 1fr;gap:10px;display:grid}.jack-choice .primary,.jack-choice .secondary{margin-top:0}
