:root{--bg:#050b17;--panel:#0b1628cc;--panel-solid:#0b1628;--line:#20324d;--text:#f7f9fd;--muted:#8ea2be;--blue:#1877ff;--cyan:#1dd6d0;--green:#24d47a;--purple:#9b6cff;--amber:#f6a723;--red:#ff5d68;--radius:18px;--shadow:0 22px 60px #0006;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 72% 10%,#0c2450 0,transparent 27%),radial-gradient(circle at 6% 95%,#09253a 0,transparent 24%),var(--bg);color:var(--text)}body{font-size:14px}button,input,select,textarea{font:inherit}button,a{transition:.2s ease}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 14px;border-right:1px solid #172945;background:#061122e8;backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:6px 10px 27px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#1c8cff,#6935f6);box-shadow:0 0 28px #1c70ff66;font-weight:900}.brand strong,.brand small{display:block}.brand small{color:var(--muted);margin-top:2px;font-size:11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid transparent;border-radius:13px;color:#aebed4}.sidebar nav a:hover,.sidebar nav a.active{color:white;background:linear-gradient(90deg,#0c4da9aa,#12376c66);border-color:#126aea;box-shadow:0 0 20px #0569ff2e;transform:translateX(2px)}.nav-icon{font-size:20px;width:22px;text-align:center}.sidebar-foot{margin-top:auto;padding:15px 10px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.live-dot,.pulse{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pulse 1.8s infinite}.workspace{min-width:0}.topbar{height:82px;border-bottom:1px solid #172945;padding:0 28px;display:flex;align-items:center;gap:16px;background:#071121bf;backdrop-filter:blur(18px);position:sticky;top:0;z-index:15}.topbar h1{font-size:24px;margin:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.system-live{padding:9px 14px;border-radius:11px;border:1px solid #1f6d5d;color:#5af4a3;background:#08261e}.system-live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#39e889;box-shadow:0 0 10px #39e889;margin-right:7px}.icon-button{border:1px solid var(--line);background:#0c192c;color:#dbe7f8;border-radius:11px;min-width:39px;height:39px;display:inline-grid;place-items:center;cursor:pointer;position:relative}.icon-button:hover{border-color:#287cff;transform:translateY(-2px)}.icon-button b{position:absolute;right:-5px;top:-7px;background:var(--red);border-radius:10px;padding:2px 6px;font-size:10px}.user-chip{display:flex;align-items:center;gap:9px}.user-chip>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#144e8d,#6d38c7);font-weight:800}.user-chip strong,.user-chip small{display:block}.user-chip small{color:var(--muted);font-size:10px;margin-top:2px}.mobile-menu{display:none}.page-content{padding:26px 28px 46px;max-width:1680px;margin:auto}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{font-size:28px;margin:7px 0 4px}.section-heading p{margin:0;color:var(--muted)}.eyebrow{color:#42d9ff;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}.eyebrow i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 9px var(--green);margin-right:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 17px;border-radius:11px;border:1px solid var(--line);cursor:pointer;font-weight:750}.button.primary{background:linear-gradient(135deg,#0e70ff,#1559dc);border-color:#2c83ff;color:#fff;box-shadow:0 10px 25px #005dff30}.button.primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px #0064ff55}.button.secondary{background:#0c192c;color:#dce8f8}.button.wide{width:100%}.button.glow{animation:softglow 2.6s infinite}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#0d1a2de8,#091423e8);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpi-card{position:relative;min-height:142px;padding:19px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#0c1c31,#091322);overflow:hidden}.kpi-card:after{content:"";position:absolute;inset:auto -30px -70px auto;width:150px;height:150px;border-radius:50%;filter:blur(18px);opacity:.14;background:currentColor}.kpi-card.green{color:var(--green);border-color:#175d4d}.kpi-card.blue{color:#3b8cff;border-color:#224c82}.kpi-card.purple{color:#b384ff;border-color:#4e3974}.kpi-card.cyan{color:#37d9df;border-color:#23616b}.kpi-top{display:flex;align-items:center;gap:9px}.kpi-top small{color:#ced9e8;font-size:13px}.kpi-icon{font-size:10px;box-shadow:0 0 12px currentColor}.kpi-card>strong{font-size:40px;display:block;margin:8px 0;color:white}.trend{font-size:11px}.sparkline{position:absolute;right:17px;bottom:29px;height:35px;display:flex;align-items:flex-end;gap:4px}.sparkline i{display:block;width:4px;background:currentColor;border-radius:4px;animation:bars 2s ease-in-out infinite}.sparkline i:nth-child(1){height:25%}.sparkline i:nth-child(2){height:44%;animation-delay:.1s}.sparkline i:nth-child(3){height:35%;animation-delay:.2s}.sparkline i:nth-child(4){height:70%;animation-delay:.3s}.sparkline i:nth-child(5){height:55%;animation-delay:.4s}.sparkline i:nth-child(6){height:85%;animation-delay:.5s}.sparkline i:nth-child(7){height:100%;animation-delay:.6s}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:20px 21px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0 0 4px;font-size:17px}.panel-head p{margin:0;color:var(--muted);font-size:11px}.panel-head a{color:#49a3ff}.driver-workload-list{padding:5px 20px 14px}.driver-workload{display:grid;grid-template-columns:auto minmax(140px,1.3fr) auto minmax(100px,.8fr) 25px;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #172842}.avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;font-weight:850;border:2px solid #4677aa;background:#15426e}.avatar.large{width:54px;height:54px}.tone-1{background:#3a315e}.tone-2{background:#68422d}.tone-3{background:#205748}.driver-meta strong,.driver-meta small{display:block}.driver-meta small{color:var(--muted);font-size:11px;margin-top:4px}.status{padding:5px 8px;border-radius:8px;font-size:10px;border:1px solid #2c5c59;background:#0e332d;color:#6be3a8;white-space:nowrap}.status-on_tour,.status-assigned{color:#57a1ff;background:#0d2850;border-color:#215892}.status-on_leave{color:#c69bff;background:#2c1a48;border-color:#603d8b}.status-returning_today{color:#50e4e5;background:#0c353b;border-color:#1a6a70}.status-unavailable,.status-maintenance{color:#ffb158;background:#3c2710;border-color:#77501d}.workload-bar{height:6px;background:#14243a;border-radius:10px;overflow:hidden}.workload-bar i{display:block;height:100%;background:linear-gradient(90deg,#1678ff,#29d7d0);border-radius:10px}.activity-list{padding:8px 20px}.activity-list article{display:flex;gap:11px;padding:15px 0;border-bottom:1px solid #172842}.activity-list strong,.activity-list small{display:block}.activity-list strong{font-size:12px}.activity-list small{color:var(--muted);font-size:10px;margin-top:5px}.activity-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;color:#72f5ad;background:#133d32}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.toolbar select,.toolbar input{height:42px;border:1px solid var(--line);border-radius:11px;background:#0a1628;color:#eaf1fa;padding:0 13px}.search{position:relative;display:flex;align-items:center;min-width:260px}.search span{position:absolute;left:13px;color:var(--muted)}.search input{width:100%;padding-left:36px}.view-switch{margin-left:auto;border:1px solid var(--line);padding:3px;border-radius:11px;display:flex;background:#091426}.view-switch button{border:0;background:none;color:var(--muted);padding:8px 18px;border-radius:8px}.view-switch button.active{background:#164d9a;color:#fff}.driver-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.driver-card{border:1px solid var(--line);background:linear-gradient(145deg,#0d1a2d,#081321);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.interactive-card:hover{transform:translateY(-5px);border-color:#2c75c6;box-shadow:0 22px 55px #0008,0 0 30px #176ff51d}.driver-card-top{display:flex;justify-content:space-between}.driver-card h3{margin:13px 0 3px}.driver-card>p{margin:0;color:var(--muted);font-size:11px}.driver-card dl{margin:16px 0}.driver-card dl>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #172842;padding:10px 0}.driver-card dt{color:var(--muted);font-size:11px}.driver-card dd{margin:0;text-align:right}.chip{display:inline-block;padding:3px 7px;border-radius:7px;background:#12345d;color:#72b5ff;font-size:9px;margin-left:3px}.card-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px}.card-actions a{color:#52a7ff}.card-actions button{background:none;border:0;color:#9eafc6}.table-panel{padding:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid #172842}th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.schedule-shell{border:1px solid var(--line);border-radius:16px;background:#071322d9;overflow:auto;box-shadow:var(--shadow)}.schedule-head,.schedule-row{display:grid;grid-template-columns:292px minmax(760px,1fr);min-width:1060px}.schedule-head{position:sticky;top:0;z-index:3;background:#0a1729;border-bottom:1px solid var(--line)}.schedule-head{grid-template-columns:292px repeat(7,minmax(108px,1fr))}.driver-column-title,.date-head{padding:13px;border-right:1px solid #1b2e49}.date-head{text-align:center}.date-head strong,.date-head span{display:block}.date-head span{color:var(--muted);font-size:10px}.date-head.today{color:#55bdff;background:#0c2544}.schedule-row{border-bottom:1px solid #192a43;min-height:86px}.schedule-row:hover{background:#0e203544}.driver-identity{display:flex;align-items:center;gap:11px;padding:13px 15px;border-right:1px solid var(--line);position:sticky;left:0;background:#091628;z-index:2}.driver-identity strong,.driver-identity small,.driver-identity div>span{display:block}.driver-identity small{color:#a8b7ca;font-size:10px;margin:4px 0}.driver-identity div>span{color:#6f89aa;font-size:9px}.status-dot{margin-left:auto;width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 9px currentColor}.status-dot.status-on_tour{background:var(--blue)}.status-dot.status-on_leave{background:var(--purple)}.status-dot.status-returning_today{background:var(--cyan)}.timeline-grid{display:grid;grid-template-columns:repeat(7,1fr);position:relative;align-items:center}.timeline-cell{height:100%;border-right:1px dashed #20314a}.assignment-pill{grid-column:var(--start)/span var(--span);grid-row:1;z-index:1;margin:0 6px;height:47px;border-radius:11px;border:1px solid #3b92ff;background:linear-gradient(90deg,#0755b6,#126eea,#1853c5);color:#fff;display:flex;align-items:center;gap:6px;padding:0 8px;box-shadow:0 0 20px #096cff30;overflow:hidden;cursor:grab}.assignment-pill:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 11px 26px #006eff50}.assignment-pill strong{white-space:nowrap}.assignment-pill small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{opacity:.6}.availability-band{grid-column:1/-1;grid-row:1;margin:0 6px;height:38px;border:1px solid #276a4b;background:#143d2d;color:#77e6a7;display:grid;place-items:center;border-radius:10px}.availability-band.status-on_leave{background:#2e1e4f;border-color:#6a45a0;color:#c5a3ff}.availability-band.status-returning_today{background:#103b42;border-color:#17737b;color:#5ce7e9}.modal{width:min(680px,calc(100% - 28px));padding:0;border:1px solid #2d4568;border-radius:18px;background:#091628;color:#fff;box-shadow:0 30px 100px #000b;opacity:0;transform:translateY(18px) scale(.98);transition:.22s}.modal[open]{opacity:1;transform:none}.modal::backdrop{background:#020711c9;backdrop-filter:blur(7px)}.modal form{padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}.modal-head h3{font-size:22px;margin:5px 0}.modal-head p{color:var(--muted);margin:0}.modal-head>button{border:0;background:none;color:#b5c4d8;font-size:27px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:7px;color:#bfccdc;font-size:11px}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{width:100%;border:1px solid #2a3d5b;background:#07111f;border-radius:10px;color:#fff;padding:12px;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.login-card input:focus{border-color:#2c87ff;box-shadow:0 0 0 3px #1877ff20}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.auto-vehicle{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #295583;border-radius:12px;background:#0c2139}.auto-vehicle>span{font-size:25px}.auto-vehicle div{display:grid}.auto-vehicle small{color:var(--muted)}.auto-vehicle i{margin-left:auto;color:#67e8a1;font-size:10px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:11px;padding:13px 16px;border:1px solid #277b5b;border-radius:13px;background:#0b2e25;color:#e9fff4;box-shadow:0 18px 60px #0009;animation:toastin .4s ease}.toast>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--green);color:#052015}.toast button{margin-left:12px;border:0;background:none;color:#b9c8d5;font-size:20px}.toast-error{background:#3b151d;border-color:#8e2f42}.toast-error>span{background:var(--red)}.empty-state{text-align:center;color:var(--muted);padding:30px}.wide{grid-column:1/-1}.guest-page{overflow:hidden}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-visual{position:relative;padding:44px 8vw;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:linear-gradient(135deg,#061527,#081020)}.login-brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:850}.login-copy{position:relative;z-index:2}.login-copy h1{font-size:clamp(48px,5vw,82px);line-height:.96;margin:16px 0 23px;letter-spacing:-.055em}.login-copy h1 em{font-style:normal;color:#4c98ff;text-shadow:0 0 40px #267cff5c}.login-copy p{max-width:590px;font-size:17px;line-height:1.65;color:#9fb2ca}.visual-orb{position:absolute;border-radius:50%;filter:blur(15px);opacity:.35}.orb-one{width:420px;height:420px;background:#0058ff;right:-120px;top:10%}.orb-two{width:360px;height:360px;background:#00d6bd;left:-180px;bottom:-100px}.glass-stat{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;max-width:480px;padding:18px 22px;border:1px solid #315276;background:#10254299;backdrop-filter:blur(14px);border-radius:17px}.glass-stat strong{font-size:35px}.glass-stat span{color:#aac0da}.mini-bars{display:flex;align-items:end;height:38px;gap:4px}.mini-bars i{width:5px;background:#38d9bb;border-radius:5px;animation:bars 2s infinite}.mini-bars i:nth-child(1){height:30%}.mini-bars i:nth-child(2){height:60%}.mini-bars i:nth-child(3){height:45%}.mini-bars i:nth-child(4){height:85%}.mini-bars i:nth-child(5){height:100%}.login-panel{display:grid;place-items:center;padding:30px;background:#050b15}.login-card{width:min(410px,100%)}.login-card h2{font-size:34px;margin:9px 0}.login-card>p{color:var(--muted);margin-bottom:28px}.login-card label{display:grid;gap:8px;color:#b8c8da;margin:15px 0}.security-note{display:block;text-align:center;color:#607892;margin-top:16px}.form-alert{padding:11px 13px;background:#401821;border:1px solid #873145;color:#ffbbc4;border-radius:10px}
.photo-avatar{object-fit:cover}.archived-card,.archived-row{opacity:.55}.table-action{border:1px solid #2b4b70;background:#0c213b;color:#79b8ff;border-radius:8px;padding:6px 10px;cursor:pointer}.table-action:hover{border-color:#2d85ff;transform:translateY(-1px)}.button.danger{background:#401721;border-color:#8b3044;color:#ffb9c2}.button.danger:hover{background:#5a1a29;border-color:#d34660}.profile-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.profile-heading>div{display:flex;gap:8px}.back-link{color:#65adff}.driver-profile-hero{padding:25px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:radial-gradient(circle at 85% 20%,#11418566,transparent 30%),linear-gradient(145deg,#0d1c31,#081321)}.profile-identity{display:flex;align-items:center;gap:19px}.profile-photo{width:104px;height:104px;border-radius:28px;object-fit:cover;border:2px solid #327dd2;box-shadow:0 0 30px #1269df44}.profile-initials{display:grid;place-items:center;background:linear-gradient(135deg,#174b7c,#593e8d);font-size:30px;font-weight:900}.profile-identity h2{font-size:30px;margin:9px 0 4px}.profile-identity p{color:var(--muted);margin:0}.profile-chips{margin-top:12px}.profile-metrics{display:flex;gap:12px}.profile-metrics>div{min-width:115px;padding:16px;border:1px solid #29415f;border-radius:14px;background:#091628a8;text-align:center}.profile-metrics strong,.profile-metrics span{display:block}.profile-metrics strong{font-size:22px}.profile-metrics span{color:var(--muted);font-size:9px;margin-top:6px;text-transform:uppercase}.profile-grid{display:grid;grid-template-columns:1fr 1fr .75fr;gap:16px;margin-top:17px}.detail-panel{grid-column:auto}.detail-list{padding:5px 20px;margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #172842}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:right}.assignment-history{grid-column:1/3}.notes-panel{grid-column:3}.notes-panel>p{padding:4px 20px 22px;color:#afc0d5;line-height:1.7}.table-subtitle{display:block;color:var(--muted);margin-top:4px}.danger-text{color:#ff7888!important}.split-actions{display:grid;grid-template-columns:auto 1fr auto auto}.confirm-modal{max-width:520px}.modal label small{color:var(--muted);font-size:9px}
.heading-actions{display:flex;gap:9px}.availability-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.availability-kpis article{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#0c192c,#081321)}.availability-kpis strong,.availability-kpis small{display:block}.availability-kpis strong{font-size:25px}.availability-kpis small{color:var(--muted);margin-top:3px}.availability-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#2c1d4c;color:#c298ff}.availability-icon.rest{background:#3a2b11;color:#ffc35b}.availability-icon.training{background:#103a42;color:#5ce5e7}.availability-icon.upcoming{background:#123b2b;color:#65e7a0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs button{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:12px 17px;cursor:pointer}.tabs button.active{color:#fff;border-color:#2e83ff}.tab-panel{display:none}.tab-panel.active{display:block;animation:panelin .25s ease}.availability-type{display:inline-block;padding:5px 8px;border-radius:8px;background:#342052;color:#c6a2ff;border:1px solid #654493;font-size:10px}.type-rest_day{background:#3d2b0e;color:#ffc560;border-color:#77531d}.type-training,.type-internal_duty{background:#11363d;color:#55e0e2;border-color:#1d6d75}.type-unavailable,.type-maintenance{background:#421a21;color:#ff929e;border-color:#7f303e}.type-available{background:#113d2d;color:#68e3a2;border-color:#246a4d}.danger-link{color:#ff8d9b;border-color:#653040;background:#30131b}.toggle-label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;padding:12px;border:1px solid var(--line);border-radius:11px;background:#081522}.toggle-label input{width:18px;height:18px}.toggle-label span strong,.toggle-label span small{display:block}.weekday-picker{display:flex;gap:7px}.weekday-picker label input{position:absolute;opacity:0}.weekday-picker label span{display:grid;place-items:center;width:44px;height:38px;border:1px solid var(--line);border-radius:9px;background:#0a1729;cursor:pointer}.weekday-picker label input:checked+span{background:#1756a7;border-color:#338cff;color:#fff}.schedule-block{grid-column:var(--start)/span var(--span);grid-row:1;z-index:1;margin:0 6px;height:42px;display:grid;place-items:center;border-radius:10px;border:1px solid #69499c;background:linear-gradient(90deg,#312052,#4b2779);color:#d7bdff;font-size:11px;font-weight:750;box-shadow:0 0 18px #6b3ead28}.block-rest_day{background:linear-gradient(90deg,#4a300b,#714b10);border-color:#aa7420;color:#ffd27b}.block-training,.block-internal_duty{background:linear-gradient(90deg,#0c424b,#11616a);border-color:#1a8791;color:#7af1f2}.block-unavailable,.block-maintenance{background:linear-gradient(90deg,#4a171f,#712633);border-color:#a53c4e;color:#ffb0ba}.block-available{background:linear-gradient(90deg,#123f2e,#176142);border-color:#28865e;color:#8cf0b7}
@keyframes pulse{50%{opacity:.4;transform:scale(.8)}}@keyframes softglow{50%{box-shadow:0 0 32px #177cff70}}@keyframes bars{50%{transform:scaleY(.6)}}@keyframes toastin{from{opacity:0;transform:translate(-50%,20px)}}@keyframes panelin{from{opacity:0;transform:translateY(7px)}}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.driver-card-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.activity-panel{min-height:300px}.user-chip div{display:none}.profile-grid{grid-template-columns:1fr 1fr}.assignment-history{grid-column:1/3}.notes-panel{grid-column:1/3}.availability-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;transform:translateX(-100%);width:250px}.sidebar.open{transform:translateX(0)}.mobile-menu{display:grid}.topbar{padding:0 14px}.topbar h1{font-size:18px}.system-live,.user-chip{display:none}.page-content{padding:18px 14px}.section-heading{align-items:flex-start}.kpi-grid,.driver-card-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search{min-width:100%}.view-switch{margin-left:0}.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-panel{padding:25px}.driver-workload{grid-template-columns:auto 1fr auto}.workload-bar,.driver-workload>b{display:none}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.auto-vehicle{flex-wrap:wrap}.auto-vehicle i{margin-left:0}.section-heading h2{font-size:23px}.driver-profile-hero{align-items:flex-start;flex-direction:column}.profile-metrics{width:100%;overflow:auto}.profile-metrics>div{min-width:110px}.profile-grid{grid-template-columns:1fr}.detail-panel,.assignment-history,.notes-panel{grid-column:1}.profile-photo{width:80px;height:80px}.profile-identity h2{font-size:23px}.profile-heading{align-items:flex-start}.profile-heading>div{flex-direction:column}.availability-kpis{grid-template-columns:1fr 1fr}.heading-actions{flex-direction:column}.weekday-picker{flex-wrap:wrap}}

/* Release 0.4 interactive schedule */
.driver-identity{border:0;border-right:1px solid var(--line);color:inherit;text-align:left;cursor:pointer;width:100%}.driver-identity:hover{background:#0d2038}.assignment-pill{gap:5px;padding:0;touch-action:none;user-select:none}.assignment-copy{display:flex;gap:6px;align-items:center;min-width:0;flex:1}.resize-handle{align-self:stretch;width:21px;display:grid;place-items:center;background:#ffffff10;cursor:ew-resize;opacity:.65}.resize-handle:hover{opacity:1;background:#ffffff24}.assignment-pill.is-dragging{z-index:10;opacity:.88;cursor:grabbing;transition:none}.assignment-pill.is-saving{filter:saturate(.5);animation:softglow 1s infinite}.schedule-row.drop-target{background:#0e315066;box-shadow:inset 0 0 0 1px #237fea}.schedule-dragging,.schedule-dragging *{cursor:grabbing!important}.profile-drawer{position:fixed;right:0;top:82px;bottom:0;width:min(390px,94vw);z-index:30;padding:22px;background:#081528ed;border-left:1px solid #2b4568;box-shadow:-25px 0 70px #0008;backdrop-filter:blur(20px);transform:translateX(105%);transition:.28s cubic-bezier(.2,.8,.2,1)}.profile-drawer.open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px}.drawer-head h3{font-size:24px;margin:6px 0}.drawer-head button{border:0;background:none;color:#b7c6d8;font-size:27px;cursor:pointer}.drawer-person{display:flex;align-items:end;gap:14px;padding:22px 0}.drawer-person .profile-photo{width:82px;height:82px}.profile-drawer .detail-list{padding:0;margin-bottom:20px}

/* Release 0.5 tour assignment command */
.assignment-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.assignment-kpi{display:flex;align-items:center;gap:14px;padding:17px 19px;border:1px solid #254466;border-radius:16px;background:linear-gradient(135deg,#0c1c31,#0a1424);box-shadow:0 14px 36px #0003}.assignment-kpi>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#113b69;color:#55a4ff}.assignment-kpi strong,.assignment-kpi small{display:block}.assignment-kpi strong{font-size:27px}.assignment-kpi small{color:var(--muted)}.assignment-kpi.live{border-color:#17644c}.assignment-kpi.live>span{background:#103b2c;color:#55e79a;animation:pulse 1.8s infinite}.assignment-kpi.tentative>span{background:#422f12;color:#ffc562}.assignment-kpi.draft>span{background:#33224d;color:#c59bff}.assignment-toolbar{padding:13px;border:1px solid var(--line);border-radius:15px;background:#091526b8}.assignment-register{display:grid;gap:12px}.assignment-card{display:grid;grid-template-columns:82px minmax(270px,1.25fr) minmax(210px,.75fr) minmax(185px,.6fr) auto;align-items:center;gap:18px;padding:17px 18px;border:1px solid #203958;border-left:3px solid #2d82ff;border-radius:17px;background:linear-gradient(120deg,#0c1b2f,#091422);box-shadow:0 12px 32px #0003;transition:.25s ease}.assignment-card:hover{transform:translateY(-3px);border-color:#347bc1;box-shadow:0 18px 44px #0006}.status-card-tentative{border-left-color:#f2ad35}.status-card-draft{border-left-color:#9c71e5}.status-card-completed{border-left-color:#31d28a}.status-card-cancelled{border-left-color:#d94d5c;opacity:.68}.assignment-date{text-align:center;border-right:1px solid var(--line);padding-right:15px}.assignment-date strong,.assignment-date span,.assignment-date small{display:block}.assignment-date strong{font-size:30px}.assignment-date span{font-size:10px;letter-spacing:.14em;color:#62aaff}.assignment-date i{display:block;width:1px;height:12px;background:#345271;margin:5px auto}.assignment-date small{color:var(--muted)}.assignment-title{display:flex;align-items:start;gap:10px;justify-content:space-between}.assignment-title h3{font-size:17px;margin:4px 0 11px}.assignment-number{font-size:10px;color:#58a6ff;font-weight:800}.assignment-status{padding:5px 8px;border-radius:8px;border:1px solid #236044;background:#113728;color:#6de6a4;font-size:9px;text-transform:uppercase}.state-tentative{color:#ffc968;background:#3b2a0e;border-color:#77561b}.state-draft{color:#c5a1ff;background:#2d1e46;border-color:#5c3e83}.state-cancelled{color:#ff929f;background:#431a22;border-color:#7c303c}.assignment-route{display:flex;align-items:center;gap:9px}.assignment-route i{font-style:normal;color:#50d9ae}.assignment-route small{color:var(--muted);font-size:8px}.assignment-route strong{display:block;font-size:10px;margin-top:3px}.assignment-route b{height:1px;flex:1;background:#2c5d62}.assignment-driver{display:flex;align-items:center;gap:11px}.assignment-driver small,.assignment-driver strong,.assignment-driver div>span{display:block}.assignment-driver small,.assignment-driver div>span{color:var(--muted);font-size:9px}.assignment-driver strong{font-size:12px;margin:4px 0}.assignment-meta{display:grid;gap:10px}.assignment-meta small,.assignment-meta strong{display:block}.assignment-meta small{color:var(--muted);font-size:8px}.assignment-meta strong{font-size:10px}.assignment-actions{display:flex;align-items:center;gap:7px}.override-badge{color:#ffc05c;background:#3c2a0e;border:1px solid #77531a;border-radius:8px;padding:6px 8px;font-size:9px}.empty-assignment{text-align:center;padding:55px}.dedicated-vehicle-callout{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #255d8f;border-radius:12px;background:#0c2946}.dedicated-vehicle-callout small,.dedicated-vehicle-callout strong{display:block}.dedicated-vehicle-callout small{color:var(--muted)}.dedicated-vehicle-callout>i{margin-left:auto;color:#5fe5ad;font-size:9px}.override-control{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;padding:13px;border:1px solid #6c4f1b;border-radius:11px;background:#32230e}.override-control input{width:18px;height:18px}.override-control strong,.override-control small{display:block}.confirm-modal>form>label{display:grid;gap:7px;padding:20px}.confirm-modal textarea{border:1px solid var(--line);border-radius:11px;background:#081522;color:#fff;padding:12px}
@media(max-width:1250px){.assignment-card{grid-template-columns:72px 1fr 220px auto}.assignment-meta{display:none}}@media(max-width:900px){.assignment-card{grid-template-columns:66px 1fr auto}.assignment-driver{grid-column:2}.assignment-actions{grid-column:3;grid-row:1/3}.assignment-kpis{grid-template-columns:1fr 1fr}}@media(max-width:600px){.assignment-card{grid-template-columns:58px 1fr}.assignment-actions{grid-column:1/3;grid-row:auto;justify-content:flex-end}.assignment-kpis{grid-template-columns:1fr}}

/* Release 0.6 reports centre */
.report-filter{display:flex;align-items:end;gap:12px;padding:15px;margin-bottom:16px}.report-filter label{display:grid;gap:6px;color:var(--muted);font-size:10px}.report-filter input{height:41px;border:1px solid var(--line);border-radius:10px;background:#081522;color:#fff;padding:0 12px}.report-filter>span{margin-left:auto;color:#6db6ff;font-size:11px;padding-bottom:12px}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.report-kpis article{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#0d1c31,#081321)}.report-kpis strong,.report-kpis small{display:block}.report-kpis strong{font-size:28px}.report-kpis small{color:var(--muted)}.report-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#122f5b;color:#5ea8ff}.report-icon.green{background:#11382b;color:#61e6a0}.report-icon.purple{background:#302049;color:#c39dff}.report-icon.cyan{background:#10363e;color:#58e3e6}.report-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.65fr);gap:17px;margin-bottom:17px}.utilisation-list{padding:8px 20px 18px}.utilisation-list article{display:grid;grid-template-columns:auto minmax(150px,.8fr) minmax(130px,1fr) 48px 54px;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #172842}.utilisation-driver strong,.utilisation-driver small{display:block}.utilisation-driver small{color:var(--muted);font-size:9px}.utilisation-track{height:8px;background:#14243a;border-radius:10px;overflow:hidden}.utilisation-track i{display:block;width:var(--value);height:100%;border-radius:10px;background:linear-gradient(90deg,#177cff,#24d9d0);animation:reportbar .8s ease both}.utilisation-list article>b{color:#63afff}.utilisation-list article>span:last-child{color:var(--muted);font-size:10px}.expiry-list{padding:7px 18px}.expiry-list article{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #172842}.expiry-list article>div strong,.expiry-list article>div small{display:block}.expiry-list article>div small{color:var(--muted);font-size:9px}.expiry-days{width:47px;height:47px;border-radius:12px;display:grid;place-items:center;background:#3e2d10;color:#ffcb6f}.expiry-days strong,.expiry-days small{display:block;line-height:1}.expiry-days small{font-size:8px}.expiry-days.urgent{background:#481a23;color:#ff8795}.report-clear{text-align:center;padding:45px 15px}.report-clear>span{width:48px;height:48px;display:grid;place-items:center;margin:auto;border-radius:50%;background:#123c2e;color:#63e5a3}.report-clear strong,.report-clear small{display:block;margin-top:8px}.report-clear small{color:var(--muted)}.report-table{margin-bottom:17px}.report-footer{text-align:center;color:var(--muted);font-size:9px;padding:8px}@keyframes reportbar{from{width:0}}
@media(max-width:1050px){.report-grid{grid-template-columns:1fr}.report-kpis{grid-template-columns:1fr 1fr}}@media(max-width:650px){.report-filter{flex-wrap:wrap}.report-filter label{flex:1}.report-filter>span{width:100%;margin:0}.report-kpis{grid-template-columns:1fr}.utilisation-list article{grid-template-columns:auto 1fr 45px}.utilisation-track{grid-column:2/4}.utilisation-list article>span:last-child{display:none}}
@media print{body{background:#fff;color:#111}.sidebar,.topbar,.heading-actions,.report-filter .button{display:none!important}.app-shell{display:block}.page-content{padding:10px;max-width:none}.panel,.report-kpis article{background:#fff;color:#111;box-shadow:none;border-color:#bbb}.report-filter{background:#fff}.report-filter input{background:#fff;color:#111}.report-grid{grid-template-columns:2fr 1fr}.report-kpis{grid-template-columns:repeat(4,1fr)}.utilisation-driver small,.report-kpis small,.panel-head p,.table-subtitle,.report-footer{color:#555}.report-table{break-inside:avoid}.assignment-status,.availability-type{border-color:#888;color:#111;background:#eee}}

/* Release 0.7 alerts and notifications */
.notification-button{display:inline-grid}.notification-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.notification-kpis article{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#0c192c,#081321)}.notification-kpis strong,.notification-kpis small{display:block}.notification-kpis strong{font-size:26px}.notification-kpis small{color:var(--muted)}.notice-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#12335c;color:#60aaff}.notice-symbol.unread{background:#10392c;color:#5ee59c;animation:pulse 1.8s infinite}.notice-symbol.document{background:#3c2b10;color:#ffca68}.notice-symbol.critical{background:#461a23;color:#ff7e8e}.notification-filters{display:flex;gap:5px;overflow:auto;margin-bottom:15px;border-bottom:1px solid var(--line)}.notification-filters a{padding:11px 15px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.notification-filters a.active{color:#fff;border-color:#2f86ff}.notification-feed{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:17px 18px;border:1px solid var(--line);border-left:3px solid #397bc3;border-radius:15px;background:linear-gradient(120deg,#0c1a2d,#091421);transition:.22s}.notification-card:hover{transform:translateY(-2px);border-color:#347bc1}.notification-card.is-unread{background:linear-gradient(120deg,#0e2440,#0a1728);box-shadow:0 10px 35px #005eff12}.notification-card.severity-warning{border-left-color:#efa92e}.notification-card.severity-critical{border-left-color:#ff5367}.notification-card.severity-success{border-left-color:#2dd280}.notification-category{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#122e52;color:#69adff;font-size:20px}.severity-warning .notification-category{background:#3b2a10;color:#ffc45d}.severity-critical .notification-category{background:#421820;color:#ff8090}.severity-success .notification-category{background:#10382a;color:#60e49c}.notification-copy>div{display:flex;gap:10px;align-items:center}.notification-copy>div span{color:#58a6ff;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.notification-copy time{color:var(--muted);font-size:9px}.notification-copy h3{margin:5px 0;font-size:15px}.notification-copy p{margin:0;color:#a9bad0;font-size:11px}.notification-actions{display:flex;align-items:center;gap:8px}.notice-read{width:36px;height:36px;border-radius:10px;border:1px solid #27684e;background:#103428;color:#61e6a0;cursor:pointer}.read-label{color:var(--muted);font-size:9px}.notification-empty{text-align:center;padding:55px}.notification-empty>span{width:54px;height:54px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#123c2e;color:#65e6a3;font-size:22px}.notification-empty h3{margin:12px 0 4px}.notification-empty p{color:var(--muted)}
@media(max-width:900px){.notification-kpis{grid-template-columns:1fr 1fr}}@media(max-width:650px){.notification-kpis{grid-template-columns:1fr}.notification-card{grid-template-columns:auto 1fr}.notification-actions{grid-column:2;justify-content:flex-start}.notification-copy>div{flex-wrap:wrap}}

/* Release 0.8 administration and security */
.admin-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:17px}.admin-tabs a{padding:12px 16px;color:var(--muted);border-bottom:2px solid transparent}.admin-tabs a.active{color:#fff;border-color:#2d84ff}.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px}.admin-kpis article{padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#0d1b2f,#091321)}.admin-kpis strong,.admin-kpis small{display:block}.admin-kpis strong{font-size:27px}.admin-kpis small{color:var(--muted)}.role-badge{display:inline-block;padding:5px 8px;border:1px solid #275c8d;border-radius:8px;background:#102e50;color:#6eb1ff;font-size:9px}.role-super_admin{background:#38204d;border-color:#68418b;color:#c99cff}.role-transport_manager{background:#123a2c;border-color:#25694e;color:#68e3a2}.role-management_viewer{background:#342c15;border-color:#6d5a22;color:#e8ca6f}.temporary-password{display:flex;align-items:center;gap:15px;padding:18px;margin-bottom:17px;border-color:#6e521f;background:linear-gradient(120deg,#31230e,#101824)}.temporary-password>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#5c3f0e;color:#ffd06f;font-weight:900}.temporary-password>div{flex:1}.temporary-password small,.temporary-password h3,.temporary-password p{display:block;margin:0}.temporary-password small{color:#ffc85e;text-transform:uppercase;font-size:8px}.temporary-password h3{margin:3px 0}.temporary-password p{color:var(--muted);font-size:9px}.temporary-password code{display:inline-block;margin-top:9px;padding:7px 11px;border:1px dashed #8a6b31;border-radius:8px;background:#0b111b;color:#fff;font-size:15px;letter-spacing:.08em}.admin-audit-filter{padding:13px;border:1px solid var(--line);border-radius:14px;background:#091525}.audit-action{display:inline-block;padding:5px 8px;border-radius:7px;background:#102e50;color:#73b4ff;font-size:9px}.security-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(300px,.65fr);gap:17px}.security-card form{display:grid;gap:14px;padding:20px}.security-card label{display:grid;gap:6px;color:var(--muted);font-size:10px}.security-card input{height:43px;border:1px solid var(--line);border-radius:10px;background:#081522;color:#fff;padding:0 12px}.password-rules{display:grid;gap:5px;padding:13px;border:1px solid #284261;border-radius:11px;background:#091727}.password-rules span{color:var(--muted);font-size:9px}.password-rules span:before{content:"✓";color:#55dfa0;margin-right:7px}.security-guidance{padding:28px}.security-shield{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#123a2c;color:#63e6a2;font-size:27px}.security-guidance h3{font-size:20px}.security-guidance p,.security-guidance li{color:#a8b9ce;line-height:1.7}.security-guidance ul{padding-left:18px}.split-admin-actions{display:grid;grid-template-columns:auto 1fr auto auto}
@media(max-width:850px){.admin-kpis{grid-template-columns:1fr 1fr}.security-grid{grid-template-columns:1fr}}@media(max-width:560px){.admin-kpis{grid-template-columns:1fr}.temporary-password{align-items:flex-start;flex-wrap:wrap}.temporary-password>div{min-width:calc(100% - 65px)}.split-admin-actions{display:flex;flex-wrap:wrap}}

/* Release 0.9 advanced schedule views */
.schedule-command-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;margin-bottom:12px}.schedule-navigation{display:flex;align-items:center;gap:8px}.schedule-navigation form{display:flex}.schedule-navigation input{height:41px;border:1px solid var(--line);border-radius:10px;background:#081522;color:#fff;padding:0 11px}.view-switch a{color:var(--muted);padding:8px 18px;border-radius:8px}.view-switch a.active{background:#164d9a;color:#fff}.schedule-result-count{margin-left:auto;color:var(--muted);font-size:10px}.schedule-result-count b{color:#62adff}.schedule-shell .schedule-head{grid-template-columns:292px repeat(var(--columns),minmax(var(--cell-width),1fr));min-width:calc(292px + var(--timeline-width))}.schedule-shell .schedule-row{grid-template-columns:292px minmax(var(--timeline-width),1fr);min-width:calc(292px + var(--timeline-width))}.schedule-shell .timeline-grid{grid-template-columns:repeat(var(--columns),1fr)}.date-head.weekend,.timeline-cell.weekend{background:#12182a}.timeline-cell.today-cell{background:#0b2b4c66}.schedule-month .date-head{padding:10px 4px}.schedule-month .date-head strong{font-size:12px}.schedule-month .date-head span{font-size:8px}.schedule-month .assignment-pill,.schedule-month .schedule-block{font-size:9px}.schedule-month .assignment-pill{margin:0 2px}.schedule-month .resize-handle{width:15px}.schedule-day .assignment-pill,.schedule-day .schedule-block,.schedule-day .availability-band{max-width:calc(100% - 16px);margin-left:8px}.schedule-day .assignment-pill{justify-content:center}.schedule-day .assignment-copy{flex:0 auto}.schedule-day .assignment-copy small{max-width:220px}
@media(max-width:760px){.schedule-command-bar{align-items:flex-start;gap:10px;flex-direction:column}.schedule-navigation{flex-wrap:wrap}.view-switch{margin:0}.schedule-result-count{width:100%;margin:0}.schedule-shell .schedule-head{grid-template-columns:220px repeat(var(--columns),minmax(var(--cell-width),1fr));min-width:calc(220px + var(--timeline-width))}.schedule-shell .schedule-row{grid-template-columns:220px minmax(var(--timeline-width),1fr);min-width:calc(220px + var(--timeline-width))}}

/* Release 1.0 production launch */
.launch-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:24px;margin-bottom:17px;background:radial-gradient(circle at 85% 15%,#126e4938,transparent 28%),linear-gradient(130deg,#0d2034,#091422)}.launch-hero.attention{background:radial-gradient(circle at 85% 15%,#8a5d1838,transparent 28%),linear-gradient(130deg,#251d10,#091422);border-color:#6f5221}.launch-score{width:105px;height:105px;display:grid;place-items:center;align-content:center;border-radius:50%;border:5px solid #2fd087;background:#0c2e24;box-shadow:0 0 35px #1ccb7b20}.attention .launch-score{border-color:#e4a52f;background:#392a10}.launch-score strong{font-size:29px}.launch-score strong span{font-size:14px;color:var(--muted)}.launch-score small{color:var(--muted);font-size:8px}.launch-hero h2{margin:6px 0}.launch-hero p{color:var(--muted);margin:0}.launch-state{font-size:38px;color:#55e49b}.attention .launch-state{color:#ffc45d}.system-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.65fr);gap:17px}.system-side{display:grid;gap:17px}.health-list{padding:6px 20px 16px}.health-list article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #172842}.health-list article>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#123a2c;color:#63e4a0}.health-list article.failed>span{background:#441b22;color:#ff8492}.health-list strong,.health-list small{display:block}.health-list small{color:var(--muted);font-size:9px}.health-list b{font-size:9px;color:#61df9d}.health-list .failed b{color:#ff8a97}.backup-card,.launch-checklist{padding:22px}.backup-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:14px;background:#12345c;color:#68aeff;font-size:23px}.backup-card p{color:#a9bbd0;line-height:1.6}.backup-card dl{margin:15px 0}.backup-card dl>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0}.backup-card dt{color:var(--muted)}.backup-card dd{margin:0;text-align:right}.backup-warning{display:block;text-align:center;color:#e7b55d;margin-top:9px}.launch-checklist ol{padding-left:19px}.launch-checklist li{color:#a9bad0;padding:6px 0;line-height:1.4}
@media(max-width:950px){.system-grid{grid-template-columns:1fr}}@media(max-width:620px){.launch-hero{grid-template-columns:1fr}.launch-state{position:absolute;right:35px}.launch-score{width:86px;height:86px}.admin-tabs{overflow:auto}.admin-tabs a{white-space:nowrap}}

/* Release 1.1 Excel import centre */
.import-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.7fr);gap:17px;margin-bottom:17px}.import-upload form{display:grid;gap:15px;padding:20px}.import-upload label{display:grid;gap:7px;color:var(--muted);font-size:10px}.import-upload label small{line-height:1.5}.import-upload select,.import-upload input:not([type=file]){height:43px;border:1px solid var(--line);border-radius:10px;background:#081522;color:#fff;padding:0 12px}.import-drop{min-height:145px;place-items:center;align-content:center;border:1px dashed #326a9f;border-radius:14px;background:#0a1d32;cursor:pointer;text-align:center}.import-drop input{position:absolute;opacity:0}.import-drop>span{font-size:30px;color:#62adff}.import-drop strong{color:#fff}.import-guide ol{list-style:none;padding:9px 20px;margin:0}.import-guide li{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #172842}.import-guide li>span{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#12365f;color:#6cafef;font-weight:800}.import-guide li strong,.import-guide li small{display:block}.import-guide li small{color:var(--muted);margin-top:3px}.legacy-note{margin:9px 20px 20px;padding:13px;border:1px solid #68511f;border-radius:11px;background:#2d230f}.legacy-note p{color:#c9b683;font-size:10px;line-height:1.6;margin-bottom:0}.batch-summary{display:flex;align-items:center;justify-content:space-between;padding:20px;margin-bottom:14px}.batch-summary h2{margin:6px 0}.batch-summary p{color:var(--muted);margin:0}.batch-status{display:inline-block;padding:6px 9px;border:1px solid #2d648e;border-radius:8px;background:#102f50;color:#70b2ff;font-size:9px;text-transform:uppercase}.status-committed{background:#123a2b;border-color:#276b4f;color:#68e3a2}.status-rolled_back,.status-failed{background:#421b22;border-color:#7c323e;color:#ff929f}.import-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.import-kpis article{padding:16px;border:1px solid var(--line);border-radius:14px;background:#0b182a}.import-kpis strong,.import-kpis small{display:block}.import-kpis strong{font-size:27px}.import-kpis small{color:var(--muted)}.import-kpis .valid{border-color:#27634b}.import-kpis .valid strong{color:#65e19f}.import-kpis .invalid{border-color:#773441}.import-kpis .invalid strong{color:#ff8392}.import-kpis .duplicate{border-color:#73551f}.import-kpis .duplicate strong{color:#ffc45e}.validation-badge{display:inline-block;padding:5px 8px;border-radius:8px;font-size:9px}.validation-valid{background:#123b2c;color:#64e2a0}.validation-invalid{background:#431b23;color:#ff8c99}.validation-duplicate{background:#3d2d10;color:#ffc867}.import-preview{margin-bottom:17px}.batch-history{margin-top:17px}
@media(max-width:950px){.import-layout{grid-template-columns:1fr}}@media(max-width:620px){.import-kpis{grid-template-columns:1fr 1fr}.batch-summary{align-items:flex-start;gap:15px;flex-direction:column}.import-preview .panel-head{align-items:flex-start;gap:13px;flex-direction:column}}

/* Sand + Terracotta approved interface theme */
:root{--bg:#f5efe5;--panel:#fffdf9ee;--panel-solid:#fffdf9;--line:#e4d8c8;--text:#2f2923;--muted:#7f7468;--blue:#b84321;--cyan:#277f7b;--green:#66843a;--purple:#8d6b92;--amber:#d18b32;--red:#c95245;--radius:18px;--shadow:0 15px 42px #72583b16;color-scheme:light}
html,body{background:radial-gradient(circle at 86% 6%,#efcba738 0,transparent 26%),radial-gradient(circle at 4% 96%,#a8b67f24 0,transparent 25%),var(--bg);color:var(--text)}
.sidebar{border-right-color:#e2d5c4;background:linear-gradient(180deg,#fffdf9f5,#f8efe3f2);box-shadow:10px 0 38px #60492c0a}
.brand-mark{background:linear-gradient(135deg,#c65028,#a8331b);box-shadow:0 10px 25px #b5422330;color:#fff}
.brand small,.topbar p,.user-chip small{color:var(--muted)}
.sidebar nav a{color:#5f574f}
.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:linear-gradient(135deg,#c74b24,#ab351b);border-color:#cf5a35;box-shadow:0 10px 24px #ae3d2228;transform:translateX(2px)}
.sidebar-foot{border-top-color:var(--line);color:var(--muted)}
.workspace{background:transparent}
.topbar{border-bottom-color:#e5d9ca;background:#fffaf2d9;box-shadow:0 8px 25px #6a503111}
.system-live{border-color:#b8c998;color:#55752c;background:#f2f7e9}
.system-live i,.live-dot,.pulse{background:#718f41;box-shadow:0 0 10px #718f4180}
.icon-button{border-color:var(--line);background:#fffdf9;color:#5d5044;box-shadow:0 5px 16px #6c513514}
.icon-button:hover{border-color:#c45431;color:#ae391d}
.user-chip>span{background:linear-gradient(135deg,#d78b55,#a94627);color:#fff}
.eyebrow{color:#b84321}
.button.primary{background:linear-gradient(135deg,#c64c26,#ab351b);border-color:#c7512e;color:#fff;box-shadow:0 10px 25px #b33d2229}
.button.primary:hover{box-shadow:0 14px 32px #a83d2638}
.button.secondary{background:#fffaf3;color:#4c433b}
.panel,.driver-card,.schedule-shell{border-color:var(--line);background:linear-gradient(145deg,#fffefb,#fffaf3);box-shadow:var(--shadow)}
.kpi-card,.report-kpis article,.notification-kpis article,.admin-kpis article,.import-kpis article{border-color:var(--line);background:linear-gradient(145deg,#fffefb,#fbf3e8);box-shadow:0 10px 28px #73583b12}
.kpi-card.green{color:#66843a;border-color:#cbd8b5}.kpi-card.blue{color:#b84321;border-color:#e2b6a4}.kpi-card.purple{color:#8d6b92;border-color:#d8c4da}.kpi-card.cyan{color:#277f7b;border-color:#b8d6d2}
.kpi-top small{color:#685e54}.kpi-card>strong{color:#302922}
.panel-head,.driver-workload,.activity-list article,.driver-card dl>div,.card-actions,th,td,.schedule-row,.profile-stat,.expiry-list article,.utilisation-list article,.health-list article{border-color:#eadfd1}
.panel-head a,.card-actions a,.back-link{color:#b84321}
.avatar{border-color:#d5a184;background:#c36d49;color:#fff}
.tone-1{background:#9b6c73}.tone-2{background:#b16a43}.tone-3{background:#6f8764}
.status{border-color:#c6d5ac;background:#eff5e6;color:#55752c}
.status-on_tour,.status-assigned{color:#a93b20;background:#f9e8df;border-color:#e6b8a5}
.status-on_leave{color:#79527e;background:#f3eaf4;border-color:#d6bfd8}
.status-returning_today{color:#236e69;background:#e6f3f1;border-color:#afd2cf}
.status-unavailable,.status-maintenance{color:#9a641d;background:#fbf0da;border-color:#e7c99b}
.workload-bar,.utilisation-track{background:#eee5da}.workload-bar i,.utilisation-track i{background:linear-gradient(90deg,#b84321,#d78a43)}
.activity-icon{color:#5c7c32;background:#eef4e4}
.toolbar select,.toolbar input,.form-grid input,.form-grid select,.form-grid textarea,.login-card input,.report-filter input,.security-card input,.schedule-navigation input,.import-upload select,.import-upload input:not([type=file]),.confirm-modal textarea{border-color:var(--line);background:#fffdf9;color:#332d27}
.toolbar select:focus,.toolbar input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.login-card input:focus{border-color:#c65331;box-shadow:0 0 0 3px #bf4a2420}
.view-switch{border-color:var(--line);background:#f8f0e5}.view-switch button.active,.view-switch a.active{background:#b84321;color:#fff}
.chip{background:#f7e4db;color:#aa3c20}
.table-action{border-color:#ddb6a3;background:#fbede5;color:#a63b20}
.schedule-head{background:#f8efe3;border-color:var(--line)}
.driver-column-title,.date-head,.driver-identity{border-color:var(--line)}
.driver-identity{background:#fffaf3}.date-head.today{color:#a83a1e;background:#f7e1d5}
.schedule-row:hover{background:#fbf3e9}.timeline-cell{border-color:#e8dccc}.timeline-cell.today-cell{background:#f6dfd066}.date-head.weekend,.timeline-cell.weekend{background:#f2e9de}
.assignment-pill{border-color:#c55733;background:linear-gradient(90deg,#a9361c,#c85029,#b03c20);box-shadow:0 8px 20px #ad3b2324}
.availability-band{border-color:#b8ca9b;background:#eef4e3;color:#57742f}.availability-band.status-on_leave{background:#f2e9f3;border-color:#d2bbd5;color:#77517b}.availability-band.status-returning_today{background:#e7f3f1;border-color:#add0cc;color:#256f6a}
.modal{border-color:#decfbc;background:#fffaf3;color:#332c26;box-shadow:0 30px 90px #50371f45}.modal::backdrop{background:#4b392d78}.modal-head{border-color:var(--line)}.modal-head>button{color:#7d6e61}.form-grid label,.login-card label{color:#695e53}
.auto-vehicle,.dedicated-vehicle-callout{border-color:#d9b29c;background:#f9e9df}.auto-vehicle i,.dedicated-vehicle-callout>i{color:#607f34}
.toast{border-color:#b8ca9b;background:#eff5e7;color:#3f5524;box-shadow:0 18px 50px #5c45282e}.toast>span{background:#718f41;color:#fff}.toast button{color:#75695e}.toast-error{background:#fae8e4;border-color:#dda59c}.toast-error>span{background:#c95245}
.login-visual{background:radial-gradient(circle at 78% 25%,#d89a6738,transparent 35%),linear-gradient(135deg,#b64220,#8f2d18);color:#fff}.login-copy h1 em{color:#ffd3a5;text-shadow:none}.login-copy p{color:#f5ded0}.orb-one{background:#f2b368}.orb-two{background:#899b56}.glass-stat{border-color:#f1c5a4;background:#fff7ed25}.glass-stat span{color:#f5dfcf}.login-panel{background:#f5efe5}.login-card{color:#332c26}.login-card>p,.security-note{color:var(--muted)}
.form-alert{background:#f9e4df;border-color:#d99a8d;color:#9e3221}
.profile-photo{border-color:#c46a47;box-shadow:0 12px 30px #9c3b2226}.driver-profile-hero,.report-kpis article,.launch-hero{background:radial-gradient(circle at 85% 20%,#d7956350,transparent 30%),linear-gradient(145deg,#fffdf9,#f7eadc)}
.report-icon,.notification-category,.notice-symbol,.backup-icon{background:#f7e4da;color:#b84321}.report-icon.green,.notice-symbol.unread,.security-shield,.health-list article>span{background:#edf4e3;color:#66843a}.report-icon.purple{background:#f1e8f2;color:#8d6b92}.report-icon.cyan{background:#e4f1ef;color:#277f7b}
.notification-filters,.admin-tabs{border-color:var(--line)}.notification-filters a.active,.admin-tabs a.active{color:#a83a1e;border-color:#b84321}
.notification-card{border-color:var(--line);border-left-color:#b84321;background:linear-gradient(120deg,#fffdf9,#fbf3e8)}.notification-card.is-unread{background:linear-gradient(120deg,#fff8f0,#f7e9dc);box-shadow:0 10px 30px #9e3c2010}.notification-card:hover{border-color:#d09a7e}.notification-copy>div span{color:#b84321}.notification-copy p,.security-guidance p,.security-guidance li,.launch-checklist li,.backup-card p{color:#766a5f}
.admin-audit-filter,.password-rules{border-color:var(--line);background:#f8f0e5}.role-badge,.audit-action{border-color:#dfb09a;background:#f8e6dd;color:#ac3e21}.role-transport_manager{background:#edf4e4;border-color:#c4d5a8;color:#5c7b32}.role-super_admin{background:#f1e8f2;border-color:#d4bdd7;color:#7c5780}.role-management_viewer{background:#f7eedb;border-color:#dec79c;color:#8b692b}
.temporary-password{border-color:#ddc18f;background:linear-gradient(120deg,#fbf0d9,#fffaf3)}.temporary-password>span{background:#e9c985;color:#754f17}.temporary-password code{background:#fffdf9;color:#3c332a}
.launch-hero.attention{background:radial-gradient(circle at 85% 15%,#d19a4135,transparent 28%),linear-gradient(130deg,#fbefd7,#fffaf2);border-color:#d9bd86}.launch-score{border-color:#78954b;background:#eef4e5}.attention .launch-score{border-color:#d49a38;background:#fbefd7}
.import-drop{border-color:#d3a48b;background:#faece3}.import-drop>span{color:#b84321}.import-drop strong{color:#332c26}.legacy-note{border-color:#dfc698;background:#faf0dc}.legacy-note p{color:#766347}
@media print{.panel,.report-kpis article{background:#fff;color:#111}.report-filter input{background:#fff;color:#111}}

/* Release 2.0.7 complete page-level light-theme coverage */
.assignment-kpi,
.availability-kpis article,
.profile-metrics>div{
  border-color:#e2d5c5;
  background:linear-gradient(145deg,#fffefb,#fbf3e8);
  color:#302922;
  box-shadow:0 10px 28px #72583b14;
}
.assignment-kpi>span{background:#f6e4da;color:#b84321}
.assignment-kpi.live{border-color:#c4d6a8}
.assignment-kpi.live>span{background:#edf4e3;color:#66843a}
.assignment-kpi.tentative>span{background:#faeed7;color:#a66b20}
.assignment-kpi.draft>span{background:#f1e8f2;color:#835c87}
.assignment-toolbar{border-color:#dfd2c2;background:#eee4d8;color:#332c26;box-shadow:0 8px 24px #6b503015}
.assignment-toolbar input,.assignment-toolbar select{background:#fffdf9;color:#332c26;border-color:#dccfbe}
.assignment-card{border-color:#e2d5c5;border-left-color:#b84321;background:linear-gradient(120deg,#fffefb,#fbf3e8);color:#332c26;box-shadow:0 12px 32px #6a4e2e16}
.assignment-card:hover{border-color:#d5a68e;box-shadow:0 18px 40px #65482a22}
.status-card-tentative{border-left-color:#d49736}.status-card-draft{border-left-color:#8d6b92}.status-card-completed{border-left-color:#718f41}.status-card-cancelled{border-left-color:#c95245;opacity:.7}
.assignment-date{border-color:#e3d6c6}.assignment-date span,.assignment-number{color:#b84321}.assignment-date i{background:#d6b39e}
.assignment-status{border-color:#c5d5aa;background:#edf4e4;color:#58782f}
.assignment-status.state-tentative{border-color:#e2c48f;background:#fbefd8;color:#97641f}
.assignment-status.state-cancelled{border-color:#dda59d;background:#f9e6e2;color:#a23d32}
.assignment-route i{color:#66843a}.assignment-route b{background:#c9d3ad}
.assignment-driver .avatar{background:#c9734d;border-color:#dda58b;color:#fff}
.assignment-meta strong,.assignment-driver strong,.assignment-title h3,.assignment-date strong{color:#332c26}
.danger-link{color:#a83c30;border-color:#dfaca4;background:#f9e7e3}
.danger-link:hover{border-color:#c95245;background:#f3d4ce}

.availability-icon{background:#f1e8f2;color:#805b84}
.availability-icon.leave{background:#f8e5dc;color:#b84321}
.availability-icon.rest{background:#f9edd8;color:#a66c23}
.availability-icon.training{background:#e5f2f0;color:#277f7b}
.availability-icon.upcoming,.availability-icon.available{background:#edf4e4;color:#66843a}
.tabs button.active{color:#b84321;border-color:#b84321}
.availability-type{background:#f1e8f2;color:#7d5881;border-color:#d5bfd7}
.weekday-picker label span{border-color:#ddcfbe;background:#fffaf3;color:#665a50}
.weekday-picker label input:checked+span{background:#b84321;border-color:#b84321;color:#fff}
.schedule-block{border-color:#d0b6d3;background:linear-gradient(90deg,#f1e8f2,#eadbea);color:#755079;box-shadow:0 8px 18px #76527c18}

.profile-initials{background:linear-gradient(135deg,#c56c47,#a83a20);color:#fff}
.profile-metrics>div{background:#fffaf3}
.detail-list>div{border-color:#eadfd1}
.notes-panel>p{color:#75695e}
.profile-drawer{background:#fffaf3f5;border-left-color:#ddcfbe;box-shadow:-25px 0 70px #5c412832;color:#332c26}
.drawer-person,.drawer-actions{border-color:#eadfd1}

.table-panel table{color:#332c26}
.table-panel thead{background:#f8efe4}
.table-panel tbody tr:hover{background:#fbf2e7}
.table-panel strong{color:#332c26}
.empty-assignment{background:#fffaf3;color:#655a50}

.resize-handle{background:#ffffff18}.resize-handle:hover{background:#ffffff30}
.override-control{border-color:#dec394;background:#fbefd9;color:#44382e}
.override-badge{color:#98631e;background:#faeed6;border-color:#dfc18c}
.confirm-modal textarea{background:#fffdf9;color:#332c26}
.button.danger{background:#f8e4e0;border-color:#dda198;color:#a73d32}.button.danger:hover{background:#f1d2cc;border-color:#c95245}
.danger-text{color:#b64135!important}

select option{background:#fffdf9;color:#332c26}
input::placeholder,textarea::placeholder{color:#a29588;opacity:1}
button.driver-identity{color:#332c26;border-top:0;border-bottom:0}
.driver-identity small{color:#756a60}.driver-identity div>span{color:#948678}
.schedule-shell{color:#332c26}
.schedule-head{color:#332c26}

@media(max-width:760px){
  .sidebar{background:#fffaf3}
  .assignment-card{background:#fffdf9}
}

/* Release 2.6.0 time-aware allocations */
.timeline-grid{grid-template-rows:repeat(var(--lanes,1),minmax(40px,1fr));align-content:center;min-height:calc(var(--lanes,1) * 42px + 16px)}
.assignment-pill{grid-row:var(--lane,1);margin-left:4px;margin-right:4px;height:36px;align-self:center}
.assignment-copy{min-width:0;display:grid}.assignment-copy strong,.assignment-copy small{overflow:hidden;text-overflow:ellipsis}.assignment-copy small{font-size:8px;opacity:.9}
.allocation-check{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #dfd1c0;border-radius:12px;background:#fffdf9;color:#74665a}.allocation-check>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#efe4d7}.allocation-check strong,.allocation-check small{display:block}.allocation-check small{margin-top:4px;color:var(--muted);font-size:9px}.allocation-check.checking{border-color:#d5aa65;background:#fff7e7}.allocation-check.available{border-color:#b7cfa0;background:#f0f6e9;color:#50742d}.allocation-check.available>span{background:#5d8b38;color:#fff}.allocation-check.conflict{border-color:#dc8f88;background:#fbecea;color:#a73531}.allocation-check.conflict>span{background:#c64b46;color:#fff}
@media(max-width:700px){.allocation-time-grid{grid-template-columns:1fr 1fr}.allocation-time-grid>label:nth-of-type(1),.allocation-time-grid>label:nth-of-type(2),.allocation-time-grid>label:nth-of-type(7),.allocation-time-grid>label:nth-of-type(8){grid-column:1/-1}.allocation-check{align-items:flex-start}.assignment-pill{min-width:42px}.modal.wide-modal{max-height:calc(100dvh - 12px);overflow:auto}}

/* Release 3.0 secure workspaces and reports */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 80% 15%,#e7cbb5,transparent 28%),#f2eadf}.auth-card{width:min(520px,100%);padding:30px;border:1px solid #ddcfbd;border-radius:20px;background:#fffaf3;box-shadow:0 30px 90px #5b40292b}.auth-brand{display:flex;align-items:center;gap:13px}.auth-brand img{width:58px;height:50px;object-fit:contain}.auth-brand strong,.auth-brand small{display:block}.auth-brand small{color:var(--muted);margin-top:3px}.auth-card h1{margin:24px 0 7px;font-size:30px}.auth-card>p{color:var(--muted);line-height:1.55}.auth-card form{display:grid;gap:13px;margin-top:20px}.auth-card label,.admin-form label,.report-filters label{display:grid;gap:7px;color:#695e53;font-size:11px}.auth-card input,.admin-form input,.admin-form select,.report-filters input,.report-filters select,.workspace-switcher select{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fffdf9;color:#332c26}.setup-error{padding:11px 13px;border:1px solid #dc8f88;border-radius:10px;background:#fbecea;color:#a73531}.workspace-switcher{min-width:180px}.workspace-admin-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:16px}.transfer-panel{align-self:start}.admin-form{display:grid;gap:13px;padding:18px}.safe-note{margin:0;padding:11px;border-radius:10px;background:#edf4e4;color:#58782f;font-size:10px;line-height:1.5}.transfer-history{margin-top:16px}.report-filters{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr)) auto;align-items:end;gap:13px;padding:16px;margin-bottom:16px}.report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:16px}.report-kpis article{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fffaf3}.report-kpis strong,.report-kpis small{display:block}.report-kpis strong{font-size:27px;color:#b84321}.report-kpis small{margin-top:4px;color:var(--muted)}
@media(max-width:900px){.workspace-admin-grid{grid-template-columns:1fr}.report-filters{grid-template-columns:1fr 1fr}.workspace-switcher{display:none}}
.row-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.row-actions form{margin:0}.button.compact{min-height:32px;padding:6px 10px;font-size:10px}.workspace-list{margin-top:16px}
.purge-button{border:1px solid #9e1f18;background:#a92a20;color:#fff}.purge-button:hover{background:#861b15;box-shadow:0 8px 20px #861b1530}
.card-actions form{display:inline;margin:0}.card-actions form button{border:0;background:transparent;padding:0;cursor:pointer;font:inherit}
.directory-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(145px,auto)) auto;gap:12px;align-items:center}.directory-toolbar select{min-height:52px;padding:0 38px 0 14px;border:1px solid var(--line);border-radius:12px;background:#fffdf9;color:#443a31}.directory-count{justify-self:end;color:var(--muted);font-size:11px;white-space:nowrap}.directory-count b{color:#b84321;font-size:16px}.directory-panel{overflow:visible}.directory-table tbody tr{transition:background .18s ease}.directory-table tbody tr:hover{background:#fff7ee}.directory-person{display:flex;align-items:center;gap:11px;min-width:180px}.directory-person .avatar{flex:0 0 auto}.directory-person strong,.directory-person small{display:block}.directory-person small,.muted-value{margin-top:4px;color:var(--muted);font-size:10px}.directory-table .chip{display:inline-block;margin:2px}.row-menu{position:relative;width:max-content}.row-menu summary{display:grid;place-items:center;width:38px;height:34px;border:1px solid var(--line);border-radius:10px;background:#fffaf3;color:#6f6155;font-weight:900;letter-spacing:2px;cursor:pointer;list-style:none}.row-menu summary::-webkit-details-marker{display:none}.row-menu>div{position:absolute;right:0;top:40px;z-index:30;display:grid;min-width:165px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#fffdf9;box-shadow:0 18px 45px #4b34272b}.row-menu a,.row-menu button{display:block;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:#4e4238;text-align:left;font-size:11px;cursor:pointer}.row-menu a:hover,.row-menu button:hover{background:#f6e9dc}.row-menu form{margin:0}
@media(max-width:1050px){.directory-toolbar{grid-template-columns:1fr 1fr 1fr}.directory-toolbar .search{grid-column:1/-1}.directory-count{justify-self:start}}
@media(max-width:700px){.directory-toolbar{grid-template-columns:1fr 1fr}.directory-toolbar .search,.directory-toolbar [data-driver-sort],.directory-toolbar [data-vehicle-sort],.directory-count{grid-column:1/-1}.directory-panel .table-wrap{overflow:visible}.directory-table,.directory-table tbody{display:block}.directory-table thead{display:none}.directory-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.directory-table tbody tr[hidden]{display:none!important}.directory-table td{display:block;padding:0!important;border:0!important}.directory-table td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.directory-table td:first-child,.directory-table td:last-child{grid-column:1/-1}.directory-table td:last-child{padding-top:9px!important;border-top:1px solid var(--line)!important}.row-menu{margin-left:auto}.row-menu>div{top:auto;right:0;bottom:40px}}
@media(max-width:620px){.auth-card{padding:22px}.report-filters,.report-kpis{grid-template-columns:1fr}.topbar-actions>form:last-child{display:none}}
@media print{.sidebar,.topbar,.mobile-bottom-nav,.section-heading .heading-actions,.report-filters{display:none!important}.app-shell{display:block}.page-content{padding:0}.panel{box-shadow:none}.report-kpis{grid-template-columns:repeat(3,1fr)}}
.report-kpis{grid-template-columns:repeat(4,1fr)}.report-secondary{margin-top:16px}@media(max-width:760px){.report-kpis{grid-template-columns:1fr 1fr}}

/* Release 2.1 simplified allocation workspace */
.department-chip{display:flex;align-items:center;gap:10px;padding:7px 11px;border:1px solid #e0d2c1;border-radius:13px;background:#fffdf9}
.department-chip>span{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#b84321;color:#fff;font-weight:850}
.department-chip strong,.department-chip small{display:block}.department-chip small{margin-top:2px;color:var(--muted);font-size:10px}
.language-picker{display:grid;gap:10px}.language-entry{display:grid;grid-template-columns:1fr auto;gap:8px}.language-entry .button{min-height:42px}.language-tags{display:flex;flex-wrap:wrap;gap:7px;min-height:10px}.language-tag{display:inline-flex;align-items:center;gap:7px;padding:6px 8px 6px 11px;border:1px solid #dfc0ae;border-radius:999px;background:#f7e4db;color:#8f351e;font-size:11px;font-weight:750}.language-tag button{display:grid;place-items:center;width:19px;height:19px;padding:0;border:0;border-radius:50%;background:#b84321;color:#fff;cursor:pointer;line-height:1}.language-tag button:hover{background:#8d2d16;transform:scale(1.08)}
.duplicate-notice{display:grid;gap:4px;margin-bottom:14px;padding:12px 14px;border:1px solid #d6a64d;border-radius:11px;background:#fff5da;color:#75520e}.duplicate-notice.blocking{border-color:#cf6d62;background:#fae9e6;color:#9c3028}.duplicate-notice span{font-size:11px;line-height:1.5}.duplicate-notice[hidden]{display:none}.button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.schedule-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-bottom:15px}
.schedule-summary>span{display:flex;align-items:center;gap:8px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#fffdf9;color:#71665b;box-shadow:0 7px 20px #694c2e0d}
.schedule-summary strong{font-size:20px;color:#332c26;margin-right:2px}.schedule-summary i{width:10px;height:10px;border-radius:50%;background:#aaa}
.schedule-summary i.free{background:#718f41}.schedule-summary i.trip{background:#b84321}.schedule-summary i.leave{background:#8d6b92}.schedule-summary i.off{background:#8a8178}
.simple-toolbar{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fffaf3;margin-bottom:14px}
.simple-toolbar .search{flex:1;max-width:520px}.simple-toolbar .schedule-result-count{margin-left:auto}
.schedule-shell .assignment-pill{background:linear-gradient(90deg,#a9361c,#c85029);border-color:#c55733}
.schedule-shell .schedule-block.block-leave{background:#f1e8f2;border-color:#d0b6d3;color:#755079}
.schedule-shell .schedule-block.block-rest_day,.schedule-shell .schedule-block.block-unavailable{background:#eee9e3;border-color:#d3cbc2;color:#6c645c}
.schedule-shell .availability-band.status-available{background:#edf4e4;border-color:#bfd09f;color:#58762f}
@media(max-width:720px){.schedule-summary{grid-template-columns:1fr 1fr}.department-chip div{display:none}}

/* Release 2.2 full-month allocation view */
.schedule-month{width:100%;overflow:hidden}
.schedule-month .schedule-head{grid-template-columns:240px repeat(var(--columns),minmax(0,1fr));min-width:0;width:100%}
.schedule-month .schedule-row{grid-template-columns:240px minmax(0,1fr);min-width:0;width:100%;min-height:72px}
.schedule-month .timeline-grid{grid-template-columns:repeat(var(--columns),minmax(0,1fr));min-width:0}
.schedule-month .driver-identity{padding:9px 11px;min-width:0}
.schedule-month .driver-identity .avatar{width:36px;height:36px;font-size:11px;flex:0 0 36px}
.schedule-month .driver-identity div{min-width:0}.schedule-month .driver-identity strong,.schedule-month .driver-identity small,.schedule-month .driver-identity div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-month .driver-column-title,.schedule-month .date-head{padding:8px 2px;min-width:0}
.schedule-month .date-head strong{font-size:10px}.schedule-month .date-head span{font-size:7px}
.schedule-month .assignment-pill,.schedule-month .schedule-block{margin:0 2px;height:36px;min-width:0;padding:0 4px}
.schedule-month .assignment-copy{display:block;min-width:0}.schedule-month .assignment-copy strong,.schedule-month .assignment-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}
.schedule-month .schedule-block{font-size:7px;line-height:1.1;text-align:center}
.status-dot.status-assigned{background:#b84321}.status-dot.status-leave{background:#8d6b92}.status-dot.status-unavailable{background:#8a8178}
.assignment-pill{cursor:pointer}.assignment-pill:hover{transform:translateY(-2px);box-shadow:0 9px 20px #9c351f32}
.timeline-cell[data-date]{cursor:cell}.timeline-cell[data-date]:hover{background:#f6e0d3}
.simple-leave-kpis{grid-template-columns:repeat(2,minmax(220px,1fr));max-width:760px}
@media(max-width:900px){.schedule-month{overflow:auto}.schedule-month .schedule-head{grid-template-columns:190px repeat(var(--columns),minmax(30px,1fr));min-width:calc(190px + (var(--columns) * 30px))}.schedule-month .schedule-row{grid-template-columns:190px minmax(calc(var(--columns) * 30px),1fr);min-width:calc(190px + (var(--columns) * 30px))}}

/* Release 2.3 smart search and driver history */
.smart-search{position:relative;flex:1;max-width:580px;z-index:12}.smart-search .search{width:100%;max-width:none}.smart-search .search input{width:100%}
.search-suggestions{position:absolute;left:0;right:0;top:calc(100% + 7px);padding:7px;border:1px solid #dfd1c0;border-radius:14px;background:#fffdf9;box-shadow:0 20px 55px #5c422938;max-height:390px;overflow:auto}
.search-suggestion{width:100%;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:10px;border:0;border-radius:10px;background:transparent;color:#332c26;text-align:left;cursor:pointer}
.search-suggestion:hover,.search-suggestion:focus{background:#f8e8de;outline:0}.search-suggestion>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#bf5b36;color:#fff;font-weight:800}
.search-suggestion strong,.search-suggestion small{display:block}.search-suggestion small{margin-top:3px;color:var(--muted);font-size:9px}.search-suggestion>i{font-style:normal;padding:5px 7px;border-radius:7px;background:#edf4e4;color:#5d7c33;font-size:9px;text-transform:capitalize}
.history-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,96vw);z-index:60;padding:22px;background:#fffaf3;color:#332c26;border-left:1px solid #ddcfbd;box-shadow:-24px 0 70px #4f392635;overflow-y:auto;transform:translateX(105%);transition:.28s cubic-bezier(.2,.8,.2,1)}
.history-drawer.open{transform:none}.history-drawer.loading{opacity:.72}.drawer-backdrop{position:fixed;inset:0;z-index:59;background:#44312655;backdrop-filter:blur(3px)}
.history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}.history-head h2{margin:5px 0 2px}.history-head p{margin:0;color:var(--muted);font-size:11px}
.history-summary{display:flex;align-items:center;gap:14px;padding:18px 0}.history-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,#c76a44,#a8381e);color:#fff;font-size:19px;font-weight:850}
.history-summary>div{display:grid;gap:5px}.history-summary strong,.history-summary small{display:block}.history-summary small{color:var(--muted)}
.history-section{padding:15px 0;border-top:1px solid var(--line)}.history-section h3{margin:0 0 10px;font-size:13px}.history-list{display:grid;gap:7px}.history-list article,.history-section>[data-history-current] article{padding:10px 12px;border:1px solid #e4d6c6;border-radius:11px;background:#fffdf9}
.history-list strong,.history-list small,.history-section>[data-history-current] strong,.history-section>[data-history-current] small{display:block}.history-list strong,.history-section>[data-history-current] strong{font-size:11px}.history-list small,.history-section>[data-history-current] small{margin-top:4px;color:var(--muted);font-size:9px}.history-empty{display:block;padding:12px;border:1px dashed #decfbe;border-radius:10px;color:var(--muted);text-align:center}
.driver-identity{cursor:pointer}.driver-identity:hover strong{color:#b84321}
@media(max-width:700px){.smart-search{max-width:none;min-width:100%}.history-drawer{padding:18px}}

/* Release 2.3.1 operational status colours */
:root{--trip-green:#2f7d4a;--trip-green-soft:#e7f3ea;--leave-red:#c64b46;--leave-red-soft:#f9e8e5}
.schedule-summary i.trip{background:var(--trip-green)}.schedule-summary i.leave{background:var(--leave-red)}
.status-dot.status-assigned{background:var(--trip-green);box-shadow:0 0 9px #2f7d4a75}.status-dot.status-leave{background:var(--leave-red);box-shadow:0 0 9px #c64b4675}
.schedule-shell .assignment-pill,.assignment-pill{border-color:#3b8b58;background:linear-gradient(90deg,#286b40,#3f8d59);box-shadow:0 7px 18px #2f704129;color:#fff}
.assignment-pill:hover{border-color:#287344;box-shadow:0 9px 23px #286b4038}
.schedule-shell .schedule-block.block-leave{border-color:#dc8f88;background:linear-gradient(90deg,#f7dfdc,#f4ceca);color:#a73531;box-shadow:0 6px 16px #b9443d16}
.status.status-on_leave,.history-status-leave---holiday{border-color:#dc8f88;background:var(--leave-red-soft);color:#a73531}
.history-status-on-trip{border-color:#9fc7aa;background:var(--trip-green-soft);color:#286b40}.history-status-free{border-color:#c5d5aa;background:#edf4e4;color:#58782f}
.search-suggestion .suggestion-status-assigned{background:var(--trip-green-soft);color:#286b40}.search-suggestion .suggestion-status-leave{background:var(--leave-red-soft);color:#a73531}

/* Release 2.4 yearly allocation overview */
.yearly-modal{width:min(1420px,calc(100% - 34px));max-height:calc(100vh - 34px);padding:0;border:1px solid #d9c9b6;border-radius:18px;background:#fffaf3;color:#332c26;box-shadow:0 35px 110px #3f2b1d55;overflow:auto}.yearly-modal::backdrop{background:#3f30275e;backdrop-filter:blur(4px)}.yearly-modal.loading{opacity:.78}
.yearly-modal-head{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:minmax(260px,.85fr) minmax(430px,1.1fr) auto;align-items:center;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line);background:#fffaf3f5;backdrop-filter:blur(14px)}
.yearly-driver{display:flex;align-items:center;gap:13px}.yearly-driver>span{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,#c96d45,#a93820);color:#fff;font-size:19px;font-weight:850}.yearly-driver h2{margin:0 0 4px}.yearly-driver small,.yearly-driver strong{display:block}.yearly-driver small{color:var(--muted)}.yearly-driver strong{margin-top:4px;font-size:10px}
.yearly-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:13px;background:#fffdf9}.yearly-kpis>span{padding:10px;text-align:center;border-right:1px solid var(--line)}.yearly-kpis>span:last-child{border-right:0}.yearly-kpis b,.yearly-kpis small{display:block}.yearly-kpis b{font-size:20px}.yearly-kpis span:nth-child(1) b,.yearly-kpis span:nth-child(2) b{color:var(--trip-green)}.yearly-kpis span:nth-child(3) b{color:var(--leave-red)}.yearly-kpis small{margin-top:3px;color:var(--muted);font-size:8px}
.yearly-year-nav{display:flex;align-items:center;gap:7px}.yearly-year-nav>strong{min-width:52px;text-align:center}
.yearly-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 22px}.yearly-title-row h3{margin:0}.yearly-title-row p{margin:4px 0 0;color:var(--muted);font-size:10px}.yearly-legend{display:flex;gap:15px}.yearly-legend span{display:flex;align-items:center;gap:6px;font-size:10px}.yearly-legend i{width:25px;height:10px;border-radius:4px;border:1px solid #dccfbe;background:#fffdf9}.yearly-legend i.trip{background:var(--trip-green);border-color:var(--trip-green)}.yearly-legend i.leave{background:var(--leave-red);border-color:var(--leave-red)}
.yearly-board{margin:0 22px;border:1px solid #dfd1c0;border-radius:13px;overflow:auto;background:#fffdf9}.yearly-grid{display:grid;grid-template-columns:106px repeat(31,minmax(25px,1fr));min-width:1030px}.yearly-grid>*{min-width:0}.yearly-grid-head{position:static;z-index:6;background:#f5eadc}.yearly-grid-head strong,.yearly-grid-head span{padding:8px 2px;border-right:1px solid #e5d8c8;text-align:center;font-size:8px}.yearly-grid-head strong{text-align:left;padding-left:12px;font-size:10px}
.yearly-month-row{position:relative;min-height:38px;border-top:1px solid #eadfd1}.yearly-month-row>strong{grid-column:1;grid-row:1;display:flex;align-items:center;padding-left:12px;border-right:1px solid #e3d5c4;font-size:10px;background:#fffaf3;z-index:2}.yearly-month-row>span{grid-row:1;border-right:1px dashed #eadfd1;background:#fffdf9}.yearly-month-row>span:nth-of-type(even){background:#fcf7f0}.yearly-month-row>span.invalid{background:#e8e1d8}
.yearly-segment{grid-row:1;align-self:center;z-index:3;height:24px;margin:0 2px;padding:0 5px;border-radius:7px;border:1px solid transparent;color:#fff;font-size:7px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yearly-segment.trip{background:linear-gradient(90deg,#2c7445,#438e5b);border-color:#397f50}.yearly-segment.leave{background:linear-gradient(90deg,#b93f3b,#d45b54);border-color:#c64b46}
.yearly-actions{position:sticky;bottom:0;z-index:7;display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid var(--line);background:#fffaf3f5;backdrop-filter:blur(12px)}
@media(max-width:1050px){.yearly-modal-head{grid-template-columns:1fr auto}.yearly-kpis{grid-column:1/-1;grid-row:2}.yearly-board{overflow:auto}}

/* Release 2.4.2 full-window yearly overview */
.yearly-modal{width:calc(100vw - 24px);max-width:none;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);margin:auto}
.yearly-modal[open]{display:flex;flex-direction:column}
.yearly-title-row{flex:0 0 auto}
.yearly-board{flex:1;min-height:0;display:flex;flex-direction:column}
.yearly-board>[data-yearly-months]{flex:1;display:grid;grid-template-rows:repeat(12,minmax(38px,1fr))}
.yearly-month-row{min-height:0}
.yearly-actions{flex:0 0 auto}
@media(max-width:700px){.yearly-modal{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);border-radius:12px}.yearly-modal-head,.yearly-title-row,.yearly-actions{padding-left:14px;padding-right:14px}.yearly-board{margin-left:14px;margin-right:14px}}

/* Release 2.5 production branding */
.brand-mark{width:48px;height:44px;padding:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.brand-mark img{display:block;width:48px;height:42px;object-fit:contain}

/* Release 2.5.3 interaction and motion layer */
@keyframes pageReveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes rowReveal{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes scheduleBarReveal{from{opacity:0;transform:scaleX(.72)}to{opacity:1;transform:scaleX(1)}}
@keyframes statusBreathe{0%,100%{transform:scale(1);opacity:.82}50%{transform:scale(1.28);opacity:1}}
@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.page-content{animation:pageReveal .42s cubic-bezier(.2,.8,.2,1) both}
.brand-mark img{animation:logoFloat 3.4s ease-in-out infinite}
.schedule-row{opacity:0;animation:rowReveal .38s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--row-index,0)*45ms)}
.assignment-pill,.schedule-block{transform-origin:left center;animation:scheduleBarReveal .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(120ms + var(--row-index,0)*35ms)}
.status-dot{animation:statusBreathe 2.2s ease-in-out infinite}
.view-switch a{position:relative;overflow:hidden;transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease}
.view-switch a:hover{transform:translateY(-1px);background:#f4e4d7;color:#a53b20}
.view-switch a.active{box-shadow:0 7px 18px #b8442424}
.schedule-command-bar,.schedule-summary>span,.smart-search,.schedule-shell{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.schedule-summary>span:hover{transform:translateY(-3px);box-shadow:0 10px 24px #66452d12}
.schedule-shell:hover{border-color:#d4bda8;box-shadow:0 22px 55px #66452d18}
.timeline-cell{transition:background .18s ease}.timeline-cell:hover{background:#f6e8dc!important;cursor:crosshair}
.driver-identity{transition:background .2s ease,transform .2s ease}.driver-identity:hover{background:#fff4e9;transform:translateX(3px)}
.button:active,.icon-button:active{transform:translateY(1px) scale(.97)!important}
.is-view-transitioning .schedule-shell,.is-view-transitioning .schedule-summary,.is-view-transitioning .toolbar{opacity:.45;transform:translateY(5px);transition:.14s ease}
@media(prefers-reduced-motion:reduce){.page-content,.brand-mark img,.schedule-row,.assignment-pill,.schedule-block,.status-dot{animation:none!important;opacity:1}.is-view-transitioning .schedule-shell,.is-view-transitioning .schedule-summary,.is-view-transitioning .toolbar{opacity:1;transform:none}}

/* Release 3.6 persistent schedule dates and driver report exports */
.schedule-shell{max-height:calc(100dvh - 104px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.schedule-shell .schedule-head{position:sticky;top:0;z-index:12;box-shadow:0 7px 16px #5d3e2318}
.schedule-shell .driver-column-title{position:sticky;left:0;z-index:13;background:#f5eadc}
.driver-export-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;margin-bottom:16px}
.driver-export-bar strong,.driver-export-bar small{display:block}.driver-export-bar small{margin-top:4px;color:var(--muted)}.driver-export-bar>div:last-child{display:flex;gap:9px;flex-wrap:wrap}
@media(max-width:760px){.schedule-shell{max-height:calc(100dvh - 132px)}.driver-export-bar{align-items:stretch;flex-direction:column}.driver-export-bar>div:last-child{display:grid;grid-template-columns:1fr 1fr}.driver-export-bar .button{padding-left:10px;padding-right:10px}}

/* Release 3.8 date-range driver availability */
.schedule-availability-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.schedule-availability-layout.showing-availability{grid-template-columns:minmax(0,1fr) minmax(310px,360px)}
.date-head{appearance:none;font:inherit;color:inherit;cursor:pointer}.date-head:hover,.date-head.range-between{background:#f1ddcf;color:#ad3d20}.date-head.range-start,.date-head.range-end{background:#b84321;color:#fff;box-shadow:inset 0 -3px #81311b}.date-head.range-start span,.date-head.range-end span{color:#fff}.date-head.range-between{box-shadow:inset 0 -3px #d69a7d}
.date-availability-panel{position:sticky;top:94px;max-height:calc(100dvh - 112px);overflow:auto;padding:0}.date-availability-panel[hidden]{display:none}
.date-availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px;border-bottom:1px solid var(--line)}.date-availability-head h3{margin:5px 0 4px;font-size:19px}.date-availability-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.date-availability-summary{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.date-availability-summary span{padding:12px 14px;color:var(--muted);font-size:10px}.date-availability-summary span+span{border-left:1px solid var(--line)}.date-availability-summary b{display:block;margin-bottom:2px;color:var(--text);font-size:20px}
.date-availability-list{padding:5px 15px 14px}.date-availability-driver{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.date-availability-driver strong,.date-availability-driver small,.availability-window{display:block}.date-availability-driver small{margin-top:3px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.availability-window{margin-top:5px;color:#5f7e37;font-size:9px;font-style:normal}.availability-window.partial{color:#a45b25}.button.compact{min-height:34px;padding:0 11px;font-size:10px}
.range-selection-note{margin:14px 0;padding:15px;border:1px dashed #d9bda8;border-radius:11px;background:#fff8f0;color:#7e6757;font-size:11px;line-height:1.5}
@media(max-width:1120px){.schedule-availability-layout.showing-availability{grid-template-columns:1fr}.date-availability-panel{position:static;grid-row:1;max-height:none}.schedule-availability-layout.showing-availability .schedule-shell{grid-row:2}}
@media(max-width:520px){.date-availability-driver{grid-template-columns:auto minmax(0,1fr)}.date-availability-driver .button{grid-column:2;width:100%}.date-availability-summary span{padding:10px}}

/* Availability controls remain usable on narrow screens. */
.range-date-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:14px 18px}
.range-date-fields label,.range-vehicle-filter{display:grid;gap:6px;font-size:11px;color:var(--muted)}
.range-date-fields input,.range-vehicle-filter select{width:100%;min-width:0;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fffdf9;color:var(--text)}
.range-date-fields button{grid-column:1/-1}.range-vehicle-filter{padding:0 18px 14px}
.simple-toolbar{flex-wrap:wrap;gap:10px}.simple-toolbar .smart-search{flex:1 1 260px;min-width:0}.simple-toolbar select{max-width:100%}
.tour-search-panel{padding:16px;margin-bottom:16px}.tour-search-panel form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.tour-search-panel label{display:grid;gap:7px;flex:1 1 260px;font-size:12px}.tour-search-panel input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fffdf9;color:var(--text)}.tour-search-panel form>span,.tour-search-panel p{font-size:11px;color:var(--muted)}.tour-search-panel p{margin:12px 0 0}.tour-search-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line);margin-top:10px}.tour-search-result strong,.tour-search-result span{display:block}.tour-search-result span{font-size:11px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.tour-search-result .button{flex-shrink:0}.report-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.report-period-note{font-size:11px;color:var(--muted)}
@media(max-width:620px){.tour-search-result{align-items:stretch;flex-direction:column}.tour-search-panel form>span{width:100%}}
/* Supplier allocations */
.supplier-picker-field[hidden],[data-supplier-row][hidden],[data-result-supplier-row][hidden]{display:none!important}
.supplier-form{margin-bottom:16px;grid-template-columns:1fr 1fr auto;align-items:end}.supplier-form h3{grid-column:1/-1;margin:0}.supplier-form>label{min-width:0}
.supplier-row{opacity:1;animation:none;min-height:124px!important}.supplier-row .timeline-grid{min-height:calc(var(--lanes,1)*54px + 24px);grid-template-rows:repeat(var(--lanes,1),minmax(54px,1fr))}
.supplier-identity{cursor:default;align-items:flex-start!important;white-space:normal}.supplier-identity>div{min-width:0}.supplier-identity .button{margin-top:8px}.supplier-concurrency{display:block;margin-top:7px;color:#8e571b;font-size:11px}
.supplier-shell .assignment-pill.supplier-trip{background:var(--tour-colour)!important;border-color:var(--tour-colour)!important;color:#fff;height:44px;box-shadow:none;grid-row:var(--lane)}
.supplier-shell .supplier-trip .assignment-copy strong{font-size:12px}.supplier-shell .supplier-trip .assignment-copy small{font-size:10px;overflow:hidden;text-overflow:ellipsis}
.supplier-overlap-cell{background:#ffedcc!important}.supplier-legend{font-size:11px;color:var(--muted);line-height:1.6}
@media(max-width:760px){.supplier-form{grid-template-columns:1fr}.supplier-form h3{grid-column:1}.supplier-shell .supplier-trip .assignment-copy strong{font-size:9px}}
/* Release 3.8.1 direct schedule search */
[data-driver-row][hidden]{display:none!important}

/* Release 3.9 full backup and restore */
.backup-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:16px;align-items:start}.backup-warning{display:grid;gap:4px;margin-bottom:16px;padding:14px 16px;border:1px solid #e1b88e;border-radius:13px;background:#fff3df;color:#7e4c1c}.backup-warning span{font-size:11px}.restore-panel{padding-bottom:18px}.restore-panel>form{display:grid;gap:15px;padding:18px}.restore-panel label{display:grid;gap:7px;font-size:11px;color:var(--muted)}.restore-panel input[type=file]{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fffaf4;color:var(--text)}.restore-panel label>small{font-size:9px}.restore-option{grid-template-columns:auto 1fr!important;align-items:start;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fffaf4}.restore-option input{margin-top:3px}.restore-option strong,.restore-option small{display:block}.restore-option small{margin-top:4px}.restore-safety{padding:14px;border-radius:12px;background:#f5eadc;color:#6e5b4c}.restore-safety strong{font-size:11px}.restore-safety ol{margin:8px 0 0;padding-left:20px;font-size:10px;line-height:1.7}.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.row-actions form{margin:0}
@media(max-width:980px){.backup-grid{grid-template-columns:1fr}}@media(max-width:600px){.backup-grid .row-actions{align-items:stretch;flex-direction:column}.backup-grid .row-actions .button{width:100%}}

/* Release 3.9 searchable record selectors and tour vehicle override */
.searchable-picker{position:relative;display:grid;gap:6px;min-width:0}.searchable-picker input[type=search]{width:100%}.searchable-picker small{color:var(--muted);font-size:9px;line-height:1.4}.searchable-picker datalist{display:none}.searchable-results{position:absolute;top:calc(100% - 2px);left:0;right:0;z-index:80;max-height:260px;overflow:auto;padding:5px;border:1px solid #d9c7b4;border-radius:10px;background:#fffdf9;box-shadow:0 18px 42px #50331e26}.searchable-results[hidden]{display:none}.searchable-result{display:block;width:100%;padding:10px 11px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:11px;text-align:left;cursor:pointer}.searchable-result:hover,.searchable-result.active{background:#f3e4d7;color:#a63c20}.searchable-result-empty{display:block;padding:11px;color:var(--muted);font-size:10px}.allocation-time-grid .searchable-picker{height:auto}.allocation-time-grid .auto-vehicle{min-width:0}.allocation-time-grid .auto-vehicle strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
@media print{.print-hide{display:none!important}}

/* Release 3.9.2 visible aligned report driver search */
.report-filters{position:relative;z-index:20;align-items:start;overflow:visible}
.report-filter-field{display:grid!important;grid-template-rows:15px 42px 18px;gap:7px!important;min-width:0}
.report-filter-field>span{align-self:end}.report-filter-field>input,.report-filter-field>.searchable-picker{height:42px}
.report-filter-field>small{align-self:start;overflow:hidden;color:var(--muted);font-size:9px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}
.report-run-button{align-self:start;margin-top:22px;min-height:42px}
.report-filters+.report-kpis{position:relative;z-index:1}
.report-filters .searchable-results{top:calc(100% + 6px);z-index:100}
.report-filters .searchable-result{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px}
.searchable-result-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#c95b34;color:#fff;font-size:10px;font-weight:800}
.searchable-result-copy{min-width:0}.searchable-result-copy strong,.searchable-result-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-result-copy strong{font-size:11px}.searchable-result-copy small{margin-top:3px;font-size:9px}.searchable-result-status{color:#66843a;font-size:9px;white-space:nowrap}
@media(max-width:900px){.report-run-button{grid-column:1/-1;width:100%;margin-top:0}.report-filter-field:nth-of-type(3){grid-column:1/-1}}
@media(max-width:620px){.report-filter-field:nth-of-type(3),.report-run-button{grid-column:1}.report-filter-field>small{white-space:normal}}

/* Release 2.5.4 allocation deletion */
.allocation-actions{display:flex;align-items:center}.modal-action-spacer{flex:1}.danger-outline{border:1px solid #e34b3f;background:#fffaf6;color:#cf3d32}.danger-outline:hover{background:#fff0ed;border-color:#c9362d;color:#b72e26;box-shadow:0 8px 20px #c9362d1c}.danger-outline[hidden]{display:none!important}
@media(max-width:640px){.allocation-actions{flex-wrap:wrap}.allocation-actions .danger-outline{width:100%;order:3}.modal-action-spacer{display:none}}

/* Release 4.0 PDF-assisted allocation */
.modal.wide-modal{max-height:calc(100dvh - 24px);overflow:auto}
.pdf-allocation-import{margin:0 0 18px;padding:14px;border:1px solid #dfcdbc;border-radius:14px;background:#fffaf4;transition:border-color .2s ease,box-shadow .2s ease}
.pdf-allocation-import.is-reading{border-color:#c86842;box-shadow:0 0 0 3px #c8684214}
.pdf-import-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}
.pdf-import-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;background:#f2ded2;color:#b33f20;font-size:10px;font-weight:900;letter-spacing:.08em}
.pdf-import-row strong,.pdf-import-row small{display:block}.pdf-import-row strong{font-size:12px}.pdf-import-row small{margin-top:4px;color:var(--muted);font-size:9px}
.pdf-import-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.pdf-import-actions label.button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pdf-import-status{margin-top:12px;padding:10px 12px;border-radius:9px;background:#edf5e9;color:#567837;font-size:10px;line-height:1.45}
.pdf-import-status.reading{background:#f4ebe2;color:#8a5b38}.pdf-import-status.review,.pdf-import-status.warning{background:#fff0d5;color:#8b5a16}.pdf-import-status.error{background:#fbe9e6;color:#a83c34}.pdf-import-status.success{background:#e6f3e8;color:#367045}
.pdf-import-facts{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.pdf-import-facts>span{min-width:90px;padding:8px 10px;border:1px solid #ead9c8;border-radius:9px;background:#fffdf9}.pdf-import-facts b,.pdf-import-facts small{display:block}.pdf-import-facts b{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.pdf-import-facts small{margin-top:3px;color:var(--text);font-size:9px}
.allocation-time-grid input.pdf-review-required{border-color:#d19336;background:#fff8e8;box-shadow:0 0 0 3px #d1933615}.allocation-time-grid [data-end-time-note]{margin-top:4px;color:#9b651c;font-size:9px;font-weight:650}
@media(max-width:640px){.pdf-import-row{grid-template-columns:auto minmax(0,1fr)}.pdf-import-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.pdf-import-actions .button{width:100%}.pdf-import-facts{display:grid;grid-template-columns:1fr 1fr}}

/* Release 4.1 allocation validation, searchable driver and result feedback */
.allocation-submit-feedback{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin:0 0 16px;padding:12px 13px;border:1px solid #dfaaa3;border-radius:11px;background:#fbe9e6;color:#a83c34}
.allocation-submit-feedback[hidden]{display:none}.allocation-submit-feedback>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#bd4439;color:#fff;font-weight:850}.allocation-submit-feedback strong,.allocation-submit-feedback small{display:block}.allocation-submit-feedback small{margin-top:3px;color:#754a43;line-height:1.45}
.allocation-field-error input,.allocation-field-error select,.allocation-field-error .searchable-picker>input[type=search]{border-color:#c94438!important;background:#fff3f1!important;box-shadow:0 0 0 3px #c9443817!important}.allocation-field-error-note{display:block!important;margin-top:4px!important;color:#b23931!important;font-size:9px!important;line-height:1.4}
.tour-number-status{display:block;margin-top:4px;font-size:9px;line-height:1.4}.tour-number-status.checking,.tour-number-status.note{color:#8a6d55}.tour-number-status.available{color:#4f7739}.tour-number-status.duplicate{color:#b23931}.allocation-tour-field:has(.tour-number-status.duplicate) input{border-color:#c94438;background:#fff3f1;box-shadow:0 0 0 3px #c9443817}
.button.is-busy{cursor:wait;opacity:.78}
.allocation-result-modal{width:min(540px,calc(100% - 28px));padding:0}.allocation-result-modal>section{padding:25px}.allocation-result-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:14px;border-radius:50%;background:#e3f2e4;color:#347347;font-size:24px;font-weight:850}.allocation-result-modal h3{margin:5px 0 7px;font-size:24px}.allocation-result-modal>section>p{margin:0 0 18px;color:var(--muted);line-height:1.5}.allocation-result-details{display:grid;grid-template-columns:1fr 1fr;margin:0;border:1px solid #d8e5d6;border-radius:12px;background:#f1f8ef;overflow:hidden}.allocation-result-details>div{padding:12px 13px;border-bottom:1px solid #d8e5d6}.allocation-result-details>div:nth-child(odd){border-right:1px solid #d8e5d6}.allocation-result-details>div:nth-last-child(-n+2){border-bottom:0}.allocation-result-details dt{color:var(--muted);font-size:9px}.allocation-result-details dd{margin:4px 0 0;color:var(--text);font-size:12px;font-weight:750;overflow-wrap:anywhere}
@keyframes allocationFocus{0%,100%{box-shadow:0 0 0 3px #d2962e,0 8px 22px #8d5e2826}50%{box-shadow:0 0 0 6px #d2962e66,0 12px 30px #8d5e2840}}
.assignment-pill.allocation-highlight{z-index:8;border-color:#bc7a13;animation:allocationFocus 1.35s ease-in-out 3!important}.allocation-driver-highlight .driver-identity{background:#fff0df;box-shadow:inset 4px 0 #c14827}
@media(max-width:640px){.allocation-result-details{grid-template-columns:1fr}.allocation-result-details>div,.allocation-result-details>div:nth-child(odd){border-right:0;border-bottom:1px solid #d8e5d6}.allocation-result-details>div:last-child{border-bottom:0}.allocation-result-modal>section{padding:19px}}

/* Release 4.2 automatic editable PDF end time */
.allocation-end-time-field{display:grid;gap:7px;min-width:0;color:#6f6256;font-size:11px}.allocation-end-time-label,.allocation-end-time-help{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.allocation-end-time-label label{color:inherit;font-size:inherit}.allocation-time-source{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;background:#e8f3e5;color:#4e783d;font-size:9px;font-weight:750;white-space:nowrap}.allocation-time-source.manual{background:#f7e6da;color:#ad4526}.allocation-end-time-help small{min-width:0;margin:0!important;color:#7a6c60!important;font-size:9px!important;font-weight:500!important;line-height:1.4}.allocation-end-time-help button{flex:0 0 auto;min-height:28px;padding:0;border:0;background:transparent;color:#b84321;font-size:9px;font-weight:750;cursor:pointer}.allocation-end-time-field input.manual-time-adjustment{border-color:#c86b46;background:#fff8f2;box-shadow:0 0 0 3px #c86b4614}
@media(max-width:440px){.allocation-end-time-label{align-items:flex-start;flex-direction:column}.allocation-end-time-help{align-items:flex-start;flex-direction:column}.allocation-end-time-help button{min-height:32px}}

/* Release 4.4 vehicle contract and save feedback */
.vehicle-contract-field{border:0;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}.vehicle-contract-field legend{margin-bottom:8px;color:#695e53;font-size:11px}.vehicle-contract-field label{display:flex;align-items:center;flex:1;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.vehicle-contract-field label:has(input:checked){border-color:#b84321;background:#fae9dd}.vehicle-contract-field input[type=radio]{width:18px;height:18px;padding:0;accent-color:#b84321}.vehicle-save-error{background:#fbe6e1!important;color:#a53931!important}
/* Release 4.3 driver save confirmation */
.driver-success-modal{width:min(650px,calc(100% - 28px));padding:0}.driver-success-modal>section{position:relative;padding:28px}.driver-success-close{position:absolute;top:16px;right:18px;border:0;background:transparent;color:#7d6e61;font-size:26px;cursor:pointer}.driver-success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 15px;border-radius:50%;background:#e6f3e8;color:#367045;font-size:29px;font-weight:850}.driver-success-modal>.driver-success-icon{margin-inline:auto}.driver-success-modal .eyebrow,.driver-success-modal h3,.driver-success-modal>section>p{text-align:center}.driver-success-modal h3{margin:7px 0;font-size:25px}.driver-success-modal>section>p{max-width:470px;margin:0 auto 20px;color:var(--muted);line-height:1.5}.driver-success-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:13px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fffdf9}.driver-success-summary strong,.driver-success-summary small{display:block}.driver-success-summary small{margin-top:4px;color:var(--muted)}.driver-success-check{display:flex;align-items:center;gap:9px;margin-top:14px;padding:11px 13px;border-radius:10px;background:#edf5e8;color:#4f6f35}.driver-success-check>span{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:50%;background:#718f41;color:#fff}.driver-success-check p{margin:0;font-size:11px;line-height:1.45}.driver-success-modal .modal-actions{padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:520px){.driver-success-modal>section{padding:24px 17px 19px}.driver-success-modal .modal-actions{display:grid;grid-template-columns:1fr}.driver-success-modal .button{width:100%}}

/* Release 2.5.7 unified responsive driver details */
.mobile-bottom-nav{display:none}
.driver-detail-tabs{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;margin:0 22px;border:1px solid var(--line);border-radius:11px;background:#f7eee3;overflow:hidden}
.driver-detail-tabs button{min-height:43px;border:0;border-bottom:3px solid transparent;background:transparent;color:#776a5d;font-weight:800;cursor:pointer}
.driver-detail-tabs button:hover{background:#fff6ed;color:#a83b20}.driver-detail-tabs button.active{border-bottom-color:#bd4525;background:#fffaf3;color:#b33f20}
.yearly-modal{width:min(1100px,calc(100vw - 34px));height:min(820px,calc(100dvh - 34px));max-height:calc(100dvh - 34px)}
.yearly-modal-head{grid-template-columns:minmax(250px,.9fr) minmax(390px,1.1fr) auto}
.unified-history-panel.history-drawer{position:static;inset:auto;width:auto;z-index:auto;flex:1;min-height:0;margin:14px 22px;padding:0;border:0;background:transparent;box-shadow:none;overflow:auto;transform:none;transition:none}
.unified-history-panel[hidden]{display:none}.unified-history-panel .history-head{display:none}
.unified-history-panel .history-summary{padding:2px 0 17px;border-bottom:1px solid var(--line)}
.unified-history-panel .history-section{padding:15px;border:1px solid #e4d6c6;border-radius:13px;background:#fffdf9}
.unified-history-panel{grid-template-columns:1fr 1fr;gap:12px}.unified-history-panel:not([hidden]){display:grid;align-content:start}
.unified-history-panel .history-summary{grid-column:1/-1}.unified-history-panel>.button{grid-column:1/-1;justify-self:end;width:min(320px,100%)}
.yearly-modal.showing-history .yearly-actions [data-yearly-history]{display:none}
.yearly-actions .driver-details-close{margin-right:auto}.yearly-modal.showing-history .yearly-actions [data-yearly-history]{display:none}
.yearly-board .yearly-grid-head>strong,.yearly-month-row>strong{position:sticky;left:0;z-index:5;box-shadow:5px 0 10px #6c4a2310}
.drawer-backdrop{display:none!important}
@media(max-width:760px){
  body{padding-bottom:66px}.sidebar{padding-bottom:70px}.page-content{padding-bottom:92px}
  .mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(4,1fr);padding:6px max(8px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));border-top:1px solid #ddcfbd;background:#fffaf3f2;backdrop-filter:blur(16px);box-shadow:0 -10px 32px #4f39261c}
  .mobile-bottom-nav a{display:grid;place-items:center;gap:2px;min-height:50px;color:#817164}.mobile-bottom-nav a span{font-size:19px}.mobile-bottom-nav a small{font-size:9px}.mobile-bottom-nav a.active{color:#b84321}
  .yearly-modal{width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;margin:0;padding-bottom:env(safe-area-inset-bottom)}
  .yearly-modal-head{position:static;grid-template-columns:1fr auto;padding:12px 14px}.yearly-driver>span{width:46px;height:46px;border-radius:14px}.yearly-driver h2{font-size:19px}
  .yearly-kpis{grid-column:1/-1;grid-row:2}.yearly-kpis>span{padding:7px 4px}.yearly-kpis b{font-size:16px}.yearly-year-nav{grid-column:2;grid-row:1}.yearly-year-nav>strong{font-size:12px;min-width:38px}
  .driver-detail-tabs{margin:0 14px}.yearly-title-row{padding-top:10px;padding-bottom:10px}.yearly-title-row>div:first-child{display:none}.yearly-legend{width:100%;justify-content:space-between;gap:7px;overflow:auto}.yearly-legend span{white-space:nowrap;font-size:8px}
  .yearly-board{margin:0 14px}.yearly-grid{grid-template-columns:88px repeat(31,28px);min-width:956px}.yearly-grid-head strong{padding-left:9px}.yearly-month-row>strong{padding-left:9px}.yearly-month-row{min-height:42px}
  .yearly-actions{padding:10px 14px;display:grid;grid-template-columns:1fr 1.45fr}.yearly-actions [data-yearly-history]{display:none}.yearly-actions [data-yearly-allocate],.yearly-actions .driver-details-close{width:100%;margin:0}
  .unified-history-panel.history-drawer{margin:10px 14px}.unified-history-panel:not([hidden]){display:block}.unified-history-panel .history-summary{padding:4px 0 14px}.unified-history-panel .history-section{margin-top:9px;padding:12px}.unified-history-panel>.button{width:100%;margin-top:10px}
  .schedule-shell{max-width:100%;overflow:auto}.schedule-head,.schedule-row{min-width:max-content}.driver-column-title,.driver-identity{position:sticky;left:0;z-index:5}.driver-column-title{background:#f5eadc}
}

@media(max-width:760px){.mobile-bottom-nav{grid-template-columns:repeat(5,1fr)}.compact-heading{flex-wrap:wrap;gap:12px}.compact-heading>.button{white-space:nowrap}}

/* Optional supplier resources remain readable at desktop and mobile widths. */
.supplier-allocation .auto-vehicle{display:grid;grid-template-columns:auto minmax(0,1fr)}
.supplier-allocation .auto-vehicle strong{white-space:normal;overflow:visible;max-width:none;overflow-wrap:anywhere}
.supplier-allocation .auto-vehicle i{grid-column:2;margin-left:0}
@media(max-width:520px){.supplier-allocation .allocation-time-grid{grid-template-columns:minmax(0,1fr)}}

/* v4.8: searchable absence register, training and supplier reporting */
.absence-filters{display:grid;grid-template-columns:minmax(230px,2fr) repeat(3,minmax(130px,1fr)) auto;gap:14px;align-items:end;margin-bottom:18px;padding:18px}
.absence-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted,#796b5e);min-width:0}
.absence-filters p{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted,#796b5e)}
.absence-reason{white-space:pre-line;min-width:180px;max-width:400px}
.status-training{background:#fff0cc;color:#855414}
.schedule-block.block-training,.yearly-segment.training{background:#edca78;color:#593c12;border:1px solid #c69d42}
.yearly-legend i.training{background:#edca78}
.absence-check{padding:14px;border:1px solid #ddcbb9;border-radius:12px;background:#fffaf3;color:#786550;font-size:13px}
.absence-check.is-error{background:#fff0ed;border-color:#df9d91;color:#992d22}.absence-check.is-success{background:#edf5e8;border-color:#b8caa4;color:#45632b}
#availability-modal{overflow-y:auto;max-height:92dvh}#availability-modal [hidden]{display:none!important}
#availability-modal .searchable-results{position:relative;inset:auto;width:100%;max-height:220px;margin-top:8px;box-shadow:none}
.supplier-report-filters{grid-template-columns:repeat(2,minmax(130px,1fr)) minmax(240px,2fr) minmax(160px,1fr) auto}
@media(max-width:1100px){.absence-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.absence-filters label:first-child{grid-column:1/-1}.supplier-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-report-picker{grid-column:1/-1}}
@media(max-width:600px){.absence-filters,.supplier-report-filters{grid-template-columns:minmax(0,1fr)}.absence-filters button,.supplier-report-filters button{width:100%}#availability-modal .form-grid{grid-template-columns:minmax(0,1fr)}}
@media print{.absence-filters,.print-hide{display:none!important}.absence-reason{max-width:none}.table-wrap{overflow:visible!important}}
@media(max-width:600px){.simple-leave-kpis{grid-template-columns:minmax(0,1fr);max-width:100%}}
