:root{--ground:#edf1f3;--surface:#fff;--sunk:#f4f7f8;--ink:#102430;--muted:#5a6d78;--line:#d9e1e5;--navy:#0f2a3a;--navy-2:#173a4e;--on-navy:#e8f0f4;--route:#0b6f86;--signal:#e89b1a;--signal-ink:#2a1a00;--signal-bg:#fdf2dc;--ok:#1f7f4a;--ok-bg:#e3f3ea;--warn:#a35a0c;--warn-bg:#fcefdc;--bad:#b8392a;--bad-bg:#fbe6e3;--plate:#f6d24a;--plate-ink:#111;--f-ui:var(--font-barlow), "Barlow", "Segoe UI", Roboto, system-ui, sans-serif;--f-display:var(--font-barlow-condensed), "Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;--f-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--r-lg:14px;--r:10px;--tap:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ground:#0b161d;--surface:#12212a;--sunk:#0f1c24;--ink:#e4ecf0;--muted:#93a6b1;--line:#23353f;--navy:#0a1d28;--navy-2:#13303f;--on-navy:#dbe7ee;--route:#4cc0d9;--signal:#f2ac3a;--signal-bg:#3a2a10;--ok:#5ccf8f;--ok-bg:#113022;--warn:#f2a65e;--warn-bg:#3a2614;--bad:#f2897c;--bad-bg:#3a1714;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);font:16px/1.5 var(--f-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--route);text-underline-offset:2px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.12}h1{letter-spacing:-.005em;font-size:clamp(1.6rem,1.3rem + 1.2vw,2rem)}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0}.num,td.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--f-mono);font-size:.92em}.muted{color:var(--muted)}.small{font-size:.875rem}.label{color:var(--muted);font-size:.85rem;font-weight:500}:focus-visible{outline:3px solid var(--route);outline-offset:2px;border-radius:4px}img{max-width:100%}.shell{grid-template-columns:1fr;min-height:100dvh;display:grid}.rail{display:none}.main{padding-block:20px 112px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));width:100%;min-width:0;max-width:1180px;margin:0 auto}.topbar{z-index:15;background:var(--navy);color:var(--on-navy);padding:calc(10px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brandmark{font-family:var(--f-display);color:inherit;letter-spacing:.01em;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;text-decoration:none;display:flex}.brandmark img{background:#fff;border-radius:6px;width:auto;height:32px;padding:3px 6px;display:block}.login-logo{width:auto;height:52px;display:block}.doc-logo{width:auto;height:48px;display:block}.whoami{text-align:right;opacity:.9;font-size:.82rem;line-height:1.25}.topbar .btn{color:var(--on-navy);background:0 0;border-color:#ffffff40}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:54px;color:var(--muted);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:.75rem;font-weight:600;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--navy);background:var(--sunk)}.tabbar a[aria-current=page] svg{color:var(--signal)}@media (prefers-color-scheme:dark){.tabbar a[aria-current=page]{color:var(--ink)}}.tabbar svg,.rail svg,.moresheet svg{flex:none;width:22px;height:22px}.moresheet{left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom));z-index:21;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px;display:grid;position:fixed;box-shadow:0 16px 40px #08161e38}.moresheet a{min-height:var(--tap);border-radius:var(--r);color:var(--ink);align-items:center;gap:10px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.moresheet a[aria-current=page]{background:var(--sunk)}@media (min-width:900px){.shell{grid-template-columns:236px 1fr}.topbar,.tabbar,.moresheet{display:none}.rail{background:var(--navy);color:var(--on-navy);flex-direction:column;gap:2px;height:100dvh;padding:22px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.rail .brandmark{padding:0 10px 22px}.rail .brandmark img{height:58px;padding:5px 10px}.rail a.nav{color:var(--on-navy);opacity:.78;border-radius:var(--r);align-items:center;gap:12px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex;position:relative}.rail a.nav:hover,.rail a.nav[aria-current=page]{opacity:1;background:var(--navy-2)}.rail a.nav[aria-current=page]:before{content:"";background:var(--signal);border-radius:0 4px 4px 0;width:4px;position:absolute;top:10px;bottom:10px;left:-14px}.rail .foot{border-top:1px solid #ffffff1f;gap:8px;margin-top:auto;padding:14px 10px 0;font-size:.85rem;display:grid}.rail .foot .btn{color:var(--on-navy);background:0 0;border-color:#ffffff40}.main{padding-block:32px 56px;padding-left:max(32px, env(safe-area-inset-left));padding-right:max(32px, env(safe-area-inset-right))}}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:4px;display:flex}.pagehead p{margin-top:4px}.stack{gap:16px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid2{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:760px){.grid2{grid-template-columns:1fr 1fr}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0;padding:18px}.panel>h2,.panel>.panel-head{margin-bottom:12px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.stats{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;padding:14px 16px}.stats .stat:nth-child(2n){border-right:none}@media (min-width:760px){.stats{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column}.stat{border-bottom:none;border-right:1px solid var(--line)}.stats .stat:nth-child(2n){border-right:1px solid var(--line)}.stats .stat:last-child{border-right:none}}.stat .label{font-size:.85rem}.stat .v{font-family:var(--f-display);overflow-wrap:anywhere;margin-top:2px;font-size:clamp(1.25rem,1rem + 1.4vw,1.7rem);font-weight:600;line-height:1.15}.stat .s{color:var(--muted);font-size:.82rem}.btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 .95rem var(--f-ui);border-radius:var(--r);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}@media (prefers-color-scheme:dark){.btn-primary{background:var(--route);border-color:var(--route);color:#04161c}}.btn-danger{color:var(--bad)}.btn-sm{min-height:36px;padding:6px 12px;font-size:.88rem}.btn[disabled]{opacity:.55;cursor:progress}.btn-gps{width:100%;min-height:64px;font-family:var(--f-display);border-radius:var(--r-lg);font-size:1.25rem}.btn-arrive{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.btn-close{background:var(--ok);border-color:var(--ok);color:#fff}@media (prefers-color-scheme:dark){.btn-close{color:#06160d}}form.form{gap:14px;display:grid}.fields{grid-template-columns:1fr;gap:14px;display:grid}@media (min-width:640px){.fields{grid-template-columns:1fr 1fr}.fields .wide{grid-column:1/-1}}.field{gap:6px;min-width:0;display:grid}.field>span{color:var(--ink);font-size:.88rem;font-weight:600}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);width:100%;min-height:var(--tap);padding:10px 12px;font-size:16px}textarea{resize:vertical;min-height:96px}input:focus,select:focus,textarea:focus{border-color:var(--route);box-shadow:0 0 0 3px color-mix(in srgb, var(--route) 22%, transparent);outline:none}input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--navy)}.hint{color:var(--muted);font-size:.85rem}.pill{background:var(--sunk);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.assigned{color:var(--route)}.pill.on_site{background:var(--signal-bg);color:var(--warn)}.pill.on_site:before{background:var(--signal);animation:1.6s infinite pulse}.pill.closed,.pill.paid{background:var(--ok-bg);color:var(--ok)}.pill.due{background:var(--warn-bg);color:var(--warn)}.pill.flag{background:var(--bad-bg);color:var(--bad)}@keyframes pulse{50%{opacity:.25}}.plate{font-family:var(--f-display);letter-spacing:.08em;background:var(--plate);color:var(--plate-ink);white-space:nowrap;border:2px solid #1b1b1b;border-radius:5px;padding:0 7px;font-size:.92rem;font-weight:700;line-height:1.45;display:inline-block}.notice{border-radius:var(--r);background:var(--sunk);border-left:4px solid var(--line);padding:12px 14px;font-size:.95rem}.notice.ok{background:var(--ok-bg);color:var(--ok);border-left-color:var(--ok)}.notice.warn{background:var(--warn-bg);color:var(--warn);border-left-color:var(--signal)}.notice.bad{background:var(--bad-bg);color:var(--bad);border-left-color:var(--bad)}.tablewrap{margin:0 -18px;padding:0 18px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:.82rem;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 10px}td.num,th.num{text-align:right;white-space:nowrap}tr.total td{border-top:2px solid var(--ink);border-bottom:none;font-weight:700}tr.sub td{color:var(--muted)}tbody tr:hover td{background:var(--sunk)}.jobcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);color:inherit;gap:10px;padding:16px;text-decoration:none;display:grid}.jobcard .top{justify-content:space-between;align-items:start;gap:10px;display:flex}.jobcard .client{font-family:var(--f-display);font-size:1.2rem;font-weight:600}.jobcard .actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.livejob{background:var(--navy);color:var(--on-navy);border-radius:var(--r-lg);gap:14px;padding:18px;display:grid;position:relative;overflow:hidden}.livejob:before{content:"";background:var(--signal);width:6px;position:absolute;inset:0 auto 0 0}.livejob .eyebrow{color:var(--signal);align-items:center;gap:8px;font-weight:700;display:flex}.livejob .eyebrow:before{content:"";background:var(--signal);border-radius:50%;width:10px;height:10px;animation:1.6s infinite pulse}.livejob .client{font-family:var(--f-display);color:#fff;font-size:1.6rem;font-weight:600}.livejob .timer{font-family:var(--f-display);color:#fff;font-size:clamp(2.6rem,2rem + 4vw,3.6rem);font-weight:600;line-height:1}.livejob .muted{color:color-mix(in srgb, var(--on-navy) 70%, transparent)}.livejob .btn{min-height:56px}.progress{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.progress .step{border-right:1px solid var(--line);min-width:0;padding:12px 14px;position:relative}.progress .step:last-child{border-right:none}.progress .step .t{align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.progress .step .t:before{content:"";border:2px solid var(--line);border-radius:50%;flex:none;width:12px;height:12px}.progress .step .when{color:var(--muted);margin-top:2px;font-size:.82rem}.progress .step.done .t:before{background:var(--ok);border-color:var(--ok)}.progress .step.live{background:var(--signal-bg)}.progress .step.live .t:before{background:var(--signal);border-color:var(--signal);animation:1.6s infinite pulse}.progress .step:after{content:"";background:0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.progress .step.done:after{background:var(--ok)}.progress .step.live:after{background:var(--signal)}@media (max-width:899px){.actionbar{bottom:calc(76px + env(safe-area-inset-bottom));z-index:10;position:sticky}}.kv{grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;font-size:.95rem;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.timeline{display:grid}.tl{grid-template-columns:22px 1fr;gap:10px;padding-bottom:14px;display:grid;position:relative}.tl:before{content:"";background:var(--line);width:2px;position:absolute;top:20px;bottom:0;left:10px}.tl:last-child:before{display:none}.tl .dot{border:2px solid var(--line);background:var(--surface);border-radius:50%;width:22px;height:22px;margin-top:1px}.tl.done .dot{border-color:var(--ok);background:var(--ok)}.tl.live .dot{border-color:var(--signal);background:var(--signal)}.billbox{background:var(--sunk);border-radius:var(--r);margin-top:12px;padding:14px}.filters{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.filters .field{flex:140px;min-width:140px}.seg{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);max-width:100%;display:inline-flex;overflow:auto hidden}.seg a{color:var(--muted);white-space:nowrap;align-items:center;min-height:42px;padding:9px 14px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.seg a[aria-current=true]{background:var(--navy);color:#fff}@media (prefers-color-scheme:dark){.seg a[aria-current=true]{background:var(--route);color:#04161c}}details.inline>summary,details.panel>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}.login{background:var(--navy);min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background-image:radial-gradient(circle at 85% 10%, color-mix(in srgb, var(--signal) 22%, transparent) 0 2px, transparent 3px), repeating-linear-gradient(115deg, transparent 0 46px, #ffffff09 46px 48px);place-items:center;display:grid}.login .card{background:var(--surface);border-radius:18px;gap:18px;width:100%;max-width:400px;padding:28px 24px;display:grid;box-shadow:0 24px 60px #0000004d}.photos{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px;display:grid}.photo{color:inherit;gap:6px;min-width:0;text-decoration:none;display:grid}.photo img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);border:1px solid var(--line);background:var(--sunk);width:100%}.history{display:grid}.history .ev{border-bottom:1px solid var(--line);grid-template-columns:9.5em 1fr;gap:10px;padding:10px 0;font-size:.92rem;display:grid}@media (max-width:560px){.history .ev{grid-template-columns:1fr;gap:2px}}.history details{margin-top:4px}.history pre{white-space:pre-wrap;word-break:break-word;background:var(--sunk);border-radius:6px;margin:4px 0 0;padding:8px;font-size:.78rem}.doc{color:#111;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;max-width:820px;padding:clamp(18px,4vw,32px)}.doc table th,.doc table td{color:#111;border-color:#ddd}.doc tbody tr:hover td{background:0 0}.doc .muted{color:#555}.doc-head{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}@media (prefers-reduced-motion:reduce){*,:before{transition:none!important;animation:none!important}}@media print{.rail,.tabbar,.topbar,.moresheet,.noprint{display:none!important}body{color:#000;background:#fff;font-size:11pt}.shell{display:block}.main{max-width:none;padding:0}.panel{break-inside:avoid;border:none;margin-bottom:14px;padding:0}.doc{border:none;max-width:none;padding:0}.plate{background:0 0;border:1px solid #000}}@media (max-width:640px){.tablewrap:has(table.rt){margin:0;padding:0;overflow:visible}table.rt thead{display:none}table.rt,table.rt tbody{display:block}table.rt tr{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px 14px;padding:14px 0;display:grid}table.rt tr:last-child{border-bottom:none}table.rt td{white-space:normal;border:none;min-width:0;padding:0;display:block;text-align:left!important}table.rt td:before{content:attr(data-label);color:var(--muted);font-size:.78rem;font-weight:500;display:block}table.rt td[data-label=""]:before{display:none}table.rt td:first-child{grid-column:1/-1;font-size:1.02rem;font-weight:600}table.rt td:first-child:before{display:none}table.rt td[data-label=""]{grid-column:1/-1}table.rt tr.total{border-top:2px solid var(--ink)}tbody tr:hover td{background:0 0}table.rt td[data-empty]{display:none}}
@font-face{font-family:barlow;src:url(../media/barlow_latin_400_normal-s.p.0ttnbqtks8pz8.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:barlow;src:url(../media/barlow_latin_500_normal-s.p.07ksy-a4avz1m.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:barlow;src:url(../media/barlow_latin_600_normal-s.p.2ekrofpr7xv99.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:barlow;src:url(../media/barlow_latin_700_normal-s.p.3-aa5f3j6vyu9.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:barlow Fallback;src:local(Arial);ascent-override:103.13%;descent-override:20.63%;line-gap-override:0.0%;size-adjust:96.96%}._9m34a_className{font-family:barlow,barlow Fallback}._9m34a_variable{--font-barlow:"barlow", "barlow Fallback"}
@font-face{font-family:barlowCondensed;src:url(../media/barlow_semi_condensed_latin_600_normal-s.p.34vyxsduuj3tr.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:barlowCondensed;src:url(../media/barlow_semi_condensed_latin_700_normal-s.p.1qp1yywwtfonp.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:barlowCondensed Fallback;src:local(Arial);ascent-override:111.17%;descent-override:22.23%;line-gap-override:0.0%;size-adjust:89.95%}.ZeZhRW_className{font-family:barlowCondensed,barlowCondensed Fallback}.ZeZhRW_variable{--font-barlow-condensed:"barlowCondensed", "barlowCondensed Fallback"}
