:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #f1f5fb;--border: #e2e8f0;--text: #16233b;--text-muted: #64748b;--primary: #0f4c81;--primary-strong: #0c3d68;--ok: #12a150;--ok-bg: #e7f7ee;--warn: #c77700;--warn-bg: #fdf1dd;--bad: #d92d20;--bad-bg: #fbe6e4;--info: #1d4ed8;--shadow: 0 6px 20px -12px rgba(15, 23, 42, .35);--radius: 14px;--radius-sm: 10px}:root[data-theme=dark]{--bg: #0b1626;--surface: #14203a;--surface-2: #0f1a30;--border: rgba(148, 163, 184, .16);--text: #e6edf7;--text-muted: #93a3bd;--primary: #3b82f6;--primary-strong: #2563eb;--ok: #4ade80;--ok-bg: rgba(34, 197, 94, .14);--warn: #fbbf24;--warn-bg: rgba(245, 158, 11, .16);--bad: #f87171;--bad-bg: rgba(239, 68, 68, .16);--info: #60a5fa;--shadow: 0 8px 22px -14px rgba(0, 0, 0, .7)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{max-width:640px;margin:0 auto;padding:16px 16px 48px;display:flex;flex-direction:column;gap:16px}.brand-plate{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.logo-frame{width:52px;height:52px;flex:none;border-radius:12px;overflow:hidden;background:var(--surface-2);display:flex;align-items:center;justify-content:center}.logo-frame img{width:100%;height:100%;object-fit:contain}.brand-copy{flex:1;min-width:0;display:flex;flex-direction:column}.brand-kicker{font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--primary)}.brand-copy h1{margin:2px 0 0;font-size:1.2rem}.brand-copy p{margin:0;font-size:.82rem;color:var(--text-muted)}.brand-version{font-size:.68rem;color:var(--text-muted);margin-top:2px}.brand-actions{display:flex;gap:8px}.theme-button{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:center}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:12px}.login-card>h1{margin:6px 0 0;font-size:1.25rem}.login-card>p{margin:0;color:var(--text-muted);font-size:.9rem}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;font-weight:700;color:var(--primary);background:var(--surface-2);border-bottom:1px solid var(--border)}.update-banner button{min-height:36px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--surface);font-weight:800}.install-invite{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text)}.install-invite span,.install-invite small{color:var(--text-muted);line-height:1.4}.install-invite button{min-height:42px;border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--surface);font-weight:800}.login-service-strip{display:flex;flex-wrap:wrap;gap:6px}.login-service-strip span{font-size:.74rem;font-weight:600;color:var(--primary);background:var(--surface-2);border-radius:999px;padding:4px 10px}.login-form{display:flex;flex-direction:column;gap:12px;margin-top:4px}.login-form label,.sheet-field{display:flex;flex-direction:column;gap:5px;font-size:.82rem;color:var(--text-muted);font-weight:600}.login-form input,.sheet-field input{height:44px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:0 12px;font-size:1rem}.login-form button[type=submit]{height:46px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-weight:700;font-size:1rem}.login-form button[disabled]{opacity:.6}.error-box{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:10px 12px;font-size:.86rem;font-weight:600}.empty{color:var(--text-muted);text-align:center;padding:18px;font-size:.88rem;display:flex;gap:8px;align-items:center;justify-content:center}.home-owner-strip{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.home-owner-strip span{font-size:.76rem;color:var(--text-muted)}.home-owner-strip strong{font-size:1rem}.scan-cta{display:flex;align-items:center;justify-content:center;gap:10px;height:58px;border:none;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:1.05rem;font-weight:700;box-shadow:var(--shadow)}.scan-cta:active{background:var(--primary-strong)}.home-units{display:flex;flex-direction:column;gap:10px}.home-units-head h2{margin:0;font-size:1rem}.unit-list{display:flex;flex-direction:column;gap:8px}.unit-list-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text)}.unit-list-plate{font-weight:700;letter-spacing:.02em}.unit-list-model{color:var(--text-muted);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-list-internal{font-size:.74rem;color:var(--text-muted)}.mobile-sheet-backdrop{position:fixed;inset:0;background:#080f1e8c;display:flex;align-items:flex-end;justify-content:center;z-index:40}.mobile-sheet{width:100%;max-width:560px;background:var(--surface);border-radius:18px 18px 0 0;padding:16px;display:flex;flex-direction:column;gap:12px;max-height:92vh;overflow-y:auto}.mobile-sheet-header{display:flex;align-items:center;justify-content:space-between}.mobile-sheet-header span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.mobile-sheet-header h3{margin:2px 0 0;font-size:1.1rem}.sheet-close{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:center}.scanner-video-frame{border-radius:14px;overflow:hidden;background:#000;aspect-ratio:3/4}.scanner-video-frame video{width:100%;height:100%;object-fit:cover}.manual-unit-match{text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);font-weight:600}.unit-audit-screen{display:flex;flex-direction:column;gap:14px}.unit-audit-header{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.unit-back-btn{width:38px;height:38px;flex:none;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:center}.unit-audit-identity{flex:1;min-width:0;display:flex;flex-direction:column}.unit-audit-plate-row{display:flex;align-items:baseline;gap:8px}.unit-audit-plate-row strong{font-size:1.25rem}.unit-audit-internal{font-size:.76rem;color:var(--text-muted)}.unit-audit-model{font-size:.84rem;color:var(--text-muted)}.unit-status-pill{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:700;padding:4px 10px;border-radius:999px}.unit-status-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}.unit-status-pill-ok{color:var(--ok);background:var(--ok-bg)}.unit-status-pill-warn{color:var(--warn);background:var(--warn-bg)}.unit-status-pill-info{color:var(--info);background:var(--surface-2)}.unit-status-pill-crit{color:var(--bad);background:var(--bad-bg)}.audit-summary{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.health-ring{--pct: 0;width:92px;height:92px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--ring-color) calc(var(--pct) * 1%),var(--surface-2) 0)}.health-ring-ok{--ring-color: var(--ok)}.health-ring-warn{--ring-color: var(--warn)}.health-ring-bad{--ring-color: var(--bad)}.health-ring-neutral{--ring-color: var(--border)}.health-ring-inner{width:72px;height:72px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center}.health-ring-inner strong{font-size:1.3rem}.health-ring-inner span{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.audit-summary-facts{display:flex;flex-direction:column;gap:8px}.audit-summary-facts .fact{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:.9rem}.audit-summary-facts .fact span{color:var(--text);font-weight:600}.audit-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.audit-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.audit-block-head h3{margin:0;font-size:.95rem;display:flex;align-items:center;gap:7px}.row-list{display:flex;flex-direction:column;gap:8px}.exp-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:var(--surface-2)}.exp-row .exp-label{flex:1;font-weight:600}.exp-row .exp-value{font-size:.82rem;font-weight:700}.exp-row-critical{color:var(--bad);background:var(--bad-bg)}.exp-row-warning{color:var(--warn);background:var(--warn-bg)}.exp-row-ok{color:var(--ok);background:var(--ok-bg)}.plan-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:var(--surface-2)}.plan-row-main{flex:1;min-width:0}.plan-row-name{font-weight:600}.plan-row-value{display:flex;flex-direction:column;align-items:flex-end}.plan-row-n{font-weight:700;font-size:.9rem}.plan-row-u{font-size:.7rem;color:var(--text-muted)}.plan-row-overdue{color:var(--bad);background:var(--bad-bg)}.plan-row-due{color:var(--warn);background:var(--warn-bg)}.plan-row-ok{color:var(--ok)}.tire-grid,.battery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tire-slot,.battery-slot{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.tire-pos,.battery-pos{font-size:.72rem;font-weight:700;color:var(--text-muted);letter-spacing:.04em}.tire-brand{font-size:.82rem;font-weight:600}.tire-empty{font-size:.8rem;color:var(--text-muted)}.tire-meter{display:flex;align-items:center;gap:6px}.tire-meter-track{flex:1;height:7px;border-radius:999px;background:var(--border);overflow:hidden}.tire-meter-fill{height:100%;border-radius:999px;background:var(--ok)}.tire-meter-warning .tire-meter-fill{background:var(--warn)}.tire-meter-critical .tire-meter-fill{background:var(--bad)}.tire-meter-pct{font-size:.76rem;font-weight:700}.tire-meter-warning .tire-meter-pct{color:var(--warn)}.tire-meter-critical .tire-meter-pct{color:var(--bad)}.battery-status{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700}.battery-status-ok{color:var(--ok)}.battery-status-warning{color:var(--warn)}.battery-status-critical{color:var(--bad)}.battery-status-neutral{color:var(--text-muted)}.battery-name{font-size:.82rem}.battery-meta{font-size:.74rem;color:var(--text-muted)}.readonly-note{text-align:center;color:var(--text-muted);font-size:.78rem;margin:4px 0 0}
