:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#e9eee8;background:#101613;font-synthesis:none;font-weight:400;color-scheme:dark;--muted:#a2ada5;--border:#2b3630;--accent:#c7dc99}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{transition:background .18s,border-color .18s,transform .18s}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-decoration:none}p,h1,h2{margin:0}button svg{flex-shrink:0}.app-shell{min-height:100dvh}.sidebar{width:248px;background:#131b16;border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;padding:31px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;font-size:13px;letter-spacing:1.8px;font-weight:600;white-space:nowrap}.brand svg{width:34px;height:34px;color:var(--accent)}.brand b{font-weight:400;color:#a6b7a9}.side-label{margin-top:59px;font-size:10px;font-weight:600;letter-spacing:1.5px;color:#96a498}.side-car{margin-top:17px;background:#243228;border:1px solid #354737;border-radius:10px;display:flex;align-items:center;gap:11px;padding:15px 12px;font-size:14px}.side-car small{display:block;color:#a8b8aa;font-size:11px;margin-top:5px}.side-car>svg{margin-left:auto;color:#b6c6b6}.side-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.side-note{margin-top:auto;color:#a5b6a8;font-size:12px;line-height:1.7;padding-bottom:28px;border-bottom:1px solid var(--border)}.side-note svg{margin-bottom:12px;color:var(--accent)}.side-install{background:none;border:0;padding:23px 0 12px;display:flex;align-items:center;gap:10px;color:#c7d1c8;font-size:11px;text-align:left;min-height:48px}.side-version{font-size:9px;letter-spacing:1px;color:#7f9183;margin-top:8px}.main-wrap{margin-left:248px}.topbar{height:89px;padding:0 48px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.desktop-title{color:#a5b0a7;font-size:10px;letter-spacing:2px}.top-actions{display:flex;align-items:center;gap:13px}.icon-button{border:1px solid var(--border);background:transparent;border-radius:50%;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:#b3c1b5}.icon-button:hover{background:#243228}.demo-tag{font-size:9px;letter-spacing:1.4px;color:var(--accent);border:1px solid #46563c;padding:5px 8px;border-radius:4px}.mobile-brand{display:none}.dashboard{max-width:1300px;padding:38px 48px 0;margin:auto}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2px;color:#a6b4a8;margin-bottom:12px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h1{font-size:30px;letter-spacing:-1px;font-weight:500}h1 span{font-weight:300;color:#b2c0b4}.refresh-button{display:flex;gap:8px;align-items:center;padding:10px 14px;border:1px solid var(--border);background:transparent;border-radius:8px;color:#bbc8bd;font-size:11px;min-height:44px}.demo-banner,.notice-banner{display:flex;gap:9px;align-items:center;font-size:11px;line-height:1.5;color:#bfceae;background:#202a1c;border:1px solid #34432c;padding:11px 14px;border-radius:8px;margin-bottom:20px}.demo-banner svg,.notice-banner svg{flex-shrink:0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:24px;align-items:start}.vehicle-panel{border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,#1c2820,#161f19 65%);overflow:hidden;min-width:0}.connection-row{display:flex;justify-content:space-between;gap:12px;padding:22px 22px 0;align-items:center;flex-wrap:wrap}.connection{font-size:10px;display:flex;align-items:center;gap:7px;color:#d2bd91}.connection>span{width:6px;height:6px;background:#cfac6e;border-radius:100%}.connection.connected{color:#c8dda3}.connection.connected>span{background:#c8dda3;box-shadow:0 0 8px #c7dc9940}.connection-row small{font-size:9px;color:#a5b5a7}.vehicle-art{position:relative;padding-top:30px}.car{display:block;width:100%;height:auto;position:relative}.vehicle-status{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;margin:28px 15px 24px;color:#c0ccc0;font-size:10px}.vehicle-status>span{display:flex;gap:6px;align-items:center}.vehicle-status>span+span{border-left:1px solid #3e4d40;padding-left:16px}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #344137;margin:0 22px}.metric{padding:24px 15px 20px 0;display:flex;flex-direction:column;min-width:0}.metric:nth-child(2n){border-left:1px solid #344137;padding-left:23px;padding-right:0}.metric:nth-child(n+3){border-top:1px solid #344137}.metric-label{display:flex;align-items:center;gap:7px;font-size:11px;color:#b1c0b3}.metric strong{font-weight:400;letter-spacing:-1px;font-size:37px;line-height:1.4;margin-top:9px;white-space:nowrap}.metric strong small{font-size:15px;letter-spacing:0;color:#adbfae;margin-left:5px}.metric>span{font-size:9px;color:#a5b8a8;margin-top:8px}.metric progress{appearance:none;height:3px;border:0;width:100%;margin-top:9px;background:#354536;border-radius:2px}.metric progress::-webkit-progress-bar{background:#354536}.metric progress::-webkit-progress-value{background:#c7dc99;border-radius:2px}.metric:nth-child(2) progress::-webkit-progress-value{background:#aebda5}.metric progress::-moz-progress-bar{background:var(--accent)}.metric progress:indeterminate{visibility:hidden}.details-button{background:#1c2920;border:0;border-top:1px solid #344137;padding:17px 22px;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:10px;color:#b5c6b8;min-height:48px}.controls{display:flex;flex-direction:column;gap:16px}.control-card{border:1px solid var(--border);border-radius:12px;padding:22px;background:#18201a}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading>svg{color:#a2b2a5}.section-heading h2{font-size:15px;font-weight:500;letter-spacing:-.2px}.section-heading p{font-size:10px;color:#acbaaf;margin-top:7px;line-height:1.5}.climate-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:21px}.climate-buttons button{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #5a4937;border-radius:9px;background:#312a20;padding:17px 14px 14px;min-height:132px;text-align:left}.climate-buttons .heat{color:#f3d6ab}.climate-buttons .cool{color:#b6dae6;background:#1e2d2d;border-color:#385659}.climate-buttons button:not(:disabled):hover{filter:brightness(1.18)}.climate-buttons span{font-size:14px;margin-top:15px;font-weight:500}.climate-buttons small{font-size:8px;margin-top:6px;color:#d8c2a4;line-height:1.4}.climate-buttons .cool small{color:#adc8ce}.paired-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.paired-buttons button{border:1px solid #425044;background:#243027;border-radius:8px;min-height:50px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px}.paired-buttons button:not(:disabled):hover{background:#344737;border-color:#789266}.trunk-card .paired-buttons button{justify-content:space-between;padding:0 14px}.secure-note{display:flex;align-items:flex-start;gap:6px;font-size:9px;color:#a2b3a5;line-height:1.6;margin:0 5px}.secure-note svg{flex-shrink:0}.stop-button{border:0;background:transparent;color:#d6d9c4;padding:12px 0 0;font-size:11px;min-height:44px}.history-card{border:1px solid var(--border);border-radius:12px;background:#151d18;margin-top:26px;overflow:hidden}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 22px;border-bottom:1px solid var(--border)}.history-heading h2{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500}.history-heading>span{font-size:9px;color:#a3b0a5}.empty-history{display:flex;gap:12px;align-items:center;padding:24px;color:#a3b3a6}.empty-history p{font-size:12px}.empty-history small{display:block;margin-top:6px;font-size:10px;color:#8e9e92}.history-row{display:flex;gap:12px;padding:17px 22px;align-items:flex-start;border-bottom:1px solid var(--border)}.history-row:last-child{border:0}.command-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#283427;color:#c7dc99;flex-shrink:0}.command-copy{min-width:0}.command-copy strong{font-weight:500;font-size:12px}.command-copy p{font-size:10px;color:#b4c1b6;margin-top:6px;line-height:1.6}.command-copy small{font-size:10px;color:var(--accent);display:block;margin-top:4px}.history-row time{margin-left:auto;font-size:10px;color:#a6b4a8;padding-top:3px}.status-unknown .command-icon,.status-error .command-icon{color:#eac592;background:#3b3022}.footer{display:flex;justify-content:space-between;gap:12px;color:#91a195;font-size:8px;letter-spacing:1.2px;padding:27px 0 30px}.footer span+span{letter-spacing:.2px}.error-banner{display:flex;align-items:center;gap:8px;padding:13px 15px;border:1px solid #795236;background:#34251d;color:#f0c5a4;font-size:12px;line-height:1.6;border-radius:8px;margin:0 0 16px;overflow-wrap:anywhere}.notice-banner{color:#d6d6b3;background:#2a2c20;border-color:#494c35}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid #4b5e4c;border-radius:18px;background:#19231c;color:#eaf0e9;width:min(440px,calc(100% - 32px));padding:32px;max-height:90dvh;overflow-y:auto;box-shadow:0 24px 100px #0008}dialog::backdrop{background:#070d0bcc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}dialog h2{font-size:23px;font-weight:500;letter-spacing:-.5px;padding-right:15px}dialog p{font-size:13px;line-height:1.7;color:#becbbf;margin-top:14px}.dialog-close{position:absolute;right:12px;top:12px;width:36px;height:36px;border:0}.dialog-symbol{width:54px;height:54px;background:#293b28;color:var(--accent);border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.primary-button{min-height:52px;border:1px solid #c5db9a;background:#c7dc99;color:#1d2b19;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;font-size:13px;margin-top:24px}.primary-button:hover{background:#d8e7b7}.cancel-button{background:transparent;border:1px solid #405242;border-radius:9px;min-height:48px;width:100%;margin-top:10px;font-size:13px;color:#ccd5cb}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#c6d3c6;margin-top:22px}input{background:#0f1812;border:1px solid #50624e;color:#eef4e9;padding:14px;border-radius:8px;min-width:0;width:100%}.install-steps{padding-left:21px;font-size:13px;color:#d7e0d5;line-height:1.8}.install-steps li{padding:6px 0}dialog .muted{color:#a7b7aa;font-size:11px}.detail-list{font-size:12px;margin:24px 0}.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}dt{color:#b4c4b7}dd{margin:0;text-align:right}.login-page{max-width:800px;margin:0 auto;padding:45px 28px;text-align:center}.login-mark svg{width:64px;height:64px;color:var(--accent);margin-bottom:24px}.login-page h1{font-size:38px}.login-description{font-size:14px;color:#b4c5b8;line-height:1.8;margin:19px 0 0}.login-car{max-width:480px;margin:-15px auto -10px}.login-card{border:1px solid var(--border);border-radius:14px;padding:28px;background:#18221a;text-align:left;max-width:440px;margin:0 auto 20px}.login-card h2{font-size:18px;font-weight:500;line-height:1.5}.login-card p{font-size:12px;line-height:1.7;color:#adbeaf;margin-top:10px}.login-card>small{display:block;font-size:10px;line-height:1.6;color:#9cac9d;text-align:center;margin-top:16px}.login-card .primary-button{margin-top:21px}@media(min-width:1600px){.dashboard{padding-top:50px}.dashboard-grid{gap:30px}.vehicle-art{padding-top:45px}.control-card{padding:26px}.climate-buttons button{min-height:150px}}@media(max-width:1150px){.sidebar{width:208px;padding:27px 18px}.brand{font-size:11px;letter-spacing:1px;gap:5px}.main-wrap{margin-left:208px}.topbar{padding:0 28px}.dashboard{padding:30px 28px 0}.dashboard-grid{grid-template-columns:1fr 1fr;gap:16px}.connection-row{padding:20px 18px 0}.control-card{padding:18px}.climate-buttons{gap:8px}.climate-buttons button{padding:15px 10px}.climate-buttons small{font-size:8px}.vehicle-art{padding-top:46px}.metrics{margin:0 18px}.metric strong{font-size:32px}.metric:nth-child(2n){padding-left:18px}.metric{padding-top:28px;padding-bottom:28px}}@media(max-width:900px){.sidebar{display:none}.main-wrap{margin:0}.topbar{height:74px;padding:0 24px}.mobile-brand{display:flex;font-size:12px;letter-spacing:1.4px}.desktop-title{display:none}.dashboard{max-width:760px;padding:28px 24px 0}.login-page{padding-top:36px}}@media(max-width:620px){.topbar{height:72px;padding:env(safe-area-inset-top) 20px 0;height:calc(72px + env(safe-area-inset-top))}.brand{gap:6px;font-size:10px;letter-spacing:1.5px}.brand svg{width:30px;height:30px}.top-actions{gap:8px}.top-actions .icon-button{width:42px;height:44px;border:0}.demo-tag{font-size:8px;padding:4px 6px;letter-spacing:1px}.dashboard{padding:25px 18px 0}.eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:9px}h1{font-size:26px}.page-heading{margin-bottom:18px}.refresh-button{width:44px;height:44px;padding:0;justify-content:center}.refresh-button span{display:none}.demo-banner{font-size:10px;padding:10px 11px;margin-bottom:16px;gap:7px}.dashboard-grid{display:flex;flex-direction:column;gap:18px}.vehicle-panel,.controls{width:100%}.connection-row{padding:17px 16px 0;gap:8px}.connection{font-size:9px}.connection-row small{font-size:8px}.vehicle-art{padding-top:9px}.vehicle-status{margin:3px 12px 17px;font-size:9px;gap:12px}.vehicle-status>span+span{padding-left:12px}.metrics{margin:0 16px}.metric{padding:16px 15px 15px 0}.metric:nth-child(2n){padding-left:20px}.metric strong{font-size:31px;margin-top:4px;line-height:1.3}.metric-label{font-size:10px;gap:6px}.metric-label svg{width:15px}.metric strong small{font-size:12px}.metric>span{font-size:8px;margin-top:6px}.metric progress{margin-top:9px}.details-button{padding:13px 16px;font-size:10px}.control-card{padding:18px}.controls{gap:13px}.section-heading h2{font-size:15px}.section-heading p{font-size:10px}.climate-buttons{margin-top:18px;gap:11px}.climate-buttons button{min-height:117px;padding:15px}.climate-buttons span{font-size:14px;margin-top:11px}.climate-buttons small{font-size:8px}.climate-buttons svg{width:23px;height:23px}.paired-buttons{margin-top:16px}.paired-buttons button{min-height:51px;font-size:12px}.secure-note{font-size:9px}.history-card{margin-top:23px}.history-heading{padding:17px 16px}.history-heading h2{font-size:12px}.history-heading>span{font-size:8px}.empty-history{padding:20px 16px}.history-row{padding:16px}.history-row time{font-size:9px}.footer{font-size:7px;padding-bottom:calc(23px + env(safe-area-inset-bottom));letter-spacing:1px}.footer span+span{font-size:8px;letter-spacing:0}dialog{padding:28px 23px}dialog h2{font-size:22px}.login-page{padding:32px 18px}.login-page h1{font-size:30px}.login-mark svg{height:50px;width:50px;margin-bottom:18px}.login-car{margin:-8px auto -12px}.login-card{padding:23px}.login-card h2{font-size:17px}.login-description{font-size:12px}.login-page .eyebrow{font-size:9px}.error-banner{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:620px){.topbar{height:calc(64px + env(safe-area-inset-top))}.dashboard{padding-top:20px}.page-heading,.demo-banner{margin-bottom:14px}.vehicle-status{display:none}.connection-row{padding:15px 14px 0}.connection{font-size:11px}.connection-row small{font-size:10px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:13px 14px 0}.metric,.metric:nth-child(2n),.metric:nth-child(n+3){border:0;padding:15px 6px 14px}.metric:first-child{padding-left:0}.metric:last-child{padding-right:0}.metric-label{font-size:10px;gap:4px;white-space:nowrap}.metric-label svg{display:none}.metric strong{font-size:25px;margin-top:8px;letter-spacing:-.7px}.metric strong small{font-size:11px;margin-left:3px}.metric progress,.metric>span{display:none}.details-button{min-height:44px;font-size:11px}.control-card{padding:16px}.section-heading h2{font-size:16px}.section-heading p{font-size:12px;margin-top:5px}.climate-buttons{margin-top:14px}.climate-buttons button{min-height:99px;padding:13px}.climate-buttons span{font-size:15px;margin-top:10px}.climate-buttons small{display:none}.paired-buttons{margin-top:14px}.paired-buttons button{font-size:14px;min-height:48px}.secure-note{font-size:11px}.history-heading h2{font-size:14px}.history-heading>span{font-size:10px}.command-copy strong{font-size:14px}.command-copy p,.command-copy small{font-size:12px}.history-row time{font-size:11px}.empty-history p{font-size:14px}.empty-history small{font-size:12px}.footer{font-size:9px}.footer span+span{font-size:9px}}:root{background:#111216;color:#eef0f4;--muted:#aaabb5;--border:#303138;--accent:#d29ba9}.sidebar{background:#16171c}.brand b,.desktop-title,.eyebrow{color:#b3aab3}.side-car{background:#302229;border-color:#533940}.side-dot{background:#cf8b9f}.side-note,.side-version,.side-label{color:#a9a4ad}.icon-button:hover{background:#2d242b}.control-card,.history-card,.login-card{background:#1b1c22}.control-card,.history-card,.vehicle-panel,.login-card{border-color:var(--border)}.vehicle-panel{background:#1a1b21}.connection-row{padding:20px 22px 0;align-items:flex-start}.connection{font-size:12px;line-height:1.4}.connection-row small{font-size:10px;line-height:1.5;color:#b5b2bd;max-width:48%;text-align:right}.connection.data-fresh{color:#a5d3b4}.connection.data-fresh>span{background:#a5d3b4}.connection.data-stale,.connection.data-unknown{color:#ebc17f}.connection.data-stale>span,.connection.data-unknown>span{background:#ebc17f}.connection.data-error{color:#efadb6}.connection.data-error>span{background:#efadb6}.connection.data-updating{color:#c9bed0}.connection.data-updating>span{background:#c9bed0}.freshness-times{display:grid;gap:9px;margin:16px 22px 0;font-size:12px}.freshness-times>div{display:flex;justify-content:space-between;gap:12px}.freshness-times dt{color:#aaa9b5}.freshness-times dd{font-variant-numeric:tabular-nums;color:#dedce4;white-space:nowrap}.freshness-note{margin:12px 22px 0;color:#d7b988;font-size:11px;line-height:1.6;border-left:2px solid #8f6b3e;padding-left:10px}.vehicle-art{display:block;position:relative;padding:20px 16px 5px;background:radial-gradient(ellipse at 50% 60%,#68344328,#1a1b2100 70%)}.car{display:block;width:100%;height:auto;aspect-ratio:922/423;object-fit:contain}.vehicle-status{margin:14px 15px 20px;color:#c1bac6}.vehicle-status>span+span{border-color:#42404a}.metrics{border-color:#34333e}.metric:nth-child(2n),.metric:nth-child(n+3){border-color:#34333e}.metric-label,.metric strong small,.metric>span{color:#b6b0bd}.metric progress,.metric progress::-webkit-progress-bar{background:#38303a}.metric progress::-webkit-progress-value{background:#bd7c90}.metric:nth-child(2) progress::-webkit-progress-value{background:#b19aa3}.metric progress::-moz-progress-bar{background:#bd7c90}.details-button{background:#24212a;border-color:#3c3541;color:#d0bfce}.details-button:hover{background:#302731}.paired-buttons button{background:#27272f;border-color:#43424d}.paired-buttons button:not(:disabled):hover{background:#38303a;border-color:#956174}.section-heading p,.secure-note{color:#b7b1bd}.section-heading>svg{color:#b1a8b6}.demo-banner{background:#30242c;border-color:#513442;color:#dfb9c8}.demo-tag{border-color:#735362;color:#e1b6c6}.notice-banner{background:#2b281f;border-color:#4b4230;color:#e2cfa8}.error-banner{background:#321f26;border-color:#70424f;color:#efb2bd}.status-done .command-icon{background:#24392e;color:#a5d3b4}.status-unknown .command-icon{background:#3a3022;color:#edc585}.status-error .command-icon{background:#3c252c;color:#efabb6}.primary-button{background:#d19bab;border-color:#d19bab;color:#271820}.primary-button:hover{background:#e1b5c1}.cancel-button{border-color:#51424e;color:#d8cbd6}.dialog-symbol{background:#3b2935;color:#e0b1c2}dialog{background:#1e1d25;border-color:#5d4557}input{background:#141319;border-color:#5c4a59}.field{color:#d2c6d0}.detail-list dt{color:#b9b1c1}@media(max-width:620px){.connection-row{padding:15px 14px 0;gap:7px}.connection{font-size:11px}.connection-row small{font-size:10px;max-width:48%}.freshness-times{margin:14px 14px 0;font-size:11px;gap:8px}.freshness-note{margin:11px 14px 0;font-size:10px}.vehicle-art{display:block;padding:12px 12px 0}.vehicle-status{display:none}.metrics{margin-top:9px}.metric,.metric:nth-child(2n),.metric:nth-child(n+3){border:0}.metric-label{color:#bcb5c4}.metric strong{font-size:26px}}.control-ack{display:flex;gap:12px;align-items:flex-start;margin:18px 0;font-size:13px;line-height:1.6;color:#d2c6d0}.control-ack input{width:22px;height:22px;flex:none;accent-color:#d19bab}@media(max-width:620px){.top-actions .icon-button{width:44px}}
