@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;--page-bg:#f5f7fb;--surface:#fff;--surface-raised:#fff;--surface-hover:#f8faff;--surface-soft:#eef2f8;--glass:#fffffff5;--glass-soft:#ffffffed;--text:#18202b;--heading:#202b3a;--control-text:#536071;--border:#e4e9f1;--muted:#6d7785;--map-filter:saturate(.72) contrast(.96) brightness(1.04);--map-control-bg:#fffffff5;--map-control-text:#4d5c6f;--map-control-border:#d9e0e9;--map-control-shadow:0 8px 22px #1f304c21;--map-overlay-bg:#ffffffed;--map-overlay-border:#dde3ebcc;--map-overlay-heading:var(--heading);--map-overlay-text:#687384;--vehicle-card-bg:transparent;--vehicle-card-border:transparent;--vehicle-card-divider:var(--border);--vehicle-card-hover-bg:var(--surface-hover);--vehicle-card-hover-border:color-mix(in srgb, var(--blue) 30%, var(--border));--vehicle-card-selected-bg:var(--surface-hover);--vehicle-card-shadow:none;--vehicle-card-gap:0px;--blue:#2f6fed;--shadow:0 16px 40px #1e304e17;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#111722;--surface:#18202c;--surface-raised:#202a38;--surface-hover:#253244;--surface-soft:#222d3d;--glass:#18202cf5;--glass-soft:#18202cf0;--text:#e7edf6;--heading:#f5f7fb;--control-text:#c5d0df;--border:#2c394b;--muted:#9ca9ba;--map-filter:brightness(.9) saturate(.82) contrast(1.04);--map-control-bg:#f8fafced;--map-control-text:#475569;--map-control-border:#94a3b87a;--map-control-shadow:0 9px 24px #0f172a3d;--map-overlay-bg:#f8fafce8;--map-overlay-border:#94a3b86b;--map-overlay-heading:#334155;--map-overlay-text:#526174;--vehicle-card-bg:#222d3d;--vehicle-card-border:#34445a;--vehicle-card-divider:#34445a;--vehicle-card-hover-bg:#29384b;--vehicle-card-hover-border:#456185;--vehicle-card-selected-bg:#26364c;--vehicle-card-shadow:0 7px 18px #00000024;--vehicle-card-gap:8px;--shadow:0 18px 46px #00000047}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#111722;--surface:#18202c;--surface-raised:#202a38;--surface-hover:#253244;--surface-soft:#222d3d;--glass:#18202cf5;--glass-soft:#18202cf0;--text:#e7edf6;--heading:#f5f7fb;--control-text:#c5d0df;--border:#2c394b;--muted:#9ca9ba;--map-filter:brightness(.9) saturate(.82) contrast(1.04);--map-control-bg:#f8fafced;--map-control-text:#475569;--map-control-border:#94a3b87a;--map-control-shadow:0 9px 24px #0f172a3d;--map-overlay-bg:#f8fafce8;--map-overlay-border:#94a3b86b;--map-overlay-heading:#334155;--map-overlay-text:#526174;--vehicle-card-bg:#222d3d;--vehicle-card-border:#34445a;--vehicle-card-divider:#34445a;--vehicle-card-hover-bg:#29384b;--vehicle-card-hover-border:#456185;--vehicle-card-selected-bg:#26364c;--vehicle-card-shadow:0 7px 18px #00000024;--vehicle-card-gap:8px;--shadow:0 18px 46px #00000047}}*{box-sizing:border-box}html,body,#root{min-height:100%}html{font-size:100%}body{background:var(--page-bg);min-width:320px;margin:0;transition:color .18s,background-color .18s}button{font:inherit}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #2f6fed59}.app-shell{min-height:100dvh}.topbar{z-index:1001;border-bottom:1px solid var(--border);background:var(--glass);justify-content:space-between;align-items:center;height:76px;padding:0 28px;display:flex;position:relative;box-shadow:0 2px 14px #1d2d480d}.brand,.topbar__leading,.topbar__actions,.brand>span:last-child{align-items:center;display:flex}.brand{gap:12px}.topbar__leading{gap:18px}.brand-mark{color:#fff;background:linear-gradient(145deg,#477ff0,#245fd8);border-radius:12px;place-items:center;width:39px;height:39px;display:grid;box-shadow:0 8px 18px #2f6fed40}.brand-mark svg{fill:currentColor;width:23px}.brand>span:last-child{flex-direction:column;align-items:flex-start;line-height:1.15}.brand strong{letter-spacing:-.02em;font-size:1.0625rem}.brand small{color:var(--muted);letter-spacing:.02em;margin-top:4px;font-size:.6875rem;font-weight:500}.topbar__actions{gap:12px}.source-state{color:#586475;align-items:center;gap:7px;font-size:.75rem;font-weight:600;display:inline-flex}.source-state>span{background:#1ca77d;border-radius:999px;width:7px;height:7px;box-shadow:0 0 0 4px #1ca77d1a}.source-state--unavailable>span{background:#d96a3d;box-shadow:0 0 0 4px #d96a3d1a}.source-state--connecting>span{background:#e3a129;box-shadow:0 0 0 4px #e3a1291a}.icon-button,.sidebar-toggle{border:1px solid var(--border);width:38px;height:38px;color:var(--control-text);background:var(--surface-raised);cursor:pointer;border-radius:11px;place-items:center;padding:0;transition:border-color .15s,color .15s,background .15s;display:grid}.sidebar-toggle:hover{color:var(--blue);background:var(--surface-hover);border-color:#cbd6e8}.sidebar-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:19px}.icon-button:hover:not(:disabled){color:var(--blue);background:var(--surface-hover);border-color:#cbd6e8}.icon-button:disabled{cursor:wait;opacity:.65}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px}.is-spinning{animation:.85s linear infinite spin}.profile{width:38px;height:38px;color:color-mix(in srgb, var(--blue) 72%, var(--text));background:var(--surface-soft);cursor:pointer;border:0;border-radius:12px;place-items:center;padding:0;font-size:.75rem;font-weight:700;display:grid}.topbar-link{color:var(--control-text);border-radius:9px;padding:8px 10px;font-size:.75rem;font-weight:700;text-decoration:none}.topbar-link:hover{color:var(--blue);background:var(--surface-hover)}.admin-navigation{flex:none;position:relative}.admin-navigation summary{border:1px solid var(--border);min-height:44px;color:var(--control-text);background:var(--surface-raised);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:11px;align-items:center;gap:8px;padding:0 34px 0 16px;font-size:.8125rem;font-weight:700;list-style:none;display:inline-flex}.admin-navigation summary::-webkit-details-marker{display:none}.admin-navigation summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transition:transform .15s;position:absolute;right:14px;transform:translateY(-2px)rotate(45deg)}.admin-navigation[open] summary{border-color:color-mix(in srgb, var(--blue) 48%, var(--border));color:var(--blue)}.admin-navigation[open] summary:after{transform:translateY(2px)rotate(225deg)}.admin-navigation nav{z-index:1200;border:1px solid var(--border);background:var(--surface-raised);border-radius:14px;width:min(280px,100vw - 24px);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 46px #14203433}.admin-navigation nav a{color:var(--text);border-radius:9px;gap:2px;padding:10px 12px;text-decoration:none;display:grid}.admin-navigation nav a:hover,.admin-navigation nav a[aria-current=page],.admin-navigation__install:hover{color:var(--blue);background:var(--surface-hover)}.admin-navigation__install{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;display:flex}.admin-navigation__install>.button-icon{width:17px;height:17px;color:var(--blue);flex-basis:17px}.admin-navigation__install>span{gap:2px;display:grid}.admin-navigation__install strong{font-size:.75rem}.admin-navigation nav span{font-size:.75rem;font-weight:700}.admin-navigation nav small{color:var(--muted);font-size:.625rem}.admin-navigation__section{border-top:1px solid var(--border);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:5px;padding:10px 12px 5px;font-size:.5625rem;font-weight:700}.admin-navigation__section--first{border-top:0;margin-top:0;padding-top:5px}.menu-preference{min-height:46px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:7px 12px;display:flex}.menu-preference>span{font-size:.6875rem;font-weight:700}.menu-preference select{border:1px solid var(--border);min-width:104px;height:34px;color:var(--control-text);background:var(--surface-raised);font:inherit;cursor:pointer;border-radius:8px;outline:0;padding:0 25px 0 9px;font-size:.6875rem;font-weight:700}.menu-preference select:focus{border-color:#7ba2f4;box-shadow:0 0 0 3px #2f6fed1a}.font-size-control{border:1px solid var(--border);background:var(--surface-raised);border-radius:8px;grid-template-columns:34px 52px 34px;display:inline-grid;overflow:hidden}.font-size-control button,.font-size-control output{min-height:34px;color:var(--control-text);background:0 0;border:0;place-items:center;font-size:.75rem;font-weight:700;display:grid}.font-size-control button{cursor:pointer}.font-size-control button:hover:not(:disabled){color:var(--blue);background:var(--surface-hover)}.font-size-control button:disabled{cursor:not-allowed;opacity:.35}.font-size-control output{border-right:1px solid var(--border);border-left:1px solid var(--border);font-size:.5625rem}.application-update-notice{z-index:1500;border:1px solid color-mix(in srgb, var(--blue) 32%, var(--border));width:min(390px,100vw - 40px);color:var(--text);background:var(--surface-raised);border-radius:15px;gap:14px;padding:16px;display:grid;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 50px #14203438}.application-update-notice>div:first-child{gap:4px;display:grid}.application-update-notice strong{color:var(--heading);font-size:.8125rem}.application-update-notice span{color:var(--muted);font-size:.6875rem;line-height:1.45}.application-update-notice__actions{justify-content:flex-end;gap:8px;display:flex}.application-update-notice__actions button{border:1px solid var(--border);min-height:36px;color:var(--control-text);background:var(--surface-raised);font:inherit;cursor:pointer;border-radius:9px;padding:0 12px;font-size:.6875rem;font-weight:700}.application-update-notice__actions button:hover{background:var(--surface-hover)}.application-update-notice__actions .application-update-notice__reload{border-color:var(--blue);color:#fff;background:var(--blue)}.application-update-notice__actions .application-update-notice__reload:hover{background:color-mix(in srgb, var(--blue) 88%, #000)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-switcher{border:1px solid var(--border);min-height:44px;color:var(--control-text);background:var(--surface-raised);border-radius:11px;align-items:center;gap:6px;padding:0 8px;display:inline-flex;box-shadow:0 4px 12px #19273d0d}.theme-switcher svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;width:16px}.theme-switcher select{width:auto;min-width:92px;height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:0 24px 0 4px;font-size:.75rem;font-weight:700}.theme-switcher__label{color:var(--muted);font-size:.6875rem;font-weight:600}.theme-switcher:focus-within{border-color:#7ba2f4;box-shadow:0 0 0 4px #2f6fed1a}.theme-switcher--compact{min-height:44px}.theme-switcher--compact select{min-width:88px;height:44px}.auth-theme-switcher{z-index:10;position:fixed;top:22px;right:24px}.admin-header__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.workspace{grid-template-columns:minmax(340px,410px) 1fr;gap:16px;height:calc(100vh - 76px);padding:16px;display:grid;overflow:hidden}.workspace--fleet-hidden{grid-template-columns:minmax(0,1fr)}.fleet-panel,.map-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.leaflet-tile-pane{filter:var(--map-filter);transition:filter .18s}.leaflet-control-zoom a,.leaflet-control-attribution{color:var(--map-control-text)!important;background:var(--map-control-bg)!important}.leaflet-control-attribution{border:1px solid var(--map-control-border);box-shadow:var(--map-control-shadow);border-bottom:0;border-right:0;border-radius:9px 0 0}.fleet-panel{flex-direction:column;min-height:0;display:flex}.fleet-heading{justify-content:space-between;align-items:flex-end;padding:25px 24px 16px;display:flex}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.625rem;font-weight:700}.fleet-heading h1{color:var(--heading);letter-spacing:-.04em;margin:0;font-size:1.5rem}.vehicle-count{min-width:31px;color:var(--blue);background:var(--surface-soft);text-align:center;border-radius:10px;padding:5px 9px;font-size:.75rem;font-weight:700}.summary{border:1px solid var(--border);background:var(--surface-soft);border-radius:13px;grid-template-columns:repeat(3,1fr);margin:0 24px 18px;padding:12px 0;display:grid}.summary>span{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:2px;font-size:.5625rem;font-weight:600;display:flex}.summary>span+span{border-left:1px solid var(--border)}.summary b{color:var(--text);font-size:1rem}.notice{border-radius:12px;flex-direction:column;gap:3px;margin:0 24px 14px;padding:12px 14px;font-size:.75rem;display:flex}.notice--warning{border:1px solid color-mix(in srgb, #d96a3d 30%, var(--border));color:color-mix(in srgb, #d96a3d 70%, var(--text));background:color-mix(in srgb, #d96a3d 10%, var(--surface))}.notice span{color:var(--muted)}.vehicle-list{scrollbar-color:#d7deea transparent;scrollbar-width:thin;min-height:0;padding:0 14px 14px;overflow-y:auto}.vehicle-card{border:1px solid var(--vehicle-card-border);border-bottom-color:var(--vehicle-card-divider);width:100%;color:inherit;background:var(--vehicle-card-bg);box-shadow:var(--vehicle-card-shadow);text-align:left;border-radius:13px;padding:0;transition:background .18s,border-color .18s,box-shadow .18s;display:block;position:relative}.vehicle-card__select{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:44px 1fr 17px;align-items:center;gap:12px;padding:14px 10px;display:grid}.vehicle-card+.vehicle-card{margin-top:var(--vehicle-card-gap)}.vehicle-card:hover{border-color:var(--vehicle-card-hover-border);background:var(--vehicle-card-hover-bg)}.vehicle-card--selected{border-color:var(--vehicle-card-hover-border);background:var(--vehicle-card-selected-bg);box-shadow:inset 3px 0 var(--blue), var(--vehicle-card-shadow)}.vehicle-card--followed{border-color:color-mix(in srgb, #16a07a 58%, var(--border));box-shadow:inset 3px 0 #16a07a, var(--vehicle-card-shadow)}.vehicle-card__actions{opacity:0;grid-template-rows:0fr;min-height:0;transition:grid-template-rows .22s,opacity .16s,transform .22s;display:grid;transform:translateY(-4px)}.vehicle-card__actions-inner{flex-wrap:wrap;align-items:center;gap:7px;min-height:0;padding:0 10px 0 66px;transition:padding-bottom .22s;display:flex;overflow:hidden}.vehicle-card:hover .vehicle-card__actions,.vehicle-card:focus-within .vehicle-card__actions,.vehicle-card--selected .vehicle-card__actions,.vehicle-card--followed .vehicle-card__actions,.vehicle-card--tracked .vehicle-card__actions{opacity:1;grid-template-rows:1fr;transform:translateY(0)}.vehicle-card:hover .vehicle-card__actions-inner,.vehicle-card:focus-within .vehicle-card__actions-inner,.vehicle-card--selected .vehicle-card__actions-inner,.vehicle-card--followed .vehicle-card__actions-inner,.vehicle-card--tracked .vehicle-card__actions-inner{padding-bottom:11px}.vehicle-map-action{border:1px solid var(--border);min-height:30px;color:var(--control-text);background:var(--surface-raised);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:.5625rem;font-weight:700;line-height:1;text-decoration:none;list-style:none;display:inline-flex}.vehicle-map-action::-webkit-details-marker{display:none}.vehicle-map-action svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:13px}.vehicle-map-action i{border:1px solid #ffffffa6;border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 1px #141e2d29}.vehicle-map-action:hover:not(:disabled),.vehicle-map-action--active{border-color:color-mix(in srgb, var(--blue) 42%, var(--border));color:var(--blue);background:color-mix(in srgb, var(--blue) 8%, var(--surface-raised))}.vehicle-map-action--error{border-color:color-mix(in srgb, #d96a3d 45%, var(--border));color:#b15438}.vehicle-map-action:disabled{cursor:not-allowed;opacity:.48}.vehicle-track-menu{min-width:0}.vehicle-track-menu[open]{flex:1 0 100%}.vehicle-track-menu__options{border:1px solid var(--border);background:var(--surface-raised);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;width:100%;margin-top:6px;padding:6px;display:grid;box-shadow:0 8px 20px #1623371a}.vehicle-track-menu__options button{min-height:30px;color:var(--control-text);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;padding:0 8px;font-size:.5625rem;font-weight:700;display:flex}.vehicle-track-menu__options button:hover,.vehicle-track-menu__options button.is-active{color:var(--blue);background:var(--surface-hover)}.vehicle-track-menu__options .vehicle-track-menu__disable{color:#b15438;grid-column:1/-1;justify-content:center}.vehicle-avatar{width:44px;height:44px;color:var(--vehicle-color);background:color-mix(in srgb, var(--vehicle-color) 14%, var(--surface));border-radius:14px;place-items:center;display:grid}.vehicle-avatar svg{width:24px}.vehicle-card__body,.vehicle-card__topline,.vehicle-card__topline>span:first-child{display:flex}.vehicle-card__body,.vehicle-card__topline>span:first-child{flex-direction:column;min-width:0}.vehicle-card__topline{justify-content:space-between;align-items:flex-start;gap:8px}.vehicle-card strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:700;overflow:hidden}.vehicle-card small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-size:.5625rem;font-weight:600}.status{color:var(--muted);background:var(--surface-soft);border-radius:999px;flex:none;align-items:center;gap:5px;padding:3px 6px;font-size:.5rem;font-weight:700;display:inline-flex}.status>span{background:currentColor;border-radius:999px;width:5px;height:5px}.status--en_linia{color:#168365;background:color-mix(in srgb, #1ca77d 14%, var(--surface))}.status--endarrerit{color:#b47616;background:color-mix(in srgb, #e3a129 15%, var(--surface))}.status--sense_connexio{color:#a05448;background:color-mix(in srgb, #b66c5f 14%, var(--surface))}.vehicle-metrics{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px 12px;margin-top:9px;font-size:.5rem;display:flex}.vehicle-metrics b{color:var(--control-text);font-size:.625rem}.vehicle-document-counts{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);background:color-mix(in srgb, var(--surface-soft) 72%, transparent);border-radius:9px;grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;margin-top:9px;display:grid;overflow:hidden}.vehicle-document-counts>span{text-align:center;flex-direction:column;align-items:center;min-width:0;padding:6px 3px 5px;display:flex}.vehicle-document-counts>span+span{border-left:1px solid color-mix(in srgb, var(--border) 72%, transparent)}.vehicle-document-counts b{max-width:100%;color:var(--control-text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:.625rem;overflow:hidden}.vehicle-document-counts small{letter-spacing:.035em;margin:1px 0 0;font-size:.4375rem}.vehicle-time,.vehicle-empty{color:var(--muted);margin-top:4px;font-size:.5625rem}.vehicle-time--movement{color:var(--control-text);margin-top:2px}.vehicle-chevron{fill:none;stroke:#a4adba;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px}.latest-message-dialog{border:1px solid var(--border);width:min(900px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--surface-raised);border-radius:18px;padding:0;overflow:hidden;box-shadow:0 28px 80px #101d324d}.latest-message-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f192a8c}.latest-message-panel{scrollbar-color:color-mix(in srgb, var(--muted) 45%, transparent) transparent;scrollbar-width:thin;max-height:calc(100dvh - 34px);padding:24px;overflow-y:auto}.latest-message-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.latest-message-header h2{color:var(--heading);align-items:center;gap:8px;margin:3px 0 0;font-size:1.35rem;display:flex}.latest-message-header>div>p:last-child{color:var(--muted);margin:7px 0 0;font-size:.6875rem}.latest-message-summary{border:1px solid var(--border);background:var(--surface-soft);border-radius:13px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:20px;display:grid;overflow:hidden}.latest-message-summary>span{flex-direction:column;gap:3px;min-width:0;padding:13px 15px;display:flex}.latest-message-summary>span+span{border-left:1px solid var(--border)}.latest-message-summary small,.latest-message-data-grid dt,.latest-message-raw-io small{color:var(--muted);letter-spacing:.045em;text-transform:uppercase;font-size:.5625rem;font-weight:700}.latest-message-summary small{align-items:center;gap:5px;display:flex}.latest-message-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 15px;width:15px;height:15px}.latest-message-header h2 .latest-message-icon{width:19px;height:19px;color:var(--blue);flex-basis:19px}.latest-message-summary .latest-message-icon{width:12px;height:12px;color:var(--blue);flex-basis:12px}.latest-message-summary strong{color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.latest-message-sections{gap:14px;margin-top:16px;display:grid}.latest-message-section,.latest-message-json{border:1px solid var(--border);background:var(--surface);border-radius:13px;padding:16px}.latest-message-section h3{color:var(--heading);align-items:center;gap:7px;margin:0 0 12px;font-size:.8125rem;display:flex}.latest-message-section h3 .latest-message-icon,.latest-message-json summary .latest-message-icon{color:var(--blue)}.latest-message-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.latest-message-data-grid--metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.latest-message-data-grid--io{grid-template-columns:repeat(3,minmax(0,1fr))}.latest-message-data-grid>div{background:var(--surface-soft);border-radius:9px;min-width:0;padding:10px 11px}.latest-message-data-grid dd{overflow-wrap:anywhere;color:var(--control-text);font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:.6875rem;font-weight:700}.latest-message-data-grid--io dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.latest-message-raw-io{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.latest-message-raw-io article{background:var(--surface-soft);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 11px;display:flex}.latest-message-raw-io article>span{flex-direction:column;gap:3px;min-width:0;display:flex}.latest-message-raw-io strong,.latest-message-raw-io b{overflow-wrap:anywhere;color:var(--control-text);font-size:.6875rem}.latest-message-raw-io b{text-align:right;flex:0 auto}.latest-message-empty{color:var(--muted);margin:0;font-size:.6875rem}.latest-message-json{padding:0;overflow:hidden}.latest-message-json summary{color:var(--control-text);cursor:pointer;align-items:center;gap:7px;padding:14px 16px;font-size:.6875rem;font-weight:700;list-style:none;display:flex}.latest-message-json summary::-webkit-details-marker{display:none}.latest-message-json summary:after{color:var(--muted);content:"›";margin-left:auto;font-size:1rem;transition:transform .14s}.latest-message-json[open] summary:after{transform:rotate(90deg)}.latest-message-json[open] summary{border-bottom:1px solid var(--border)}.latest-message-json pre{max-height:380px;color:var(--control-text);background:color-mix(in srgb, var(--surface-soft) 72%, var(--surface));tab-size:2;margin:0;padding:16px;font-size:.6875rem;line-height:1.55;overflow:auto}.changelog-dialog{width:min(720px,100vw - 32px)}.changelog-releases{gap:14px;margin-top:20px;display:grid}.changelog-release{border:1px solid var(--border);background:var(--surface);border-radius:13px;padding:17px 18px}.changelog-release:first-child{border-color:color-mix(in srgb, var(--blue) 30%, var(--border));box-shadow:inset 3px 0 var(--blue)}.changelog-release>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.changelog-release h3,.changelog-release h4{color:var(--heading)}.changelog-release h3{margin:0;font-size:.9375rem}.changelog-release>header span{color:var(--blue);background:color-mix(in srgb, var(--blue) 10%, var(--surface));text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:.5625rem;font-weight:700}.changelog-release section{margin-top:15px}.changelog-release h4{margin:0 0 7px;font-size:.6875rem}.changelog-release ul{color:var(--control-text);gap:5px;margin:0;padding-left:18px;font-size:.6875rem;line-height:1.55;display:grid}.empty-state{color:#7d8794;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:260px;padding:28px;display:flex}.empty-state>span{color:#8ca0bd;background:#eef2f8;border-radius:18px;place-items:center;width:58px;height:58px;margin-bottom:14px;display:grid}.empty-state svg{fill:currentColor;width:30px}.empty-state strong{color:#3b4859;font-size:.875rem}.empty-state p{max-width:260px;margin:7px 0 0;font-size:.6875rem;line-height:1.5}.empty-state code{color:#58677a;margin-left:3px}.fleet-footer{color:#9ba4b0;text-align:left;border-top:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;font-size:.5625rem;display:flex}.fleet-footer__version{border:1px solid var(--border);color:var(--control-text);background:var(--surface-soft);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 7px;font-weight:700;transition:color .14s,border-color .14s,background .14s;display:inline-flex}.fleet-footer__version:hover{border-color:color-mix(in srgb, var(--blue) 35%, var(--border));color:var(--blue);background:var(--surface-hover)}.fleet-footer__version svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.map-panel{background:#e9edf1;min-width:0;min-height:0;position:relative}.fleet-map{z-index:1;background:#e9edf1;width:100%;height:100%}.vehicle-map-marker{background:0 0;border:0;transition:transform .42s ease-out}.vehicle-map-marker__body{color:#fff;background:var(--vehicle-marker-color);border:3px solid var(--vehicle-marker-ring,#fff);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 5px 16px #111d3047}.vehicle-map-marker__body svg{width:22px;height:22px;transform:rotate(var(--vehicle-heading));transition:transform .18s}.leaflet-container{font-family:inherit}.leaflet-tile-pane{filter:var(--map-filter)}.leaflet-control-zoom{overflow:hidden;border:1px solid var(--map-control-border)!important;box-shadow:var(--map-control-shadow)!important;border-radius:12px!important}.leaflet-control-zoom a{color:var(--map-control-text)!important}.vehicle-map-marker__body:hover,.vehicle-map-marker:focus .vehicle-map-marker__body{transform:translateY(-2px)scale(1.06);box-shadow:0 8px 24px #111d305c}.leaflet-tooltip.vehicle-map-tooltip{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);width:270px;max-width:calc(100vw - 24px);color:var(--text);background:color-mix(in srgb, var(--surface-raised) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;padding:0;box-shadow:0 18px 42px #19263b38}.leaflet-tooltip-top.vehicle-map-tooltip:before{border-top-color:var(--surface-raised)}.vehicle-map-tooltip__card{white-space:normal;gap:12px;width:100%;min-width:0;max-width:100%;padding:13px;font-size:.625rem;line-height:1.35;display:grid;overflow:hidden}.vehicle-map-tooltip__header,.vehicle-map-tooltip__identity,.vehicle-map-tooltip__status,.vehicle-map-tooltip__time,.vehicle-map-tooltip__metrics,.vehicle-map-tooltip__metrics>span{align-items:center;display:flex}.vehicle-map-tooltip__header{justify-content:space-between;gap:10px;min-width:0}.vehicle-map-tooltip__identity{gap:8px;min-width:0}.vehicle-map-tooltip__identity>strong{min-width:0;color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.vehicle-map-tooltip__vehicle-icon{color:#fff;background:var(--vehicle-tooltip-color,var(--blue));width:28px;height:28px;box-shadow:0 5px 12px color-mix(in srgb, var(--vehicle-tooltip-color,var(--blue)) 28%, transparent);border-radius:9px;flex:0 0 28px;place-items:center;display:grid}.vehicle-map-tooltip__vehicle-icon svg{width:17px;height:17px}.vehicle-type-control{grid-template-columns:42px minmax(0,1fr);align-items:stretch;display:grid}.vehicle-type-control select{border-top-left-radius:0;border-bottom-left-radius:0;min-width:0}.vehicle-type-preview{border:1px solid var(--border);color:var(--blue);background:color-mix(in srgb, var(--blue) 9%, var(--surface-raised));border-right:0;border-radius:10px 0 0 10px;place-items:center;display:grid}.vehicle-type-preview svg{width:24px;height:24px}.vehicle-map-tooltip__status{color:var(--muted);background:var(--surface-soft);border-radius:999px;flex:none;gap:5px;padding:4px 7px;font-size:.5rem;font-weight:700}.vehicle-map-tooltip__status>span{background:#8e99a7;border-radius:50%;width:6px;height:6px}.vehicle-map-tooltip__status--en_linia{color:#11775d;background:#1ca77d21}.vehicle-map-tooltip__status--en_linia>span{background:#1ca77d}.vehicle-map-tooltip__status--endarrerit>span{background:#e3a129}.vehicle-map-tooltip__status--sense_connexio>span{background:#b66c5f}.vehicle-map-tooltip__time{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-soft) 70%, transparent);border-radius:11px;gap:9px;padding:9px 10px}.vehicle-map-tooltip__time>svg{fill:none;width:17px;height:17px;stroke:var(--blue);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 17px}.vehicle-map-tooltip__time>span{gap:1px;min-width:0;display:grid}.vehicle-map-tooltip__time strong{color:var(--heading);font-size:.625rem;font-weight:700}.vehicle-map-tooltip__time small{color:var(--muted);font-size:.5rem}.vehicle-map-tooltip__metrics{gap:7px}.vehicle-map-tooltip__metrics>span{min-width:0;color:var(--control-text);background:var(--surface-soft);border-radius:8px;flex:1;gap:5px;padding:6px 8px;font-size:.5625rem;font-weight:700}.vehicle-map-tooltip__metrics svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.map-legend{z-index:500;border:1px solid var(--map-overlay-border);background:var(--map-overlay-bg);box-shadow:var(--map-control-shadow);color:var(--map-overlay-text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:11px;gap:13px;padding:9px 12px;font-size:.5625rem;font-weight:600;display:flex;position:absolute;top:18px;left:18px}.map-legend>span{align-items:center;gap:5px;display:inline-flex}.map-track-legend{z-index:500;flex-wrap:wrap;gap:6px;max-width:min(620px,100% - 36px);display:flex;position:absolute;top:58px;left:18px}.map-track-legend button{border:1px solid var(--map-overlay-border);min-height:28px;color:var(--map-overlay-text);background:var(--map-overlay-bg);box-shadow:var(--map-control-shadow);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:.5rem;font-weight:700;display:inline-flex}.map-track-legend button:hover{color:var(--blue)}.map-track-legend i{border-radius:999px;width:8px;height:8px}.legend-dot{border-radius:999px;width:6px;height:6px}.legend-dot--online{background:#1ca77d}.legend-dot--delayed{background:#e3a129}.legend-dot--offline{background:#b66c5f}.map-empty{z-index:500;border:1px solid var(--map-overlay-border);min-width:260px;color:var(--map-overlay-text);background:var(--map-overlay-bg);box-shadow:var(--map-control-shadow);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;flex-direction:column;gap:4px;padding:18px 22px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-empty strong{color:var(--map-overlay-heading);font-size:.8125rem}.map-empty span{color:#7f8997;font-size:.625rem}.auth-page{background:radial-gradient(circle at 15% 15%, #2f6fed1a, transparent 30%), radial-gradient(circle at 85% 85%, #1ca77d14, transparent 28%), var(--page-bg);place-items:center;min-height:100vh;padding:32px 20px;display:grid}.auth-card{border:1px solid var(--border);background:var(--surface);border-radius:22px;width:min(100%,470px);padding:38px;box-shadow:0 24px 70px #1e304e1f}.auth-brand{align-items:center;gap:11px;margin-bottom:36px;font-size:1.0625rem;display:flex}.auth-card>.eyebrow,.admin-header .eyebrow{margin:0 0 8px}.auth-card h1,.admin-header h1{color:var(--heading);letter-spacing:-.04em;margin:0;font-size:clamp(26px,5vw,34px)}.auth-description,.admin-header p,.admin-panel>p{color:var(--muted);line-height:1.55}.auth-description{margin:12px 0 28px}.auth-form{gap:18px;display:grid}.auth-form label{color:var(--control-text);gap:7px;font-size:.75rem;font-weight:700;display:grid}.auth-form label>small{color:var(--muted);font-size:.625rem;font-weight:500;line-height:1.45}.auth-form input:not([type=checkbox]),.auth-form select,.auth-form textarea{width:100%;color:var(--text);background:var(--surface-raised);font:inherit;border:1px solid #d9e0ea;border-radius:11px;outline:none;padding:0 13px;transition:border-color .15s,box-shadow .15s}.auth-form input:not([type=checkbox]),.auth-form select{min-height:46px}.auth-form textarea{resize:vertical;min-height:88px;padding-block:11px}.auth-form input:not([type=checkbox]):focus,.auth-form select:focus,.auth-form textarea:focus{border-color:#7ba2f4;box-shadow:0 0 0 4px #2f6fed1a}.primary-button,.secondary-button{min-height:44px;font:inherit;cursor:pointer;border-radius:11px;justify-content:center;align-items:center;padding:0 17px;font-size:.8125rem;font-weight:700;text-decoration:none;display:inline-flex}.button-with-icon,.mongo-transfer-button{gap:8px}.button-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:0 0 17px;width:17px;height:17px}.mongo-transfer-button .button-icon{flex-basis:15px;width:15px;height:15px}.primary-button{color:#fff;background:var(--blue);border:0;box-shadow:0 8px 18px #2f6fed38}.primary-button:disabled{cursor:wait;opacity:.65}.secondary-button{border:1px solid var(--border);color:var(--control-text);background:var(--surface-raised)}.secondary-button:disabled{cursor:wait;opacity:.6}.mongo-transfer-button{letter-spacing:.03em;min-height:40px;padding-inline:13px;font-size:.6875rem}.mongo-import-menu{position:relative}.mongo-import-menu summary{-webkit-user-select:none;user-select:none;list-style:none}.mongo-import-menu summary::-webkit-details-marker{display:none}.mongo-import-menu summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;margin:-3px 1px 0 2px;transition:transform .14s,margin .14s;transform:rotate(45deg)}.mongo-import-menu[open] summary:after{margin-top:3px;transform:rotate(225deg)}.mongo-import-menu summary[aria-disabled=true]{cursor:wait;opacity:.6}.mongo-import-menu__options{z-index:40;border:1px solid var(--border);background:var(--surface-raised);border-radius:13px;gap:3px;width:230px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 38px #17243c2e}.mongo-import-menu__options button{width:100%;color:var(--control-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:10px 11px;display:flex}.mongo-import-menu__options button:hover,.mongo-import-menu__options button:focus-visible{background:var(--surface-hover);outline:none}.mongo-import-menu__options button>span{gap:2px;display:grid}.mongo-import-menu__options strong{font-size:.75rem}.mongo-import-menu__options small{color:var(--muted);font-size:.625rem}.mongo-import-guide{border:1px solid var(--border);max-width:1280px;color:var(--muted);background:var(--surface-soft);border-radius:12px;margin:-8px auto 20px;font-size:.6875rem}.mongo-import-guide summary{color:var(--control-text);cursor:pointer;padding:11px 14px;font-weight:700}.mongo-import-guide summary::marker{color:var(--blue)}.mongo-import-guide>div{border-top:1px solid var(--border);padding:13px 16px 15px}.mongo-import-guide p{margin:0;line-height:1.5}.mongo-import-guide ul{gap:5px;margin:10px 0 0;padding-left:18px;line-height:1.5;display:grid}.mongo-import-guide code{color:var(--control-text);font-size:.95em}.mongo-transfer-feedback{border:1px solid color-mix(in srgb, #1ca77d 30%, var(--border));color:#17694f;background:color-mix(in srgb, #1ca77d 10%, var(--surface));border-radius:12px;max-width:1280px;margin:-10px auto 20px;padding:12px 15px;font-size:.75rem;line-height:1.45}.mongo-transfer-feedback--error{border-color:color-mix(in srgb, #c1534c 30%, var(--border));color:#a33e39;background:color-mix(in srgb, #c1534c 10%, var(--surface))}.dismissible-error{justify-content:space-between;align-items:center;gap:12px;display:flex}.dismissible-error>span{min-width:0}.dismissible-error>button{width:28px;height:28px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:0 0 28px;place-items:center;padding:0;font-size:1.125rem;line-height:1;display:grid}.dismissible-error>button:hover,.dismissible-error>button:focus-visible{background:color-mix(in srgb, currentColor 10%, transparent);outline:none}.mongo-import-progress,.mongo-import-report{border:1px solid var(--border);background:var(--surface);border-radius:14px;max-width:1280px;margin:-10px auto 20px;padding:16px;box-shadow:0 8px 24px #1420340f}.mongo-import-progress__heading,.mongo-import-report__heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.mongo-import-progress__heading{color:var(--control-text);font-size:.75rem}.mongo-import-progress__heading span{color:var(--blue);font-weight:700}.mongo-import-progress progress{width:100%;height:8px;color:var(--blue);background:var(--surface-soft);accent-color:var(--blue);border:0;border-radius:999px;margin:12px 0 8px;overflow:hidden}.mongo-import-progress progress::-webkit-progress-bar{background:var(--surface-soft);border-radius:999px}.mongo-import-progress progress::-webkit-progress-value{background:var(--blue);border-radius:999px;transition:width .18s}.mongo-import-progress progress::-moz-progress-bar{background:var(--blue);border-radius:999px}.mongo-import-progress small{color:var(--muted);font-size:.6875rem}.mongo-import-report{padding:20px}.mongo-import-report__heading .eyebrow{margin:0 0 4px}.mongo-import-report__heading h2{color:var(--heading);overflow-wrap:anywhere;margin:0;font-size:1rem}.mongo-import-report__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.mongo-import-report__stats span{color:var(--muted);background:var(--surface-soft);border-radius:11px;gap:3px;padding:12px;font-size:.625rem;display:grid}.mongo-import-report__stats strong{color:var(--heading);font-size:1rem}.mongo-import-report__stats .has-errors strong{color:#b44740}.mongo-import-errors{border:1px solid color-mix(in srgb, #c1534c 24%, var(--border));border-radius:12px;margin-top:14px;overflow:hidden}.mongo-import-errors summary{color:#9b3f2e;background:color-mix(in srgb, #d96a3d 8%, var(--surface));cursor:pointer;padding:12px 14px;font-size:.75rem;font-weight:700}.mongo-import-errors ol{max-height:340px;margin:0;padding:0;list-style:none;overflow-y:auto}.mongo-import-errors li{border-top:1px solid var(--border);padding:11px 14px}.mongo-import-errors li>div{color:var(--control-text);justify-content:space-between;align-items:baseline;gap:12px;font-size:.6875rem;display:flex}.mongo-import-errors code{max-width:50%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.625rem;overflow:hidden}.mongo-import-errors li p,.mongo-import-errors__truncated{color:var(--muted);margin:5px 0 0;font-size:.6875rem;line-height:1.45}.mongo-import-errors__truncated{border-top:1px solid var(--border);background:var(--surface-soft);margin:0;padding:11px 14px}.auth-success,.form-error,.form-success{border-radius:11px;font-size:.75rem;line-height:1.45}.auth-success{color:#17694f;background:color-mix(in srgb, #1ca77d 14%, var(--surface));gap:5px;padding:16px;display:grid}.service-unavailable{border:1px solid color-mix(in srgb, #d96a3d 24%, var(--border));color:var(--text);background:color-mix(in srgb, #d96a3d 8%, var(--surface));border-radius:13px;align-items:center;gap:13px;padding:15px;display:flex}.service-unavailable__icon{color:#c85a37;background:color-mix(in srgb, #d96a3d 15%, var(--surface));border-radius:13px;flex:none;place-items:center;width:43px;height:43px;display:grid}.service-unavailable__icon svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:24px}.service-unavailable>div{gap:4px;display:grid}.service-unavailable strong{font-size:.75rem}.service-unavailable span:not(.service-unavailable__icon){color:var(--muted);font-size:.625rem;line-height:1.45}.service-retry{width:100%;margin-top:18px}.form-error,.form-success{margin:0;padding:10px 12px}.form-error{color:#9b3f2e;background:color-mix(in srgb, #d96a3d 13%, var(--surface))}.form-success{color:#17694f;background:color-mix(in srgb, #1ca77d 14%, var(--surface))}.admin-page{min-height:100vh;padding:0 clamp(20px,5vw,72px) 60px}.admin-header{justify-content:space-between;align-items:center;gap:18px;max-width:1280px;min-height:76px;margin:0 auto 20px;display:flex}.admin-header .eyebrow{margin-bottom:3px;font-size:.5625rem}.admin-header h1{font-size:clamp(1.25rem,2.2vw,1.5rem);line-height:1.08}.admin-header p:not(.eyebrow){margin:4px 0 0;font-size:.6875rem;line-height:1.35}.admin-grid{grid-template-columns:minmax(280px,360px) 1fr;gap:20px;max-width:1280px;margin:0 auto;display:grid}.admin-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:17px;padding:25px}.admin-panel h2{color:var(--heading);margin:0 0 8px;font-size:1.0625rem}.admin-panel>p{margin:0 0 22px;font-size:.75rem}.profile-settings-panel{width:min(100%,620px);margin:0 auto}.smtp-layout{grid-template-columns:minmax(0,1fr) minmax(260px,330px);align-items:start;gap:20px;max-width:1080px;margin:0 auto;display:grid}.mail-delivery-note{border:1px solid color-mix(in srgb, var(--blue) 22%, var(--border));max-width:1080px;color:var(--control-text);background:color-mix(in srgb, var(--blue) 5%, var(--surface));border-radius:13px;gap:3px;margin:0 auto 20px;padding:14px 16px;font-size:.6875rem;line-height:1.5;display:grid}.mail-delivery-note strong{color:var(--heading);font-size:.75rem}.mail-provider-list{gap:20px;display:grid}.smtp-settings-panel .panel-heading-row .eyebrow{margin:0 0 5px;font-size:.5625rem}.smtp-form__pair{grid-template-columns:minmax(0,1fr) 120px;gap:14px;display:grid}.smtp-form__pair--sender{grid-template-columns:minmax(180px,.75fr) minmax(220px,1fr)}.smtp-status{color:#8b6724;background:color-mix(in srgb, #e3a129 15%, var(--surface));border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:.625rem;font-weight:700;display:inline-flex}.smtp-status--ready{color:#17694f;background:color-mix(in srgb, #1ca77d 14%, var(--surface))}.smtp-test-panel{gap:14px;display:grid}.smtp-test-panel>p{margin-bottom:4px}.smtp-test-panel label{color:var(--control-text);gap:7px;font-size:.75rem;font-weight:700;display:grid}.smtp-test-panel input{width:100%;min-height:46px;color:var(--text);background:var(--surface-raised);font:inherit;border:1px solid #d9e0ea;border-radius:11px;outline:none;padding:0 13px}.smtp-test-panel input:focus{border-color:#7ba2f4;box-shadow:0 0 0 4px #2f6fed1a}.smtp-test-panel>small{color:var(--muted);font-size:.625rem;line-height:1.5}.smtp-test-button:disabled{cursor:wait;opacity:.65}.admin-list{display:grid}.admin-row{border-bottom:1px solid var(--border);grid-template-columns:38px minmax(150px,1fr) auto minmax(160px,auto);align-items:center;gap:12px;min-width:0;padding:13px 0;display:grid}.invitation-admin-row{grid-template-columns:38px minmax(150px,1fr) auto minmax(160px,auto) auto}.invitation-actions{justify-content:flex-end;align-items:center;gap:2px;display:inline-flex}.invitation-email-dialog{border:1px solid var(--border);width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text);background:var(--surface-raised);border-radius:18px;padding:0;overflow-y:auto;box-shadow:0 28px 80px #101d324d}.invitation-email-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f192a85}.invitation-email-composer{padding:24px}.invitation-email-composer__heading,.invitation-email-composer__actions,.invitation-email-recipient{align-items:center;display:flex}.invitation-email-composer__heading{justify-content:space-between;gap:18px}.invitation-email-composer__heading .eyebrow{margin:0 0 4px}.invitation-email-composer__heading h2{color:var(--heading);margin:0;font-size:1.25rem}.dialog-close-button{border:1px solid var(--border);width:38px;height:38px;color:var(--muted);background:var(--surface-soft);font:inherit;cursor:pointer;border-radius:10px;flex:0 0 38px;place-items:center;padding:0;font-size:1.25rem;display:grid}.dialog-close-button:hover{color:var(--heading);background:var(--surface-hover)}.dialog-close-button:disabled{cursor:wait;opacity:.55}.invitation-email-recipient{color:var(--muted);background:var(--surface-soft);border-radius:11px;justify-content:flex-start;gap:5px;margin:0;padding:11px 13px;font-size:.75rem}.invitation-email-recipient strong{color:var(--heading)}.invitation-email-recipient span:before{content:"· "}.auth-form .invitation-email-body{min-height:190px;line-height:1.55}.invitation-link-preview{border:1px solid color-mix(in srgb, var(--blue) 18%, var(--border));background:color-mix(in srgb, var(--blue) 5%, var(--surface));border-radius:12px;grid-template-columns:max-content 1fr;align-items:center;gap:12px;padding:13px;display:grid}.invitation-link-preview>span{color:#fff;background:var(--blue);border-radius:9px;padding:9px 13px;font-size:.6875rem;font-weight:700}.invitation-link-preview p{color:var(--muted);margin:0;font-size:.6875rem;line-height:1.45}.invitation-email-composer__actions{justify-content:flex-end;gap:10px}.admin-row:last-child{border-bottom:0}.admin-row>span:nth-child(2){gap:3px;min-width:0;display:grid}.admin-row strong,.admin-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-row strong{color:var(--text);font-size:.8125rem}.admin-row small,.admin-row time,.admin-empty{color:var(--muted);font-size:.6875rem}.user-admin-list{gap:10px}.user-admin-card{border:1px solid var(--border);background:var(--surface-raised);border-radius:13px;min-width:0;overflow:hidden}.user-admin-row{border-bottom:0;grid-template-columns:38px minmax(140px,1fr) auto minmax(150px,auto) auto;padding:13px 14px}.user-name-with-presence{align-items:center;gap:7px;min-width:0;display:flex}.user-name-with-presence strong{min-width:0}.user-presence-dot{border:2px solid color-mix(in srgb, #22c55e 24%, var(--surface-raised));background:#22c55e;border-radius:50%;flex:0 0 8px;width:8px;height:8px;box-shadow:0 0 0 2px #22c55e24}.user-session-count{border:1px solid color-mix(in srgb, var(--blue) 22%, var(--border));min-height:34px;color:var(--blue);background:color-mix(in srgb, var(--blue) 8%, var(--surface));cursor:pointer;border-radius:999px;padding:0 10px;font-size:.625rem;font-weight:700}.user-session-count:hover,.user-session-count[aria-expanded=true]{border-color:color-mix(in srgb, var(--blue) 45%, var(--border));background:color-mix(in srgb, var(--blue) 14%, var(--surface))}.user-session-count:focus-visible,.danger-text-button:focus-visible{outline:2px solid color-mix(in srgb, var(--blue) 48%, transparent);outline-offset:2px}.user-session-panel{border-top:1px solid var(--border);background:var(--surface-soft);padding:14px}.user-session-panel__heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;display:flex}.user-session-panel__heading>div{gap:2px;display:grid}.user-session-panel__heading strong{color:var(--heading);font-size:.6875rem}.user-session-panel__heading span,.user-session-empty{color:var(--muted);font-size:.5625rem}.user-session-list{gap:7px;display:grid}.user-session-entry{border:1px solid var(--border);background:var(--surface-raised);border-radius:10px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px;display:grid}.session-device-icon{width:32px;height:32px;color:var(--blue);background:color-mix(in srgb, var(--blue) 11%, var(--surface));border-radius:9px;place-items:center;display:grid}.session-device-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.user-session-entry__details{gap:3px;min-width:0;display:grid}.user-session-entry__details>div{align-items:center;gap:6px;min-width:0;display:flex}.user-session-entry__details strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}.user-session-entry__details>span,.user-session-entry__details small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.5625rem;overflow:hidden}.current-session-badge{color:#11735c;background:color-mix(in srgb, #1ca77d 15%, var(--surface));text-transform:uppercase;border-radius:999px;padding:2px 5px;font-size:.5rem;font-weight:700}.danger-text-button{color:#b44b45;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 7px;font-size:.625rem;font-weight:700}.danger-text-button:hover:not(:disabled){background:color-mix(in srgb, #c1534c 10%, var(--surface))}.danger-text-button:disabled{opacity:.55;cursor:wait}.user-session-empty{text-align:center;margin:0;padding:12px}.vehicle-admin-grid{grid-template-columns:minmax(320px,390px) 1fr}.vehicle-editor{align-self:start}.panel-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.panel-heading-row h2,.panel-heading-row p{margin:0}.panel-heading-row p{color:var(--muted);margin-top:5px;font-size:.6875rem}.text-button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:.6875rem;font-weight:700}.text-button:disabled{cursor:wait;opacity:.55}.viewer-fieldset{border:0;min-width:0;padding:0}.viewer-fieldset legend{color:var(--control-text);margin-bottom:8px;font-size:.75rem;font-weight:700}.viewer-options{border:1px solid var(--border);background:var(--surface-raised);border-radius:11px;gap:3px;max-height:210px;padding:6px;display:grid;overflow-y:auto}.viewer-option,.active-option{cursor:pointer;align-items:center;grid-template-columns:none!important;display:flex!important}.viewer-option{border-radius:8px;padding:8px;gap:9px!important}.viewer-option:hover{background:var(--surface-hover)}.viewer-option input,.active-option input{width:16px;height:16px;accent-color:var(--blue);flex:none}.viewer-option>span{gap:2px;min-width:0;display:grid}.viewer-option strong{color:var(--text);font-size:.6875rem}.viewer-option small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.5625rem;font-weight:500;overflow:hidden}.active-option{flex-direction:row!important;gap:9px!important}.vehicle-config-list{gap:10px;display:grid}.vehicle-config-card{border:1px solid var(--border);background:var(--surface-raised);border-radius:13px;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:center;gap:18px;padding:16px;display:grid}.vehicle-config-card__main{min-width:0}.vehicle-config-card__main h3{color:var(--heading);margin:7px 0 4px;font-size:.875rem}.vehicle-config-card__title{align-items:center;gap:7px;display:flex}.vehicle-type-icon{width:26px;height:26px;color:var(--blue);background:color-mix(in srgb, var(--blue) 12%, var(--surface));border-radius:8px;flex:0 0 26px;place-items:center;display:inline-grid}.vehicle-type-icon svg{width:17px;height:17px}.vehicle-type-label{color:var(--muted);text-transform:uppercase;margin:0 8px 5px 0;font-size:.5625rem;font-weight:700;display:inline-block}.vehicle-config-card__main code{color:var(--control-text);letter-spacing:.04em;font-size:.6875rem}.vehicle-config-card__main p{color:var(--muted);margin:8px 0 0;font-size:.625rem;line-height:1.45}.config-state{color:#168365;background:color-mix(in srgb, #1ca77d 14%, var(--surface));border-radius:999px;padding:3px 7px;font-size:.5rem;font-weight:700;display:inline-flex}.config-state--inactive{color:var(--muted);background:var(--surface-soft)}.vehicle-config-card__access>span{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:.5625rem;font-weight:700;display:block}.vehicle-config-card__access>div{flex-wrap:wrap;gap:5px;display:flex}.user-chip{color:var(--control-text);background:var(--surface-soft);border-radius:999px;padding:4px 7px;font-size:.5625rem;font-weight:600}.admin-empty-state{min-height:220px;color:var(--muted);text-align:center;place-content:center;gap:5px;display:grid}.admin-empty-state strong{color:var(--heading);font-size:.8125rem}.admin-empty-state span{font-size:.625rem}.role-badge{color:#42608b;background:var(--surface-soft);border-radius:999px;padding:5px 8px;font-size:.625rem;font-weight:700}.user-role-actions{justify-content:flex-end;align-items:center;gap:5px;display:inline-flex}.promote-user-button{border:1px solid color-mix(in srgb, var(--blue) 24%, var(--border));color:var(--blue);background:color-mix(in srgb, var(--blue) 7%, var(--surface));cursor:pointer;white-space:nowrap;border-radius:7px;padding:5px 7px;font-size:.5625rem;font-weight:700}.promote-user-button:hover:not(:disabled){border-color:color-mix(in srgb, var(--blue) 45%, var(--border));background:color-mix(in srgb, var(--blue) 13%, var(--surface))}.promote-user-button:disabled{cursor:wait;opacity:.55}.pending-mark{color:#8b6724;background:color-mix(in srgb, #e3a129 16%, var(--surface));border-radius:11px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.admin-subheading{margin-top:28px!important}.admin-empty{margin:14px 0 0!important}.history-layout{grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:20px;max-width:1280px;margin:0 auto;display:grid}.history-filter-panel{align-self:start;min-width:0;overflow:hidden}.history-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.history-date-grid label,.history-date-grid input{min-width:0}.history-empty-filter{min-height:170px}.history-results-panel{flex-direction:column;min-width:0;max-height:calc(100vh - 176px);display:flex;overflow:hidden}.history-query-range{color:var(--blue);margin-top:5px;font-size:.625rem;font-weight:600;line-height:1.45;display:block}.history-results-content{overscroll-behavior:contain;scrollbar-color:#c8d2e2 transparent;scrollbar-width:thin;min-height:0;overflow-y:auto}.history-table-wrap{overflow-x:auto}.history-position-map-wrap{border:1px solid var(--border);background:#e9edf1;border-radius:12px;height:280px;min-height:280px;margin-bottom:12px;position:relative;overflow:hidden}.history-position-map{width:100%;height:100%}.history-position-map__empty{z-index:500;color:var(--control-text);background:color-mix(in srgb, var(--surface) 82%, transparent);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.history-position-map__empty span{color:var(--muted);font-size:.6875rem}.history-position-map__caption{z-index:500;border:1px solid var(--map-control-border);color:var(--map-control-text);background:var(--map-control-bg);box-shadow:var(--map-control-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;gap:2px;padding:8px 10px;display:grid;position:absolute;top:10px;left:10px}.history-position-map__caption strong{font-size:.625rem}.history-position-map__caption code{font-size:.5625rem}.history-table{border-collapse:collapse;width:100%;font-size:.6875rem}.history-table th,.history-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:11px 10px}.history-table th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.5625rem}.history-table td{color:var(--text)}.history-table code{color:var(--control-text);font-size:.625rem}.history-record-row{cursor:pointer;transition:background-color .14s}.history-record-row:hover,.history-record-row--selected{background:var(--surface-hover)}.history-record-row--selected{box-shadow:inset 3px 0 var(--blue)}.history-map-position{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:3px 6px 3px 4px;display:inline-flex}.history-map-position:hover,.history-map-position:focus-visible{background:color-mix(in srgb, var(--blue) 10%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--blue) 22%, transparent);outline:none}.history-map-position .history-detail-icon{flex-basis:20px;width:20px;height:20px}.history-detail-toggle{white-space:nowrap}.history-detail-row>td{white-space:normal;background:var(--surface-soft);padding:0 0 16px}.history-detail{gap:20px;padding:20px;display:grid}.history-detail-state{color:var(--muted);text-align:center;margin:0;padding:22px}.history-detail__heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-detail__heading>div{gap:3px;display:grid}.history-detail__heading span,.history-detail-grid dt,.history-io-grid dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.5625rem;font-weight:700}.history-detail__heading span,.history-detail-grid dt,.history-io-grid dt,.history-io-section h4{align-items:center;gap:6px;display:flex}.history-detail-icon{width:18px;height:18px;color:var(--blue);background:color-mix(in srgb, var(--blue) 12%, transparent);border-radius:6px;flex:0 0 18px;place-items:center;display:inline-grid}.history-detail-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.history-detail-icon--distance,.history-detail-icon--speed,.history-detail-icon--movement{color:#16856f;background:#16856f21}.history-detail-icon--battery,.history-detail-icon--priority,.history-detail-icon--event{color:#a66a08;background:#d9921a24}.history-detail-icon--location,.history-detail-icon--satellite,.history-detail-icon--signal{color:#596fc1;background:#7185d224}.history-detail__heading strong{color:var(--heading);font-size:.875rem}.history-detail__heading>code{overflow-wrap:anywhere;white-space:normal}.history-detail-grid,.history-io-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0;display:grid}.history-detail-grid>div,.history-io-grid>div{border:1px solid var(--border);background:var(--surface-raised);border-radius:10px;min-width:0;padding:10px}.history-detail-grid dd,.history-io-grid dd{overflow-wrap:anywhere;color:var(--text);margin:5px 0 0;font-size:.6875rem}.history-io-section h4{color:var(--heading);margin:0 0 10px;font-size:.75rem}.history-io-section>p{color:var(--muted);margin:0;font-size:.625rem}.history-raw-io-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;display:grid}.history-raw-io-list>div{border:1px solid var(--border);background:var(--surface-raised);border-radius:10px;grid-template-columns:auto minmax(0,1fr);gap:3px 8px;min-width:0;padding:10px;display:grid}.history-raw-io-list small{color:var(--muted)}.history-raw-io-list strong,.history-raw-io-value{overflow-wrap:anywhere;font-size:.625rem}.history-raw-io-value,.history-raw-io-meta{grid-column:2}.history-raw-io-meta{font-size:.5rem}.history-io-id{cursor:help;border-radius:7px;outline:none;align-self:start;display:inline-grid;position:relative}.history-io-id:after{z-index:30;opacity:0;color:#fff;content:attr(data-tooltip);pointer-events:none;white-space:nowrap;background:#1b2430;border:1px solid #ffffff29;border-radius:7px;padding:5px 7px;font-size:.5625rem;font-weight:700;line-height:1;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,4px);box-shadow:0 6px 18px #00000038}.history-io-id:hover:after,.history-io-id:focus-visible:after{opacity:1;transform:translate(-50%)}.history-io-id:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--blue) 38%, transparent)}.history-json{border:1px solid var(--border);background:var(--surface-raised);border-radius:11px;min-width:0}.history-json summary{color:var(--control-text);cursor:pointer;padding:12px 14px;font-size:.6875rem;font-weight:700}.history-json pre{border-top:1px solid var(--border);max-height:520px;color:var(--text);background:color-mix(in srgb, var(--surface-soft) 62%, var(--surface));white-space:pre-wrap;word-break:break-word;margin:0;padding:14px;font-size:.625rem;line-height:1.55;overflow:auto}.history-warning{color:#8b6724;margin:14px 0 0;font-size:.625rem}.history-result-note{color:var(--muted);margin:14px 0 0;font-size:.625rem}.trips-page{min-height:100vh;padding:0 clamp(18px,3vw,48px) 36px}.trips-header,.trips-toolbar,.trip-summary,.trips-workspace{width:100%;max-width:1560px;margin-inline:auto}.trips-header{justify-content:space-between;align-items:center;gap:18px;min-height:76px;margin-bottom:16px;display:flex}.trips-heading{align-items:center;gap:14px;min-width:0;display:flex}.trips-heading__vehicle{border:1px solid color-mix(in srgb, var(--blue) 22%, var(--border));width:44px;height:44px;color:var(--blue);background:color-mix(in srgb, var(--blue) 9%, var(--surface));border-radius:13px;flex:0 0 44px;place-items:center;display:grid}.trips-heading__vehicle svg{width:24px}.trips-heading .eyebrow{margin:0 0 2px;font-size:.5625rem}.trips-heading h1{color:var(--heading);letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1.25rem,2.2vw,1.5rem);overflow:hidden}.trips-heading p:not(.eyebrow){color:var(--muted);text-transform:capitalize;margin:4px 0 0;font-size:.75rem}.trips-toolbar{z-index:20;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:15px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex;position:relative}.trips-date-navigation{align-items:center;gap:7px;min-width:0;display:flex}.trips-date-navigation .icon-button{width:40px;height:40px;min-height:40px;font-size:1.5rem;text-decoration:none}.trips-date-navigation input{border:1px solid var(--border);min-height:40px;color:var(--text);background:var(--surface-raised);font:inherit;border-radius:10px;outline:none;padding:0 11px;font-size:.75rem;font-weight:700}.trips-date-navigation input:focus{border-color:color-mix(in srgb, var(--blue) 55%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 13%, transparent)}.trips-today-button{min-height:40px}.trips-help{position:relative}.trips-help>summary{border:1px solid color-mix(in srgb, var(--blue) 24%, var(--border));min-height:40px;color:var(--blue);background:color-mix(in srgb, var(--blue) 7%, var(--surface));cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:0 13px;font-size:.6875rem;font-weight:700;list-style:none;display:inline-flex}.trips-help>summary::-webkit-details-marker{display:none}.trips-help>summary>span{color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:20px;height:20px;font-size:.6875rem;display:grid}.trips-help__panel{z-index:1005;border:1px solid var(--border);width:min(520px,100vw - 36px);color:var(--control-text);background:var(--surface-raised);border-radius:15px;padding:20px 22px;font-size:.75rem;line-height:1.55;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 20px 55px #0f1c3138}.trips-help__panel strong{color:var(--heading);font-size:.875rem}.trips-help__panel p{margin:7px 0 10px}.trips-help__panel ol{gap:6px;margin:0 0 12px;padding-left:19px;display:grid}.trips-help__panel small{color:var(--muted);line-height:1.45}.trip-summary{align-items:stretch;gap:8px;padding:14px 4px;display:flex}.trip-summary>span{border-right:1px solid var(--border);min-width:120px;color:var(--muted);align-items:baseline;gap:5px;padding:8px 13px;font-size:.625rem;font-weight:700;display:flex}.trip-summary b{color:var(--heading);font-size:1rem}.trip-refresh-button{border:1px solid var(--border);min-height:36px;color:var(--control-text);background:var(--surface);cursor:pointer;border-radius:9px;margin-left:auto;padding:0 12px;font-size:.625rem;font-weight:700}.trip-refresh-button:disabled{cursor:wait;opacity:.6}.trips-workspace{grid-template-columns:minmax(0,3fr) minmax(390px,2fr);gap:16px;height:max(520px,100vh - 270px);min-height:520px;display:grid}.trips-map-panel,.trips-table-panel{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:0;box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.trips-map-panel,.trip-map-wrap{position:relative}.trip-map-wrap,.trip-map{width:100%;height:100%;min-height:360px}.trip-map{z-index:1;background:#e9edf1}.trip-map__empty{z-index:5;border:1px solid var(--map-overlay-border);width:min(320px,100% - 36px);color:var(--map-overlay-text);background:var(--map-overlay-bg);box-shadow:var(--map-control-shadow);text-align:center;border-radius:14px;gap:4px;padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trip-map__empty strong{color:var(--map-overlay-heading)}.trip-map__empty span{font-size:.6875rem}.trip-map-legend{z-index:6;border:1px solid var(--map-overlay-border);background:var(--map-overlay-bg);max-width:calc(100% - 28px);max-height:116px;box-shadow:var(--map-control-shadow);border-radius:12px;flex-wrap:wrap;gap:4px;padding:7px;display:flex;position:absolute;top:14px;left:14px;overflow:auto}.trip-map-legend button{min-height:28px;color:var(--map-overlay-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:5px;padding:0 8px;font-size:.5625rem;font-weight:700;display:inline-flex}.trip-map-legend button:hover,.trip-map-legend button.is-selected{border-color:var(--map-overlay-border);color:var(--map-overlay-heading);background:#ffffff94}.trip-map-legend i,.trip-select-button i{border:1px solid #ffffffc2;border-radius:50%;flex:0 0 9px;width:9px;height:9px;box-shadow:0 0 0 1px #141e2d29}.trips-table-panel{flex-direction:column;display:flex}.trips-table-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:12px;padding:22px 22px 16px;display:flex}.trips-table-heading h2{color:var(--heading);margin:0;font-size:1.0625rem}.trips-table-heading>span{min-width:30px;color:var(--blue);background:var(--surface-soft);text-align:center;border-radius:9px;padding:5px 8px;font-size:.6875rem;font-weight:700}.trips-table-scroll{min-height:0;overflow:auto}.trips-table{border-collapse:collapse;width:100%;min-width:620px;font-size:.6875rem}.trips-table th{z-index:2;color:var(--muted);background:var(--surface-soft);letter-spacing:.04em;text-align:left;text-transform:uppercase;padding:10px 12px;font-size:.5625rem;position:sticky;top:0}.trips-table td{border-bottom:1px solid var(--border);color:var(--control-text);white-space:nowrap;padding:13px 12px}.trips-table tbody tr{cursor:pointer;transition:background .13s}.trips-table tbody tr:hover,.trips-table tbody tr.is-selected{background:var(--surface-hover)}.trips-table tbody tr.is-selected{box-shadow:inset 3px 0 var(--blue)}.trips-table td strong{color:var(--heading)}.trip-select-button{border:1px solid var(--border);min-width:35px;min-height:28px;color:var(--control-text);background:var(--surface-raised);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 7px;font-size:.625rem;font-weight:700;display:inline-flex}.trip-status{border-radius:999px;padding:4px 7px;font-size:.5625rem;font-weight:700;display:inline-flex}.trip-status--completed{color:#157253;background:color-mix(in srgb, #20a36a 13%, var(--surface))}.trip-status--in_progress{color:#936118;background:color-mix(in srgb, #e08a24 14%, var(--surface))}.trips-empty{color:var(--muted);text-align:center;gap:6px;margin:auto;padding:28px;display:grid}.trips-empty strong{color:var(--heading)}.trips-empty p{max-width:330px;margin:0;font-size:.6875rem;line-height:1.5}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=850px){.trips-page{padding:0 12px 28px}.trips-workspace{grid-template-rows:minmax(390px,52vh) minmax(360px,auto);grid-template-columns:1fr;height:auto;min-height:0}.trips-table-panel{max-height:620px}.topbar{height:68px;padding:0 16px}.source-state,.profile{display:none}.workspace{grid-template-rows:minmax(360px,52vh) auto;grid-template-columns:1fr;height:auto;min-height:calc(100vh - 68px);padding:10px;overflow:visible}.workspace--fleet-hidden{grid-template-rows:minmax(0,1fr);height:calc(100dvh - 68px);min-height:0;overflow:hidden}.map-panel{grid-row:1}.fleet-panel{grid-row:2;min-height:420px}.vehicle-list{overflow:visible}.latest-message-data-grid--metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.latest-message-data-grid--io{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid,.history-layout,.smtp-layout{grid-template-columns:1fr}.history-results-panel{max-height:min(72vh,760px)}.vehicle-config-card{grid-template-columns:1fr auto}.vehicle-config-card__access{grid-area:2/1/auto/-1}.admin-row{grid-template-columns:38px minmax(120px,1fr) auto}.admin-row time{display:none}.invitation-admin-row{grid-template-columns:38px minmax(120px,1fr) auto}.invitation-admin-row .role-badge{display:none}.user-admin-row{grid-template-columns:38px minmax(120px,1fr) auto}.user-admin-row .role-badge,.user-role-actions--admin{display:none}.user-admin-row--promotable .user-session-count{grid-column:2/-1;justify-self:start}}@media (width<=520px){.trips-heading__vehicle{border-radius:13px;flex-basis:44px;width:44px;height:44px}.trips-heading__vehicle svg{width:24px}.trips-heading h1{font-size:1.3rem}.trips-toolbar{flex-direction:column;align-items:stretch}.trips-date-navigation{width:100%}.trips-date-navigation input{flex:auto;min-width:0}.trips-help>summary{justify-content:center;width:100%}.trips-help__panel{width:auto;max-height:calc(100vh - 90px);position:fixed;top:74px;left:12px;right:12px;overflow-y:auto}.trip-summary{overflow-x:auto}.trip-summary>span,.trip-refresh-button{min-width:max-content}.trips-workspace{grid-template-rows:minmax(340px,44vh) minmax(360px,auto)}.trip-map-legend{max-height:86px}.brand>span:last-child,.map-legend{display:none}.topbar{padding-inline:12px}.map-track-legend{max-width:calc(100% - 24px);top:12px;left:12px}.topbar__leading{gap:10px}.topbar__actions{gap:6px}.topbar .theme-switcher--compact{padding-inline:4px}.topbar .theme-switcher--compact svg{display:none}.topbar .theme-switcher--compact select{min-width:72px;padding-inline:4px 16px}.topbar .admin-navigation summary{justify-content:center;gap:0;width:38px;height:38px;min-height:38px;padding:0;font-size:0}.topbar .admin-navigation__label,.topbar .admin-navigation summary:after{display:none}.fleet-heading{padding-inline:18px}.latest-message-dialog{border-radius:14px;width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.latest-message-panel{max-height:calc(100dvh - 14px);padding:16px}.latest-message-header{gap:12px}.latest-message-header h2{font-size:1.15rem}.latest-message-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.latest-message-summary>span:nth-child(odd){border-left:0}.latest-message-summary>span:nth-child(n+3){border-top:1px solid var(--border)}.latest-message-data-grid,.latest-message-data-grid--metrics,.latest-message-data-grid--io,.latest-message-raw-io{grid-template-columns:1fr}.latest-message-section{padding:13px}.latest-message-raw-io article{align-items:flex-start}.summary,.notice{margin-inline:18px}.auth-card{padding:28px 22px}.admin-header{flex-direction:column;align-items:stretch;padding-block:12px}.trips-header{flex-direction:column;align-items:stretch;gap:10px;min-height:auto;padding-block:12px}.admin-header__actions{flex-wrap:wrap;justify-content:flex-start;gap:8px}.admin-header__actions .admin-navigation{flex:none}.admin-header__actions .admin-navigation summary{justify-content:flex-start;gap:6px;width:auto;min-height:40px;padding-left:13px;padding-right:31px}.admin-header__actions .secondary-button{min-height:40px;padding-inline:13px;font-size:.75rem}.admin-header__actions>.mongo-transfer-button,.admin-header__actions>.mongo-import-menu,.mongo-import-guide{display:none}.smtp-form__pair,.smtp-form__pair--sender,.history-date-grid{grid-template-columns:1fr}.history-position-map-wrap{height:230px;min-height:230px}.user-session-panel__heading{flex-wrap:wrap;align-items:flex-start}.user-session-entry{grid-template-columns:32px minmax(0,1fr)}.user-session-entry>.danger-text-button{grid-column:2;justify-self:start}.invitation-admin-row{grid-template-columns:38px minmax(0,1fr)}.invitation-actions{grid-column:2;justify-content:flex-start}.invitation-email-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.invitation-email-composer{padding:18px}.invitation-email-recipient{flex-direction:column;align-items:flex-start}.invitation-email-recipient span:before{content:""}.invitation-link-preview{grid-template-columns:1fr;align-items:start}.invitation-link-preview>span{justify-self:start}.invitation-email-composer__actions{flex-direction:column-reverse;align-items:stretch}.mongo-import-report__heading{flex-direction:column;align-items:stretch}.mongo-import-report__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mongo-import-errors li>div{flex-direction:column;align-items:flex-start;gap:4px}.mongo-import-errors code{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
