:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#21352f;background:#f4f6f3;font-synthesis:none;--brand:#175e50;--muted:#63746d;--line:#dce4de;--paper:#fff;--soft:#edf5ef}*{box-sizing:border-box}body{margin:0;line-height:1.5}button,input{font:inherit}button{cursor:pointer;min-height:42px;border:1px solid #ced9d1;border-radius:8px;background:white;color:#234338;padding:9px 15px;font-weight:550;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#edf5ef;border-color:#94b4a5}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #329b80;outline-offset:3px}button.primary{background:var(--brand);border-color:var(--brand);color:white}button.primary:hover:not(:disabled){background:#0d4a3e}.quiet{background:transparent;border-color:transparent}.small{font-size:12px}.muted{color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.2;letter-spacing:-1px;font-weight:650}h2{font-size:19px;line-height:1.3;letter-spacing:-.3px;font-weight:600}h3{font-size:16px}b{font-weight:600}p+p{margin-top:8px}[hidden]{display:none!important}.block{display:block}.topbar{min-height:84px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:18px max(24px,calc((100vw - 1240px)/2));gap:20px}.brand{display:flex;align-items:center;gap:11px;color:#1c3a30;text-decoration:none;font-size:22px;font-weight:650;letter-spacing:-.5px}.brand-mark{display:grid;place-items:center;background:var(--brand);color:#fff;width:37px;height:37px;border-radius:10px;font-size:23px}.brand-label{font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:550;border-left:1px solid var(--line);padding-left:16px;margin-left:8px}.top-right{display:flex;align-items:center;gap:18px}.environment{font-size:11px;letter-spacing:1px;color:#557266;background:#f0f5ef;border-radius:6px;padding:6px 9px;white-space:nowrap}main{max-width:1240px;padding:32px 24px 56px;margin:auto;min-height:calc(100vh - 150px)}footer{max-width:1240px;margin:auto;border-top:1px solid var(--line);padding:18px 24px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.3px;font-weight:650;color:var(--muted)}.login-layout{max-width:1000px;margin:65px auto 45px;display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center}.login-intro h1{font-size:49px;letter-spacing:-2px;line-height:1.1;margin:20px 0}.login-intro>p{color:var(--muted);font-size:16px;max-width:370px}.login-points{display:grid;gap:18px;margin-top:40px;font-size:12px;color:#7c9185}.login-points span{display:flex;gap:15px;align-items:center}.login-points b{color:#456354;font-size:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:24px}.login-form{padding:32px;display:grid;gap:21px;box-shadow:0 8px 35px #213c2e05}.login-form h2{margin:8px 0}.login-form label{display:grid;gap:8px;font-size:13px;font-weight:550}.login-form input{padding:12px 13px;border:1px solid #d4ded6;border-radius:7px;background:#fafcf9;width:100%;font-weight:400;color:#21352f}.login-form input::placeholder{color:#819087}.login-form .primary{display:flex;justify-content:space-between;align-items:center}.token-pending{background:#f4f6f3;border:1px solid #e4e9e3;border-radius:7px;padding:10px 12px;font-size:12px;display:flex;gap:8px;align-items:center;color:#66776d}.dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:currentColor;flex:none}.error-text{color:#ac332a}.error-text:empty{display:none}.session-strip{display:flex;gap:12px;justify-content:space-between;align-items:center;background:#e9f3ec;border:1px solid #d8e8dc;border-radius:8px;padding:12px 17px;color:#285e45;font-size:13px;margin-bottom:32px;flex-wrap:wrap}.session-check{margin-right:8px}.session-email{font-size:12px;overflow-wrap:anywhere}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px;flex-wrap:wrap}.page-heading h1{margin:8px 0}.page-heading .muted{font-size:14px}.count{font-size:15px;font-weight:500;letter-spacing:0;background:#e3ebe3;color:#42664e;border-radius:7px;padding:3px 8px;margin-left:12px;vertical-align:middle}.notice{background:#fbf3e1;color:#805c23;border:1px solid #eee2c6;border-radius:8px;padding:13px 16px;font-size:13px;margin-bottom:24px}.error-banner{padding:14px 16px;border-radius:8px;border:1px solid #e8bdb7;background:#fff0ed;color:#a12e25;margin:0 0 24px}.vehicles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.vehicle-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:15px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.status{display:inline-flex;align-items:center;gap:7px;background:#f0f2ee;color:#647166;padding:4px 9px;border-radius:6px;font-size:11px;white-space:nowrap;text-transform:capitalize}.status.connected{color:#226644;background:#eaf5ed}.vehicle-name{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:12px;border:0;background:none;padding:0;font-size:20px;letter-spacing:-.4px;font-weight:650;min-height:0;color:#204a3b;overflow-wrap:anywhere}.vehicle-name:hover:not(:disabled){background:none;color:#07805b}.vehicle-name span{font-size:19px;font-weight:400;color:#86a292}.vehicle-name+.small{margin-top:-12px}.odometer{background:#f1f6ef;border:1px solid #e4edde;padding:17px;border-radius:10px;display:grid;gap:10px}.odometer .eyebrow{color:#586f52}.reading-label{font-size:10px;color:#718167}.odometer-value{font-size:29px;line-height:1.2;letter-spacing:-1px;font-weight:650;font-variant-numeric:tabular-nums;color:#28492a;overflow-wrap:anywhere}.refresh-odo{justify-self:start;font-size:12px;min-height:33px;padding:5px 10px;background:#fff;border-color:#d4e1ce;color:#45623a}.odometer p{font-size:11px;line-height:1.5}.values{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;margin:0}.values dt{font-size:11px;color:var(--muted)}.values dd{margin:3px 0 0;font-size:14px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.activity-time{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:3px;font-size:13px;margin-top:auto}.warning-text{color:#8a6a2d}.command-actions{display:flex;gap:8px;flex-wrap:wrap}.command-actions button{flex:1;font-size:13px;white-space:nowrap;padding:9px 11px}.command-actions button:first-child{border-color:#bacdc0;background:#f7faf6}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.detail-grid h2{margin-bottom:22px}.door-panel{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.door-panel p{font-size:13px;margin-top:7px}.door-panel .command-actions{min-width:260px}.back{margin-bottom:18px;margin-left:-12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;margin-top:16px;min-width:420px}th{font-weight:500;color:var(--muted);font-size:12px}td{font-size:13px}th,td{padding:13px 10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}th:first-child,td:first-child{padding-left:0}details{margin-top:16px}summary{cursor:pointer;font-size:13px;font-weight:550;padding:9px 0}pre{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f6f3;padding:15px;border-radius:8px;color:#33473b}.command-history{margin-top:24px}.history-entry{border-top:1px solid var(--line);padding-top:18px;margin-top:18px;font-size:13px}.history-entry p{margin-top:8px}.history-entry details{margin-top:4px}.fetched{margin-top:24px}.loading,.empty{text-align:center;padding:60px 24px;color:var(--muted)}.empty h2{margin-bottom:10px}dialog{width:min(500px,calc(100% - 32px));border:1px solid #d2ded3;border-radius:16px;padding:30px;color:#21352f;box-shadow:0 24px 80px #102b2633}dialog::backdrop{background:#0e241e66;backdrop-filter:blur(3px)}dialog h2{font-size:25px;margin:10px 0}dialog .notice{margin:20px 0}.dialog-close{position:absolute;right:10px;top:10px;border:0;background:none;font-size:24px;font-weight:400;padding:0;min-width:36px;min-height:36px}.dialog-vehicle{font-weight:600}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#command-progress{margin-top:12px}.skip{position:absolute;top:-100px;left:10px;background:white;color:var(--brand);z-index:10;padding:10px}.skip:focus{top:10px}
@media(min-width:1000px){main>.odometer{grid-template-columns:1fr auto;align-items:center}main>.odometer .row,main>.odometer .odometer-value{grid-column:1}main>.odometer .refresh-odo{grid-column:2;grid-row:1/3;justify-self:end}main>.odometer p{grid-column:1/3}}
@media(max-width:1050px){.vehicles{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{gap:40px}.brand-label{display:none}}
@media(max-width:700px){.topbar{padding:16px}.top-right{gap:8px}.environment{font-size:9px;letter-spacing:.3px}.brand{font-size:20px}main{padding:24px 16px 36px}.vehicles,.detail-grid,.login-layout{grid-template-columns:1fr}.login-layout{margin:15px 0;gap:30px}.login-intro h1{font-size:36px}.login-points{display:none}.login-form{padding:24px}.login-intro>p{max-width:none;font-size:14px}input{font-size:16px}.vehicle-card{padding:20px}h1{font-size:27px}.session-strip{margin-bottom:24px}.door-panel .command-actions{width:100%;min-width:0}.page-heading{gap:12px}.page-heading button{width:100%}.odometer-value{font-size:30px}footer{padding:16px}.dialog-actions button{flex:1}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.location-panel{margin-bottom:18px}.location-panel h2{margin-top:5px}.location-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:22px 0 16px}.location-values dt{font-size:11px;color:var(--muted)}.location-values dd{margin:4px 0 0;font-size:14px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.map-link{display:inline-flex;align-items:center;min-height:42px;padding:9px 14px;border:1px solid #bacdc0;border-radius:8px;text-decoration:none;color:var(--brand);font-size:13px;background:#f7faf6}.map-link:hover{background:var(--soft)}.location-address{margin-bottom:12px;font-size:14px}.location-unavailable{margin-top:16px}@media(max-width:700px){.location-values{grid-template-columns:1fr 1fr}.map-link{width:100%;justify-content:center}}
