:root{--ink:#173342;--muted:#71838e;--teal:#087f80;--line:#dfE8eb;--bg:#f3f7f8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,'Segoe UI',sans-serif;font-size:14px;line-height:1.65}header{background:white;border-bottom:1px solid var(--line);padding:20px 5%;display:flex;align-items:center;gap:24px}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:20px;font-weight:bold;text-decoration:none}.logo{width:44px;height:44px;display:grid;place-items:center;background:var(--teal);color:white;border-radius:12px;font-size:26px}small{display:block;font-size:12px;font-weight:normal;color:var(--muted)}.identity{margin-left:auto;text-align:right}header form{margin:0}nav{display:flex;gap:8px;padding:14px 5%;overflow:auto;background:white}nav a{padding:9px 16px;white-space:nowrap;color:var(--muted);text-decoration:none;border-radius:8px}nav .selected{background:#e4f3f1;color:var(--teal);font-weight:bold}main{max-width:1450px;margin:auto;padding:30px 5%;min-height:75vh}h1{font-size:28px;margin:6px 0 12px}h2{font-size:19px}p{margin:10px 0}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--teal);font-weight:bold}.muted{color:var(--muted)}section{background:white;padding:24px;border:1px solid var(--line);border-radius:14px;margin:20px 0;box-shadow:0 5px 20px #17334204}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stats section{margin:8px 0}.stats strong{display:block;font-size:32px;color:var(--teal)}button,.button{display:inline-block;border:0;background:var(--teal);color:white;padding:11px 20px;border-radius:8px;font-size:14px;font-family:inherit;cursor:pointer;text-decoration:none}.secondary{background:#edf3f5;color:var(--ink)}.danger{background:#b84242}label{display:block;margin:12px 0;color:var(--ink)}input,select,textarea{display:block;width:100%;padding:11px 12px;border:1px solid #ccdadd;border-radius:7px;margin-top:6px;font:inherit;background:white;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #a2d8d3;border-color:var(--teal)}textarea{min-height:100px}input:disabled{background:#f2f6f7}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.full{grid-column:1/-1}.login{max-width:520px;margin:50px auto;padding:38px}.login button{width:100%;margin-top:14px}.alert{background:#e1f4ec;border:1px solid #a7d9c4;padding:14px 18px;border-radius:8px}.error{background:#ffeded;border-color:#efbcbc;color:#923636}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);margin-top:20px}.weekday{background:#f1f6f7;padding:12px;text-align:center;font-weight:bold;border-right:1px solid var(--line)}.day{min-height:132px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.day b{font-size:12px;color:var(--muted)}.day.today{background:#effbf8}.day.today b{background:var(--teal);color:white;border-radius:50%;display:inline-block;width:25px;text-align:center}.empty{background:#fafcfc}.bar{display:block;text-decoration:none;margin:5px 0;padding:5px 7px;border-radius:5px;border-left:3px solid currentColor;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bar small{color:inherit;overflow:hidden;text-overflow:ellipsis;font-size:10px}.pending{background:#fff1d5;color:#98620b}.approved{background:#dbf2ee;color:#147465}.completed{background:#e5eaf7;color:#576b9f}.cancelled{background:#f7e3e3;color:#a24343}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;white-space:nowrap}.legend{display:flex;gap:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f3f7f8;color:var(--muted);font-size:12px;padding:12px}td{padding:14px 12px;border-bottom:1px solid var(--line)}td a{color:var(--teal);font-weight:bold}.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline select{width:auto;max-width:240px}.inline label{min-width:180px}dl{display:grid;grid-template-columns:150px 1fr;gap:18px}dt{color:var(--muted)}dd{margin:0}form+form,section form{margin-top:16px}.empty-state{text-align:center;padding:40px;color:var(--muted)}footer{text-align:center;padding:24px 5%;border-top:1px solid var(--line);background:white;color:var(--muted);font-size:12px}@media(max-width:760px){header{flex-wrap:wrap;padding:14px}.brand{font-size:16px}.identity{font-size:11px}.grid-form{grid-template-columns:1fr}.stats{gap:8px}.stats section{padding:12px}.heading h1{font-size:22px}.calendar{min-width:700px}section:has(.calendar){overflow:auto}main{padding:20px 12px}dl{grid-template-columns:100px 1fr}.login{padding:24px}.weekday{font-size:11px}.heading{flex-wrap:wrap}}@media print{header,nav,button,.button,form,.eyebrow{display:none!important}body{background:white}main{padding:0;max-width:none}section{box-shadow:none;border:0}footer{font-size:10px}table{font-size:12px}}
:root{--menu-shadow:0 12px 28px #17334220}nav{overflow:visible;flex-wrap:wrap;align-items:center}.settings-menu{position:relative}.settings-menu summary{padding:9px 16px;cursor:pointer;list-style:none;border-radius:8px;color:var(--muted)}.settings-menu summary::-webkit-details-marker{display:none}.settings-menu.selected{border-radius:8px}.settings-menu.selected summary,.settings-menu[open] summary{color:var(--teal);background:#e4f3f1}.settings-submenu{position:absolute;top:100%;left:0;min-width:225px;z-index:20;background:white;padding:8px;border:1px solid var(--line);border-radius:10px;box-shadow:var(--menu-shadow)}.settings-submenu a{display:block}.permission-form{min-width:430px;margin:0!important}.permission-checks{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:18px;margin-bottom:12px}.permission-checks .check-label{white-space:nowrap}.check-label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:6px 0;cursor:pointer}.check-label input[type=checkbox]{width:18px;height:18px;flex-shrink:0;padding:0;margin:3px 0 0;accent-color:var(--teal)}.check-label:has(input:disabled){color:var(--muted);cursor:default}.driver-checks{margin:12px 0;border:1px solid var(--line);border-radius:10px;padding:16px}.driver-checks legend{font-weight:bold;padding:0 8px}.driver-list{max-height:300px;overflow:auto}.driver-list .check-label{padding:8px;border-bottom:1px solid var(--line)}.permission-form button{padding:8px 14px;font-size:12px}@media(max-width:760px){.settings-submenu{left:auto;right:0}.driver-checks{grid-column:1/-1}}@media print{.settings-menu{display:none}}

.mis-active{background:#dcfce7;color:#166534;border:1px solid #86efac}.mis-inactive{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.weekday:first-child{color:#b84242}.weekday:nth-child(7){color:#576b9f}
.permission-save-status{display:block;min-height:20px;font-size:12px}.permission-save-status.saving{color:#71838e}.permission-save-status.saved{color:#166534}.permission-save-status.failed{color:#991b1b}.permission-form[aria-busy=true] .permission-checks{opacity:.65}
.booking-actions{display:flex;gap:12px;flex-wrap:wrap;white-space:nowrap}.booking-actions .cancel-link{color:#a24343}
.bar{white-space:normal;overflow-wrap:anywhere;line-height:1.45}.bar .bar-vehicle{display:block;font-weight:600}.bar small{display:block;white-space:normal;overflow:visible}.bar .bar-time{margin-top:3px;font-size:10px}.booking-vehicle-name{display:block;color:var(--ink);font-weight:500}
.booking-actions a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:7px;border:1px solid var(--line);border-radius:7px;background:#edf6f5}.booking-actions a:hover{background:#d8eee9}.booking-actions a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.booking-actions .cancel-link{background:#fff0f0;color:#a24343}
.identity-badge{display:inline-block;border-radius:6px;padding:3px 8px;border-left:5px solid var(--badge-color);background:color-mix(in srgb,var(--badge-color) 15%,white);color:#173342;font-size:12px;overflow-wrap:anywhere}.driver-color-control[hidden]{display:none}.driver-color-control{display:flex;align-items:center;gap:10px}.driver-color-control input[type=color]{width:60px;height:36px;padding:3px;margin:0}.passenger-row{display:grid;grid-template-columns:180px 1fr 44px;gap:10px;align-items:center;margin-bottom:10px}.passenger-fields{padding:16px;border:1px solid var(--line);border-radius:8px}.passenger-row button{padding:8px;font-size:20px}.passenger-row button:disabled{opacity:.4;cursor:default}@media(max-width:600px){.passenger-row{grid-template-columns:1fr 44px}.passenger-row>select{grid-column:1/-1}}
.calendar-scroll{overflow:auto;margin-top:20px}.fleet-calendar{min-width:840px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 7 - 1px),var(--line) calc(100% / 7 - 1px),var(--line) calc(100% / 7))}.calendar-date{padding:5px 8px;font-size:12px}.calendar-date.today{color:var(--teal);font-weight:bold;background:#effbf8}.calendar-span{align-self:start;margin:3px 2px;padding:6px 8px;min-width:0;border-left-width:5px}.calendar-span strong{font-size:11px}.calendar-span.continues-before{border-top-left-radius:0;border-bottom-left-radius:0}.calendar-span.continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.driver-day-group{border-top:1px solid var(--line);margin-top:18px}.rod-dialog{width:min(1100px,95vw);height:min(850px,92vh);padding:0;border:1px solid var(--line);border-radius:12px}.rod-dialog[open]{display:flex;flex-direction:column}.rod-dialog iframe{width:100%;flex:1;border:0;min-height:0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);gap:10px}.rod-dialog::backdrop,.confirm-dialog::backdrop{background:#17334280}.confirm-dialog{max-width:500px;border:0;border-radius:12px;padding:25px}.confirm-dialog button{margin-right:8px}.embedded>header,.embedded>nav,.embedded>footer{display:none}.embedded main{max-width:none;padding:18px}.driver-schedule-button{margin-top:10px}.embedded .rod-dialog{width:95vw;height:90vh}
.calendar-span .identity-badge{font-size:11px;font-weight:600;margin-bottom:3px;background:color-mix(in srgb,var(--badge-color) 18%,white);line-height:1.5}.calendar-span.pending{border-left-color:#98620b}.calendar-span.approved{border-left-color:#147465}.calendar-span.completed{border-left-color:#576b9f}.calendar-span.cancelled{border-left-color:#a24343}
.calendar-span .calendar-driver .identity-badge{font-size:10px;padding:1px 5px;margin:2px 0;border-left-width:3px;font-weight:normal}.calendar-span .calendar-requester,.calendar-span .calendar-driver{line-height:1.6}
.role-navigation{overflow:visible;flex-wrap:wrap;align-items:stretch;gap:0;padding-top:12px;padding-bottom:12px}.nav-role-group{padding:0 18px;border-right:1px solid var(--line);min-width:0}.nav-role-group:first-child{padding-left:0}.nav-role-group:last-child{border-right:0}.nav-role-label{display:block;font-size:10px;font-weight:bold;color:var(--muted);margin:0 0 6px 10px}.nav-role-links{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.nav-role-links>a,.nav-role-links .settings-menu>summary{padding:8px 12px;font-size:12px}.nav-admin-group .nav-role-label{color:var(--teal)}@media(max-width:760px){.role-navigation{gap:14px 0;padding:12px}.nav-role-group{padding:0 12px}.nav-role-group:first-child{padding-left:12px}.nav-role-links>a{font-size:11px;padding:7px 9px}}
.booking-actions .complete-job-form{margin:0;display:inline-flex}.booking-actions .complete-job{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:7px;border:1px solid #16803e;border-radius:7px;background:#16803e;color:#fff}.booking-actions .complete-job:hover{background:#116631}.booking-actions .complete-job:disabled{opacity:.45;cursor:not-allowed}.booking-actions .complete-job:focus-visible{outline:2px solid #16803e;outline-offset:2px}
.booking-actions .cancel-booking-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:7px;border:1px solid #f0cccc;border-radius:7px;background:#fff0f0;color:#a24343}.cancel-booking-dialog{white-space:normal;width:min(520px,90vw)}.cancel-booking-dialog textarea{width:100%;resize:vertical}.cancel-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.reservation-schedule-dialog{width:min(1100px,95vw);max-height:90vh;padding:0;border:0;border-radius:14px}.reservation-schedule-dialog::backdrop{background:rgba(15,36,48,.5)}.reservation-schedule-dialog .modal-header{position:sticky;top:0;background:white;z-index:1}.schedule-content{padding:24px}.schedule-content table{font-size:14px}.reservation-form [hidden]{display:none!important}.reservation-schedule-dialog table th{white-space:normal}
.report-filter{display:flex;align-items:center;gap:16px;flex-wrap:nowrap;padding:14px 16px;background:#f4f8f9;border:1px solid var(--line);border-radius:10px;margin:0 0 18px;overflow-x:auto}.report-filter label{display:flex;align-items:center;gap:10px;margin:0;white-space:nowrap;font-weight:bold;flex-shrink:0}.report-filter input[type=date]{width:180px;height:44px;margin:0;border-radius:8px;background:#fff;font-weight:normal}.report-filter button{height:44px;margin:0;white-space:nowrap;flex-shrink:0;border-radius:8px;padding:0 22px}.report-filter input:focus{outline:2px solid #087f8033;border-color:var(--teal)}@media print{.report-filter{display:none}}
.driver-type-badge{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:bold;margin:2px 4px 2px 0;white-space:nowrap}.driver-type-general{background:#e0f2fe;color:#075985;border:1px solid #7dd3fc}.driver-type-temporary{background:#fff1dd;color:#92400e;border:1px solid #f8c76a}.driver-type-other{background:#edf0f3;color:#536373;border:1px solid #cbd5e1}.report-statistics{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}.report-statistics>span{padding:12px 18px;border:1px solid var(--line);border-radius:9px;background:#f4f8f9}.report-statistics b{color:var(--teal);font-size:18px;margin:0 5px}@media print{.driver-type-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
