:root{--navy-field: #122443;--navy-brand: #1E3A6E;--navy-card: #1D3765;--road-white: #FFFFFF;--mist: #A9B7D4;--accent: #F5B01F;--accent-press: #D99A0F;--go-green: #2FA36B;--stop-red: #E5484D;--status-amber: #F5B01F;--paper: #FBF9F4;--ink-on-paper: #1E3A6E;--line-green: #06C755;--r-card: 20px;--r-btn: 16px}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{font-family:Anuphan,Noto Sans Thai,system-ui,sans-serif;background:var(--navy-field);color:var(--road-white);-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.app{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 16px calc(16px + env(safe-area-inset-bottom))}.chrome{display:flex;justify-content:space-between;align-items:center;padding:14px 2px 10px;font-size:13px;color:var(--mist);font-variant-numeric:tabular-nums}.chrome .org{color:var(--road-white);font-weight:600}.chrome button{background:none;border:none;color:var(--mist);font-size:13px;text-decoration:underline;text-underline-offset:3px;padding:4px}.driver-row{display:flex;gap:12px;align-items:center;margin-top:10px}.avatar{width:52px;height:52px;border-radius:50%;background:#16294d;border:2px solid #3D5A94;overflow:hidden;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;flex:none}.avatar img{width:100%;height:100%;object-fit:cover}.driver-row b{font-size:17px;display:block}.driver-row span{font-size:13px;color:var(--mist)}.status-pill{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;background:var(--navy-card);border-radius:999px;padding:8px 14px}.dot{width:10px;height:10px;border-radius:50%;background:var(--stop-red)}.dot.green{background:var(--go-green)}.dot.amber{background:var(--status-amber)}.dot.white{background:var(--road-white)}.dot.mist{background:var(--mist)}.gps-line{color:var(--mist);font-size:13px;margin:8px 2px 0;font-variant-numeric:tabular-nums}.primary{min-height:72px;border:none;border-radius:var(--r-btn);background:var(--accent);color:var(--navy-field);font-size:22px;font-weight:700;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:background .1s}.primary:active{background:var(--accent-press)}.primary .sub{font-size:13px;font-weight:500;margin-top:2px}.primary.compact{min-height:56px;font-size:18px;margin-top:10px}.ghost-btn{min-height:52px;border-radius:var(--r-btn);width:100%;background:transparent;border:1.5px solid #3D5A94;color:var(--mist);font-size:16px;font-weight:500;margin-top:10px}.push-down{margin-top:auto}.job-card{background:var(--navy-card);border-radius:var(--r-card);padding:18px;margin-top:14px}.job-when{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.job-when small{font-size:13px;color:var(--mist);font-weight:500;margin-left:8px}.booking-no{color:var(--mist);font-size:12px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.route{display:flex;gap:14px;margin-top:14px}.route .line{display:flex;flex-direction:column;align-items:center;padding:5px 0}.route .pin{width:14px;height:14px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--road-white);flex:none}.route .flag{width:14px;height:14px;border-radius:3px 3px 3px 0;background:var(--accent);flex:none}.route .dash{flex:1;width:0;border-left:3px dashed var(--accent);margin:6px 0}.route .dash.done{border-left-color:var(--go-green)}.route .stops{flex:1;display:flex;flex-direction:column;gap:26px}.route .stop b{display:block;font-size:15px;font-weight:600}.route .stop span{font-size:13px;color:var(--mist)}.route .stop.done b{color:var(--mist);font-weight:500}.route .stop.done b:after{content:" ✓";color:var(--go-green)}.meta-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.chip{font-size:12.5px;color:var(--mist);background:#16294d;border-radius:999px;padding:5px 11px}.caller{display:flex;align-items:center;gap:12px;margin-top:14px;background:#16294d;border-radius:14px;padding:12px 14px}.caller b{font-size:15px;display:block}.caller span{font-size:14px;color:var(--mist);font-variant-numeric:tabular-nums}.call-btn{margin-left:auto;background:transparent;border:1.5px solid var(--go-green);color:var(--go-green);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;flex:none}.toast{position:fixed;left:16px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--go-green);color:#fff;border-radius:14px;padding:14px 16px;font-size:15px;font-weight:600;z-index:30;max-width:448px;margin:0 auto}.toast.error{background:var(--stop-red)}.center-fill{margin:auto;text-align:center;color:var(--mist);padding:24px;line-height:1.7}.center-fill b{color:var(--road-white);font-size:18px;display:block;margin-bottom:6px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid #3D5A94;border-top-color:var(--accent);animation:spin 1s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.paper-mode .center-fill{color:#6e7f9e}.paper-mode .center-fill b{color:var(--ink-on-paper)}.paper-mode{background:var(--paper)}.paper-mode .chrome,.paper-mode .gps-line{color:#8a7f63}.paper-mode .chrome .org{color:var(--ink-on-paper)}.paper-title{color:var(--ink-on-paper);font-size:24px;font-weight:700;text-align:center;margin-top:14px}.paper-sub{color:#6e7f9e;text-align:center;font-size:14.5px;margin-top:8px;line-height:1.55}.field{border:1.5px solid #D8CFB8;border-radius:12px;padding:12px 14px;color:var(--ink-on-paper);font-size:15px;background:#fff;width:100%;font-family:inherit;margin-top:10px}.field::placeholder{color:#b5ab8e}.line-btn{min-height:54px;border:none;border-radius:var(--r-btn);width:100%;background:var(--line-green);color:#fff;font-size:16.5px;font-weight:700;margin-top:14px}.paper-primary{min-height:54px;border:none;border-radius:var(--r-btn);width:100%;background:var(--ink-on-paper);color:#fff;font-size:16.5px;font-weight:700;margin-top:10px}.paper-foot{color:#8a7f63;font-size:12.5px;text-align:center;margin-top:12px;line-height:1.6}.invite-card{background:#fff;border-radius:var(--r-card);border:1.5px solid #EAE2CE;padding:16px;margin-top:16px}.invite-card b{color:var(--ink-on-paper);font-size:16px}.invite-card .veh{color:#6e7f9e;font-size:13.5px;margin-top:6px}.form-error{color:var(--stop-red);font-size:13.5px;margin-top:10px;text-align:center;line-height:1.5}.mark{width:84px;height:84px;margin:28px auto 8px;display:block}.mark.small{width:40px;height:40px;margin:0}.install-hint{color:var(--mist);font-size:12.5px;text-align:center;margin-bottom:12px}.install-hint button{background:none;border:none;color:var(--accent);font-size:12.5px;text-decoration:underline;text-underline-offset:3px;padding:2px}.field-group{margin-top:14px}.field-label{display:block;font-size:13px;font-weight:600;color:var(--ink-on-paper);margin-bottom:6px}.loc-btn{width:100%;min-height:46px;border:1.5px solid #C5BBA3;border-radius:12px;background:#fff;color:var(--ink-on-paper);font-family:inherit;font-size:14.5px;font-weight:600;margin-bottom:8px;font-variant-numeric:tabular-nums;transition:border-color .2s,color .2s}.loc-btn:not(.located){border-color:#c5bba3;color:var(--ink-on-paper)}.loc-btn.located{border-color:var(--go-green);color:var(--go-green);background:#f0faf5}.loc-btn.reset-loc{border-color:#c5bba3;color:#8a7f63;font-size:13px;min-height:38px;margin-top:-4px}.note-field{font-style:italic;border-color:#e0d9c6}.when-row{display:flex;gap:8px}.when-btn{flex:1;min-height:46px;border:1.5px solid #d8cfb8;border-radius:12px;background:#fff;color:var(--ink-on-paper);font-family:inherit;font-size:15px;font-weight:500}.when-btn.active{background:var(--ink-on-paper);color:#fff;border-color:var(--ink-on-paper)}.pax-row{display:flex;gap:8px}.pax-btn{flex:1;min-height:46px;border:1.5px solid #d8cfb8;border-radius:12px;background:#fff;color:var(--ink-on-paper);font-family:inherit;font-size:17px;font-weight:600}.pax-btn.active{background:var(--ink-on-paper);color:#fff;border-color:var(--ink-on-paper)}
