:root{--bg:#f3f6fa;--panel:#fff;--panel2:#f8fafc;--text:#172233;--muted:#718096;--border:#e4eaf1;--accent:#3268e8;--accent2:#2456d7;--green:#15966a;--amber:#b9780b;--red:#d94a4a;--purple:#8157c8;--shadow:0 8px 28px rgba(27,48,80,.045);--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body.dark{--bg:#101722;--panel:#182230;--panel2:#1d2a3a;--text:#edf3fb;--muted:#9baabe;--border:#2a394c;--accent:#6f95ff;--accent2:#527df0;--green:#4fd1a1;--amber:#f2bc58;--red:#ff7373;--purple:#b69aff;--shadow:0 8px 28px rgba(0,0,0,.12)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:var(--panel);border-right:1px solid var(--border);padding:22px 14px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;padding:0 10px 28px}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,#3978f5,#224dc2);display:grid;place-items:center;color:white;font-weight:850;letter-spacing:-1px;box-shadow:0 6px 15px #3268e82b}.brand strong{display:block;font-size:16px;letter-spacing:-.4px}.brand small{display:block;font-size:9px;letter-spacing:1.3px;color:var(--muted);margin-top:2px}.nav-label{font-size:10px;letter-spacing:1.2px;color:var(--muted);font-weight:750;padding:13px 11px 7px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:var(--muted);text-align:left;padding:10px 12px;border-radius:10px;margin:2px 0;font-weight:600;transition:.15s}.nav-item span{font-size:17px;width:21px;text-align:center}.nav-item:hover{background:var(--panel2);color:var(--text)}.nav-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:750}.sidebar-bottom{margin-top:auto;padding:16px 10px 0;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.sidebar-bottom small{display:block;margin-top:8px;font-size:10px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#a0aaba;margin-right:6px}.status-dot.on{background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 15%,transparent)}.main{margin-left:248px;min-width:0}.topbar{height:68px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10}.crumb{display:flex;gap:11px;align-items:center;color:var(--muted);font-size:12px}.crumb b{color:var(--border)}.crumb strong{color:var(--text);font-size:13px}.top-actions{display:flex;gap:14px;align-items:center}.connection-pill{font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:30px;padding:7px 11px;display:flex;align-items:center;gap:7px}.connection-pill i{width:7px;height:7px;border-radius:50%;background:#9aa6b8}.connection-pill.connected{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,var(--border))}.connection-pill.connected i{background:var(--green)}.theme-btn,.menu-btn,.icon-button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;width:36px;height:36px}.menu-btn{display:none}.content{max-width:1480px;margin:0 auto;padding:30px 34px 22px}.page{display:none;animation:fade .2s ease}.page.active{display:block}@keyframes fade{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}.welcome,.page-intro{margin-bottom:24px}.welcome,.row-between{display:flex;justify-content:space-between;align-items:center;gap:18px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.45px;color:var(--accent);margin-bottom:7px}h1{font-size:29px;line-height:1.2;letter-spacing:-1px;margin:0 0 9px;font-weight:780}h2{font-size:16px;letter-spacing:-.3px;margin:0 0 5px}h3{font-size:13px;margin:0 0 10px}p{margin:0;color:var(--muted)}.welcome p,.page-intro p{font-size:13px}.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.primary{background:var(--accent);color:white;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 18%,transparent)}.primary:hover{background:var(--accent2)}.secondary{background:var(--panel);border-color:var(--border);color:var(--text)}.subtle{background:transparent;color:var(--accent);padding:7px}.danger{background:color-mix(in srgb,var(--red) 11%,var(--panel));color:var(--red);border-color:color-mix(in srgb,var(--red) 25%,var(--border))}.full{width:100%;margin-top:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card,.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:18px 19px}.stat-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:14px}.stat-card>strong{font-size:24px;letter-spacing:-.7px;display:block;line-height:1.3}.stat-card em{font-size:12px;font-style:normal;color:var(--muted);font-weight:500}.stat-card small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.stat-icon,.quick-icon{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;font-size:17px}.blue{background:#eaf0ff;color:#376ce4}.green{background:#e3f8ee;color:#15966a}.amber{background:#fff4df;color:#b9780b}.purple{background:#f0eaff;color:#8157c8}body.dark .blue{background:#243b65;color:#93b2ff}body.dark .green{background:#173e35;color:#65ddb2}body.dark .amber{background:#49371d;color:#f2bc58}body.dark .purple{background:#372b54;color:#c1a8ff}.home-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-bottom:16px}.panel{padding:21px;margin-bottom:16px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-heading p{font-size:11px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-action{border:1px solid var(--border);border-radius:13px;padding:13px;background:var(--panel);text-align:left;display:grid;grid-template-columns:35px 1fr;column-gap:10px;align-items:center}.quick-action:hover{border-color:var(--accent)}.quick-icon{grid-row:span 2}.quick-action b{font-size:12px}.quick-action small{font-size:10px;color:var(--muted)}.system-list>div{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.system-list>div:last-child{border-bottom:0}.system-list>div>div{flex:1;min-width:0}.system-list b{display:block;font-size:11px}.system-list small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.system-symbol{width:28px;height:28px;border-radius:9px;background:var(--panel2);display:grid;place-items:center;color:var(--accent)}.badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:750;background:var(--panel2);color:var(--muted);white-space:nowrap}.badge.success{background:color-mix(in srgb,var(--green) 13%,var(--panel));color:var(--green)}.badge.warning{background:color-mix(in srgb,var(--amber) 14%,var(--panel));color:var(--amber)}.badge.error{background:color-mix(in srgb,var(--red) 13%,var(--panel));color:var(--red)}.badge.neutral{background:var(--panel2)}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.activity-item:last-child{border-bottom:0}.activity-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--panel2);color:var(--accent);flex-shrink:0}.activity-copy{flex:1;min-width:0}.activity-copy b{display:block;font-size:12px;overflow-wrap:anywhere}.activity-copy small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.activity-value{font-weight:750;font-size:12px}.empty-state{padding:24px 12px;text-align:center;color:var(--muted);font-size:12px}.notice{border-radius:13px;padding:15px 17px;margin-bottom:18px;border:1px solid var(--border);background:var(--panel)}.notice b{font-size:12px}.notice p{font-size:11px;margin-top:4px;line-height:1.6}.notice.info{border-color:color-mix(in srgb,var(--accent) 25%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--panel))}.notice.warning{border-color:color-mix(in srgb,var(--amber) 30%,var(--border));background:color-mix(in srgb,var(--amber) 6%,var(--panel))}.notice.compact{padding:10px 14px;font-size:11px}.connect-grid,.vehicle-layout,.vin-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.connect-card{text-align:center;padding:30px}.connect-illustration{width:72px;height:72px;border-radius:22px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent);font-size:38px;display:grid;place-items:center;margin:0 auto 18px}.connect-card p{font-size:12px;max-width:360px;margin:0 auto 18px}.detail-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:12px}.detail-list>div span{color:var(--muted)}.detail-list>div b{text-align:right}.divider{height:1px;background:var(--border);margin:18px 0}.result-box{background:var(--panel2);border:1px solid var(--border);border-radius:11px;padding:13px;margin-top:12px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.inline-message{margin-top:12px;border-radius:10px;padding:10px 12px;font-size:11px;background:color-mix(in srgb,var(--red) 10%,var(--panel));color:var(--red)}.hidden{display:none!important}.log-list{max-height:310px;overflow:auto}.log-entry{padding:10px 0;border-bottom:1px solid var(--border);font-size:11px}.log-entry b{color:var(--red);margin-right:8px}.log-entry time{color:var(--muted);margin-right:8px}.action-row{display:flex;gap:8px;flex-wrap:wrap}.live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.live-card{padding:17px;border:1px solid var(--border);background:var(--panel);border-radius:15px;min-width:0}.live-card-head{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.live-card strong{display:block;font-size:25px;letter-spacing:-.7px;margin:17px 0 4px}.live-card strong em{font-size:12px;color:var(--muted);font-style:normal}.live-card small{color:var(--muted);font-size:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;color:var(--muted);font-weight:700;background:var(--panel2)}th,td{padding:12px 13px;border-bottom:1px solid var(--border);white-space:nowrap}.muted-cell{text-align:center;color:var(--muted);padding:25px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--border);margin-bottom:15px;overflow:auto}.tab{border:0;background:transparent;padding:12px 15px;color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700;border-bottom:2px solid transparent}.tab.active{color:var(--accent);border-color:var(--accent)}.dtc-card{display:flex;gap:13px;padding:15px;border-bottom:1px solid var(--border)}.dtc-code{font-size:15px;font-weight:850;color:var(--red);min-width:60px}.dtc-card b{font-size:12px}.dtc-card p{font-size:11px;margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label,#vinForm label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px;font-weight:650;min-width:0}.form-grid input,.form-grid select,.form-grid textarea,#vinForm input,.setting-row select{width:100%;min-width:0;border:1px solid var(--border);border-radius:9px;padding:10px 11px;background:var(--panel2);color:var(--text);outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,#vinForm input:focus{border-color:var(--accent)}.span-2{grid-column:span 2}.form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.garage-item{padding:14px;border:1px solid var(--border);border-radius:12px;margin-top:10px}.garage-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--panel))}.garage-item-head{display:flex;justify-content:space-between;gap:10px}.garage-item b{font-size:13px}.garage-item p{font-size:10px;margin-top:5px}.garage-item .action-row{margin-top:10px}.vin-layout{grid-template-columns:.8fr 1.2fr}.vin-layout .panel{align-self:start}.vin-layout #vinForm{display:flex;flex-direction:column;gap:14px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border:0}.setting-row b{display:block;font-size:12px}.setting-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.setting-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}.setting-row select{width:auto;padding:7px}.file-label{position:relative;overflow:hidden}.file-label input{position:absolute;inset:0;opacity:0;cursor:pointer}.danger-zone{grid-column:span 2}.limitations{color:var(--muted);font-size:12px;padding-left:18px;line-height:1.9}.footer{text-align:center;color:var(--muted);font-size:10px;padding:8px 0 0}.toast-region{position:fixed;right:22px;bottom:22px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:min(390px,calc(100vw - 30px))}.toast{background:var(--text);color:var(--panel);padding:12px 15px;border-radius:11px;box-shadow:var(--shadow);font-size:12px;animation:fade .2s}.toast.error{background:#b93737;color:#fff}dialog{border:1px solid var(--border);border-radius:18px;background:var(--panel);color:var(--text);padding:0;width:min(600px,calc(100vw - 28px));box-shadow:0 24px 100px #0004}dialog::backdrop{background:#08101dbb;backdrop-filter:blur(3px)}dialog form{padding:23px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.dialog-head h2{font-size:20px}.icon-button{font-size:24px;line-height:1}.check-list .activity-item{align-items:flex-start}.check-list .activity-icon{font-size:15px}.check-list .activity-copy p{font-size:10px;margin-top:4px}.check-list .badge{margin-left:auto}
@media(max-width:1180px){.sidebar{width:220px}.main{margin-left:220px}.content{padding:25px 22px}.topbar{padding:0 22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-grid{grid-template-columns:1fr}.live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:260px;box-shadow:0 0 40px #0002}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-btn{display:block;margin-right:10px;flex-shrink:0}.topbar{justify-content:flex-start;padding:0 14px}.crumb{flex:1;gap:7px}.top-actions{gap:7px}.connection-pill{padding:6px 8px;font-size:0}.connection-pill i{font-size:initial}.content{padding:20px 14px}.welcome,.row-between{align-items:flex-start;flex-direction:column}.welcome .btn{width:100%}.page-intro h1,.welcome h1{font-size:25px}.stats-grid,.stats-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:14px}.stat-card>strong{font-size:20px}.connect-grid,.vehicle-layout,.vin-layout,.settings-grid{grid-template-columns:1fr}.danger-zone{grid-column:auto}.live-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.live-card{padding:13px}.live-card strong{font-size:21px}.form-grid{gap:11px}.panel{padding:16px}.panel-heading{align-items:flex-start}.action-row{width:100%}.action-row .btn{flex:1}.page-intro.row-between .action-row{width:100%}.footer{line-height:1.7}}@media(max-width:420px){.stats-grid,.stats-grid.three,.live-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.quick-grid{grid-template-columns:1fr}.topbar{height:60px}.crumb span{display:none}.welcome h1{font-size:24px}}
