:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#16253b;background:#f2f5f8;--ink:#16253b;--muted:#647489;--navy:#102039;--red:#cf3340;--line:#e0e6ee;--green:#117454;--blue:#285ead;--amber:#9b670c;--surface:white}
*{box-sizing:border-box}body{margin:0;line-height:1.5;font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue)}h1,h2,h3,p{margin:0}h1{font-size:clamp(27px,2.3vw,34px);line-height:1.18;letter-spacing:-.035em}h2{font-size:20px;letter-spacing:-.025em}h3{font-size:17px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.code{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}strong{font-weight:750}.skip{position:fixed;top:-100px;left:12px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}:focus-visible{outline:3px solid #4284e8;outline-offset:2px}::selection{background:#dceafa}
.shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#cad5e5;display:flex;flex-direction:column;padding:24px 14px 15px;overflow:auto}.brand{display:flex;align-items:center;gap:11px;padding:6px 10px 24px;color:white;font-weight:900;font-size:20px;letter-spacing:-.045em;white-space:nowrap}.brand span.mark{background:var(--red);border-radius:9px;width:40px;height:40px;display:grid;place-items:center;font-size:15px;letter-spacing:0;flex-shrink:0}.brand small{display:block;font-size:9px;font-weight:600;letter-spacing:.16em;color:#a5b5ca;margin-top:-3px}.nav-group{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#8b9db7;padding:12px 12px 7px;font-weight:800}.sidebar nav{display:flex;flex-direction:column;gap:2px}.nav-link{width:100%;min-height:43px;text-align:left;color:#c7d3e3;padding:9px 12px;border:0;background:transparent;border-radius:8px;display:flex;align-items:center;gap:11px;font-size:13px;font-weight:650}.nav-link:hover{background:#1e304a}.nav-link.active{color:white;background:#293b55;box-shadow:inset 3px 0 var(--red)}.nav-symbol{font-size:16px;width:22px;text-align:center;color:#a7bad2;line-height:1}.nav-link.active .nav-symbol{color:#fff}.sidebar-foot{margin-top:auto;padding:18px 10px 8px;border-top:1px solid #ffffff23;font-size:12px;color:#a9bbd0}.sidebar-foot strong{color:white}.workspace{min-width:0}.topbar{height:74px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:14px}.crumb{font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:12px}.userpill{font-size:12px;background:#ecf2fa;color:#234b83;border-radius:6px;padding:6px 9px;font-weight:700}.demo{font-size:11px;background:#fff0d2;color:#8d5a00;border-radius:5px;padding:5px 8px;font-weight:800}.mobile-brand{display:none}.main{max-width:1720px;margin:0 auto;padding:30px 32px 60px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.pagehead p{color:var(--muted);font-size:14px;margin-top:7px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d4dee9;background:white;color:#17273e;border-radius:8px;padding:9px 15px;min-height:43px;font-size:13px;font-weight:750;text-decoration:none;line-height:1.3}.btn:hover{background:#f5f8fc}.btn.primary{background:var(--red);border-color:var(--red);color:white}.btn.primary:hover{background:#b92231}.btn.dark{background:var(--navy);border-color:var(--navy);color:white}.btn.danger{color:#ad2934;border-color:#f1c7ca;background:#fff6f6}.btn.ghost{background:transparent}.btn.tiny{padding:6px 9px;min-height:35px;font-size:12px}.btn.full{width:100%}.icon-text{font-size:18px;line-height:0}.panel,.card,.metric{background:white;border:1px solid var(--line);border-radius:13px;min-width:0}.panel{overflow:hidden}.panel-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-body{padding:21px}.card{padding:21px}.metric{padding:19px 20px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.25;margin:9px 0 3px;overflow-wrap:anywhere}.metric .foot{font-size:12px;color:var(--muted)}.metric.green .value{color:var(--green)}.metric.amber .value{color:var(--amber)}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:18px}.stack{display:flex;flex-direction:column;gap:18px}.section-gap{margin-top:20px}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px}.wrap{flex-wrap:wrap}.row{display:flex;gap:12px;align-items:center}.note{border-radius:9px;padding:13px 15px;background:#eaf1fa;color:#2d527d;font-size:13px}.note.warn{background:#fff4df;color:#795411}.note.good{background:#e8f6ee;color:#0f684b}.note+.note{margin-top:8px}.pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:5px;font-size:11px;font-weight:750;line-height:1.2;white-space:nowrap}.pill.blue{background:#eaf1fc;color:#28589e}.pill.good{background:#e4f4eb;color:#12714e}.pill.warn{background:#fff2d9;color:#8a5e0e}.pill.red{background:#ffeaeb;color:#a12833}.pill.neutral{background:#edf0f5;color:#617087}.pill.dark{background:#e8ebf0;color:#263b57}.toolrow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:15px 20px;border-bottom:1px solid var(--line)}.input,select,textarea{display:block;width:100%;min-width:0;min-height:42px;padding:9px 11px;color:var(--ink);background:white;border:1px solid #d2dce8;border-radius:8px;outline:none}textarea{resize:vertical;min-height:88px}.input:focus,select:focus,textarea:focus{border-color:#437dc9;box-shadow:0 0 0 3px #437dc91d}.search{min-width:210px;flex:1}.filter{width:180px}.tablewrap{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;text-align:left}.table th{background:#f7f9fc;color:#64758a;font-size:11px;text-transform:uppercase;letter-spacing:.075em;padding:12px 17px;white-space:nowrap}.table td{border-top:1px solid #edf1f5;padding:14px 17px;font-size:13px;vertical-align:middle}.table tr:hover td{background:#fbfcfe}.table .sub{color:var(--muted);font-size:12px;margin-top:3px}.table strong{font-size:13px}.table td.amount{font-weight:780;white-space:nowrap}.mobile-list{display:none}.empty{padding:35px 20px;text-align:center;color:var(--muted)}.empty h3{color:var(--ink);margin-bottom:5px}.item{border-top:1px solid var(--line);padding:13px 0}.item:first-child{border-top:0}.item p{font-size:12px;color:var(--muted);margin-top:4px}.progress{background:#e9eef5;height:8px;border-radius:20px;overflow:hidden;margin:15px 0 8px}.progress span{display:block;height:100%;background:var(--red);border-radius:20px}.kv{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.6fr);gap:8px 14px;margin:16px 0}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0;font-weight:650;font-size:13px;overflow-wrap:anywhere}.chart{width:100%;height:auto;max-height:260px}.chart text{font-size:11px;fill:#66768d}.chart rect{fill:#d43b46}.chart .secondary{fill:#2a608e}.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--red);margin-right:5px}.legend .secondary{background:#2a608e}.score{font-size:24px;font-weight:800;letter-spacing:-.025em}.mini-meter{display:flex;gap:3px;height:10px;border-radius:8px;overflow:hidden;background:#e8edf3}.mini-meter span{height:100%;background:#cf3340}.mini-meter span:nth-child(2){background:#285ead}.mini-meter span:nth-child(3){background:#e5a847}.invoice-row{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}.invoice-row>div{min-width:0}.tagline{font-size:12px;color:var(--muted);margin-top:28px}.divider{border-top:1px solid var(--line);margin:20px 0}.mobile-nav{display:none}
dialog{border:1px solid var(--line);border-radius:14px;padding:0;box-shadow:0 25px 80px #0915294a;width:min(760px,calc(100% - 30px));max-height:min(92vh,950px);color:var(--ink)}dialog::backdrop{background:#0a1724aa}.modal-head{position:sticky;top:0;background:white;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2}.modal-body{padding:20px 22px 24px}.modal-close{border:0;background:#f0f3f7;border-radius:7px;width:36px;height:36px;font-size:24px;line-height:1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:12px}.field{font-size:12px;font-weight:750;color:#4a5c73;display:block}.field input,.field select,.field textarea{margin-top:6px;font-size:14px;font-weight:450}.field.full{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px;font-size:13px}.check input{width:19px;height:19px;flex-shrink:0}.form-error{color:#b0202e;font-size:13px;margin-top:10px;white-space:pre-line}.line-editor{border:1px solid var(--line);border-radius:10px;padding:13px;margin-top:12px}.line-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(75px,.8fr) minmax(70px,.7fr) minmax(90px,1fr) minmax(65px,.6fr) auto;align-items:end;gap:8px}.line-grid .field{min-width:0}.line-grid input,.line-grid select{padding:7px;min-height:38px}.line-total{padding:12px 0;text-align:right;font-size:16px;font-weight:800}.record-title{font-weight:800;font-size:17px;overflow-wrap:anywhere}.audit{font-size:12px;padding:10px 0;border-top:1px solid var(--line);color:#53667c}.audit:first-child{border:0}.audit strong{color:var(--ink)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:12px 18px;border-radius:9px;max-width:calc(100% - 30px);font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:.15s}#toast.show{opacity:1}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,#233c60,transparent 40%),#102039;padding:20px}.login-card{width:min(420px,100%);padding:28px;background:white;border-radius:17px;box-shadow:0 20px 80px #080e1e44}.login .brand{color:#102039;padding:0 0 25px}.login .brand small{color:#566b85}.login-card h1{font-size:24px}.login-card p{color:var(--muted);font-size:13px;margin:9px 0 21px}.login-card .field{margin-top:15px}.login-card .btn{margin-top:21px}.login-note{margin-top:20px;font-size:11px;color:#728198}.driver-shell{min-height:100vh;background:#f2f5f8}.driver-header{background:var(--navy);color:white;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.driver-main{max-width:590px;margin:auto;padding:24px 16px}.driver-card{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:20px}.driver-card .cap{background:var(--navy);color:white;padding:19px 21px}.driver-content{padding:23px}.stop{border-left:2px solid #d7e2ed;margin-left:7px;padding:0 0 25px 24px;position:relative}.stop:before{content:'';position:absolute;top:4px;left:-8px;width:12px;height:12px;border:3px solid var(--blue);border-radius:50%;background:white}.stop h2{font-size:22px;margin:7px 0}.driver-instructions{background:#fff6e7;border-radius:10px;padding:17px;margin-top:12px}.driver-instructions p{margin-top:8px;line-height:1.6}.driver-cta{min-height:54px;font-size:16px}.driver-footer{color:var(--muted);font-size:12px;margin-top:20px}.print-sheet{background:white;padding:35px;color:#111;font-family:Arial,sans-serif;font-size:13px}.print-sheet header{display:flex;justify-content:space-between;gap:20px}.print-sheet h1{font-size:29px}.print-sheet .columns{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:24px 0;border-block:1px solid #d5dbe3;margin:20px 0}.print-sheet table{width:100%;border-collapse:collapse;margin-top:20px}.print-sheet th,.print-sheet td{text-align:left;border-bottom:1px solid #ddd;padding:9px 4px}.print-sheet .totals{max-width:290px;margin-left:auto;margin-top:20px}.print-sheet .totals .spread{padding:7px 0}.print-sheet footer{margin-top:35px;color:#667}#print{display:none}
@media(max-width:1180px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-inline:10px}.brand{font-size:18px}.main{padding:26px 24px}.overview-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.shell{grid-template-columns:175px minmax(0,1fr)}.brand{font-size:15px;gap:6px}.brand span.mark{width:32px;height:33px}.nav-link{font-size:12px;padding:8px}.main{padding:22px 18px}.topbar{padding-inline:18px}.three{grid-template-columns:repeat(2,minmax(0,1fr))}.line-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.line-grid .description{grid-column:1/-1}.line-grid .remove{grid-column:3}}
@media(max-width:670px){.shell{display:block}.sidebar{display:none}.workspace{display:block}.topbar{position:sticky;top:0;z-index:10;height:62px;padding:0 16px}.crumb{display:none}.mobile-brand{display:block;font-weight:850;color:var(--navy);font-size:16px}.top-actions{gap:6px}.userpill{font-size:11px}.main{padding:20px 16px 100px}.pagehead{align-items:flex-start;flex-wrap:wrap}.pagehead h1{font-size:29px}.pagehead p{font-size:13px}.pagehead .actions{width:100%}.pagehead .actions .btn{flex:1}.metrics{gap:10px}.metric{padding:15px}.metric .value{font-size:25px}.metric .label{font-size:12px}.two,.three{grid-template-columns:1fr;gap:12px}.panel-head{padding:16px;flex-wrap:wrap}.panel-body{padding:16px}.toolrow{padding:12px 16px}.toolrow .filter{flex:1;min-width:130px}.tablewrap{display:none}.mobile-list{display:block}.mobile-item{padding:16px;border-top:1px solid var(--line)}.mobile-item:first-child{border:0}.mobile-item h3{font-size:16px}.mobile-item p{color:var(--muted);font-size:12px;margin:4px 0 9px}.mobile-item .btn{min-height:40px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:white;border-top:1px solid var(--line);padding:7px 5px calc(7px + env(safe-area-inset-bottom));z-index:20;box-shadow:0 -7px 22px #15233b0b}.mobile-nav button{border:0;background:none;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;min-height:50px;color:#6d7f96;padding:3px}.mobile-nav button.active{color:var(--red);font-weight:800}.mobile-nav .nav-symbol{font-size:19px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal-body{padding:17px}.modal-head{padding:15px 17px}.line-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.line-grid .description{grid-column:1/-1}.line-grid .remove{grid-column:2}.kv{grid-template-columns:minmax(85px,1fr) minmax(0,1.3fr)}.print-sheet{padding:18px}.print-sheet .columns{grid-template-columns:1fr}.invoice-row{align-items:flex-start}}
@media(max-width:380px){.metrics{grid-template-columns:1fr 1fr}.metric .value{font-size:22px}.userpill{max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media print{body{background:white}#app,#modal,#toast{display:none!important}#print{display:block!important}.print-sheet{padding:0;border:0;box-shadow:none}@page{size:A4;margin:14mm}}
.unit-field{display:grid;grid-template-columns:minmax(0,1fr) 85px;gap:8px;align-items:end}.line-grid>.field:first-child{min-width:0}.invoice-lines{overflow-wrap:anywhere}.card,.panel,.metric{animation:appear .2s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:670px){.line-grid>.field:first-child{grid-column:1/-1}.driver-header{flex-wrap:wrap}.card,.item,.mobile-item{overflow-wrap:anywhere}.btn{min-height:44px}.btn.tiny{min-height:40px}}.chart rect{fill:revert-layer}
.role-select{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-width:200px;min-height:40px;background:#fff;color:var(--ink)}
.driver-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.preview-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.preview-driver{max-width:560px;margin:20px auto;min-height:calc(100vh - 40px);border-radius:18px;overflow:hidden;box-shadow:0 16px 50px #10203914}
@media(max-width:670px){.role-select{max-width:148px;font-size:12px;padding-right:4px}.preview-driver{max-width:none;margin:0;min-height:100vh;border-radius:0;box-shadow:none}}
@media(max-width:760px){
html,body{overflow-x:hidden}
.topbar{height:auto;min-height:58px;flex-wrap:wrap;align-items:center;row-gap:8px;padding:8px 12px}
.top-actions,.preview-tools{flex-wrap:wrap;width:100%;justify-content:flex-end}
.role-select{flex:1 1 42%;max-width:none;min-width:0}
.userpill{max-width:42vw}
.main,.driver-main,.modal-body,.panel,.card{min-width:0}
.schedule-panel{overflow:hidden}
.kv,.definition{overflow-wrap:anywhere}
dialog{max-height:92dvh}
.driver-header{flex-wrap:wrap;align-items:flex-start}
.preview-driver .driver-main{padding-bottom:24px}
dialog{max-height:calc(100dvh - 92px);margin:10px auto 76px;overflow:auto}
}
@media(max-width:420px){
.userpill,.demo{display:none}
.role-select{font-size:13px;min-height:44px}
.mobile-nav button{font-size:10px}
.pagehead h1,.driver-main h1{font-size:26px}
.metric .value{font-size:22px;overflow-wrap:anywhere}
}

.schedule-panel{margin-bottom:24px}.schedule-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center;margin:8px 0;font-size:12px}.schedule-track{position:relative;height:40px;border-radius:6px;background:repeating-linear-gradient(to right,#f0f4f9 0,#f0f4f9 calc(25% - 1px),#d6dfeb calc(25% - 1px),#d6dfeb 25%)}.schedule-trip{position:absolute;top:4px;height:32px;border:0;border-radius:5px;background:#285ead;color:white;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:2px}.schedule-axis{display:flex;justify-content:space-between;margin-left:110px;font-size:10px;color:#647489}@media(max-width:670px){.schedule-row{grid-template-columns:75px minmax(0,1fr)}.schedule-axis{margin-left:85px}.schedule-trip{font-size:10px}.schedule-panel .field{width:100%}}
