:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-background:#f4f6fa;--card-background:#fff;--text-color:#202530;--muted-text-color:#667085;--border-color:#e5e8ee}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--page-background)}.app-shell{min-height:100dvh}.app-sider{border-right:1px solid #ffffff14;min-height:100dvh}.app-sider .ant-layout-sider-children{min-height:100dvh}.brand{color:#fff;letter-spacing:.08em;white-space:nowrap;align-items:center;gap:12px;height:72px;padding:0 24px;font-weight:700;display:flex;overflow:hidden}.brand-icon{color:#ef3340;flex:none;font-size:24px}.brand-label{line-height:1}.side-menu{border-inline-end:0!important}.app-content{background:radial-gradient(circle at top right, #ef334014, transparent 32%), var(--page-background);min-height:100dvh;padding:32px}.pending-panel{border:1px dashed var(--border-color);background:var(--card-background);text-align:center;border-radius:18px;min-height:calc(100dvh - 64px)}.pending-panel .ant-typography{margin-bottom:8px}.control-page,.dashboard-page,.control-list-page,.settings-page{width:min(100%,1180px);margin:20px auto}.page-heading{margin-bottom:24px}.page-heading h2{color:var(--text-color);margin:4px 0}.page-heading .ant-typography{margin-bottom:0}.page-eyebrow{color:#ef3340;letter-spacing:.16em;font-size:11px;font-weight:800}.dashboard-workspace{border:1px solid var(--border-color);background:var(--card-background);border-radius:16px;grid-template-columns:280px minmax(0,1fr);min-height:590px;display:grid;overflow:hidden;box-shadow:0 14px 36px #1821300f}.dashboard-vehicle-panel{border-right:1px solid var(--border-color);background:#f8fafc}.dashboard-panel-heading{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px;display:flex}.dashboard-vehicle-skeletons,.dashboard-vehicle-list{gap:8px;padding:12px;display:grid}.dashboard-vehicle-skeletons .ant-skeleton-button{height:68px}.dashboard-vehicle-option{width:100%;color:var(--text-color);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;grid-template-columns:36px minmax(0,1fr) 9px 12px;align-items:center;gap:10px;padding:11px;transition:border-color .16s,background .16s,transform .16s;display:grid}.dashboard-vehicle-option:hover{background:#fff;border-color:#d9dee7}.dashboard-vehicle-option.is-selected{background:#fff;border-color:#ef334047;box-shadow:inset 3px 0 #ef3340}.dashboard-vehicle-option:focus-visible{outline-offset:1px;outline:3px solid #ef334040}.dashboard-vehicle-icon{color:#fff;background:#001f34;border-radius:9px;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.dashboard-vehicle-copy{min-width:0;display:grid}.dashboard-vehicle-copy strong,.dashboard-vehicle-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-vehicle-copy strong{font-size:13px}.dashboard-vehicle-copy small{color:var(--muted-text-color);font-family:Consolas,SFMono-Regular,monospace;font-size:10px}.dashboard-vehicle-arrow{color:#a4acb9;font-size:10px}.dashboard-resource-panel{min-width:0;padding:26px}.dashboard-selection-empty{text-align:center;align-content:center;place-items:center;min-height:535px;display:grid}.dashboard-selection-empty h4{margin:14px 0 4px}.dashboard-selection-empty .ant-typography{max-width:360px;margin-bottom:0}.dashboard-selection-icon{color:#667085;background:#eef2f6;border-radius:16px;place-items:center;width:58px;height:58px;font-size:24px;display:grid}.dashboard-resource-heading{margin-bottom:22px}.dashboard-resource-heading h3{margin:0}.vehicle-status-light{background:#aab1bd;border-radius:50%;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 4px #aab1bd21}.vehicle-status-light.is-online{background:#20a66a;box-shadow:0 0 0 4px #20a66a21}.vehicle-device-id{font-family:Consolas,SFMono-Regular,monospace;font-size:12px}.resource-usage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.resource-usage-card{border:1px solid var(--border-color);background:#fbfcfd}.resource-usage-card .ant-card-body{padding:18px}.resource-usage-title{align-items:center;gap:9px;display:flex}.resource-usage-title>.anticon{color:#ef3340;font-size:17px}.resource-usage-percent{color:var(--text-color);font-family:Consolas,SFMono-Regular,monospace;font-size:22px}.resource-usage-progress{margin:17px 0 8px}.resource-usage-values,.resource-usage-free,.resource-usage-description{font-size:11px}.resource-usage-description{margin-top:12px;display:block}.resource-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.resource-signal-card{border:1px solid var(--border-color)}.resource-signal-card .ant-card-body{align-content:center;gap:5px;min-height:152px;display:grid}.resource-signal-card>.ant-card-body>.anticon,.resource-signal-copy>.anticon{color:#ef3340;margin-bottom:7px;font-size:19px}.resource-signal-card span,.resource-signal-copy span{color:var(--muted-text-color);font-size:12px}.resource-signal-card strong,.resource-signal-copy strong{color:var(--text-color);font-size:22px}.resource-signal-card strong small{color:var(--muted-text-color);font-size:11px;font-weight:500}.resource-signal-card.wifi .ant-card-body{grid-template-columns:minmax(0,1fr) 92px;align-items:center}.resource-signal-copy{gap:4px;display:grid}.resource-signal-copy small{color:var(--muted-text-color);font-size:11px}.control-list-empty{border:1px solid var(--border-color)}.control-vehicle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px;display:grid}.control-vehicle-link{color:inherit;text-decoration:none}.control-vehicle-link:focus-visible{outline-offset:3px;border-radius:16px;outline:3px solid #ef334059}.control-vehicle-card{border:1px solid var(--border-color);background:var(--card-background);height:100%;transition:border-color .16s,box-shadow .16s,transform .16s;overflow:hidden;box-shadow:0 10px 30px #1821300d}.control-vehicle-link:hover .control-vehicle-card{border-color:#ef334059;transform:translateY(-3px);box-shadow:0 16px 38px #1821301a}.control-vehicle-card .ant-card-body{padding:0}.control-vehicle-visual{color:#fffffff0;background:linear-gradient(135deg,#001f34f5,#08354be0),repeating-linear-gradient(90deg,#0000 0 31px,#ffffff0a 31px 32px);place-items:center;height:112px;display:grid;position:relative;overflow:hidden}.control-vehicle-visual:after{content:"";border:1px solid #ffffff21;border-radius:50%;width:150px;height:70px;position:absolute;bottom:-36px;right:-18px}.control-vehicle-visual>.anticon{font-size:38px}.control-vehicle-visual .vehicle-status-light{position:absolute;top:16px;right:16px}.control-vehicle-content{padding:18px 20px 20px}.control-vehicle-title{width:100%}.control-vehicle-title h4{margin:0}.control-vehicle-meta{color:var(--muted-text-color);gap:7px;margin-top:18px;font-size:12px;display:grid}.control-vehicle-meta span{align-items:center;gap:8px;display:flex}.control-vehicle-action{border-top:1px solid var(--border-color);color:#d92d3a;justify-content:space-between;align-items:center;margin-top:20px;padding-top:14px;font-size:13px;font-weight:700;display:flex}.control-page>.vehicle-back-link{margin-bottom:18px}.settings-card{border:1px solid var(--border-color);background:var(--card-background);width:min(100%,760px);box-shadow:0 12px 32px #1821300f}.settings-card .ant-card-body{padding:28px}.settings-card-heading{border-bottom:1px solid var(--border-color);align-items:flex-start;gap:14px;margin-bottom:24px;padding-bottom:20px;display:flex}.settings-card-heading h4,.settings-card-heading .ant-typography{margin:0}.settings-card-icon{color:#fff;background:#001f34;border-radius:11px;flex:none;place-items:center;width:42px;height:42px;font-size:19px;display:grid}.settings-alert{margin-bottom:18px}.vehicle-manager,.vehicle-detail{width:min(100%,980px);margin:20px auto}.vehicle-detail-heading{gap:14px;display:grid}.vehicle-detail-heading h2{margin:0}.vehicle-back-link{width:fit-content;color:var(--text-color);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.vehicle-back-link:hover{color:#ef3340}.vehicle-table-row{cursor:pointer}.vehicle-table-row:focus-visible{outline-offset:-2px;outline:2px solid #ef3340}.vehicle-qr-warning{margin-bottom:20px}.vehicle-domain-help{margin-top:8px}.vehicle-loading-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#f4f6fab8;place-items:center;display:grid;position:fixed;inset:0}.vehicle-loading-indicator{flex-direction:column;align-items:center;gap:14px;padding:24px 30px;display:flex}.vehicle-list-error{margin-bottom:16px}.vehicle-registration>summary{color:#fff;cursor:pointer;background:#ef3340;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-weight:600;list-style:none;display:inline-flex}.vehicle-registration>summary::-webkit-details-marker{display:none}.vehicle-registration-card{border:1px solid var(--border-color);margin-top:12px}.vehicle-credentials{border-color:#ef334047}.vehicle-provisioning-result{grid-template-columns:240px minmax(0,1fr);align-items:center;gap:28px;margin-top:20px;display:grid}.vehicle-qr{flex-direction:column;align-items:center;gap:8px;display:flex}.control-page h2{color:var(--text-color);margin-bottom:4px}.control-alert{margin:20px 0}.error-modal-icon{color:#ef3340;margin-right:8px}.control-card{border:1px solid var(--border-color);background:var(--card-background);box-shadow:0 12px 35px #1821300f}.control-console{grid-template-columns:minmax(0,1.45fr) minmax(390px,.9fr);align-items:start;gap:20px;display:grid}.camera-card{border:1px solid var(--border-color);background:var(--card-background);overflow:hidden;box-shadow:0 12px 35px #1821300f}.camera-card .ant-card-body{padding:0}.camera-card-header{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.recording-strip{background:#fff5f5;border-top:1px solid #ffd5d8;align-items:center;gap:10px;min-height:42px;padding:9px 18px;display:flex;overflow:hidden}.recording-strip .ant-typography{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.recording-dot{background:#ef3340;border-radius:50%;flex:none;width:9px;height:9px;animation:1.4s ease-in-out infinite recording-pulse;box-shadow:0 0 0 4px #ef33401f}@keyframes recording-pulse{50%{opacity:.42}}.recordings-page{width:min(1120px,100%);margin:0 auto}.recordings-heading{margin-bottom:24px}.recording-library-card .ant-card-body{padding:8px 20px}.recordings-delete-error{margin-bottom:18px}.recording-file-icon{color:#ef3340;background:#fff0f1;border-radius:12px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.recording-file-name{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.recording-player-modal video{background:#07131d;border-radius:10px;width:100%;max-height:70vh;display:block}.camera-viewport{aspect-ratio:4/3;background:#07131d;place-items:center;display:grid;position:relative;overflow:hidden}.camera-viewport img{object-fit:contain;width:100%;height:100%;display:none;transform:rotate(180deg)}.camera-viewport.has-frame img{display:block}.camera-placeholder{color:#ffffffb8;flex-direction:column;align-items:center;gap:14px;display:flex}.camera-placeholder .anticon{font-size:38px}.camera-placeholder .ant-typography{color:inherit}.camera-live-mark{color:#fff;letter-spacing:.08em;background:#07131db8;border-radius:999px;align-items:center;gap:7px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:14px;left:14px}.camera-live-mark i{background:#ef3340;border-radius:50%;width:7px;height:7px}.direction-pad{touch-action:none;-webkit-user-select:none;user-select:none;grid-template-columns:repeat(3,minmax(96px,140px));grid-template-areas:".forward.""left stop right"".backward.";justify-content:center;gap:14px;padding:32px 16px;display:grid}.direction-button,.emergency-stop{width:100%;height:72px;font-size:16px;font-weight:600}.direction-forward{grid-area:forward}.direction-left{grid-area:left}.emergency-stop{grid-area:stop}.direction-right{grid-area:right}.direction-backward{grid-area:backward}.control-help{text-align:center;align-items:center;width:100%;padding-bottom:12px;display:flex}.global-error,.not-found{text-align:center;place-items:center;min-height:100dvh;padding:24px;display:grid}.global-error button,.not-found a{color:#fff;cursor:pointer;background:#ef3340;border:0;border-radius:8px;margin-top:16px;padding:10px 16px;text-decoration:none;display:inline-block}@media (max-width:767px){.app-content{padding:16px}.pending-panel{min-height:calc(100dvh - 32px)}.control-page,.dashboard-page,.control-list-page,.settings-page{margin-top:4px}.settings-card .ant-card-body{padding:20px}.camera-card-header,.recording-strip{flex-direction:column;align-items:flex-start}.control-vehicle-grid{grid-template-columns:1fr}.vehicle-manager{margin-top:4px}.vehicle-provisioning-result{grid-template-columns:1fr}.direction-pad{grid-template-columns:repeat(3,minmax(76px,1fr));gap:10px;padding-inline:0}.direction-button,.emergency-stop{height:64px;padding-inline:8px}}@media (max-width:1050px){.control-console{grid-template-columns:1fr}.dashboard-workspace{grid-template-columns:240px minmax(0,1fr)}.resource-usage-grid{grid-template-columns:1fr}.resource-signal-grid,.control-vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.control-vehicle-grid,.dashboard-workspace{grid-template-columns:1fr}.dashboard-vehicle-panel{border-right:0;border-bottom:1px solid var(--border-color);max-height:300px;overflow-y:auto}.dashboard-resource-panel{padding:18px}.dashboard-selection-empty{min-height:300px}.resource-signal-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.control-vehicle-card,.dashboard-vehicle-option{transition:none}.recording-dot{animation:none}}
