:root{color-scheme:dark;--bg:#06131b;--panel:#0b1d27;--panel2:#102a36;--line:#244452;--gold:#ffb53f;--gold2:#ffd071;--text:#f8f4e9;--muted:#9fb0b9;--cyan:#46dfe8;--green:#6ee7a1;--red:#ff766d}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -20%,rgba(43,118,133,.25),transparent 35%),linear-gradient(#071820,#06131b 60%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea{font:inherit}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(480px,100%);border:1px solid #355361;border-top:3px solid var(--gold);border-radius:18px;background:linear-gradient(180deg,rgba(16,42,54,.98),rgba(7,24,32,.99));padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.42)}.driver-brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:linear-gradient(180deg,#ffc35e,#f09628);font-size:24px}.driver-brand strong,.driver-brand small{display:block}.driver-brand strong{letter-spacing:.08em}.driver-brand small{margin-top:2px;color:var(--gold2);font-size:.68rem;letter-spacing:.18em}.eyebrow{margin:22px 0 7px;color:var(--gold);font-size:.7rem;font-weight:900;letter-spacing:.16em}.auth-card h1,.driver-head h1,.section-head h2{margin:0}.auth-card p,.driver-head p{color:#c7d1d5;line-height:1.5}.auth-card form{display:grid;gap:14px;margin-top:20px}.auth-card label{display:grid;gap:6px;color:#dbe3e7;font-weight:700}.auth-card input{width:100%;border:1px solid #375666;border-radius:10px;background:#06131b;color:white;padding:13px 14px;font-size:1rem;outline:none;text-transform:none}.auth-card input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.12)}.auth-card button{border:0;border-radius:11px;background:linear-gradient(180deg,#ffc35b,#f29a2e);color:#101317;padding:13px 16px;font-weight:900;cursor:pointer}.auth-error{border:1px solid rgba(255,118,109,.4);border-radius:10px;background:rgba(255,118,109,.1);color:#ffc4bf;padding:10px 12px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #23404c;background:rgba(5,18,25,.96);backdrop-filter:blur(12px)}.topbar form{margin:0}.signout,.section-head button{border:1px solid #34515f;border-radius:9px;background:#102631;color:#eaf2f5;padding:8px 11px;font-size:.8rem;font-weight:800;cursor:pointer}.signout{border-color:rgba(255,118,109,.35);color:#ffc7c2}.driver-shell{width:min(820px,calc(100% - 16px));margin:0 auto;padding:18px 0 42px}.driver-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.driver-head .eyebrow{margin:0 0 5px}.driver-head h1{font-size:clamp(1.8rem,8vw,2.5rem)}.driver-head p{margin:4px 0 0;color:var(--muted)}.connection{display:flex;align-items:center;gap:7px;color:#bdebcf;font-size:.75rem}.connection i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(110,231,161,.6)}.availability-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;padding:15px;border:1px solid #294956;border-radius:15px;background:linear-gradient(180deg,#0f2935,#091d27)}.availability-card small,.availability-card strong,.availability-card span{display:block}.availability-card small{color:var(--gold2);font-size:.64rem;font-weight:900;letter-spacing:.13em}.availability-card strong{margin-top:3px;font-size:1.3rem}.availability-card span{margin-top:3px;color:var(--muted);font-size:.76rem}.availability-card button{min-width:150px;border:1px solid #55c887;border-radius:11px;background:var(--green);color:#102018;padding:12px 14px;font-weight:900;cursor:pointer}.availability-card.available{border-color:rgba(110,231,161,.45)}.availability-card.available button{border-color:#d69636;background:linear-gradient(#ffbd55,#ef982e);color:#11161a}.availability-card button:disabled{opacity:.58;cursor:not-allowed}.active-job{margin:18px 0;border:2px solid rgba(70,223,232,.52);border-radius:16px;background:linear-gradient(180deg,#10303c,#081d27);overflow:hidden}.active-job-head{padding:15px 16px;border-bottom:1px solid #28505d}.active-job-head small{color:#9af0f3;font-size:.64rem;font-weight:900;letter-spacing:.13em}.active-job-head h2{margin:4px 0;font-size:1.35rem}.active-job-head p{margin:0;color:var(--muted);font-size:.8rem}.job-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#1c3d48}.job-grid section{background:#0a202a;padding:13px 14px}.job-grid small{display:block;color:#dca94d;font-size:.61rem;font-weight:900;letter-spacing:.12em}.job-grid strong{display:block;margin-top:4px;overflow-wrap:anywhere}.job-grid span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}.job-grid a{display:inline-block;margin-top:7px;color:#8debf0;font-size:.78rem;font-weight:900;text-decoration:none}.job-grid a:hover,.job-grid a:focus{text-decoration:underline}.job-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:12px 14px;background:#081820}.job-actions a,.job-actions button{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #385866;border-radius:10px;background:#102a35;color:#edf5f7;text-decoration:none;font-weight:900;cursor:pointer}.job-actions .primary{border-color:#d69636;background:linear-gradient(#ffbd55,#ef982e);color:#11161a}.job-actions .success{border-color:#3c7656;background:#123a2b;color:#c9f5d8}.waiting-section{margin-top:20px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.section-head .eyebrow{margin:0 0 4px}.waiting-list{display:grid;gap:10px}.empty-state{border:1px dashed #34515f;border-radius:14px;padding:34px 18px;color:#8fa4ad;text-align:center}.waiting-card{border:1px solid #294956;border-left:4px solid var(--gold);border-radius:14px;background:linear-gradient(180deg,#0d2530,#081a23);overflow:hidden}.waiting-card header{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #1b3945}.waiting-card h3{margin:0;font-size:1.05rem}.waiting-card header span{color:#9db0b8;font-size:.72rem}.waiting-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:1px;background:#1b3541}.waiting-grid section{background:#0a1d26;padding:12px 13px}.waiting-grid small{display:block;color:#dca94d;font-size:.6rem;font-weight:900;letter-spacing:.11em}.waiting-grid strong{display:block;margin-top:4px}.waiting-card footer{display:flex;gap:8px;justify-content:flex-end;padding:10px 12px}.waiting-card a,.waiting-card button{border:1px solid #365866;border-radius:9px;background:#102b36;color:#e8f1f3;text-decoration:none;padding:9px 11px;font-size:.8rem;font-weight:900;cursor:pointer}.waiting-card button{border-color:#d69636;background:linear-gradient(#ffbd55,#ef982e);color:#11161a}.toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:30;width:min(92%,500px);border:1px solid #3a5d69;border-radius:12px;background:#0d2833;color:#eef6f8;padding:11px 14px;text-align:center;box-shadow:0 12px 32px rgba(0,0,0,.42)}.toast.error{border-color:rgba(255,118,109,.5);color:#ffd0cc}@media(max-width:560px){.driver-shell{width:calc(100% - 12px);padding-top:14px}.driver-head{align-items:start;flex-direction:column}.availability-card{align-items:stretch;flex-direction:column}.availability-card button{width:100%}.job-grid,.waiting-grid{grid-template-columns:1fr}.job-actions{grid-template-columns:1fr}.waiting-card header{flex-direction:column}.waiting-card footer{display:grid;grid-template-columns:1fr 1fr}.waiting-card footer>*{text-align:center}.topbar{padding:9px}.brand-icon{width:40px;height:40px}.driver-brand strong{font-size:.85rem}.driver-brand small{font-size:.55rem}}

.location-sharing{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid #28505d;background:#091c25}.location-sharing small,.location-sharing strong,.location-sharing span{display:block}.location-sharing small{color:#8debf0;font-size:.61rem;font-weight:900;letter-spacing:.12em}.location-sharing strong{margin-top:3px;color:#f2fafb}.location-sharing span{margin-top:3px;color:#9fb3bb;font-size:.72rem}.location-sharing button{flex:0 0 auto;border:1px solid #3b7481;border-radius:9px;background:#10313d;color:#bdf5f7;padding:9px 11px;font-weight:900;cursor:pointer}.location-sharing.tracking-live{border-top-color:rgba(110,231,161,.45);background:#0a2823}.location-sharing.tracking-live small{color:#91efb5}.location-sharing.tracking-error{background:#2b1b1c}.location-sharing.tracking-error span{color:#ffc0bb}@media(max-width:560px){.location-sharing{align-items:stretch;flex-direction:column}.location-sharing button{width:100%}}

/* v1.2.0 — mandatory temporary-password replacement */
.forced-password-shell{min-height:calc(100vh - 69px)}
.forced-password-card{border-top-color:var(--cyan)}
.forced-driver-id{margin:16px 0 2px;padding:12px 13px;border:1px solid #2e515f;border-radius:11px;background:#081c25}
.forced-driver-id strong,.forced-driver-id span{display:block}.forced-driver-id span{margin-top:3px;color:var(--muted);font-size:.78rem}
.auth-note{margin:14px 0 0!important;color:#8fa5ae!important;font-size:.73rem;line-height:1.45!important}
.driver-notice{margin:0 0 14px;border:1px solid rgba(110,231,161,.38);border-radius:11px;background:rgba(110,231,161,.09);color:#c8f6d8;padding:10px 12px;font-size:.8rem}

/* v1.2.0 — driver/dispatch messaging */
.driver-tabs{display:flex;gap:7px;margin:16px 0 2px}.driver-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #31505d;border-radius:10px;background:#0b222c;color:#9fb0b9;padding:9px 14px;font-weight:900;cursor:pointer}.driver-tabs button.active{border-color:rgba(70,223,232,.5);background:#11313d;color:#eefcfd;box-shadow:inset 0 -2px var(--cyan)}.driver-tab-unread{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:#11161a;font-size:.67rem;font-weight:1000}[data-driver-panel][hidden]{display:none!important}.driver-messages{margin-top:18px}.driver-message-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:10px}.driver-message-head .eyebrow{margin:0 0 4px}.driver-message-head h2{margin:0;font-size:1.5rem}.driver-message-head p{margin:4px 0 0;color:var(--muted);font-size:.8rem}.driver-messenger-shell{display:grid;grid-template-columns:minmax(235px,285px) minmax(0,1fr);min-height:540px;border:1px solid #294956;border-radius:15px;background:#071922;overflow:hidden}.driver-message-contacts{border-right:1px solid #294956;background:#081c25}.driver-message-tools{padding:11px;border-bottom:1px solid #203d49}.driver-message-tools label{display:grid;gap:5px;color:#b9c8ce;font-size:.68rem;font-weight:900}.driver-message-tools input{width:100%;border:1px solid #31515e;border-radius:9px;background:#06151d;color:white;padding:10px;outline:none}.driver-message-tools input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.1)}.driver-message-contact-list{max-height:590px;overflow:auto}.driver-message-contact{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;border:0;border-bottom:1px solid #183440;background:transparent;color:inherit;padding:10px 11px;text-align:left;cursor:pointer}.driver-message-contact:hover,.driver-message-contact.active{background:#102b36}.driver-message-contact.active{box-shadow:inset 3px 0 var(--cyan)}.driver-message-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #355764;background:#12303b;color:#ffe0a4;font-weight:1000;overflow:hidden}.driver-message-avatar img{width:100%;height:100%;object-fit:cover}.driver-message-contact-main{min-width:0}.driver-message-contact-main strong,.driver-message-contact-main span,.driver-message-contact-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-message-contact-main strong{font-size:.84rem}.driver-message-contact-main span{margin-top:2px;color:#9fb0b9;font-size:.7rem}.driver-message-contact-main small{margin-top:3px;color:#738d97;font-size:.66rem}.driver-message-unread{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:var(--gold);color:#11161a;font-size:.66rem;font-weight:1000}.driver-message-thread{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:linear-gradient(180deg,#0b202a,#071820)}.driver-message-thread>header{padding:12px 14px;border-bottom:1px solid #284752;background:#0c2530}.driver-message-thread>header small,.driver-message-thread>header strong,.driver-message-thread>header span{display:block}.driver-message-thread>header small{color:var(--gold2);font-size:.6rem;font-weight:900;letter-spacing:.12em}.driver-message-thread>header strong{margin-top:3px}.driver-message-thread>header span{margin-top:3px;color:var(--muted);font-size:.7rem}.driver-message-thread-list{display:flex;flex-direction:column;gap:8px;min-height:330px;max-height:470px;overflow:auto;padding:14px}.driver-message-bubble{align-self:flex-start;max-width:82%;border:1px solid #31515f;border-radius:14px 14px 14px 4px;background:#102b36;padding:9px 11px}.driver-message-bubble.mine{align-self:flex-end;border-color:#8a672d;border-radius:14px 14px 4px 14px;background:#3b2b12}.driver-message-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.driver-message-bubble small{display:block;margin-top:5px;color:#8ca0a8;font-size:.62rem}.driver-message-bubble.mine small{text-align:right;color:#d1b679}.driver-message-empty{padding:26px 14px;color:#8198a1;text-align:center}.driver-message-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:11px;border-top:1px solid #284752;background:#081b24}.driver-message-compose textarea{width:100%;resize:none;border:1px solid #345562;border-radius:10px;background:#06151d;color:white;padding:10px 11px;outline:none;line-height:1.4}.driver-message-compose textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.1)}.driver-message-compose button{min-width:82px;border:1px solid #d69636;border-radius:10px;background:linear-gradient(#ffbd55,#ef982e);color:#11161a;font-weight:1000;cursor:pointer}.driver-message-compose button:disabled,.driver-message-compose textarea:disabled{opacity:.45;cursor:not-allowed}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:620px){.driver-tabs{display:grid;grid-template-columns:1fr 1fr}.driver-message-head{align-items:flex-start;flex-direction:column}.driver-messenger-shell{grid-template-columns:1fr;min-height:0}.driver-message-contacts{border-right:0;border-bottom:1px solid #294956}.driver-message-contact-list{max-height:220px}.driver-message-thread-list{min-height:300px;max-height:430px}.driver-message-compose{grid-template-columns:1fr}.driver-message-compose button{min-height:44px}}

/* v1.2.4 — high-visibility incoming-message alerts */
@keyframes bcw-driver-message-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 2px rgba(255,255,255,.12),0 0 9px rgba(255,32,45,.82),0 0 18px rgba(255,32,45,.46)}50%{transform:scale(1.12);box-shadow:0 0 0 3px rgba(255,255,255,.18),0 0 14px rgba(255,32,45,1),0 0 28px rgba(255,32,45,.72)}}
.driver-tabs button.has-unread{border-color:#ff3542;color:#fff;background:#35131a;box-shadow:inset 0 -2px #ff3542,0 0 12px rgba(255,32,45,.22)}
.driver-tab-unread{display:inline-grid!important;place-items:center;width:23px;height:23px;min-width:23px;padding:0;border:2px solid #ffd7da;border-radius:50%;background:#ff202d!important;color:#fff!important;font-size:.65rem!important;line-height:1;font-weight:1000!important;box-shadow:0 0 10px rgba(255,32,45,.9),0 0 20px rgba(255,32,45,.5);animation:bcw-driver-message-pulse 1s ease-in-out infinite}
.driver-message-unread{display:grid;place-items:center;width:23px;height:23px;min-width:23px;padding:0;border:2px solid #ffd7da;border-radius:50%;background:#ff202d!important;color:#fff!important;font-size:.64rem;font-weight:1000;box-shadow:0 0 9px rgba(255,32,45,.8)}
@media (prefers-reduced-motion:reduce){.driver-tab-unread{animation:none}}
.driver-tab-unread[hidden]{display:none!important}


/* v1.2.4 — mobile message composer centering / iOS keyboard fix */
html,body{max-width:100%;overflow-x:hidden}
.driver-messages,.driver-messenger-shell,.driver-message-thread,.driver-message-compose{min-width:0;max-width:100%}
.driver-message-compose textarea{min-width:0;max-width:100%;font-size:16px}
@media(max-width:620px){.driver-shell,.driver-messages,.driver-messenger-shell,.driver-message-thread,.driver-message-compose{width:100%;max-width:100%;min-width:0}.driver-message-compose textarea{width:100%;min-width:0;max-width:100%;font-size:16px}}


/* v1.2.5 — Driver Screen Wake Lock status */
.driver-live-stack{display:grid;justify-items:end;gap:7px}
.wake-status{display:flex;align-items:center;gap:7px;color:#b9c8cf;font-size:.72rem;white-space:nowrap}
.wake-status i{width:8px;height:8px;border-radius:50%;background:#70838c;box-shadow:none}
.wake-status[data-state=on]{color:#c9f5d8}.wake-status[data-state=on] i{background:var(--green);box-shadow:0 0 10px rgba(110,231,161,.72)}
.wake-status[data-state=paused]{color:#ffd48d}.wake-status[data-state=paused] i{background:var(--gold);box-shadow:0 0 9px rgba(255,181,63,.55)}
.wake-status[data-state=unsupported]{color:#ffb1aa}.wake-status[data-state=unsupported] i{background:var(--red)}
@media(max-width:560px){.driver-live-stack{justify-items:start}.wake-status{white-space:normal}}

input[name="companyCode"]{text-transform:uppercase;letter-spacing:.08em;font-weight:850}

/* Stage 1C · customer estimate approval */
.waiting-card.customer-approved{border-color:rgba(110,231,161,.5);border-left-color:var(--green)}
.customer-notes{grid-column:1/-1}.waiting-grid span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}
.estimate-form{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(230px,1.5fr) auto;gap:10px;align-items:end;padding:12px 13px;border-top:1px solid #244552;background:#071922}
.estimate-form label{display:grid;gap:6px}.estimate-form label>span,.estimate-state small{color:var(--gold2);font-size:.61rem;font-weight:900;letter-spacing:.1em}.estimate-form em{color:var(--muted);font-style:normal;font-weight:700;letter-spacing:0;text-transform:none}.price-input{display:flex;align-items:center;border:1px solid #365866;border-radius:9px;background:#06131b;overflow:hidden}.price-input b{padding-left:11px;color:var(--green);font-size:1.05rem}.estimate-form input,.estimate-form textarea{width:100%;border:0;background:transparent;color:var(--text);padding:10px;outline:none}.estimate-form textarea{min-height:42px;resize:vertical;border:1px solid #365866;border-radius:9px;background:#06131b}.estimate-form button{min-height:43px;border:1px solid #d69636;border-radius:9px;background:linear-gradient(#ffbd55,#ef982e);color:#11161a;padding:9px 13px;font-weight:900;cursor:pointer}.estimate-form button:disabled{opacity:.55;cursor:wait}
.estimate-state{display:grid;gap:4px;padding:12px 14px;border-top:1px solid #244552;background:#091c25}.estimate-state strong{font-size:1.55rem}.estimate-state span{color:#c5d1d6;font-size:.78rem;line-height:1.45}.estimate-state.pending{border-left:4px solid var(--gold)}.estimate-state.accepted{border-left:4px solid var(--green);background:rgba(38,104,67,.18)}.estimate-state.accepted small{color:var(--green)}.estimate-state.declined{border-left:4px solid var(--red);background:rgba(112,43,42,.13)}.estimate-state.declined small{color:#ffc0ba}
@media(max-width:700px){.estimate-form{grid-template-columns:1fr}.estimate-form button{width:100%}}


/* Stage 1G · service completion + final price */
.completion-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.7fr) minmax(230px,1.25fr) auto;gap:10px;align-items:end;width:100%;padding:13px;border:1px solid rgba(110,231,161,.35);border-radius:11px;background:#071b22}
.completion-title{grid-column:1/-1;display:grid;gap:3px}.completion-title small{color:var(--green);font-size:.62rem;font-weight:950;letter-spacing:.12em}.completion-title strong{font-size:1.05rem}.completion-title span{color:var(--muted);font-size:.74rem}
.completion-form label{display:grid;gap:6px}.completion-form label>span{color:var(--gold2);font-size:.61rem;font-weight:900;letter-spacing:.1em}.completion-form em{color:var(--muted);font-style:normal;font-weight:700;letter-spacing:0;text-transform:none}.completion-form textarea{width:100%;min-height:44px;resize:vertical;border:1px solid #365866;border-radius:9px;background:#06131b;color:var(--text);padding:10px;outline:none}.completion-form .price-input input{width:100%;border:0;background:transparent;color:var(--text);padding:10px;outline:none;font-size:16px}.completion-form button{min-height:44px;padding:9px 14px}.completion-form button:disabled{opacity:.55;cursor:wait}
.completed-section{margin-top:24px}.completed-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:1px solid #365765;border-radius:14px;background:linear-gradient(180deg,#102a35,#091d26);color:var(--text);padding:13px 14px;text-align:left;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.14)}.completed-toggle:hover,.completed-toggle:focus-visible{border-color:rgba(110,231,161,.62);outline:none}.completed-toggle.open{border-color:rgba(110,231,161,.52);border-radius:14px 14px 0 0;background:linear-gradient(180deg,#123329,#0a2421)}.completed-toggle-main{display:flex;align-items:center;gap:11px;min-width:0}.completed-toggle-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border:1px solid rgba(110,231,161,.42);border-radius:11px;background:rgba(38,104,67,.18);color:#baf3d0;font-size:1.1rem;font-weight:1000}.completed-toggle strong,.completed-toggle small{display:block}.completed-toggle strong{font-size:.98rem}.completed-toggle small{margin-top:2px;color:var(--muted);font-size:.69rem;font-weight:700}.completed-toggle-meta{display:flex;align-items:center;gap:10px;flex:0 0 auto}.completed-toggle-meta b{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border:1px solid rgba(110,231,161,.38);border-radius:999px;background:rgba(38,104,67,.18);color:#c9f5d8;font-size:.72rem}.completed-toggle-meta i{color:#a9bdc4;font-size:1.25rem;font-style:normal;line-height:1;transition:transform .18s ease}.completed-toggle.open .completed-toggle-meta i{transform:rotate(180deg)}.completed-panel{border:1px solid rgba(110,231,161,.35);border-top:0;border-radius:0 0 14px 14px;background:#071922;padding:10px}.completed-panel[hidden]{display:none!important}.completed-panel-head{display:flex;justify-content:flex-end;padding:1px 3px 9px;color:var(--muted);font-size:.68rem}.completed-list{display:grid;gap:8px}.completed-card{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid #294956;border-left:4px solid var(--green);border-radius:12px;background:#091d25;padding:11px 13px}.completed-card small,.completed-card strong,.completed-card span{display:block}.completed-card small{color:var(--gold2);font-size:.62rem;font-weight:900;letter-spacing:.06em}.completed-card strong{margin-top:3px}.completed-card span{margin-top:4px;color:var(--muted);font-size:.72rem}.completed-card p{margin:7px 0 0;color:#cbd7da;font-size:.74rem}.completed-badge{flex:0 0 auto;border:1px solid rgba(110,231,161,.45);border-radius:999px;background:rgba(38,104,67,.18);color:#baf3d0!important;padding:5px 8px;font-size:.58rem!important;font-weight:950;letter-spacing:.08em}.completed-job-card{width:100%;appearance:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.completed-job-card:hover,.completed-job-card:focus-visible{border-color:rgba(110,231,161,.72);background:#0d2832;outline:none}.completed-job-card:active{transform:translateY(1px)}
@media(max-width:700px){.completion-form{grid-template-columns:1fr}.completion-form button{width:100%}}
@media(max-width:560px){.completed-card{flex-direction:column}.completed-badge{align-self:flex-start}}

/* Stage 1H · driver estimate trip planner */
.planner-grid .pickup-planner-cell{grid-column:2;grid-row:1 / span 2;min-width:0;min-height:258px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:#0b2530}
.pickup-planner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.pickup-planner-head>div{min-width:0}.pickup-planner-head strong{font-size:.86rem;overflow-wrap:anywhere}.planner-key{flex:0 0 auto!important;margin:0!important;color:#aebfc6!important;font-size:.58rem!important;white-space:nowrap}.planner-key b{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#173a47;color:#fff;font-size:.58rem}.planner-key b:nth-of-type(2){background:#5a4018}.planner-key b:nth-of-type(3){background:#244f36}
.trip-planner-map{position:relative;flex:1 1 auto;width:100%;min-height:166px;border:1px solid #355765;border-radius:10px;overflow:hidden;background:#071820}.trip-map-loading,.trip-map-fallback{min-height:166px;display:grid;place-items:center;padding:16px;color:#9eb2ba;text-align:center;font-size:.72rem;background:linear-gradient(145deg,#0a222c,#071820)}
.trip-mileage{display:grid;grid-template-columns:1fr 1fr;gap:7px}.trip-mileage>div{min-width:0;border:1px solid #31515d;border-radius:9px;background:#071a22;padding:7px 9px}.trip-mileage small{color:var(--gold2)!important;font-size:.54rem!important;letter-spacing:.09em!important}.trip-mileage strong{margin-top:2px!important;color:#f6fbfc;font-size:.79rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trip-map-pin-wrap{background:transparent!important;border:0!important}.trip-map-pin{display:grid;place-items:center;width:34px;height:34px;border:3px solid #d7e3e7;border-radius:50%;color:white;font-weight:950;font-size:.72rem;box-shadow:0 3px 12px rgba(0,0,0,.5)}.trip-map-pin.driver{background:#173a47;border-color:#6de7ef}.trip-map-pin.pickup{background:#5a4018;border-color:#ffbd55}.trip-map-pin.destination{background:#244f36;border-color:#6ee7a1}.trip-planner-map .leaflet-control-attribution{font-size:8px;background:rgba(5,18,25,.78);color:#b7c5ca}.trip-planner-map .leaflet-control-attribution a{color:#ffd071}.trip-planner-map .leaflet-control-zoom{border:0;box-shadow:0 2px 10px rgba(0,0,0,.3)}.trip-planner-map .leaflet-control-zoom a{background:#0b202a;color:#f2f7f8;border-color:#294956}.trip-planner-map .leaflet-popup-content-wrapper,.trip-planner-map .leaflet-popup-tip{background:#081c24;color:#eef6f8}.trip-planner-map .leaflet-popup-content{margin:9px 11px;font-size:.72rem;line-height:1.35}
@media(max-width:560px){.planner-grid .pickup-planner-cell{grid-column:auto;grid-row:auto;min-height:0;order:3}.planner-grid .vehicle-cell{order:1}.planner-grid .destination-cell{order:2}.planner-grid .customer-notes{order:4}.pickup-planner-head{display:grid}.planner-key{white-space:normal!important}.trip-planner-map,.trip-map-loading,.trip-map-fallback{min-height:190px}.trip-mileage{grid-template-columns:1fr}.trip-mileage strong{white-space:normal}}
.trip-planner-map a{padding:0;border:0;border-radius:0;background:transparent;font-size:inherit;font-weight:inherit}.trip-planner-map .leaflet-control-zoom a{display:block;width:30px;height:30px;line-height:30px;text-align:center;padding:0;border-bottom:1px solid #294956;border-radius:0;background:#0b202a;color:#f2f7f8}.trip-planner-map .leaflet-control-zoom a:last-child{border-bottom:0}.trip-planner-map .leaflet-control-attribution a{display:inline;padding:0;border:0;background:transparent;color:#ffd071;font-size:inherit;font-weight:inherit}
.trip-mileage{grid-template-columns:repeat(3,minmax(0,1fr))}.trip-mileage .trip-total{border-color:rgba(70,223,232,.38);background:#09202a}.trip-mileage .trip-total small{color:#8debf0!important}
@media(max-width:560px){.trip-mileage{grid-template-columns:1fr 1fr}.trip-mileage .trip-total{grid-column:1/-1}}

/* Stage 1O — pickup map is now a location link; keep phone estimate submit in the footer */
.mobile-estimate-submit{display:none!important}
@media(max-width:560px){
  .estimate-form .desktop-estimate-submit{display:none!important}
  .waiting-card footer.estimate-footer .mobile-estimate-submit{display:block!important;grid-column:1/-1;width:100%;min-height:44px}
}

/* Stage 1K VIN Scanner Test — standalone driver utility */
.vin-tool-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid rgba(70,223,232,.5);border-radius:10px;background:linear-gradient(180deg,#123744,#0c2934);color:#c7fbfd;padding:8px 12px;font-size:.76rem;font-weight:950;letter-spacing:.05em;cursor:pointer}.vin-tool-button span{font-size:1rem}.vin-tool-button:active{transform:translateY(1px)}
.vin-modal-open{overflow:hidden}.vin-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:14px;background:rgba(2,10,14,.88);backdrop-filter:blur(9px);overflow:auto}.vin-overlay[hidden]{display:none!important}.vin-dialog{width:min(980px,100%);max-height:calc(100vh - 28px);overflow:auto;border:1px solid #3b6370;border-top:3px solid var(--cyan);border-radius:18px;background:linear-gradient(180deg,#0e2a35,#071820 68%);box-shadow:0 28px 90px rgba(0,0,0,.62)}
.vin-dialog-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #294c59;background:rgba(8,28,37,.97);backdrop-filter:blur(10px)}.vin-dialog-head .eyebrow{margin:0 0 4px;color:var(--cyan)}.vin-dialog-head h2{margin:0;font-size:1.4rem}.vin-dialog-head>div>span{display:block;margin-top:4px;color:var(--muted);font-size:.76rem}.vin-close{flex:0 0 auto;width:42px;height:42px;border:1px solid #476472;border-radius:10px;background:#102a35;color:#eef8fa;font-size:1.6rem;line-height:1;cursor:pointer}
.vin-tool-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr);gap:1px;background:#244451}.vin-scan-panel,.vin-results{min-width:0;background:#081c25;padding:16px}.vin-scan-panel{background:#0a202a}.vin-camera-frame{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid #3a5c69;border-radius:14px;background:radial-gradient(circle at center,#17303a,#041017 70%)}.vin-camera-frame video{display:block;width:100%;height:100%;object-fit:cover}.vin-scan-guide{position:absolute;inset:16% 7%;border:2px solid rgba(255,208,113,.9);border-radius:12px;box-shadow:0 0 0 999px rgba(2,9,13,.24),0 0 24px rgba(255,181,63,.16)}.vin-scan-guide:before,.vin-scan-guide:after{content:"";position:absolute;width:32px;height:32px;border-color:var(--cyan);border-style:solid}.vin-scan-guide:before{left:-3px;top:-3px;border-width:3px 0 0 3px;border-radius:9px 0 0 0}.vin-scan-guide:after{right:-3px;bottom:-3px;border-width:0 3px 3px 0;border-radius:0 0 9px 0}.vin-scan-guide span{position:absolute;left:5%;right:5%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 14px rgba(70,223,232,.8);animation:vinScanLine 2.3s ease-in-out infinite}@keyframes vinScanLine{0%,100%{transform:translateY(-46px);opacity:.45}50%{transform:translateY(46px);opacity:1}}@media(prefers-reduced-motion:reduce){.vin-scan-guide span{animation:none}}
.vin-camera-status{margin-top:9px;min-height:38px;border:1px solid #315260;border-radius:9px;background:#07171e;color:#afc0c7;padding:9px 10px;font-size:.74rem;line-height:1.35}.vin-camera-status[data-state=live]{border-color:rgba(70,223,232,.45);color:#bdf6f8}.vin-camera-status[data-state=success]{border-color:rgba(110,231,161,.5);color:#c9f6d8}.vin-camera-status[data-state=warning]{border-color:rgba(255,181,63,.45);color:#ffdaa0}.vin-camera-status[data-state=error]{border-color:rgba(255,118,109,.48);color:#ffc0bb}
.vin-camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.vin-camera-actions button,.vin-entry-form button{min-height:44px;border-radius:10px;font-weight:900;cursor:pointer}.vin-camera-actions .primary,.vin-entry-form button{border:1px solid #d69636;background:linear-gradient(#ffbd55,#ef982e);color:#11161a}.vin-camera-actions .secondary{border:1px solid #3d5d69;background:#102933;color:#eef5f7}.vin-entry-form{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end;margin-top:12px}.vin-entry-form label{display:grid;gap:6px;min-width:0}.vin-entry-form label span{color:var(--gold2);font-size:.61rem;font-weight:950;letter-spacing:.11em}.vin-entry-form input{width:100%;min-width:0;border:1px solid #3a5b68;border-radius:10px;background:#041219;color:white;padding:11px 12px;font-size:16px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;outline:none}.vin-entry-form input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.11)}.vin-entry-form button{padding:10px 14px}.vin-entry-form button:disabled{opacity:.55;cursor:wait}.vin-tool-help{margin:10px 0 0;color:#849aa4;font-size:.69rem;line-height:1.45}
.vin-results{display:grid;align-content:start;gap:12px}.vin-start-note,.vin-result-loading,.vin-result-error{min-height:220px;display:grid;place-items:center;align-content:center;gap:6px;border:1px dashed #355563;border-radius:14px;background:#071820;padding:22px;text-align:center}.vin-start-note strong,.vin-result-loading strong,.vin-result-error strong{font-size:1rem}.vin-start-note span,.vin-result-loading small,.vin-result-error span{color:var(--muted);font-size:.76rem;line-height:1.45}.vin-result-loading span{width:32px;height:32px;border:3px solid #2b505d;border-top-color:var(--cyan);border-radius:50%;animation:vinSpin .8s linear infinite}@keyframes vinSpin{to{transform:rotate(360deg)}}.vin-result-error{border-color:rgba(255,118,109,.45);background:rgba(80,27,27,.15)}.vin-result-error strong{color:#ffc2bd}
.vin-result-head{border:1px solid rgba(70,223,232,.4);border-radius:13px;background:linear-gradient(150deg,#10333f,#09212a);padding:14px}.vin-result-head small{color:var(--cyan);font-size:.61rem;font-weight:950;letter-spacing:.12em}.vin-result-head h3{margin:4px 0 7px;font-size:1.35rem}.vin-result-head code{display:block;overflow-wrap:anywhere;color:#ffd88f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88rem;letter-spacing:.06em}.vin-warning{display:grid;gap:4px;border:1px solid rgba(255,181,63,.38);border-radius:11px;background:rgba(99,65,17,.13);padding:10px 12px}.vin-warning strong{color:#ffda9d;font-size:.74rem}.vin-warning span{color:#d5c09b;font-size:.7rem;line-height:1.4}.vin-result-section{border:1px solid #2d4d59;border-radius:13px;background:#071a22;overflow:hidden}.vin-result-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #284753;background:#0b2530;color:#eaf5f7;font-size:.76rem;font-weight:900}.vin-result-section-title b{display:grid;place-items:center;min-width:26px;height:24px;padding:0 7px;border-radius:999px;background:#143946;color:#9af2f5;font-size:.67rem}.vin-highlight-grid,.vin-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#203b45}.vin-highlight-grid>div,.vin-detail-grid>div{min-width:0;background:#081c25;padding:10px 11px}.vin-highlight-grid small,.vin-detail-grid small{display:block;color:#d7ab5d;font-size:.57rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.vin-highlight-grid strong,.vin-detail-grid strong{display:block;margin-top:3px;color:#f3f8f9;font-size:.8rem;line-height:1.35;overflow-wrap:anywhere}.vin-highlight-grid strong{font-size:.86rem}.vin-empty-details{padding:16px;color:var(--muted);font-size:.76rem}.vin-source-note{margin:0;color:#7f949d;font-size:.65rem;line-height:1.4}
@media(max-width:760px){.vin-overlay{align-items:start;padding:6px}.vin-dialog{max-height:none;border-radius:14px}.vin-tool-layout{grid-template-columns:1fr}.vin-dialog-head{padding:13px}.vin-scan-panel,.vin-results{padding:12px}.vin-camera-frame{aspect-ratio:16/11}.vin-highlight-grid,.vin-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.vin-entry-form{grid-template-columns:1fr}.vin-entry-form button{width:100%}.vin-camera-actions{grid-template-columns:1fr}.vin-highlight-grid,.vin-detail-grid{grid-template-columns:1fr}.vin-dialog-head h2{font-size:1.2rem}.vin-tool-button{width:100%}.driver-live-stack{width:100%;justify-items:stretch}.driver-live-stack .connection,.driver-live-stack .wake-status{justify-self:start}}


/* Stage 1L — repeating old cash-register incoming-request alarm */
.request-alarm-open{overflow:hidden}.request-alarm-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:rgba(1,8,12,.93);backdrop-filter:blur(12px)}.request-alarm-overlay[hidden]{display:none!important}.request-alarm-dialog{width:min(560px,100%);border:2px solid #ffb53f;border-top:6px solid #ffd071;border-radius:24px;background:radial-gradient(circle at 50% 0,rgba(255,181,63,.18),transparent 42%),linear-gradient(180deg,#132f38,#071820 72%);box-shadow:0 0 0 1px rgba(255,208,113,.18),0 30px 100px rgba(0,0,0,.72),0 0 50px rgba(255,181,63,.18);padding:26px;text-align:center;animation:requestAlarmPulse 1.15s ease-in-out infinite}.request-alarm-register{position:relative;display:grid;place-items:center;width:96px;height:96px;margin:0 auto 14px;border:1px solid rgba(255,208,113,.52);border-radius:24px;background:linear-gradient(145deg,#3d2a0b,#18140e);font-size:3.3rem;box-shadow:inset 0 0 20px rgba(255,181,63,.16),0 0 28px rgba(255,181,63,.2)}.request-alarm-register span{position:absolute;right:-12px;top:-12px;font-size:1.8rem;animation:requestBellShake .55s ease-in-out infinite}.request-alarm-eyebrow{margin:0;color:#ffd071;font-size:.72rem;font-weight:1000;letter-spacing:.16em}.request-alarm-dialog h2{margin:7px 0 10px;color:#fff;font-size:clamp(1.65rem,5vw,2.25rem)}.request-alarm-details{border:1px solid #315360;border-radius:12px;background:#06151c;padding:12px;color:#dcecef;font-size:.92rem;line-height:1.45}.request-alarm-status{margin:13px 0;color:#ffdfa1;font-size:.78rem;line-height:1.4}.request-alarm-ack{width:100%;min-height:58px;border:1px solid #ffd071;border-radius:14px;background:linear-gradient(180deg,#ffc863,#f09b2d);box-shadow:0 8px 24px rgba(240,155,45,.3);color:#17130c;font-size:1rem;font-weight:1000;letter-spacing:.04em;cursor:pointer}.request-alarm-ack:active{transform:translateY(1px)}.request-acknowledged-flash{animation:requestAckFlash 1.8s ease-out}
@keyframes requestAlarmPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 1px rgba(255,208,113,.18),0 30px 100px rgba(0,0,0,.72),0 0 38px rgba(255,181,63,.12)}50%{transform:scale(1.012);box-shadow:0 0 0 1px rgba(255,208,113,.35),0 30px 100px rgba(0,0,0,.72),0 0 64px rgba(255,181,63,.3)}}@keyframes requestBellShake{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}@keyframes requestAckFlash{0%{box-shadow:0 0 0 0 rgba(110,231,161,.8)}35%{box-shadow:0 0 0 8px rgba(110,231,161,.28)}100%{box-shadow:0 0 0 0 rgba(110,231,161,0)}}
@media(max-width:560px){.request-alarm-overlay{padding:10px}.request-alarm-dialog{padding:22px 16px;border-radius:20px}.request-alarm-register{width:82px;height:82px;font-size:2.8rem}.request-alarm-ack{min-height:62px;font-size:1.05rem}}
@media(prefers-reduced-motion:reduce){.request-alarm-dialog,.request-alarm-register span,.request-acknowledged-flash{animation:none}}

/* Stage 1M — driver entry hints disappear immediately on touch/click */
input:focus::placeholder,
textarea:focus::placeholder{
  color:transparent!important;
  opacity:0!important;
}
input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder{
  color:transparent!important;
  opacity:0!important;
}
input:focus::-moz-placeholder,
textarea:focus::-moz-placeholder{
  color:transparent!important;
  opacity:0!important;
}

/* Stage 1R — active-call status consolidation and gold job header */
.availability-card[hidden]{display:none!important}
.active-job-head{
  background:linear-gradient(#ffbd55,#ef982e);
  color:#11161a;
  border-bottom-color:#d18425;
  padding:16px 17px 17px;
}
.active-job-topline{display:flex;align-items:center;justify-content:space-between;gap:14px}
.active-job-head small{color:#36240d;font-size:.78rem;letter-spacing:.14em}
.active-job-busy{font-size:1.42rem;line-height:1;font-weight:1000;letter-spacing:.075em;color:#11161a}
.active-job-head h2{margin:7px 0 5px;font-size:clamp(1.55rem,5.4vw,1.9rem);line-height:1.12;color:#11161a}
.active-job-head p{margin:0;color:#2f2416;font-size:1rem;line-height:1.35;font-weight:900}
@media(max-width:560px){
  .active-job-head{padding:15px 15px 16px}
  .active-job-busy{font-size:1.32rem}
  .active-job-head h2{font-size:1.52rem}
  .active-job-head p{font-size:.94rem}
}


/* Stage 1S — full Driver Job Ticket with VIN-first workflow */
.vin-tool-button:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.25)}
.job-ticket-overlay{align-items:flex-start;overflow-y:auto;padding:10px}
.job-ticket-dialog{width:min(1040px,100%);max-height:none;margin:0 auto 30px}
.job-ticket-dialog-head{position:sticky;top:0;z-index:8;background:rgba(8,27,36,.97);backdrop-filter:blur(12px)}
.job-ticket-call-banner{position:sticky;top:78px;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #294b57;background:linear-gradient(180deg,#112e39,#0a222c);padding:10px 16px}
.job-ticket-call-banner small,.job-ticket-call-banner strong{display:block}.job-ticket-call-banner small{color:var(--gold2);font-size:.58rem;font-weight:1000;letter-spacing:.12em}.job-ticket-call-banner strong{margin-top:2px;font-size:.92rem}.job-ticket-call-banner>span{border:1px solid #46616b;border-radius:999px;background:#071920;color:#b4c4ca;padding:6px 10px;font-size:.66rem;font-weight:900}.job-ticket-call-banner>span[data-saved=true]{border-color:rgba(110,231,161,.45);background:#0c2c24;color:#bdf3d0}
.job-ticket-scan-section,.job-ticket-section{border-bottom:1px solid #294955;background:#071a22;padding:16px}.job-ticket-scan-section{background:linear-gradient(180deg,#0b2530,#071a22)}
.job-ticket-section-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:13px}.job-ticket-section-heading>b{display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid #d99a37;border-radius:10px;background:linear-gradient(#ffbd55,#ef982e);color:#15120d;font-size:.9rem}.job-ticket-section-heading small,.job-ticket-section-heading h3,.job-ticket-section-heading p{display:block;margin:0}.job-ticket-section-heading small{color:var(--gold2);font-size:.57rem;font-weight:1000;letter-spacing:.12em}.job-ticket-section-heading h3{margin-top:2px;font-size:1.15rem}.job-ticket-section-heading p{margin-top:3px;color:#94aab3;font-size:.72rem;line-height:1.4}
.job-ticket-form{display:block}.job-ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.job-ticket-grid label{display:grid;align-content:start;gap:6px;min-width:0}.job-ticket-grid label>span{color:#d9ab5b;font-size:.59rem;font-weight:950;letter-spacing:.09em}.job-ticket-grid input,.job-ticket-grid textarea,.job-ticket-grid select{width:100%;min-width:0;border:1px solid #365966;border-radius:10px;background:#04151c;color:#f6fbfc;padding:10px 11px;font-size:16px;outline:none}.job-ticket-grid textarea{resize:vertical;line-height:1.4}.job-ticket-grid select{appearance:auto}.job-ticket-grid input:focus,.job-ticket-grid textarea:focus,.job-ticket-grid select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.1)}.job-ticket-grid input[readonly],.job-ticket-grid textarea[readonly]{background:#0a222c;color:#b9c8ce;border-color:#294a56}.job-ticket-grid .span-2{grid-column:1/-1}
.job-ticket-estimate,.job-ticket-total{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #345561;border-radius:11px;background:#091f28;padding:11px 13px}.job-ticket-estimate{margin-bottom:11px}.job-ticket-estimate span,.job-ticket-total span{color:#a8bac1;font-size:.64rem;font-weight:950;letter-spacing:.1em}.job-ticket-estimate strong{color:#ffd487}.job-ticket-total{margin-top:12px;border-color:rgba(255,181,63,.45);background:#28200f}.job-ticket-total strong{color:#ffd071;font-size:1.35rem}
.job-ticket-footer{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:2px solid #d89939;background:rgba(7,24,32,.98);backdrop-filter:blur(12px);padding:13px 16px}.job-ticket-footer strong,.job-ticket-footer span{display:block}.job-ticket-footer strong{font-size:.9rem}.job-ticket-footer span{margin-top:3px;color:#97acb5;font-size:.68rem}.job-ticket-footer button{flex:0 0 auto;min-width:190px;min-height:48px;border:1px solid #ffd071;border-radius:11px;background:linear-gradient(#ffbd55,#ef982e);color:#14120e;font-weight:1000;cursor:pointer}.job-ticket-footer button:disabled{opacity:.58;cursor:wait}
@media(max-width:760px){.job-ticket-overlay{padding:0}.job-ticket-dialog{margin:0;min-height:100vh;border-radius:0}.job-ticket-dialog-head{top:0}.job-ticket-call-banner{top:76px}.job-ticket-grid{grid-template-columns:1fr}.job-ticket-grid .span-2{grid-column:auto}.job-ticket-footer{align-items:stretch;flex-direction:column}.job-ticket-footer button{width:100%;min-width:0}.job-ticket-scan-section,.job-ticket-section{padding:13px}.job-ticket-call-banner{padding:9px 13px}.job-ticket-call-banner>span{white-space:nowrap}}
@media(max-width:480px){.job-ticket-dialog-head{padding-right:52px}.job-ticket-call-banner{top:75px}.job-ticket-call-banner strong{font-size:.82rem}.job-ticket-call-banner>span{font-size:.58rem;padding:5px 8px}}


/* Stage 1T — Job Ticket opens normally; VIN scanner opens only from its own button */
.job-ticket-banner-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:0 0 auto}
.job-ticket-banner-actions>button{min-height:38px;border:1px solid #ffd071;border-radius:9px;background:linear-gradient(#ffbd55,#ef982e);color:#14120e;padding:7px 13px;font-size:.72rem;font-weight:1000;cursor:pointer;white-space:nowrap}
.job-ticket-banner-actions>button[aria-expanded=true]{border-color:#78eaf0;background:#123b47;color:#eaffff}
.job-ticket-banner-actions>span{border:1px solid #46616b;border-radius:999px;background:#071920;color:#b4c4ca;padding:6px 10px;font-size:.66rem;font-weight:900;white-space:nowrap}
.job-ticket-banner-actions>span[data-saved=true]{border-color:rgba(110,231,161,.45);background:#0c2c24;color:#bdf3d0}
.job-ticket-scan-section[hidden]{display:none!important}
.job-ticket-scan-heading{align-items:center}
.job-ticket-scan-heading>div{flex:1 1 auto}
.job-ticket-scan-heading>button{flex:0 0 auto;min-height:38px;border:1px solid #3d5d69;border-radius:9px;background:#102933;color:#eef5f7;padding:7px 11px;font-weight:900;cursor:pointer}
@media(max-width:760px){.job-ticket-call-banner{align-items:flex-start}.job-ticket-banner-actions{align-items:stretch;flex-direction:column}.job-ticket-banner-actions>button,.job-ticket-banner-actions>span{text-align:center}.job-ticket-scan-heading{align-items:flex-start;flex-wrap:wrap}.job-ticket-scan-heading>button{width:100%}}
@media(max-width:480px){.job-ticket-call-banner{gap:8px}.job-ticket-banner-actions{gap:6px}.job-ticket-banner-actions>button{font-size:.66rem;padding:6px 9px}.job-ticket-banner-actions>span{font-size:.56rem;padding:5px 7px}}

/* Stage 1U — landscape customer signature capture */
.job-ticket-signature-card{margin-top:14px;border:1px solid rgba(255,190,83,.42);border-radius:14px;background:linear-gradient(180deg,#102a34,#081c24);padding:14px}
.job-ticket-signature-copy small,.job-ticket-signature-copy h4,.job-ticket-signature-copy p{display:block;margin:0}.job-ticket-signature-copy small{color:var(--gold2);font-size:.58rem;font-weight:1000;letter-spacing:.12em}.job-ticket-signature-copy h4{margin-top:3px;font-size:1.05rem}.job-ticket-signature-copy p{margin-top:5px;color:#a9bac1;font-size:.72rem;line-height:1.45}
.job-ticket-signature-preview-wrap{position:relative;display:grid;place-items:center;min-height:128px;margin-top:12px;border:2px dashed #54707a;border-radius:12px;background:#fff;overflow:hidden;cursor:pointer;touch-action:manipulation}.job-ticket-signature-preview-wrap canvas{display:block;width:100%;height:128px}.job-ticket-signature-preview-wrap>span{position:absolute;color:#66747a;font-size:.72rem;font-weight:900;letter-spacing:.06em;pointer-events:none}.job-ticket-signature-preview-wrap:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.job-ticket-signature-preview-wrap:active{transform:scale(.995)}.job-ticket-signature-preview-wrap[data-signed=true]{border-style:solid;border-color:#e4ae50}.job-ticket-signature-preview-wrap[data-signed=true]>span{display:none}
.job-ticket-signature-meta{display:grid;grid-template-columns:1fr;gap:10px;margin-top:11px}.job-ticket-signature-meta label{display:grid;gap:6px}.job-ticket-signature-meta label>span{color:#d9ab5b;font-size:.59rem;font-weight:950;letter-spacing:.09em}.job-ticket-signature-meta input{width:100%;border:1px solid #365966;border-radius:10px;background:#04151c;color:#f6fbfc;padding:10px 11px;font-size:16px;outline:none}.job-ticket-signature-meta input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(70,223,232,.1)}
.job-ticket-signature-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:11px}.job-ticket-signature-actions button{min-height:44px;border:1px solid #ffd071;border-radius:10px;background:linear-gradient(#ffbd55,#ef982e);color:#14120e;font-weight:1000;cursor:pointer}.job-ticket-signature-actions button.secondary{border-color:#42616c;background:#102a34;color:#eef7f9}.job-ticket-signature-actions button:disabled{opacity:.45;cursor:not-allowed}

/* Stage 2Q — compact signature status; no redundant inline white preview canvas */
.job-ticket-signature-compact{display:flex;align-items:center;justify-content:space-between;gap:14px}
.job-ticket-signature-compact .job-ticket-signature-copy{flex:1 1 auto;min-width:0}
.job-ticket-signature-compact .job-ticket-signature-copy h4{color:#f4f8f9}
.job-ticket-signature-compact-actions{display:flex;grid-template-columns:none;flex:0 0 auto;margin-top:0}
.job-ticket-signature-compact-actions button{min-width:190px;padding:9px 13px}
.job-ticket-signature-compact-actions button.secondary{min-width:120px}
@media(max-width:760px){.job-ticket-signature-compact{align-items:stretch;flex-direction:column}.job-ticket-signature-compact-actions{display:grid;grid-template-columns:1fr}.job-ticket-signature-compact-actions button,.job-ticket-signature-compact-actions button.secondary{width:100%;min-width:0}}
.signature-pad-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:rgba(1,8,11,.96);padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow:auto}.signature-pad-overlay[hidden]{display:none!important}.signature-pad-dialog{width:min(1100px,100%);border:1px solid #4b6873;border-top:3px solid #f4ae3d;border-radius:16px;background:linear-gradient(180deg,#0d2832,#06171e);box-shadow:0 28px 90px rgba(0,0,0,.7);padding:14px}.signature-pad-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.signature-pad-dialog header small,.signature-pad-dialog header h3,.signature-pad-dialog header p{display:block;margin:0}.signature-pad-dialog header small{color:var(--gold2);font-size:.58rem;font-weight:1000;letter-spacing:.12em}.signature-pad-dialog header h3{margin-top:2px;font-size:1.35rem}.signature-pad-dialog header p{margin-top:4px;color:#a8bac1;font-size:.74rem;line-height:1.4}.signature-pad-dialog header button{flex:0 0 auto;width:42px;height:42px;border:1px solid #496773;border-radius:10px;background:#102a34;color:#fff;font-size:1.5rem;cursor:pointer}.signature-rotate-note{display:none;margin-top:10px;border:1px solid rgba(255,190,83,.5);border-radius:10px;background:#2b210d;color:#ffd47f;padding:9px 11px;text-align:center;font-size:.72rem;font-weight:950}.signature-pad-name{display:grid;gap:6px;margin-top:11px}.signature-pad-name span{color:#d9ab5b;font-size:.59rem;font-weight:950;letter-spacing:.09em}.signature-pad-name input{width:100%;border:1px solid #365966;border-radius:10px;background:#04151c;color:#f6fbfc;padding:10px 11px;font-size:16px;outline:none}.signature-canvas-shell{position:relative;margin-top:11px;border:3px solid #e5b152;border-radius:12px;background:#fff;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.signature-canvas-shell canvas{display:block;width:100%;height:min(48vh,380px);min-height:230px;touch-action:none;cursor:crosshair}.signature-canvas-shell>span{position:absolute;left:18px;bottom:14px;color:#b3b8ba;font-size:.7rem;font-weight:1000;letter-spacing:.13em;pointer-events:none}.signature-pad-disclosure{margin:9px 2px 0;color:#9fb0b7;font-size:.68rem;line-height:1.4}.signature-pad-dialog footer{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(110px,.6fr) minmax(180px,1fr);gap:9px;margin-top:12px}.signature-pad-dialog footer button{min-height:48px;border:1px solid #4a6670;border-radius:10px;background:#102a34;color:#eef7f9;font-weight:1000;cursor:pointer}.signature-pad-dialog footer button.primary{border-color:#ffd071;background:linear-gradient(#ffbd55,#ef982e);color:#14120e}
@media(max-width:760px){.job-ticket-signature-actions{grid-template-columns:1fr}.signature-pad-overlay{place-items:start center;padding:0}.signature-pad-dialog{min-height:100dvh;border-radius:0;padding:12px}.signature-pad-dialog footer{grid-template-columns:1fr 1fr}.signature-pad-dialog footer .primary{grid-column:1/-1}.signature-canvas-shell canvas{height:42vh;min-height:230px}}
@media(orientation:portrait) and (max-width:900px){.signature-rotate-note{display:block}.signature-canvas-shell canvas{height:38vh}}
@media(orientation:landscape) and (max-height:620px){.signature-pad-dialog{padding:8px 12px}.signature-pad-dialog header p,.signature-pad-disclosure{display:none}.signature-pad-name{margin-top:6px}.signature-canvas-shell{margin-top:7px}.signature-canvas-shell canvas{height:48vh;min-height:190px}.signature-pad-dialog footer{margin-top:8px}.signature-pad-dialog footer button{min-height:42px}}

/* Stage 1W — simulated landscape signature view for iPhone/web-app use */
body.signature-modal-open{overflow:hidden;overscroll-behavior:none}
.signature-pad-overlay[data-auto-landscape="true"]{display:block;padding:0;overflow:hidden}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog{
  position:absolute;
  left:50%;
  top:50%;
  width:100vh;
  width:100dvh;
  height:100vw;
  height:100dvw;
  max-width:none;
  min-height:0;
  max-height:none;
  transform:translate(-50%,-50%) rotate(90deg);
  transform-origin:center;
  border-radius:0;
  border-left:0;
  border-right:0;
  padding:8px 12px;
  overflow:auto;
  overscroll-behavior:contain;
}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog header{align-items:center}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog header h3{font-size:1.05rem}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog header p,
.signature-pad-overlay[data-auto-landscape="true"] .signature-rotate-note,
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-disclosure{display:none!important}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog header button{width:36px;height:36px;font-size:1.25rem}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-name{margin-top:5px;grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:8px}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-name input{padding:7px 10px}
.signature-pad-overlay[data-auto-landscape="true"] .signature-canvas-shell{margin-top:6px;border-width:2px}
.signature-pad-overlay[data-auto-landscape="true"] .signature-canvas-shell canvas{
  height:calc(100dvw - 178px);
  min-height:145px;
  max-height:270px;
}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog footer{grid-template-columns:minmax(90px,.55fr) minmax(90px,.55fr) minmax(150px,1fr);gap:7px;margin-top:7px}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog footer button{min-height:40px}
@supports not (height:100dvw){
  .signature-pad-overlay[data-auto-landscape="true"] .signature-canvas-shell canvas{height:calc(100vw - 178px)}
}



/* Stage 1X — true full-screen signature layer above the entire Job Ticket */
body.signature-modal-open{overflow:hidden!important;overscroll-behavior:none}
body.signature-modal-open .job-ticket-overlay{overflow:hidden!important;touch-action:none}
.signature-pad-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:1000!important;
  width:100vw;
  width:100dvw;
  height:100vh;
  height:100dvh;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  overscroll-behavior:none;
  touch-action:none;
  background:#031016;
}
.signature-pad-overlay .signature-pad-dialog{
  box-sizing:border-box;
  width:100vw;
  width:100dvw;
  height:100vh;
  height:100dvh;
  max-width:none;
  max-height:none;
  min-height:0;
  margin:0;
  border-radius:0;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr) auto auto;
  gap:7px;
  padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
}
.signature-pad-overlay .signature-pad-dialog header,
.signature-pad-overlay .signature-pad-name,
.signature-pad-overlay .signature-pad-dialog footer,
.signature-pad-overlay .signature-pad-dialog button,
.signature-pad-overlay .signature-pad-dialog input{touch-action:manipulation}
.signature-pad-overlay .signature-pad-name{margin:0;grid-template-columns:auto minmax(160px,1fr);align-items:center;gap:8px}
.signature-pad-overlay .signature-canvas-shell{min-height:0;height:100%;margin:0;border-width:2px}
.signature-pad-overlay .signature-canvas-shell canvas{width:100%;height:100%;min-height:0;max-height:none}
.signature-pad-overlay .signature-pad-disclosure{margin:0}
.signature-pad-overlay .signature-pad-dialog footer{margin:0}

/* Portrait phones: rotate the full-screen signing workspace, not the Job Ticket. */
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog{
  position:absolute;
  left:50%;
  top:50%;
  width:100vh;
  width:100dvh;
  height:100vw;
  height:100dvw;
  transform:translate(-50%,-50%) rotate(90deg);
  transform-origin:center;
  overflow:hidden!important;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  gap:6px;
  padding:max(7px,env(safe-area-inset-left)) max(9px,env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-top));
}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog header{min-height:0}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-name{margin:0}
.signature-pad-overlay[data-auto-landscape="true"] .signature-canvas-shell{margin:0;height:100%;min-height:0}
.signature-pad-overlay[data-auto-landscape="true"] .signature-canvas-shell canvas{height:100%;min-height:0;max-height:none}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-dialog footer{margin:0}
.signature-pad-overlay[data-auto-landscape="true"] .signature-pad-disclosure{display:none!important}

@media(orientation:landscape) and (max-height:620px){
  .signature-pad-overlay .signature-pad-dialog{grid-template-rows:auto auto minmax(0,1fr) auto;gap:6px;padding:7px 10px}
  .signature-pad-overlay .signature-pad-dialog header p,
  .signature-pad-overlay .signature-pad-disclosure,
  .signature-pad-overlay .signature-rotate-note{display:none!important}
  .signature-pad-overlay .signature-pad-name{margin:0}
  .signature-pad-overlay .signature-canvas-shell{margin:0;height:100%;min-height:0}
  .signature-pad-overlay .signature-canvas-shell canvas{height:100%;min-height:0;max-height:none}
  .signature-pad-overlay .signature-pad-dialog footer{margin:0}
}

/* Stage 1Z · completed customer invoices */
.completed-invoices-section{margin-top:12px}
.invoice-toggle:hover,.invoice-toggle:focus-visible{border-color:rgba(255,190,83,.72)}
.invoice-toggle.open{border-color:rgba(255,190,83,.62);background:linear-gradient(180deg,#34270f,#241b0b)}
.invoice-toggle-icon{border-color:rgba(255,190,83,.5);background:rgba(255,181,63,.14);color:#ffd17a}
.invoice-toggle .completed-toggle-meta b{border-color:rgba(255,190,83,.42);background:rgba(255,181,63,.13);color:#ffe0a1}
.invoice-list-panel{border-color:rgba(255,190,83,.38)}
.invoice-history-card{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:1px solid #385866;border-left:4px solid #f2aa39;border-radius:12px;background:#0a2029;color:var(--text);padding:12px 13px;text-align:left;cursor:pointer}
.invoice-history-card:hover,.invoice-history-card:focus-visible{border-color:#e4aa4e;background:#102b35;outline:none}
.invoice-history-card span{min-width:0}.invoice-history-card small,.invoice-history-card strong,.invoice-history-card em{display:block}.invoice-history-card small{color:#ffd17a;font-size:.62rem;font-weight:950;letter-spacing:.06em}.invoice-history-card strong{margin-top:4px;font-size:.92rem}.invoice-history-card em{margin-top:4px;color:var(--muted);font-size:.7rem;font-style:normal;overflow-wrap:anywhere}.invoice-history-card>b{flex:0 0 auto;border:1px solid #ffd071;border-radius:9px;background:linear-gradient(#ffbd55,#ef982e);color:#17130c;padding:8px 10px;font-size:.66rem;font-weight:1000;white-space:nowrap}
@media(max-width:560px){.invoice-history-card{align-items:flex-start;flex-direction:column}.invoice-history-card>b{align-self:stretch;text-align:center}}

.invoice-modal-open{overflow:hidden}
.invoice-overlay{position:fixed;inset:0;z-index:160;display:block;background:#07131a;overflow:auto;padding:14px}
.invoice-overlay[hidden]{display:none!important}
.invoice-dialog{width:min(1050px,100%);margin:0 auto 30px;border:1px solid #3a5965;border-radius:16px;background:#dfe5e7;box-shadow:0 30px 100px rgba(0,0,0,.72);overflow:hidden}
.invoice-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:2px solid #e0a43f;background:linear-gradient(180deg,#102d38,#071b23);color:#fff;padding:13px 16px}.invoice-toolbar small,.invoice-toolbar h2,.invoice-toolbar span{display:block;margin:0}.invoice-toolbar small{color:#ffd071;font-size:.57rem;font-weight:1000;letter-spacing:.12em}.invoice-toolbar h2{margin-top:2px;font-size:1.2rem}.invoice-toolbar span{margin-top:3px;color:#aec0c7;font-size:.7rem}.invoice-toolbar-actions{display:flex;gap:9px;flex:0 0 auto}.invoice-toolbar-actions button{min-height:42px;border:1px solid #ffd071;border-radius:9px;background:linear-gradient(#ffbd55,#ef982e);color:#16120d;padding:8px 13px;font-weight:1000;cursor:pointer}.invoice-toolbar-actions button.secondary{border-color:#496773;background:#102a34;color:#fff}
.invoice-document{min-height:680px;background:#fff;color:#172128;padding:42px 46px;font-family:Arial,Helvetica,sans-serif}.invoice-loading{display:grid;place-items:center;min-height:60vh;color:#52636b;font-weight:800}
.invoice-paper-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;border-bottom:4px solid #d99a37;padding-bottom:22px}.invoice-company{display:flex;align-items:flex-start;gap:14px}.invoice-company-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:14px;background:#0b2b36;color:#ffd071;font-size:1.15rem;font-weight:1000}.invoice-company h1{margin:0;color:#0d2832;font-size:1.62rem}.invoice-company p{margin:7px 0 0;color:#5b6a70;font-size:.78rem;line-height:1.55}.invoice-title{text-align:right}.invoice-title span,.invoice-title strong,.invoice-title b{display:block}.invoice-title span{color:#91631f;font-size:.72rem;font-weight:1000;letter-spacing:.18em}.invoice-title strong{margin-top:6px;color:#0c2732;font-size:1.5rem}.invoice-title b{display:inline-block;margin-top:9px;border-radius:999px;background:#dff3e7;color:#1d6a40;padding:6px 10px;font-size:.64rem;letter-spacing:.08em}
.invoice-summary-grid{display:grid;grid-template-columns:1fr 1fr .9fr;gap:14px;margin-top:22px}.invoice-summary-grid>div,.invoice-info-grid>div,.invoice-notes-grid>div{border:1px solid #ccd6da;border-radius:10px;background:#f8fafb;padding:14px}.invoice-document small{display:block;color:#8b621f;font-size:.62rem;font-weight:1000;letter-spacing:.1em}.invoice-summary-grid h3{margin:6px 0 0;font-size:1.08rem}.invoice-summary-grid p,.invoice-info-grid p,.invoice-notes-grid p,.invoice-authorization p{margin:6px 0 0;color:#425159;font-size:.76rem;line-height:1.55}.invoice-total-box{border-color:#e0ab53!important;background:#fff7e7!important;text-align:right}.invoice-total-box strong{display:block;margin-top:8px;color:#122832;font-size:1.65rem}.invoice-total-box span{display:block;margin-top:4px;color:#76613f;font-size:.66rem}
.invoice-info-grid{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:14px;margin-top:14px}.invoice-info-grid b{color:#182b34}.invoice-line-items{margin-top:20px}.invoice-line-items table{width:100%;border-collapse:collapse;font-size:.76rem}.invoice-line-items th{background:#0d303b;color:#fff;padding:10px;text-align:left}.invoice-line-items th:nth-child(n+2),.invoice-line-items td:nth-child(n+2){text-align:right}.invoice-line-items td{border-bottom:1px solid #d6dfe2;padding:10px}.invoice-line-items tfoot td{border-top:3px solid #d99a37;border-bottom:0;background:#fff8e9;color:#172128;font-size:.9rem;font-weight:1000}.invoice-estimate-note{margin:8px 0 0;color:#68777d;font-size:.68rem;line-height:1.45}
.invoice-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.invoice-authorization{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:18px;margin-top:18px;border:1px solid #cbd6da;border-radius:10px;background:#f8fafb;padding:14px}.invoice-signature-box{display:grid;place-items:center;min-height:112px;border:1px solid #bac7cc;border-radius:8px;background:#fff;overflow:hidden}.invoice-signature-svg{display:block;width:100%;height:112px}.invoice-signature-svg path{fill:none;stroke:#162127;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.invoice-signature-empty{color:#7d898e;font-size:.72rem;font-weight:800}.invoice-paper-footer{margin-top:24px;border-top:1px solid #ccd6da;padding-top:16px;text-align:center}.invoice-paper-footer p{margin:0;color:#1c3641;font-weight:900}.invoice-paper-footer span{display:block;margin-top:5px;color:#718087;font-size:.65rem}
@media(max-width:760px){.invoice-overlay{padding:0}.invoice-dialog{margin:0;min-height:100vh;border-radius:0}.invoice-toolbar{align-items:stretch;flex-direction:column}.invoice-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.invoice-document{padding:24px 16px}.invoice-paper-head{flex-direction:column}.invoice-title{text-align:left}.invoice-summary-grid,.invoice-info-grid,.invoice-notes-grid,.invoice-authorization{grid-template-columns:1fr}.invoice-line-items{overflow-x:auto}.invoice-line-items table{min-width:600px}}

@media print{
  @page{size:auto;margin:.38in}
  body.invoice-printing{background:#fff!important}
  body.invoice-printing>*:not(.invoice-overlay){display:none!important}
  body.invoice-printing .invoice-overlay{position:static!important;display:block!important;inset:auto!important;overflow:visible!important;background:#fff!important;padding:0!important}
  body.invoice-printing .invoice-dialog{width:100%!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;background:#fff!important}
  body.invoice-printing .invoice-toolbar{display:none!important}
  body.invoice-printing .invoice-document{min-height:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.invoice-printing .invoice-summary-grid,body.invoice-printing .invoice-info-grid,body.invoice-printing .invoice-notes-grid,body.invoice-printing .invoice-authorization{break-inside:avoid}
  body.invoice-printing .invoice-line-items table{break-inside:auto}
}

/* Stage 2A · Texas towing record / invoice details */
.invoice-compliance-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:14px}
.invoice-compliance-grid>div{border:1px solid #d8c59f;border-radius:10px;background:#fffaf0;padding:14px}
.invoice-compliance-grid p{margin:6px 0 0;color:#425159;font-size:.76rem;line-height:1.55}
.invoice-record-note{display:flex;align-items:flex-start;gap:12px;margin-top:18px;border:1px solid #d4b36f;border-radius:10px;background:#fff8e8;padding:13px 15px;color:#4d452f}
.invoice-record-note strong{flex:0 0 auto;color:#7c5519;font-size:.67rem;letter-spacing:.1em}
.invoice-record-note span{font-size:.69rem;line-height:1.5}
@media(max-width:760px){.invoice-compliance-grid{grid-template-columns:1fr}.invoice-record-note{display:block}.invoice-record-note span{display:block;margin-top:6px}}
@media print{body.invoice-printing .invoice-compliance-grid,body.invoice-printing .invoice-record-note{break-inside:avoid}}

/* Stage 2D · clear, searchable company contact directory */
.driver-message-contact.self-contact{cursor:default;opacity:.78;background:rgba(255,255,255,.025)}
.driver-message-contact.self-contact:hover{background:rgba(255,255,255,.025)}
.driver-message-contact.self-contact .driver-message-avatar{border-color:#4f6771;background:#182c34;filter:saturate(.72)}
.driver-message-contact-main strong em{color:#ffd071;font-size:.64rem;font-style:normal;font-weight:1000;letter-spacing:.04em}
.driver-message-contact.self-contact .driver-message-contact-main small{color:#d8b970;white-space:normal;line-height:1.25}

/* Stage 2E · dedicated full-screen Driver Messages workspace */
body.driver-messages-open{
  overflow:hidden!important;
  overscroll-behavior:none;
}
.driver-messages[hidden]{display:none!important}
.driver-messages{
  --driver-message-height:100dvh;
  --driver-message-top:0px;
  position:fixed;
  z-index:100;
  top:var(--driver-message-top);
  left:0;
  right:0;
  width:100%;
  height:var(--driver-message-height);
  max-width:none;
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:radial-gradient(circle at 80% -10%,rgba(43,118,133,.23),transparent 36%),linear-gradient(180deg,#071820,#06131b 68%);
  color:var(--text);
  isolation:isolate;
  padding-top:env(safe-area-inset-top);
  padding-bottom:env(safe-area-inset-bottom);
}
.driver-message-screenbar{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  border-bottom:1px solid #294956;
  background:rgba(5,18,25,.98);
  box-shadow:0 7px 24px rgba(0,0,0,.3);
}
.driver-message-titlebar{
  min-height:50px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  border-bottom:1px solid #294956;
  background:linear-gradient(180deg,#0d2b36,#09212b);
  padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));
}
.driver-message-titlebar>strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#f3fdff;
  font-size:1.02rem;
  font-weight:1000;
  letter-spacing:.01em;
}
.driver-message-back{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  border:0;
  border-radius:0;
  background:#102d38;
  color:#eefcfd;
  padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));
  font-weight:1000;
  cursor:pointer;
  box-shadow:inset 0 -2px var(--cyan);
  text-align:left;
}
.driver-message-back:hover,.driver-message-back:focus-visible{background:#153946;outline:none}
.driver-message-back span{font-size:1.08rem;line-height:1}
.driver-message-back strong{font-size:.9rem}
.driver-message-screen-status{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#bdebcf;font-size:.68rem;font-weight:850;white-space:nowrap}
.driver-message-screen-status i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(110,231,161,.6)}
.driver-message-head{display:none!important}
.driver-messages .driver-messenger-shell{
  flex:1 1 auto;
  width:min(1180px,100%);
  min-height:0;
  height:auto;
  margin:0 auto;
  border:0;
  border-radius:0;
  grid-template-columns:minmax(230px,300px) minmax(0,1fr);
  overflow:hidden;
  background:#071922;
}
.driver-messages .driver-message-contacts{
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
}
.driver-messages .driver-message-tools{padding:8px 10px}
.driver-messages .driver-message-tools label{gap:4px;font-size:.62rem}
.driver-messages .driver-message-tools input{min-height:40px;padding:8px 10px;font-size:16px}
.driver-messages .driver-message-contact-list{
  min-height:0;
  max-height:none;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.driver-messages .driver-message-contact{
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:8px;
  padding:8px 10px;
}
.driver-messages .driver-message-avatar{width:38px;height:38px}
.driver-messages .driver-message-contact-main strong{font-size:.8rem}
.driver-messages .driver-message-contact-main span{font-size:.66rem}
.driver-messages .driver-message-contact-main small{margin-top:2px;font-size:.62rem}
.driver-messages .driver-message-thread{
  min-width:0;
  min-height:0;
  height:100%;
  overflow:hidden;
  grid-template-rows:auto minmax(0,1fr) auto;
}
.driver-messages .driver-message-thread>header{padding:9px 12px}
.driver-messages .driver-message-thread>header small{font-size:.55rem}
.driver-messages .driver-message-thread>header strong{font-size:.88rem}
.driver-messages .driver-message-thread>header span{font-size:.64rem}
.driver-messages .driver-message-thread-list{
  min-height:0;
  max-height:none;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:10px 11px;
  gap:6px;
}
.driver-messages .driver-message-bubble{max-width:86%;padding:7px 9px;border-radius:12px 12px 12px 4px}
.driver-messages .driver-message-bubble.mine{border-radius:12px 12px 4px 12px}
.driver-messages .driver-message-bubble p{font-size:.84rem;line-height:1.34}
.driver-messages .driver-message-bubble small{margin-top:4px;font-size:.58rem}
.driver-messages .driver-message-compose{
  position:relative;
  z-index:2;
  flex:0 0 auto;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:7px;
  padding:8px max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));
  background:#081b24;
  box-shadow:0 -7px 20px rgba(0,0,0,.22);
}
.driver-messages .driver-message-compose textarea{
  min-height:46px;
  max-height:92px;
  padding:10px;
  font-size:16px;
  line-height:1.3;
}
.driver-messages .driver-message-compose button{
  min-width:78px;
  min-height:46px;
  padding:8px 12px;
}
@media(max-width:620px){
  .driver-message-titlebar{min-height:46px;padding-top:6px;padding-bottom:6px}
  .driver-message-back{min-height:40px;padding-top:7px;padding-bottom:7px}
  .driver-message-screen-status span{display:none}
  .driver-messages .driver-messenger-shell{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:minmax(118px,31%) minmax(0,1fr);
    min-height:0;
  }
  .driver-messages .driver-message-contacts{
    min-height:0;
    border-right:0;
    border-bottom:1px solid #294956;
  }
  .driver-messages .driver-message-contact-list{max-height:none}
  .driver-messages .driver-message-thread-list{min-height:0;max-height:none}
  .driver-messages .driver-message-compose{grid-template-columns:minmax(0,1fr) auto}
  .driver-messages .driver-message-compose button{min-width:74px}
}
@media(max-width:390px){
  .driver-message-titlebar>strong{font-size:.94rem}
  .driver-messages .driver-messenger-shell{grid-template-rows:minmax(105px,29%) minmax(0,1fr)}
  .driver-messages .driver-message-tools{padding:6px 8px}
  .driver-messages .driver-message-contact{padding:6px 8px}
  .driver-messages .driver-message-avatar{width:34px;height:34px}
}


/* Stage 2F · simplified message title/calls bars and no duplicate selected contact */
@media(max-width:620px){
  .driver-messages.driver-messages-search-only .driver-messenger-shell{grid-template-rows:auto minmax(0,1fr)}
  .driver-messages.driver-messages-search-only .driver-message-contact-list{display:none}
}


/* Stage 2G · iPhone-style swipe-left message deletion */
.driver-message-swipe-row{
  --driver-message-swipe-x:0px;
  position:relative;
  align-self:flex-start;
  width:fit-content;
  min-width:92px;
  max-width:86%;
  overflow:hidden;
  border-radius:14px 14px 14px 4px;
  touch-action:pan-y;
  -webkit-user-select:none;
  user-select:none;
}
.driver-message-swipe-row.mine{align-self:flex-end;border-radius:14px 14px 4px 14px}
.driver-message-swipe-row .driver-message-bubble{
  position:relative;
  z-index:2;
  align-self:auto;
  width:100%;
  min-width:92px;
  max-width:100%;
  transform:translate3d(var(--driver-message-swipe-x),0,0);
  transition:transform .2s ease;
  -webkit-user-select:none;
  user-select:none;
}
.driver-message-swipe-row.is-dragging .driver-message-bubble{transition:none}
.driver-message-delete-action{
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  bottom:0;
  width:82px;
  border:0;
  border-radius:0;
  background:linear-gradient(180deg,#ff4b55,#d71927);
  color:#fff;
  font-size:.76rem;
  font-weight:1000;
  cursor:pointer;
}
.driver-message-delete-action:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.driver-message-swipe-row.is-open .driver-message-bubble{box-shadow:-5px 0 16px rgba(0,0,0,.2)}
@media(max-width:620px){
  .driver-message-swipe-row{max-width:90%}
}

/* Stage 4Y · familiar phone-text recipient line */
.driver-message-to{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  margin:-2px -1px 5px;
  padding:5px 9px;
  border-bottom:1px solid rgba(255,255,255,.15);
  color:#b9bdc7;
  font-size:.78rem;
}
.driver-message-to[hidden]{display:none}
.driver-message-to strong{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  max-width:calc(100% - 32px);
  padding:3px 10px;
  border-radius:999px;
  background:#d4af37;
  color:#111;
  font-size:.78rem;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Stage 2H · clear-current-conversation action */
.driver-messages .driver-message-conversation-bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.driver-message-conversation-copy{min-width:0}
.driver-message-conversation-copy small,
.driver-message-conversation-copy strong,
.driver-message-conversation-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.driver-message-clear{
  align-self:center;
  min-height:30px;
  border:1px solid rgba(255,118,109,.48);
  border-radius:8px;
  background:rgba(86,24,24,.42);
  color:#ffd0cc;
  padding:5px 8px;
  font-size:.62rem;
  font-weight:1000;
  line-height:1.05;
  white-space:nowrap;
  cursor:pointer;
}
.driver-message-clear:hover,.driver-message-clear:focus-visible{background:rgba(121,31,31,.62);border-color:#ff8e86;outline:none}
.driver-message-clear:disabled{opacity:.38;cursor:not-allowed}
@media(max-width:390px){
  .driver-messages .driver-message-conversation-bar{gap:7px;padding-left:9px;padding-right:9px}
  .driver-message-clear{max-width:64px;white-space:normal;text-align:center;padding:4px 6px;font-size:.58rem}
}

/* Stage 2I · sealed full-screen Messages viewport / iPhone overscroll fix */
html.driver-messages-open{
  width:100%;
  height:100%;
  overflow:hidden!important;
  overscroll-behavior:none;
  background:#06131b;
}
body.driver-messages-open{
  position:fixed!important;
  top:var(--driver-message-scroll-lock-top,0px)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  background:#06131b!important;
}
body.driver-messages-open .driver-messages{
  --driver-message-height:100dvh;
  --driver-message-top:0px;
  position:fixed!important;
  inset:auto 0 auto 0!important;
  top:var(--driver-message-top)!important;
  left:0!important;
  right:0!important;
  bottom:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:var(--driver-message-height)!important;
  min-height:var(--driver-message-height)!important;
  max-height:var(--driver-message-height)!important;
  margin:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none;
  background:#06131b!important;
  box-shadow:0 0 0 100vmax #06131b;
  clip-path:inset(0 -100vmax);
}
body.driver-messages-open .driver-message-screenbar,
body.driver-messages-open .driver-messenger-shell,
body.driver-messages-open .driver-message-thread,
body.driver-messages-open .driver-message-contacts,
body.driver-messages-open .driver-message-compose{
  overscroll-behavior:none!important;
}
body.driver-messages-open .driver-message-thread-list,
body.driver-messages-open .driver-message-contact-list{
  overscroll-behavior-y:contain!important;
  overscroll-behavior-x:none!important;
  touch-action:pan-y!important;
}
body.driver-messages-open .driver-message-compose textarea,
body.driver-messages-open .driver-message-compose button,
body.driver-messages-open .driver-message-tools input,
body.driver-messages-open .driver-message-back,
body.driver-messages-open .driver-message-clear{
  touch-action:manipulation;
}


/* Stage 2Z · iPhone keyboard-safe Driver Messages visual viewport */
@media(max-width:620px){
  body.driver-messages-open .driver-messages.driver-message-keyboard-open{
    padding-bottom:0;
  }
  body.driver-messages-open .driver-messages.driver-message-keyboard-open .driver-messenger-shell{
    grid-template-rows:minmax(0,1fr);
  }
  body.driver-messages-open .driver-messages.driver-message-keyboard-open .driver-message-contacts{
    display:none!important;
  }
  body.driver-messages-open .driver-messages.driver-message-keyboard-open .driver-message-thread{
    min-height:0;
    height:100%;
  }
  body.driver-messages-open .driver-messages.driver-message-keyboard-open .driver-message-thread-list{
    min-height:0;
  }
  body.driver-messages-open .driver-messages.driver-message-keyboard-open .driver-message-compose{
    padding-bottom:8px;
  }
}



/* Stage 2J · Job Ticket completion gate */
.completion-workflow{display:grid;grid-template-columns:1fr;gap:9px;width:100%}
.completion-form-simple{margin:0}.completion-form-simple button{width:100%;min-height:48px}
.completion-ticket-gate{display:flex;align-items:center;gap:10px;border:1px solid #f2a7a7;border-radius:10px;background:linear-gradient(135deg,#e8a9ad,#d98d93);color:#ffffff;padding:10px 12px}
.completion-ticket-gate>span{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border:1px solid rgba(255,255,255,.78);border-radius:50%;background:rgba(255,255,255,.22);color:#d7656f;font-weight:1000}
.completion-ticket-gate>strong{font-size:.78rem;line-height:1.35}
.completion-ticket-gate[data-state=ready]{border-color:#a7d9b1;background:linear-gradient(135deg,#acdcb5,#8fc79a);color:#ffffff}
.completion-ticket-gate[data-state=ready]>span{border-color:rgba(255,255,255,.82);background:rgba(255,255,255,.22);color:#ffffff}
.job-actions .completion-job-ticket{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;justify-content:stretch;min-height:56px;border-color:#f2a7a7;background:linear-gradient(180deg,#e7a7ab,#d98e94);color:#ffffff;text-align:left;padding:9px 13px}
.completion-job-ticket>span{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.24);color:#d7656f;font-size:1rem}
.completion-job-ticket>strong{align-self:end;color:#d7656f;font-size:.88rem}.completion-job-ticket>small{align-self:start;color:rgba(255,255,255,.92);font-size:.66rem;font-weight:750}
.job-actions .completion-job-ticket:hover,.job-actions .completion-job-ticket:focus{border-color:#ffffff;background:linear-gradient(180deg,#efb7ba,#e3a1a7)}
.job-actions .completion-job-ticket[data-state=ready]{border-color:#a7d9b1;background:linear-gradient(180deg,#addcb6,#91c89c);color:#ffffff}
.completion-job-ticket[data-state=ready]>span{background:rgba(255,255,255,.22);color:#ffffff}
.completion-job-ticket[data-state=ready]>strong{color:#ffffff}
.completion-job-ticket[data-state=ready]>small{color:rgba(255,255,255,.93)}
.job-actions .completion-job-ticket[data-state=ready]:hover,.job-actions .completion-job-ticket[data-state=ready]:focus{border-color:#ffffff;background:linear-gradient(180deg,#b8e3c0,#9fd0a8)}
.job-actions button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.55)}
@media(max-width:560px){.completion-ticket-gate{align-items:flex-start}.completion-ticket-gate>strong{font-size:.75rem}.job-actions .completion-job-ticket{min-height:60px}}


/* Stage 2R: legacy inline signature preview purge
   The signature is captured only in the dedicated full-screen signing dialog.
   Never render an old inline white signature canvas inside the Job Ticket. */
.job-ticket-form .job-ticket-signature-preview-wrap,
.job-ticket-form [data-signature-preview-wrap],
.job-ticket-form [data-signature-preview],
.job-ticket-form [data-signature-empty]{display:none!important}

/* Stage 3F — completed Job Tickets open as historical, read-only records. */
.job-ticket-overlay[data-read-only="true"] .job-ticket-grid input:disabled,
.job-ticket-overlay[data-read-only="true"] .job-ticket-grid textarea:disabled,
.job-ticket-overlay[data-read-only="true"] .job-ticket-grid select:disabled{
  opacity:1;
  background:#0a222c;
  color:#d9e5e9;
  -webkit-text-fill-color:#d9e5e9;
  border-color:#31515e;
  cursor:default;
}
.job-ticket-overlay[data-read-only="true"] .job-ticket-footer{border-top-color:#6ee7a1}
.job-ticket-overlay[data-read-only="true"] .job-ticket-footer strong{color:#bdf3d0}
/* Stage 4U: shared polished-black WL monogram on the standard gold app tile. */
.brand-icon img{display:block;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(255,255,255,.16))}
