:root{--green:#2fb24c;--green-dark:#1d7a33;--ink:#0f1512;--card:#0c120fb8;--text:#f3f6f2;--muted:#a9b8ad}*{box-sizing:border-box}html,body{height:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:#0b0f0d;margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.card{background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ffffff14;border-radius:12px;box-shadow:0 6px 24px #00000059}#hud{pointer-events:none;position:fixed;inset:0}#loc{min-width:230px;padding:10px 14px;position:absolute;top:16px;left:16px}#loc .brand{letter-spacing:.12em;color:var(--green);font-size:13px;font-weight:900}#loc .brand span{color:var(--text)}#loc-name{margin-top:4px;font-size:18px;font-weight:700}#loc-sub{color:var(--muted);font-size:12px}#speedo{width:210px;padding:12px 16px;position:absolute;bottom:16px;left:16px}.speed-row{align-items:flex-end;gap:10px;display:flex}#speed{font-variant-numeric:tabular-nums;min-width:2.2ch;font-size:56px;font-weight:800;line-height:.9}.speed-meta{flex-direction:column;gap:4px;padding-bottom:4px;display:flex}.speed-meta .unit{color:var(--muted);font-size:12px}#gear{background:var(--green);color:var(--ink);text-align:center;border-radius:6px;width:fit-content;padding:1px 8px;font-size:15px;font-weight:800}#rpm{background:#ffffff1f;border-radius:3px;height:6px;margin-top:10px;overflow:hidden}#rpm-fill{background:linear-gradient(90deg, var(--green), #e6d23a 70%, #e5533a);width:0%;height:100%}#minimap-wrap{background:#1d2320;border:3px solid #ffffffd9;border-radius:50%;width:220px;height:220px;position:absolute;bottom:16px;right:16px;overflow:hidden;box-shadow:0 6px 24px #00000073}#minimap{width:100%;height:100%;display:block}#minimap-wrap .north{color:#fff;text-shadow:0 1px 2px #000;font-size:11px;font-weight:800;display:none;position:absolute;top:4px;left:50%;transform:translate(-50%)}#hint{color:var(--muted);text-align:right;max-width:380px;padding:8px 12px;font-size:12px;position:absolute;top:16px;right:16px}#hint b{color:var(--text)}#cam-mode{background:var(--card);opacity:0;border-radius:20px;padding:6px 14px;font-size:14px;font-weight:700;transition:opacity .3s;position:absolute;top:120px;left:50%;transform:translate(-50%)}#cam-mode.show{opacity:1}#toasts{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.toast{border-left:4px solid var(--green);background:#0f1512e0;border-radius:8px;padding:9px 16px;font-size:15px;font-weight:600;animation:.25s ease-out toast-in;box-shadow:0 6px 20px #0006}.toast.warn{border-left-color:#f0b429}.toast.bad{border-left-color:#e5533a}.toast.out{opacity:0;transition:all .4s;transform:translateY(-6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}#overlay{z-index:10;background:radial-gradient(#08140c8c,#050806eb);place-items:center;display:grid;position:fixed;inset:0}#overlay .panel{text-align:center;max-width:560px;padding:32px}#overlay h1{letter-spacing:.04em;color:var(--green);margin:10px 0 4px;font-size:46px;font-weight:900}#overlay h1 span{color:var(--text)}#overlay .tag{color:var(--muted);margin:0 0 22px}.logo-helmet{background:var(--green);border-radius:32px 32px 10px 10px;width:64px;height:56px;margin:0 auto;position:relative;box-shadow:0 6px 20px #2fb24c66}.logo-helmet:after{content:"";background:#e9f7ec;border-radius:8px;width:30px;height:16px;position:absolute;top:20px;right:6px}.logo-wrap{align-items:center;gap:12px;margin:0 auto;display:inline-flex}.logo-mark{border-radius:18px;width:72px;height:72px;box-shadow:0 8px 24px #2fb24c73}.logo-word{letter-spacing:.06em;color:#fff;text-align:left;font-size:30px;font-weight:900;line-height:1}.logo-word span{letter-spacing:.3em;color:var(--green);text-transform:uppercase;margin-top:4px;font-size:12px;display:block}.phone-top .app{align-items:center;gap:6px;display:inline-flex}.phone-top .app img{border-radius:5px;width:18px;height:18px;box-shadow:0 0 0 1.5px #fff9}#progress{background:#ffffff1f;border-radius:4px;height:8px;overflow:hidden}#progress-fill{background:var(--green);width:0%;height:100%;transition:width .2s}#progress-label{color:var(--muted);margin:8px 0 18px;font-size:13px}#start{font:inherit;background:var(--green);color:var(--ink);cursor:pointer;border:0;border-radius:40px;padding:14px 40px;font-size:20px;font-weight:800;box-shadow:0 8px 24px #2fb24c59}#start:disabled{opacity:.4;cursor:wait}#save-info{background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;max-width:380px;margin:0 auto 16px;padding:10px 14px;font-size:14px}#save-info .row{justify-content:center;gap:14px;margin-top:4px;font-weight:700;display:flex}#save-info .neg{color:#ff7a66}#reset{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;margin:12px auto 0;font-size:13px;text-decoration:underline;display:block}#reset.confirm{color:#ff7a66;font-weight:700}#day-row{align-items:center;gap:10px;margin-top:8px;font-size:13px;font-weight:700;display:flex}#phase{background:#ffffff1f;border-radius:8px;padding:1px 7px;font-size:11px}#phase.Malam{background:#283593}#phase.Sore{background:#e65100}#level{color:#ffd54f;margin-left:auto;font-size:12px}#target{margin-top:8px;font-size:12px}#target .lbl{color:var(--muted);justify-content:space-between;display:flex}#target .lbl b{color:var(--text);font-variant-numeric:tabular-nums}#target .bar{background:#ffffff1f;border-radius:3px;height:5px;margin-top:4px;overflow:hidden}#target-fill{background:var(--green);width:0;height:100%;transition:width .4s}#target-fill.neg{background:#e5533a}#challenge{color:var(--muted);margin-top:5px}.achv-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;display:grid}.achv-row{opacity:.5;background:#ffffff0d;border-radius:10px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.achv-row.on{opacity:1;background:#ffd54f1f}.achv-row .ico{font-size:22px}#achv .panel{width:min(560px,94vw)}#summary,#shop,#achv{z-index:8;background:#05080699;place-items:center;display:grid;position:absolute;inset:0}#summary .panel,#shop .panel,#achv .panel{background:#101612f5;border:1px solid #ffffff1f;border-radius:18px;width:min(460px,92vw);max-height:92vh;padding:20px 22px;overflow-y:auto;box-shadow:0 20px 60px #0009}.sum-day{color:#ffd54f;font-weight:800}.sum-big{color:var(--green);margin-top:6px;font-size:40px;font-weight:900}.sum-big.neg,.sum-bills .neg{color:#ff7a66}.sum-sub{color:var(--muted);font-size:13px}.sum-row{flex-wrap:wrap;gap:14px;margin-top:10px;font-size:14px;font-weight:700;display:flex}.sum-bills{background:#ffffff0f;border-radius:12px;gap:4px;margin-top:14px;padding:10px 12px;font-size:14px;display:grid}.sum-bills>div{justify-content:space-between;display:flex}.sum-bills .total{border-top:1px dashed #ffffff40;margin-top:2px;padding-top:6px;font-weight:900}.sum-note{margin-top:12px;font-size:14px}.sum-next{text-align:center;margin-top:16px;font-weight:800}.shop-head{justify-content:space-between;font-size:17px;font-weight:900;display:flex}.shop-line{background:#ffffff12;border-radius:10px;margin:10px 0 12px;padding:8px 10px;font-size:13px;font-style:italic}.shop-row{border-bottom:1px solid #ffffff12;align-items:center;gap:10px;padding:8px 6px;display:flex}.shop-row .ico{font-size:22px}.shop-row .info{flex:1;font-size:14px}.shop-row .price{color:var(--green);font-size:13px;font-weight:800}.shop-row.cant .price{color:#ff7a66}.shop-row.done{opacity:.55}.shop-row.done .price{color:#ffd54f}.pips{gap:3px;margin-top:4px;display:flex}.pips i{background:#ffffff26;border-radius:3px;width:16px;height:5px}.pips i.on{background:#ffd54f}.shop-foot{text-align:center;color:var(--muted);margin-top:12px;font-size:13px}#save-ind{opacity:.25;margin-left:auto;transition:opacity .6s}#save-ind.flash{opacity:1;transition:none}#start:not(:disabled):hover{background:#3fd060}.controls{color:var(--muted);gap:6px;margin-top:22px;font-size:13px;display:grid}kbd{min-width:22px;color:var(--text);background:#ffffff1f;border:1px solid #fff3;border-radius:4px;margin:0 2px;padding:1px 6px;font-family:inherit;font-size:12px;display:inline-block}#stats{color:var(--muted);border-top:1px solid #ffffff1a;gap:12px;margin-top:8px;padding-top:8px;font-size:13px;display:flex}#stats b{color:var(--text);font-variant-numeric:tabular-nums}#signal{z-index:3;background:var(--card);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}#signal .lamp{background:#444;border-radius:50%;width:16px;height:16px;box-shadow:0 0 10px}#signal.red .lamp{color:#ff3b2a;background:#ff3b2a}#signal.yellow .lamp{color:#ffc21a;background:#ffc21a}#signal.green .lamp{color:#2fe06a;background:#2fe06a}#signal-left{font-variant-numeric:tabular-nums;color:var(--muted);min-width:2ch}#chase{text-align:center;color:#fff;background:#0f121ed9;border:3px solid #e53935;border-radius:14px;padding:10px 22px;font-size:20px;font-weight:900;animation:.5s infinite alternate chase-flash;position:absolute;top:120px;left:50%;transform:translate(-50%)}#chase .ph-sub{color:#c9cfd6;font-size:12px;font-weight:600}@keyframes chase-flash{to{border-color:#1e6bff;box-shadow:0 0 24px #1e6bff99}}#dialog{z-index:5;background:#0a0e0ce6;border:1px solid #ffffff26;border-radius:14px;width:min(620px,80vw);padding:12px 18px;animation:.25s ease-out toast-in;position:absolute;bottom:120px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}#dialog-who{color:#ffd54f;margin-bottom:4px;font-size:13px;font-weight:800}#dialog-text{font-size:17px;line-height:1.35}#phone{color:#17201a;background:#f4f7f4;border:6px solid #111;border-radius:22px;width:272px;font-size:13px;position:absolute;bottom:252px;right:16px;overflow:hidden;box-shadow:0 10px 34px #00000080}#phone.ping{animation:.35s ease-out phone-ping}@keyframes phone-ping{0%{transform:translateY(6px)scale(.98)}to{transform:none}}.phone-top{background:var(--green);color:#fff;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.phone-top .app{letter-spacing:.08em;font-weight:900}.pill{background:#ffffff40;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:800}.pill.hot{color:#1a1a1a;background:#ffe14a;animation:.6s infinite alternate blink}.pill.pick{color:#157a2c;background:#e9fbe9}.pill.drop{color:#b45f00;background:#fff1dc}.pill.done{color:#157a2c;background:#fff}.pill.fail{color:#fff;background:#e5533a}@keyframes blink{to{opacity:.55}}#phone-body{padding:10px 12px 12px}.ph-title{font-size:15px;font-weight:800}.ph-sub{color:#6a756d;font-size:11px}.ph-tag{color:#4b564e;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:11px;font-weight:700}.ph-tag b{color:var(--green-dark)}.ph-idle{text-align:center;justify-items:center;gap:4px;padding:6px 0 4px;display:grid}.radar{background:#dff5e3;border-radius:50%;width:54px;height:54px;margin-bottom:4px;position:relative}.radar span{border:3px solid var(--green);border-radius:50%;animation:1.6s ease-out infinite radar;position:absolute;inset:0}@keyframes radar{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.15)}}.ph-cust{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ph-cust.small{gap:6px;margin:6px 0 0;font-size:12px}.avatar{background:#e3ece5;border-radius:50%;place-items:center;width:36px;height:36px;font-size:24px;display:grid}.ph-cust.small .avatar{width:24px;height:24px;font-size:15px}.ph-route{background:#fff;border-radius:10px;gap:6px;padding:8px;display:grid}.ph-route>div,.ph-dest{padding-left:16px;position:relative}.ph-dest{align-items:flex-start;gap:6px;padding-left:0;display:flex}.dot{border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}.ph-route .dot{position:absolute;top:4px;left:0}.ph-dest .dot{flex:none;margin-top:4px}.dot.g{background:#22a447}.dot.o{background:#f08a12}.ph-meta{justify-content:space-between;align-items:center;margin:8px 2px;font-size:13px;display:flex}.ph-meta b{color:var(--green-dark);font-size:17px}.ph-timer{background:#dfe6e0;border-radius:3px;height:5px;overflow:hidden}.ph-timer div{background:#f08a12;width:100%;height:100%}.ph-actions{gap:8px;margin-top:10px;display:flex}.btn{text-align:center;border-radius:10px;flex:1;padding:7px 0;font-weight:800}.btn.ok{background:var(--green);color:#fff}.btn.no{color:#444;background:#e6e9e6}.btn kbd{color:inherit;background:#00000026;border-color:#0000}.ph-nav{align-items:center;gap:12px;margin:10px 0 4px;display:flex}.ph-nav .arrow{color:#fff;background:#22a447;border-radius:50%;place-items:center;width:46px;height:46px;font-size:22px;transition:transform .1s linear;display:grid}.trip.drop .ph-nav .arrow{background:#f08a12}.ph-nav .big{font-variant-numeric:tabular-nums;font-size:22px;font-weight:900}.ph-nav .late{color:#d63b22;font-weight:800}.ph-mood{align-items:center;gap:6px;margin-top:8px;display:flex}.ph-mood>span:first-child{font-size:18px}.ph-mood .bar{background:#dfe6e0;border-radius:4px;flex:1;height:7px;overflow:hidden}.ph-mood .bar div{background:var(--green);width:0;height:100%;transition:width .2s}.ph-chat{gap:5px;margin-top:8px;display:grid}.ph-chat:empty{display:none}.bubble{background:#fff;border-radius:10px 10px 10px 2px;padding:6px 8px;font-size:12px;animation:.25s ease-out toast-in;box-shadow:0 1px 2px #00000014}.bubble b{color:var(--green-dark)}.sys{background:#e9fbe9;border-radius:10px;padding:6px 8px;font-weight:700}.result{text-align:center}.stars{letter-spacing:2px;color:#d6dbd7;margin:4px 0;font-size:26px}.stars .on{color:#f5b301}.ph-quote{background:#fff;border-radius:10px;margin:6px 0 8px;padding:7px 8px;font-style:italic}.ph-bill{text-align:left;gap:3px;font-size:12px;display:grid}.ph-bill>div{justify-content:space-between;display:flex}.ph-bill .tip{color:#157a2c;font-weight:700}.ph-bill .total{color:var(--green-dark);border-top:1px dashed #b9c2bb;margin-top:2px;padding-top:4px;font-size:14px;font-weight:900}.failed{text-align:center;gap:6px;display:grid}.dot.r{background:#d83a2e}.food-tag{color:#d83a2e!important}.pill.food{color:#b3261e;background:#ffe3df}.trip.resto .ph-nav .arrow{background:#d83a2e}.ph-items{background:#fff;border-radius:10px;gap:2px;margin-top:6px;padding:6px 8px;font-size:12px;display:grid}.ph-items>div{justify-content:space-between;gap:8px;display:flex}.ph-items .sum{border-top:1px dashed #b9c2bb;margin-top:2px;padding-top:3px;font-weight:800}.ph-items.small{margin-top:8px}.ph-cond{margin-bottom:4px;font-size:12px;font-weight:700}.ph-mood+.ph-mood{margin-top:4px}.surge{color:#fff;background:#1e6bff;border-radius:6px;padding:1px 5px;font-weight:800}.ph-profile{background:#fff;border-radius:10px;align-items:center;gap:8px;margin:8px 0;padding:8px;font-size:12px;display:flex}.ph-profile b{color:var(--green-dark)}.ph-keys{font-size:12px;font-weight:700}.ph-keys kbd{color:#17201a;background:#e3ece5;border-color:#c9d2ca}.fuel-row{align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}#fuel{background:#ffffff1f;border-radius:3px;flex:1;height:6px;overflow:hidden}#fuel-fill{background:#f0b429;width:100%;height:100%}#fuel-fill.low{background:#e5533a;animation:.5s infinite alternate blink}#chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}#chips:empty{display:none}.chip{background:#ffffff1f;border-radius:8px;padding:2px 7px;font-size:11px;font-weight:700}.chip.bad{color:#fff;background:#e5533a}.chip.info{color:#fff;background:#1e6bff}#dialog .choices{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}#dialog .choices span{background:#ffffff1a;border-radius:8px;padding:5px 10px;font-size:14px}#dialog .choices kbd{margin-right:6px}.toast{max-width:520px}@media (height<=860px){#phone{max-height:calc(100vh - 268px);top:16px;bottom:auto;overflow-y:auto}#hint{display:none}}@media (width<=1100px){#chase{text-align:left;max-width:300px;padding:8px 14px;font-size:16px;top:178px;left:16px;transform:none}#toasts{align-items:flex-start;max-width:320px;top:260px;left:16px;transform:none}#dialog{z-index:5;width:auto;inset:16px 16px auto;transform:none}.toast{font-size:13px}}@media (width<=720px){#phone{width:220px;font-size:12px;bottom:182px}#hint{display:none}#speedo{width:170px}#speed{font-size:42px}#minimap-wrap{width:150px;height:150px}}#waypoint{--wp:#2fd35a;pointer-events:none;z-index:2;will-change:transform;position:absolute;top:0;left:0}#wp-text{white-space:nowrap;background:var(--wp);color:#fff;letter-spacing:.02em;text-shadow:0 1px 2px #00000059;border:2px solid #fff;border-radius:14px;padding:5px 11px;font-size:14px;font-weight:900;position:absolute;bottom:14px;left:0;transform:translate(-50%);box-shadow:0 4px 14px #00000073}.wp-stem{background:#fff;border-radius:2px;width:4px;height:14px;position:absolute;bottom:0;left:-2px}#wp-arrow,#waypoint.edge .wp-stem{display:none}#waypoint.edge #wp-arrow{background:var(--wp);border:3px solid #fff;border-radius:50%;width:44px;height:44px;animation:.8s infinite alternate wp-bob;display:block;position:absolute;top:-22px;left:-22px;box-shadow:0 4px 14px #00000073}#waypoint.edge #wp-arrow:after{content:"";border:9px solid #0000;border-top:0;border-bottom:15px solid #fff;position:absolute;top:7px;left:50%;transform:translate(-50%)}#waypoint.edge #wp-text{padding:3px 8px;font-size:12px;top:26px;bottom:auto}@keyframes wp-bob{to{box-shadow:0 0 0 6px color-mix(in srgb, var(--wp) 40%, transparent)}}body.touch #wp-text{padding:4px 9px;font-size:12px}#guide{border:2px solid #ffca28;align-items:center;gap:10px;max-width:min(420px,60vw);padding:8px 14px 8px 8px;animation:.25s ease-out toast-in;display:flex;position:absolute;top:62px;left:50%;transform:translate(-50%)}#guide.tire{border-color:#ff7043}#guide.near{border-color:#2fe06a}#guide-arrow{color:#17201a;background:#ffca28;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:20px;line-height:1;display:grid}#guide.tire #guide-arrow{color:#fff;background:#ff7043}#guide.near #guide-arrow{background:#2fe06a}#guide-sub{color:var(--muted);font-size:11px}@media (width<=1100px){body:not(.touch) #guide{max-width:300px;top:220px;left:16px;transform:none}body:not(.touch) #toasts{top:290px}}body.touch #guide{top:calc(134px + env(safe-area-inset-top));gap:7px;max-width:40vw;padding:5px 10px 5px 5px;left:calc(50% - 30px)}body.touch #guide-arrow{width:30px;height:30px;font-size:15px}#bigmap{z-index:20;pointer-events:auto;background:#0508068c;place-items:center;padding:12px;display:grid;position:fixed;inset:0}#bigmap .panel{background:#0c120ff0;border:1px solid #ffffff1f;border-radius:16px;grid-template-rows:auto 1fr;grid-template-columns:auto minmax(220px,280px);gap:10px 14px;max-height:100%;padding:12px 14px;display:grid;box-shadow:0 14px 40px #0009}#bigmap .shop-head{grid-column:1/3}#bigmap-canvas{border-radius:12px;width:min(72vh,58vw);height:min(72vh,58vw);display:block}#bigmap-legend{align-content:start;gap:8px;font-size:13px;display:grid}.bm-row{background:#ffffff0f;border-radius:10px;grid-template-columns:30px 1fr;align-items:center;gap:0 8px;padding:7px 8px;display:grid}.bm-row>span:last-child{color:var(--muted);grid-column:2;font-size:12px}.bm-row>span:last-child b{color:var(--text)}.bm-dot{border:2px solid #fff;border-radius:50%;grid-row:1/3;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.bm-dot.you{color:#fff;background:#2fb24c;font-size:12px}.bm-close{color:var(--muted);font-size:13px}@media (width<=760px),(height<=520px){#bigmap .panel{grid-template-columns:auto minmax(170px,220px);gap:6px 10px;padding:8px 10px}#bigmap-canvas{width:min(82vh,56vw);height:min(82vh,56vw)}#bigmap-legend{gap:5px;font-size:11px}.bm-row{padding:5px 6px}.bm-row>span:last-child{font-size:10px}}body.map-open #touch{display:none}body.touch #bigmap .bm-close kbd{padding:6px 10px;font-size:15px}#hud kbd,#hud .btn,#hud .shop-row,#hud #dialog .choices>span,#hud .sum-next{pointer-events:auto;cursor:pointer}#shop,#achv,#summary{pointer-events:auto}.touch-help,#rotate{display:none}body.touch .touch-help{display:grid}body.touch .controls:not(.touch-help),body.touch #hint{display:none}body.touch,body.touch *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}#touch{pointer-events:none;z-index:4;touch-action:none;position:fixed;inset:0}#touch>*{pointer-events:auto;touch-action:none}.t-btn{font:inherit;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:none;-webkit-user-select:none;user-select:none;background:#0c120f8c;border:2px solid #ffffff59;border-radius:16px}.t-btn.on{background:#2fb24cbf;border-color:#fff;transform:scale(.96)}.t-steer{left:calc(14px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));color:#ffffff8c;background:#0c120f73;border:2px solid #ffffff4d;border-radius:46px;justify-content:space-between;align-items:center;width:210px;height:92px;padding:0 18px;font-size:22px;display:flex;position:absolute}.t-knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:68px;height:68px;position:absolute;top:10px;left:calc(50% - 34px);box-shadow:0 4px 14px #0006}.t-pedals{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));grid-template-rows:46px 96px;grid-template-columns:78px 96px;gap:8px;display:grid;position:absolute}.t-gas{background:#2fb24c8c;grid-area:1/2/3;font-size:18px;font-weight:900}.t-brake{background:#e5533a80;grid-area:2/1;font-size:15px;font-weight:900}.t-horn{background:#ffc10773;grid-area:1/1;justify-content:center;align-items:center;gap:4px;font-size:18px;display:flex}.t-horn span{font-size:11px;font-weight:800}.t-pull{background:#4285f499;flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;font-size:16px;line-height:1;display:none}.t-pull span{font-size:10px;font-weight:900}#touch.onfoot .t-pull{display:flex}#touch.onfoot .t-horn{display:none}.t-actions{left:50%;bottom:calc(10px + env(safe-area-inset-bottom));gap:4px;display:flex;position:absolute;transform:translate(-50%)}.t-actions .t-btn.t-alert{background:#e5533a;border-color:#fff;animation:.8s infinite alternate alert-pulse;position:relative}.t-alert small{white-space:nowrap;color:#b3261e;background:#fff;border-radius:6px;padding:1px 4px;font-size:9px;font-weight:800;position:absolute;top:-15px;left:50%;transform:translate(-50%)}@keyframes alert-pulse{to{transform:scale(1.06);box-shadow:0 0 0 4px #e5533a73}}.t-actions{align-items:flex-end}.t-actions .t-btn.t-tools{align-items:center;gap:5px;width:auto;height:42px;padding:0 12px;font-size:18px;font-weight:800;display:flex}.t-tools span{font-size:13px}.t-actions.open .t-tools{background:#2fb24cbf;border-color:#fff}.t-drawer{transform-origin:bottom;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;background:#0c120fd1;border:1px solid #ffffff2e;border-radius:16px;grid-template-columns:repeat(4,58px);gap:6px;padding:8px;transition:opacity .15s,transform .15s,visibility .15s;display:grid;position:absolute;bottom:52px;left:50%;transform:translate(-50%)scale(.9)}.t-actions.open .t-drawer{opacity:1;visibility:visible;transform:translate(-50%)scale(1)}.t-actions .t-drawer .t-btn{border-radius:12px;place-items:center;gap:0;width:58px;height:50px;padding:2px 0 0;display:grid}.t-drawer .t-btn b{font-size:19px;font-weight:400;line-height:1}.t-drawer .t-btn span{color:#ffffffd9;font-size:9px;font-weight:700}body.touch #chips .chip.bad{display:none}body.touch #chips:not(:has(.chip:not(.bad))){display:none}#minimap-wrap{pointer-events:auto;touch-action:manipulation;cursor:zoom-in;transition:width .2s,height .2s}#minimap-wrap.big{cursor:zoom-out;z-index:3;width:min(56vh,40vw);height:min(56vh,40vw)}body.touch #minimap-wrap.big{width:min(64vh,42vw);height:min(64vh,42vw);top:calc(50% - min(32vh,21vw));bottom:auto;left:calc(14px + env(safe-area-inset-left))}#phone{touch-action:manipulation}#speedo{pointer-events:auto;touch-action:manipulation;-webkit-user-select:none;user-select:none;cursor:pointer}#speedo.mini{border-radius:18px;width:auto;padding:4px 12px}#speedo.mini .speed-row{align-items:baseline;gap:6px}#speedo.mini #speed{min-width:0;font-size:22px}#speedo.mini .speed-meta{padding-bottom:0}#speedo.mini #gear,#speedo.mini #rpm,#speedo.mini .fuel-row,#speedo.mini #chips{display:none}#phone{pointer-events:auto;-webkit-user-select:none;user-select:none}#phone:has(.trip):after{content:"Ketuk 2x untuk kecilkan";text-align:center;color:#6a756d;background:#e8eee9;padding:3px 0;font-size:9.5px;font-weight:700;display:block}#phone.mini:has(.trip):after{content:"Ketuk 2x untuk buka"}#phone.mini:has(.trip){width:168px}#phone.mini .trip>:not(.ph-tag):not(.ph-nav):not(.ph-keys):not(.ph-chat),#phone.mini .trip .ph-chat .bubble{display:none}#phone.mini .trip .ph-chat .sys{padding:4px 6px;font-size:10px}#phone.mini .trip .ph-tag{margin-bottom:2px;font-size:10px}#phone.mini .trip .ph-nav{margin:2px 0 0}#phone.mini .trip .ph-nav .arrow{width:36px;height:36px;font-size:17px}#phone.mini .trip .ph-nav .big{font-size:18px}.t-actions .t-btn{border-radius:10px;width:35px;height:40px;padding:0;font-size:17px}body.touch #loc{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));transform-origin:0 0;transform:scale(.72)}body.touch #speedo{bottom:auto;left:50%;top:calc(8px + env(safe-area-inset-top));width:132px;padding:6px 10px;transform:translate(-50%)}body.touch #speedo #speed{font-size:30px}body.touch #speedo #rpm{display:none}body.touch #minimap-wrap{opacity:.8}body.touch #signal{left:50%;top:calc(98px + env(safe-area-inset-top));padding:4px 9px;font-size:12px;bottom:auto;transform:translate(-50%)}body.touch #speedo.mini~#signal{top:calc(52px + env(safe-area-inset-top))}body.touch #phone{top:calc(8px + env(safe-area-inset-top));bottom:auto;right:calc(8px + env(safe-area-inset-right));width:236px;max-height:calc(100vh - 176px - env(safe-area-inset-bottom));border-width:4px;border-radius:16px;font-size:12px;overflow-y:auto}body.touch #phone .btn{padding:10px 0;font-size:14px}body.touch #phone .ph-actions,body.touch #phone .ph-keys{z-index:1;background:#f4f7f4;margin:8px -12px -12px;padding:8px 12px 12px;position:sticky;bottom:-12px;box-shadow:0 -6px 12px #00000014}body.touch #phone .ph-keys kbd,body.touch #dialog .choices kbd{min-width:34px;padding:6px 8px;font-size:15px}body.touch #dialog{top:auto;left:22%;right:260px;bottom:calc(66px + env(safe-area-inset-bottom));width:auto;padding:8px 12px;transform:none}body.touch #dialog-text{font-size:14px}body.touch #dialog .choices span{padding:8px 10px}body.touch #chase{top:calc(130px + env(safe-area-inset-top));text-align:center;max-width:34vw;padding:6px 12px;font-size:13px;left:calc(50% - 30px);transform:translate(-50%)}body.touch #chase .ph-sub{display:none}body.touch #toasts{top:calc(172px + env(safe-area-inset-top));align-items:center;max-width:36vw;left:calc(50% - 30px);transform:translate(-50%)}body.touch #shop .panel,body.touch #achv .panel,body.touch #summary .panel{max-height:92vh;overflow-y:auto}body.touch .shop-row{padding:10px}body.touch .sum-next kbd,body.touch .shop-foot kbd{padding:6px 10px;font-size:15px}body.touch #overlay .panel{max-height:100vh;overflow-y:auto}@media (height<=520px){#overlay .panel{max-width:640px;padding:10px 20px}.logo-helmet{display:none}.logo-mark{border-radius:12px;width:44px;height:44px}.logo-word{font-size:20px}#overlay h1{margin:0 0 2px;font-size:28px}#overlay .tag{margin-bottom:10px;font-size:13px}#progress-label{margin:4px 0 8px}#start{padding:10px 34px;font-size:17px}.controls{gap:3px;margin-top:10px;font-size:12px}#save-info{margin-bottom:8px}}@media (orientation:portrait){body.touch #rotate{z-index:50;color:var(--text);text-align:center;background:#0b0f0d;place-content:center;justify-items:center;gap:8px;padding:24px;display:grid;position:fixed;inset:0}#rotate div{font-size:54px}#rotate span{color:var(--muted);font-size:13px}}#fade{opacity:0;pointer-events:none;z-index:40;background:#000;position:fixed;inset:0}#cctv-photo{z-index:4;pointer-events:none;background:#fafafa;border-radius:6px;width:240px;padding:6px 6px 4px;animation:.35s ease-out toast-in;position:absolute;top:236px;left:16px;transform:rotate(-2deg);box-shadow:0 10px 28px #0000008c}#cctv-photo img{border-radius:2px;width:100%;display:block}#cctv-photo div{color:#222;text-align:center;padding-top:3px;font-size:11px;font-weight:800}#cctv-photo.hidden{display:none}body.in-office #phone,body.in-office #minimap-wrap,body.in-office #speedo,body.in-office #waypoint,body.in-office #guide,body.in-office #signal,body.in-office #chips,body.in-office #hint,body.in-office #cam-mode,body.in-office #touch,body.in-office .tools{display:none!important}body.in-office #cctv-photo{width:300px;top:16px;left:auto;right:16px}@media (width<=1100px){#cctv-photo{width:170px;top:auto;bottom:150px}body.in-office #cctv-photo{width:200px;top:auto;bottom:16px;right:16px}}#loc{pointer-events:auto;-webkit-user-select:none;user-select:none}#loc.mini{border-radius:18px;align-items:center;gap:10px;min-width:0;padding:5px 12px;display:flex}#loc.mini #loc-name,#loc.mini #loc-sub,#loc.mini #day-row,#loc.mini #target{display:none}#loc.mini #stats{border:0;margin:0;padding:0}#loc.mini #stats>span:not(:first-child){display:none}#loc.mini:after{content:"▾";color:var(--muted);font-size:12px}#shop .panel{pointer-events:auto;max-height:calc(100vh - 32px);overflow-y:auto}.shop-tabs{align-items:center;gap:6px;margin:6px 0 2px;display:flex}.shop-tabs span{color:var(--muted);background:#ffffff14;border-radius:10px;padding:4px 10px;font-size:12px;font-weight:800}.shop-tabs span.on{background:var(--green);color:#fff}.shop-tabs kbd{margin-left:4px}.bike-row .stats{color:var(--muted);grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:3px 6px;margin:5px 0 3px;font-size:10.5px;display:grid}.bike-row .stats em{background:#ffffff1f;border-radius:3px;height:5px;display:block;overflow:hidden}.bike-row .stats em i{background:linear-gradient(90deg,#2fd35a,#ffd54f);border-radius:3px;height:100%;display:block}.bike-row .ico{font-size:28px}#fs-btn{z-index:30;color:#fff;cursor:pointer;background:#0a0e0cb8;border:1px solid #ffffff2e;border-radius:10px;place-items:center;width:38px;height:38px;font-size:20px;line-height:1;display:grid;position:fixed;top:16px;right:16px}#fs-btn:hover{background:#2fb24ccc}#hint{right:62px}body.touch #fs-btn{display:none}body.in-office #fs-btn{opacity:.5}#chatbox{z-index:5;left:calc(8px + env(safe-area-inset-left));bottom:calc(112px + env(safe-area-inset-bottom));width:min(250px,34vw);max-height:max(64px, calc(100vh - 112px - 52px - var(--mm,0px) - env(safe-area-inset-top) - env(safe-area-inset-bottom)));pointer-events:auto;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#080c0a38;border:1px solid #ffffff12;border-radius:12px;flex-direction:column;justify-content:flex-end;gap:4px;padding:5px;transition:max-height .2s,width .2s;display:flex;position:absolute;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 18px);mask-image:linear-gradient(#0000 0,#000 18px)}#chatbox:not(:has(.toast,#dialog:not(.hidden),#cctv-photo:not(.hidden))){display:none}body.touch #chatbox #toasts{flex-direction:column;align-items:stretch;gap:4px;max-width:none;display:flex;position:static;top:auto;left:auto;transform:none}body.touch #chatbox .toast{text-align:left;max-width:none;box-shadow:none;border-radius:8px;padding:4px 8px;font-size:11.5px;line-height:1.3}body.touch #chatbox #dialog{width:auto;box-shadow:none;border-radius:10px;flex:none;padding:6px 9px;position:static;inset:auto;transform:none}body.touch #chatbox #dialog-who{margin-bottom:2px;font-size:11px}body.touch #chatbox #dialog-text{font-size:12.5px;line-height:1.3}body.touch #chatbox #dialog .choices{gap:5px;margin-top:6px}body.touch #chatbox #dialog .choices span{padding:6px 8px;font-size:12px}body.touch #chatbox #cctv-photo{flex:none;align-self:flex-start;width:112px;padding:3px 3px 2px;animation:none;position:static;transform:none}body.touch #chatbox #cctv-photo div{padding-top:1px;font-size:9.5px}body.touch #chatbox:has(#dialog:not(.hidden)) .toast:not(:last-child){display:none}:is(body.touch #chatbox:has(#dialog:not(.hidden) .choices) #cctv-photo,body.touch #chatbox:has(#dialog:not(.hidden) .offer) #cctv-photo){display:none}#dialog .offer{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}#dialog .offer *{pointer-events:auto}#dialog .offer button{font:inherit;cursor:pointer;color:#fff;background:#ffffff1f;border:0;border-radius:9px;padding:8px 12px;font-weight:800}#dialog .offer .o-step{width:38px;padding:8px 0;font-size:18px;line-height:1}#dialog .offer .o-ok{background:var(--green);color:#06210f}#dialog .offer .o-cancel{color:var(--muted);background:0 0;padding:8px 6px}#dialog .offer .o-field{color:#111;background:#fff;border-radius:9px;align-items:center;gap:4px;height:38px;padding:0 10px;display:flex}#dialog .offer .o-field span{color:#555;font-weight:800}#dialog .offer input{width:110px;font:inherit;color:#111;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;font-size:17px;font-weight:800}body.touch #chatbox #dialog .offer{gap:5px;margin-top:6px}body.touch #chatbox #dialog .offer button{padding:6px 9px;font-size:13px}body.touch #chatbox #dialog .offer .o-step{width:32px;padding:6px 0;font-size:16px}body.touch #chatbox #dialog .offer .o-field{height:32px;padding:0 8px}body.touch #chatbox #dialog .offer input{width:84px;font-size:15px}body.touch #waypoint{display:none!important}#chatbox.big{width:min(320px,44vw);max-height:calc(100vh - 112px - 46px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:#080c0a66}#chatbox:has(#dialog:not(.hidden)){width:min(320px,44vw);max-height:calc(100vh - 112px - 46px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:#080c0a66}body.touch #chatbox .toast{text-shadow:0 1px 2px #000000e6;background:#0a0e0c61}body.touch #chatbox #dialog{text-shadow:0 1px 2px #000c;background:#0a0e0c80}#chatbox:after{content:"⤢";color:#ffffff73;pointer-events:none;font-size:11px;position:absolute;top:3px;right:6px}#chatbox.big:after{content:"⤡"}#chatbox:has(#dialog:not(.hidden)):after{content:"⤡"}#phone-status{cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none}#claim{z-index:6;pointer-events:none;width:260px;padding:8px 12px;font-size:13px;position:absolute;top:64px;left:50%;transform:translate(-50%)}#claim .cl-head{color:var(--green);margin-bottom:4px;font-weight:900}#claim .cl-row{border-top:1px solid #ffffff14;justify-content:space-between;gap:10px;padding:2px 0;display:flex}#claim .cl-row span{color:var(--muted)}#claim .cl-row b{text-align:right}#claim .cl-row b.ok{color:#4ce07e}#claim .cl-row b.no{color:#ff7a66}#claim .cl-note{color:#9fe0b5;margin-top:4px;font-size:11px}body.touch #claim{top:calc(var(--top) + 44px);width:210px;padding:5px 9px;font-size:10.5px}body.touch #claim .cl-note{font-size:9px}.energy-row{margin-top:5px}#energy{background:#ffffff1f;border-radius:3px;flex:1;height:6px;overflow:hidden}#energy-fill{background:#3ddc84;width:100%;height:100%;transition:width .4s linear,background .4s}#energy-fill.low{animation:.5s infinite alternate blink}#energy-txt{opacity:.85;text-align:right;min-width:44px;font-size:10px;font-weight:700}#tired{pointer-events:none;z-index:2;--blur:0px;visibility:hidden;-webkit-backdrop-filter:blur(var(--blur));position:fixed;inset:0}#pause-btn{z-index:30;color:#fff;cursor:pointer;background:#0a0e0cb8;border:1px solid #ffffff2e;border-radius:10px;place-items:center;width:38px;height:38px;font-size:18px;line-height:1;display:grid;position:fixed;top:16px;right:62px}#pause-btn:hover{background:#2fb24ccc}body.touch #pause-btn{opacity:.8;width:34px;height:30px;font-size:15px;top:6px;left:50%;right:auto;transform:translate(-50%)}#pause{z-index:90;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}#pause[hidden]{display:none}.pause-card{text-align:center;color:#fff;background:#101612f5;border:1px solid #ffffff24;border-radius:16px;padding:22px 30px;box-shadow:0 20px 60px #0009}.pause-card h2{margin:0 0 6px;font-size:22px}.pause-card p{color:#9fb0a6;margin:0 0 14px;font-size:13px}.pause-card button{font:inherit;color:#fff;cursor:pointer;background:#2fb24c;border:0;border-radius:12px;padding:10px 26px;font-weight:800}#rest-btn{z-index:29;color:#ffe082;font:inherit;cursor:pointer;background:#282008d1;border:2px solid #ffca28;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:800;position:fixed;top:52px;left:50%;transform:translate(-50%)}#rest-btn[hidden]{display:none}#rest-btn small{opacity:.7;margin-left:4px;font-weight:700}#rest-btn.urgent{color:#ffccbc;border-color:#ff7043;animation:1s ease-in-out infinite rest-pulse}@keyframes rest-pulse{50%{transform:scale(1.07)}}#rest{z-index:60;pointer-events:none;color:#cfd8ff;--a:0;opacity:var(--a);background:#02040a;place-items:center;display:none;position:fixed;inset:0}#rest.on{display:grid}#rest div{text-align:center;font-size:18px;font-weight:800}#rest b{margin-bottom:6px;font-size:54px;display:block}#call-btn{z-index:30;color:#fff;cursor:pointer;background:#0a0e0cb8;border:1px solid #ffffff2e;border-radius:10px;place-items:center;width:38px;height:38px;font-size:18px;line-height:1;display:grid;position:fixed;top:16px;right:108px}#call-btn:hover{background:#2fb24ccc}body.touch #call-btn{display:none}#call-btn{top:14px;left:calc(50% - 112px);right:auto}#pause-btn{opacity:1;width:38px;height:38px;font-size:18px;top:14px;left:calc(50% + 72px);right:auto;transform:none}#rest-btn{top:14px;left:calc(50% + 120px);transform:none}body.touch #call-btn{width:32px;height:32px;left:calc(50% - 104px);top:calc(94px + env(safe-area-inset-top));font-size:15px;display:grid}body.touch #pause-btn{opacity:1;width:32px;height:32px;left:calc(50% + 72px);top:calc(94px + env(safe-area-inset-top));font-size:15px;transform:none}body.touch #rest-btn{left:calc(50% + 112px);top:calc(96px + env(safe-area-inset-top));padding:5px 10px;font-size:12px}#guide{gap:8px;max-width:250px;padding:5px 12px 5px 5px;top:14px;left:calc(50% - 66px);transform:none}#guide-arrow{width:34px;height:34px}#guide b{font-size:13px}#guide-sub{font-size:10px;line-height:1.2}body:not(.touch):has(#guide:not(.hidden)) #signal{top:70px}body:not(.touch):has(#guide:not(.hidden)) #pause-btn{top:70px}body:not(.touch):has(#guide:not(.hidden)) #rest-btn{top:70px}body.touch #guide{top:calc(94px + env(safe-area-inset-top));max-width:38vw;left:calc(50% - 64px)}body.touch:has(#guide:not(.hidden)) #signal{top:calc(142px + env(safe-area-inset-top))}@media (width<=1100px){body:not(.touch) #guide{max-width:250px;top:14px;left:calc(50% - 66px);transform:none}}body:not(.touch) #toasts{align-items:flex-start;max-width:340px;top:262px;left:16px;transform:none}body.touch #toasts{top:calc(132px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));align-items:flex-start;max-width:34vw;transform:none}body.touch #chatbox #toasts{max-width:none}body:not(.touch) #dialog{z-index:6;width:min(360px,100vw - 32px);inset:auto auto 214px 16px;transform:none}body:not(.touch):has(#dialog:not(.hidden)) #toasts{visibility:hidden}#call-btn.off{opacity:.35;filter:grayscale()}#call-btn:not(.off){border-color:#ff7043;animation:1.2s ease-in-out infinite rest-pulse2;box-shadow:0 0 12px #ff7043b3}@keyframes rest-pulse2{50%{box-shadow:0 0 18px #ff7043}}#phone-toggle{color:#fff;cursor:pointer;background:#0d572b66;border:1px solid #ffffff60;border-radius:10px;flex:none;width:32px;height:32px;font:700 22px/1 system-ui}#phone-toggle[hidden]{display:none}#phone-toggle:not([hidden]){place-items:center;display:grid}body.touch{--left:calc(12px + env(safe-area-inset-left));--right:calc(12px + env(safe-area-inset-right));--top:calc(10px + env(safe-area-inset-top));--bottom:calc(12px + env(safe-area-inset-bottom));--pedal-h:clamp(96px, 25vh, 116px);--phone-w:clamp(156px, 19vw, 168px)}body.touch .card{background:#101c19d9;border-color:#ffffff26;box-shadow:0 3px 14px #0004}body.touch #loc{top:var(--top);left:var(--left);min-width:0;max-width:32vw;padding:10px 12px;transform:none}body.touch #loc.mini{border-radius:10px;gap:2px;padding:5px 8px;display:grid}body.touch #loc.mini:after{display:none}body.touch #loc .brand{letter-spacing:.02em;white-space:nowrap;font-size:9px}body.touch #loc #stats{font-size:10px}body.touch #loc-name{font-size:14px}body.touch #loc #stats,body.touch #day-row{flex-wrap:wrap;gap:5px 10px}body.touch #speedo{top:var(--top);border-radius:14px;padding:8px 12px}body.touch #speedo.mini{width:auto;min-width:72px;padding:5px 9px}body.touch #speedo.mini #speed{font-size:19px}body.touch #speedo .unit{font-size:9px}body.touch #signal,body.touch #speedo.mini~#signal{top:calc(var(--top) + 40px);border-radius:12px;padding:4px 7px;font-size:9px}body.touch #minimap-wrap,body.touch #minimap-wrap.big{left:var(--left);top:auto;bottom:calc(var(--bottom) + 68px);border:1px solid #ffffffa6;width:clamp(60px,16vh,68px);height:clamp(60px,16vh,68px)}body.touch #phone{top:var(--top);bottom:auto;right:var(--right);width:var(--phone-w);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--pedal-h) - 12px);scrollbar-width:thin;overscroll-behavior:contain;border:1px solid #ffffff70;border-radius:16px;box-shadow:0 4px 18px #0005}body.touch #phone.mini:has(.trip){top:var(--top);bottom:auto;right:var(--right);width:var(--phone-w);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--pedal-h) - 12px);scrollbar-width:thin;overscroll-behavior:contain;border:1px solid #ffffff70;border-radius:16px;box-shadow:0 4px 18px #0005}body.touch .phone-top{z-index:2;gap:4px;padding:5px 7px;position:sticky;top:0}body.touch .phone-top .app{letter-spacing:.02em;font-size:10px}body.touch .phone-top .app img{width:16px;height:16px}body.touch .phone-top .pill{white-space:normal;text-align:center;max-width:62px;margin-left:auto;padding:3px 4px;font-size:8px}body.touch #phone-body{padding:6px 8px;font-size:11px}body.touch #phone-toggle{width:28px;height:28px;font-size:18px}body.touch .phone-top .app{gap:3px;font-size:9px}body.touch .phone-top .pill{max-width:54px;font-size:7px}body.touch #phone:after{display:none}body.touch #phone.mini .trip .ph-nav{gap:8px;margin:6px 0}body.touch #phone.mini .trip .ph-tag{font-size:10px}body.touch #phone.mini .trip .ph-nav .big{font-size:15px}body.touch #phone.mini .trip .ph-nav .arrow{width:24px;height:24px;font-size:12px}body.touch #phone .ph-tag{margin-bottom:4px;font-size:9px}body.touch #phone .ph-cust{margin-bottom:4px;font-size:11px}body.touch #phone .avatar{width:26px;height:26px;font-size:18px}body.touch #phone .ph-route,body.touch #phone .ph-items{padding:6px;font-size:10px}body.touch #phone .ph-title{font-size:12px}body.touch #phone .ph-meta{margin:5px 0;font-size:11px}body.touch #phone .ph-meta b{font-size:14px}body.touch #phone .ph-nav{margin:5px 0}body.touch #phone .ph-actions,body.touch #phone .ph-keys{margin:6px -8px -6px;padding:4px 8px 6px;bottom:-6px}body.touch #phone .btn{min-height:44px;padding:10px 0;font-size:11px}body.touch #phone .ph-actions kbd,body.touch #phone .radar{display:none}body.touch #phone .ph-idle{gap:2px;padding:0}body.touch .t-steer{left:var(--left);bottom:var(--bottom);color:#c1d6c8;background:linear-gradient(#15251de8,#0c1712d1);border:1px solid #ffffff38;border-radius:18px;width:clamp(132px,18vw,148px);height:56px;padding:0 12px;font-size:25px;line-height:1;overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 4px 16px #0003}body.touch .t-steer .l,body.touch .t-steer .r{pointer-events:none;z-index:1;font-weight:400;position:relative}body.touch .t-rail{pointer-events:none;background:#ffffff18;border-radius:4px;height:4px;position:absolute;top:calc(50% - 2px);left:30px;right:30px}body.touch .t-rail:after{content:"";background:#ffffff40;border-radius:2px;width:2px;height:20px;position:absolute;top:-8px;left:calc(50% - 1px)}body.touch .t-knob{z-index:2;background:linear-gradient(160deg,#ebf4ee,#b6c9be);border:1px solid #f0fff5b3;border-radius:16px;justify-content:center;align-items:center;gap:4px;width:38px;height:38px;display:flex;top:calc(50% - 19px);left:calc(50% - 19px);box-shadow:0 3px 8px #0005,inset 0 1px #fff9}body.touch .t-knob i{background:#4d6b5970;border-radius:2px;width:2px;height:14px}body.touch .t-steer.active{border-color:#65d98e99}body.touch .t-steer.active .t-knob{background:linear-gradient(160deg,#c6f5d6,#80c99a)}body.touch .t-pedals{right:var(--right);bottom:var(--bottom);grid-template-columns:clamp(52px,7vw,62px) clamp(60px,8vw,72px);grid-template-rows:44px calc(var(--pedal-h) - 50px);gap:6px}body.touch .t-btn{border-width:1px;border-radius:16px;box-shadow:0 3px 10px #0003}body.touch .t-gas{background:#238546a8;font-size:16px}body.touch .t-brake{background:#b44b44b3;font-size:12px}body.touch .t-horn{background:#715a24c9;gap:2px;font-size:13px}body.touch .t-actions{bottom:var(--bottom)}body.touch .t-actions .t-tools{background:#101c19d9;min-width:62px;min-height:44px;padding:0 8px;font-size:13px}body.touch .t-drawer{grid-template-columns:repeat(4,48px);gap:4px;padding:6px}body.touch .t-actions .t-drawer .t-btn{width:48px;height:44px}body.touch .t-drawer .t-btn b{font-size:15px}body.touch .t-drawer .t-btn span{font-size:8px}body.touch .t-actions .t-btn.t-alert{min-width:44px;min-height:44px}body.touch #guide{top:calc(var(--top) + 72px);border-width:1px;border-radius:10px;gap:5px;max-width:28vw;padding:4px 6px;animation:none;left:50%;transform:translate(-50%)}body.touch #chase{top:calc(var(--top) + 145px);left:50%;transform:translate(-50%)}body.touch #toasts{top:calc(var(--top) + 194px);max-width:32vw;left:50%;transform:translate(-50%)}body.touch .toast{padding:4px 7px;font-size:10px}body.touch #dialog{left:calc(var(--left) + 218px);right:calc(var(--right) + var(--phone-w) + 12px);bottom:calc(var(--bottom) + 52px);max-height:36vh;left:calc(var(--left) + 160px);border-radius:8px;padding:5px 7px;overflow-y:auto}body.touch #dialog-who{margin-bottom:2px;font-size:9px}body.touch #dialog-text{font-size:9.5px;line-height:1.3}body.touch #dialog .choices{font-size:10px}body.touch #dialog .choices>span{min-height:44px}body.touch #phone .bubble{padding:4px 6px;font-size:10px}body.touch #guide-arrow{width:20px;height:20px}body.touch #guide b{font-size:10px}body.touch #guide-sub{font-size:9px}body.touch #wp-text{border-width:1px;padding:3px 6px;font-size:10px}body.touch #waypoint.edge #wp-arrow{border-width:1px;width:28px;height:28px;top:-14px;left:-14px}body.touch #waypoint.edge #wp-arrow:after{border-width:0 6px 11px;border-top-style:none;border-top-color:currentColor;top:5px}body.touch #waypoint.edge #wp-text{padding:3px 6px;font-size:9px;top:18px}body.touch #cctv-photo{top:calc(var(--top) + 50px);bottom:auto;left:var(--left);width:84px;padding:3px}body.touch #cctv-photo div{font-size:8px}body.touch .t-steer{background:radial-gradient(circle,#223d3455 0 51%,#14271fbb 52% 100%);border:1px solid #bdedcd55;border-radius:50%;width:100px;height:100px;padding:0}body.touch .t-steer .l,body.touch .t-steer .r,body.touch .t-steer .up,body.touch .t-steer .down{color:#c6e4d17a;pointer-events:none;font:20px/1 system-ui;position:absolute}body.touch .t-steer .l{top:calc(50% - 10px);left:7px}body.touch .t-steer .r{top:calc(50% - 10px);right:7px}body.touch .t-steer .up{top:4px;left:calc(50% - 7px)}body.touch .t-steer .down{bottom:4px;left:calc(50% - 7px)}body.touch .t-rail{background:0 0;border:1px solid #ffffff15;border-radius:50%;height:auto;inset:18px}body.touch .t-rail:after{display:none}body.touch .t-knob{background:radial-gradient(circle at 35% 25%,#d5eee3,#89afa0);border-radius:50%;width:40px;height:40px;top:calc(50% - 20px);left:calc(50% - 20px)}body.touch #minimap-wrap,body.touch #minimap-wrap.big{bottom:calc(var(--bottom) + 112px)}body.touch #shop .panel,body.touch #achv .panel,body.touch #summary .panel{width:min(380px,80vw);padding:12px 14px;font-size:12px}body.touch .shop-head{font-size:14px}body.touch .shop-row{min-height:44px;padding:6px}body.touch .shop-row .info,body.touch .sum-bills{font-size:12px}body.touch .sum-big{font-size:30px}@media (height<=380px){body.touch{--pedal-h:96px;--top:calc(6px + env(safe-area-inset-top))}body.touch #toasts{top:calc(var(--top) + 155px)}body.touch #chase{top:calc(var(--top) + 124px)}}body.touch{--route-map:clamp(96px, 28vh, 124px)}body.touch #hud{z-index:5}body.touch #phone[data-phase=incoming],body.touch #phone[data-phase=result],body.touch #phone[data-phase=choice]{width:min(300px,44vw);max-height:calc(100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom));z-index:6;border-radius:16px;animation:none;inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.touch #phone[data-phase=incoming] .phone-top,body.touch #phone[data-phase=result] .phone-top{padding:7px 10px}body.touch #phone[data-phase=incoming] .ph-actions{position:sticky}body.touch #phone[data-phase=choice] .ph-card>*{display:block}body.touch #phone[data-phase=choice] .ph-keys{flex-wrap:wrap;gap:4px;display:flex}body.touch .ph-count{background:#e2f1e7;border-radius:8px;margin:4px 0 8px;padding:6px 8px;font-size:12px}body.touch .ph-count b{color:#157a2c;margin-left:8px}body.touch #phone[data-phase=result] .stars{margin:2px 0;font-size:22px}body.touch #phone[data-phase=result] .ph-quote{margin:4px 0;padding:4px 6px;font-size:10px}body.touch #phone[data-phase=result] .ph-bill{font-size:11px}body.touch #phone[data-phase=result] .ph-count{margin:2px 0 4px;padding:4px 6px;font-size:11px}body.touch #phone[data-phase=result] .phone-top{padding:5px 8px}body.touch #phone[data-phase=result] .ph-bill{gap:2px}body.touch[data-order-phase=trip] #minimap-wrap{width:var(--route-map);height:var(--route-map);top:calc(var(--top) + 50px);border-color:#c9e6d18c;border-radius:18px;bottom:auto}body.touch #phone[data-phase=trip]{left:var(--left);right:auto;top:calc(var(--top) + 56px + var(--route-map));width:var(--route-map);max-height:calc(100dvh - var(--top) - var(--route-map) - var(--bottom) - 164px);color:#effaf3;background:#12231ee8;border-radius:12px;animation:none}body.touch #phone[data-phase=trip].mini:has(.trip){left:var(--left);right:auto;top:calc(var(--top) + 56px + var(--route-map));width:var(--route-map);max-height:calc(100dvh - var(--top) - var(--route-map) - var(--bottom) - 164px);color:#effaf3;background:#12231ee8;border-radius:12px;animation:none}body.touch #phone[data-phase=trip] .phone-top{display:none}body.touch #phone[data-phase=trip] #phone-body{padding:5px 7px}body.touch #phone[data-phase=trip] .ph-tag{color:#b6d5c3;font-size:8px}body.touch #phone[data-phase=trip] .ph-nav{gap:5px;margin:2px 0}body.touch #phone[data-phase=trip] .ph-nav .big{font-size:14px}body.touch #phone[data-phase=trip] .ph-sub{color:#b6d5c3;font-size:9px}body.touch #phone[data-phase=trip] .ph-nav .late{color:#ffab93}body.touch #phone[data-phase=trip] .ph-nav .arrow{width:20px;height:20px;font-size:11px}body.touch[data-order-phase=trip] #cctv-photo{display:none}body.touch #waypoint.edge #wp-arrow{border-width:1px;width:18px;height:18px;animation:none;top:-9px;left:-9px;box-shadow:0 1px 4px #0005}body.touch #waypoint.edge #wp-arrow:after{border:4px solid #0000;border-top:0;border-bottom:8px solid #fff;top:3px}body.touch #waypoint.edge #wp-text,body.touch #wp-text{border-width:1px;border-radius:7px;padding:2px 4px;font-size:8px;box-shadow:0 1px 4px #0005}body.touch #waypoint.edge #wp-text{top:12px}body.touch #loc{left:auto;right:var(--right);max-width:156px}body.touch #minimap-wrap,body.touch #minimap-wrap.big,body.touch[data-order-phase=trip] #minimap-wrap{left:var(--left);top:var(--top);width:var(--route-map);height:var(--route-map);border:1px solid #bad3c27a;border-radius:8px;bottom:auto;box-shadow:0 2px 8px #0004}body.touch #phone[data-phase=idle]{top:calc(var(--top) + 48px);opacity:.8}body.touch #phone[data-phase=trip]{top:calc(var(--top) + var(--route-map) + 6px)}body.touch #phone[data-phase=trip].mini:has(.trip){top:calc(var(--top) + var(--route-map) + 6px)}body.touch #cctv-photo{top:calc(var(--top) + var(--route-map) + 8px)}body.touch .t-steer{left:calc(var(--left) + 24px);background:radial-gradient(circle,#28604c12 0 52%,#132c232e 53% 100%);border-color:#a9e2c62e;width:clamp(100px,28vh,116px);height:clamp(100px,28vh,116px);box-shadow:inset 0 0 18px #e0fff20a}body.touch .t-knob{background:radial-gradient(circle at 35% 25%,#a4ddc6c9,#417e69b0);border-color:#d5f9e17a;box-shadow:0 0 12px #7edcad20,inset 0 1px 3px #e9fff036}body.touch .t-pedals{width:144px;height:128px;right:calc(var(--right) + 8px);display:block}body.touch .t-pedals .t-btn{border:1px solid #c7ecd16b;border-radius:50%;padding:0;position:absolute;box-shadow:inset 0 0 0 3px #ffffff0a,0 3px 10px #0004}body.touch .t-gas{background:radial-gradient(circle at 35% 25%,#32b470bd,#105937d4);width:76px;height:76px;font-size:15px;bottom:0;right:0}body.touch .t-brake{background:radial-gradient(circle at 35% 25%,#c96a52ad,#6e302abf);width:56px;height:56px;font-size:11px;bottom:0;left:0}body.touch .t-horn{background:#77602bb5;flex-direction:column;gap:1px;width:44px;height:44px;display:flex;top:10px;left:14px}body.touch .t-horn span{font-size:7px}body.touch .t-actions .t-tools{background:#18372ac4;border-radius:50%;flex-direction:column;justify-content:center;gap:1px;width:44px;min-width:44px;height:44px;padding:0;font-size:16px;display:flex}body.touch .t-tools span{font-size:7px}body.touch .t-actions .t-drawer .t-btn{border-radius:50%}body.touch #guide{top:var(--top);max-width:calc(50vw - 56px - var(--left) - var(--route-map));opacity:.9;background:#101c19b3;border-radius:999px;width:max-content;padding:3px 7px 3px 4px;left:auto;right:calc(50% + 48px);transform:none}body.touch #guide-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}body.touch #guide:not(.near) #guide-sub{display:none}body.touch #guide b{font-size:10px;font-weight:700}body.touch #guide,body.touch #waypoint,body.touch .t-alert{display:none!important}body.touch #minimap-wrap{cursor:pointer}body.touch #minimap-wrap.big,body.touch[data-order-phase=trip] #minimap-wrap.big{z-index:7;width:min(72vh,46vw);height:min(72vh,46vw);left:var(--left);top:var(--top);bottom:auto}body.touch #toasts{top:auto;left:auto;right:var(--right);bottom:calc(var(--bottom) + 190px);text-align:right;flex-direction:column-reverse;align-items:flex-end;gap:3px;max-width:150px;transform:none}body.touch .toast{border-radius:8px;padding:3px 6px;font-size:9px;line-height:1.25}body.touch #dialog{left:auto;right:var(--right);top:calc(var(--top) + 54px);z-index:6;width:min(190px,30vw);max-height:40vh;padding:5px 7px;bottom:auto;overflow-y:auto;transform:none}body.touch #chatbox .toast{padding:3px 7px;font-size:10px}body.touch #chatbox #dialog-who{font-size:9.5px}body.touch #chatbox #dialog-text{font-size:10.5px}body.touch #chatbox #dialog{max-height:none;overflow:visible}body.touch #chatbox #dialog .choices{grid-template-columns:1fr 1fr;gap:4px;display:grid}body.touch #chatbox #dialog .choices>span{align-items:center;gap:5px;min-height:44px;padding:4px 6px;font-size:10px;line-height:1.2;display:flex}body.touch #chatbox #dialog .choices kbd{min-width:22px;padding:3px 5px;font-size:11px}body.touch{--joy:clamp(120px, 33vh, 140px)}body.touch .t-steer{width:var(--joy);height:var(--joy);left:calc(var(--left) + 16px)}body.touch .t-knob{width:48px;height:48px;top:calc(50% - 24px);left:calc(50% - 24px)}body.touch .t-steer .down{color:#ffd27a99;font:800 11px/1 system-ui;bottom:6px;left:calc(50% - 5px)}body.touch .t-steer.back{border-color:#ffc85a99}body.touch .t-steer.back .t-knob{background:radial-gradient(circle at 35% 25%,#ffe2a0d0,#b07a1ec0)}body.touch .t-gas{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}body.touch .t-gas small{letter-spacing:.02em;font-size:7px;font-weight:800}body.touch .t-gas.cruise{background:radial-gradient(circle at 35% 25%,#ffd36bd8,#b0740fe0);border-color:#ffe9aa;box-shadow:0 0 14px #ffc94a80,inset 0 0 0 3px #ffffff1a}body.touch #signal,body.touch #speedo.mini~#signal{top:var(--top);background:#0d1714cc;border:1px solid #ffffff2e;border-radius:14px;justify-content:center;gap:8px;width:124px;padding:6px 10px;font-size:14px;left:50%;transform:translate(-50%)}body.touch #signal .lamp{width:20px;height:20px}body.touch #signal-left{font-size:15px;font-weight:800}body.touch #speedo,body.touch #speedo.mini{top:var(--top);left:calc(50% + 68px);right:auto;transform:none}body.touch #chatbox{left:var(--left);right:auto;bottom:calc(var(--bottom) + var(--joy) + 8px);z-index:6;width:min(220px,32vw);max-height:max(48px, calc(100dvh - var(--top) - var(--route-map) - 8px - var(--bottom) - var(--joy) - 8px))}body.touch #chatbox.big{width:min(280px,40vw);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--joy) - 8px)}body.touch #chatbox:has(#dialog:not(.hidden)){width:min(280px,40vw);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--joy) - 8px)}body.touch #phone[data-phase=trip]{left:calc(var(--left) + var(--route-map) + 6px);top:var(--top);width:clamp(108px,17vw,140px);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--joy) - 16px)}body.touch #phone[data-phase=trip].mini:has(.trip){left:calc(var(--left) + var(--route-map) + 6px);top:var(--top);width:clamp(108px,17vw,140px);max-height:calc(100dvh - var(--top) - var(--bottom) - var(--joy) - 16px)}body.touch .phone-top .pill#phone-status{max-width:70px;min-height:22px;padding:5px 7px;font-size:9px}body.touch .t-auto-note{color:#ffe2a0;white-space:nowrap;pointer-events:none;background:#101c19c4;border-radius:9px;max-width:170px;padding:3px 8px;font:700 10px/1.3 system-ui;position:absolute;bottom:calc(100% + 6px);right:0}body.touch .t-auto-note.hidden{display:none}body.touch #call-btn,body.touch #pause-btn{top:var(--top);opacity:1;width:34px;height:34px;font-size:16px;display:grid;right:auto;transform:none}body.touch #call-btn.off{opacity:.35}body.touch #call-btn{left:calc(var(--left) + var(--route-map) + 8px)}body.touch #pause-btn{left:calc(var(--left) + var(--route-map) + 48px)}body.touch #rest-btn{top:var(--top);left:calc(var(--left) + var(--route-map) + 88px);padding:6px 10px;font-size:12px;transform:none}
