@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-ext-400-normal-BDJfZ8Kq.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-400-normal-C8_zuvbt.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-400-normal-C0gbT-4X.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-400-normal-Bqj2d7m6.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-greek-400-normal-eabzJDiW.woff2) format("woff2"),url(/assets/source-serif-4-greek-400-normal-C8C4HxNq.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-normal-CMLFr1mH.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-400-normal-CB9mjlcG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-ext-400-normal-HBh7NdsB.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-400-normal-X-mfMq8x.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-CjrsHTK6.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-normal-CSsFCx3j.woff) format("woff");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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-93lFrI9Q.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-DI_iyMMa.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-JAxFfKin.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-CD0t2uYO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-BOUTqEib.woff2) format("woff2"),url(/assets/source-serif-4-greek-600-normal-BDrQOi3I.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-Mu8CBhr8.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-BhWpCnbP.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-DvfVeXby.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-BUrqQODo.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-o3gjl2h6.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-BqP-dZFg.woff) format("woff");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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-ext-700-normal-3hp3r_xG.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-ext-700-normal-BCT-inDr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-cyrillic-700-normal-Dt6vdIKH.woff2) format("woff2"),url(/assets/source-serif-4-cyrillic-700-normal-BbwnjxH3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-greek-700-normal-C8btR4jS.woff2) format("woff2"),url(/assets/source-serif-4-greek-700-normal-DF3iyUxs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-vietnamese-700-normal-B6UEcVr7.woff2) format("woff2"),url(/assets/source-serif-4-vietnamese-700-normal-DQJHgYHQ.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-ext-700-normal-ya0Q1pGO.woff2) format("woff2"),url(/assets/source-serif-4-latin-ext-700-normal-WU-vVBFP.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-700-normal-D1OF62d9.woff2) format("woff2"),url(/assets/source-serif-4-latin-700-normal-DXOJroxQ.woff) format("woff");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}.alert-day-calendar{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);padding:var(--sp-7);width:17.5rem;max-width:100%}.alert-day-calendar__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--sp-3)}.alert-day-calendar__month-label{color:var(--color-ink);font-size:var(--fs-sm);font-weight:600}.alert-day-calendar__nav{background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--r-sm);color:var(--color-ink-2);cursor:pointer;font-size:var(--fs-md);line-height:1;padding:var(--sp-2) var(--sp-4)}.alert-day-calendar__nav:hover:not(:disabled){background:var(--color-surface-3)}.alert-day-calendar__nav:disabled{cursor:not-allowed;opacity:.4}.alert-day-calendar__today-link{background:none;border:none;color:var(--accent);cursor:pointer;display:block;font-size:var(--fs-2xs);margin:0 0 var(--sp-5);padding:0;text-decoration:underline}.alert-day-calendar__weekdays{color:var(--color-muted);display:grid;font-size:var(--fs-3xs);grid-template-columns:repeat(7,1fr);margin-bottom:var(--sp-2);text-align:center}.alert-day-calendar__grid{display:grid;gap:.125rem;grid-template-columns:repeat(7,1fr)}.alert-day-calendar__day{align-items:center;background:var(--color-surface-2);border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;display:flex;flex-direction:column;gap:.0625rem;padding:var(--sp-2) 0}.alert-day-calendar__day:disabled{cursor:not-allowed;opacity:.35}.alert-day-calendar__day:hover:not(:disabled){background:var(--color-surface-3)}.alert-day-calendar__day--outside{opacity:.45}.alert-day-calendar__day-number{color:var(--color-ink-2);font-size:var(--fs-xs)}.alert-day-calendar__day--has-data .alert-day-calendar__day-number{color:var(--color-ink);font-weight:700}.alert-day-calendar__day--has-data{background:color-mix(in srgb,var(--accent) 10%,var(--color-surface-2))}.alert-day-calendar__day--empty .alert-day-calendar__day-number{color:var(--color-muted);font-weight:400}.alert-day-calendar__day-count{font-size:var(--fs-3xs);font-weight:700;color:var(--accent)}.alert-day-calendar__day-count--zero{color:var(--color-muted);font-weight:400;opacity:.55}.alert-day-calendar__day--selected{background:var(--accent);border-color:var(--accent)}.alert-day-calendar__day--selected .alert-day-calendar__day-number,.alert-day-calendar__day--selected .alert-day-calendar__day-count,.alert-day-calendar__day--selected .alert-day-calendar__day-count--zero{color:#fff}.alert-day-calendar__day--today:not(.alert-day-calendar__day--selected){border-color:var(--color-line-strong)}.alert-day-calendar__day--not-computed{background:repeating-linear-gradient(135deg,var(--color-surface-2),var(--color-surface-2) .25rem,var(--color-muted) .25rem,var(--color-muted) .5rem)}.alert-day-calendar__day--not-computed .alert-day-calendar__day-number{color:var(--color-ink);font-weight:600;text-shadow:0 0 3px var(--color-surface-2),0 0 3px var(--color-surface-2)}.alert-day-calendar__day-count--not-computed{color:var(--color-ink);font-size:.625rem;font-weight:700;letter-spacing:-.01em;text-shadow:0 0 3px var(--color-surface-2),0 0 3px var(--color-surface-2)}.alert-day-calendar__day--not-computed.alert-day-calendar__day--selected{background:var(--accent)}.alert-day-calendar__day--not-computed.alert-day-calendar__day--selected .alert-day-calendar__day-number,.alert-day-calendar__day--not-computed.alert-day-calendar__day--selected .alert-day-calendar__day-count--not-computed{color:#fff;text-shadow:none}.alert-day-calendar__status{color:var(--color-muted);font-size:var(--fs-3xs);margin:var(--sp-3) 0 0}.alert-day-calendar__status--error{color:var(--danger-edge, #b3261e)}.data-grid{display:flex;flex-direction:column;gap:var(--sp-5);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-lg);padding:var(--sp-7);box-shadow:var(--sh-1)}.grid-header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3)}.grid-title-count{margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--color-ink);flex:0 0 auto}.grid-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);flex:1 1 auto;min-width:0}.grid-active-filters-flag{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--warn-ink);white-space:nowrap}.grid-filter-chip{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--warn-edge);border-radius:var(--r-pill);background:var(--warn-wash);color:var(--warn-ink);font-size:var(--fs-3xs);font-weight:var(--fw-medium);padding:var(--sp-1) var(--sp-4);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}.grid-filter-chip:hover{background:color-mix(in srgb,var(--warn-wash),var(--warn-edge) 25%)}.grid-filter-chip:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.grid-filter-chip-mark{font-size:.5rem}.grid-filter-chip-x{font-size:var(--fs-3xs)}.grid-clear-all-filters{border:0;background:transparent;color:var(--warn-ink);font-size:var(--fs-3xs);font-weight:var(--fw-semibold);text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:var(--sp-1) var(--sp-2);white-space:nowrap}.grid-clear-all-filters:hover{color:var(--warn-edge)}.grid-clear-all-filters:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.grid-restored-notice{display:flex;align-items:center;gap:var(--sp-3);border:1px solid color-mix(in srgb,var(--warn-edge),white 55%);border-inline-start:3px solid var(--warn-edge);border-radius:var(--r-sm);background:var(--warn-wash);color:var(--warn-ink);font-size:var(--fs-2xs);padding:var(--sp-3) var(--sp-4)}.grid-restored-notice-reset{margin-inline-start:auto;border:1px solid var(--warn-edge);border-radius:var(--r-sm);background:var(--color-surface);color:var(--warn-ink);font-size:var(--fs-3xs);font-weight:var(--fw-semibold);padding:var(--sp-2) var(--sp-4);cursor:pointer;white-space:nowrap}.grid-restored-notice-reset:hover{background:var(--warn-wash)}.grid-restored-notice-dismiss{border:0;background:transparent;color:var(--warn-ink);cursor:pointer;font-size:var(--fs-2xs);line-height:1;padding:var(--sp-1)}.grid-restored-notice-reset:focus-visible,.grid-restored-notice-dismiss:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.grid-toolbar{display:flex;flex-direction:column;gap:var(--sp-3)}.grid-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.grid-toolbar-group{display:inline-flex;border:1px solid var(--color-line);border-radius:var(--r-md);overflow:hidden}.grid-toolbar-group button{border:0;background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--sp-3) var(--sp-5);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out);border-inline-start:1px solid var(--color-line)}.grid-toolbar-group button:first-child{border-inline-start:0}.grid-toolbar-group button.selected{background:var(--accent-wash);color:var(--accent-ink)}.grid-toolbar-group button:hover:not(.selected){background:var(--color-surface-3)}.grid-toolbar-group button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset);z-index:1}.grid-toolbar-button{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--sp-3) var(--sp-5);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.grid-toolbar-button:hover{background:var(--color-surface-3);border-color:var(--color-line-strong)}.grid-toolbar-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.grid-toolbar-button[aria-expanded=true]{background:var(--accent-wash);border-color:var(--accent-bright);color:var(--accent-ink)}.grid-toolbar-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.125rem;height:1.125rem;padding-inline:var(--sp-1);border-radius:var(--r-pill);background:var(--accent-bright);color:var(--accent-on);font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.grid-popover-anchor{position:relative}.grid-popover{position:absolute;inset-block-start:calc(100% + var(--sp-2));inset-inline-start:0;z-index:var(--z-drawer);min-width:12rem;max-height:20rem;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:var(--sp-4)}.grid-column-picker,.grid-filter-multiselect{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.grid-column-picker label,.grid-filter-multiselect label{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--color-ink);cursor:pointer}.grid-filter-text input{width:100%;min-width:11rem;padding:var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);font-size:var(--fs-xs);background:var(--color-surface);color:var(--color-ink)}.grid-groupby{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--color-muted)}.grid-groupby select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--fs-xs)}.grid-export-button{margin-inline-start:auto;border:1px solid var(--accent);border-radius:var(--r-md);background:var(--accent);color:var(--accent-on);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-3) var(--sp-6);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}.grid-export-button:hover:not(:disabled){background:var(--accent-strong)}.grid-export-button:disabled{opacity:.55;cursor:not-allowed}.grid-scroll-wrap{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--r-md)}.grid-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs);table-layout:fixed}.grid-table thead th{position:relative;background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-align:start;padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--color-line-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.grid-table thead th.grid-th-drag-over{background:var(--accent-wash)}.grid-th-label{display:inline-flex;align-items:center;gap:var(--sp-2)}.grid-th-sortable .grid-th-label{cursor:pointer}.grid-th-sortable .grid-th-label:hover{color:var(--accent-ink)}.grid-th-sortable .grid-th-label:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.grid-sort-indicator{font-size:var(--fs-3xs);color:var(--accent)}.grid-resize-handle{position:absolute;inset-block:0;inset-inline-end:-.1875rem;width:.375rem;cursor:col-resize;z-index:1;touch-action:none}.grid-resize-handle:hover{background:var(--accent-bright);opacity:.5}.grid-table tbody td{padding:var(--sp-4) var(--sp-5);border-block-end:1px solid var(--row-line);color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-cell-numeric,.grid-th-numeric{text-align:right;font-variant-numeric:tabular-nums}.grid-cell-link{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}.grid-cell-link:hover{color:var(--accent-strong)}.grid-row:nth-child(2n){background:var(--row-zebra)}.grid-row:hover{background:var(--row-hover)}.grid-row-current{background:var(--row-current)!important}.grid-row-clickable{cursor:pointer}.grid-row-clickable:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.grid-row-muted{opacity:.6;background:var(--color-surface-2);font-style:italic}.grid-row-muted:hover{opacity:.8}.data-grid-density-comfortable .grid-table tbody td,.data-grid-density-comfortable .grid-table thead th{padding-block:var(--sp-5)}.data-grid-density-compact .grid-table tbody td,.data-grid-density-compact .grid-table thead th{padding-block:var(--sp-2)}.grid-skeleton-bar{display:block;height:.875rem;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface-3) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:grid-skeleton-shimmer 1.3s ease-in-out infinite}@keyframes grid-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.grid-refresh-indicator-row td{padding:0;border:0}.grid-refresh-indicator{height:.1875rem;background:linear-gradient(90deg,transparent,var(--accent-bright),transparent);background-size:50% 100%;animation:grid-refresh-sweep 1.1s linear infinite}@keyframes grid-refresh-sweep{0%{background-position:-50% 0}to{background-position:150% 0}}.grid-empty-state,.grid-error-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-11) var(--sp-7);text-align:center;white-space:normal}.grid-empty-title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--color-ink)}.grid-empty-description{margin:0;font-size:var(--fs-xs);color:var(--color-muted);max-width:28rem}.grid-empty-state button{margin-block-start:var(--sp-2);border:1px solid var(--accent);border-radius:var(--r-md);background:var(--accent);color:var(--accent-on);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-3) var(--sp-7);cursor:pointer}.grid-error-state{color:var(--danger-ink)}.grid-group-header td{padding:0;border:0;background:var(--color-surface-2)}.grid-group-toggle{width:100%;display:flex;align-items:center;gap:var(--sp-3);border:0;background:transparent;padding:var(--sp-4) var(--sp-5);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--color-ink);cursor:pointer;text-align:start}.grid-group-toggle:hover{background:var(--color-surface-3)}.grid-group-chevron{display:inline-block;transition:transform var(--dur-2) var(--ease-out);color:var(--accent)}.grid-group-chevron.collapsed{transform:rotate(-90deg)}.grid-group-count{color:var(--color-muted);font-weight:var(--fw-regular)}.grid-pager{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6);padding-block-start:var(--sp-2)}.grid-page-size,.grid-page-range{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--color-muted)}.grid-page-size select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--fs-xs)}.grid-pager-buttons{display:inline-flex;align-items:center;gap:var(--sp-2);margin-inline-start:auto}.grid-pager-buttons button{min-width:var(--h-md);height:var(--h-md);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);cursor:pointer;font-size:var(--fs-sm)}.grid-pager-buttons button:hover:not(:disabled){background:var(--color-surface-3)}.grid-pager-buttons button:disabled{opacity:.4;cursor:not-allowed}.grid-page-current{font-size:var(--fs-xs);color:var(--color-ink-2);padding-inline:var(--sp-3)}@media (max-width: 30rem){.grid-scroll-wrap{overflow-x:visible;border:0}.grid-table,.grid-table tbody,.grid-table tr,.grid-table td{display:block;width:100%!important}.grid-table colgroup,.grid-table thead{display:none}.grid-table tr.grid-row{margin-block-end:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-md);box-shadow:var(--sh-1);overflow:hidden}.grid-table tr.grid-row:nth-child(2n){background:var(--color-surface)}.grid-table td{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);border-block-end:1px solid var(--row-line);white-space:normal;text-align:end}.grid-table td:before{content:attr(data-label);font-weight:var(--fw-semibold);color:var(--color-muted);text-align:start;flex:0 0 auto}.grid-table td.grid-cell-card-title{background:var(--color-surface-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);justify-content:flex-start}.grid-table td.grid-cell-card-title:before{content:none}.grid-table td.grid-cell-numeric{text-align:end}.grid-group-header,.grid-refresh-indicator-row{display:none}.grid-pager{flex-direction:column;align-items:stretch}.grid-pager-buttons{margin-inline-start:0;justify-content:center}.grid-toolbar-row{flex-direction:column;align-items:stretch}.grid-export-button{margin-inline-start:0}.grid-header-row{flex-direction:column;align-items:stretch}.grid-restored-notice{flex-wrap:wrap}.grid-restored-notice-reset{margin-inline-start:0}}.queue-project-location{display:block;margin-block-start:2px;color:var(--color-muted);font-size:var(--fs-3xs);line-height:1.3}:root{--veh-status-idling-ink: #0b5960;--veh-status-idling-wash: #dff2f2;--veh-status-onbreak-ink: #7a3d05;--veh-status-onbreak-wash: #fbe9d6;--veh-status-outofzone-ink: #4a2f78;--veh-status-outofzone-wash: #ede7f6;--veh-status-nodata-ink: #3f5568;--veh-status-nodata-wash: #e6edf2}:root{--veh-type-truck: #1f5fa8;--veh-type-tender: #0f7a5a;--veh-type-sweeper: #a1531b;--veh-type-watertruck: #0b6c86;--veh-type-mule: #6b3fa0;--veh-type-tractor: #9a1f5e}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--veh-type-truck: #6fa8e8;--veh-type-tender: #4fc39a;--veh-type-sweeper: #e0965a;--veh-type-watertruck: #52b4cf;--veh-type-mule: #b18ce0;--veh-type-tractor: #e074a8}}.vehicle-type-icon__glyph--Truck{color:var(--veh-type-truck)}.vehicle-type-icon__glyph--Tender{color:var(--veh-type-tender)}.vehicle-type-icon__glyph--Sweeper{color:var(--veh-type-sweeper)}.vehicle-type-icon__glyph--WaterTruck{color:var(--veh-type-watertruck)}.vehicle-type-icon__glyph--Mule{color:var(--veh-type-mule)}.vehicle-type-icon__glyph--Tractor{color:var(--veh-type-tractor)}@media (forced-colors: active){[class*=vehicle-type-icon__glyph--]{color:currentColor}}.vehicle-type-icon{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--color-ink-2)}.vehicle-type-icon svg{flex:0 0 auto}.vehicle-type-icon__label{font-size:var(--fs-xs);color:var(--color-ink);white-space:nowrap}.vehicle-status-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-3xs);font-weight:var(--fw-bold);white-space:nowrap;line-height:1.5}.vehicle-status-badge:before{content:"";width:.4375rem;height:.4375rem;border-radius:50%;background:currentColor;flex:0 0 auto}.vehicle-status-badge__age{color:var(--color-muted);font-weight:var(--fw-regular);font-size:var(--fs-3xs)}.vehicle-status-driving{color:var(--ok-ink);background:var(--ok-wash)}.vehicle-status-stopped{color:var(--danger-ink);background:var(--danger-wash)}.vehicle-status-notdeparted{color:var(--warn-ink);background:var(--warn-wash)}.vehicle-status-inactive{color:var(--neutral-ink);background:var(--neutral-wash)}.vehicle-status-idling{color:var(--veh-status-idling-ink);background:var(--veh-status-idling-wash)}.vehicle-status-onbreak{color:var(--veh-status-onbreak-ink);background:var(--veh-status-onbreak-wash)}.vehicle-status-outofzone{color:var(--veh-status-outofzone-ink);background:var(--veh-status-outofzone-wash)}.vehicle-status-nodata{color:var(--veh-status-nodata-ink);background:var(--veh-status-nodata-wash)}.alert-sequence-details{max-width:28rem}.alert-detail-facts{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3)}.alert-detail{color:var(--color-ink-2);font-size:var(--fs-2xs);white-space:nowrap}.alert-detail:last-child{white-space:normal}.alert-detail-explanation{display:block;margin-block-start:var(--sp-1);color:var(--color-muted);font-size:var(--fs-3xs);line-height:1.4}.alert-detail-empty{color:var(--color-muted);font-size:var(--fs-2xs)}.doc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.doc-actions button{white-space:nowrap}.doc-upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.doc-upload-label{display:inline-flex;align-items:center;min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--accent-ink);font-size:var(--fs-2xs);white-space:nowrap;cursor:pointer}.doc-upload-label:hover{background:var(--color-surface-3);border-color:var(--color-line-strong)}.doc-upload-input:focus-visible+.doc-upload-label,.doc-upload-label:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.doc-remove{color:var(--danger-ink)}.doc-file-cell{max-width:18rem}.doc-file-name{display:block;word-break:break-word;font-size:var(--fs-2xs)}.doc-file-meta{display:block;margin-block-start:2px;color:var(--color-muted);font-size:var(--fs-3xs)}.control-toast.control-toast--pending{background:var(--warn-wash);color:var(--warn-ink);border:1px solid var(--warn-edge)}.duration-cell{display:inline-flex;align-items:center;gap:var(--sp-3);font-variant-numeric:tabular-nums}.duration-cell--over{font-family:var(--font-display)}.duration-dial{position:relative;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.duration-dial-hole{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--color-surface)}.day-timeline-wrap{position:relative;display:inline-block}.day-timeline-bar{display:flex;height:11px;border-radius:2px;overflow:hidden;border:1px solid var(--color-line);cursor:help}.day-timeline-seg{min-width:2px}.day-timeline-empty{color:var(--color-ink-2);font-size:var(--fs-2xs)}.day-timeline-tip{display:none;position:absolute;z-index:20;inset-block-start:calc(100% + 6px);inset-inline-start:0;pointer-events:none;min-width:15rem;max-width:20rem;background:var(--color-ink);color:var(--color-surface);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:var(--sp-6) var(--sp-7);font-size:var(--fs-xs);text-align:start}.day-timeline-wrap:hover .day-timeline-tip,.day-timeline-wrap:focus-within .day-timeline-tip{display:block}.day-timeline-tip-title{font-family:var(--font-display);font-size:var(--fs-sm);margin-block-end:var(--sp-4)}.day-timeline-tip-row{display:flex;align-items:center;gap:var(--sp-4);padding-block:1px}.day-timeline-tip-swatch{width:9px;height:9px;min-width:9px;border-radius:2px}.day-timeline-tip-range{font-variant-numeric:tabular-nums;color:var(--color-surface-3);white-space:nowrap}.day-timeline-tip-label{flex:1}.day-timeline-tip-dur{color:var(--color-surface-3);white-space:nowrap;font-variant-numeric:tabular-nums}.day-timeline-tip-more{display:block;margin-block-start:var(--sp-3);color:var(--color-surface-3);font-size:var(--fs-3xs)}.day-timeline-tip-cta{display:block;margin-block-start:var(--sp-4);padding-block-start:var(--sp-3);border-block-start:1px solid rgba(255,255,255,.16);font-size:var(--fs-3xs);color:var(--color-surface-3)}.day-timeline-tip-evidence{display:flex;flex-direction:column;gap:1px;margin-block-start:2px}.day-timeline-tip-evidence-line{font-size:var(--fs-3xs);color:var(--color-surface-3);white-space:normal}.day-timeline-popover{min-width:17rem;max-width:22rem;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:var(--sp-5) var(--sp-6);font-size:var(--fs-xs);text-align:start}.day-timeline-popover-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-block-end:var(--sp-4)}.day-timeline-popover-title{font-family:var(--font-display);font-size:var(--fs-sm)}.day-timeline-popover-filters{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-block-end:var(--sp-4)}.day-timeline-popover-filter{border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-3xs);font-weight:var(--fw-medium);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.day-timeline-popover-filter:hover{background:var(--color-surface-3);border-color:var(--color-line-strong)}.day-timeline-popover-filter:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.day-timeline-popover-filter[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent-bright);color:var(--accent-ink)}.day-timeline-popover-route-filter{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-block-end:var(--sp-4)}.day-timeline-popover-route-filter-label{font-size:var(--fs-3xs);color:var(--color-ink-2)}.day-timeline-popover-empty{color:var(--color-ink-2);font-size:var(--fs-xs);margin:0 0 var(--sp-4)}.day-timeline-popover-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0 0 var(--sp-4);padding:0;list-style:none;max-height:14rem;overflow-y:auto;color:var(--color-ink)}.day-timeline-popover-list .day-timeline-tip-range,.day-timeline-popover-list .day-timeline-tip-dur{color:var(--color-ink-2)}.day-timeline-popover-row{display:flex;align-items:center;gap:var(--sp-4);padding-block:1px}.day-timeline-popover-cta{display:block;width:100%;border:none;border-block-start:1px solid var(--color-line);background:none;margin:0;padding-block-start:var(--sp-4);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--accent-ink);text-align:start;cursor:pointer}.day-timeline-popover-cta:hover{text-decoration:underline}.day-timeline-popover-cta:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.day-timeline-popover-evidence{display:block;margin-block-start:2px}.day-timeline-popover-evidence-toggle{border:none;background:none;padding:0;margin:0;font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--accent-ink);cursor:pointer}.day-timeline-popover-evidence-toggle:hover{text-decoration:underline}.day-timeline-popover-evidence-toggle:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.day-timeline-popover-evidence-body{margin-block-start:var(--sp-2);padding-inline-start:var(--sp-3);border-inline-start:2px solid var(--color-line)}.day-analysis-modal{max-width:min(96vw,68rem);width:100%}.day-analysis-span{color:var(--color-ink-2);font-size:var(--fs-sm);margin-block-end:var(--sp-6)}.day-analysis-top{display:flex;flex-direction:column;gap:var(--sp-6);margin-block-end:var(--sp-6)}.day-analysis-map{border:1px solid var(--color-line);border-radius:var(--r-sm);overflow:hidden}.day-analysis-timeline-panel{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.day-analysis-timeline-panel h3{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-ink-2)}.day-analysis-timeline{direction:rtl}.day-analysis-timeline-bar{position:relative;height:2.75rem;border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface-2);box-shadow:inset 0 1px 3px #14232f1f}.day-analysis-timeline-seg{position:absolute;top:0;bottom:0;cursor:pointer}.day-analysis-timeline-seg:hover,.day-analysis-timeline-seg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.day-analysis-timeline-marker{position:absolute;bottom:-.55rem;width:.7rem;height:.7rem;transform:translate(50%) rotate(45deg);border-radius:2px;cursor:pointer;box-shadow:0 0 0 2px var(--color-surface-1, var(--color-surface)),0 0 0 3.5px var(--marker-ring, var(--neutral-edge))}.day-analysis-timeline-marker:hover,.day-analysis-timeline-marker:focus-visible{transform:translate(50%) rotate(45deg) scale(1.35);z-index:2}.day-analysis-timeline-bar .day-analysis-timeline-marker{background:var(--exc-edge, var(--neutral-edge))}.day-analysis-timeline-marker.severity-critical{--marker-ring: var(--sev-critical-edge)}.day-analysis-timeline-marker.severity-high{--marker-ring: var(--sev-high-edge)}.day-analysis-timeline-marker.severity-medium{--marker-ring: var(--sev-medium-edge)}.day-analysis-timeline-marker.severity-low{--marker-ring: var(--sev-low-edge)}.day-analysis-timeline-marker.severity-info{--marker-ring: var(--sev-info-edge)}.day-analysis-timeline-axis{position:relative;direction:rtl;height:2.5rem;margin-top:var(--sp-3)}.day-analysis-narrative{display:flex;flex-direction:column;gap:var(--sp-5);margin:0;padding:0;list-style:none;max-height:24rem;overflow-y:auto}.day-analysis-item{display:flex;align-items:flex-start;gap:var(--sp-5);padding-inline-start:var(--sp-5);border-inline-start:3px solid var(--color-line)}.day-analysis-item--exception{border-inline-start-color:var(--exc-edge, var(--sev-critical-edge))}.day-analysis-item .day-timeline-tip-swatch{margin-block-start:6px}.day-analysis-item-body{display:flex;flex-direction:column;gap:1px;min-width:0}.day-analysis-item-time{font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);color:var(--color-ink-2)}.day-analysis-item-title{font-family:var(--font-display);font-size:var(--fs-sm)}.day-analysis-item-detail{font-size:var(--fs-xs);color:var(--color-ink-2);line-height:1.4}.driver-rating-cell{display:flex;flex-direction:column;gap:1px;line-height:1.3}.driver-rating-stars{color:#d6a400;font-size:var(--fs-xs);letter-spacing:1.5px}.driver-rating-stars--none{color:var(--color-ink-2);letter-spacing:normal}.driver-rating-name{font-size:var(--fs-2xs);color:var(--color-ink-2)}.exception-map-frame,.geofence-map-frame{display:flex;flex-direction:column;gap:var(--sp-2);height:100%;padding-block-end:var(--sp-2);background:var(--color-surface)}.exception-map-frame .leaflet-container,.geofence-map-frame .leaflet-container{flex:1 1 auto;min-height:0}.exception-map-legend{padding-inline:var(--sp-3);display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);margin:0;padding:0;list-style:none;font-size:var(--fs-3xs);color:var(--color-ink-2)}.exception-map-legend li{display:inline-flex;align-items:center;gap:var(--sp-2)}.exception-map-legend i{width:14px;height:10px;border:2px solid currentColor;border-radius:2px}.inline-edit{display:inline-flex;align-items:center;max-width:100%}.inline-edit select,.inline-edit input{font:inherit;color:inherit;max-width:100%;padding:.1rem .25rem;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.inline-edit input{cursor:text;min-width:8rem;border-color:var(--color-line);background:var(--color-surface)}.inline-edit select:hover,.inline-edit select:focus-visible{border-color:currentColor;background:var(--color-surface)}.inline-edit select:focus-visible,.inline-edit input:focus-visible{outline:2px solid var(--color-focus, var(--accent-edge, currentColor));outline-offset:1px}.inline-edit select:disabled{cursor:progress;opacity:.6}.inline-edit--pending{opacity:.55}.inline-edit--failed select{border-color:var(--danger-edge);box-shadow:0 0 0 2px var(--danger-wash)}.inline-edit-text{font:inherit;color:inherit;text-align:start;width:100%;padding:.1rem .25rem;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;cursor:text}.inline-edit-text:hover,.inline-edit-text:focus-visible{border-color:var(--color-line);background:var(--color-surface)}.inline-edit-placeholder{color:var(--color-ink-2);font-size:var(--fs-2xs)}.severity-tag.inline-edit select,.status-tag.inline-edit select{color:inherit}.geofence-panel{display:flex;flex-direction:column;gap:var(--sp-4);margin-block-start:var(--sp-7);padding-block-start:var(--sp-6);border-block-start:1px solid var(--color-line)}.geofence-heading p{margin:var(--sp-2) 0 0;color:var(--color-ink-2);font-size:var(--fs-xs)}.geofence-warning{padding:var(--sp-2) var(--sp-4);border-inline-start:3px solid var(--warn-edge);border-radius:var(--r-sm);background:var(--warn-wash);color:var(--warn-ink)!important}.geofence-notice{margin:0;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--ok-wash);color:var(--ok-ink);font-size:var(--fs-xs)}.geofence-empty{color:var(--color-ink-2);font-size:var(--fs-xs)}.geofence-map-block{display:flex;flex-direction:column;gap:var(--sp-2)}.geofence-map-controls{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.geofence-map-controls button{font-size:var(--fs-xs);color:var(--accent);font-weight:var(--fw-semibold)}.geofence-map{position:relative;height:24rem;overflow:hidden;border:1px solid var(--color-line);border-radius:var(--r-md)}.geofence-focus-button{padding:var(--sp-1) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-2xs);white-space:nowrap}.geofence-focus-button:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}.geofence-focus-button.is-focused{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-ink);font-weight:var(--fw-semibold)}.geofence-list,.geofence-catalog-list{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none}.geofence-list>li{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface)}.geofence-list>li.is-busy{opacity:.55}.geofence-row-main{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.geofence-row-main input[type=text]{flex:1 1 12rem;min-width:8rem}.geofence-vertices{color:var(--color-ink-2);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;white-space:nowrap}.geofence-provenance{color:var(--color-ink-2);font-size:var(--fs-3xs)}.geofence-catalog{display:flex;flex-direction:column;gap:var(--sp-3)}.geofence-catalog-list>li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border:1px dashed var(--color-line);border-radius:var(--r-sm)}.geofence-catalog-name{flex:1 1 12rem}.geofence-catalog-name small{color:var(--color-ink-2);font-size:var(--fs-3xs)}.day-timeline-tip--day-summary .day-timeline-tip-caption{display:block;margin-block-start:var(--sp-2);font-size:var(--fs-3xs);color:var(--color-surface-3);letter-spacing:.02em}.day-timeline-tip--day-summary .day-timeline-tip-none{color:var(--color-surface-3)}.day-timeline-tip--day-summary .severity-tag{flex:0 0 auto;font-size:var(--fs-3xs)}.day-timeline-tip-progress{display:block;margin-block:var(--sp-4) var(--sp-3);padding-block-end:var(--sp-3);border-block-end:1px solid rgba(255,255,255,.16)}.day-timeline-tip-progress .day-analysis-timeline-bar{height:1.5rem;border-color:#ffffff3d;background:#ffffff1a;box-shadow:none}.day-timeline-tip-progress .day-analysis-timeline-axis{height:1.5rem;margin-top:var(--sp-2)}.day-timeline-tip-progress .operational-timeline-tick-rule{background:#ffffff4d}.day-timeline-tip-progress .operational-timeline-tick-rule.is-day-boundary{background:#ffffff8c}.day-timeline-tip-progress .operational-timeline-tick-label,.day-timeline-tip-progress .operational-timeline-tick-date{color:var(--color-surface-3)}.day-timeline-tip-progress .day-analysis-timeline-marker{box-shadow:0 0 0 2px var(--color-ink),0 0 0 3.5px var(--marker-ring, var(--neutral-edge))}.day-timeline-popover{--pop-scale: 2.5;--pop-type-scale: 1.5;min-width:min(calc(17rem * var(--pop-scale)),92vw);max-width:min(calc(22rem * var(--pop-scale)),92vw);display:flex;flex-direction:column;max-height:calc(100vh - 2rem);padding:calc(var(--sp-5) * var(--pop-scale)) calc(var(--sp-6) * var(--pop-scale));border-radius:calc(var(--r-md) * var(--pop-scale));font-size:calc(var(--fs-xs) * var(--pop-type-scale))}.day-timeline-popover .day-timeline-popover-title{font-size:calc(var(--fs-sm) * var(--pop-type-scale))}.day-timeline-popover .day-timeline-popover-filter,.day-timeline-popover .day-timeline-popover-route-filter-label{font-size:calc(var(--fs-3xs) * var(--pop-type-scale))}.day-timeline-popover .day-timeline-popover-empty,.day-timeline-popover .day-timeline-popover-cta{font-size:calc(var(--fs-xs) * var(--pop-type-scale))}.day-timeline-popover .day-timeline-popover-list{flex:1 1 auto;min-height:0;max-height:none}.day-timeline-popover-timeline{flex:0 0 auto;margin-block-end:var(--sp-5);padding-block-end:var(--sp-4);border-block-end:1px solid var(--color-line)}.exception-modal.day-route-modal{width:min(94vw,56rem);max-width:none}.day-route-modal-caption{color:var(--color-ink-2);font-size:var(--fs-sm);margin-block:0 var(--sp-5)}.day-route-modal-map{border:1px solid var(--color-line);border-radius:var(--r-sm);overflow:hidden}.timeline-zoom-viewport{overflow:hidden;padding-block-end:var(--sp-2)}.timeline-zoom-viewport.is-zoomed{cursor:grab}.timeline-zoom-viewport.is-panning{cursor:grabbing}.timeline-zoom-viewport.is-panning,.timeline-zoom-viewport.is-panning *{-webkit-user-select:none;user-select:none}.timeline-zoom-content{will-change:transform}.timeline-zoom-controls{display:flex;align-items:center;gap:var(--sp-2);margin-block-end:var(--sp-3)}.timeline-zoom-button{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--fs-sm);line-height:1;cursor:pointer}.timeline-zoom-button:hover:not(:disabled){background:var(--color-surface-3);border-color:var(--color-line-strong)}.timeline-zoom-button:focus-visible,.timeline-zoom-reset:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.timeline-zoom-button:disabled{opacity:.45;cursor:default}.timeline-zoom-level{min-width:2.5rem;color:var(--color-ink-2);font-size:var(--fs-3xs);font-variant-numeric:tabular-nums;text-align:center}.timeline-zoom-reset{border:none;background:none;padding:0 var(--sp-2);color:var(--accent-ink);font-size:var(--fs-3xs);cursor:pointer}.timeline-zoom-reset:hover{text-decoration:underline}.day-timeline-hours{display:flex;justify-content:space-between;gap:var(--sp-1);margin-block-start:2px;color:var(--color-ink-2);font-size:.5625rem;font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap}.day-timeline-tip-row--exception{align-items:flex-start}.day-timeline-tip-row--exception .exception-type-dot{margin-block-start:5px}.day-timeline-tip-exception{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.day-timeline-tip-exception .day-timeline-tip-range{font-size:var(--fs-3xs);color:var(--color-surface-3)}.timeline-zoom-hint{color:var(--color-ink-2);font-size:var(--fs-3xs)}@media (max-width: 48rem){.timeline-zoom-hint{display:none}}.exclusion-windows-section{display:flex;flex-direction:column;gap:var(--sp-4)}.exclusion-windows-section h3{margin:0}.exclusion-windows-section h4{margin:0 0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-ink-2)}.exclusion-windows-intro{margin:0;color:var(--color-ink-2);font-size:var(--fs-xs)}.exclusion-suggestions{display:flex;flex-direction:column;gap:var(--sp-4)}.exclusion-suggestion{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5);border:1px solid var(--accent-bright);border-inline-start-width:3px;border-radius:var(--r-sm);background:var(--accent-wash)}.exclusion-suggestion header{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.exclusion-suggestion header strong{font-family:var(--font-display);font-size:var(--fs-md);font-variant-numeric:tabular-nums}.exclusion-suggestion-evidence{margin:0;color:var(--color-ink);font-size:var(--fs-xs);line-height:1.6}.exclusion-suggestion-days{margin:0;color:var(--color-ink-2);font-size:var(--fs-3xs);font-variant-numeric:tabular-nums}.exclusion-accept-button{align-self:flex-start;margin-block-start:var(--sp-2);padding:var(--sp-3) var(--sp-6);border:none;border-radius:var(--r-sm);background:var(--accent-ink);color:var(--color-surface);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer}.exclusion-accept-button:hover:not(:disabled){filter:brightness(1.12)}.exclusion-accept-button:disabled{opacity:.55;cursor:default}.exclusion-accept-button:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.exclusion-window-list ul{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none}.exclusion-window{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface)}.exclusion-window.is-disabled{opacity:.65;background:var(--color-surface-2)}.exclusion-window-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.exclusion-window-head strong{font-family:var(--font-display);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.exclusion-window-days{color:var(--color-ink-2);font-size:var(--fs-3xs)}.exclusion-window-paused{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--sev-medium-wash);color:var(--sev-medium-ink);font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.exclusion-window-stat{margin:0;font-size:var(--fs-xs);color:var(--color-ink)}.exclusion-window-stat strong{font-variant-numeric:tabular-nums}.exclusion-window-meta{margin:0;font-size:var(--fs-3xs);color:var(--color-ink-2)}.exclusion-window-actions{display:flex;gap:var(--sp-3);margin-block-start:var(--sp-2)}.exclusion-window-actions button{padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);font-size:var(--fs-3xs);cursor:pointer}.exclusion-window-actions button:hover:not(:disabled){background:var(--color-surface-3)}.exclusion-window-actions button:disabled{opacity:.5;cursor:default}.exclusion-window-delete{color:var(--danger-ink);border-color:var(--sev-critical-wash)!important}.project-map-page{display:flex;flex-direction:column;gap:var(--sp-3, 12px);min-height:calc(100vh - 220px)}.project-map-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--sp-3, 12px)}.project-map-head h1{margin:0}.project-map-muted{margin:4px 0 0;color:var(--text-muted, #5b6b78)}.project-map-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2, 8px)}.project-map-window{display:inline-flex;overflow:hidden;border:1px solid var(--border, #d7dee4);border-radius:var(--radius-sm, 6px)}.project-map-window button{padding:6px 10px;cursor:pointer;border:0;border-inline-start:1px solid var(--border, #d7dee4);background:var(--surface, #fff);font:inherit}.project-map-window button:first-child{border-inline-start:0}.project-map-window button.is-active{color:var(--surface, #fff);background:var(--accent-bright, #0091ba)}.project-map-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.project-map-controls>button{padding:6px 12px;cursor:pointer;border:1px solid var(--border, #d7dee4);border-radius:var(--radius-sm, 6px);background:var(--surface, #fff);font:inherit}.project-map-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2, 8px);margin:0;padding:var(--sp-2, 8px) var(--sp-3, 12px);border-inline-start:4px solid var(--sev-info-edge, #8496a3);border-radius:var(--radius-sm, 6px);background:var(--surface-alt, #f3f6f8)}.project-map-banner button{padding:4px 10px;cursor:pointer;border:1px solid var(--border, #d7dee4);border-radius:var(--radius-sm, 6px);background:var(--surface, #fff);font:inherit}.project-map-banner button:disabled{cursor:not-allowed;opacity:.55}.project-map-banner--error{border-inline-start-color:var(--sev-critical-edge, #c0392b)}.project-map-banner--fallback{border-inline-start-color:var(--sev-medium-edge, #d9822b)}.project-map-banner--pinned{border-inline-start-color:var(--accent-bright, #0091ba)}.project-map-banner--calm{border-inline-start-color:var(--ok-edge, #1f8a55)}.project-map-body{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:var(--sp-3, 12px);flex:1 1 auto;min-height:440px}.project-map-panel{display:flex;flex-direction:column;gap:var(--sp-2, 8px);overflow-y:auto;max-height:calc(100vh - 260px);padding-inline-end:4px}.project-map-panel__title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2, 8px);margin:var(--sp-2, 8px) 0 0;font-size:15px}.project-map-panel__title small{font-weight:400;color:var(--text-muted, #5b6b78)}.project-map-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;list-style:none;margin:0;padding:0}.project-map-tiles button{display:grid;gap:2px;width:100%;padding:8px 6px;cursor:pointer;border:1px solid var(--border, #d7dee4);border-radius:var(--radius-sm, 6px);background:var(--surface, #fff);font:inherit;text-align:center}.project-map-tiles button b{font-size:20px;line-height:1.1}.project-map-tiles button span{font-size:11px;color:var(--text-muted, #5b6b78)}.project-map-tiles button.is-active{border-color:var(--accent-bright, #0091ba);box-shadow:inset 0 0 0 1px var(--accent-bright, #0091ba)}.project-map-tiles button.tone-danger b{color:var(--sev-critical-edge, #c0392b)}.project-map-tiles button.tone-warn b{color:var(--sev-medium-edge, #d9822b)}.project-map-tiles button.tone-ok b{color:var(--ok-edge, #1f8a55)}.project-map-vehicles,.project-map-exceptions,.project-map-picker{display:grid;gap:4px;list-style:none;margin:0;padding:0}.project-map-vehicles button,.project-map-exceptions button,.project-map-picker button{display:grid;gap:2px;width:100%;padding:6px 8px;cursor:pointer;border:1px solid var(--border, #d7dee4);border-inline-start-width:4px;border-radius:var(--radius-sm, 6px);background:var(--surface, #fff);font:inherit;text-align:start}.project-map-vehicles button:hover,.project-map-vehicles button:focus-visible,.project-map-exceptions button:hover,.project-map-exceptions button:focus-visible,.project-map-picker button:hover,.project-map-picker button:focus-visible{background:var(--surface-alt, #f3f6f8)}.project-map-vehicles button.is-active{box-shadow:inset 0 0 0 1px var(--accent-bright, #0091ba)}.project-map-vehicles__top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2, 8px);font-weight:600}.project-map-vehicles__top em{font-style:normal;font-weight:400;font-size:12px;color:var(--text-muted, #5b6b78)}.project-map-vehicles__sub{font-size:12px;color:var(--text-muted, #5b6b78)}.project-map-vehicles__flag{justify-self:start;margin-block-start:2px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:600;color:#fff}.project-map-canvas{position:relative;min-height:440px;border:1px solid var(--border, #d7dee4);border-radius:var(--radius-md, 10px);overflow:hidden}.project-map-canvas__loading{display:flex;align-items:center;justify-content:center;height:100%}.project-map-page--picker{min-height:auto}.project-map-picker{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-width:900px}.project-map-picker button span{font-size:12px;color:var(--text-muted, #5b6b78)}@media (max-width: 900px){.project-map-body{grid-template-columns:1fr}.project-map-panel{max-height:320px}}.systems-poll-grid-wrap{flex:1;min-height:0;overflow:auto;margin-top:var(--sp-4)}.systems-status-page{min-width:0}.health-pill.critical{color:var(--danger-ink);background:var(--danger-wash)}.health-pill.muted{color:var(--color-muted);background:var(--color-surface-2)}.systems-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-6)}.systems-banner>p{flex:1 1 20rem;margin:0;min-width:15rem}.systems-banner .primary-button{flex:0 0 auto;min-height:var(--h-md);margin:0;padding:var(--sp-3) var(--sp-6)}.systems-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18.75rem,100%),1fr));gap:var(--sp-6);margin-top:var(--sp-8)}.systems-status-card{display:flex;min-width:0;flex-direction:column;gap:var(--sp-4);padding:var(--sp-7);border:1px solid var(--color-line);border-top:3px solid var(--neutral-edge);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1);transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);animation:ff-rise var(--dur-3) var(--ease-out) both}.systems-status-card:hover{box-shadow:var(--sh-3);transform:translateY(-2px)}.systems-status-card.level-healthy{border-top-color:var(--ok-edge)}.systems-status-card.level-delayed{border-top-color:var(--warn-edge)}.systems-status-card.level-partialfailure{border-top-color:var(--danger-edge)}.systems-status-card.level-notconfigured,.systems-status-card.level-unknown{border-top-color:var(--neutral-edge);background:var(--color-surface-2)}.systems-status-card.level-notconfigured .systems-card-detail,.systems-status-card.level-unknown .systems-card-detail{border-inline-start-color:var(--neutral-edge);background:var(--neutral-wash);color:var(--neutral-ink)}.health-pill.neutral{color:var(--neutral-ink);background:var(--neutral-wash)}.systems-card-hint{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--color-surface-3);color:var(--color-ink-2);font-size:var(--fs-2xs)}.systems-unconfigured-note{margin-top:var(--sp-6);padding:var(--sp-4) var(--sp-5);border:1px dashed var(--color-line-strong);border-radius:var(--r-md);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-xs)}.systems-unconfigured-note p{margin:0}.systems-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.systems-card-head h3{margin:0;font-size:var(--fs-md)}.systems-card-facts{display:grid;gap:var(--sp-2);font-size:var(--fs-xs)}.systems-card-fact{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--color-line-soft)}.systems-card-fact:last-child{border-bottom:0;padding-bottom:0}.systems-card-fact span:first-child{color:var(--color-muted)}.systems-card-fact span:last-child{font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.systems-card-detail{padding:var(--sp-3) var(--sp-4);border-inline-start:3px solid var(--warn-edge);border-radius:var(--r-xs);background:var(--warn-wash);color:var(--warn-ink);font-family:var(--font-mono);font-size:var(--fs-3xs);line-height:1.5;overflow-wrap:anywhere}.systems-status-card.level-partialfailure .systems-card-detail{border-inline-start-color:var(--danger-edge);background:var(--danger-wash);color:var(--danger-ink)}.systems-status-card.level-healthy .systems-card-detail{border-inline-start-color:var(--ok-edge);background:var(--ok-wash);color:var(--ok-ink)}.systems-card-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:auto;padding-top:var(--sp-1)}.systems-card-actions button{min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-xs)}.systems-card-actions button:first-child{border-color:var(--accent);color:var(--accent-ink)}.systems-card-actions button:disabled{color:var(--color-muted);border-color:var(--color-line);background:var(--color-surface-2);box-shadow:none;cursor:not-allowed}.systems-ltr{unicode-bidi:isolate}.systems-diagnostics-modal{width:min(100%,40rem);max-height:82vh;display:flex;flex-direction:column}.systems-diagnostics-modal .modal-actions{margin-top:var(--sp-6)}.systems-poll-scroll{flex:1;overflow:auto;margin-top:var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm)}.systems-poll-table{width:100%;min-width:32.5rem;border-collapse:collapse;font-size:var(--fs-xs)}.systems-poll-table th,.systems-poll-table td{padding:var(--sp-3);border-bottom:1px solid var(--row-line);text-align:start;vertical-align:middle}.systems-poll-table th{position:sticky;top:0;z-index:1;color:var(--color-muted);background:var(--color-surface-2);border-bottom:1px solid var(--color-line-strong);font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.systems-poll-table tbody tr:nth-child(2n){background:var(--row-zebra)}.systems-poll-table tbody tr:hover{background:var(--row-hover)}.systems-poll-table td.systems-poll-error{color:var(--danger-ink);max-width:13.75rem;overflow-wrap:anywhere}.systems-poll-empty,.systems-poll-error-state,.systems-poll-loading{padding:var(--sp-10);color:var(--color-muted);text-align:center}.systems-poll-error-state{color:var(--danger-ink)}@media (max-width: 40rem){.systems-status-grid{grid-template-columns:1fr}.systems-banner{flex-direction:column;align-items:stretch}}:root{--font-display: "Source Serif 4", Georgia, "Times New Roman", serif;--font-ui: system-ui, "Segoe UI", "Noto Sans Hebrew", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", Consolas, "Source Code Pro", monospace;--font-family: var(--font-ui);--fs-3xs: .6875rem;--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.125rem;--fs-lg: 1.3125rem;--fs-xl: 1.625rem;--fs-2xl: 2.125rem;--fs-3xl: 2.75rem;--lh-tight: 1.15;--lh-snug: 1.35;--lh-base: 1.55;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--tracking-caps: .06em;--sp-0: 0rem;--sp-1: .25rem;--sp-2: .375rem;--sp-3: .5rem;--sp-4: .625rem;--sp-5: .75rem;--sp-6: .875rem;--sp-7: 1rem;--sp-8: 1.25rem;--sp-9: 1.5rem;--sp-10: 1.875rem;--sp-11: 2.25rem;--sp-12: 3rem;--spacing-base: .3125rem;--h-xs: 1.625rem;--h-sm: 1.9375rem;--h-md: 2.25rem;--h-lg: 2.625rem;--h-xl: 3rem;--r-xs: .1875rem;--r-sm: .3125rem;--r-md: .5rem;--r-lg: .75rem;--r-xl: 1.125rem;--r-pill: 62.4375rem;--radius: var(--r-sm);--color-bg: #eef1f4;--color-bg-sunken: #e4e9ee;--color-surface: #ffffff;--color-surface-2: #f6f8fa;--color-surface-3: #eef2f6;--color-ink: #16202a;--color-ink-2: #384854;--color-muted: #56646f;--color-text: var(--color-ink);--color-line: #d3dbe2;--color-line-strong: #b9c5cf;--color-line-soft: #e4eaef;--color-border: var(--color-line);--chrome-bg: #14232f;--chrome-bg-2: #1c3040;--chrome-line: #2b4152;--chrome-ink: #e7eff4;--chrome-ink-2: #a9bcca;--chrome-ink-3: #8399a9;--chrome-active-bg: #0d3a4c;--chrome-active-ink: #8fdcf4;--accent: #00708f;--accent-strong: #005872;--accent-bright: #0091ba;--accent-ink: #00506a;--accent-wash: #e2f3fa;--accent-wash-2: #cbe9f5;--accent-on: #ffffff;--color-accent: var(--accent);--color-accent-2: #b5006b;--sev-critical-ink: #9c1c17;--sev-critical-wash: #fbe6e3;--sev-critical-edge: #c8382e;--sev-critical-on: #ffffff;--sev-high-ink: #9a4409;--sev-high-wash: #fdeadb;--sev-high-edge: #e2661a;--sev-high-on: #ffffff;--sev-medium-ink: #7d5300;--sev-medium-wash: #fdf0d2;--sev-medium-edge: #d99b00;--sev-medium-on: #2b1d00;--sev-low-ink: var(--accent-ink);--sev-low-wash: var(--accent-wash);--sev-low-edge: var(--accent-bright);--sev-low-on: #ffffff;--sev-info-ink: #47555f;--sev-info-wash: #e9edf1;--sev-info-edge: #8496a3;--sev-info-on: #ffffff;--ok-ink: #15653d;--ok-wash: #e0f2e8;--ok-edge: #1f8a55;--ok-on: #ffffff;--warn-ink: var(--sev-medium-ink);--warn-wash: var(--sev-medium-wash);--warn-edge: var(--sev-medium-edge);--danger-ink: var(--sev-critical-ink);--danger-wash: var(--sev-critical-wash);--danger-edge: var(--sev-critical-edge);--danger-on: #ffffff;--neutral-ink: var(--sev-info-ink);--neutral-wash: var(--sev-info-wash);--neutral-edge: var(--sev-info-edge);--color-danger: var(--danger-edge);--color-success: var(--ok-edge);--color-process-yellow: var(--sev-medium-edge);--kind-movement: var(--ok-edge);--kind-ignition-no-movement: var(--sev-medium-edge);--kind-moving-or-idling: var(--ok-edge);--kind-approved-break: var(--accent-bright);--kind-water-fill: #6fb3d2;--kind-abnormal-stop: var(--sev-critical-edge);--kind-out-of-polygon: #b5006b;--kind-no-data: #c6d0d8;--kind-engine-off: #7c8b99;--kind-engine-state-unknown: #aab6c0;--exc-abnormal-stop-ink: #9c1c17;--exc-abnormal-stop-wash: #fbe6e3;--exc-abnormal-stop-edge: var(--sev-critical-edge);--exc-polygon-exit-ink: #8c0053;--exc-polygon-exit-wash: #fbe4f1;--exc-polygon-exit-edge: var(--kind-out-of-polygon);--exc-water-break-overuse-ink: #0d5f80;--exc-water-break-overuse-wash: #e2f3fa;--exc-water-break-overuse-edge: #3d94bd;--exc-speeding-ink: #9a4409;--exc-speeding-wash: #fdeadb;--exc-speeding-edge: var(--sev-high-edge);--exc-early-departure-ink: #5b3a9b;--exc-early-departure-wash: #eee7fb;--exc-early-departure-edge: #7b57c9;--exc-late-departure-ink: #7a3d8f;--exc-late-departure-wash: #f6e6fa;--exc-late-departure-edge: #a45cbb;--exc-shift-not-started-ink: #0a5f57;--exc-shift-not-started-wash: #e0f4f1;--exc-shift-not-started-edge: #12897c;--exc-sick-or-vacation-ink: #2f6b32;--exc-sick-or-vacation-wash: #e6f3e6;--exc-sick-or-vacation-edge: #3f9147;--exc-not-started-ink: #4a5a68;--exc-not-started-wash: #e8edf1;--exc-not-started-edge: #7c8b99;--exc-worked-yesterday-not-today-ink: #5c6b52;--exc-worked-yesterday-not-today-wash: #eaf0e4;--exc-worked-yesterday-not-today-edge: #8a9c7c;--exc-not-in-use-ink: #6b6357;--exc-not-in-use-wash: #f0ece5;--exc-not-in-use-edge: #9c9182;--exc-no-data-ink: #5a6773;--exc-no-data-wash: #eef1f4;--exc-no-data-edge: var(--sev-info-edge);--proj-1: #00708f;--proj-2: #6d4bad;--proj-3: #1f8a55;--proj-4: #b5006b;--proj-5: #a35a00;--proj-6: #2b6cb0;--row-zebra: #f6f8fa;--row-hover: #e2f2f8;--row-current: #cfeaf5;--row-line: var(--color-line-soft);--sh-0: none;--sh-1: 0 1px 2px rgba(20, 35, 47, .07), 0 1px 1px rgba(20, 35, 47, .04);--sh-2: 0 2px 5px rgba(20, 35, 47, .08), 0 1px 2px rgba(20, 35, 47, .05);--sh-3: 0 6px 16px rgba(20, 35, 47, .1), 0 2px 5px rgba(20, 35, 47, .06);--sh-4: 0 16px 38px rgba(20, 35, 47, .16), 0 5px 12px rgba(20, 35, 47, .08);--sh-5: 0 28px 64px rgba(20, 35, 47, .24), 0 8px 20px rgba(20, 35, 47, .12);--sh-inset: inset 0 1px 0 rgba(255, 255, 255, .7);--focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--accent-bright);--focus-ring-inset: inset 0 0 0 2px var(--accent-bright);--focus-outline: 2px solid var(--accent-bright);--focus-offset: 2px;--dur-1: 90ms;--dur-2: .16s;--dur-3: .26s;--dur-4: .42s;--dur-flash: .9s;--ease-out: cubic-bezier(.22, .78, .32, 1);--ease-in-out: cubic-bezier(.55, .06, .32, 1);--ease-spring: cubic-bezier(.2, .9, .28, 1.08);--rail-w: 15rem;--rail-w-collapsed: 4.5rem;--header-h: 4.375rem;--z-header: 10;--z-drawer: 30;--z-toast: 40}html{font-size:100%}html[data-textsize=large]{font-size:112.5%}html[data-textsize=huge]{font-size:131.25%}@media (prefers-reduced-motion: reduce){:root{--dur-1: 0ms;--dur-2: 0ms;--dur-3: 0ms;--dur-4: 0ms;--dur-flash: 0ms}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,.display{font-family:var(--font-display);line-height:var(--lh-tight);letter-spacing:-.005em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}table,time,bdi,input[type=number],input[type=time],input[type=date],.control-kpi strong,.stat-card strong,.severity-card strong,.supervisor-kpi strong,.behavior-tile strong,.metric-tile strong,.project-mini-kpi dd,.project-performance strong,.perf-callout strong,.alerts-count,.projects-count,.duration-badge,.monthly-avg-badge,.nav-alert-count,.alert-button b,.breakdown-list dd,.monthly-row-detail-list dd,.vehicle-header-card .plate,.systems-ltr,.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset);border-radius:var(--r-xs)}.sidebar :focus-visible,.app-header :focus-visible{outline-color:var(--accent-bright)}table :focus-visible,.bulk-assign-list :focus-visible{outline:none;box-shadow:var(--focus-ring-inset)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes ff-rise{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@keyframes ff-fade{0%{opacity:0}to{opacity:1}}@keyframes ff-row-in{0%{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:none}}@keyframes ff-drawer-in{0%{opacity:0;transform:translate(-1.5rem)}to{opacity:1;transform:none}}@keyframes ff-modal-in{0%{opacity:0;transform:translateY(.75rem) scale(.985)}to{opacity:1;transform:none}}@keyframes ff-flash{0%{background-color:var(--accent-wash-2)}to{background-color:transparent}}@keyframes ff-bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){@keyframes ff-rise{0%{opacity:1}to{opacity:1}}@keyframes ff-row-in{0%{opacity:1}to{opacity:1}}@keyframes ff-drawer-in{0%{opacity:1}to{opacity:1}}@keyframes ff-modal-in{0%{opacity:1}to{opacity:1}}@keyframes ff-bar-grow{0%{transform:none}to{transform:none}}}.auth-loading,.page-state{display:grid;min-height:100vh;place-items:center;color:var(--color-muted)}.page-state{min-height:12rem;animation:ff-fade var(--dur-3) var(--ease-out)}.error-state{color:var(--danger-ink)}.login-page{display:grid;position:relative;min-height:100vh;place-items:center;padding:var(--sp-9);overflow:hidden;background:var(--chrome-bg)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(52rem 32rem at 78% -10%,rgba(0,145,186,.3),transparent 62%),radial-gradient(40rem 28rem at 12% 110%,rgba(181,0,107,.16),transparent 60%);pointer-events:none}.login-card{position:relative;width:min(100%,27rem);padding:var(--sp-11);background:var(--color-surface);border:1px solid var(--color-line);border-top:3px solid var(--accent-bright);border-radius:var(--r-lg);box-shadow:var(--sh-5);animation:ff-rise var(--dur-4) var(--ease-out) both}.login-mark,.avatar{display:inline-grid;place-items:center;width:2.375rem;height:2.375rem;border-radius:50%;color:var(--accent-on);background:linear-gradient(140deg,var(--accent-bright),var(--accent-strong));font-family:var(--font-display);font-weight:var(--fw-bold);box-shadow:var(--sh-1)}.eyebrow{margin:var(--sp-5) 0 var(--sp-1);color:var(--accent);font-family:var(--font-ui);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps)}.login-card h1,.placeholder-page h1,.page-banner h1{margin:0;font-size:clamp(var(--fs-lg),3vw,var(--fs-xl));font-weight:var(--fw-bold);color:var(--color-ink)}.login-subtitle,.page-banner p,.section-heading p{margin:var(--sp-2) 0 0;color:var(--color-muted);font-size:var(--fs-sm)}.login-card form{display:grid;gap:var(--sp-3);margin-top:var(--sp-10)}.login-card label{font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.login-card input,.header-controls select,.header-controls input{width:100%;min-height:var(--h-lg);padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.login-card input:hover,.header-controls select:hover,.header-controls input:hover{border-color:var(--color-line-strong)}.login-card input:focus,.header-controls select:focus,.header-controls input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-wash)}.assign-field input,.assign-field select,.settings-field input,.settings-field select,.settings-select select,.break-window-row input,.reports-filter select,.reports-filter input,.vehicle-switcher select,.exception-modal select,.exception-modal textarea,.drawer-handler-row select,.drawer-notes-form textarea,.control-filters select,.replacement-modal textarea{transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.assign-field input:hover,.assign-field select:hover,.settings-field input:hover,.settings-field select:hover,.settings-select select:hover,.break-window-row input:hover,.reports-filter select:hover,.reports-filter input:hover,.vehicle-switcher select:hover,.exception-modal select:hover,.exception-modal textarea:hover,.drawer-handler-row select:hover,.drawer-notes-form textarea:hover,.control-filters select:hover,.replacement-modal textarea:hover{border-color:var(--color-line-strong)}.assign-field input:focus,.assign-field select:focus,.settings-field input:focus,.settings-field select:focus,.settings-select select:focus,.break-window-row input:focus,.reports-filter select:focus,.reports-filter input:focus,.vehicle-switcher select:focus,.exception-modal select:focus,.exception-modal textarea:focus,.drawer-handler-row select:focus,.drawer-notes-form textarea:focus,.control-filters select:focus,.replacement-modal textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-wash)}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-2);color:var(--color-muted);cursor:not-allowed}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:1rem;height:1rem}.primary-button{min-height:var(--h-lg);margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-7);border:1px solid var(--accent-strong);border-radius:var(--r-sm);color:var(--accent-on);background:linear-gradient(180deg,var(--accent-bright),var(--accent));font-weight:var(--fw-bold);box-shadow:var(--sh-1);transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}.primary-button:hover:not(:disabled){background:linear-gradient(180deg,var(--accent),var(--accent-strong));box-shadow:var(--sh-2)}.primary-button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--sh-0)}.primary-button:disabled{background:var(--color-surface-3);border-color:var(--color-line);color:var(--color-muted);box-shadow:none;opacity:1}button:where(:not(.primary-button,.link-button,.alert-button,.logout-button,.drawer-close)){min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);font-weight:var(--fw-medium);box-shadow:var(--sh-1);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}button:where(:not(.primary-button,.link-button,.alert-button,.logout-button,.drawer-close)):hover:not(:disabled){background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--sh-2)}button:where(:not(.primary-button,.link-button,.alert-button,.logout-button,.drawer-close)):active:not(:disabled){transform:translateY(1px);background:var(--accent-wash-2);box-shadow:none}button:where(:not(.primary-button,.link-button,.alert-button,.logout-button,.drawer-close)):disabled{color:var(--color-muted);border-color:var(--color-line);background:var(--color-surface-2);box-shadow:none}.link-button{border:0;background:transparent;color:var(--accent);font-weight:var(--fw-bold);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-xs);transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.link-button:hover{color:var(--accent-strong);background:var(--accent-wash)}.form-error{margin:var(--sp-1) 0;padding:var(--sp-2) var(--sp-4);border-inline-start:3px solid var(--danger-edge);border-radius:var(--r-xs);background:var(--danger-wash);color:var(--danger-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width, var(--rail-w)) minmax(0,1fr);min-height:100vh;transition:grid-template-columns var(--dur-4) var(--ease-out)}.app-main{min-width:0;background:var(--color-bg)}.app-main>.warning-banner{margin-inline:var(--sp-9)}.sidebar{display:flex;position:sticky;top:0;height:100vh;flex-direction:column;background:var(--chrome-bg);color:var(--chrome-ink);border-inline-end:1px solid var(--chrome-line);overflow-x:hidden}.brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-6) var(--sp-7);border-bottom:1px solid var(--chrome-line);background:linear-gradient(180deg,var(--chrome-bg-2),var(--chrome-bg))}.brand-full{min-width:0}.brand-full strong{display:block;font-family:var(--font-display);font-size:var(--fs-md);color:var(--chrome-ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-full span{display:block;color:var(--chrome-ink-3);font-size:var(--fs-3xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-mark{display:none;flex:0 0 auto;width:1.75rem;height:1.75rem;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--chrome-bg-2);color:var(--chrome-ink);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-sm)}.sidebar-toggle{display:grid;flex:0 0 auto;place-items:center;width:1.75rem;height:1.75rem;border:1px solid var(--chrome-line);border-radius:var(--r-sm);background:var(--chrome-bg);color:var(--chrome-ink-2);font-size:var(--fs-sm);line-height:1;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.sidebar-toggle:hover{background:var(--chrome-bg-2);color:var(--chrome-ink)}.sidebar-hide{display:grid;flex:0 0 auto;place-items:center;width:1.75rem;height:1.75rem;border:1px solid var(--chrome-line);border-radius:var(--r-sm);background:var(--chrome-bg);color:var(--chrome-ink-3);font-size:var(--fs-2xs);line-height:1;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.sidebar-hide:hover{background:var(--chrome-bg-2);color:var(--chrome-ink)}.sidebar nav{padding:var(--sp-4) var(--sp-3);display:grid;gap:2px}.nav-item{display:flex;position:relative;align-items:center;gap:var(--sp-4);min-height:var(--h-lg);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);color:var(--chrome-ink-2);text-decoration:none;font-weight:var(--fw-medium);font-size:var(--fs-sm);transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.nav-item:hover{background:var(--chrome-bg-2);color:var(--chrome-ink)}.nav-item.active{color:var(--chrome-active-ink);background:var(--chrome-active-bg);font-weight:var(--fw-bold);box-shadow:inset 3px 0 0 0 var(--accent-bright)}.nav-item.active{box-shadow:none}.nav-item.active:before{content:"";position:absolute;inset-block:var(--sp-2);inset-inline-start:0;width:3px;border-radius:var(--r-pill);background:var(--accent-bright)}.nav-icon{width:1.0625rem;text-align:center;color:currentColor;font-size:var(--fs-sm)}.nav-alert-count{display:grid;min-width:1.25rem;height:1.25rem;padding:0 var(--sp-1);margin-inline-start:auto;place-items:center;border-radius:var(--r-pill);color:var(--danger-on);background:var(--danger-edge);font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.nav-health-dot{width:.5rem;height:.5rem;margin-inline-start:auto;border-radius:50%;background:var(--danger-edge);box-shadow:0 0 0 3px #c8382e38}.sidebar-footer{margin-top:auto;padding:var(--sp-6) var(--sp-8);border-top:1px solid var(--chrome-line);color:var(--chrome-ink-3);font-size:var(--fs-3xs)}.sidebar-footer strong{display:block;margin-top:var(--sp-1);color:var(--chrome-ink);font-size:var(--fs-xs);font-family:var(--font-ui)}.sidebar.collapsed .brand{justify-content:center;padding-inline:var(--sp-2);gap:2px}.sidebar.collapsed .brand-full,.sidebar.collapsed .brand-mark{display:none}.sidebar.collapsed nav{padding-inline:var(--sp-2)}.sidebar.collapsed .nav-item{justify-content:center;gap:0;padding-inline:var(--sp-2)}.sidebar.collapsed .nav-label,.sidebar.collapsed .sidebar-footer{display:none}.sidebar.collapsed .nav-alert-count,.sidebar.collapsed .nav-health-dot{position:absolute;inset-block-start:2px;inset-inline-end:2px;margin-inline-start:0}.sidebar.collapsed .nav-alert-count{min-width:1rem;height:1rem;padding:0;font-size:.6rem}.sidebar.hidden{visibility:hidden}.sidebar-restore{display:grid;flex:0 0 auto;place-items:center;width:1.75rem;height:1.75rem;border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-sm);line-height:1;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.sidebar-restore:hover{background:var(--color-surface-3);color:var(--color-ink)}.quick-access-panel{overflow-y:auto;max-height:40vh;padding:var(--sp-3) var(--sp-3) var(--sp-4);border-top:1px solid var(--chrome-line)}.quick-access-empty{margin:var(--sp-4) var(--sp-3);color:var(--chrome-ink-3);font-size:var(--fs-3xs)}.quick-access-heading{margin:var(--sp-5) var(--sp-4) var(--sp-2);color:var(--chrome-ink-3);font-size:var(--fs-3xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps)}.quick-access-panel section:first-child .quick-access-heading{margin-top:var(--sp-2)}.quick-access-group{display:grid;gap:2px;padding:0;margin:0;list-style:none}.quick-access-group li{display:flex;align-items:center;gap:2px}.quick-access-group .quick-access-item{flex:1;min-width:0}.quick-access-item-label{display:flex;align-items:center;gap:var(--sp-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-access-visit-count{flex:0 0 auto;color:var(--chrome-ink-3);font-size:var(--fs-3xs);font-weight:var(--fw-regular)}.quick-access-panel .quick-access-item,.quick-access-mobile-trigger{background:transparent;border:none;box-shadow:none;color:var(--chrome-ink-2)}.quick-access-panel .quick-access-item:hover:not(:disabled),.quick-access-mobile-trigger:hover:not(:disabled){background:var(--chrome-bg-2);border-color:transparent;color:var(--chrome-ink);box-shadow:none}.quick-access-panel .quick-access-item:active:not(:disabled),.quick-access-mobile-trigger:active:not(:disabled){background:var(--chrome-bg-2);box-shadow:none;transform:none}.star-toggle{display:grid;flex:0 0 auto;width:var(--h-md);height:var(--h-md);place-items:center;border:none;border-radius:var(--r-sm);background:transparent;box-shadow:none;color:var(--chrome-ink-3);font-size:var(--fs-md);line-height:1;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.star-toggle:hover{background:var(--chrome-bg-2);color:var(--chrome-ink)}.star-toggle.starred{color:#f0b429}.star-toggle:disabled{cursor:default;opacity:.6}.star-toggle.on-light{color:var(--color-muted)}.star-toggle.on-light:hover{background:var(--color-surface-3);color:var(--color-ink-2)}.star-toggle.on-light.starred{color:#b8860b}.sidebar.collapsed .quick-access-heading,.sidebar.collapsed .quick-access-star,.sidebar.collapsed .quick-access-visit-count{display:none}.sidebar.collapsed .quick-access-panel{padding-inline:var(--sp-2)}.quick-access-mobile-trigger{display:none}.quick-access-sheet-backdrop{align-items:flex-end;padding:0}.quick-access-sheet{width:100%;max-height:75vh;padding:var(--sp-7) var(--sp-7) var(--sp-9);border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--color-surface);overflow-y:auto;animation:ff-drawer-in var(--dur-3) var(--ease-out) both}.quick-access-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.quick-access-sheet-header h2{margin:0;font-size:var(--fs-md)}.quick-access-sheet-close{display:grid;width:var(--h-md);height:var(--h-md);place-items:center;border:none;border-radius:var(--r-sm);background:transparent;color:var(--color-muted);font-size:var(--fs-lg);cursor:pointer}.quick-access-sheet-close:hover{background:var(--color-surface-3);color:var(--color-ink)}.quick-access-sheet .quick-access-heading{color:var(--color-muted)}.quick-access-sheet .nav-item{color:var(--color-ink-2)}.quick-access-sheet .nav-item:hover{background:var(--row-hover);color:var(--color-ink)}.quick-access-sheet .star-toggle{color:var(--color-muted)}.quick-access-sheet .star-toggle:hover{background:var(--color-surface-3);color:var(--color-ink-2)}.quick-access-sheet .star-toggle.starred{color:#b8860b}@media (prefers-reduced-motion: reduce){.app-shell,.sidebar-toggle,.sidebar-hide,.sidebar-restore{transition:none}}.app-header{display:flex;position:sticky;z-index:var(--z-header);top:0;min-height:var(--header-h);align-items:center;justify-content:space-between;gap:var(--sp-8);padding:var(--sp-4) var(--sp-9);background:var(--color-surface);border-bottom:1px solid var(--color-line);box-shadow:var(--sh-1)}.header-controls,.header-meta{display:flex;align-items:center;gap:var(--sp-4)}.header-controls{flex:1 1 22rem;min-width:0;max-width:38.75rem;flex-wrap:wrap;row-gap:var(--sp-2)}.header-controls .project-filter{flex:0 1 auto;min-width:11.875rem;max-width:21.25rem}.search-field{display:flex;position:relative;flex:1 1 auto;min-width:11rem;align-items:center}.search-field input{padding-inline-end:var(--sp-10)}.search-field>span:last-child{position:absolute;inset-inline-end:var(--sp-4);color:var(--color-muted)}.header-meta{justify-content:flex-end;color:var(--color-muted);font-size:var(--fs-2xs)}.header-meta{min-width:0;flex-wrap:wrap;row-gap:var(--sp-2)}.sync-status{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;color:var(--warn-ink);font-weight:var(--fw-medium)}.sync-status i{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--warn-edge);box-shadow:0 0 0 3px var(--warn-wash)}.sync-status--ok{color:var(--ok-ink)}.sync-status--ok i{background:var(--ok-edge);box-shadow:0 0 0 3px var(--ok-wash)}.sync-status--bad{color:var(--danger-ink)}.sync-status--bad i{background:var(--danger-edge);box-shadow:0 0 0 3px var(--danger-wash)}.alert-button,.logout-button{display:inline-flex;min-height:var(--h-md);align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-2xs);font-weight:var(--fw-medium);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.alert-button:hover,.logout-button:hover{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink)}.alert-button{position:relative}.alert-button b{display:grid;min-width:1.125rem;height:1.125rem;padding:0 var(--sp-1);place-items:center;border-radius:var(--r-pill);color:var(--danger-on);background:var(--danger-edge);font-size:var(--fs-3xs);font-weight:var(--fw-bold);line-height:1}.user-chip{display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.user-chip .avatar{width:2rem;height:2rem;font-size:var(--fs-sm)}.user-chip strong,.user-chip small{display:block;line-height:1.25}.user-chip strong{color:var(--color-ink);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.user-chip small{color:var(--color-muted);font-size:var(--fs-3xs)}.page-content{padding:var(--sp-9);animation:ff-fade var(--dur-3) var(--ease-out)}.page-banner,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-8)}.page-banner{padding-bottom:var(--sp-5);border-bottom:1px solid var(--color-line)}.health-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.health-pill:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex:0 0 auto}.health-pill.healthy{color:var(--ok-ink);background:var(--ok-wash)}.health-pill.warning{color:var(--warn-ink);background:var(--warn-wash)}.warning-banner{margin:var(--sp-8) 0;padding:var(--sp-6) var(--sp-7);border:1px solid color-mix(in srgb,var(--warn-edge),white 62%);border-inline-start:4px solid var(--warn-edge);border-radius:var(--r-md);background:var(--warn-wash);color:var(--warn-ink);box-shadow:var(--sh-1);animation:ff-rise var(--dur-3) var(--ease-out) both}.warning-banner-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}.warning-banner-actions button{min-height:var(--h-sm);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-xs)}.warning-banner-actions button:first-child{border-color:var(--accent);color:var(--accent-ink)}.stat-card,.exceptions-panel,.severity-card{border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-5);margin-top:var(--sp-9)}.stat-card{min-height:7.8125rem;padding:var(--sp-7);border-top:3px solid var(--neutral-edge)}.stat-card.accent{border-top-color:var(--ok-edge)}.stat-card.danger{border-top-color:var(--danger-edge)}.stat-card span,.stat-card small{display:block;color:var(--color-muted);font-size:var(--fs-xs)}.stat-card strong{display:block;margin:var(--sp-3) 0 var(--sp-1);color:var(--color-ink);font-family:var(--font-display);font-size:var(--fs-2xl);line-height:1}.stat-card.accent strong{color:var(--ok-ink)}.stat-card.danger strong{color:var(--danger-ink)}.exceptions-panel{margin-top:var(--sp-9);padding:var(--sp-8)}.section-heading h2{margin:0;font-size:var(--fs-lg)}.section-heading>span{color:var(--danger-ink);font-weight:var(--fw-bold)}.severity-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-5);margin-top:var(--sp-8)}.collapsible-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-5)}.collapsible-section-toggle{display:flex;flex:1 1 auto;align-items:flex-start;gap:var(--sp-4);min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.collapsible-section-toggle:hover .collapsible-section-title-text{color:var(--accent-ink)}.collapsible-section-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm)}.collapsible-section-titles{min-width:0}.collapsible-section-title-text{display:block;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--color-ink)}.collapsible-section-titles .section-subtitle{margin:var(--sp-1) 0 0}.collapsible-section-actions{flex:0 0 auto}.collapsible-chevron{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;margin-top:.4375rem;color:var(--color-muted);transform:rotate(90deg);transition:transform var(--dur-2) var(--ease-out)}.collapsible-section-toggle[aria-expanded=true] .collapsible-chevron{transform:rotate(0)}.collapsible-section-body{margin-top:var(--sp-6)}.collapsible-section-body[hidden]{display:none}@media (prefers-reduced-motion: reduce){.collapsible-chevron{transition:none}}.severity-card{min-height:6rem;padding:var(--sp-5);border-top:3px solid var(--neutral-edge)}.severity-card span{color:var(--color-muted);font-size:var(--fs-xs)}.severity-card strong{display:block;margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-xl)}.placeholder-page{padding:10vh 0;text-align:center}.placeholder-page .eyebrow{margin:0}.placeholder-page>p:last-child{margin-top:var(--sp-3);color:var(--color-muted);font-size:var(--fs-md)}.dev-version-badge{position:fixed;z-index:2;bottom:var(--sp-2);inset-inline-start:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-xs);color:#fff;background:var(--color-accent-2);font:var(--fw-bold) .625rem/1.4 var(--font-ui);direction:ltr;opacity:.85;pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width: 30rem){.dev-version-badge{bottom:2px;inset-inline-start:2px;padding:1px var(--sp-1);font-size:.5625rem}}.control-room-page{min-width:0}.control-room-page .grid-active-filters{margin-top:var(--sp-5)}.control-kpis{display:grid;grid-template-columns:repeat(8,minmax(7.5rem,1fr));gap:var(--sp-4);margin-top:var(--sp-9);overflow-x:auto;padding-bottom:var(--sp-1)}.control-kpi{display:block;width:100%;min-width:8.125rem;padding:var(--sp-6);border:1px solid var(--color-line);border-top:3px solid var(--neutral-edge);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1);text-align:start;font-family:inherit;transition:background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out);animation:ff-rise var(--dur-3) var(--ease-out) both}.control-kpi>span,.control-kpi small{display:block;color:var(--color-muted);font-size:var(--fs-2xs)}.control-kpi strong{display:block;margin:var(--sp-2) 0 var(--sp-1);font-family:var(--font-display);font-size:var(--fs-xl);line-height:1}.control-kpi strong.kpi-pending{opacity:.45}.control-kpi-success{border-top-color:var(--ok-edge)}.control-kpi-success strong{color:var(--ok-ink)}.control-kpi-warning{border-top-color:var(--warn-edge)}.control-kpi-warning strong{color:var(--warn-ink)}.control-kpi-danger{border-top-color:var(--danger-edge)}.control-kpi-danger strong{color:var(--danger-ink)}.control-kpi-accent{border-top-color:var(--accent-bright)}.control-kpi-accent strong{color:var(--accent-ink)}.control-kpi:hover{background:var(--color-surface-2);box-shadow:var(--sh-3);transform:translateY(-2px)}.control-kpi:active{transform:translateY(0);box-shadow:var(--sh-1)}.control-kpi.control-kpi-active{border-top-width:4px;border-color:var(--accent);background:var(--accent-wash);box-shadow:var(--sh-2),inset 0 0 0 1px var(--accent)}.control-kpi.control-kpi-active>span{color:var(--accent-ink);font-weight:var(--fw-bold)}.control-kpi.control-kpi-active strong{animation:ff-flash var(--dur-flash) var(--ease-out) 1}.control-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-8);padding:var(--sp-5) 0}.filters-label{color:var(--color-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.control-filters select,.control-filters button{min-height:var(--h-md);padding:var(--sp-1) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.control-filters button:hover{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink)}.control-filters select{max-width:13.75rem;border-radius:var(--r-sm)}.multi-select{position:relative;display:inline-flex}.control-filters .multi-select-trigger{display:inline-flex;max-width:13.75rem;align-items:center;gap:var(--sp-2);border-radius:var(--r-sm)}.multi-select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-filters .multi-select-trigger.has-selection{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-ink)}.multi-select-count{min-width:1.125rem;padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--accent);color:#fff;font-size:var(--fs-3xs);font-weight:var(--fw-bold);text-align:center}.multi-select-caret{color:var(--color-muted);font-size:var(--fs-2xs);line-height:1}.multi-select-panel{position:absolute;z-index:var(--z-header);inset-inline-start:0;inset-block-start:calc(100% + var(--sp-2));min-width:12.5rem;max-height:17rem;overflow-y:auto;padding:var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-3)}.multi-select-list{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.multi-select-list label{display:flex;align-items:center;gap:var(--sp-3);color:var(--color-ink);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}.multi-select-empty{color:var(--color-muted);font-size:var(--fs-2xs)}.control-filters .multi-select-clear{width:100%;margin-top:var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-2xs)}.status-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.status-chips button{font-size:var(--fs-xs)}.status-chips button.selected,.alerts-filter-group button.selected,.work-day-chips button.selected{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-wash);font-weight:var(--fw-bold);box-shadow:inset 0 0 0 1px var(--accent)}.exception-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);font-size:var(--fs-xs)}.exception-toggle input{accent-color:var(--danger-edge)}.clear-filters{color:var(--accent)!important;font-weight:var(--fw-semibold)}.control-filters .filters-date{display:inline-flex;align-items:center}.control-filters .filters-date input[type=date]{direction:ltr;min-height:var(--h-md);padding:var(--sp-1) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);font:inherit;transition:border-color var(--dur-2) var(--ease-out)}.control-filters .filters-date input[type=date]:hover{border-color:var(--color-line-strong)}.control-filters .filters-date-reset{font-size:var(--fs-xs);color:var(--accent);font-weight:var(--fw-semibold)}.control-filters .filters-date-hint{color:var(--color-muted);font-size:var(--fs-xs)}.control-room-day-note{margin:var(--sp-3) 0 0;padding:var(--sp-3) var(--sp-4);border:1px solid color-mix(in srgb,var(--warn-edge),white 55%);border-inline-start:3px solid var(--warn-edge);border-radius:var(--r-sm);background:var(--warn-wash);color:var(--warn-ink);font-size:var(--fs-xs)}.control-inline-error{margin:var(--sp-5) 0;color:var(--danger-ink);font-weight:var(--fw-medium)}.control-view-toggle{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-5)}.queue-panel{margin-top:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1);overflow:hidden}.queue-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-6) var(--sp-8);border-bottom:1px solid var(--color-line);background:var(--color-surface-2)}.queue-heading h2{margin:0;font-size:var(--fs-md)}.queue-heading span{color:var(--danger-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.queue-scroll{overflow-x:auto}.exception-queue{width:100%;min-width:86.875rem;border-collapse:collapse;font-size:var(--fs-xs)}.exception-queue th,.exception-queue td{padding:var(--sp-4) var(--sp-3);border-bottom:1px solid var(--row-line);text-align:start;vertical-align:middle;white-space:nowrap}.exception-queue th{position:sticky;top:0;z-index:1;color:var(--color-muted);background:var(--color-surface-2);border-bottom:1px solid var(--color-line-strong);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.01em}.exception-queue tbody tr{cursor:pointer;transition:background-color var(--dur-1) var(--ease-out)}.exception-queue tbody tr:nth-child(2n),.alerts-queue tbody tr:nth-child(2n){background:var(--row-zebra)}.exception-queue tbody tr:hover{background:var(--row-hover)}.exception-queue tbody tr:focus-visible{outline:none;box-shadow:var(--focus-ring-inset);background:var(--row-hover)}.exception-queue td small{display:block;margin-top:1px;color:var(--color-muted);font-size:var(--fs-3xs)}.exception-queue tbody tr{animation:ff-row-in var(--dur-3) var(--ease-out) both}.exception-queue tbody tr>td:first-child,.alerts-queue tbody tr>td:first-child{border-inline-start:3px solid transparent}.exception-queue tbody tr:has(.severity-critical)>td:first-child,.alerts-queue tbody tr:has(.severity-critical)>td:first-child{border-inline-start-color:var(--sev-critical-edge)}.exception-queue tbody tr:has(.severity-high)>td:first-child,.alerts-queue tbody tr:has(.severity-high)>td:first-child{border-inline-start-color:var(--sev-high-edge)}.exception-queue tbody tr:has(.severity-medium)>td:first-child,.alerts-queue tbody tr:has(.severity-medium)>td:first-child{border-inline-start-color:var(--sev-medium-edge)}.exception-queue tbody tr:has(.severity-low)>td:first-child,.alerts-queue tbody tr:has(.severity-low)>td:first-child{border-inline-start-color:var(--sev-low-edge)}.exception-queue tbody tr:has(.severity-info)>td:first-child,.alerts-queue tbody tr:has(.severity-info)>td:first-child{border-inline-start-color:var(--sev-info-edge)}.severity-tag,.status-tag,.doc-badge,.report-status,.project-shift-pill,.vehicle-status-pill,.user-inactive-tag,.monthly-avg-badge,.duration-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-3xs);font-weight:var(--fw-bold);white-space:nowrap;line-height:1.5}.severity-tag:before,.status-tag:before{content:"";width:.4375rem;height:.4375rem;border-radius:50%;background:currentColor;flex:0 0 auto}.severity-critical{color:var(--sev-critical-ink);background:var(--sev-critical-wash)}.severity-high{color:var(--sev-high-ink);background:var(--sev-high-wash)}.severity-medium{color:var(--sev-medium-ink);background:var(--sev-medium-wash)}.severity-low{color:var(--sev-low-ink);background:var(--sev-low-wash)}.severity-info{color:var(--sev-info-ink);background:var(--sev-info-wash)}.status-open{color:var(--sev-critical-ink);background:var(--sev-critical-wash)}.status-handled{color:var(--accent-ink);background:var(--accent-wash)}.status-dismissed{color:var(--sev-info-ink);background:var(--sev-info-wash)}.status-approvedbreak{color:var(--ok-ink);background:var(--ok-wash)}.duration-badge{color:var(--sev-info-ink);background:var(--sev-info-wash)}.queue-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.queue-actions button,.drawer-actions button,.modal-actions button:not(.primary-button){padding:var(--sp-2) var(--sp-4);min-height:var(--h-sm);font-size:var(--fs-xs);white-space:nowrap}.queue-actions button:first-child{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}.queue-empty,.alerts-empty{padding:var(--sp-11) var(--sp-8);color:var(--color-muted);text-align:center}.drawer-backdrop,.modal-backdrop{position:fixed;z-index:var(--z-drawer);top:0;right:0;bottom:0;left:0;background:#14232f8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:ff-fade var(--dur-2) var(--ease-out)}.drawer-backdrop{display:flex;justify-content:flex-start}.exception-drawer{display:flex;width:min(100%,31.25rem);height:100%;flex-direction:column;overflow:hidden;background:var(--color-bg);box-shadow:var(--sh-5);animation:ff-drawer-in var(--dur-4) var(--ease-out) both}.drawer-header{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-9) var(--sp-9) var(--sp-5);border-bottom:1px solid var(--color-line);background:var(--color-surface)}.drawer-header h2{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-lg)}.drawer-header p{margin:0;color:var(--color-muted);font-size:var(--fs-sm)}.drawer-close{display:grid;width:var(--h-md);height:var(--h-md);margin-inline-start:auto;place-items:center;border:1px solid transparent;border-radius:var(--r-sm);color:var(--color-muted);background:transparent;font-size:var(--fs-lg);line-height:1;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.drawer-close:hover{background:var(--danger-wash);color:var(--danger-ink)}.drawer-content{flex:1;overflow-y:auto;padding:var(--sp-7) var(--sp-9) var(--sp-9)}.drawer-content section{margin:var(--sp-8) 0}.drawer-content h3{margin:0 0 var(--sp-3);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:none}.drawer-content p{margin:0}.drawer-status{padding-bottom:var(--sp-5);border-bottom:1px solid var(--color-line)}.drawer-summary{display:grid;padding:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1)}.drawer-summary span,.drawer-summary small{color:var(--color-muted);font-size:var(--fs-xs)}.drawer-summary strong{margin:var(--sp-1) 0;font-family:var(--font-display);font-size:var(--fs-md)}.exception-map{height:18rem;overflow:hidden;border:1px solid var(--color-line);border-radius:var(--r-md)}.exception-map-loading{display:grid;width:100%;height:100%;place-items:center;background:var(--color-surface-2)}.exception-map-error{display:grid;width:100%;height:100%;margin:0;padding:0 var(--sp-7);place-items:center;text-align:center;color:var(--danger-ink);background:var(--danger-wash)}.spinner{width:1.75rem;height:1.75rem;border:3px solid var(--color-line);border-top-color:var(--accent);border-radius:50%;animation:spinner-rotate .8s linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s!important;animation-iteration-count:infinite!important}}.vehicle-map-marker{display:grid;width:1.375rem!important;height:1.375rem!important;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--danger-edge);color:#fff;box-shadow:var(--sh-2);font-size:var(--fs-3xs)}.audit-list{padding:0;margin:0;list-style:none}.audit-list li{padding:var(--sp-3) 0;border-bottom:1px solid var(--color-line-soft);font-size:var(--fs-xs)}.audit-list time{color:var(--color-muted)}.drawer-actions{display:flex;position:sticky;bottom:calc(var(--sp-9) * -1);flex-direction:column;align-items:stretch;gap:var(--sp-3);padding:var(--sp-5) 0;background:var(--color-bg);border-top:1px solid var(--color-line)}.drawer-actions button:first-child{color:var(--accent-on);border-color:var(--accent-strong);background:var(--accent)}.drawer-actions button:first-child:hover:not(:disabled){background:var(--accent-strong);color:var(--accent-on)}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin:var(--sp-8) 0}.detail-list div{padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface)}.detail-list dt{color:var(--color-muted);font-size:var(--fs-3xs)}.detail-list dd{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);font-weight:var(--fw-medium)}.modal-backdrop{display:grid;place-items:center;padding:var(--sp-8);overflow-y:auto}.exception-modal{width:min(100%,29.375rem);max-height:calc(100vh - var(--sp-12));overflow-y:auto;padding:var(--sp-10);border:1px solid var(--color-line);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--sh-5);animation:ff-modal-in var(--dur-3) var(--ease-out) both}.exception-modal h2{margin:0 0 var(--sp-5);font-size:var(--fs-lg)}.exception-modal p{margin:0 0 var(--sp-7);color:var(--color-muted);font-size:var(--fs-sm)}.exception-modal label{display:block;margin-bottom:var(--sp-2);font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.exception-modal textarea{width:100%;resize:vertical;padding:var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface)}.modal-actions{display:flex;justify-content:flex-start;gap:var(--sp-3);margin-top:var(--sp-8)}.modal-actions .primary-button{min-height:var(--h-md);margin:0;padding:var(--sp-2) var(--sp-6)}.suppress-alerts-actions{flex-wrap:wrap}.exception-modal-header{display:flex;align-items:flex-start;gap:var(--sp-4)}.exception-modal-header .drawer-close{flex:0 0 auto}.exception-modal select{width:100%;min-height:var(--h-md);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-1);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);font:inherit}.control-toast{position:fixed;z-index:var(--z-toast);bottom:var(--sp-9);inset-inline-start:var(--sp-9);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-7);border-radius:var(--r-md);color:var(--ok-on);background:var(--ok-edge);box-shadow:var(--sh-4);font-weight:var(--fw-medium);animation:ff-rise var(--dur-3) var(--ease-out) both}.control-toast--error{background:var(--danger-edge);color:var(--danger-on)}.alerts-page{min-width:0}.alerts-banner{align-items:flex-end}.alerts-count{color:var(--danger-ink);font-size:var(--fs-base);font-weight:var(--fw-bold);white-space:nowrap}.alerts-toolbar{display:flex;justify-content:flex-start;margin-top:var(--sp-8)}.view-toggle,.settings-tabs,.vehicle-range-toggle{display:inline-flex;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);box-shadow:var(--sh-1)}.view-toggle{margin:0}.view-toggle label{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-xs);transition:background-color var(--dur-2) var(--ease-out)}.view-toggle label:hover{background:var(--color-surface-3)}.view-toggle input{accent-color:var(--accent)}.alerts-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-5);margin-top:var(--sp-6);padding:var(--sp-6) 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.alerts-filter-group>span{display:block;margin-bottom:var(--sp-2);color:var(--color-muted);font-size:var(--fs-3xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps)}.alerts-filter-group>div{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.alerts-filter-group button{min-height:var(--h-sm);padding:var(--sp-1) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-xs);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.alerts-filter-group button:hover{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink)}.alerts-filters .clear-filters{min-height:var(--h-sm);margin-bottom:1px;border:0;background:transparent}.alerts-queue-panel{margin-top:var(--sp-7)}.alerts-queue{min-width:73.75rem}.progress-sparkline{color:var(--accent);letter-spacing:1px;font-family:var(--font-ui)}.alerts-queue td:nth-child(9){max-width:11.25rem;white-space:normal}.alerts-actions{align-items:center}.delete-alert-button,.delete-confirm-button{color:var(--danger-ink)!important;border-color:color-mix(in srgb,var(--danger-edge),white 45%)!important}.delete-alert-button:hover,.delete-confirm-button:hover{background:var(--danger-wash)!important;border-color:var(--danger-edge)!important;color:var(--danger-ink)!important}.delete-confirm-button{background:var(--color-surface)!important}.alerts-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.8125rem,1fr));gap:var(--sp-5);margin-top:var(--sp-7)}.alert-card{padding:var(--sp-7);border:1px solid var(--color-line);border-radius:var(--r-md);border-inline-start:3px solid var(--sev-info-edge);background:var(--color-surface);box-shadow:var(--sh-1);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);animation:ff-rise var(--dur-3) var(--ease-out) both}.alert-card:has(.severity-critical){border-inline-start-color:var(--sev-critical-edge)}.alert-card:has(.severity-high){border-inline-start-color:var(--sev-high-edge)}.alert-card:has(.severity-medium){border-inline-start-color:var(--sev-medium-edge)}.alert-card:has(.severity-low){border-inline-start-color:var(--sev-low-edge)}.alert-card:hover{background:var(--color-surface-2);box-shadow:var(--sh-3);transform:translateY(-2px)}.alert-card:focus-visible{outline:none;box-shadow:var(--focus-ring-inset),var(--sh-3);background:var(--color-surface-2)}.alert-card header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.alert-card h2{margin:var(--sp-6) 0;font-size:var(--fs-md)}.alert-card h2 small{display:block;margin-top:var(--sp-1);color:var(--color-muted);font-family:var(--font-ui);font-size:var(--fs-3xs);font-weight:var(--fw-regular)}.alert-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin:0 0 var(--sp-6)}.alert-card dl>div{min-width:0}.alert-card dt{color:var(--color-muted);font-size:var(--fs-3xs)}.alert-card dd{margin:var(--sp-1) 0 0;overflow-wrap:anywhere;font-size:var(--fs-xs);font-weight:var(--fw-medium)}.alert-card dd small,.alerts-queue td small{display:block;margin-top:1px;color:var(--color-muted);font-size:var(--fs-3xs);font-weight:var(--fw-regular)}.delete-exception-modal{border-top:3px solid var(--danger-edge)}.alerts-window-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0 0;padding:var(--sp-3) var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-xs)}.alerts-window-note strong{color:var(--color-ink)}.alerts-date-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}.alerts-date-range .assign-field{gap:var(--sp-1)}.alerts-date-range .assign-field input{min-height:var(--h-sm);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs)}.alerts-load-more{display:flex;justify-content:center;margin-top:var(--sp-6)}.alerts-load-more button{min-height:var(--h-md);padding:var(--sp-3) var(--sp-9);border:1px solid var(--accent);border-radius:var(--r-pill);color:var(--accent-ink);background:var(--accent-wash);font-weight:var(--fw-bold);transition:background-color var(--dur-2) var(--ease-out)}.alerts-load-more button:hover:not(:disabled){background:var(--accent-wash-2)}.alerts-load-more button:disabled{opacity:.6}.projects-page,.settings-page{min-width:0}.projects-count{color:var(--color-muted);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:var(--sp-7);margin-top:var(--sp-9)}.project-card,.settings-panel{border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1)}.project-card{display:flex;min-width:0;flex-direction:column;padding:var(--sp-8);border-top:3px solid var(--accent-bright);transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out);animation:ff-rise var(--dur-3) var(--ease-out) both}.project-card:hover{box-shadow:var(--sh-3);transform:translateY(-2px)}.project-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.project-card h2{margin:0;font-size:var(--fs-lg)}.project-card header p{margin:var(--sp-2) 0 0;color:var(--color-muted);font-size:var(--fs-xs)}.project-header-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--sp-2)}.project-shift-pill{flex:0 0 auto;color:var(--sev-info-ink);background:var(--sev-info-wash)}.project-shift-pill.active{color:var(--ok-ink);background:var(--ok-wash)}.project-shift-pill:before{content:"";width:.4375rem;height:.4375rem;border-radius:50%;background:currentColor;flex:0 0 auto}.project-performance{display:grid;margin:var(--sp-8) 0 var(--sp-6)}.project-performance span{color:var(--color-muted);font-size:var(--fs-xs)}.project-performance strong{margin-top:var(--sp-1);color:var(--ok-ink);font-family:var(--font-display);font-size:var(--fs-2xl);line-height:1.05}.project-mini-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);margin:0}.project-mini-kpi{min-width:0;padding:var(--sp-3);border:1px solid var(--color-line-soft);border-radius:var(--r-sm);background:var(--color-surface-2)}.project-mini-kpi dt{color:var(--color-muted);font-size:var(--fs-3xs)}.project-mini-kpi dd{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);font-weight:var(--fw-bold)}.project-mini-kpi.success dd{color:var(--ok-ink)}.project-mini-kpi.warning dd{color:var(--warn-ink)}.project-mini-kpi.accent dd{color:var(--accent-ink)}.project-mini-kpi.danger dd{color:var(--danger-ink)}.project-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-7)}.project-actions button,.add-break-window,.break-window-row button{min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-xs)}.project-actions .primary-button{min-height:var(--h-md);margin:0}.projects-empty,.settings-loading{padding:var(--sp-11);margin-top:var(--sp-8);color:var(--color-muted);text-align:center;border:1px dashed var(--color-line-strong);border-radius:var(--r-md);background:var(--color-surface)}.projects-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);margin-top:var(--sp-6)}.projects-empty-summary{color:var(--color-muted);font-size:var(--fs-xs)}.projects-name-search{display:grid;gap:var(--sp-1)}.projects-name-search-label{color:var(--color-muted);font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.projects-name-search input{min-height:var(--h-md);width:min(100%,18rem);padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--fs-xs)}.projects-name-search input:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.project-settings-link{flex:0 0 auto;min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--accent-ink);font-size:var(--fs-2xs);white-space:nowrap;cursor:pointer}.project-settings-link:hover{background:var(--color-surface-3);border-color:var(--color-line-strong)}.project-settings-link:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.quickfact-settings-link{margin-inline-start:var(--sp-2);color:var(--accent-ink);font-size:var(--fs-3xs);font-weight:var(--fw-regular);text-decoration:none}.quickfact-settings-link:hover{text-decoration:underline}.quickfact-settings-link:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.settings-scope-note{margin:var(--sp-6) 0 0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs)}.settings-scope-note strong{color:var(--color-ink)}.project-card--empty{opacity:.8;background:var(--color-bg-sunken);border-color:var(--color-line-strong);border-top-color:var(--color-line-strong);box-shadow:none;transition:opacity var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.project-card--empty:hover,.project-card--empty:focus-within{opacity:1}.project-card--empty .project-mini-kpi{background:transparent;border-color:var(--color-line)}.project-card--empty .project-shift-pill{color:var(--color-muted);background:var(--color-surface-2)}.project-empty-note{margin:var(--sp-3) 0 0;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs)}.settings-tabs{margin:var(--sp-9) 0 0}.settings-tabs label,.settings-radio-list label{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-xs);transition:background-color var(--dur-2) var(--ease-out)}.settings-tabs label:hover{background:var(--color-surface-3)}.settings-tabs input,.settings-radio-list input,.recipient-matrix input{accent-color:var(--accent)}.settings-panel{padding:var(--sp-8);margin-top:var(--sp-6);animation:ff-rise var(--dur-3) var(--ease-out) both}.settings-field,.settings-select{display:grid;gap:var(--sp-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.settings-select{width:min(100%,24.375rem);margin-top:var(--sp-8)}.settings-field input,.settings-field select,.settings-select select,.break-window-row input{min-height:var(--h-lg);padding:var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-regular)}.settings-section{margin:var(--sp-10) 0 0;padding:var(--sp-6);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface-2)}.settings-section legend{padding:0 var(--sp-2);color:var(--color-muted);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.work-day-chips,.settings-radio-list{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.work-day-chips button{min-width:2.25rem;min-height:var(--h-md);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.work-day-chips button:hover{background:var(--accent-wash);border-color:var(--accent)}.break-windows{display:grid;gap:var(--sp-3)}.break-window-row{display:grid;grid-template-columns:minmax(7.5rem,1fr) 8.625rem 8.625rem auto;gap:var(--sp-3)}.add-break-window{width:fit-content;margin-top:var(--sp-4);color:var(--accent-ink);border-color:var(--accent)}.recipient-matrix{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--r-sm)}.recipient-matrix table{width:100%;min-width:39.375rem;border-collapse:collapse;font-size:var(--fs-xs)}.recipient-matrix th,.recipient-matrix td{padding:var(--sp-3);border-bottom:1px solid var(--row-line);text-align:center}.recipient-matrix thead th{background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.recipient-matrix tbody tr:nth-child(2n){background:var(--row-zebra)}.recipient-matrix tbody tr:hover{background:var(--row-hover)}.recipient-matrix th:first-child{text-align:start}.recipient-row-toggle{display:inline-flex;align-items:baseline;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:none;color:inherit;font:inherit;text-align:start}.recipient-row-toggle:not(:disabled):hover{border-color:var(--accent);background:var(--accent-wash)}.recipient-row-toggle:disabled{cursor:default}.recipient-row-name{font-weight:var(--fw-semibold)}.recipient-row-count{margin-inline-start:auto;padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.recipient-row-toggle.is-all .recipient-row-count{background:var(--accent-wash);color:var(--accent-ink)}.settings-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(26rem,1fr));gap:var(--sp-6);align-items:start;margin-top:var(--sp-8)}.settings-group-grid>.settings-group{margin:0}.settings-group-blurb{margin:var(--sp-2) 0 0;color:var(--color-muted);font-size:var(--fs-2xs);line-height:1.5}.settings-group .settings-table-wrap{max-width:none;margin-top:var(--sp-4)}.settings-table-wrap{max-width:40rem;margin-top:var(--sp-8);overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--r-sm)}.settings-table{width:100%;min-width:22rem;border-collapse:collapse;font-size:var(--fs-xs)}.settings-table thead th{padding:var(--sp-3) var(--sp-4);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-align:start;border-bottom:1px solid var(--row-line)}.settings-table tbody th,.settings-table tbody td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--row-line);text-align:start;vertical-align:middle}.settings-table tbody tr:last-child th,.settings-table tbody tr:last-child td{border-bottom:0}.settings-table tbody tr:nth-child(2n){background:var(--row-zebra)}.settings-table tbody tr:hover{background:var(--row-hover)}.settings-table tbody th{font-weight:var(--fw-semibold);color:var(--color-ink)}.settings-table tbody th span{display:block}.settings-table tbody th small{display:block;margin-top:var(--sp-1);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-regular)}.settings-table tbody td{width:1%;white-space:nowrap}.settings-table input,.settings-table select{width:100%;min-height:var(--h-md);padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-regular);text-align:start}.settings-table input[type=number]{width:5rem}.settings-table input[type=time]{width:8.5rem}.settings-table input[type=text],.settings-table select{width:11rem}.settings-table input:hover,.settings-table select:hover{border-color:var(--color-line-strong)}.settings-table input:disabled,.settings-table select:disabled{background:var(--color-surface-2);color:var(--color-muted);cursor:not-allowed}.settings-table-unit{color:var(--color-muted);font-size:var(--fs-2xs)}.settings-panel>.primary-button{margin-top:var(--sp-9)}.supervisor-link{display:inline-flex;align-items:center;min-height:var(--h-md);padding:var(--sp-2) var(--sp-5);border:1px solid var(--accent);border-radius:var(--r-pill);color:var(--accent-ink);background:var(--accent-wash);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-decoration:none;white-space:nowrap;transition:background-color var(--dur-2) var(--ease-out)}.supervisor-link:hover{background:var(--accent-wash-2)}.vehicle-card-page{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-7)}.vehicle-card-page .page-banner{flex-wrap:wrap;gap:var(--sp-5)}.vehicle-card-page .page-banner>div{min-width:0}.vehicle-card-page h1{margin:0}.vehicle-card-page h2{margin:0 0 var(--sp-5);font-size:var(--fs-md)}.vehicle-card-page section:not(.page-state){padding:var(--sp-8);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1);animation:ff-rise var(--dur-3) var(--ease-out) both}.vehicle-card-page .section-empty{margin:0;padding:var(--sp-6);color:var(--color-muted);text-align:center}.vehicle-no-project-state{gap:var(--sp-3);padding:var(--sp-10) var(--sp-8);text-align:center}.vehicle-no-project-state h2{margin:0;color:var(--color-ink)}.vehicle-no-project-state .empty-state-title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--color-ink-2)}.vehicle-no-project-state p{max-width:32rem;margin:0}.vehicle-no-project-state .primary-button{margin-block-start:var(--sp-3)}.vehicle-card-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.vehicle-switcher{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--color-muted);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.vehicle-switcher select{min-height:var(--h-md);max-width:16.25rem;padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-regular)}.vehicle-header-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-5);border-top:3px solid var(--accent-bright)!important}.vehicle-header-card .plate{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:.04em}.vehicle-header-card .vehicle-header-meta{color:var(--color-muted);font-size:var(--fs-sm)}.vehicle-status-pill{color:var(--ok-ink);background:var(--ok-wash);padding:var(--sp-2) var(--sp-5);font-size:var(--fs-xs)}.vehicle-status-pill:before{content:"";width:.4375rem;height:.4375rem;border-radius:50%;background:currentColor;flex:0 0 auto}.vehicle-quick-facts dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.25rem,1fr));gap:var(--sp-4);margin:0}.vehicle-quick-facts div{min-width:0;padding:var(--sp-4);border:1px solid var(--color-line-soft);border-radius:var(--r-sm);background:var(--color-surface-2)}.vehicle-quick-facts dt{color:var(--color-muted);font-size:var(--fs-3xs)}.vehicle-quick-facts dd{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);font-weight:var(--fw-medium);overflow-wrap:anywhere}.vehicle-card-page .section-subtitle{margin:0 0 var(--sp-5);color:var(--color-muted);font-size:var(--fs-xs)}.vehicle-alert-suppression-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-block-end:var(--sp-5)}.vehicle-alert-suppression-list{display:flex;flex-direction:column;gap:var(--sp-3);margin:0;padding:0;list-style:none}.vehicle-alert-suppression-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line-soft);border-radius:var(--r-sm);background:var(--color-surface-2)}.vehicle-alert-suppression-list label{display:flex;align-items:center;gap:var(--sp-2);font-weight:var(--fw-medium);cursor:pointer}.vehicle-alert-suppression-meta{color:var(--color-muted);font-size:var(--fs-3xs)}.vehicle-range-toggle{width:fit-content}.vehicle-range-toggle button{min-height:var(--h-md);border:0;border-radius:var(--r-pill);background:transparent;color:var(--color-ink-2);padding:var(--sp-1) var(--sp-8);font-size:var(--fs-xs);transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.vehicle-range-toggle button:hover{background:var(--color-surface-3)}.vehicle-range-toggle button.selected{color:var(--accent-ink);background:var(--accent-wash);font-weight:var(--fw-bold);box-shadow:inset 0 0 0 1px var(--accent)}.timeline-bar{display:flex;height:2.375rem;overflow:hidden;border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface-2);box-shadow:inset 0 1px 3px #14232f1f}.timeline-segment{min-width:3px;transform-origin:bottom;animation:ff-bar-grow var(--dur-4) var(--ease-out) both}.kind-movement{background:var(--kind-movement)}.kind-ignition-no-movement{background:var(--kind-ignition-no-movement)}.kind-moving-or-idling{background:var(--kind-moving-or-idling)}.kind-approved-break{background:var(--kind-approved-break)}.kind-water-fill{background:var(--kind-water-fill)}.kind-abnormal-stop{background:var(--kind-abnormal-stop)}.kind-out-of-polygon{background:var(--kind-out-of-polygon)}.kind-no-data{background:var(--kind-no-data)}.kind-engine-off{background:var(--kind-engine-off)}.kind-engine-state-unknown{background:repeating-linear-gradient(135deg,var(--kind-engine-state-unknown) 0,var(--kind-engine-state-unknown) 3px,color-mix(in srgb,var(--kind-engine-state-unknown) 55%,var(--color-surface-1, #fff)) 3px,color-mix(in srgb,var(--kind-engine-state-unknown) 55%,var(--color-surface-1, #fff)) 6px)}.timeline-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);padding:0;margin:var(--sp-5) 0 0;list-style:none;font-size:var(--fs-2xs);color:var(--color-ink-2)}.timeline-legend li{display:inline-flex;align-items:center;gap:var(--sp-2)}.timeline-legend .timeline-segment{flex:0 0 auto;width:.875rem;height:.875rem;min-width:.875rem;border-radius:3px;animation:none}.operational-timeline{direction:rtl}.operational-timeline-span{margin:0 0 var(--sp-3);font-size:var(--fs-2xs);color:var(--color-ink-2)}.operational-timeline-span-label{color:var(--color-ink-3, var(--color-ink-2))}.operational-timeline-bar{position:relative;display:block;direction:rtl}.operational-timeline-bar .timeline-segment{position:absolute;top:0;bottom:0;min-width:0;animation:none}.operational-timeline-axis{position:relative;direction:rtl;height:2.5rem;margin-top:var(--sp-1, 2px)}.operational-timeline-tick{position:absolute;top:0}.operational-timeline-tick-rule{display:block;width:1px;height:.375rem;margin-inline:auto;background:var(--color-line)}.operational-timeline-tick-rule.is-day-boundary{height:.625rem;background:var(--color-ink-2)}.operational-timeline-tick-label{display:block;transform:translate(50%);padding-top:2px;font-size:var(--fs-3xs, .625rem);line-height:1.25;white-space:nowrap;text-align:center;color:var(--color-ink-2)}.operational-timeline-tick-date{display:block;font-weight:600;color:var(--color-ink-1, var(--color-ink-2))}.operational-timeline-tick-time{display:block;font-variant-numeric:tabular-nums}.behavior-tiles,.metric-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.75rem,1fr));gap:var(--sp-3)}.behavior-tile,.metric-tile{min-width:0;padding:var(--sp-5);border:1px solid var(--color-line-soft);border-radius:var(--r-sm);background:var(--color-surface-2)}.behavior-tile span,.metric-tile span{display:block;color:var(--color-muted);font-size:var(--fs-3xs)}.behavior-tile strong,.metric-tile strong{display:block;margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-md)}.metric-tile.status-ok strong{color:var(--ok-ink)}.metric-tile.status-warning strong{color:var(--warn-ink)}.metric-tile.status-danger strong{color:var(--danger-ink)}.metric-tile.status-no-data strong,.metric-tile.status-insufficient-data strong{color:var(--color-muted)}.behavior-insight{margin:var(--sp-6) 0 var(--sp-1);font-size:var(--fs-sm)}.fleet-compare{margin:0;color:var(--color-muted);font-size:var(--fs-xs)}.perf-callout{display:grid;margin-bottom:var(--sp-6);padding:var(--sp-5) var(--sp-6);border:1px solid var(--color-line);border-inline-start:3px solid var(--accent-bright);border-radius:var(--r-sm);background:var(--color-surface-2)}.perf-callout span{color:var(--color-muted);font-size:var(--fs-xs)}.perf-callout strong{margin:var(--sp-1) 0;font-family:var(--font-display);font-size:var(--fs-2xl);line-height:1;color:var(--ok-ink)}.perf-callout small{color:var(--color-muted);font-size:var(--fs-xs)}.vehicle-documents table,.vehicle-alert-sequence table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.vehicle-documents th,.vehicle-documents td,.vehicle-alert-sequence th,.vehicle-alert-sequence td{padding:var(--sp-4) var(--sp-3);border-bottom:1px solid var(--row-line);text-align:start}.vehicle-documents th,.vehicle-alert-sequence th{color:var(--color-muted);background:var(--color-surface-2);font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.vehicle-documents tbody tr:nth-child(2n),.vehicle-alert-sequence tbody tr:nth-child(2n){background:var(--row-zebra)}.vehicle-documents tbody tr:hover,.vehicle-alert-sequence tbody tr:hover{background:var(--row-hover)}.vehicle-documents button{min-height:var(--h-md);padding:var(--sp-2) var(--sp-4);white-space:nowrap}.doc-badge.ok{color:var(--ok-ink);background:var(--ok-wash)}.doc-badge.renew{color:var(--danger-ink);background:var(--danger-wash)}.doc-no-file{color:var(--color-muted);font-size:var(--fs-2xs);white-space:nowrap}.assignment-history-list{display:grid;gap:var(--sp-3);padding:0;margin:0;list-style:none}.assignment-history-list li{display:flex;flex-wrap:wrap;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--color-line-soft);border-radius:var(--r-sm);background:var(--color-surface-2);font-size:var(--fs-xs)}.assignment-history-list li time,.assignment-history-list li b{color:var(--color-muted);font-weight:var(--fw-regular)}.supervisor-page{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:var(--sp-10) var(--sp-5)}.phone-frame{display:flex;width:24.375rem;max-width:100%;height:52.75rem;max-height:calc(100vh - 7.5rem);flex-direction:column;overflow:hidden;border:10px solid var(--chrome-bg);border-radius:2.25rem;background:var(--color-bg);box-shadow:var(--sh-5)}.phone-notch{flex:0 0 auto;height:1.375rem;background:var(--chrome-bg)}.phone-header{flex:0 0 auto;padding:var(--sp-6) var(--sp-8);background:var(--color-surface);border-bottom:1px solid var(--color-line)}.phone-header h1{margin:0;font-size:var(--fs-md)}.phone-header p{margin:var(--sp-1) 0 0;color:var(--color-muted);font-size:var(--fs-2xs)}.supervisor-tabs{display:flex;flex:0 0 auto;background:var(--color-surface);border-bottom:1px solid var(--color-line)}.supervisor-tabs button{flex:1;min-height:var(--h-xl);border:0;border-bottom:3px solid transparent;background:transparent;color:var(--color-muted);font-size:var(--fs-sm);transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.supervisor-tabs button:hover{background:var(--color-surface-2);color:var(--color-ink-2)}.supervisor-tabs button.selected{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:var(--fw-bold);background:var(--accent-wash)}.phone-screen{flex:1;overflow-y:auto;padding:var(--sp-7);position:relative}.supervisor-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.supervisor-kpi{padding:var(--sp-5) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);text-align:center;box-shadow:var(--sh-1)}.supervisor-kpi span{display:block;color:var(--color-muted);font-size:var(--fs-3xs)}.supervisor-kpi strong{display:block;margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-lg)}.map-toggle{width:100%;min-height:var(--h-lg);margin:var(--sp-6) 0;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-wash);color:var(--accent-ink);font-weight:var(--fw-bold);transition:background-color var(--dur-2) var(--ease-out)}.map-toggle:hover{background:var(--accent-wash-2)}.supervisor-map{height:11.25rem;margin-bottom:var(--sp-6);border:1px solid var(--color-line);border-radius:var(--r-sm);background:repeating-linear-gradient(45deg,var(--color-surface-2),var(--color-surface-2) 10px,var(--color-bg-sunken) 10px,var(--color-bg-sunken) 20px);display:grid;place-items:center;color:var(--color-muted);font-size:var(--fs-xs)}.supervisor-alerts{display:grid;gap:var(--sp-3)}.supervisor-alert{width:100%;text-align:start;padding:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-sm);border-inline-start:3px solid var(--danger-edge);background:var(--color-surface);box-shadow:var(--sh-1);transition:background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.supervisor-alert:hover{background:var(--color-surface-2);box-shadow:var(--sh-2)}.supervisor-alert strong{display:block;font-size:var(--fs-sm)}.supervisor-alert span{color:var(--color-muted);font-size:var(--fs-2xs)}.supervisor-empty{padding:var(--sp-9);color:var(--color-muted);text-align:center;font-size:var(--fs-xs)}.action-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:flex-end;background:#14232f80;animation:ff-fade var(--dur-2) var(--ease-out)}.action-sheet{width:100%;padding:var(--sp-8) var(--sp-7) calc(var(--sp-8) + env(safe-area-inset-bottom));border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--color-surface);box-shadow:var(--sh-5);animation:ff-rise var(--dur-3) var(--ease-out) both}.action-sheet h2{margin:0 0 var(--sp-1);font-size:var(--fs-md)}.action-sheet p{margin:0 0 var(--sp-6);color:var(--color-muted);font-size:var(--fs-xs)}.action-sheet-buttons{display:grid;gap:var(--sp-3)}.action-sheet-buttons button{min-height:var(--h-xl);border-radius:var(--r-sm);font-size:var(--fs-sm)}.action-sheet-buttons button.primary{border-color:var(--accent-strong);background:var(--accent);color:var(--accent-on)}.action-sheet-buttons button.primary:hover:not(:disabled){background:var(--accent-strong);color:var(--accent-on)}.action-sheet-close{width:100%;min-height:var(--h-lg);margin-top:var(--sp-4);border:0;background:transparent;color:var(--color-muted);border-radius:var(--r-sm)}.action-sheet-close:hover{background:var(--color-surface-2);color:var(--color-ink-2)}.assign-driver-form{display:grid;gap:var(--sp-6)}.assign-field{display:grid;gap:var(--sp-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.exception-modal .assign-field{display:grid}.assign-field input,.assign-field select{width:100%;min-height:var(--h-lg);padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-regular)}.language-radios{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.language-radios label{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-regular);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.language-radios label:hover{background:var(--accent-wash);border-color:var(--accent)}.language-radios input{accent-color:var(--accent)}.assign-submit{min-height:var(--h-xl);border:1px solid var(--accent-strong);border-radius:var(--r-sm);background:linear-gradient(180deg,var(--accent-bright),var(--accent));color:var(--accent-on);font-weight:var(--fw-bold);font-size:var(--fs-sm);box-shadow:var(--sh-1);transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.assign-submit:hover:not(:disabled){background:linear-gradient(180deg,var(--accent),var(--accent-strong));box-shadow:var(--sh-2)}.missing-drivers-note{padding:var(--sp-5);border:1px solid color-mix(in srgb,var(--warn-edge),white 55%);border-inline-start:3px solid var(--warn-edge);border-radius:var(--r-sm);background:var(--warn-wash);color:var(--warn-ink);font-size:var(--fs-2xs)}.assignments-page{min-width:0;display:grid;gap:var(--sp-6)}.assignments-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.assignments-toolbar button{min-height:var(--h-lg);padding:var(--sp-3) var(--sp-5);font-weight:var(--fw-semibold)}.assignments-toolbar .primary-button{min-height:var(--h-lg);margin:0;padding:var(--sp-3) var(--sp-5)}.assignments-note,.users-note{margin:0;padding:var(--sp-5) var(--sp-6);border:1px solid var(--color-line);border-inline-start:3px solid var(--accent-bright);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-xs)}.assignments-empty,.users-empty{padding:var(--sp-11);color:var(--color-muted);text-align:center;border:1px dashed var(--color-line-strong);border-radius:var(--r-md);background:var(--color-surface)}.assignments-table-scroll,.users-table-scroll{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--sh-1)}.assignments-table,.users-table{width:100%;min-width:67.5rem;border-collapse:collapse;font-size:var(--fs-xs)}.assignments-table th,.assignments-table td,.users-table th,.users-table td{padding:var(--sp-4) var(--sp-3);border-bottom:1px solid var(--row-line);text-align:start;vertical-align:middle;white-space:nowrap}.assignments-table th,.users-table th{position:sticky;top:0;z-index:1;color:var(--color-muted);background:var(--color-surface-2);border-bottom:1px solid var(--color-line-strong);font-size:var(--fs-2xs);font-weight:var(--fw-semibold)}.assignments-table tbody tr:nth-child(2n),.users-table tbody tr:nth-child(2n){background:var(--row-zebra)}.assignments-table tbody tr,.users-table tbody tr{transition:background-color var(--dur-1) var(--ease-out);animation:ff-row-in var(--dur-3) var(--ease-out) both}.assignments-table tbody tr:hover,.users-table tbody tr:hover{background:var(--row-hover)}.sync-dot{display:inline-block;width:.5rem;height:.5rem;margin-inline-end:var(--sp-2);border-radius:50%}.sync-dot.sync-synced{background:var(--ok-edge);box-shadow:0 0 0 2px var(--ok-wash)}.sync-dot.sync-pending{background:var(--warn-edge);box-shadow:0 0 0 2px var(--warn-wash)}.inline-edit-select{min-height:var(--h-sm);max-width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:var(--fs-xs)}.inline-edit-select:hover{border-color:var(--accent)}.inline-edit-select:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}.inline-edit-select[data-saving=true]{opacity:.6;cursor:wait}.assignment-modal{width:min(100%,32.5rem);max-height:calc(100vh - var(--sp-12));overflow-y:auto}.assignment-modal form{display:grid;gap:var(--sp-5)}.assignment-modal .form-error{margin:0}.bulk-assign-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);font-size:var(--fs-xs);color:var(--color-muted)}.bulk-assign-toolbar div{display:flex;gap:var(--sp-2)}.bulk-assign-toolbar button{min-height:var(--h-sm);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-4);font-size:var(--fs-2xs)}.bulk-assign-list{display:grid;gap:0;max-height:16.25rem;overflow-y:auto;padding:0;margin:0;list-style:none;border:1px solid var(--color-line);border-radius:var(--r-sm)}.bulk-assign-list li{border-bottom:1px solid var(--row-line)}.bulk-assign-list li:nth-child(2n){background:var(--row-zebra)}.bulk-assign-list li:hover{background:var(--row-hover)}.bulk-assign-list li:last-child{border-bottom:0}.bulk-assign-list label{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-xs);font-weight:var(--fw-regular);cursor:pointer}.bulk-assign-list input{accent-color:var(--accent)}.bulk-assign-list small{margin-inline-start:auto;color:var(--color-muted);font-size:var(--fs-3xs)}.bulk-assign-empty{display:grid;place-items:center;min-height:6rem;margin:0;padding:var(--sp-6);border:1px dashed var(--color-line);border-radius:var(--r-sm);color:var(--color-muted);font-size:var(--fs-xs)}.bulk-assign-toolbar button:disabled{opacity:.5;cursor:not-allowed}.bulk-assign-modal input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.replacement-modal .assign-field input[disabled]{color:var(--color-muted);background:var(--color-surface-2)}.replacement-modal textarea{width:100%;resize:vertical;padding:var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);font:inherit;background:var(--color-surface)}.users-page{min-width:0;display:grid;gap:var(--sp-6)}.users-toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.users-toolbar .primary-button{min-height:var(--h-lg);margin:0;padding:var(--sp-3) var(--sp-5)}.users-table td.users-table-bidi-cell{direction:ltr;text-align:start;unicode-bidi:plaintext}.user-inactive-tag{margin-inline-start:var(--sp-2);color:var(--sev-info-ink);background:var(--sev-info-wash)}.users-modal{width:min(100%,40rem);max-height:calc(100vh - var(--sp-12));overflow-y:auto}.users-modal .users-active-toggle{display:inline-flex;align-items:center;gap:var(--sp-3);margin:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-ink)}.users-modal .settings-section{margin:var(--sp-1) 0 0}.users-modal .user-scope-master{display:inline-flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--color-ink)}.users-active-toggle input,.user-scope-master input,.user-scope-project input{accent-color:var(--accent)}.user-scope-list{display:grid;gap:var(--sp-4)}.users-scope-empty{margin:0;color:var(--color-muted);font-size:var(--fs-xs)}.user-scope-project{display:grid;gap:var(--sp-3);padding:var(--sp-5);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface)}.user-scope-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}.user-scope-head label,.user-type-list label{display:inline-flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--color-ink)}.user-scope-head .user-scope-name{font-weight:var(--fw-bold)}.user-type-block{display:grid;gap:var(--sp-2)}.user-type-block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);color:var(--color-muted);font-size:var(--fs-3xs);font-weight:var(--fw-bold)}.user-type-block-head button{min-height:var(--h-xs);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-4);font-size:var(--fs-3xs)}.user-type-list{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6)}.big-dashboard-cards{margin-top:var(--sp-7)}.big-dashboard-card-meta{margin:0 0 var(--sp-6);color:var(--color-muted);font-size:var(--fs-xs)}.drawer-inline-state{margin:0;padding:var(--sp-3) 0;color:var(--color-muted);font-size:var(--fs-xs)}.drawer-body-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-2)}.drawer-body-links small{color:var(--color-muted)}.drawer-body-links a{color:var(--accent);font-weight:var(--fw-bold);text-decoration:none}.drawer-body-links a:hover{text-decoration:underline}.drawer-notes-list{padding:0;margin:0 0 var(--sp-4);list-style:none;display:grid;gap:var(--sp-2)}.drawer-notes-list li{padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);font-size:var(--fs-xs);white-space:pre-line}.drawer-notes-form{display:grid;gap:var(--sp-2)}.drawer-notes-form textarea{width:100%;resize:vertical;padding:var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);font:inherit}.drawer-notes-form button{justify-self:start}.drawer-action-error{margin:var(--sp-4) 0 0}.drawer-actions-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);width:100%}.drawer-handler-row{align-items:center}.drawer-handler-row select{flex:1;min-width:0;min-height:var(--h-md);padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink)}.drawer-actions-close{justify-content:stretch}.drawer-actions-close .primary-button{flex:1;min-height:var(--h-lg);margin:0}.drawer-actions button[disabled],.drawer-actions select[disabled]{opacity:.55;cursor:not-allowed}.reports-page{min-width:0}.reports-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-5);margin-top:var(--sp-8);padding-bottom:var(--sp-6);border-bottom:1px solid var(--color-line)}.reports-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.reports-actions button{min-height:var(--h-md);padding:var(--sp-3) var(--sp-5);font-weight:var(--fw-semibold)}.reports-actions .primary-button{min-height:var(--h-md);margin:0;padding:var(--sp-3) var(--sp-6)}.reports-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-6);margin-top:var(--sp-6);padding-bottom:var(--sp-6);border-bottom:1px solid var(--color-line)}.reports-filter{display:grid;gap:var(--sp-2);color:var(--color-muted);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.reports-filter select,.reports-filter input{min-height:var(--h-md);min-width:11.875rem;padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-regular)}.reports-empty{padding:var(--sp-11);margin-top:var(--sp-6);color:var(--color-muted);text-align:center;border:1px dashed var(--color-line-strong);border-radius:var(--r-md);background:var(--color-surface)}.reports-cache-note{margin:var(--sp-6) 0 0;color:var(--color-muted);font-size:var(--fs-xs);font-style:italic}.reports-header-card{margin-top:var(--sp-8)}.reports-header-card h2{margin:0;font-size:var(--fs-lg)}.reports-header-card p{margin:var(--sp-2) 0 0;color:var(--color-muted);font-size:var(--fs-xs)}.reports-kpis{margin-top:var(--sp-6)}.reports-queue th,.reports-queue td{white-space:nowrap}.reports-footnote{margin:var(--sp-5) 0 0;color:var(--color-muted);font-size:var(--fs-2xs)}.report-loading{display:grid;gap:var(--sp-5);margin-top:var(--sp-6)}.report-loading--refresh{margin-top:var(--sp-5);margin-bottom:0}.report-loading-bar{position:relative;overflow:hidden;height:.25rem;border-radius:var(--r-pill);background:var(--color-line-soft)}.report-loading-band{position:absolute;top:0;bottom:0;width:38%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--accent-bright),transparent);animation:report-loading-sweep 1.4s var(--ease-in-out) infinite}@keyframes report-loading-sweep{0%{right:-42%}to{right:100%}}@media (prefers-reduced-motion: reduce){.report-loading-band{animation:none;right:31%}}.report-loading-message{margin:0;color:var(--color-muted);font-size:var(--fs-xs)}.table-skeleton{display:grid;gap:var(--sp-7)}.table-skeleton-head{display:grid;gap:var(--sp-3)}.table-skeleton-title{height:1.125rem}.table-skeleton-meta{height:.75rem}.table-skeleton-kpis{display:flex;flex-wrap:wrap;gap:var(--sp-5)}.table-skeleton-tile{flex:1 1 8rem;min-width:8rem;height:3.5rem;border-radius:var(--r-md);background:var(--color-surface-2);border:1px solid var(--color-line-soft)}.table-skeleton-table{display:grid;gap:var(--sp-5);border:1px solid var(--color-line-soft);border-radius:var(--r-md);background:var(--color-surface);padding:var(--sp-6)}.table-skeleton-row{display:grid;align-items:center;gap:var(--sp-6)}.table-skeleton-row-head{padding-bottom:var(--sp-4);border-bottom:1px solid var(--color-line-soft)}.table-skeleton-row-head .table-skeleton-bar{height:.625rem;opacity:.7}.table-skeleton-bar{position:relative;overflow:hidden;display:block;height:.875rem;border-radius:var(--r-xs);background:var(--color-surface-2)}.table-skeleton-bar:after{content:"";position:absolute;top:0;bottom:0;width:55%;background:linear-gradient(90deg,transparent,var(--color-surface),transparent);animation:report-loading-sweep 1.3s var(--ease-in-out) infinite}@media (prefers-reduced-motion: reduce){.table-skeleton-bar:after{animation:none;opacity:0}}.button-spinner{display:inline-block;width:.75rem;height:.75rem;margin-inline-end:var(--sp-3);border:2px solid color-mix(in srgb,currentColor,transparent 65%);border-top-color:currentColor;border-radius:50%;vertical-align:-.125em;animation:spinner-rotate .8s linear infinite}@media (prefers-reduced-motion: reduce){.button-spinner{animation-duration:2.4s!important;animation-iteration-count:infinite!important}}.report-row-link{min-height:var(--h-sm);border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--color-surface);color:var(--accent-ink);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);white-space:nowrap;transition:background-color var(--dur-2) var(--ease-out)}.report-row-link:hover{background:var(--accent-wash)}.report-status-full{color:var(--ok-ink);background:var(--ok-wash)}.report-status-partial{color:var(--warn-ink);background:var(--warn-wash)}.report-status-check{color:var(--accent-ink);background:var(--accent-wash)}.report-status-none{color:var(--danger-ink);background:var(--danger-wash)}.report-status-nodata{color:var(--sev-info-ink);background:var(--sev-info-wash)}.monthly-project-section{margin-top:var(--sp-10)}.monthly-project-section:first-of-type{margin-top:var(--sp-7)}.monthly-project-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-3)}.monthly-project-head h3{margin:0;font-family:var(--font-display);font-size:var(--fs-md)}.monthly-project-head p{margin:var(--sp-1) 0 0;color:var(--color-muted);font-size:var(--fs-xs)}.monthly-avg-badge{padding:var(--sp-2) var(--sp-5);color:var(--ok-ink);background:var(--ok-wash);font-size:var(--fs-xs)}.monthly-avg-badge.low{color:var(--danger-ink);background:var(--danger-wash)}.breakdown-modal{width:min(100%,30rem)}.breakdown-list{display:grid;gap:var(--sp-3);margin:0 0 var(--sp-7);padding:0;list-style:none}.breakdown-list div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--row-line)}.breakdown-list dt{color:var(--color-muted);font-size:var(--fs-xs)}.breakdown-list dd{margin:0;font-weight:var(--fw-bold)}.breakdown-formula{padding:var(--sp-5) var(--sp-6);border:1px solid var(--color-line);border-inline-start:3px solid var(--accent-bright);border-radius:var(--r-sm);background:var(--color-surface-2);font-size:var(--fs-sm)}.monthly-row-expander{width:1.625rem;height:1.625rem;border:0;border-radius:var(--r-xs);background:transparent;color:var(--color-muted);font-size:var(--fs-sm);line-height:1;cursor:pointer;transition:transform var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.monthly-row-expander:hover{color:var(--accent-ink);background:var(--accent-wash)}.monthly-row-expander.expanded{transform:rotate(90deg);color:var(--accent)}.monthly-row-detail td{padding:var(--sp-4) var(--sp-5);background:var(--accent-wash);cursor:default}.monthly-row-detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.875rem,1fr));gap:var(--sp-3);margin:0}.monthly-row-detail-list dt{color:var(--color-muted);font-size:var(--fs-3xs)}.monthly-row-detail-list dd{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);font-weight:var(--fw-bold)}.close-reason-success{padding:var(--sp-4) 0;color:var(--ok-ink);font-size:var(--fs-base);font-weight:var(--fw-bold);text-align:center}.drawer-rule-snapshot{padding:var(--sp-3) var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface-2);color:var(--color-ink)!important;font-family:var(--font-mono);font-size:var(--fs-3xs);line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.drawer-rule-snapshot-details{margin-top:var(--sp-3)}.drawer-rule-snapshot-details summary{cursor:pointer;color:var(--color-muted);font-size:var(--fs-3xs);-webkit-user-select:none;user-select:none}.drawer-rule-snapshot-details summary:hover{color:var(--color-ink-2)}.drawer-rule-snapshot-details .drawer-rule-snapshot{margin-top:var(--sp-2)}@media (max-width: 65rem){.sync-status{display:none}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 52.5rem){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;top:auto;inset-block-end:0;inset-inline:0;order:2;height:auto;z-index:var(--z-header);border-top:1px solid var(--chrome-line);border-inline-end:0;box-shadow:var(--sh-1)}.brand,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow-x:auto;padding:var(--sp-2);gap:var(--sp-1)}.nav-item{flex:0 0 auto;padding:var(--sp-3) var(--sp-5)}.nav-item.active{border-bottom:3px solid var(--accent-bright);padding-inline-start:var(--sp-5)}.nav-item.active:before{inset-inline:0;inset-block:auto 0;width:auto;height:0}.nav-alert-count,.nav-health-dot{display:none}.sidebar.collapsed .nav-item{justify-content:flex-start;gap:var(--sp-4);padding-inline:var(--sp-5)}.sidebar.collapsed .nav-label{display:inline}.sidebar.hidden{visibility:visible}.sidebar-restore,.quick-access-panel{display:none}.quick-access-mobile-trigger{display:flex}.app-header{flex-wrap:wrap;padding:var(--sp-4) var(--sp-6)}.header-controls{order:2;flex-basis:100%;max-width:none}.header-controls .project-filter{flex-basis:44%;max-width:none}.header-meta{width:100%;flex-wrap:wrap;justify-content:flex-start}.logout-button{margin-inline-start:auto}.page-content{padding:var(--sp-7) var(--sp-7) calc(4.5rem + env(safe-area-inset-bottom,0px))}.app-main>.warning-banner{margin-inline:var(--sp-7)}.severity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpis{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.control-filters{align-items:stretch}.control-filters select{flex:1;min-width:9.375rem}.status-chips{width:100%}.exception-drawer{width:min(100%,28.75rem)}.project-mini-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.break-window-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.break-window-row button{grid-column:span 2}.reports-toolbar{align-items:stretch}.reports-filter select,.reports-filter input{min-width:0;width:100%}.modal-backdrop{padding:var(--sp-5)}.exception-modal{padding:var(--sp-8)}}@media (max-width: 30rem){.page-banner,.section-heading,.collapsible-section-header{flex-wrap:wrap}.collapsible-section-title-text{font-size:var(--fs-md)}.control-kpis,.stat-grid,.severity-grid,.alert-card dl,.detail-list{grid-template-columns:minmax(0,1fr)}.project-mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.assignments-toolbar button,.users-toolbar button,.assignments-toolbar .primary-button,.users-toolbar .primary-button{flex:1 1 100%}.supervisor-page{padding:0}.phone-frame{width:100%;height:auto;min-height:100vh;max-height:none;border:0;border-radius:0;box-shadow:none}.phone-notch{display:none}}.global-search{position:relative;flex:1 1 auto;min-width:12rem}.global-search-field{width:100%}.global-search-results{position:absolute;inset-block-start:calc(100% + var(--sp-2));inset-inline:0;z-index:var(--z-header);max-height:26rem;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);box-shadow:var(--sh-4);padding:var(--sp-3);animation:ff-fade var(--dur-2) var(--ease-out)}.global-search-empty{margin:var(--sp-4);color:var(--color-muted);font-size:var(--fs-sm)}.global-search-group+.global-search-group{margin-top:var(--sp-4);border-top:1px solid var(--color-line-soft);padding-top:var(--sp-3)}.global-search-group-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.global-search-result{display:flex;flex-direction:column;gap:.0625rem;width:100%;border:0;background:transparent;text-align:start;padding:var(--sp-3);border-radius:var(--r-sm);color:var(--color-ink);transition:background-color var(--dur-1) var(--ease-out)}.global-search-result:hover{background:var(--row-hover)}.global-search-result strong{font-weight:var(--fw-semibold)}.global-search-result small{color:var(--color-muted);font-size:var(--fs-xs)}.searchable-select{position:relative;display:inline-flex;align-items:center;min-width:0;max-width:100%}.searchable-select-sizer{visibility:hidden;white-space:pre;min-height:var(--h-lg);padding:var(--sp-3) var(--sp-4);padding-inline-end:var(--sp-10);border:1px solid transparent;font-weight:var(--fw-medium)}.searchable-select .searchable-select-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:var(--h-lg);padding:var(--sp-3) var(--sp-4);padding-inline-end:var(--sp-10);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-weight:var(--fw-medium);text-overflow:ellipsis;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.searchable-select .searchable-select-input:hover{border-color:var(--color-line-strong)}.searchable-select .searchable-select-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-wash)}.searchable-select-chevron{position:absolute;inset-inline-end:var(--sp-4);pointer-events:none;color:var(--color-muted);font-size:var(--fs-md);line-height:1}.searchable-select-list{position:absolute;inset-block-start:calc(100% + var(--sp-2));inset-inline:0;z-index:var(--z-header);min-width:15rem;max-height:22rem;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--r-md);box-shadow:var(--sh-4);padding:var(--sp-2);animation:ff-fade var(--dur-2) var(--ease-out)}.searchable-select-empty{margin:var(--sp-4);color:var(--color-muted);font-size:var(--fs-sm)}.searchable-select-option{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:2.5rem;border:0;background:transparent;text-align:start;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--color-ink);transition:background-color var(--dur-1) var(--ease-out)}.searchable-select-option.is-active{background:var(--row-hover)}.searchable-select-option.is-selected{font-weight:var(--fw-semibold)}.searchable-select-option-mark{flex:0 0 1rem;color:var(--accent);font-weight:var(--fw-bold)}.searchable-select-option-text{display:flex;flex-direction:column;gap:.0625rem;min-width:0}.searchable-select-option-text strong{font-weight:inherit}.searchable-select-option-text small{color:var(--color-muted);font-size:var(--fs-xs)}.searchable-select-option mark{background:var(--accent-wash-2);color:inherit;border-radius:.125rem;padding:0 .0625rem}.confirm-dialog-message{font-size:var(--fs-md);line-height:var(--lh-base);margin:var(--sp-5) 0 var(--sp-8)}.confirm-dialog-actions{display:flex;gap:var(--sp-4)}.confirm-dialog-actions button{min-height:3rem;min-width:8rem;font-size:var(--fs-md);font-weight:var(--fw-semibold);padding-inline:var(--sp-8)}.segment-display-filter{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.segment-display-filter-chip{border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-3xs);font-weight:var(--fw-medium);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.segment-display-filter-chip:hover{background:var(--color-surface-3);border-color:var(--color-line-strong)}.segment-display-filter-chip:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}.segment-display-filter-chip[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent-bright);color:var(--accent-ink)}.day-analysis-segment-filter{margin-block-end:var(--sp-5)}.save-status{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;font-weight:var(--fw-medium)}.save-status i{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;flex:0 0 auto}.save-status--saving{color:var(--color-muted)}.save-status--saving i{animation:spinner-rotate .9s linear infinite;border:2px solid var(--color-line-strong);border-inline-start-color:var(--accent);background:transparent}.save-status--saved{color:var(--ok-ink)}.save-status--saved i{background:var(--ok-edge);box-shadow:0 0 0 3px var(--ok-wash)}.save-status--unsaved{color:var(--warn-ink)}.save-status--unsaved i{background:var(--warn-edge);box-shadow:0 0 0 3px var(--warn-wash)}.save-status--error{color:var(--danger-ink)}.save-status--error i{background:var(--danger-edge);box-shadow:0 0 0 3px var(--danger-wash)}@media (prefers-reduced-motion: reduce){.save-status--saving i{animation:none}}@keyframes ff-row-flash-saved{0%{background-color:var(--ok-wash)}to{background-color:transparent}}.row-flash-saved{animation:ff-row-flash-saved var(--dur-flash) var(--ease-out)}.row-highlighted{outline:var(--focus-outline);outline-offset:-2px;background:var(--accent-wash)}.error-notice{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-6) var(--sp-7);border-inline-start:3px solid var(--danger-edge);border-radius:var(--r-sm);background:var(--danger-wash)}.error-notice-message{margin:0;color:var(--danger-ink);font-weight:var(--fw-semibold)}.error-notice-hint{margin:0;color:var(--color-ink-2);font-size:var(--fs-sm)}.error-notice-action{margin-top:var(--sp-2);min-height:var(--h-md);padding-inline:var(--sp-6);border:1px solid var(--danger-edge);border-radius:var(--r-sm);background:var(--color-surface);color:var(--danger-ink);font-weight:var(--fw-semibold)}.error-notice-action:hover{background:var(--danger-wash)}.error-notice--compact{padding:var(--sp-4) var(--sp-5)}.error-notice--compact .error-notice-message{font-size:var(--fs-sm)}.data-freshness{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;color:var(--color-muted)}.data-freshness i{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--ok-edge);box-shadow:0 0 0 3px var(--ok-wash)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-11) var(--sp-8);color:var(--color-ink-2)}.empty-state-icon{font-size:var(--fs-2xl);line-height:1;margin-bottom:var(--sp-2)}.empty-state-title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--color-ink)}.empty-state-description{margin:0;max-width:32rem;color:var(--color-muted);font-size:var(--fs-sm)}.empty-state-action{margin-top:var(--sp-5);min-height:var(--h-md);padding-inline:var(--sp-7);border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--color-surface);color:var(--accent-ink);font-weight:var(--fw-semibold)}.empty-state-action:hover{background:var(--accent-wash)}.empty-state--ok .empty-state-icon{color:var(--ok-edge)}.empty-state--ok .empty-state-title{color:var(--ok-ink)}.required-mark{color:var(--danger-ink);font-weight:var(--fw-semibold);font-size:var(--fs-xs)}.field-invalid{border:2px solid var(--danger-edge)!important;background:var(--danger-wash)}.field-error-message{display:block;margin-top:var(--sp-1);color:var(--danger-ink);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.required-field-summary{margin-bottom:var(--sp-6);padding:var(--sp-5) var(--sp-6);border:2px solid var(--danger-edge);border-radius:var(--r-sm);background:var(--danger-wash)}.required-field-summary-title{margin:0 0 var(--sp-2);color:var(--danger-ink);font-weight:var(--fw-semibold)}.required-field-summary ul{margin:0;padding-inline-start:var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-1)}.required-field-summary button{border:0;background:transparent;padding:0;color:var(--danger-ink);font-weight:var(--fw-semibold);text-decoration:underline}.required-field-summary button:hover{color:var(--sev-critical-edge)}.unsaved-changes-dialog{max-width:26rem}.unsaved-changes-count{font-size:var(--fs-md);line-height:var(--lh-base);margin:var(--sp-5) 0 var(--sp-8);color:var(--color-ink-2)}.unsaved-changes-actions{display:flex;flex-direction:column;gap:var(--sp-3)}.unsaved-save-exit{min-height:3rem;font-size:var(--fs-md);font-weight:var(--fw-semibold)}.unsaved-stay{min-height:var(--h-lg);font-size:var(--fs-base);border:1px solid var(--color-line-strong);background:var(--color-surface)}.unsaved-discard{min-height:var(--h-sm);font-size:var(--fs-xs);align-self:center;border:0;background:transparent;color:var(--color-muted);text-decoration:underline}.unsaved-discard:hover{color:var(--danger-ink)}.text-size-switch{display:inline-flex;gap:1px;border:1px solid var(--color-line);border-radius:var(--r-sm);overflow:hidden;padding:0;margin:0}.text-size-switch button{border:0;background:var(--color-surface);min-width:1.875rem;min-height:1.875rem;padding-inline:var(--sp-2);font-weight:var(--fw-semibold);color:var(--color-ink-2);line-height:1}.text-size-switch button+button{border-inline-start:1px solid var(--color-line)}.text-size-switch button:hover{background:var(--accent-wash)}.text-size-switch button.selected{background:var(--accent);color:var(--accent-on)}.display-preference-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-6);margin-top:var(--sp-6)}.display-preference-row>div{min-width:0}.display-preference-row strong{display:block;font-size:var(--fs-sm);color:var(--color-ink)}.display-preference-row p{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--color-muted)}.display-preference-row .text-size-switch{flex:0 0 auto}.display-preference-row .text-size-switch button{min-width:var(--h-lg);min-height:var(--h-lg);padding-inline:var(--sp-4)}@media (max-width: 65rem){.data-freshness,.sync-status{display:none}}@media (max-width: 52.5rem){.global-search-results{position:fixed;inset-inline:var(--sp-6);inset-block-start:auto;max-height:60vh}.searchable-select-list{inset-inline-start:0;inset-inline-end:auto;width:min(85vw,26rem);max-height:60vh}}.vehicle-card-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-3)}.vehicle-card-nav .link-button{padding-inline:var(--sp-2);white-space:nowrap}.vehicle-card-nav>button:not(.link-button){min-height:var(--h-md);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-sm);white-space:nowrap}.vehicle-map-date{display:inline-flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--color-muted)}.vehicle-map-date input[type=date]{min-height:var(--h-md);padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:var(--fs-xs)}.vehicle-map-date input[type=date]:hover{border-color:var(--color-line-strong)}.vehicle-map-date input[type=date]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}.vehicle-map-date input[type=date]::-webkit-calendar-picker-indicator{margin-inline-start:0;cursor:pointer;opacity:.6}.vehicle-map-date input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.assign-driver-modal .assign-field input[disabled]{color:var(--color-muted);background:var(--color-surface-2)}.vehicle-range-datepicker{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.vehicle-range-datepicker input[type=date]{min-height:var(--h-md);padding:var(--sp-1) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:var(--fs-xs)}.vehicle-range-datepicker input[type=date]:hover{border-color:var(--color-line-strong)}.vehicle-range-datepicker input[type=date]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}.vehicle-range-datepicker input[type=date]::-webkit-calendar-picker-indicator{margin-inline-start:0;cursor:pointer;opacity:.6}.vehicle-range-datepicker input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.vehicle-quickfact-editable{display:flex;flex-direction:column;gap:var(--sp-1)}.vehicle-quickfact-editable select{width:100%;min-height:var(--h-sm);padding:var(--sp-1) var(--sp-2);border:1px solid var(--color-line);border-radius:var(--r-sm);background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.vehicle-quickfact-editable select:hover{border-color:var(--accent)}.vehicle-quickfact-editable select:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}.exc-type-abnormal-stop{--exc-ink: var(--exc-abnormal-stop-ink);--exc-wash: var(--exc-abnormal-stop-wash);--exc-edge: var(--exc-abnormal-stop-edge)}.exc-type-polygon-exit{--exc-ink: var(--exc-polygon-exit-ink);--exc-wash: var(--exc-polygon-exit-wash);--exc-edge: var(--exc-polygon-exit-edge)}.exc-type-water-break-overuse{--exc-ink: var(--exc-water-break-overuse-ink);--exc-wash: var(--exc-water-break-overuse-wash);--exc-edge: var(--exc-water-break-overuse-edge)}.exc-type-speeding{--exc-ink: var(--exc-speeding-ink);--exc-wash: var(--exc-speeding-wash);--exc-edge: var(--exc-speeding-edge)}.exc-type-early-departure{--exc-ink: var(--exc-early-departure-ink);--exc-wash: var(--exc-early-departure-wash);--exc-edge: var(--exc-early-departure-edge)}.exc-type-late-departure{--exc-ink: var(--exc-late-departure-ink);--exc-wash: var(--exc-late-departure-wash);--exc-edge: var(--exc-late-departure-edge)}.exc-type-shift-not-started{--exc-ink: var(--exc-shift-not-started-ink);--exc-wash: var(--exc-shift-not-started-wash);--exc-edge: var(--exc-shift-not-started-edge)}.exc-type-sick-or-vacation{--exc-ink: var(--exc-sick-or-vacation-ink);--exc-wash: var(--exc-sick-or-vacation-wash);--exc-edge: var(--exc-sick-or-vacation-edge)}.exc-type-not-started{--exc-ink: var(--exc-not-started-ink);--exc-wash: var(--exc-not-started-wash);--exc-edge: var(--exc-not-started-edge)}.exc-type-worked-yesterday-not-today{--exc-ink: var(--exc-worked-yesterday-not-today-ink);--exc-wash: var(--exc-worked-yesterday-not-today-wash);--exc-edge: var(--exc-worked-yesterday-not-today-edge)}.exc-type-not-in-use{--exc-ink: var(--exc-not-in-use-ink);--exc-wash: var(--exc-not-in-use-wash);--exc-edge: var(--exc-not-in-use-edge)}.exc-type-no-data{--exc-ink: var(--exc-no-data-ink);--exc-wash: var(--exc-no-data-wash);--exc-edge: var(--exc-no-data-edge)}.exception-type-tag.exception-type-tag{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-4);border-radius:var(--r-pill);font-size:var(--fs-3xs);font-weight:var(--fw-bold);line-height:1.5;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--exc-ink, var(--neutral-ink));background:var(--exc-wash, var(--neutral-wash))}.exception-type-dot.exception-type-dot{display:inline-block;vertical-align:middle;width:9px;height:9px;min-width:9px;border-radius:2px;background:var(--exc-edge, var(--neutral-edge))}.alerts-filter-group button>.exception-type-dot{margin-inline-end:var(--sp-2)}.exception-type-name.exception-type-name{color:var(--exc-ink, inherit);font-weight:var(--fw-bold)}--sev-medium-*/--sev-critical-* — the SAME "good/warn/bad" contract every other status pill in this app already uses. No new hex. */ .productivity-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-3xs);font-weight:var(--fw-bold);line-height:1.5;white-space:nowrap;cursor:default}.productivity-badge--good{color:var(--ok-ink);background:var(--ok-wash)}.productivity-badge--warn{color:var(--warn-ink);background:var(--warn-wash)}.productivity-badge--bad{color:var(--danger-ink);background:var(--danger-wash)}.productivity-badge--unknown{color:var(--neutral-ink);background:var(--neutral-wash)}.productivity-badge--sparse{box-shadow:inset 0 0 0 1px currentColor;opacity:.85}.productivity-badge__sparse-mark{font-weight:var(--fw-bold);margin-inline-start:1px}.productivity-badge--no-telemetry{color:var(--neutral-ink);background:var(--neutral-wash)}.productivity-badge--no-telemetry .productivity-badge__dot{width:.4375rem;height:.4375rem;min-width:.4375rem;border-radius:50%;background:currentColor}.global-search-result-badge{margin-inline-start:var(--sp-2);vertical-align:middle}.productivity-badge__trend{font-size:.6em;margin-inline-start:1px}.productivity-badge__trend--up{color:var(--ok-edge)}.productivity-badge__trend--down{color:var(--danger-edge)}.productivity-badge__trend--flat{color:var(--neutral-edge)}.ff-tooltip-wrap{position:relative;display:inline-flex}.ff-tooltip-trigger{display:inline-flex;outline:none}.ff-tooltip-bubble{z-index:1000;min-width:14rem;max-width:20rem;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--color-ink);color:#fff;font-size:var(--fs-2xs);font-weight:var(--fw-regular);line-height:1.5;box-shadow:var(--sh-2, 0 4px 16px rgba(0, 0, 0, .2));white-space:normal;pointer-events:none}.ff-tooltip-lines{display:flex;flex-direction:column;gap:var(--sp-1);text-align:start}.ff-tooltip-lines strong{color:#fff;font-weight:var(--fw-bold)}.rule-evidence-bubble{max-width:34rem;min-width:20rem}.rule-evidence-tooltip{display:flex;flex-direction:column;gap:var(--sp-3);text-align:start}.rule-evidence-section{display:flex;flex-direction:column;gap:var(--sp-1)}.rule-evidence-heading{font-weight:var(--fw-bold);font-size:var(--fs-2xs);color:var(--color-ink)}.rule-evidence-algorithm,.rule-evidence-conclusion{white-space:normal;color:var(--color-ink)}.rule-evidence-table{width:100%;border-collapse:collapse;font-size:var(--fs-3xs)}.rule-evidence-table th,.rule-evidence-table td{padding:1px var(--sp-2) 1px 0;text-align:start;vertical-align:top}.rule-evidence-table th{font-weight:var(--fw-regular);color:var(--color-ink-2);white-space:nowrap}.rule-evidence-table td{color:var(--color-ink)}.ff-tooltip-bubble .rule-evidence-heading,.ff-tooltip-bubble .rule-evidence-algorithm,.ff-tooltip-bubble .rule-evidence-conclusion,.ff-tooltip-bubble .rule-evidence-table td{color:#fff}.ff-tooltip-bubble .rule-evidence-table th{color:#ffffffb3}.rule-evidence-tooltip--nested{margin-inline-start:var(--sp-3);padding-inline-start:var(--sp-2);padding-top:var(--sp-1);margin-top:var(--sp-1);border-inline-start:1px solid rgba(255,255,255,.2);gap:var(--sp-2)}.productivity-badge--unknown .productivity-badge__dot{width:.4375rem;height:.4375rem;min-width:.4375rem;border-radius:50%;background:currentColor}.exception-count-cell{cursor:default}.exception-count-cell--zero{color:var(--neutral-ink);opacity:.7}.exception-count-cell__auto{color:var(--neutral-ink);font-size:var(--fs-3xs);margin-inline-start:2px}.report-lateness-cell{color:var(--danger-ink);font-weight:var(--fw-bold)}.report-lateness-cell--none{color:var(--neutral-ink);opacity:.7}.vehicle-type-dimension{display:grid;gap:var(--sp-4)}.vehicle-type-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2);border-bottom:1px solid var(--color-line);padding-bottom:var(--sp-2)}.vehicle-type-tab{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--h-sm);padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-line);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.vehicle-type-tab:hover{background:var(--color-surface-2)}.vehicle-type-tab.is-active{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-ink)}.vehicle-type-tab-count{padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--color-surface-2);color:var(--color-ink-2);font-size:var(--fs-2xs)}.vehicle-type-tab.is-active .vehicle-type-tab-count{background:var(--color-surface)}.vehicle-type-tab-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--danger-edge)}.vehicle-type-card{display:grid;gap:var(--sp-4);padding:var(--sp-4);border:1px solid var(--color-line);border-radius:var(--r-md);background:var(--color-surface)}.vehicle-type-card-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.vehicle-type-card-header h4{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.vehicle-type-counts{color:var(--color-ink-2);font-size:var(--fs-xs)}.vehicle-type-badge{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.vehicle-type-badge.warning{color:var(--danger-edge);background:var(--danger-wash);border:1px solid var(--danger-edge)}.vehicle-type-badge.muted{color:var(--color-ink-2);background:var(--color-surface-2);border:1px solid var(--color-line)}.vehicle-type-shifts{display:grid;gap:var(--sp-2)}.vehicle-type-shift-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.vehicle-type-shift-row .shift-name{min-width:8rem}.vehicle-type-shift-row input[type=time]{min-width:138px}.work-day-chips.compact button{min-width:1.9rem;min-height:var(--h-sm);font-size:var(--fs-xs)}.shift-default{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--color-ink-2)}.shift-pinned{font-size:var(--fs-xs);color:var(--accent-ink);background:var(--accent-wash);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill)}.add-shift,.shift-remove{font-size:var(--fs-xs);color:var(--accent);font-weight:var(--fw-semibold)}.vehicle-type-threshold{display:grid;gap:var(--sp-1);max-width:22rem;font-size:var(--fs-xs)}.vehicle-type-threshold input{max-width:10rem}.vehicle-type-exceptions{display:grid;gap:var(--sp-2)}.vehicle-type-exceptions-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--color-ink-2)}.exception-checkboxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2) var(--sp-4);align-items:start}@media (max-width: 60rem){.exception-checkboxes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 36rem){.exception-checkboxes{grid-template-columns:1fr}}.exception-checkbox{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0}
