:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1d252b;font-synthesis:none;text-rendering:optimizelegibility;--surface:#fff;--surface-muted:#f4f7f8;--line:#d8e0e3;--text:#1d252b;--muted:#62707b;--brand:#0d7377;--brand-strong:#07575a;--green:#1d7b50;--amber:#a86500;--red:#b83b34;--ink:#24313a;--blue:#315e9f;--shadow:0 1px 2px #1d252b0f, 0 8px 24px #1d252b0a;background:#f2f5f6;font-family:Inter,Noto Sans TC,PingFang HK,Microsoft JhengHei,Arial,sans-serif}*{box-sizing:border-box}body{background:#f2f5f6;min-width:320px;min-height:100vh;margin:0}:focus-visible{outline-offset:2px;outline:3px solid #0d737747}.skip-link{z-index:100;color:var(--brand-strong);box-shadow:var(--shadow);background:#fff;border-radius:6px;padding:10px 14px;font-weight:800;position:fixed;top:10px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.58}.app-shell{grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f7fafb;background:#17282d;border-right:1px solid #ffffff1a;flex-direction:column;gap:18px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;min-height:48px;display:flex}.brand-mark{color:#1d252b;background:#f2b24c;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.brand strong,.brand span{display:block}.brand strong{font-size:18px}.brand span{color:#cbd7dc;font-size:13px}nav{gap:6px;display:grid;overflow-y:auto}.nav-item{color:#d9e4e8;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;height:42px;padding:0 12px;display:flex}.nav-item:hover{background:#ffffff14}.nav-item.active{color:#fff;background:#0d7377;box-shadow:inset 3px 0 #f2b24c}.sidebar-footer{border-top:1px solid #ffffff1f;gap:12px;margin-top:auto;padding-top:16px;display:grid}main{min-width:0;padding:20px 28px 32px}.topbar{border-bottom:1px solid #d8e0e3cc;justify-content:space-between;align-items:center;gap:16px;min-height:72px;margin:-4px 0 18px;padding:12px 0;display:flex}.topbar p,.panel-heading p{color:var(--muted);margin:0 0 4px;font-size:13px}.topbar h1,.panel-heading h2{margin:0;font-size:28px;line-height:1.2}.panel-heading h2{font-size:19px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.date-pill,.role-pill,.environment-pill{border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.environment-pill{color:#176840;background:#e8f5ee;border-color:#b9ddcb;font-size:12px;font-weight:800}.login-shell{background:#edf2f3;place-items:center;min-height:100vh;padding:22px;display:grid}.login-panel{border:1px solid var(--line);background:var(--surface);width:min(430px,100%);box-shadow:var(--shadow);border-radius:8px;gap:18px;padding:24px;display:grid}.login-panel.compact-login{width:min(380px,100%)}.login-panel p,.login-panel h1{margin:0}.login-panel p{color:var(--muted);font-size:13px;font-weight:700}.login-panel h1{margin-top:5px;font-size:26px}.login-brand{color:var(--text)}.login-brand span{color:var(--muted)}.login-form{gap:12px;display:grid}.signed-in-card{background:#ffffff14;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.signed-in-card strong{color:#fff;overflow-wrap:anywhere}.signed-in-card span{color:#cbd7dc;overflow-wrap:anywhere;font-size:12px}.page-stack{gap:16px;min-width:0;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-card,.panel,.toolbar{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.stat-card{gap:13px;min-height:112px;padding:16px;display:flex}.stat-icon{width:42px;height:42px;color:var(--brand);background:#e7f3f2;border-radius:8px;flex:none;place-items:center;display:grid}.stat-card p,.stat-card strong,.stat-card span{display:block}.stat-card p{color:var(--muted);margin:0;font-size:13px}.stat-card strong{margin-top:4px;font-size:27px;line-height:1.15}.stat-card span{color:var(--muted);margin-top:6px;font-size:12px}.tone-good .stat-icon{color:var(--green);background:#e5f3eb}.tone-warn .stat-icon{color:var(--amber);background:#fff2dc}.tone-danger .stat-icon{color:var(--red);background:#fae7e5}.panel{padding:16px}.panel-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.split-grid,.work-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.55fr);gap:16px;display:grid}.work-grid.wide-left{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)}.split-grid>*,.work-grid>*{min-width:0}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.search-box{border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;flex:260px;align-items:center;gap:8px;min-width:min(420px,100%);height:42px;padding:0 12px;display:flex}.search-box input{width:100%;color:var(--text);background:0 0;border:0;outline:0}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:7px;min-height:42px;padding:10px 11px;transition:border-color .14s,box-shadow .14s,background .14s}input[type=checkbox],input[type=radio]{width:20px;min-width:20px;height:20px;min-height:20px;accent-color:var(--brand);flex:0 0 20px;margin:0;padding:0}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:0;box-shadow:0 0 0 3px #0d73771f}select[multiple]{height:104px;padding:6px}textarea{resize:vertical}.field{gap:6px;min-width:0;display:grid}.field span,.checkbox-group>span,.approval-box>span{color:var(--muted);font-size:13px;font-weight:700}.field.compact{min-width:150px}.primary-button,.text-button,.ghost-button,.danger-button,.icon-button{border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 13px;font-weight:800;transition:background .14s,color .14s,transform .14s;display:inline-flex}.primary-button{background:var(--brand);color:#fff}.primary-button:hover{background:var(--brand-strong)}.primary-button:active,.text-button:active,.ghost-button:active,.danger-button:active,.icon-button:active{transform:translateY(1px)}.text-button{color:var(--brand-strong);background:#e7f3f2}.ghost-button{color:#f7fafb;background:#ffffff14}.danger-button{color:var(--red);background:#fae7e5}.danger-button.armed{background:var(--red);color:#fff}.icon-button{width:38px;min-width:38px;color:var(--ink);background:#eef3f5;padding:0}.icon-button:hover{background:#dfe9ed}.mobile-menu{display:none}.table-scroll{border:1px solid var(--line);border-radius:8px;width:100%;max-width:100%;overflow:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:860px}.vehicle-list-table{table-layout:fixed;min-width:1080px}.vehicle-list-table th,.vehicle-list-table td{padding:8px 7px;font-size:13px}.vehicle-list-table th{font-size:11px}.vehicle-list-table th:first-child{width:88px}.vehicle-list-table th:nth-child(2){width:80px}.vehicle-list-table th:nth-child(3){width:90px}.vehicle-list-table th:nth-child(4),.vehicle-list-table th:nth-child(5){width:100px}.vehicle-list-table th:nth-child(6){width:86px}.vehicle-list-table th:nth-child(7){width:104px}.vehicle-list-table th:nth-child(8){width:112px}.vehicle-list-table th:nth-child(9){width:108px}.vehicle-list-table th:nth-child(10){width:94px}.vehicle-list-table th:nth-child(11){width:48px}.vehicle-list-table thead tr:first-child th{z-index:3;height:38px;top:0}.vehicle-sort-button{width:100%;min-width:0;min-height:30px;color:var(--muted);white-space:nowrap;background:0 0;border:0;justify-content:space-between;align-items:center;gap:3px;padding:0;font-size:11px;font-weight:800;display:flex}.vehicle-sort-button:hover,.vehicle-sort-button.active{color:var(--brand-strong)}.vehicle-sort-button svg{flex:none}.vehicle-filter-row th{z-index:2;background:#edf3f4;padding-top:5px;padding-bottom:7px;top:38px}.vehicle-filter-row input,.vehicle-filter-row select{width:100%;min-width:0;height:30px;color:var(--ink);background:#fff;border:1px solid #cbd7db;border-radius:5px;padding:0 5px;font-size:11px}.vehicle-filter-row input::placeholder{color:#7a8790}.vehicle-text-cell{text-overflow:ellipsis;overflow:hidden}.pos-time{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;font-weight:800}.pos-time-missing,.pos-time-unsupported{color:#65717b;font-weight:700}.vehicle-list-table td.pos-transaction-newer,.vehicle-list-table tr:hover td.pos-transaction-newer{background:#fff3bf;box-shadow:inset 0 0 0 1px #e7be4d}.vehicle-list-table .icon-button{width:34px;min-width:34px;min-height:34px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:12px}th{color:var(--muted);z-index:1;background:#f5f8f9;font-size:12px;position:sticky;top:0}tr:hover td,.selected-row td{background:#f2faf9}.sidebar-scrim{display:none}.plate{color:#172025;font-variant-numeric:tabular-nums;background:#ffd25c;border-radius:6px;align-items:center;min-width:78px;min-height:30px;padding:0 8px;font-weight:900;display:inline-flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.neutral,.tone-good{color:var(--green);background:#e5f3eb}.tone-notice{color:var(--blue);background:#e6eef9}.tone-warn{color:var(--amber);background:#fff2dc}.tone-danger,.status-maintenance,.status-special{color:var(--red);background:#fae7e5}.status-active{color:var(--green);background:#e5f3eb}.status-inactive{color:#65717b;background:#e9ecef}.adas-status,.meter-status,.pos-health-status{white-space:nowrap;align-items:center;gap:6px;min-height:28px;font-size:13px;font-weight:800;display:inline-flex}.adas-status svg,.meter-status svg,.pos-health-status svg{flex:none}.adas-normal,.meter-normal,.pos-health-normal{color:#187245}.adas-offline,.meter-offline,.pos-health-offline{color:#b42318}.adas-unavailable,.meter-unavailable,.pos-health-unavailable,.pos-health-unsupported{color:#65717b}.meter-version{color:#172025;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:800}.meter-version-unavailable{color:#65717b;font-family:inherit;font-weight:700}.form-panel{align-self:start}.vehicle-page-content{gap:16px;min-width:0;display:grid}.vehicle-page-content>*{min-width:0}.vehicle-editor-panel{scroll-margin-top:16px}.vehicle-editor-toggle{width:100%;min-height:46px;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:0;display:flex}.vehicle-editor-title{gap:3px;display:grid}.vehicle-editor-title small{color:var(--muted);font-size:13px;font-weight:700}.vehicle-editor-title strong{font-size:19px;line-height:1.2}.vehicle-editor-chevron{background:var(--surface-muted);width:36px;height:36px;color:var(--brand-strong);border-radius:8px;flex:none;place-items:center;display:grid}.vehicle-editor-chevron svg{transition:transform .16s}.vehicle-editor-panel.is-open .vehicle-editor-chevron svg{transform:rotate(180deg)}.vehicle-editor-content{border-top:1px solid var(--line);gap:16px;margin-top:14px;padding-top:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .form-submit,.full{grid-column:1/-1}.form-grid .field:has(textarea){grid-column:1/-1}.form-submit{justify-self:end}.readonly-metric{border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;align-content:center;gap:1px;min-height:42px;padding:7px 11px;display:grid}.readonly-metric output{color:var(--ink);font-weight:800}.readonly-metric small{color:var(--muted)}.config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.config-grid>*{min-width:0}.source-panel{box-shadow:none}.source-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.source-grid article,.mapping-list div{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:4px;padding:10px;display:grid}.source-grid strong,.source-grid span,.source-grid small,.mapping-list strong,.mapping-list code,.mapping-list small{overflow-wrap:anywhere}.source-grid span,.source-grid small,.mapping-list small{color:var(--muted)}.live-source-bar{box-shadow:none;justify-content:space-between;align-items:center;gap:14px;display:flex}.live-source-bar div{gap:4px;min-width:0;display:grid}.live-source-bar strong,.live-source-bar span{overflow-wrap:anywhere}.live-source-bar span{color:var(--muted);font-size:13px}.live-source-bar.source-error{background:#fff8e8;border-color:#efc873}.live-source-bar .live-source-warning{color:var(--red);font-weight:700}.form-error{color:var(--red);overflow-wrap:anywhere;align-self:center;font-size:13px;font-weight:800}.agent-alert-panel{background:#fffdf7;border-color:#efc873}.agent-alert-list{gap:10px;display:grid}.agent-alert-card{background:#fff;border:1px solid #efc873;border-radius:8px;grid-template-columns:minmax(260px,1fr) minmax(260px,.9fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.agent-alert-card>div{min-width:0}.agent-change-flow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.agent-alert-card small,.agent-impact-grid,.agent-confirm-summary small,.connection-warning{color:var(--muted)}.agent-impact-grid{gap:4px;font-size:13px;display:grid}.agent-confirm-summary{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:8px;margin-bottom:14px;padding:12px;display:grid}.action-check{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:10px 12px;font-weight:700;display:flex}.action-check input{width:auto;min-height:auto}.connection-warning{background:#fff8e8;border:1px solid #efc873;border-radius:8px;margin-bottom:10px;padding:10px 12px;font-weight:700}.inline-form{border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;align-items:end;gap:8px;padding:12px;display:flex}.rule-builder{grid-column:1/-1;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) 110px 110px auto;display:grid}.rule-builder input{min-width:82px}.maintenance-block{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:16px;display:grid}.section-title,.filter-title{color:var(--ink);align-items:center;gap:8px;display:flex}.maintenance-title{flex-wrap:wrap;justify-content:space-between}.maintenance-title>span{align-items:center;gap:8px;display:inline-flex}.maintenance-title>small{color:var(--muted);font-weight:700}.maintenance-rule-list{border-top:1px solid var(--line);display:grid}.maintenance-rule-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(200px,.85fr) minmax(200px,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:8px 0;display:grid}.maintenance-rule-row.urgent{padding-left:10px;box-shadow:inset 3px 0 #d59a12}.maintenance-rule-row>div{gap:2px;min-width:0;display:grid}.maintenance-rule-row strong,.maintenance-rule-row span,.maintenance-rule-row small{overflow-wrap:anywhere}.maintenance-rule-row span,.maintenance-rule-row small,.mini-timeline small,.mini-timeline span,.shift-row span,.alert-row span,.parking-tile span{color:var(--muted)}.maintenance-rule-form{grid-template-columns:minmax(180px,1fr) minmax(130px,.5fr) minmax(130px,.5fr) auto;align-items:end;gap:8px;padding-top:4px;display:grid}.record-form{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1fr) 150px 150px 130px minmax(170px,1fr) auto;align-items:end;gap:8px;padding-top:12px;display:grid}.mini-timeline{gap:8px;display:grid}.mini-timeline div{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:3px;padding:10px;display:grid}.empty-inline{color:var(--muted);padding:10px 0}.alert-list,.shift-list,.driver-summary,.deployment-list{gap:10px;display:grid}.alert-row,.shift-row,.parking-tile,.driver-summary article{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;padding:12px}.alert-row{text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;display:grid}.alert-row strong{color:var(--amber)}.shift-row{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px;display:grid}.shift-row div,.shift-row strong,.shift-row span,.parking-tile div,.parking-tile strong,.parking-tile span,.driver-summary article div{min-width:0}.shift-row strong,.shift-row span,.parking-tile strong,.parking-tile span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.date-box{width:50px;height:44px;color:var(--brand-strong);background:#e7f3f2;border-radius:8px;place-items:center;font-weight:900;display:grid}.parking-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.parking-tile{gap:10px;display:grid}meter{width:100%;height:10px}.checkbox-group,.approval-box{gap:9px;display:grid}.approval-box{container-type:inline-size}.checkbox-group label,.approval-row label,.deployment-list label{overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;display:inline-flex}.checkbox-group{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-group>span{grid-column:1/-1}.approval-row{grid-template-columns:120px minmax(0,1fr) 150px;align-items:center;gap:8px;display:grid}.approval-row>input{min-width:0}@container (width<=520px){.approval-row{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:6px;padding-bottom:12px}.approval-row:last-child{border-bottom:0;padding-bottom:0}}.permission-grid{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(180px,1fr) repeat(4,minmax(90px,.4fr));display:grid;overflow:hidden}.permission-head,.permission-page,.permission-toggle{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;justify-content:center;align-items:center;gap:8px;min-height:48px;display:flex}.permission-head,.permission-page{justify-content:flex-start;padding:0 12px;font-weight:800}.permission-head{color:var(--muted);background:#f5f8f9}.permission-toggle.enabled{color:var(--green);background:#eef8f2}.segmented{border:1px solid var(--line);background:#fff;border-radius:8px;height:42px;display:inline-flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);min-width:62px;color:var(--muted);background:#fff;padding:0 14px;font-weight:800}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:var(--brand)}.filter-panel{grid-template-columns:auto minmax(180px,.55fr) minmax(180px,.55fr) minmax(180px,.4fr);align-items:start;gap:14px;display:grid}.schedule-flow-grid{grid-template-columns:minmax(240px,.45fr) minmax(280px,.55fr) minmax(0,1.35fr);align-items:start;gap:16px;display:grid}.schedule-month-label{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:900}.schedule-toolbar .toolbar-refresh{margin-left:auto}.schedule-vehicle-filters{gap:10px;margin-bottom:12px;display:grid}.schedule-plate-search{border:1px solid var(--line);background:#fff;border-radius:7px;align-items:center;gap:7px;min-width:0;height:42px;padding:0 5px 0 10px;display:flex}.schedule-plate-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #0d73771f}.schedule-plate-search input{min-width:0;min-height:38px;box-shadow:none;border:0;outline:0;padding:7px 2px}.schedule-plate-search input:focus{box-shadow:none;border:0}.schedule-plate-search .icon-button{width:32px;min-width:32px;min-height:32px;padding:0}.schedule-picker-panel,.schedule-calendar-panel{min-height:360px}.vehicle-pick-list,.authorized-driver-list,.security-list{gap:8px;display:grid}.vehicle-pick-list,.authorized-driver-list{max-height:520px;overflow:auto}.pick-row{border:1px solid var(--line);text-align:left;min-height:58px;color:var(--text);background:#fff;border-radius:8px;gap:3px;padding:10px;display:grid}.pick-row.active{border-color:var(--brand);background:#eaf5ef}.pick-row small,.security-list span{color:var(--muted)}.authorized-add-form,.staff-upload-form{gap:10px;margin-bottom:14px;display:grid}.self-apply-form textarea{resize:vertical;min-height:86px}.self-authorized-list{max-height:180px;margin-bottom:12px}.rejected-list{gap:6px;margin:8px 0 12px;display:grid}.rejected-list span{color:var(--red);overflow-wrap:anywhere;background:#fff5f4;border:1px solid #efc1bd;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:800}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.month-head{color:var(--muted);text-align:center;margin-bottom:8px;font-size:13px;font-weight:800}.month-cell{border:1px solid var(--line);text-align:left;min-height:92px;color:var(--text);background:#fff;border-radius:8px;align-content:start;gap:6px;padding:9px;display:grid}.month-cell.usage-none{border-color:var(--line);background:#fff}.month-cell.usage-one{background:#fff3bf;border-color:#e7be4d}.month-cell.usage-two{background:#ffd8a8;border-color:#f08c00}.month-cell.blank{background:0 0;border-color:#0000}.month-cell.copy-target{outline-offset:-4px;outline:3px solid #1b75bb59}.month-cell.public-holiday{box-shadow:inset 3px 0 #c74b43}.month-cell .holiday-name{max-width:100%;color:var(--red);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800;line-height:1.25;display:block;overflow:hidden}.month-cell strong{justify-content:space-between;align-items:center;gap:6px;display:flex}.month-cell strong small{color:#6d5b20;background:#ffffffb8;border-radius:999px;padding:2px 6px;font-size:11px;font-weight:900}.month-cell span{color:var(--green);background:#1c7e601c;border-radius:6px;padding:3px 5px;font-size:12px;font-weight:800;display:block}.schedule-heading-side{justify-items:end;gap:8px;display:grid}.schedule-create-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.usage-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.usage-legend span{align-items:center;gap:4px;display:inline-flex}.usage-dot{border:1px solid var(--line);background:#fff;border-radius:3px;width:12px;height:12px}.usage-dot.usage-one{background:#fff3bf;border-color:#e7be4d}.usage-dot.usage-two{background:#ffd8a8;border-color:#f08c00}.shift-quick-actions{align-items:center;gap:10px;display:flex}.shift-quick-actions .text-button{flex:none}.modal.monthly-shift-modal{grid-template-rows:auto minmax(0,1fr) auto;width:min(900px,100%);display:grid;overflow:hidden}.monthly-shift-form{align-items:start;min-height:0;padding-right:4px;overflow-y:auto}.monthly-shortcuts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:10px;padding:12px 0;display:grid}.monthly-shortcut-row{grid-template-columns:92px minmax(0,1fr);align-items:start;gap:10px;display:grid}.monthly-shortcut-row>strong{min-height:40px;color:var(--green);align-items:center;gap:7px;display:inline-flex}.monthly-shortcut-row.off-duty>strong{color:var(--red)}.monthly-shortcut-row>div{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.monthly-shortcut-row .text-button{min-height:36px;padding:0 10px}.monthly-date-selection{gap:9px;min-width:0;display:grid}.monthly-selection-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.monthly-selection-heading span{color:var(--muted);font-size:13px;font-weight:800}.monthly-date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.monthly-date-head{color:var(--muted);text-align:center;font-size:12px;font-weight:800}.monthly-date-button,.monthly-date-blank{min-width:0;min-height:54px}.monthly-date-button{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:7px;align-content:center;justify-items:center;gap:2px;padding:6px;display:grid}.monthly-date-button small{width:100%;color:var(--red);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:800;overflow:hidden}.monthly-date-button.public-holiday,.monthly-date-button.sunday{color:var(--red);border-color:#e0aaa6}.monthly-date-button.selected{border-color:var(--brand);color:var(--brand-strong);box-shadow:inset 0 0 0 1px var(--brand);background:#dff0eb}.monthly-date-button.selected small{color:#8f2f2a}.monthly-modal-actions .form-error{margin-right:auto}.monthly-modal-actions{border-top:1px solid var(--line);background:#fff;margin-top:0;padding-top:14px}.copy-bar{border:1px solid var(--line);background:#f5f8f9;border-radius:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;padding:10px;display:flex}.copy-bar span,.form-success{color:var(--green);font-weight:800}.access-scope-panel{min-width:0}.access-scope-tabs{margin-bottom:14px}.access-scope-layout{border-top:1px solid var(--line);grid-template-columns:minmax(290px,.42fr) minmax(0,1fr);min-height:560px;margin:14px -16px -16px;display:grid}.access-scope-controls,.access-scope-results{min-width:0;padding:16px}.access-scope-controls{border-right:1px solid var(--line);background:#f7f9fa;flex-direction:column;gap:14px;display:flex}.access-account-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:54px;color:var(--brand-strong);align-items:center;gap:10px;display:flex}.access-account-line span,.access-account-line strong,.access-account-line small{min-width:0;display:block}.access-account-line strong{overflow-wrap:anywhere}.access-account-line small{color:var(--muted);margin-top:2px}.access-section-heading,.access-result-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.access-section-heading strong,.access-section-heading small,.access-result-heading p,.access-result-heading h3{display:block}.access-section-heading small,.access-result-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.access-result-heading h3{color:var(--ink);margin:3px 0 0;font-size:18px}.access-owner-list{border:1px solid var(--line);background:#fff;border-radius:8px;max-height:360px;overflow:auto}.access-owner-option{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:56px;padding:9px 11px;display:flex}.access-owner-option:last-child{border-bottom:0}.access-owner-option:has(input:checked){background:#eaf5f3}.access-owner-option.inactive{color:var(--muted);background:#f5f6f7}.access-owner-option span,.access-owner-option strong,.access-owner-option small{min-width:0;display:block}.access-owner-option strong{overflow-wrap:anywhere}.access-owner-option small{color:var(--muted);margin-top:2px}.access-scope-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px;display:flex}.access-scope-actions .primary-button{flex:100%}.access-scope-results{flex-direction:column;gap:12px;display:flex}.access-vehicle-search{border:1px solid var(--line);background:var(--surface-muted);width:min(330px,100%);height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.access-vehicle-search input{min-height:38px;box-shadow:none;background:0 0;border:0;padding:0}.access-vehicle-scroll{max-height:62vh}.access-vehicle-table{min-width:620px}.access-vehicle-table th{z-index:2;background:#f5f8f9;position:sticky;top:0}.access-vehicle-table th:first-child:has(+th){width:54px}.access-vehicle-table tr.selected-row td{background:#edf7f3}.access-selection-count{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:baseline;gap:6px;padding:14px 0;display:flex}.access-selection-count strong{color:var(--brand-strong);font-size:30px}.access-selection-count span{color:var(--muted);font-weight:700}.report-toolbar{flex-wrap:wrap}.report-kind-switch button{justify-content:center;align-items:center;gap:7px;min-width:160px;display:inline-flex}.report-authorized-toggle{border:1px solid var(--line);cursor:pointer;background:#fbfcfd;border-radius:8px;align-items:center;gap:9px;min-height:42px;padding:6px 10px;display:inline-flex}.report-authorized-toggle>span{color:var(--ink);gap:1px;font-size:13px;font-weight:800;display:grid}.report-authorized-toggle small{color:var(--muted);font-size:10px;font-weight:700}.report-retry-button{max-width:min(420px,100%)}.report-period-actions{align-items:center;gap:6px;display:inline-flex}.driver-roster-report{min-width:0}.report-week-block+.report-week-block{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.report-week-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:0 2px 8px;display:flex}.report-week-heading strong{font-size:15px}.report-week-heading span{color:var(--muted);font-size:12px;font-weight:700}.driver-roster-scroll{max-height:68vh}.driver-roster-table{border-collapse:separate;border-spacing:0;table-layout:fixed}.driver-roster-table th,.driver-roster-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:48px;padding:7px 8px}.driver-roster-table thead tr:first-child th{z-index:4;height:42px;top:0}.driver-roster-table thead tr:nth-child(2) th{z-index:4;height:34px;top:42px}.driver-roster-table .report-driver-column{z-index:3;background:#fff;width:130px;position:sticky;left:0}.driver-roster-table .report-phone-column{z-index:3;background:#fff;width:120px;position:sticky;left:130px}.vehicle-rental-table .report-vehicle-column{z-index:3;background:#fff;width:110px;position:sticky;left:0}.vehicle-rental-table .report-driver-column{width:130px;left:110px}.vehicle-rental-table .report-phone-column{width:120px;left:240px}.driver-roster-table thead .report-driver-column,.driver-roster-table thead .report-phone-column,.driver-roster-table thead .report-vehicle-column{z-index:6;background:#f5f8f9}.driver-roster-table .report-date-column{text-align:center;white-space:nowrap;width:108px}.driver-roster-table .report-date-column.sunday{color:var(--red);background:#fff4f3}.driver-roster-table .report-date-column.outside-range,.driver-roster-table .report-date-column.sunday.outside-range,.driver-roster-table .report-empty-duty-cell.outside-range{color:#8d9a9f;background:#f4f6f7}.driver-roster-table tr:hover .report-driver-column,.driver-roster-table tr:hover .report-phone-column,.driver-roster-table tr:hover .report-vehicle-column,.driver-roster-table tr:hover .report-empty-duty-cell{background:#f2faf9}.report-phone-button{width:100%;min-height:34px;color:var(--ink);text-align:left;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:6px;padding:0 6px;font-weight:800}.report-phone-button:hover,.report-phone-button:focus-visible,.report-phone-button.revealed{color:var(--brand-strong);background:#e7f3f2;border-color:#a9d3d0}.report-phone-full,.report-phone-button.revealed .report-phone-masked{display:none}.report-phone-button.revealed .report-phone-full{display:inline}.driver-roster-table .report-duty-cell,.driver-roster-table tr:hover .report-duty-cell{color:#fff;white-space:normal;background:#176783}.driver-roster-table .report-rental-cell,.driver-roster-table tr:hover .report-rental-cell{background:#176783;border-right-color:#176783}.report-duty-cell>span{border-bottom:1px solid #ffffff59;gap:1px;padding:3px 0;display:grid}.report-duty-cell>span:last-child{border-bottom:0}.report-duty-cell strong,.report-duty-cell small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.report-duty-cell small{color:#e2f4fa;font-size:10px;font-weight:700}.report-empty-duty-cell{background:#fff}.schedule-panel{padding-bottom:0}.hint{color:var(--muted);font-size:13px}.schedule-scroll{border:1px solid var(--line);border-radius:8px 8px 0 0;max-height:68vh;overflow:auto}.schedule-grid{min-width:900px;display:grid}.schedule-cell{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-height:70px;padding:8px;display:flex;overflow:hidden}.schedule-cell.sticky{z-index:3;background:#f5f8f9;position:sticky;top:0}.schedule-cell.corner{z-index:4;left:0}.time-cell{z-index:2;background:#f7fafb;position:sticky;left:0}.time-cell strong,.time-cell span,.vehicle-head small,.shift-cell span,.shift-cell small{color:var(--muted)}.vehicle-head{text-align:center;align-items:center}.shift-cell{color:var(--muted)}.shift-cell:hover{background:#eef8f7}.shift-cell.filled{color:var(--green);background:#eaf5ef;align-items:flex-start}.shift-cell.filled strong,.shift-cell.filled span,.shift-cell.filled small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.log-panel{max-width:100%}.modal-backdrop{z-index:20;background:#131e246b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);background:#fff;border-radius:8px;width:min(720px,100%);max-height:90vh;padding:18px;overflow:auto;box-shadow:0 24px 80px #1d252b40}.password-modal{width:min(520px,100%)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.driver-summary article{grid-template-columns:minmax(0,1fr) minmax(120px,.8fr) auto;align-items:center;gap:12px;display:grid}.driver-summary span{color:var(--muted)}.integration-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.integration-card{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:12px;padding:14px;display:grid}.integration-title{align-items:center;gap:10px;display:flex}.integration-title span{color:var(--muted);font-size:13px;display:block}.mapping-list{gap:8px;display:grid}.connection-meta{border:1px solid var(--line);color:var(--muted);background:#f5f8f9;border-radius:8px;gap:4px;padding:10px;font-size:12px;display:grid}.connection-meta span{overflow-wrap:anywhere}.mapping-list>span{color:var(--muted);font-size:13px;font-weight:800}.mapping-list code{color:var(--brand-strong);font-size:12px}.deployment-list{grid-template-columns:repeat(2,minmax(0,1fr))}.empty-state{min-height:132px;color:var(--muted);text-align:center;border:1px dashed #bfd0d6;border-radius:8px;align-content:center;place-items:center;gap:6px;padding:16px;display:grid}.empty-state strong{color:var(--ink)}@media (width<=1180px){.stats-grid,.parking-strip,.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-grid,.work-grid,.work-grid.wide-left,.config-grid,.source-grid,.filter-panel,.agent-alert-card,.schedule-flow-grid,.access-scope-layout{grid-template-columns:1fr}.access-scope-controls{border-right:0;border-bottom:1px solid var(--line)}.record-form,.maintenance-rule-form{grid-template-columns:repeat(2,minmax(0,1fr))}.record-form .primary-button,.maintenance-rule-form .primary-button{grid-column:1/-1}}@media (width<=780px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:30;width:min(280px,86vw);transition:transform .16s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:29;background:#0f1c217a;border:0;padding:0;display:block;position:fixed;inset:0}main{padding:14px}.mobile-menu{display:inline-flex}.topbar{align-items:flex-start;margin-top:0;padding-top:4px}.topbar h1{font-size:24px}.topbar-actions{display:none}.stats-grid,.parking-strip,.integration-grid,.deployment-list,.form-grid,.maintenance-grid{grid-template-columns:1fr}.access-scope-tabs{width:100%}.access-scope-tabs button{flex:50%;min-width:0;padding:0 8px}.access-scope-layout{min-height:0}.access-result-heading{flex-direction:column;align-items:stretch}.access-vehicle-search{width:100%}.access-scope-actions>button{flex:130px}.access-scope-actions .primary-button{flex-basis:100%}.report-toolbar .segmented,.report-period-actions{width:100%}.report-toolbar .report-kind-switch button{min-width:0}.report-authorized-toggle{width:100%}.report-toolbar .segmented button,.report-period-actions .text-button{flex:1 1 0}.report-toolbar .field{flex:130px}.report-toolbar>.primary-button,.report-toolbar>.text-button{flex:150px}.driver-roster-table .report-driver-column{width:105px}.driver-roster-table .report-phone-column{width:105px;left:105px}.vehicle-rental-table .report-vehicle-column{width:82px}.vehicle-rental-table .report-driver-column{width:100px;left:82px}.vehicle-rental-table .report-phone-column{width:105px;position:static}.month-grid{gap:5px}.month-cell{min-height:76px;padding:7px}.schedule-toolbar .toolbar-refresh{width:100%;margin-left:0}.schedule-heading-side,.schedule-create-actions{justify-content:stretch;justify-items:stretch;width:100%}.schedule-create-actions>button{flex:140px}.monthly-shift-modal{padding:14px}.monthly-shortcut-row{grid-template-columns:1fr;gap:4px}.monthly-shortcut-row>div{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.monthly-shortcut-row .text-button{width:100%;padding:0 6px}.monthly-date-grid{gap:4px}.monthly-date-button,.monthly-date-blank{min-height:42px}.monthly-date-button{padding:4px 2px}.monthly-date-button small{display:none}.monthly-selection-heading,.monthly-modal-actions{flex-direction:column;align-items:stretch}.monthly-modal-actions>button{width:100%}.approval-row{grid-template-columns:1fr}.live-source-bar{flex-direction:column;align-items:stretch}.permission-grid{grid-template-columns:minmax(140px,1fr) repeat(4,74px);overflow-x:auto}.inline-form{flex-wrap:wrap}.rule-builder{grid-template-columns:1fr}.rule-builder .icon-button{justify-self:end}.maintenance-rule-row{grid-template-columns:minmax(0,1fr) auto}.maintenance-rule-row>small{grid-area:2/1/auto/-1}.record-form,.maintenance-rule-form{grid-template-columns:1fr}.record-form .primary-button,.maintenance-rule-form .primary-button{grid-column:auto;width:100%}}@media print{@page{size:landscape;margin:7mm}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff;min-width:0}.sidebar,.sidebar-scrim,.topbar,.reports-page>:not(.driver-roster-report){display:none!important}.app-shell{min-height:0;display:block}main{padding:0}.reports-page,.driver-roster-report{display:block}.driver-roster-report{box-shadow:none;border:0;padding:0}.driver-roster-report .panel-heading{margin-bottom:4mm}.driver-roster-report .panel-heading h2{font-size:13px}.report-week-block+.report-week-block{border-top:0;margin-top:0;padding-top:0}.monthly-roster-report .report-week-block+.report-week-block{break-before:page}.report-week-heading{break-after:avoid;margin:0 0 2mm}.report-week-heading strong,.report-week-heading span{font-size:8px}.driver-roster-scroll{border:1px solid #aeb8bc;max-height:none;overflow:visible}.driver-roster-table{table-layout:fixed;font-size:6.5px;width:100%!important;min-width:100%!important}.driver-roster-table th,.driver-roster-table td{height:8mm;padding:1mm;font-size:6.5px;width:auto!important;position:static!important}.driver-roster-table .report-driver-column,.driver-roster-table .report-phone-column{width:8%!important}.vehicle-rental-table .report-vehicle-column{width:7%!important}.report-phone-button{min-height:0;padding:0;font-size:6.5px;color:#1a262b!important;background:0 0!important;border:0!important}.report-phone-button .report-phone-masked{display:inline!important}.report-phone-button .report-phone-full{display:none!important}.report-duty-cell strong,.report-duty-cell small{font-size:5.5px}.driver-roster-table .empty-state{border:0;min-height:20mm}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
