:root{--ink:#16212b;--ink-soft:#4b5c68;--paper:#eef1f4;--surface:#fff;--border:#d7dee4;--border-soft:#e4e9ed;--accent:#2c5d8f;--accent-soft:#e3edf6;--good:#2e8b57;--good-soft:#e2f3e9;--warn:#c9832e;--warn-soft:#faeddb;--critical:#bd4438;--critical-soft:#fbe6e3;--nav-bg:#182531;--nav-ink:#cfd9e2;--nav-ink-dim:#7c8a97;--nav-active:#22374a;--ring-track:#dfe5ea;--m-fleet:#2c5d8f;--m-fleet-soft:#e3edf6;--m-driver:#a33a6b;--m-driver-soft:#f9e4ee;--m-fuel:#96600f;--m-fuel-soft:#fbf0de;--m-money:#0f7268;--m-money-soft:#ddf1ee;--m-tyre:#6446a8;--m-tyre-soft:#ede7f9;--m-service:#a2542a;--m-service-soft:#faeae1;--m-compliance:#3b4ea0;--m-compliance-soft:#e6e9f9;--on-hue:#fff;--page-hue:var(--m-fleet);--page-hue-soft:var(--m-fleet-soft);--nav-h-fleet:#6fa8d6;--nav-h-driver:#e88db4;--nav-h-fuel:#e5ac5c;--nav-h-money:#4fc4b4;--nav-h-tyre:#ad95e8;--nav-h-service:#e2946b;--nav-h-compliance:#929fea;--shadow:0 1px 2px #16212b0f, 0 8px 24px -12px #16212b2e;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e7ecf0;--ink-soft:#a3b0ba;--paper:#11171d;--surface:#1b242d;--border:#2b3742;--border-soft:#232e38;--accent:#6fa8d6;--accent-soft:#1e2f3d;--good:#5cc491;--good-soft:#16281f;--warn:#e2a75a;--warn-soft:#2c2213;--critical:#e2776a;--critical-soft:#2e1a17;--nav-bg:#0e161d;--nav-ink:#b9c5cf;--nav-ink-dim:#6a7883;--nav-active:#1c2b38;--ring-track:#29343d;--m-fleet:#6fa8d6;--m-fleet-soft:#1e2f3d;--m-driver:#e385ae;--m-driver-soft:#351c29;--m-fuel:#e5ac5c;--m-fuel-soft:#33270f;--m-money:#4fc4b4;--m-money-soft:#10302c;--m-tyre:#a98fe6;--m-tyre-soft:#26203d;--m-service:#e2946b;--m-service-soft:#33221a;--m-compliance:#8e9ce8;--m-compliance-soft:#1e2340;--on-hue:#101820;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #00000080}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}a{color:inherit}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.src-lock-icon{width:12px;height:12px}button,input{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.table-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.table-search{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:0 320px;align-items:center;gap:8px;min-width:240px;padding:6px 10px;display:flex}.table-search svg{width:14px;height:14px;color:var(--ink-faint);flex:none}.table-search input{font:inherit;color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-size:13px}.table-search-count{color:var(--ink-soft);font-size:11.5px}.th-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:inherit;background:0 0;border:none;align-items:center;gap:5px;margin:0;padding:0;display:inline-flex}.th-sort:hover{color:var(--ink)}.th-sort-arrow{opacity:.35;font-size:8px;line-height:1}.th-sort:hover .th-sort-arrow{opacity:.7}.th-sort.active{color:var(--accent)}.th-sort.active .th-sort-arrow{opacity:1}@media print{.table-toolbar,.th-sort-arrow{display:none}}.login-screen{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border-soft);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:22px;padding:32px 28px;display:flex}.login-brand{align-items:center;gap:10px;display:flex}.login-brand-mark{background:linear-gradient(155deg,#3d75ab,#23496f);border-radius:9px;flex:none;place-items:center;width:38px;height:38px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}.login-brand-mark svg{width:21px;height:21px}.login-brand-mark img{object-fit:contain;border-radius:9px;width:100%;height:100%;display:block}.login-brand-name{font-family:Big Shoulders,sans-serif;font-size:19px;font-weight:700;line-height:1.1}.login-brand-sub{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:11px}.login-heading h1{margin:0 0 4px;font-family:Big Shoulders,sans-serif;font-size:24px;font-weight:700}.login-heading p{color:var(--ink-soft);margin:0;font-size:13px}.login-form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field input{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:14px}.field input:focus{border-color:var(--accent)}.login-error{color:var(--critical);background:var(--critical-soft);border-radius:7px;padding:8px 10px;font-size:12.5px}.login-submit{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:8px;padding:11px;font-size:14px;font-weight:600}.login-submit:disabled{opacity:.6;cursor:default}.login-hint{color:var(--ink-soft);text-align:center;font-size:11.5px}.login-copyright{color:var(--ink-soft);text-align:center;opacity:.7;font-size:10.5px}.modal-backdrop{z-index:50;background:#0a0f1473;justify-content:center;align-items:flex-start;padding:6vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--surface);border:1px solid var(--border-soft);width:100%;max-width:520px;box-shadow:var(--shadow);border-radius:14px}.modal-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h2{margin:0;font-family:Big Shoulders,sans-serif;font-size:19px;font-weight:700}.modal-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:14px}.modal-close:hover{background:var(--paper)}.modal-close svg{width:15px;height:15px;display:block}.modal-body{padding:18px 20px 20px}.panel-backdrop{justify-content:flex-end;align-items:stretch;padding:0;overflow-y:hidden}.side-panel{background:var(--surface);border-left:1px solid var(--border-soft);flex-direction:column;width:50vw;min-width:420px;max-width:720px;height:100vh;animation:.18s ease-out panel-slide-in;display:flex;box-shadow:-8px 0 28px -12px #16212b47}.side-panel .modal-body{flex:1;overflow-y:auto}.side-panel.full{border-left:none;width:100vw;min-width:0;max-width:none}.side-panel.full .modal-body{padding:20px 28px 28px}.history-columns{align-items:flex-start;gap:16px;padding-bottom:4px;display:flex;overflow-x:auto}.history-column{background:var(--paper);border:1px solid var(--border-soft);border-radius:12px;flex-direction:column;flex:0 0 340px;gap:10px;width:340px;max-height:100%;padding:14px 16px 16px;display:flex}.history-column h4{justify-content:space-between;align-items:center;margin:0;font-size:13px;font-weight:700;display:flex}.history-column h4 .n{color:var(--ink-faint);font-size:11px;font-weight:600}.history-column .table-scroll{max-height:62vh;overflow-y:auto}.history-column table{font-size:12px}.history-column th,.history-column td{padding:7px 10px}@keyframes panel-slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.side-panel{animation:none}}@media (width<=900px){.side-panel{width:100vw;min-width:0;max-width:none}}@media (width<=640px){.modal-backdrop{padding:0}.modal-panel{border:none;border-radius:0;max-width:none;min-height:100vh}.form-grid{grid-template-columns:1fr}}.form-grid{grid-template-columns:1fr 1fr;gap:14px 12px;display:grid}.form-grid .span-2{grid-column:1/-1}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--ink-soft);font-size:12px;font-weight:600}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:7px;width:100%;padding:8px 10px;font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.form-section{border-top:1px solid var(--border-soft);margin-top:18px;padding-top:14px}.form-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.form-section h4{color:var(--ink);margin:0 0 12px;font-size:13px;font-weight:600}.chip-group{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--border);background:var(--paper);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:13px}.chip:hover{border-color:var(--page-hue);color:var(--ink)}.chip.on{background:var(--page-hue);border-color:var(--page-hue);color:var(--on-hue);font-weight:600}.toggle-group{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.toggle-group button{background:var(--paper);cursor:pointer;color:var(--ink-soft);border:none;padding:7px 16px;font-size:13px}.toggle-group button:hover{color:var(--ink);background:var(--border-soft)}.toggle-group button.on,.toggle-group button.on:hover{background:var(--page-hue);color:var(--on-hue);font-weight:600}.upload-field{border:1px dashed var(--border);color:var(--ink-soft);cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:flex}.upload-field input[type=file]{width:100%;font-size:12px}.wizard-steps{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;gap:4px 10px;margin-bottom:18px;padding-bottom:14px;display:flex}.wizard-step{color:var(--ink-faint);align-items:center;gap:6px;font-size:11.5px;display:flex}.wizard-step-dot{border:1px solid var(--border);width:18px;height:18px;color:var(--ink-soft);background:var(--paper);border-radius:999px;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex}.wizard-step-label{white-space:nowrap}.wizard-step.done .wizard-step-dot{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.wizard-step.done .wizard-step-label{color:var(--ink-soft)}.wizard-step.active .wizard-step-dot{background:var(--accent);border-color:var(--accent);color:#fff}.wizard-step.active .wizard-step-label{color:var(--ink);font-weight:600}.wizard-thin-rule{border-top:1px solid var(--border-soft);margin:18px 0}.form-error{color:var(--critical);background:var(--critical-soft);border-radius:7px;margin-top:14px;padding:8px 10px;font-size:12.5px}.form-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{background:var(--critical);border-color:var(--critical);color:#fff}.btn:disabled{opacity:.6;cursor:default}.page-head{background:linear-gradient(100deg, var(--page-hue-soft) 0%, var(--surface) 62%), var(--surface);border-bottom:1px solid var(--border-soft);box-shadow:inset 0 -2px 0 -1px var(--page-hue);justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;display:flex}.page-head h1{align-items:center;gap:11px;margin:0;font-family:Big Shoulders,sans-serif;font-size:25px;font-weight:700;display:flex}.page-head h1:before{content:"";background:var(--page-hue);border-radius:3px;flex:none;width:5px;height:22px}.page-head .sub{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.cv-tabstrip{background:var(--surface);border-bottom:1px solid var(--border-soft);gap:4px;padding:14px 28px 0;display:flex}.cv-tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:600}.cv-tab:hover{color:var(--ink)}.cv-tab.active{color:var(--page-hue);border-bottom-width:3px;border-bottom-color:var(--page-hue);font-weight:700}.seg{background:var(--paper);border:1px solid var(--border-soft);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:560}.seg button:hover{color:var(--ink)}.seg button.active,.seg button.active:hover{background:var(--page-hue);color:var(--on-hue)}.search-input{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;min-width:220px;padding:8px 12px;font-size:13px}.search-input:focus{border-color:var(--accent);outline:none}.group-pill{align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.group-pill .swatch-icon{border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.group-pill .swatch-icon svg{width:12px;height:12px}.group-pill.running .swatch-icon{background:var(--accent-soft);color:var(--accent)}.group-pill.load .swatch-icon{background:var(--good-soft);color:var(--good)}.group-pill.tyre_service .swatch-icon{background:var(--warn-soft);color:var(--warn)}.group-pill.repairs .swatch-icon{background:var(--critical-soft);color:var(--critical)}.group-pill.custom .swatch-icon{background:var(--border-soft);color:var(--ink-soft)}tr.group-subtotal td{background:var(--surface-2,var(--surface));border-top:1px solid var(--border);font-weight:600}.detail-tabs{border-bottom:1px solid var(--border-soft);gap:4px;margin-bottom:16px;display:flex}.detail-tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;margin-right:16px;padding:8px 4px;font-size:13px;font-weight:600}.detail-tab:hover{color:var(--ink)}.detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;display:grid}.info-item{flex-direction:column;gap:2px;display:flex}.info-item .l{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:10.5px;font-weight:600}.info-item .v{font-size:13px}.info-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:20px 0 10px;font-size:11px;font-weight:700}.info-section-title:first-child{margin-top:0}.status-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.row-actions{gap:8px;display:flex}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.link-btn.danger{color:var(--critical)}.app{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.impersonation-banner{background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--border-soft);grid-column:1/-1;justify-content:center;align-items:center;gap:14px;padding:8px 16px;font-size:12.5px;display:flex}.impersonation-banner .btn{padding:4px 10px;font-size:11.5px}.mobile-topbar,.nav-drawer-backdrop{display:none}.rail{background:var(--nav-bg);color:var(--nav-ink);flex-direction:column;gap:26px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.brand-mark{background:linear-gradient(155deg,#3d75ab,#23496f);border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}.brand-mark svg{width:19px;height:19px}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-name{letter-spacing:.01em;color:#f4f7f9;font-family:Big Shoulders,sans-serif;font-size:17px;font-weight:700;line-height:1.15}.brand-sub{color:var(--nav-ink-dim);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-label{text-transform:uppercase;letter-spacing:.09em;color:var(--nav-ink-dim);margin:4px 0 6px;padding:0 10px;font-size:10.5px}.nav-label-btn{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;margin:4px 0 6px;padding:0 10px;font-family:inherit;display:flex}.nav-label-btn .nav-label{margin:0;padding:0}.nav-chevron{width:10px;height:10px;color:var(--nav-ink-dim);flex:none;transition:transform .15s;transform:rotate(-90deg)}.nav-label-btn.expanded .nav-chevron{transform:rotate(0)}.nav-collapsible{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--nav-ink);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13.5px;text-decoration:none;display:flex;position:relative}.nav-item svg{opacity:.9;width:16px;height:16px;color:var(--nav-hue,inherit);flex:none}.nav-item.active{background:var(--nav-active);color:#fff;font-weight:500}.nav-item.active:before{content:"";background:var(--nav-hue,var(--accent));border-radius:2px;width:3px;position:absolute;top:8px;bottom:8px;left:-14px}.nav-item.active svg{opacity:1}.rail a[href=\/],.rail a[href=\/trip-sheets],.rail a[href=\/jcb-cards],.rail a[href=\/tractor-cards],.rail a[href=\/vehicles],.rail a[href="/masters/route-rates"],.rail a[href="/masters/work-rates"]{--nav-hue:var(--nav-h-fleet)}.rail a[href=\/drivers],.rail a[href=\/driver-ledger],.rail a[href="/masters/driver-rates"]{--nav-hue:var(--nav-h-driver)}.rail a[href=\/fuel-log],.rail a[href="/masters/fuel-fillers"]{--nav-hue:var(--nav-h-fuel)}.rail a[href=\/expense],.rail a[href=\/customer-payments],.rail a[href=\/vendor-payments],.rail a[href=\/vehicle-emi],.rail a[href=\/customers],.rail a[href=\/vendors],.rail a[href="/masters/expense-categories"]{--nav-hue:var(--nav-h-money)}.rail a[href=\/tyres]{--nav-hue:var(--nav-h-tyre)}.rail a[href=\/maintenance],.rail a[href=\/parts-purchases],.rail a[href=\/part-units],.rail a[href=\/parts-inventory],.rail a[href="/masters/stock-rooms"]{--nav-hue:var(--nav-h-service)}.rail a[href=\/compliance],.rail a[href="/masters/users"],.rail a[href="/masters/company"]{--nav-hue:var(--nav-h-compliance)}.nav-item.soon{color:var(--nav-ink-dim);cursor:default}.nav-soon-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--nav-ink-dim);border:1px solid #37454f;border-radius:4px;margin-left:auto;padding:2px 5px;font-size:9px}.nav-item.secondary{color:var(--nav-ink-dim);padding-top:7px;padding-bottom:7px;font-size:12.5px}.nav-item.secondary svg{opacity:.75;width:14px;height:14px}.nav-item.secondary.active{color:#fff}.nav-sublabel-btn{cursor:pointer;text-align:left;letter-spacing:.06em;text-transform:uppercase;width:100%;color:var(--nav-ink-dim);background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;margin:2px 0 0;padding:6px 10px;font-family:inherit;font-size:11px;font-weight:700;display:flex}.nav-sublabel-btn:hover{color:var(--nav-ink)}.nav-sublabel-btn.active{color:#fff}.nav-sublabel-btn .nav-chevron{width:9px;height:9px}.nav-sublabel-btn.expanded .nav-chevron{transform:rotate(0)}.nav-subcollapsible{border-left:1px solid #ffffff12;flex-direction:column;gap:2px;margin:0 0 2px 9px;padding-left:7px;display:flex}.count-badge{letter-spacing:0;color:var(--nav-ink-dim);text-transform:none;background:#ffffff14;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:9.5px;font-weight:700}.nav-search-pill{width:100%;color:var(--nav-ink-dim);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;font-family:inherit;font-size:12.5px;display:flex}.nav-search-pill svg{flex:none;width:14px;height:14px}.nav-search-pill:hover{color:var(--nav-ink);border-color:#ffffff47}.nav-search-pill .kbd{border:1px solid #fff3;border-radius:4px;margin-left:auto;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:9.5px}.palette-backdrop{z-index:60;background:#0a0f1480;justify-content:center;align-items:flex-start;padding:12vh 16px;display:flex;position:fixed;inset:0}.palette-panel{background:var(--surface);border:1px solid var(--border-soft);width:100%;max-width:560px;max-height:70vh;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.palette-search-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;padding:15px 18px;display:flex}.palette-search-row svg{width:16px;height:16px;color:var(--ink-faint);flex:none}.palette-search-row input{font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:15px}.palette-search-row .kbd{color:var(--ink-faint);border:1px solid var(--border);border-radius:5px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:10px}.palette-results{padding:8px;overflow-y:auto}.palette-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:10px 10px 4px;font-size:10px;font-weight:700}.palette-row{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:9px 10px;font-family:inherit;font-size:13.5px;display:flex}.palette-row.selected{background:var(--accent-soft)}.palette-icon{background:var(--paper);width:30px;height:30px;color:var(--accent);border-radius:7px;flex:none;place-items:center;display:grid}.palette-icon svg{width:15px;height:15px}.palette-label{font-weight:600}.palette-section{color:var(--ink-faint);margin-left:auto;font-size:11px}.palette-foot{border-top:1px solid var(--border-soft);color:var(--ink-faint);gap:14px;padding:10px 18px;font-size:11px;display:flex}.palette-foot span{align-items:center;gap:5px;display:inline-flex}.palette-foot .kbd{border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:10px}.theme-switch{background:#00000047;border:1px solid #ffffff12;border-radius:9px;gap:2px;margin:0 14px 10px;padding:3px;display:flex}.theme-switch button{font:inherit;cursor:pointer;color:var(--nav-ink);background:0 0;border:none;border-radius:6px;flex:1;padding:5px 0;font-size:11px;font-weight:500}.theme-switch button:hover{color:#fff;background:#ffffff12}.theme-switch button.active,.theme-switch button.active:hover{background:var(--nav-h-fleet);color:#10202b;font-weight:600}.rail-foot{border-top:1px solid #ffffff14;align-items:center;gap:9px;margin-top:auto;padding-top:10px;display:flex}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-family:Big Shoulders,sans-serif;font-size:13px;font-weight:700;display:grid}.rail-foot .who{flex:1;min-width:0;line-height:1.3}.rail-foot .who-name{color:#f2f5f7;font-size:12.5px;font-weight:500}.rail-foot .who-role{color:var(--nav-ink-dim);text-transform:capitalize;font-size:11px}.logout-btn{color:var(--nav-ink-dim);cursor:pointer;background:0 0;border:1px solid #37454f;border-radius:6px;flex:none;padding:5px 8px;font-size:11px}.logout-btn:hover{color:#fff;border-color:#4a5964}.main{--page-hue:var(--m-fleet);--page-hue-soft:var(--m-fleet-soft);flex-direction:column;min-width:0;display:flex}.main[data-hue=fleet]{--page-hue:var(--m-fleet);--page-hue-soft:var(--m-fleet-soft)}.main[data-hue=driver]{--page-hue:var(--m-driver);--page-hue-soft:var(--m-driver-soft)}.main[data-hue=fuel]{--page-hue:var(--m-fuel);--page-hue-soft:var(--m-fuel-soft)}.main[data-hue=money]{--page-hue:var(--m-money);--page-hue-soft:var(--m-money-soft)}.main[data-hue=tyre]{--page-hue:var(--m-tyre);--page-hue-soft:var(--m-tyre-soft)}.main[data-hue=service]{--page-hue:var(--m-service);--page-hue-soft:var(--m-service-soft)}.main[data-hue=compliance]{--page-hue:var(--m-compliance);--page-hue-soft:var(--m-compliance-soft)}.main .tile{--tile-hue:var(--page-hue);--tile-hue-soft:var(--page-hue-soft)}.table-head h3:before,.alerts-head h3:before,.health-card h3:before{content:"";background:var(--page-hue);vertical-align:-2px;border-radius:2px;width:4px;height:13px;margin-right:9px;display:inline-block}.main .vehicle-card:hover{border-color:var(--page-hue)}.main .vehicle-card.active{border-color:var(--page-hue);background:var(--page-hue-soft)}.main .vc-status.warn{color:var(--warn)}.topbar{border-bottom:1px solid var(--border-soft);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;display:flex}.topbar h1{margin:0;font-family:Big Shoulders,sans-serif;font-size:25px;font-weight:700}.topbar .sub{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.date-chip{color:var(--ink-soft);border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:6px 11px;font-size:12px}.content{flex-direction:column;gap:20px;padding:24px 28px 48px;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:14px;display:grid}.tile{--tile-hue:var(--m-fleet);--tile-hue-soft:var(--m-fleet-soft);background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:6px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.tile:after{content:"";background:var(--tile-hue-soft);opacity:.55;pointer-events:none;border-radius:50%;width:116px;height:116px;position:absolute;top:-46px;right:-46px}.tile>*{z-index:1;position:relative}.tile.h-fleet{--tile-hue:var(--m-fleet);--tile-hue-soft:var(--m-fleet-soft)}.tile.h-driver{--tile-hue:var(--m-driver);--tile-hue-soft:var(--m-driver-soft)}.tile.h-fuel{--tile-hue:var(--m-fuel);--tile-hue-soft:var(--m-fuel-soft)}.tile.h-money{--tile-hue:var(--m-money);--tile-hue-soft:var(--m-money-soft)}.tile.h-tyre{--tile-hue:var(--m-tyre);--tile-hue-soft:var(--m-tyre-soft)}.tile.h-service{--tile-hue:var(--m-service);--tile-hue-soft:var(--m-service-soft)}.tile.h-compliance{--tile-hue:var(--m-compliance);--tile-hue-soft:var(--m-compliance-soft)}.tile.h-good{--tile-hue:var(--good);--tile-hue-soft:var(--good-soft)}.tile.h-warn{--tile-hue:var(--warn);--tile-hue-soft:var(--warn-soft)}.tile.h-crit{--tile-hue:var(--critical);--tile-hue-soft:var(--critical-soft)}.tile-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tile-label{color:var(--ink-soft);min-width:0;font-size:12px;font-weight:500}.tile-icon{background:var(--tile-hue);width:30px;height:30px;color:var(--on-hue);box-shadow:0 2px 6px -2px var(--tile-hue);border-radius:9px;flex:none;place-items:center;display:grid}.tile-icon svg{width:15px;height:15px}.tile-icon.i-good{background:var(--good)}.tile-icon.i-warn{background:var(--warn)}.tile-icon.i-crit{background:var(--critical)}.tile-icon.i-accent{background:var(--accent)}.tile-value{font-family:Big Shoulders,sans-serif;font-size:34px;font-weight:700;line-height:1}.tile-foot{color:var(--ink-soft);font-size:11.5px}.cost-bar{background:var(--border-soft);border-radius:999px;height:10px;margin-top:10px;display:flex;overflow:hidden}.cost-bar span{height:100%;display:block}.cost-bar .c-fuel{background:var(--m-fuel)}.cost-bar .c-driver{background:var(--m-driver)}.cost-bar .c-other{background:var(--m-service)}.cost-legend{flex-wrap:wrap;gap:4px 14px;margin-top:9px;display:flex}.cost-legend-row{color:var(--ink-soft);align-items:center;gap:6px;font-size:11.5px;display:flex}.cost-legend-row .dot{border-radius:3px;flex:none;width:8px;height:8px}.cost-legend-row .n{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.kind-chip{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.kind-chip .dot{background:var(--kind-hue,var(--ink-soft));border-radius:2px;flex:none;width:7px;height:7px}.kind-chip.k-expense{--kind-hue:var(--m-service)}.kind-chip.k-fuel{--kind-hue:var(--m-fuel)}.kind-chip.k-emi{--kind-hue:var(--m-money)}.vehicle-card-row{flex-wrap:wrap;gap:10px;display:flex}.vehicle-card{border:1px solid var(--border-soft);background:var(--surface);cursor:pointer;text-align:left;min-width:132px;font:inherit;color:inherit;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.vehicle-card:hover{border-color:var(--accent)}.vehicle-card.active{border:2px solid var(--accent);background:var(--accent-soft);padding:11px 13px}.vehicle-card .vc-reg{align-items:center;gap:7px;font-family:IBM Plex Mono,monospace;font-size:13.5px;font-weight:600;display:flex}.vehicle-card .vc-reg svg{width:15px;height:15px;color:var(--page-hue);flex:none}.vehicle-card .vc-status{color:var(--ink-soft);font-size:11.5px}.vehicle-card .vc-status.warn{color:var(--warn);font-weight:600}.vehicle-card .vc-status.good{color:var(--good)}.period-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.period-tabs{flex-wrap:wrap;gap:6px;display:flex}.period-tab{border:1px solid var(--border-soft);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.period-tab:hover{border-color:var(--accent);color:var(--accent)}.period-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.timeline-custom{color:var(--ink-soft);align-items:center;gap:8px;margin-top:8px;font-size:11.5px;display:flex}.timeline-custom input[type=date]{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:7px;padding:5px 8px;font-size:12.5px}.timeline-custom input[type=date]:focus{border-color:var(--accent)}.split-row{grid-template-columns:300px 1fr;align-items:stretch;gap:14px;display:grid}.health-card{background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:20px;display:flex}.health-card h3{align-self:flex-start;margin:0 0 10px;font-size:13px;font-weight:600}.ring-wrap{width:148px;height:148px;position:relative}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--ring-track);stroke-width:11px}.ring-value{fill:none;stroke:var(--good);stroke-width:11px;stroke-linecap:round;transition:stroke-dashoffset 1s,stroke .3s}.ring-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-pct{font-family:Big Shoulders,sans-serif;font-size:33px;font-weight:700;line-height:1}.ring-caption{color:var(--ink-soft);margin-top:2px;font-size:10.5px}.health-legend{flex-direction:column;gap:8px;width:100%;margin-top:14px;display:flex}.health-legend-row{align-items:center;gap:8px;font-size:12px;display:flex}.swatch{border-radius:2px;flex:none;width:8px;height:8px}.health-legend-row .n{margin-left:auto;font-weight:600}.alerts-card{background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.alerts-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:15px 18px 12px;display:flex}.alerts-head h3{margin:0;font-size:13px;font-weight:600}.alert-row{border-bottom:1px solid var(--border-soft);grid-template-columns:4px 1fr auto auto;align-items:center;gap:14px;padding:11px 18px;display:grid}.alert-row:last-child{border-bottom:none}.btn-reset{appearance:none;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border-top:none;border-left:none;border-right:none}button.tile:hover,button.alert-row:hover{background:var(--paper)}button.tile:hover{box-shadow:var(--shadow-md,var(--shadow))}.stripe{border-radius:2px;align-self:stretch;width:4px}.stripe.crit{background:var(--critical)}.stripe.warn{background:var(--warn)}.alert-main{min-width:0}.alert-doc{font-size:13px;font-weight:500}.alert-holder{color:var(--ink-soft);margin-top:1px;font-size:11.5px}.alert-status{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.alert-status.crit{background:var(--critical-soft);color:var(--critical)}.alert-status.warn{background:var(--warn-soft);color:var(--warn)}.alert-date{color:var(--ink-soft);white-space:nowrap;text-align:right;font-size:11.5px}.empty-state{text-align:center;color:var(--ink-soft);padding:28px 18px;font-size:12.5px}.empty-state svg{opacity:.45;width:24px;height:24px}.table-card{background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.table-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:15px 18px 12px;display:flex}.table-head h3{margin:0;font-size:13px;font-weight:600}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:0}thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--border-soft);overflow-wrap:break-word;padding:10px;font-size:10.5px;font-weight:600}tbody td{border-bottom:1px solid var(--border-soft);overflow-wrap:break-word;padding:11px 10px;font-size:13px}thead th:first-child,tbody td:first-child{padding-left:18px}thead th:last-child,tbody td:last-child{padding-right:18px}td.tnum,td .tnum,.reg-no,.pill,.kind-chip,.alert-status,td .link-btn,.row-actions{white-space:nowrap}tbody tr:last-child td{border-bottom:none}.reg-no{letter-spacing:.01em;font-family:IBM Plex Mono,monospace;font-weight:500}.veh-cell{align-items:center;gap:10px;display:flex}.veh-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:7px;flex:none;place-items:center;display:grid}.veh-icon svg{width:15px;height:15px}.veh-cat{color:var(--ink-soft);text-transform:capitalize;font-size:11px}.pill{text-transform:capitalize;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.pill.on{background:var(--good-soft);color:var(--good)}.pill.on:before{content:"";background:var(--good);border-radius:50%;width:5px;height:5px}.pill.svc{background:var(--warn-soft);color:var(--warn)}.pill.svc:before{content:"";background:var(--warn);border-radius:50%;width:5px;height:5px}.pill.off{background:var(--border-soft);color:var(--ink-soft)}.pill.off:before{content:"";background:var(--ink-soft);border-radius:50%;width:5px;height:5px}.track-tag{color:var(--ink-soft);align-items:center;gap:5px;font-size:11px;display:inline-flex}.track-tag svg{width:12px;height:12px}.org-list{flex-direction:column;gap:10px;display:flex}.org-card{background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:14px;padding:14px 16px;display:flex}.org-card.suspended{opacity:.7}.org-avatar{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:10px;flex:none;place-items:center;font-family:Big Shoulders,sans-serif;font-size:15px;font-weight:700;display:grid;overflow:hidden}.org-avatar img{object-fit:cover;width:100%;height:100%}.org-main{flex:1;min-width:0}.org-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.org-name{font-size:14.5px;font-weight:700}.org-meta{color:var(--ink-faint);margin-top:2px;font-size:11.5px}.org-stats{flex:none;gap:18px;display:flex}.org-stat{flex-direction:column;align-items:center;gap:1px;min-width:44px;display:flex}.org-stat .n{font-family:Big Shoulders,sans-serif;font-size:16px;font-weight:700}.org-stat .l{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:9.5px}.org-actions{flex:none;align-items:center;gap:4px;display:flex}.icon-btn{width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:var(--paper);border-color:var(--border-soft)}.icon-btn.danger:hover{background:var(--critical-soft);color:var(--critical);border-color:#0000}.icon-btn.good:hover{background:var(--good-soft);color:var(--good);border-color:#0000}.logo-preview{background:var(--paper);border:1px dashed var(--border);width:52px;height:52px;color:var(--ink-faint);border-radius:10px;flex:none;place-items:center;display:grid;overflow:hidden}.logo-preview svg{width:20px;height:20px}.logo-preview img{object-fit:cover;width:100%;height:100%}@media (width<=720px){.org-card{flex-wrap:wrap}.org-stats{order:3;justify-content:flex-start;width:100%;margin-top:6px}}.center-screen{min-height:100vh;color:var(--ink-soft);justify-content:center;align-items:center;font-size:13px;display:flex}.error-banner{background:var(--critical-soft);color:var(--critical);border-radius:8px;margin:24px 28px 0;padding:12px 16px;font-size:13px}@media (prefers-reduced-motion:reduce){.ring-value{transition:none}}@media (width<=980px){.app{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}.split-row{grid-template-columns:1fr}.mobile-topbar{background:var(--nav-bg);color:#fff;z-index:40;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;top:0}.mobile-topbar-brand{letter-spacing:.01em;font-family:Big Shoulders,sans-serif;font-size:16px;font-weight:700}.mobile-nav-toggle{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.mobile-nav-toggle svg{width:20px;height:20px}.nav-drawer-backdrop{z-index:50;background:#0a0f1473;display:block;position:fixed;inset:0}.rail{z-index:55;width:260px;max-width:82vw;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:8px 0 28px -12px #00000059}.rail.open{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.rail{transition:none}}@media (width<=640px){.table-scroll.responsive table,.table-scroll.responsive thead,.table-scroll.responsive tbody,.table-scroll.responsive th,.table-scroll.responsive td,.table-scroll.responsive tr{min-width:0;display:block}.table-scroll.responsive thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table-scroll.responsive tbody tr{border:1px solid var(--border-soft);box-shadow:var(--shadow);border-radius:10px;margin:10px;padding:10px 14px}.table-scroll.responsive tbody tr:last-child{margin-bottom:10px}.table-scroll.responsive td{white-space:normal;text-align:right;border:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:5px 0;display:flex}.table-scroll.responsive td[data-label]:not([data-label=""]):before{content:attr(data-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);text-align:left;flex:none;font-size:10.5px;font-weight:600}.table-scroll.responsive td:empty{display:none}.table-scroll.responsive td[data-label=""]{justify-content:flex-start}.table-scroll.responsive td[data-label=""] .row-actions{margin-left:auto}.palette-backdrop{align-items:stretch;padding:0}.palette-panel{border:none;border-radius:0;max-width:none;height:100vh;max-height:none}}@media print{.rail,.no-print{display:none!important}.app{display:block}.table-card,.table-scroll{box-shadow:none;border:none;overflow:visible}table{min-width:0}body{background:#fff}.page-head{border-bottom:1px solid #000}.modal-backdrop.panel-backdrop{background:0 0;padding:0;position:static;overflow:visible}.side-panel{height:auto;box-shadow:none;border:none;animation:none;position:static;width:100%!important}.side-panel .modal-body{overflow:visible}.modal-head{border-bottom:1px solid #000}}
