:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{color:#000;background:#fff;margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--night:#121226;--deck:#1a1a33;--deck-2:#22223f;--rule:#2f2f52;--ink:#ecebf5;--dim:#9c9bbd;--lamp:#f2a93b;--lamp-ink:#241603;--jade:#3fbf8f;--amber:#e9b949;--chili:#e5484d;--sky:#6fb7ff;--f-display:"Mitr","IBM Plex Sans Thai",system-ui,sans-serif;--f-body:"IBM Plex Sans Thai","Segoe UI",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}html,body{background:var(--night);height:100%;color:var(--ink)}body{font-family:var(--f-body);font-size:14px;line-height:1.5}.app{box-sizing:border-box;height:100%;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));grid-template-columns:minmax(0,1fr) 380px;gap:12px;padding-block:12px;display:grid}.stage{border:1px solid var(--rule);background:#0d0d1d;border-radius:14px;min-width:0;min-height:0;position:relative;overflow:hidden}#c{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lbl{white-space:nowrap;border:1px solid var(--rule);color:var(--dim);background:#121226d1;border-radius:9px;padding:1px 7px;font-size:11.5px;font-weight:500;position:absolute;transform:translate(-50%,-100%)}.lbl.on{color:var(--lamp-ink);background:var(--lamp);border-color:var(--lamp)}.lbl.cust{color:#06192b;background:var(--sky);border-color:var(--sky)}.lbl.road{color:#9c9bbdbf;text-shadow:0 1px 2px #0d0d1d,0 0 6px #0d0d1d;background:0 0;border:0;padding:0;font-size:10.5px;font-weight:400;transform:translate(-50%,-50%)}.lbl.road.main{color:#c9c7de;font-size:12px;font-weight:500}.lbl.road.water{color:#7fb2e6;font-style:italic}.lbl.road.park{color:#7fd8a0;font-style:italic}.lbl.road.lock{color:var(--lamp);letter-spacing:.02em;font-size:13px;font-weight:600}.lbl.bts{color:#0b2416;background:#7fd8a0;border-color:#7fd8a0;font-size:11px}.lbl.lm{color:var(--ink);border-color:var(--dim);background:#22223feb;font-size:11px}.hud{pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.hud>*{pointer-events:auto}.stats{flex-wrap:wrap;gap:6px;display:flex}.stat{border:1px solid var(--rule);background:#121226e0;border-radius:10px;padding:5px 11px;line-height:1.25;display:grid}.stat small{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:10.5px}.stat b{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600}.stat.clock b{color:var(--lamp)}.goal{box-sizing:border-box;border:1px solid var(--rule);background:#121226e0;border-radius:10px;align-items:center;gap:8px;width:100%;min-width:0;padding:5px 11px;font-size:12.5px;line-height:1.25;display:flex}.goal .g-name{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:42%;overflow:hidden}.goal .pbar{flex:1;min-width:30px;height:6px;margin:0}.goal .pbar i{transition:width .4s}.goal small{color:var(--dim);white-space:nowrap;flex:none;font-size:11px}.goal .g-rew{color:var(--lamp)}.goal.done{border-color:var(--jade)}.goal.done .pbar i{background:var(--jade)}.goal.done .g-name:before{content:"✓ ";color:var(--jade)}.goal.done .g-rew{color:var(--jade)}@media (prefers-reduced-motion:reduce){.goal .pbar i{transition:none}}.lvhud{z-index:11;border:1px solid var(--rule);pointer-events:none;background:#121226e0;border-radius:10px;align-items:center;gap:10px;width:min(230px,100% - 20px);padding:6px 12px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.lvhud b{font-family:var(--f-display);color:var(--lamp);flex:none;font-size:17px;font-weight:600}.lvhud .pbar{border-radius:4px;flex:1;height:8px;margin:0}.lvhud .pbar i{transition:width .4s}.lvhud small{color:var(--dim);flex:none;font-size:11px}@media (prefers-reduced-motion:reduce){.lvhud .pbar i{transition:none}}.stage{container-type:inline-size}@container (width<=1260px){.hud{top:58px}}.ctrls{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.btn{font:500 13px var(--f-body);color:var(--ink);border:1px solid var(--rule);cursor:pointer;background:#22223feb;border-radius:9px;padding:6px 11px}.btn:hover{border-color:var(--dim)}.btn[aria-pressed=true]{background:var(--lamp);color:var(--lamp-ink);border-color:var(--lamp)}.btn:focus-visible,.opt:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}.seg{border:1px solid var(--rule);background:#22223feb;border-radius:9px;padding:2px;display:inline-flex}.seg .btn{font-family:var(--f-mono);background:0 0;border:0;padding:4px 9px}.seg .btn[aria-pressed=true]{background:var(--lamp);color:var(--lamp-ink)}.ico{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px;display:none}#b-speed{display:none}#b-pause[data-state=pause] .i-play,#b-pause[data-state=play] .i-pause,#b-sound[data-muted=true] .i-snd,#b-sound:not([data-muted=true]) .i-mute{display:none!important}.ctrls{position:relative}.snd-pop{z-index:12;border:1px solid var(--rule);background:#1a1a33f7;border-radius:12px;gap:2px;width:min(260px,100vw - 52px);padding:4px 14px 8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000073}.snd-pop .toggle{min-height:44px;color:var(--ink);font-size:14px}.vol-row{min-height:44px;color:var(--dim);grid-template-columns:auto minmax(0,1fr) 3.2em;align-items:center;gap:10px;font-size:13px;display:grid}.vol-row input{width:100%;height:44px;accent-color:var(--lamp);margin:0}.vol-row output{font:600 12.5px var(--f-mono);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.toggle input{width:20px;height:20px;accent-color:var(--lamp);margin:0}.legend{color:var(--dim);border:1px solid var(--rule);background:#121226d9;border-radius:9px;flex-wrap:wrap;gap:10px;padding:4px 10px;font-size:11.5px;display:flex;position:absolute;bottom:10px;left:10px}.legend i{vertical-align:2px;border-radius:2px;width:14px;height:4px;margin-right:5px;display:inline-block}.rainbadge{border:1px solid var(--sky);color:var(--sky);background:#6fb7ff29;border-radius:9px;padding:4px 10px;font-size:12px;position:absolute;bottom:10px;right:10px}.veil{background:#0a0a188c;place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow:auto}.modal{background:var(--deck);border:1px solid var(--rule);border-radius:16px;gap:12px;width:min(440px,100%);max-height:100%;padding:18px;display:grid;overflow:auto;box-shadow:0 20px 60px #00000080}.modal .tag{letter-spacing:.1em;text-transform:uppercase;color:var(--lamp);font-size:11px}.modal h2{font-family:var(--f-display);text-wrap:balance;margin:0;font-size:21px;font-weight:500;line-height:1.3}.modal p{color:var(--dim);margin:0}.opts{gap:8px;display:grid}.opt{text-align:left;font:inherit;color:var(--ink);background:var(--deck-2);border:1px solid var(--rule);cursor:pointer;border-radius:11px;gap:2px;padding:10px 12px;display:grid}.opt:hover{border-color:var(--lamp)}.opt b{font-weight:600}.opt span{color:var(--dim);font-size:12.5px}.opt.primary{border-color:var(--lamp)}.opt.risk b{color:var(--amber)}.opt.bad b{color:var(--chili)}.sum{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.sum div{background:var(--deck-2);border-radius:10px;padding:8px 10px;display:grid}.sum small{color:var(--dim);font-size:11.5px}.sum b{font-family:var(--f-mono);font-size:18px}.panel{align-content:start;gap:12px;min-width:0;min-height:0;display:grid;overflow:auto}.card{background:var(--deck);border:1px solid var(--rule);border-radius:14px;gap:10px;min-width:0;padding:14px;display:grid}.card h2{font-family:var(--f-display);justify-content:space-between;align-items:baseline;gap:8px;margin:0;font-size:16px;font-weight:500;display:flex}.card h2 small{font-family:var(--f-body);color:var(--dim);font-size:12px;font-weight:400}.brand{align-items:center;gap:10px;display:flex}.brand h1{font-family:var(--f-display);letter-spacing:.01em;margin:0;font-size:22px;font-weight:600}.brand p{color:var(--dim);margin:0;font-size:12.5px}.tiffin{flex:none;grid-template-rows:5px repeat(3,1fr);gap:2px;width:26px;height:32px;display:grid}.tiffin i{background:var(--lamp);border-radius:3px;display:block}.tiffin i:first-child{background:var(--dim);border-radius:3px 3px 0 0;width:60%;margin:0 auto}.tiffin i:nth-child(3){background:#c9c7de}.now{gap:4px;display:grid}.now .mode{font-family:var(--f-display);font-size:17px}.now .meta{color:var(--dim);font-size:13px}.bar{background:var(--deck-2);border-radius:3px;height:6px;overflow:hidden}.bar i{background:var(--lamp);height:100%;transition:width .3s;display:block}.stops{gap:6px;margin:0;padding:0;list-style:none;display:grid}.stops li{background:var(--deck-2);border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:grid}.dot{border-radius:50%;width:9px;height:9px}.dot.pick{background:var(--lamp)}.dot.drop{background:var(--sky)}.stops .t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stops li.cur{outline:1px solid var(--lamp)}.mini{font:500 12px var(--f-body);color:var(--ink);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:7px;padding:2px 8px}.mini:hover{border-color:var(--lamp)}.empty{color:var(--dim);margin:0;font-size:13px}.orders{gap:8px;display:grid}.order{background:var(--deck-2);border:1px solid var(--rule);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.order:hover{border-color:var(--dim)}.order .top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.order .rn{min-width:0;font-weight:600}.order .pay{font-family:var(--f-mono);color:var(--lamp);font-size:17px;font-weight:600}.order .det{color:var(--dim);font-size:12.5px}.order .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.chip{border-radius:9px;padding:1px 8px;font-size:11.5px;font-weight:600}.chip.good{color:var(--jade);background:#3fbf8f29}.chip.warn{color:var(--amber);background:#e9b94929}.chip.crit{color:var(--chili);background:#e5484d2e}.chip.surge{color:var(--sky);background:#6fb7ff29}.acts{gap:6px;display:flex}.accept{font:600 13px var(--f-body);color:var(--lamp-ink);background:var(--lamp);cursor:pointer;border:0;border-radius:8px;padding:5px 14px}.accept:disabled{background:var(--rule);color:var(--dim);cursor:not-allowed}.exp{font-family:var(--f-mono);color:var(--dim);font-size:11.5px}.log{gap:5px;max-height:200px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid;overflow:auto}.log li{border-left:3px solid var(--rule);padding-left:8px}.log li.good{border-color:var(--jade)}.log li.warn{border-color:var(--amber)}.log li.crit{border-color:var(--chili)}.log li.info{border-color:var(--sky)}.log time{font-family:var(--f-mono);color:var(--dim);margin-right:6px}.toggle{color:var(--dim);align-items:center;gap:8px;font-size:13px;display:flex}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.plan{gap:6px;display:grid}.plan .better{border:1px solid var(--lamp);background:#f2a93b14;border-radius:10px;justify-items:start;gap:4px;padding:8px 10px;display:grid}.plan .better b{color:var(--lamp)}.prof{gap:6px;display:grid}.prof-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.wallet{background:var(--deck-2);border-radius:10px;justify-content:space-between;align-items:baseline;padding:8px 12px;display:flex}.wallet small{color:var(--dim)}.wallet b{color:var(--lamp);font-size:20px}.shop{gap:6px;margin:0;padding:0;list-style:none;display:grid}.shop li{background:var(--deck-2);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.shop li>div{min-width:0;display:grid}.shop li b{font-size:13.5px;font-weight:600}.shop li.owned{opacity:.75}.buy{font:600 13px var(--f-mono);color:var(--lamp-ink);background:var(--lamp);cursor:pointer;border:0;border-radius:8px;flex:none;padding:5px 12px}.buy:disabled{background:var(--rule);color:var(--dim);cursor:not-allowed}.buy:focus-visible,.mini:focus-visible,.accept:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}#rider .det{color:var(--dim);font-size:12.5px}#rider p.det{margin:0}.hud-left{pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(330px,100%);display:flex}.hud-left>*{pointer-events:auto}.garage{border:1px solid var(--rule);background:#1a1a33f2;border-radius:12px;flex-direction:column;width:min(330px,100vw - 52px);min-height:0;max-height:calc(100dvh - 230px);display:flex;box-shadow:0 10px 30px #00000059}.g-head{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:9px 12px;display:flex}.g-head:focus-visible{outline:2px solid var(--lamp);outline-offset:-2px;border-radius:12px}.g-title{font-family:var(--f-display);flex:1;min-width:0;font-size:14.5px}.g-sum{color:var(--lamp);font-size:13px}.g-caret{border-right:2px solid var(--dim);border-bottom:2px solid var(--dim);width:8px;height:8px;transition:transform .2s;transform:rotate(45deg)translate(-2px,-2px)}.garage.closed .g-caret{transform:rotate(-45deg)}.garage.closed #rider-body{display:none}.hud-right{pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex}.hud-right>*{pointer-events:auto}.ordfloat{border:1px solid var(--rule);background:#1a1a33f2;border-radius:12px;flex-direction:column;width:min(330px,100vw - 52px);min-height:0;max-height:calc(100dvh - 230px);display:flex;box-shadow:0 10px 30px #00000059}.ordfloat.closed .obody{display:none}.ordfloat.closed .g-caret{transform:rotate(-45deg)}.ordfloat.fresh .g-sum{background:var(--lamp);color:var(--lamp-ink);border-radius:8px;padding:0 7px}.obody{gap:8px;min-height:0;padding:0 10px 10px;display:grid;overflow:auto}.obody #cap-note{color:var(--dim);margin:0;font-size:12px}.obody .order{padding:9px 10px}.lbl.road.done{color:#ffd36b;font-weight:600}.lbl{top:0;left:0}.pick-card{z-index:12;border:1px solid var(--rule);background:#1a1a33f2;border-radius:11px;align-items:flex-start;gap:4px;max-width:min(260px,100% - 16px);padding:8px 4px 8px 11px;font-size:12.5px;display:flex;position:absolute;top:0;left:0;box-shadow:0 8px 24px #00000073}.pc-body{gap:1px;min-width:0;display:grid}.pc-body b{color:var(--ink);font-weight:600}.pc-body small{color:var(--dim);font-size:11.5px}.pc-x{font:500 16px/1 var(--f-body);color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;width:28px;height:28px}.pc-x:hover{color:var(--ink);background:var(--deck-2)}.veil{z-index:20}.hud{z-index:10}.toast{z-index:15;pointer-events:none;text-align:center;background:linear-gradient(#3a2c12,#241a0a);border:1px solid #ffd36b;border-radius:14px;justify-items:center;gap:1px;max-width:calc(100% - 40px);padding:9px 18px;display:grid;position:absolute;top:76px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #00000080}.toast small{letter-spacing:.12em;text-transform:uppercase;color:#ffd36b;font-size:10.5px}.toast b{font-family:var(--f-display);font-size:18px;font-weight:500}.toast span{color:#f3e4c0;font-size:12.5px}.toast.show{animation:.45s ease-out toastIn}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.toast.show{animation:none}}.gtabs{background:var(--deck-2);z-index:1;border-radius:9px;grid-template-columns:1fr 1fr 1.4fr;gap:4px;padding:3px;display:grid;position:sticky;top:0}.gtabs button{font:500 12.5px var(--f-body);color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 6px}.gtabs button[aria-selected=true]{background:var(--lamp);color:var(--lamp-ink)}.gtabs button:focus-visible,.swatch:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}#rider-body h3{font-family:var(--f-display);color:var(--ink);margin:6px 0 0;font-size:13.5px;font-weight:500}.chip.title{color:#ffd36b;background:#ffd36b29}.cos{gap:7px;display:grid}.cos-row{gap:4px;display:grid}.sw{flex-wrap:wrap;gap:7px;display:flex}.swatch{border:2px solid var(--rule);background:linear-gradient(135deg,var(--c1) 50%,var(--c2) 50%);cursor:pointer;border-radius:50%;width:28px;height:28px;padding:0}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--lamp)}.swatch.locked{opacity:.28;cursor:not-allowed;border-style:dashed}.titles{flex-wrap:wrap;gap:5px;display:flex}.titles .mini[aria-pressed=true]{background:var(--lamp);color:var(--lamp-ink);border-color:var(--lamp)}.achwrap{gap:4px;display:grid}.ach{gap:5px;margin:0;padding:0;list-style:none;display:grid}.ach li{background:var(--deck-2);border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:7px 9px;display:grid}.ach li>div{gap:2px;min-width:0;display:grid}.ach b{font-size:13px;font-weight:600}.ach .medal{border:2px dashed var(--rule);border-radius:50%;width:16px;height:16px;margin-top:2px}.ach li.done .medal{background:radial-gradient(circle at 35% 35%,#fff3c4,#ffd36b 45%,#b8892a);border:0}.ach li.done b{color:#ffd36b}.ach .rw{color:var(--lamp);font-size:11.5px}.ach li.done .rw{color:var(--dim)}.pbar{background:var(--rule);border-radius:2px;height:4px;margin-top:2px;display:block;overflow:hidden}.pbar i{background:var(--lamp);height:100%;display:block}.pbar.big{border-radius:5px;height:9px}.lvbox{background:var(--deck-2);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.lvbig{font-family:var(--f-display);color:var(--lamp);flex:none;font-size:26px;font-weight:600}.lvbar{flex:1;gap:4px;min-width:0;display:grid}.lvtag{color:var(--lamp-ink);background:var(--lamp);white-space:nowrap;border-radius:6px;margin-top:1px;padding:1px 6px;font-size:11px;font-weight:600}.ach li:not(.done) .lvtag{background:var(--rule);color:var(--dim)}#rider-body{gap:8px;min-height:0;padding:0 12px 12px;display:grid;overflow:auto}#rider-body .shop li{padding:7px 9px}@media (width<=900px){.garage,.ordfloat{max-height:calc(62vh - 110px)}}@media (prefers-reduced-motion:reduce){.g-caret{transition:none}}.plan .det{color:var(--dim);font-size:12.5px}@media (width<=900px){html,body{height:auto}.app{grid-template-columns:minmax(0,1fr);height:auto}.stage{height:62vh;min-height:360px}.panel{overflow:visible}}@media (width<=520px){.stat b{font-size:14px}.stat{padding:4px 8px}.legend{display:none}}@media (pointer:coarse),(width<=900px){.btn,.seg .btn{min-width:44px;min-height:44px}.g-head,.accept,.mini,.buy,.opt,.gtabs button,.toggle{min-height:44px}.swatch,.pc-x{width:44px;height:44px}}@container (width<=560px){.hud{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;gap:6px;display:grid}.hud-left,.hud-right{display:contents}.stats{order:1;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.stats .stat{min-width:0;padding:3px 6px}.goal{order:1;grid-column:1/-1;gap:6px;padding:3px 8px;font-size:11.5px}.goal small{font-size:10.5px}.ctrls{flex-wrap:nowrap;order:2;grid-column:1/-1;justify-content:stretch;gap:4px}.ctrls .btn{flex:1;justify-content:center;align-items:center;min-width:0;padding:0 4px;display:flex}.ctrls .seg{display:none}.ctrls #b-speed{display:flex}.ctrls .ico{display:block}.ctrls .lab{display:none}.ctrls #b-speed .lab{font-family:var(--f-mono);display:block}.garage{order:3;width:auto}.ordfloat{order:4;width:auto}.garage:not(.closed),.ordfloat:not(.closed){grid-column:1/-1}.garage.closed .g-title{display:none}.garage.closed .g-sum{white-space:nowrap;flex:1}.garage.closed .g-head,.ordfloat.closed .g-head{gap:6px;padding:6px 8px}.g-sum{font-size:12px}.ordfloat.closed .g-title{white-space:nowrap;font-size:13px}.ordfloat.closed .g-title .sub{display:none}}@media (prefers-reduced-motion:reduce){.bar i{transition:none}}
