@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101114;--panel:#1a1b20;--panel2:#24252b;--border:#343437;--text:#f0f0f3;--muted:#98989b;--accent:#ff6570;--accent-solid:#e82127;--accent-dark:#351c21;--orange:#ffc077;--red:#f39285;--font:'DM Sans',system-ui,-apple-system,sans-serif;--display:'Space Grotesk',var(--font);--rail:86px;--top:82px;--footer:44px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px}body{overflow:hidden}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,select{touch-action:manipulation}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.app-shell{height:100dvh;min-height:540px;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);grid-template-rows:var(--top) minmax(0,1fr) var(--footer)}
.topbar{grid-column:1/-1;display:flex;align-items:center;gap:24px;padding:0 30px;border-bottom:1px solid var(--border);background:#17171a;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:29px;font-weight:700;letter-spacing:-1.5px;line-height:1}.brand-mark{width:42px;height:42px;display:grid;place-items:center;background:var(--accent-solid);border-radius:12px;color:#fff}.brand-mark svg{width:28px;height:28px;stroke-width:2.4}.brand-light{font-weight:400;color:#b7b7ba}.brand small{display:block;font-family:var(--font);font-size:8px;font-weight:500;letter-spacing:1.8px;margin-top:7px;color:var(--muted)}.top-divider{height:28px;width:1px;background:var(--border)}.vehicle-name{font-size:11px;font-weight:650;letter-spacing:1.6px}.vehicle-name>span{display:block;margin-top:5px;letter-spacing:0;color:var(--muted);font-size:10px;font-weight:450}.top-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.mode-pill{display:flex;align-items:center;gap:9px;border:1px solid #444447;border-radius:100px;padding:10px 14px;font-size:12px;background:#252528;color:#d5d5d8;white-space:nowrap}.mode-pill svg{width:12px;height:12px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.dot.off{background:#707073}.clock{font-family:var(--display);font-size:18px;font-weight:500;letter-spacing:-.6px}.icon-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border-radius:11px}.icon-button:hover{background:var(--panel2);color:var(--text)}.avatar{width:36px;height:36px;border-radius:50%;background:#363639;color:#dddde0;border:1px solid #4f4f52;font-weight:600;font-size:13px}
.rail{grid-row:2;display:flex;flex-direction:column;gap:9px;align-items:center;padding:24px 10px 16px;border-right:1px solid var(--border);background:#17171a;z-index:4}.nav-button{position:relative;width:64px;min-height:59px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border-radius:12px;color:#89898c;transition:background .2s,color .2s}.nav-button svg{width:22px;height:22px}.nav-button span{font-size:9px;letter-spacing:.2px}.nav-button:hover{background:var(--panel2);color:var(--text)}.nav-button.active{background:#2b2b2e;color:var(--accent)}.nav-button.active:before{content:'';position:absolute;left:-10px;height:23px;width:3px;border-radius:2px;background:var(--accent)}.rail-bottom{margin-top:auto;display:flex;flex-direction:column;gap:5px}.count{position:absolute;right:9px;top:7px;background:#50432c;color:#ffca81;padding:1px 4px;border-radius:5px;font-size:8px;font-style:normal}
main{min-height:0;min-width:0;position:relative}.view{height:100%;min-height:0}.cockpit-view{display:grid;grid-template-columns:300px minmax(0,1fr);padding:22px;gap:22px}.instruments{display:flex;flex-direction:column;min-height:0;padding:8px 6px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:550;letter-spacing:2px;color:var(--muted)}.live-tag{display:flex;gap:6px;align-items:center;letter-spacing:1px;font-size:8px;color:var(--accent)}.speed-block{padding-top:12px;text-align:center}.speed{font-family:var(--display);font-size:150px;font-weight:500;letter-spacing:-10px;line-height:1.05;display:block;font-variant-numeric:tabular-nums}.speed-unit{font-size:13px;color:#c3c3c6;display:block;letter-spacing:1px;margin-top:-1px}.speed-note{font-size:9px;color:var(--muted);margin-top:10px}.speed-spark{display:grid;grid-template-columns:1fr 1fr;row-gap:8px;margin:20px 0 24px}.speed-spark>svg{grid-column:1/-1;width:100%;height:40px;stroke:none}.speed-spark>span{font-size:8px;letter-spacing:1px;color:var(--muted);text-align:left}.speed-spark>span:last-child{letter-spacing:0;text-align:right}.trip-mini{display:grid;grid-template-columns:1fr 1fr;padding:0 0 20px;border-bottom:1px solid var(--border)}.trip-mini>div{text-align:center}.trip-mini>div+div{border-left:1px solid var(--border)}.trip-mini span{font-family:var(--display);font-size:25px;font-weight:500;letter-spacing:-.7px;display:block;font-variant-numeric:tabular-nums}.trip-mini small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.energy-mini{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;margin-top:22px}.energy-top{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1px;color:#c6c6c9}.energy-top svg{height:17px;width:20px;color:var(--accent)}.mini-source{margin-left:auto;font-size:7px;color:var(--muted);letter-spacing:.5px}.energy-main{display:flex;align-items:center;justify-content:space-between;margin:14px 0 16px}.energy-main>strong{font-size:36px;font-family:var(--display);font-weight:500;letter-spacing:-1.5px}.energy-main>strong span{font-size:17px;color:var(--muted);margin-left:4px}.energy-main>span{text-align:right;font-size:14px;font-family:var(--display)}.energy-main small{display:block;font-size:8px;color:var(--muted);font-family:var(--font);margin-top:5px}.battery-track{width:100%;height:5px;background:#37373a;border-radius:6px;overflow:hidden}.battery-track i{display:block;background:var(--accent);height:100%;border-radius:6px;transition:width .5s}.energy-footer{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:var(--muted);margin-top:14px}.energy-footer b{font-weight:500;color:#cccccf;margin-left:7px}.energy-footer svg{width:13px;height:13px}.weather-mini{padding:18px 3px 0;display:flex;align-items:center;gap:13px;width:100%;text-align:left;margin-top:auto;padding-bottom:4px}.weather-icon{width:38px;height:38px;background:#252528;border-radius:12px;display:grid;place-items:center;color:#dbc477}.weather-mini strong{display:block;font-size:20px;font-family:var(--display);font-weight:500}.weather-mini small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.weather-arrow{margin-left:auto;width:15px;height:15px;color:var(--muted)}
.map-stage{min-width:0;position:relative;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:#1e1e21;isolation:isolate}#map{position:absolute;inset:0;z-index:1}.map-fallback{position:absolute;inset:0;z-index:0}.map-fallback>svg{width:100%;height:100%;stroke:none}.fallback-label{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:11px;letter-spacing:.2px;color:#9a9a9d;background:#1e1e21cc;padding:12px;z-index:2}.map-stage:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,#1515183d 0%,transparent 28%,transparent 58%,#15151860 100%)}.map-top{position:absolute;top:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px;z-index:3}.destination-search{height:54px;display:flex;align-items:center;gap:12px;background:#18181bed;border:1px solid #4e4e51;border-radius:13px;padding:0 18px;box-shadow:0 4px 20px #0002;width:min(380px,calc(100% - 58px));text-align:left;backdrop-filter:blur(12px)}.destination-search>svg{width:19px;height:19px;color:#a5a5a8}.destination-search>span{color:#e0e0e3;font-size:13px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.destination-search kbd{font-family:var(--font);color:var(--muted);border:1px solid #444447;border-radius:5px;padding:1px 5px;font-size:13px}.map-style-button{width:44px;height:44px;border-radius:12px;background:#1d1d20e8;border:1px solid #47474a;font-size:11px;letter-spacing:1px;margin-left:auto}.map-controls{position:absolute;right:20px;top:110px;z-index:3;display:flex;flex-direction:column;gap:7px}.map-controls>button{width:44px;height:44px;display:grid;place-items:center;background:#1d1d20ef;border:1px solid #48484b;border-radius:12px;font-size:24px;color:#cacacd;backdrop-filter:blur(12px)}.map-controls>button.active{background:var(--accent-solid);color:#202023;border-color:var(--accent)}.map-controls svg{width:19px;height:19px}.north{font-family:var(--display);font-size:11px;text-align:center;font-weight:500;color:#c0c0c3;margin-top:4px}.map-location{position:absolute;left:20px;top:92px;z-index:3;display:flex;align-items:center;gap:8px;color:#cccccf;font-size:10px;text-shadow:0 1px 5px #000;background:#1a1a1dc9;padding:7px 11px;border-radius:30px}.location-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.map-location>span:last-child{color:#acacaf;border-left:1px solid #68686b;padding-left:9px;margin-left:4px}.road-alert{position:absolute;left:20px;right:20px;bottom:97px;display:flex;align-items:center;gap:16px;z-index:3;padding:16px 18px;text-align:left;border:1px solid #7b6441;border-radius:14px;background:#242427ed;box-shadow:0 6px 24px #0002;backdrop-filter:blur(10px)}.alert-symbol{width:43px;height:43px;flex-shrink:0;background:#443b29;border:1px solid #685332;color:#ffd093;border-radius:12px;display:grid;place-items:center}.alert-symbol svg{height:22px;width:22px}.alert-content{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.eyebrow{display:block;font-size:9px;color:var(--muted);letter-spacing:1.7px;font-weight:550}.alert-content .eyebrow{font-size:7px;color:#ceb18a;letter-spacing:1px;margin-bottom:2px}.alert-content>strong{font-size:17px;letter-spacing:-.3px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-content>span:last-child{font-size:9px;color:#a8a8ab}.alert-distance{font-size:24px;font-family:var(--display);color:#ffcf93;letter-spacing:-1px;white-space:nowrap}.alert-distance small{font-size:12px;letter-spacing:0;margin-left:2px}.alert-chevron{width:17px;height:17px;color:#bea880}.road-alert.clear{border-color:#4c4c4f;background:#1f1f22ed}.road-alert.clear .alert-symbol{color:var(--accent);background:#2f2f32;border-color:#48484b}.road-alert.clear .eyebrow{color:var(--muted)}.road-alert.clear .alert-content>strong{font-size:15px}.route-bottom{position:absolute;bottom:22px;left:20px;right:20px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:12px;padding:14px 16px;background:#1c1c1fed;border:1px solid #4a4a4d;backdrop-filter:blur(12px)}.route-bottom>div{display:flex;align-items:center;gap:11px;min-width:0}.route-dot{width:6px;height:6px;border:1px solid var(--accent);border-radius:50%;box-shadow:0 0 0 5px #a4a4a712;flex-shrink:0}.route-bottom>div>span:last-child{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-bottom small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.record-button{display:flex;align-items:center;gap:6px;font-size:9px;border:1px solid #47474a;border-radius:8px;padding:10px;white-space:nowrap;color:#c6c6c9}.record-button i{display:inline-block;width:5px;height:5px;background:#a0a0a3;border-radius:50%}.record-button.recording{border-color:#88554e;color:#efb1a6}.record-button.recording i{background:#ee8b7a;animation:blink 2s infinite}.route-instruction{position:absolute;top:88px;left:20px;z-index:3;display:flex;align-items:center;gap:12px;background:#afafb2;color:#1e1e21;max-width:calc(100% - 90px);border-radius:13px;padding:13px;box-shadow:0 5px 20px #0002}.route-instruction~.map-location{top:174px}.route-instruction[hidden]~.map-location{top:92px}.turn-icon{width:38px;height:38px;display:grid;place-items:center}.turn-icon svg{width:30px;height:30px;stroke-width:2.5}.route-instruction>div{display:flex;flex-direction:column;gap:3px;min-width:0}.route-instruction strong{font-family:var(--display);font-size:23px;font-weight:500}.route-instruction>div>span{font-size:10px;max-width:250px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.route-instruction .icon-button{color:#3e3e41;width:30px}.car-marker{width:36px;height:36px;border-radius:50%;background:var(--accent);display:grid;place-items:center;box-shadow:0 0 0 10px #e8212725,0 3px 15px #0006;color:#fff}.car-marker svg{width:24px;height:24px;fill:currentColor;stroke-width:1.3}.incident-marker{width:30px;height:30px;background:#ffcb88;border-radius:9px;display:grid;place-items:center;color:#40331e;box-shadow:0 2px 8px #0004}.incident-marker svg{width:17px;height:17px}.zone-marker{width:100px;height:100px;border:2px dashed #93bae5;border-radius:50%;background:#93bae526;pointer-events:none}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{bottom:0}.maplibregl-ctrl-attrib{font-size:8px!important;background:#d2d2d5!important;color:#303033!important}.maplibregl-ctrl-attrib a{color:#303033!important}.maplibregl-popup-content{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:16px;font-size:12px}.maplibregl-popup-tip{border-top-color:var(--panel)!important}
.statusbar{grid-column:1/-1;display:flex;align-items:center;gap:32px;border-top:1px solid var(--border);padding:0 26px;font-size:10px;color:#a5a5a8;z-index:5;background:#17171a}.statusbar>div{display:flex;gap:7px;align-items:center;white-space:nowrap}.statusbar svg{height:13px;width:13px;color:#87878a}.statusbar small{color:#757578;font-size:9px;margin-left:5px}.statusbar .server-status{margin-left:auto;gap:8px;font-size:9px}.footer-tag{letter-spacing:2px;color:#6b6b6e;font-size:8px}.footer-tag b{font-weight:400;color:#a3a3a6;margin-left:7px}
.page-view{overflow-y:auto;padding:32px 38px 30px;scrollbar-color:#404043 transparent}.page-heading{display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:26px}.page-heading h1{font-family:var(--display);font-size:31px;font-weight:500;letter-spacing:-1.2px;margin:10px 0 8px}.page-heading p{font-size:12px;margin:0;color:var(--muted);line-height:1.6}.button{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:44px;padding:12px 17px;border-radius:10px;font-size:12px;white-space:nowrap;font-weight:550;cursor:pointer}.button svg{width:17px;height:17px}.primary{background:var(--accent-solid);color:#fff}.secondary{background:var(--panel);border:1px solid var(--border);color:#d5d5d8}.button:hover{filter:brightness(1.1)}.compact{font-size:10px;min-height:38px;padding:9px 12px}.full-width{width:100%}.pill{padding:7px 11px;border:1px solid #48484b;border-radius:30px;white-space:nowrap;font-size:9px;letter-spacing:.6px;color:#c2c2c5;background:#27272a}.waze-container{height:calc(100% - 141px);min-height:300px;border-radius:17px;overflow:hidden;border:1px solid var(--border);background:var(--panel)}.waze-container iframe{border:0;width:100%;height:100%;background:var(--panel)}.source-note{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted);margin-top:14px;line-height:1.6}.source-note a{margin-left:auto;color:#c3c3c6;white-space:nowrap}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.filter{padding:9px 15px;border-radius:30px;background:var(--panel);border:1px solid var(--border);font-size:10px;color:var(--muted);min-height:38px}.filter.active{background:#2f2f32;color:var(--accent);border-color:#4d4d50}.alert-list,.trip-list{display:flex;flex-direction:column;gap:12px}.alert-row{display:flex;align-items:center;gap:17px;padding:18px 20px;background:var(--panel);border:1px solid var(--border);border-radius:13px}.alert-row-content{flex:1;min-width:0}.alert-row-content h3{font-size:14px;font-weight:550;margin:0 0 6px}.alert-row-content p{font-size:10px;color:var(--muted);margin:0;line-height:1.6}.alert-row-distance{font-family:var(--display);font-size:22px;white-space:nowrap;color:#eed5af}.alert-source{font-size:8px;padding:5px 7px;border:1px solid #454548;border-radius:5px;color:#9f9fa2}.connector-banner{display:flex;align-items:center;gap:16px;background:#212124;border:1px solid #404043;border-radius:13px;padding:19px;margin-top:24px}.connector-banner>svg{width:25px;height:25px;color:#97979a}.connector-banner>div{flex:1}.connector-banner strong{font-size:11px;font-weight:550;display:block}.connector-banner p{font-size:10px;line-height:1.65;margin:6px 0 0;color:#98989b;max-width:630px}.text-button{font-size:10px;color:#c3c3c6;white-space:nowrap;padding:8px 0}.empty-state{border:1px dashed #404043;border-radius:15px;padding:42px 24px;text-align:center;color:var(--muted)}.empty-state>svg{height:34px;width:34px;color:#9e9ea1}.empty-state h3{font-family:var(--display);font-size:20px;font-weight:500;color:#d9d9dc;letter-spacing:-.5px;margin:16px 0 8px}.empty-state p{font-size:11px;line-height:1.8;max-width:470px;margin:0 auto}.empty-state .button{margin-top:18px}
.vehicle-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:20px}.vehicle-card{padding:22px;background:var(--panel);border:1px solid var(--border);border-radius:17px}.car-art>svg{width:100%;height:auto;stroke:none}.vehicle-battery{display:flex;align-items:center;gap:25px;margin:12px 0 22px}.vehicle-battery>span{font-family:var(--display);font-size:52px;letter-spacing:-2px}.vehicle-battery small{font-size:22px;color:var(--muted);margin-left:4px}.vehicle-battery>div{display:flex;flex-direction:column;gap:6px}.vehicle-battery strong{font-size:15px;font-weight:550}.vehicle-battery>div>span{font-size:9px;color:var(--muted)}.vehicle-note{display:flex;align-items:center;gap:7px;font-size:10px;margin-top:19px;color:#b9b9bc}.vehicle-note svg{height:14px;width:14px}.vehicle-note>span{margin-left:auto;font-size:8px;color:var(--muted)}.telemetry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.telemetry-card{padding:18px;border:1px solid var(--border);background:var(--panel);border-radius:13px;display:flex;flex-direction:column;justify-content:center}.telemetry-card .metric-label{font-size:9px;color:var(--muted)}.metric-value{font-family:var(--display);font-size:28px;font-weight:500;letter-spacing:-1px;margin:10px 0 6px}.metric-value>small{font-family:var(--font);font-size:10px;color:#a5a5a8;margin-left:4px;letter-spacing:0}.metric-source{font-size:7px;color:#818184;line-height:1.6}.telemetry-card.stale{opacity:.6}.meter{height:3px;background:#38383b;border-radius:3px;margin-top:6px}.meter>i{height:100%;display:block;background:var(--accent);border-radius:3px}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.summary-card{padding:20px 22px;background:var(--panel);border:1px solid var(--border);border-radius:13px}.summary-card>span{display:block;color:var(--muted);font-size:10px;margin-bottom:10px}.summary-card>strong{font-family:var(--display);font-weight:500;font-size:29px;letter-spacing:-1px}.summary-card small{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.trip-row{display:grid;grid-template-columns:75px 1fr auto;gap:20px;align-items:center;border:1px solid var(--border);padding:17px 20px;background:var(--panel);border-radius:14px}.trip-thumbnail{width:75px;height:65px;display:grid;place-items:center;background:#2b2b2e;border-radius:8px;overflow:hidden}.trip-thumbnail>svg{width:100%;height:100%;stroke:#afafb2;stroke-width:2;fill:none}.trip-details h3{font-size:13px;font-weight:550;margin:0 0 7px}.trip-details p{font-size:9px;color:var(--muted);margin:0;line-height:1.7}.trip-stats{display:flex;gap:18px;margin-top:9px;color:#bababd;font-size:10px}.trip-row .trip-actions{display:flex;align-items:center;gap:7px}.trip-actions .icon-button{background:#28282b;width:38px;height:38px}.trip-actions .icon-button svg{width:16px;height:16px}.trip-detail{grid-column:1/-1;border-top:1px solid var(--border);padding-top:15px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.trip-detail .button{min-height:36px;padding:9px 12px;font-size:10px}.trip-tag{font-size:7px;margin-left:7px;border:1px solid #535356;padding:3px 5px;color:#a7a7aa;border-radius:4px;font-weight:400;white-space:nowrap}.subheading{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.5px;margin:25px 0 14px}.favorites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.favorite-card{position:relative;min-height:140px;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;border:1px solid var(--border);background:var(--panel);border-radius:14px;padding:21px;text-align:left}.favorite-card:hover{border-color:#6a6a6d;background:#28282b}.favorite-card>svg{width:25px;height:25px;color:var(--accent)}.favorite-card>span>strong{display:block;font-size:14px;font-weight:550}.favorite-card>span>small{display:block;margin-top:6px;font-size:9px;color:var(--muted)}.favorite-card .card-arrow{position:absolute;right:17px;top:22px;width:15px;height:15px;color:#767679}.favorite-delete{position:absolute;right:12px;bottom:14px;color:#8c8c8f;z-index:1;font-size:10px;padding:5px}.favorite-wrap{position:relative}.favorite-wrap .favorite-card{width:100%}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-card{padding:21px 23px;border:1px solid var(--border);border-radius:15px;background:var(--panel);min-width:0}.settings-card h2{font-family:var(--display);font-size:17px;letter-spacing:-.5px;font-weight:500;margin:0 0 13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #313134;padding:15px 0;font-size:11px}.setting-row:last-of-type{border-bottom:0}.setting-row strong{font-size:11px;font-weight:550;display:block}.setting-row small{font-size:9px;color:var(--muted);line-height:1.5;display:block;margin-top:5px}.switch{width:38px;height:22px;background:#47474a;border-radius:20px;position:relative;flex-shrink:0;border:1px solid #58585b}.switch:before{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#b4b4b7;transition:transform .2s}.switch.on{background:#6c6c6f;border-color:#838386}.switch.on:before{background:#e1e1e4;transform:translateX(16px)}.setting-row select,.setting-row input{background:#28282b;border:1px solid #454548;border-radius:8px;color:#dadadd;padding:8px 9px;font-size:10px;max-width:110px}.setting-row input{width:65px}.connection-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:13px 0;border-bottom:1px solid #313134;gap:10px}.connection-state{font-size:8px;display:flex;align-items:center;gap:6px;color:#929295;text-align:right}.connection-state.connected{color:var(--accent)}.settings-card>.full-width{margin-top:18px}.settings-footnote{font-size:9px;color:#858588;line-height:1.8;margin-top:17px}.danger{color:#f1a293}
dialog{border:1px solid #505053;border-radius:20px;background:#1e1e21;color:var(--text);padding:28px;width:min(600px,calc(100% - 32px));max-height:90dvh;box-shadow:0 30px 100px #0007;overflow-y:auto}dialog::backdrop{background:#08080bb3;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.dialog-head h2{font-family:var(--display);font-size:24px;font-weight:500;letter-spacing:-.7px;margin:7px 0 0}.dialog-head>.icon-button{align-self:flex-start}.search-input{display:flex;align-items:center;gap:10px;border:1px solid #505053;background:#29292c;border-radius:12px;padding:6px 7px 6px 14px}.search-input>svg{width:18px;height:18px;color:#b1b1b4}.search-input input{background:none;border:0;outline:none!important;min-width:0;flex:1;color:var(--text);padding:9px 0;font-size:12px}.search-input input::placeholder{color:#848487}.search-input .button{font-size:11px;min-height:38px;padding:9px 13px}.dialog-note{font-size:9px;line-height:1.8;color:#858588;margin-top:22px}dialog h3{font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:500;margin-top:25px}.quick-destinations{display:flex;gap:10px;flex-wrap:wrap}.quick-destinations>button{background:#303033;border:1px solid #49494c;padding:12px;border-radius:9px;font-size:11px;color:#ceced1;display:flex;align-items:center;gap:8px}.quick-destinations svg{width:14px;height:14px}.search-result{width:100%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #3b3b3e;text-align:left;padding:15px 3px;color:#dadadd;font-size:12px;gap:20px}.search-result small{font-size:9px;color:var(--muted);margin-top:5px;display:block}.search-result svg{width:16px;height:16px;color:#969699}.mode-choice{display:flex;align-items:center;gap:17px;padding:22px 16px;border:1px solid #404043;border-radius:13px;width:100%;text-align:left;margin-top:12px;background:#28282b}.mode-choice>svg{width:26px;height:26px;color:var(--accent)}.mode-choice>span{flex:1}.mode-choice strong{display:block;font-size:14px;font-weight:500}.mode-choice small{display:block;font-size:10px;color:#97979a;line-height:1.7;margin-top:5px}.mode-choice>svg:last-child{width:16px;height:16px}.form-label{font-size:10px;color:#bfbfc2;display:block;margin:17px 0}.form-label input{width:100%;display:block;margin-top:8px;border:1px solid #4d4d50;background:#2a2a2d;border-radius:10px;min-height:44px;color:var(--text);padding:12px;font-size:12px}.form-error{font-size:11px;color:#f4aa96;line-height:1.6}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}dialog>p{font-size:12px;color:#a9a9ac;line-height:1.8}.toast{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);z-index:20;max-width:calc(100% - 32px);background:#d6d6d9;color:#242427;border:1px solid #bebec1;border-radius:12px;padding:15px 23px;font-size:12px;box-shadow:0 5px 30px #0006;text-align:center}
.focus-mode .rail{display:none}.focus-mode .app-shell{grid-template-columns:0 minmax(0,1fr)}.focus-mode .energy-mini,.focus-mode .weather-mini,.focus-mode .trip-mini,.focus-mode .speed-spark{display:none}.focus-mode .instruments{justify-content:center}.focus-mode .cockpit-view{grid-template-columns:240px minmax(0,1fr)}.focus-mode .speed{font-size:170px}.focus-mode .speed-note{font-size:12px}.focus-mode #fullscreen{background:#2b2b2e;color:var(--accent)}@keyframes blink{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:1500px){.cockpit-view{grid-template-columns:340px minmax(0,1fr);padding:30px;gap:30px}.speed{font-size:178px}.speed-block{padding-top:25px}.energy-mini{padding:22px}.page-view{padding:40px 52px}.map-top{top:25px;left:25px;right:25px}.road-alert{left:25px;right:25px;bottom:107px;padding:21px}.route-bottom{left:25px;right:25px;bottom:25px;padding:17px}}
@media(max-width:1100px){:root{--rail:72px;--top:70px;--footer:36px}.topbar{padding:0 20px;gap:18px}.brand{font-size:25px}.brand-mark{height:36px;width:36px;border-radius:10px}.brand-mark svg{width:23px;height:23px}.brand small{font-size:6px;letter-spacing:1.5px}.top-actions{gap:14px}.vehicle-name{font-size:9px}.vehicle-name>span{font-size:8px}.mode-pill{font-size:10px;padding:9px 11px}.clock{font-size:16px}.rail{padding:17px 7px 11px;gap:6px}.nav-button{width:57px;min-height:52px}.nav-button span{font-size:8px}.nav-button svg{width:20px;height:20px}.nav-button.active:before{left:-7px}.cockpit-view{grid-template-columns:224px minmax(0,1fr);padding:17px;gap:17px}.instruments{padding:5px 3px 0}.speed{font-size:117px;letter-spacing:-8px}.speed-block{padding-top:14px}.speed-spark{margin:14px 0 18px}.speed-spark>svg{height:34px}.trip-mini{padding-bottom:16px}.trip-mini span{font-size:23px}.energy-mini{padding:14px;margin-top:18px;border-radius:12px}.energy-main{margin:10px 0 12px}.energy-main>strong{font-size:31px}.energy-footer{margin-top:11px}.weather-mini{padding-top:14px}.weather-icon{width:31px;height:31px}.weather-mini strong{font-size:17px}.map-stage{border-radius:15px}.map-top{top:15px;left:15px;right:15px;gap:8px}.destination-search{height:48px;border-radius:11px;padding:0 13px;width:calc(100% - 50px);gap:10px}.destination-search>span{font-size:11px}.map-style-button{width:40px;height:40px;font-size:10px}.map-controls{right:15px;top:97px}.map-controls>button{width:40px;height:40px;border-radius:10px}.map-location{left:15px;top:79px;font-size:8px}.route-instruction{left:15px;top:78px;padding:10px;max-width:calc(100% - 78px)}.route-instruction~.map-location{top:154px}.route-instruction[hidden]~.map-location{top:79px}.road-alert{left:15px;right:15px;bottom:87px;padding:13px;gap:11px}.alert-symbol{width:35px;height:35px;border-radius:9px}.alert-content>strong{font-size:14px}.alert-content .eyebrow{font-size:6px;letter-spacing:.8px}.alert-distance{font-size:22px}.alert-chevron{width:12px;height:12px}.route-bottom{bottom:17px;left:15px;right:15px;padding:12px;gap:7px}.route-bottom>div>span:last-child{font-size:9px}.route-bottom small{font-size:7px}.record-button{font-size:8px;padding:9px 7px}.statusbar{padding:0 20px;gap:22px;font-size:9px}.statusbar small{font-size:8px}.page-view{padding:25px}.page-heading h1{font-size:27px}.page-heading p{font-size:11px}.settings-grid{gap:14px}.settings-card{padding:17px}.setting-row{gap:9px}.setting-row strong{font-size:10px}.setting-row small{font-size:8px}.vehicle-grid{gap:14px}.telemetry-card{padding:14px}.metric-value{font-size:25px}.vehicle-battery{gap:17px}.vehicle-battery>span{font-size:43px}.vehicle-note{font-size:9px}.vehicle-note>span{display:none}.favorites-grid{gap:10px}.favorite-card{min-height:123px;padding:17px}}
@media(max-height:700px) and (min-width:701px){.rail{gap:2px;padding-top:10px;padding-bottom:6px}.nav-button{min-height:47px}.nav-button svg{width:19px;height:19px}.cockpit-view{padding:14px;gap:14px}.speed{font-size:100px;letter-spacing:-6px}.speed-block{padding-top:7px}.speed-note{margin-top:5px}.speed-spark{margin:9px 0 13px}.speed-spark>svg{height:25px}.speed-spark>span{font-size:7px}.trip-mini{padding-bottom:13px}.trip-mini span{font-size:21px}.trip-mini small{font-size:8px}.energy-mini{padding:12px;margin-top:13px}.energy-main{margin:8px 0 10px}.energy-main>strong{font-size:28px}.energy-top{font-size:8px}.energy-main>span{font-size:12px}.energy-footer{margin-top:10px}.weather-mini{padding-top:12px}.weather-mini small{font-size:8px}.weather-icon{height:29px;width:29px}.page-heading{margin-bottom:20px}.page-heading h1{font-size:25px;margin:6px 0}.waze-container{height:calc(100% - 120px);min-height:230px}}
@media(max-width:850px) and (min-width:701px){.top-divider,.vehicle-name{display:none}.cockpit-view{grid-template-columns:200px minmax(0,1fr)}.top-actions{gap:12px}.section-heading{font-size:8px}.mini-source{font-size:6px}.energy-mini{padding:12px}.road-alert{padding:11px;gap:9px}.alert-content>strong{font-size:13px}.alert-distance{font-size:18px}.alert-content>span:last-child{font-size:8px}.alert-content .eyebrow{font-size:5.5px}.route-bottom>div{gap:7px}.record-button{font-size:7px}.route-bottom>div>span:last-child{font-size:8px}.statusbar{gap:16px}.footer-tag{display:none}.vehicle-grid{grid-template-columns:1fr}.telemetry-grid{grid-template-columns:repeat(3,1fr)}.vehicle-card .car-art{max-width:320px;margin:0 auto}.settings-grid{grid-template-columns:1fr}.favorites-grid{grid-template-columns:repeat(2,1fr)}.page-view{padding:23px}.connector-banner{padding:15px}.connector-banner p{font-size:9px}.trip-row{gap:13px;padding:15px}.trip-row .trip-actions{gap:4px}}
@media(max-width:700px){:root{--rail:0px;--top:68px;--footer:62px}.app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:68px minmax(0,1fr) 62px;min-height:600px}.topbar{padding:0 16px;gap:10px}.brand{font-size:25px;gap:8px}.brand-mark{width:33px;height:33px}.brand small{display:none}.top-divider,.vehicle-name,.clock,#fullscreen{display:none}.top-actions{gap:10px}.mode-pill{font-size:9px;padding:8px 10px}.avatar{width:31px;height:31px;font-size:11px}.rail{grid-row:3;grid-column:1;flex-direction:row;justify-content:space-around;gap:0;padding:3px 6px;border-right:0;border-top:1px solid var(--border)}.nav-button{width:auto;flex:1;min-height:52px;border-radius:9px;gap:5px}.nav-button svg{width:20px;height:20px}.nav-button span{font-size:7px}.nav-button.active:before{display:none}.rail-bottom{display:none}.count{top:3px;right:8px}.statusbar{display:none}main{grid-row:2;grid-column:1}.cockpit-view{grid-template-columns:1fr;grid-template-rows:116px minmax(0,1fr);gap:10px;padding:12px}.instruments{display:grid;grid-template-columns:1.2fr .85fr;grid-template-rows:1fr;gap:12px;padding:0;position:relative}.section-heading,.speed-spark,.speed-note,.trip-mini,.weather-mini{display:none}.speed-block{display:flex;align-items:baseline;gap:9px;text-align:left;padding:12px 16px;border:1px solid var(--border);border-radius:13px;background:var(--panel);overflow:hidden}.speed{font-size:73px;letter-spacing:-4px;line-height:1.1}.speed-unit{display:inline-block;font-size:11px;color:var(--muted)}.energy-mini{margin:0;padding:13px;border-radius:13px}.energy-main{margin:7px 0 9px}.energy-main>strong{font-size:29px}.energy-main>span{font-size:10px}.energy-main small,.energy-footer,.mini-source{display:none}.energy-top{font-size:7px}.energy-top svg{width:17px}.map-top{top:13px;left:13px;right:13px}.destination-search{height:44px}.destination-search kbd{display:none}.map-style-button{height:36px;width:36px}.map-location{left:13px;top:71px}.map-controls{right:13px;top:81px;gap:6px}.map-controls>button{width:36px;height:36px;border-radius:9px}.map-controls>button>svg{height:17px;width:17px}.road-alert{left:13px;right:13px;bottom:82px;padding:11px;gap:10px}.alert-content .eyebrow{font-size:5px;letter-spacing:.8px}.alert-content>strong{font-size:13px}.alert-content>span:last-child{font-size:8px}.alert-symbol{height:32px;width:32px;border-radius:9px}.alert-distance{font-size:19px}.alert-chevron{display:none}.route-bottom{left:13px;right:13px;bottom:15px;padding:11px}.route-bottom>div>span:last-child{font-size:8px}.route-bottom small{font-size:7px}.record-button{font-size:7px;padding:9px 7px}.route-instruction{left:13px;top:69px;padding:10px;max-width:calc(100% - 71px)}.route-instruction strong{font-size:18px}.route-instruction>div>span{font-size:8px;max-width:155px}.route-instruction~.map-location{top:139px}.route-instruction[hidden]~.map-location{top:71px}.turn-icon svg{height:24px;width:24px}.page-view{padding:23px 17px}.page-heading{align-items:flex-start;gap:10px;margin-bottom:22px}.page-heading h1{font-size:24px;line-height:1.15;margin:8px 0}.page-heading p{font-size:10px}.page-heading .button{font-size:9px;padding:10px 12px;min-height:38px}.page-heading .button svg{width:14px;height:14px}.eyebrow{font-size:7px;letter-spacing:1.3px}.waze-container{height:calc(100% - 134px);min-height:250px}.source-note{align-items:flex-start;font-size:8px;gap:5px}.source-note .dot{margin-top:4px}.source-note a{font-size:8px}.filter-bar{gap:6px;margin-bottom:15px}.filter{font-size:9px;padding:8px 11px;min-height:34px}.alert-row{padding:15px 12px;gap:11px;flex-wrap:wrap}.alert-row-content h3{font-size:12px}.alert-row-content p{font-size:9px}.alert-source{display:none}.alert-row-distance{font-size:18px}.connector-banner{padding:15px;gap:10px;flex-wrap:wrap}.connector-banner>svg{width:20px;height:20px}.connector-banner strong{font-size:10px}.connector-banner p{font-size:9px}.connector-banner .text-button{margin-left:30px}.vehicle-grid{grid-template-columns:1fr;gap:13px}.vehicle-card{padding:17px}.car-art{max-width:320px;margin:auto}.telemetry-grid{grid-template-columns:1fr 1fr;gap:9px}.telemetry-card{padding:15px}.metric-value{font-size:25px}.vehicle-note>span{display:none}.summary-row{gap:8px}.summary-card{padding:15px 13px}.summary-card>span{font-size:8px}.summary-card>strong{font-size:21px}.summary-card small{font-size:9px}.trip-row{grid-template-columns:52px 1fr auto;gap:12px;padding:13px}.trip-thumbnail{width:52px;height:52px}.trip-details h3{font-size:11px;line-height:1.6}.trip-details p{font-size:8px}.trip-stats{gap:10px;font-size:9px}.trip-actions .icon-button{width:32px;height:32px}.trip-tag{font-size:6px}.favorites-grid{grid-template-columns:1fr 1fr;gap:10px}.favorite-card{min-height:123px;padding:17px}.favorite-card>span>strong{font-size:12px}.settings-grid{grid-template-columns:1fr;gap:15px}.settings-card{padding:20px}.setting-row strong{font-size:11px}.setting-row small{font-size:9px}.toast{bottom:78px;padding:13px 16px;font-size:11px}.focus-mode .app-shell{grid-template-columns:1fr}.focus-mode .cockpit-view{grid-template-columns:1fr;grid-template-rows:116px minmax(0,1fr)}.focus-mode .instruments{display:flex}.focus-mode .speed{font-size:80px}.focus-mode .speed-block{width:100%;justify-content:center}.focus-mode .rail{display:flex}.dialog-head h2{font-size:20px}dialog{padding:22px}.search-input{gap:7px;padding-left:10px}.search-input .button{font-size:9px;padding:9px}.search-input input{font-size:11px}}

/* Tesla-inspired red on neutral graphite. */
.brand-mark,.primary,.map-controls>button.active,.car-marker{background:var(--accent-solid);color:#fff}
.nav-button.active,.focus-mode #fullscreen{background:#342025}
.mode-pill{background:#2a1b20;border-color:#583038;color:#ffb3ba}
.filter.active{background:#351e24;border-color:#75404b}
.road-alert.clear .alert-symbol{background:#2d2025;border-color:#53323a}
.route-dot{box-shadow:0 0 0 5px #e8212715}
.car-marker{box-shadow:0 0 0 10px #e8212725,0 3px 15px #0006}
.switch.on{background:#e82127;border-color:#e82127}
.switch.on:after{background:#fff}
.brand-light{color:#c3c4ca}

.car-art{position:relative;aspect-ratio:1.85;overflow:hidden;background:#fff;border-radius:12px;margin-bottom:18px!important}
.car-art>img{position:absolute;width:175%;max-width:none;height:auto;left:-37.5%;top:50%;transform:translateY(-50%);display:block}

.battery-source{font-size:9px;color:var(--muted);line-height:1.5;margin-top:10px}.energy-mini .battery-source{font-size:8px;margin-top:8px}.telemetry-card.historical .metric-source{color:#c2a3a6}.telemetry-card.historical .meter>i{background:#98797d}
