@font-face{font-family:Sarabun;font-style:normal;font-display:block;font-weight:300 800;src:url(/assets/fonts/sarabun/sarabun-thai-400-normal.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-display:block;font-weight:300 800;src:url(/assets/fonts/sarabun/sarabun-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-display:block;font-weight:500;src:url(/assets/fonts/material-symbols-rounded/material-symbols-rounded-latin-500-normal.woff2) format("woff2")}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#f8fafc}*{box-sizing:border-box;scrollbar-color:#64748b transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#64748b;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#2563eb;background-clip:content-box}button,input,select,textarea{font:inherit}a{color:inherit}app-root{display:block;width:100vw;height:100dvh;min-width:0;min-height:0;overflow:hidden}.toast-container{position:fixed;z-index:1500;top:18px;right:18px;display:grid;width:min(420px,calc(100vw - 36px));gap:10px;pointer-events:none}.toast-message,.toast-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;border:1px solid #cbd5e1;border-left-width:5px;border-radius:8px;padding:12px;background:#fff;box-shadow:0 18px 44px #0f172a2e;color:#0f172a;pointer-events:auto}.toast-icon{margin-top:1px;font-size:22px}.toast-copy{display:grid;gap:2px;min-width:0}.toast-copy strong,.toast-copy p{margin:0;overflow-wrap:anywhere}.toast-copy strong{font-size:14px;line-height:1.25}.toast-copy p{color:#334155;font-size:13px;font-weight:700;line-height:1.4}.toast-dismiss{display:inline-grid;width:30px;min-width:30px;min-height:30px;place-items:center;border:0;border-radius:8px;padding:0;color:#64748b;background:transparent}.toast-dismiss .material-symbols-rounded{margin:0;font-size:18px}.toast-message.toast-success,.toast-item.tone-success{border-left-color:#059669}.toast-message.toast-success .toast-icon,.toast-item.tone-success .toast-icon{color:#047857}.toast-message.toast-error,.toast-item.tone-error{border-left-color:#dc2626}.toast-message.toast-error .toast-icon,.toast-item.tone-error .toast-icon{color:#b91c1c}.toast-message.toast-warning,.toast-item.tone-warning{border-left-color:#d97706}.toast-message.toast-warning .toast-icon,.toast-item.tone-warning .toast-icon{color:#b45309}.toast-message.toast-info,.toast-item.tone-info{border-left-color:#2563eb}.toast-message.toast-info .toast-icon,.toast-item.tone-info .toast-icon{color:#1d4ed8}@media(max-width:760px){.toast-container{top:10px;right:10px;left:10px;width:auto}}button,.button{min-height:44px;border:0;border-radius:8px;padding:0 14px;color:#fff;background:#2563eb;font-weight:800;cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}button.secondary,.button.secondary{border:1px solid #cbd5e1;color:#334155;background:#fff}button .material-symbols-rounded,.button .material-symbols-rounded{margin-right:6px;font-size:19px}.icon-button{display:inline-grid;width:38px;min-width:38px;padding:0;place-items:center}.icon-button .material-symbols-rounded{margin:0}.back-button{display:inline-flex;align-items:center;border:1px solid #bfdbfe;color:#1d4ed8;background:#eff6ff;text-decoration:none}.metric-grid,.page-grid,.settings-grid{display:grid;gap:10px;min-width:0}.dashboard-page{display:grid;gap:12px;padding-bottom:16px}.quick-actions-panel{display:flex;justify-content:flex-end;margin-top:-2px}.quick-actions-panel button,.detail-hero button{display:inline-flex;align-items:center}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}.page-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);margin-bottom:10px}.chart-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-section-grid,.dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.dashboard-section-grid>.panel,.dashboard-chart-grid>.panel{height:100%}.vehicle-detail-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.fleet-status-overview{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px;min-width:0;margin-bottom:10px}.status-summary-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.status-summary-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:0;min-height:108px;border:1px solid #e2e8f0;border-radius:8px;padding:14px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.status-summary-card>.material-symbols-rounded{width:42px;height:42px;border-radius:8px;color:#fff;background:#2563eb}.status-summary-card p,.status-summary-card small{margin:0;color:#64748b;font-size:12px;font-weight:800}.status-summary-card strong{display:block;margin:2px 0;color:#0f172a;font-size:28px;line-height:1}.status-summary-card.tone-online>.material-symbols-rounded{background:#10b981}.status-summary-card.tone-idle>.material-symbols-rounded{background:#f59e0b}.status-summary-card.tone-risk>.material-symbols-rounded{background:#ef4444}.status-summary-card.tone-offline>.material-symbols-rounded{background:#94a3b8}.status-chart-panel{grid-template-rows:auto 220px}.status-chart-panel app-apex-chart{height:220px}.driver-command-grid,.driver-insight-grid,.driver-overview-grid{display:grid;gap:10px;min-width:0;margin-bottom:10px}.driver-command-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.driver-overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:stretch}.driver-insight-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.driver-intelligent-workflow{margin-bottom:10px}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workflow-card{display:grid;align-content:start;gap:10px;min-width:0;border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#f8fafc}.workflow-card header,.workflow-row,.workflow-actions,.audit-strip{display:flex;align-items:center;gap:10px;min-width:0}.workflow-card header,.workflow-row{justify-content:space-between}.workflow-card h3{margin:0;color:#0f172a;font-size:14px}.workflow-list{display:grid;gap:8px;min-width:0}.workflow-row{min-height:72px;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fff}.workflow-row>span:first-child,.audit-strip span{display:grid;gap:2px;min-width:0}.workflow-row strong,.audit-strip strong{overflow:hidden;color:#0f172a;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.workflow-row small,.audit-strip small{overflow:hidden;color:#64748b;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.workflow-actions{flex-wrap:wrap;justify-content:flex-end}.workflow-actions .table-action-button{min-height:44px}.audit-strip{flex-wrap:wrap;margin-top:10px;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fff}.audit-strip span{min-width:190px;flex:1 1 190px}.driver-command-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;min-width:0;min-height:118px;border:1px solid #e2e8f0;border-radius:8px;padding:15px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.driver-command-card>.material-symbols-rounded{width:44px;height:44px;border-radius:8px;color:#fff;background:#2563eb}.driver-command-card p,.driver-command-card small{margin:0;color:#64748b;font-size:12px;font-weight:800}.driver-command-card strong{display:block;margin:3px 0 2px;color:#0f172a;font-size:29px;line-height:1}.driver-command-card.tone-score>.material-symbols-rounded{background:#2563eb}.driver-command-card.tone-risk>.material-symbols-rounded{background:#ef4444}.driver-command-card.tone-trips>.material-symbols-rounded{background:#14b8a6}.driver-command-card.tone-distance>.material-symbols-rounded{background:#7c3aed}.panel,.metric-card,.detail-hero{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.panel,.detail-hero{padding:16px}.metric-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon label" "icon value";align-items:center;gap:4px 12px;min-height:112px;padding:16px}.metric-card.compact{grid-template-columns:minmax(0,1fr);grid-template-areas:"label" "value"}.metric-icon{display:grid;grid-area:icon;width:42px;height:42px;place-items:center;border-radius:8px;color:#fff;background:#2563eb;font-weight:900}.material-symbols-rounded{display:inline-flex;align-items:center;justify-content:center;font-family:Material Symbols Rounded;font-size:22px;font-weight:500;font-style:normal;line-height:1;letter-spacing:0;text-transform:none;white-space:nowrap;direction:ltr;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased}.metric-card p,.panel-header p,.detail-hero p{margin:0;color:#64748b;font-size:13px}.metric-card p{grid-area:label;font-weight:700}.metric-card div:last-child{display:flex;grid-area:value;align-items:center;gap:10px;min-width:0}.metric-card strong{color:#0f172a;font-size:28px;line-height:1}.panel-header,.detail-hero,.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.compact-actions{justify-content:flex-end}.panel-header{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.panel-header h2,.detail-hero h2{margin:0;color:#0f172a;font-size:18px;line-height:1.25}.panel-header a{color:#2563eb;font-size:13px;font-weight:800;text-decoration:none}.detail-hero{margin-bottom:10px}.detail-hero h2{margin-top:4px;font-size:24px}.eyebrow{color:#2563eb;font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.chart-panel{display:grid;align-content:start;grid-template-rows:auto 210px;min-height:0;padding:12px}.chart-panel.tall{grid-template-rows:auto 250px}.chart-panel .panel-header{margin-bottom:8px;padding-bottom:8px}.chart-panel .panel-header h2{font-size:16px}.chart-panel .panel-header p{font-size:12px}.chart-panel app-apex-chart{display:block;min-height:0;overflow:hidden;height:210px}.chart-panel.tall app-apex-chart{height:250px}.daily-risk-panel{display:grid;align-content:start;gap:12px;min-width:0}.daily-risk-header{align-items:flex-start}.date-between-filter{display:grid;grid-template-columns:repeat(2,minmax(138px,1fr));gap:8px;min-width:min(100%,320px)}.date-between-filter label span{margin-bottom:4px;font-size:11px}.date-between-filter input{min-height:36px;padding:7px 9px;font-size:12px;font-weight:800}.data-table{display:grid;align-items:center;overflow:auto;color:#334155;font-size:14px}.table-shell{width:100%;overflow-x:auto;border:1px solid #f1f5f9;border-radius:8px}.table-shell .data-table{border:0}.fleet-table{grid-template-columns:minmax(130px,1fr) minmax(160px,1.2fr) minmax(90px,.8fr) minmax(180px,1.2fr) repeat(2,minmax(90px,.8fr))}.fleet-table.expanded{min-width:1120px;grid-template-columns:minmax(110px,.75fr) minmax(110px,.78fr) minmax(150px,.95fr) minmax(95px,.62fr) minmax(160px,1fr) minmax(80px,.5fr) minmax(150px,.95fr) minmax(125px,.78fr) minmax(160px,.95fr)}.dashboard-fleet-table{min-width:820px}.dashboard-table-shell{max-height:360px}.dashboard-table-shell .dashboard-scroll-table{max-height:none;min-width:760px}.dashboard-table-shell .dashboard-fleet-table{grid-template-columns:minmax(120px,.85fr) minmax(150px,1fr) minmax(110px,.72fr) minmax(150px,1fr) minmax(80px,.5fr) minmax(150px,1fr)}.dashboard-table-shell .driver-score-table{min-width:720px;grid-template-columns:minmax(190px,1.25fr) minmax(150px,.95fr) minmax(80px,.52fr) minmax(120px,.72fr) minmax(90px,.55fr)}.dashboard-scroll-table{max-height:360px;border:1px solid #f1f5f9;border-radius:8px}.dashboard-scroll-table>strong{position:sticky;z-index:2;top:0;border-bottom-color:#e2e8f0}.table-control-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.46fr) auto;align-items:end;gap:10px;margin-bottom:10px}.table-control-bar label{min-width:0}.table-control-bar label>span:not(.material-symbols-rounded){display:block;margin-bottom:5px;color:#64748b;font-size:12px;font-weight:900}.table-control-bar input,.table-control-bar select{min-height:38px;padding:8px 10px;font-size:13px;font-weight:800}.search-field{position:relative}.search-field .material-symbols-rounded{position:absolute;top:50%;left:10px;color:#94a3b8;font-size:19px;transform:translateY(-50%);pointer-events:none}.search-field input{padding-left:36px}.table-result-count{min-height:38px;display:inline-flex;align-items:center;justify-content:flex-end;color:#64748b;font-size:12px;font-weight:900;white-space:nowrap}.table-empty{grid-column:1 / -1;margin:0;color:#64748b;background:#fff;font-weight:800;text-align:center}.driver-table,.driver-score-table,.risk-event-table,.alert-table{min-width:760px;grid-template-columns:minmax(170px,1.2fr) repeat(5,minmax(90px,.8fr))}.driver-table-shell{max-width:100%}.driver-table{min-width:1480px;grid-template-columns:minmax(180px,1.2fr) minmax(120px,.78fr) minmax(112px,.72fr) minmax(150px,.9fr) minmax(190px,1.05fr) minmax(180px,1fr) minmax(210px,1.2fr) minmax(86px,.55fr) minmax(112px,.7fr) minmax(150px,.9fr)}.driver-ranking-filters{margin-bottom:12px}.driver-score-reason{color:#475569;font-size:12px;font-weight:800}.alert-action-table{min-width:1240px;grid-template-columns:minmax(96px,.6fr) minmax(100px,.65fr) minmax(240px,1.35fr) minmax(100px,.65fr) minmax(170px,.9fr) minmax(130px,.75fr) minmax(80px,.5fr) minmax(240px,1.2fr)}.risk-event-table{min-width:980px;grid-template-columns:minmax(82px,.6fr) minmax(180px,1.2fr) minmax(110px,.8fr) minmax(170px,1.1fr) minmax(100px,.7fr) minmax(90px,.6fr) minmax(130px,.9fr)}.daily-risk-table{min-width:620px;grid-template-columns:minmax(120px,1fr) repeat(3,minmax(74px,.62fr)) minmax(72px,.58fr) minmax(120px,.9fr)}.daily-risk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.daily-risk-card{display:grid;gap:12px;min-width:0;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.daily-risk-card header,.daily-risk-card footer,.daily-risk-breakdown{display:flex;align-items:center;justify-content:space-between;gap:8px}.daily-risk-card header{align-items:flex-start}.daily-risk-card header strong,.daily-risk-card footer{color:#0f172a;font-size:13px;font-weight:900}.daily-risk-card header .score-value{white-space:nowrap}.daily-risk-breakdown>span{display:grid;justify-items:center;gap:4px;min-width:0}.daily-risk-breakdown small{color:#64748b;font-size:11px;font-weight:800}.wellness-table{min-width:980px;grid-template-columns:minmax(180px,1.2fr) minmax(110px,.72fr) minmax(220px,1.35fr) repeat(4,minmax(90px,.68fr))}.wellness-source{display:grid;align-content:center;gap:2px;min-width:0}.risk-count{display:inline-grid;width:34px;height:28px;place-items:center;border-radius:8px;font-weight:900}.risk-count.critical{color:#b91c1c;background:#fee2e2}.risk-count.warning{color:#92400e;background:#fef3c7}.risk-count.info{color:#1d4ed8;background:#dbeafe}.daily-risk-total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #f1f5f9;padding-top:12px;color:#64748b;font-size:13px;font-weight:900}.daily-risk-total strong{color:#0f172a;font-size:16px}.driver-score-table{min-width:680px;grid-template-columns:minmax(170px,1.2fr) repeat(4,minmax(90px,.8fr))}.driver-trip-table{min-width:1080px;grid-template-columns:minmax(90px,.6fr) minmax(100px,.7fr) minmax(220px,1.3fr) minmax(100px,.7fr) minmax(300px,1.7fr) minmax(80px,.5fr)}.training-table{min-width:1180px;grid-template-columns:minmax(220px,1.3fr) minmax(110px,.7fr) minmax(260px,1.4fr) repeat(3,minmax(100px,.7fr)) minmax(120px,.8fr)}.score-value{color:#0f172a;font-weight:900}.driver-score-cell{display:grid;align-content:center;gap:6px}.driver-score-cell strong{color:#0f172a;font-size:15px}.driver-live-cell{display:grid;align-content:center;gap:3px;min-width:0}.driver-live-cell strong{font-size:13px}.driver-live-cell small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-live-cell.tone-moving strong{color:#047857}.driver-live-cell.tone-idle strong{color:#b45309}.driver-live-cell.tone-stale strong,.driver-live-cell.tone-no_gps strong{color:#475569}.score-bar,.score-band-track{display:block;width:100%;overflow:hidden;border-radius:999px;background:#e2e8f0}.score-bar{height:7px}.score-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#14b8a6,#2563eb)}.coaching-list,.score-band-list{display:grid;gap:8px}.coaching-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;border:1px solid #e2e8f0;border-radius:8px;padding:10px;color:#0f172a;background:#f8fafc;text-decoration:none}.coaching-row:hover{border-color:#bfdbfe;background:#eff6ff}.driver-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;color:#1d4ed8;background:#dbeafe;font-size:13px;font-weight:900}.coaching-row strong,.coaching-row small{display:block}.coaching-row small{margin-top:2px;color:#64748b;font-size:12px;font-weight:800}.coaching-score{min-width:42px;color:#b91c1c;font-size:22px;font-weight:900;text-align:right}.score-band-row{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(0,1fr) 48px;align-items:center;gap:12px;min-height:58px;border-bottom:1px solid #f1f5f9}.score-band-row:last-child{border-bottom:0}.score-band-row strong,.score-band-row small{display:block}.score-band-row strong{color:#0f172a;font-size:14px}.score-band-row small{margin-top:3px;color:#64748b;font-size:12px;font-weight:800}.score-band-track{height:10px}.score-band-track>span{display:block;height:100%;min-width:6px;border-radius:inherit}.score-band-track .tone-good{background:#10b981}.score-band-track .tone-watch{background:#f59e0b}.score-band-track .tone-risk{background:#ef4444}.score-band-row b{color:#334155;font-size:13px;text-align:right}.risk-reason{color:#b45309;font-weight:800}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;border-top:1px solid #f1f5f9;padding-top:12px;color:#64748b;font-size:13px;font-weight:800}.pagination-info{min-width:0}.pagination-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.pagination-actions span{color:#334155}.pagination-actions button{min-height:34px;padding:0 12px}.pagination-actions button:disabled{opacity:.45;cursor:not-allowed}.form-panel{margin-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .wide{grid-column:1 / -1}.single-column{grid-template-columns:minmax(0,1fr)}.account-settings-grid,.account-layout,.account-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:10px;align-items:start}.account-profile-panel{display:grid;gap:12px}.account-summary-panel,.account-summary,.account-forms{display:grid;gap:12px;min-width:0}.account-summary-panel{justify-items:start}.account-summary-panel h2,.account-summary h2,.account-summary-panel p,.account-summary p{margin:0}.account-summary-panel h2,.account-summary h2{color:#0f172a;font-size:20px}.account-summary-panel p,.account-summary p{margin-top:4px;color:#64748b;font-size:13px;font-weight:800}.account-avatar-preview{display:grid;width:132px;height:132px;place-items:center;overflow:hidden;border:1px solid #bfdbfe;border-radius:8px;color:#fff;background:#2563eb;font-size:36px;font-weight:900}.account-avatar-preview img{width:100%;height:100%;object-fit:cover}.account-file-picker{width:fit-content}.account-risk-message,.account-risk{border-color:#fecaca;color:#991b1b;background:#fef2f2}label span{display:block;margin-bottom:6px;color:#334155;font-size:13px;font-weight:800}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;background:#fff;color:#0f172a}textarea{resize:vertical}.tailwind-picker{position:relative;width:100%;min-width:0}.tailwind-picker-trigger{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:42px;border:1px solid #cbd5e1;border-radius:8px;padding:0 10px;color:#0f172a;background:#fff;text-align:left;box-shadow:0 1px 2px #0f172a0a}.tailwind-picker-trigger:hover,.tailwind-picker.open .tailwind-picker-trigger{border-color:#93c5fd;background:#eff6ff}.tailwind-picker-trigger:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px}.tailwind-picker-trigger .material-symbols-rounded:first-child{width:28px;height:28px;border-radius:8px;color:#1d4ed8;background:#dbeafe;font-size:18px}.tailwind-picker-trigger strong{min-width:0;overflow:hidden;font-size:14px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.tailwind-picker-chevron{color:#64748b;font-size:18px}.tailwind-picker.disabled{opacity:.62}.tailwind-picker-popover{position:absolute;z-index:1300;top:calc(100% + 8px);left:0;width:min(320px,calc(100vw - 36px));border:1px solid #bfdbfe;border-radius:8px;padding:12px;background:#fff;box-shadow:0 18px 42px #0f172a2e}.filter-bar .tailwind-picker-popover{width:min(300px,calc(100vw - 36px))}.tailwind-picker-header,.tailwind-picker-weekdays,.tailwind-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.tailwind-picker-header{grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;margin-bottom:10px}.tailwind-picker-header strong{color:#0f172a;font-size:14px;text-align:center}.tailwind-picker-icon{display:inline-grid;width:34px;min-width:34px;min-height:34px;place-items:center;border:1px solid #dbeafe;border-radius:8px;padding:0;color:#1d4ed8;background:#eff6ff}.tailwind-picker-icon .material-symbols-rounded{margin:0;font-size:20px}.tailwind-picker-weekdays{margin-bottom:6px}.tailwind-picker-weekdays span{margin:0;color:#64748b;font-size:11px;font-weight:900;text-align:center}.tailwind-picker-days button,.tailwind-picker-options button{display:inline-grid;min-height:34px;border:1px solid transparent;border-radius:8px;padding:0;place-items:center;color:#334155;background:#fff;font-size:13px;font-weight:800}.tailwind-picker-days button:hover,.tailwind-picker-options button:hover{border-color:#bfdbfe;color:#1d4ed8;background:#eff6ff}.tailwind-picker-days button.muted{color:#94a3b8;background:#f8fafc}.tailwind-picker-days button.today{border-color:#14b8a6}.tailwind-picker-days button.selected,.tailwind-picker-options button.selected{border-color:#2563eb;color:#fff;background:#2563eb}.tailwind-picker-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tailwind-picker-time-grid section>span{margin-bottom:8px;color:#334155;font-size:12px;font-weight:900}.tailwind-picker-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto;padding-right:2px}.form-feedback{margin:-2px 0 12px;border:1px solid #bfdbfe;border-radius:8px;padding:10px 12px;color:#1e3a8a;background:#eff6ff;font-size:13px;font-weight:800}.field-error{display:block;margin-top:6px;color:#b91c1c;font-size:12px;font-weight:800}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:#ef4444;box-shadow:0 0 0 1px #ef4444}.form-actions{display:flex;justify-content:flex-end;gap:10px}.table-actions{display:flex;align-items:center;gap:8px}.table-action-button{min-height:34px;padding:0 10px;white-space:nowrap}.table-action-button:disabled{opacity:.62;cursor:not-allowed}.segmented-field{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.segmented-field button{justify-content:center;border:1px solid #cbd5e1;color:#334155;background:#fff}.segmented-field button.active{border-color:#2563eb;color:#fff;background:#2563eb}.mobile-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mobile-report-summary div,.notification-log div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#f8fafc}.mobile-report-summary .material-symbols-rounded,.notification-log .material-symbols-rounded{grid-row:span 2;color:#2563eb}.mobile-report-summary strong,.notification-log strong{min-width:0;color:#0f172a}.mobile-report-summary small,.notification-log small{color:#64748b;font-size:12px;font-weight:800}.notification-log{display:grid;gap:8px}.notification-log p,.empty-state{margin:0;color:#64748b;font-size:13px;font-weight:700}.confirm-backdrop{z-index:1300}.confirm-modal{width:min(460px,100%)}.data-table>*{min-height:44px;border-bottom:1px solid #f1f5f9;padding:10px 12px}.data-table>strong{min-height:36px;color:#64748b;background:#f8fafc;font-size:12px;text-transform:uppercase}.data-table a{display:grid;color:#0f172a;font-weight:800;text-decoration:none}.data-table a:hover{color:#2563eb}.data-table small{margin-top:2px;color:#94a3b8;font-size:11px;font-weight:700}.risk-stack{display:grid;align-content:center;gap:6px}.risk-stack>span{display:flex;align-items:center;gap:6px;min-width:0;color:#334155;font-size:13px;font-weight:700}.list{display:grid}.list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;border-bottom:1px solid #f1f5f9;color:#334155}.list-row:last-child{border-bottom:0}.list-row strong,.list-row span{display:block}.list-row span{margin-top:3px;color:#64748b;font-size:13px}.list-row time{color:#94a3b8;font-size:12px;font-weight:800}.definition-list{display:grid;gap:10px;margin:0}.definition-list div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #f1f5f9;padding-bottom:10px}.definition-list dt{color:#64748b;font-size:13px;font-weight:800}.definition-list dd{margin:0;color:#0f172a;font-weight:800;text-align:right}@media(max-width:1180px){.metric-grid,.page-grid,.chart-grid,.settings-grid,.driver-command-grid,.driver-overview-grid,.driver-insight-grid,.workflow-grid,.fleet-status-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.status-summary-panel,.dashboard-section-grid,.dashboard-chart-grid{grid-template-columns:1fr}.vehicle-detail-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.metric-grid,.page-grid,.chart-grid,.settings-grid,.driver-command-grid,.driver-overview-grid,.driver-insight-grid,.workflow-grid,.fleet-status-overview,.status-summary-panel,.account-grid,.vehicle-detail-metric-grid{grid-template-columns:1fr}.panel-header,.workflow-row,.detail-hero,.action-row{align-items:stretch;flex-direction:column}.detail-hero>div,.panel-header>div{min-width:0}.detail-hero h2,.detail-hero p,.panel-header h2,.panel-header p{overflow-wrap:anywhere;word-break:break-all;line-break:anywhere}.detail-hero h2{font-size:22px}.detail-hero button,.compact-actions button{justify-content:center;width:100%}.form-grid,.account-settings-grid,.account-layout{grid-template-columns:1fr}.form-actions{flex-direction:column}.driver-group-modal{max-height:calc(100dvh - 20px)}.driver-group-modal .modal-header,.driver-group-form{padding-inline:14px}.driver-group-row{grid-template-columns:38px minmax(0,1fr) auto;gap:10px}.driver-group-score{display:none}.driver-group-footer{align-items:stretch;flex-direction:column-reverse}.segmented-field,.mobile-report-summary{grid-template-columns:1fr}.table-control-bar{grid-template-columns:1fr;align-items:stretch}.table-result-count{justify-content:flex-start}.pagination-bar,.pagination-actions{align-items:stretch;flex-direction:column}.metric-card strong{font-size:24px}.driver-command-card strong{font-size:25px}.score-band-row{grid-template-columns:1fr 44px}.score-band-track{grid-column:1 / -1;grid-row:2}}.clickable-table>button{justify-content:flex-start;min-height:44px;border:0;border-radius:0;padding:10px 12px;color:#0f172a;background:transparent;font-weight:900;text-align:left}.clickable-table>button:hover{color:#2563eb;background:#eff6ff}.driver-trip-table{min-width:980px;grid-template-columns:minmax(110px,.7fr) minmax(260px,1.4fr) minmax(110px,.7fr) minmax(100px,.7fr) minmax(110px,.7fr) minmax(80px,.5fr)}.vehicle-trip-table{min-width:1120px;grid-template-columns:minmax(100px,.7fr) minmax(120px,.8fr) minmax(220px,1.3fr) minmax(160px,1fr) minmax(100px,.7fr) minmax(110px,.7fr) minmax(90px,.6fr) minmax(90px,.6fr)}.vehicle-trip-list{min-width:1240px;overflow:auto}.vehicle-trip-header,.vehicle-trip-row{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(120px,.8fr) minmax(220px,1.3fr) minmax(160px,1fr) minmax(100px,.7fr) minmax(100px,.7fr) minmax(110px,.7fr) minmax(90px,.6fr) minmax(90px,.6fr);align-items:center;min-width:1240px}.vehicle-trip-header>strong,.vehicle-trip-row>span{min-height:44px;border-bottom:1px solid #f1f5f9;padding:10px 12px}.vehicle-trip-header>strong{min-height:36px;color:#64748b;background:#f8fafc;font-size:12px;text-transform:uppercase}.vehicle-trip-row{width:100%;min-height:44px;border:0;border-radius:0;padding:0;color:#334155;background:transparent;font-size:14px;font-weight:700;text-align:left}.vehicle-trip-row:hover,.vehicle-trip-row:focus-visible{color:#0f172a;background:#eff6ff;outline:0}.vehicle-trip-row:hover>span,.vehicle-trip-row:focus-visible>span{border-bottom-color:#bfdbfe}.risk-count{color:#b45309;font-weight:900}.modal-backdrop{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:18px;background:#0f172a75}.modal-panel{width:min(720px,100%);max-height:min(760px,calc(100dvh - 36px));overflow:auto;border:1px solid #dbeafe;border-radius:8px;padding:16px;background:#fff;box-shadow:0 24px 60px #0f172a3d}.driver-group-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(900px,100%);max-height:min(820px,calc(100dvh - 28px));overflow:hidden;padding:0}.driver-group-modal .modal-header{margin:0;padding:16px 18px 14px}.driver-group-modal .form-feedback{margin:12px 18px 0}.driver-group-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-height:0;overflow:hidden;padding:16px 18px 18px}.driver-group-name-field,.driver-group-search-field,.driver-group-list-header,.driver-group-picker,.driver-group-footer{grid-column:1 / -1}.driver-group-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#475569;font-size:13px;font-weight:800}.driver-group-list-header strong{color:#1d4ed8}.driver-group-picker{display:grid;gap:8px;max-height:min(420px,calc(100dvh - 390px));min-height:180px;overflow:auto;padding-right:4px}.driver-group-row{display:grid;grid-template-columns:40px minmax(0,1fr) 76px auto;align-items:center;gap:12px;min-height:66px;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;background:#fff;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.driver-group-row:hover,.driver-group-row:focus-within{border-color:#93c5fd;background:#f8fbff;box-shadow:0 8px 20px #2563eb14}.driver-group-row input{width:18px;height:18px;justify-self:end}.driver-group-copy{display:grid;min-width:0;gap:2px}.driver-group-copy strong,.driver-group-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.driver-group-copy strong{color:#0f172a}.driver-group-copy small{color:#64748b;font-size:12px;font-weight:800}.driver-group-score{display:grid;justify-items:end;line-height:1.05}.driver-group-score strong{color:#0f172a;font-size:20px;font-weight:900}.driver-group-score small{color:#64748b;font-size:11px;font-weight:800}.driver-group-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid #e2e8f0;padding-top:12px}.group-member-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(980px,100%);overflow:hidden}.group-member-table-shell{max-height:min(520px,calc(100dvh - 250px));overflow:auto}.group-member-table{min-width:820px;grid-template-columns:minmax(190px,1.25fr) minmax(130px,.8fr) minmax(112px,.72fr) minmax(150px,.95fr) minmax(90px,.55fr) minmax(120px,.72fr)}.group-member-actions{justify-content:flex-end;margin-top:14px}.wide-modal,.route-modal{width:min(980px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;border-bottom:1px solid #f1f5f9;padding-bottom:12px}.modal-header h2,.modal-header p{margin:0}.modal-header h2{margin-top:4px;color:#0f172a;font-size:20px}.modal-header p{margin-top:4px;color:#64748b;font-size:13px}.risk-modal-list{display:grid;gap:8px}.risk-modal-list div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:8px;padding:10px}.risk-modal-list strong{min-width:0;color:#0f172a}.risk-modal-list span:last-child{color:#64748b;font-size:13px;font-weight:800}.training-timeline{display:grid;gap:10px}.training-record{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(320px,1.4fr) minmax(220px,1fr);gap:14px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#f8fafc}.training-record strong,.training-record span{display:block}.training-record>div:first-child strong{color:#0f172a}.training-record>div:first-child span{margin-top:4px;color:#64748b;font-size:12px;font-weight:700}.training-scores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.training-scores span,.training-scores strong{border-radius:8px;padding:8px;background:#fff;color:#0f172a;font-weight:900;text-align:center}.training-scores small{display:block;color:#64748b;font-size:11px}.training-scores strong{color:#047857;background:#d1fae5}.training-risks{display:flex;flex-wrap:wrap;gap:6px}.training-risks span{border-radius:999px;padding:4px 8px;color:#334155;background:#e2e8f0;font-size:12px;font-weight:800}.map-panel iframe{width:100%;height:290px;border:0;border-radius:8px;background:#e2e8f0}.vehicle-current-map-panel app-route-map{display:block;height:520px}.map-meta{display:flex;justify-content:space-between;gap:10px;margin-top:10px;color:#64748b;font-size:13px;font-weight:800}.route-canvas{position:relative;min-height:290px;overflow:hidden;border:1px solid #dbeafe;border-radius:8px;background:linear-gradient(90deg,rgba(37,99,235,.08) 1px,transparent 1px),linear-gradient(rgba(20,184,166,.08) 1px,transparent 1px),#f8fafc;background-size:34px 34px}.route-canvas.large{min-height:360px}.route-canvas svg{position:absolute;inset:0;width:100%;height:100%}.route-canvas polyline{fill:none;stroke:#2563eb;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.route-dot{position:absolute;z-index:1;display:grid;width:14px;height:14px;place-items:center;border:3px solid #ffffff;border-radius:999px;background:#ef4444;box-shadow:0 4px 12px #0f172a33;transform:translate(-50%,-50%)}.route-dot small{position:absolute;top:16px;width:max-content;border-radius:6px;padding:2px 5px;color:#334155;background:#fff;font-size:10px;font-weight:900}.filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(150px,.5fr));gap:10px;margin-bottom:12px}.trip-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin-bottom:12px}.trip-modal-map{min-height:420px}.trip-modal-map app-route-map{display:block;height:420px}.trip-summary{display:grid;align-content:start;gap:8px}.trip-summary strong{color:#0f172a;font-size:28px;line-height:1}.trip-summary span{margin-bottom:8px;color:#64748b;font-size:12px;font-weight:800}@media(max-width:760px){.filter-bar,.training-record,.trip-detail-grid{grid-template-columns:1fr}}
