:root{--bg:#f7f9fb;--surface:#fff;--surface-strong:#0f172a;--text:#43515b;--text-strong:#0b151b;--muted:#687884;--border:#dce4ea;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#eff6ff;--warning:#b45309;--warning-soft:#fff2d6;--danger:#b42318;--danger-soft:#fde8e5;--success:#137333;--success-soft:#e2f6e8;--shadow:0 22px 55px #0c1e2824;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,p{margin:0}#app,.app-shell{min-height:100svh}.app-loading{color:var(--text-strong);z-index:20;background:#ffffffeb;justify-content:center;align-items:center;gap:10px;min-height:58px;font-weight:800;display:flex;position:sticky;top:0}.app-loading .loader{width:22px;height:22px}.site-header{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border-bottom:1px solid #2563eb1f;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:16px;max-width:1120px;margin:0 auto;padding:14px 18px;display:flex}.brand-link{color:var(--surface-strong);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.05rem;font-weight:900;text-decoration:none;display:inline-flex}.brand-link__logo,.auth-brand__logo,.dashboard-header__logo,.page-brand__logo{object-fit:contain;height:auto;display:block}.brand-link__logo{width:42px}.site-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.site-nav__link{color:var(--text);background:0 0;border:1px solid #0000;border-radius:999px;padding:10px 14px;font-size:.94rem;font-weight:800;text-decoration:none;transition:background .14s,border-color .14s,color .14s}.site-nav__button{appearance:none}.site-nav__link:hover,.site-nav__link--active{background:var(--accent-soft);color:var(--accent-strong);border-color:#2563eb24}.public-page{min-height:100svh;padding:max(18px, env(safe-area-inset-top)) 22px max(20px, env(safe-area-inset-bottom));background:#f8fafc;place-items:start stretch;display:grid;overflow-x:hidden}.qr-card{gap:16px;width:100%;max-width:430px;min-height:calc(100svh - 38px);margin:0 auto;animation:.15s ease-out pageFade;display:grid}.qr-trust-header,.qr-logo-lockup{place-items:center;display:grid}.qr-trust-header{gap:10px;padding-top:2px}.qr-trust-logo,.qr-logo-lockup__mark{object-fit:contain;height:auto;display:block}.qr-trust-logo{width:min(118px,34vw)}.qr-logo-lockup{padding-top:6px}.qr-logo-lockup__mark{width:min(150px,44vw)}.auth-brand{justify-content:center;margin-bottom:2px;display:flex}.auth-brand__logo{width:min(220px,56vw)}.eyebrow,.vehicle-label{color:var(--accent-strong);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:800}.verified-badge{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:6px 12px;font-size:.8rem;font-weight:850;display:inline-flex}.verified-badge span{color:#fff;background:#16a34a;border-radius:999px;place-items:center;width:18px;height:18px;font-size:.72rem;display:inline-grid}.qr-vehicle-card,.qr-card--state{background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 18px 45px #0f172a1a}.qr-vehicle-card{text-align:center;align-content:start;justify-items:center;padding:24px 18px 22px;display:grid}.qr-car-icon{background:#eff6ff;border:1px solid #dbeafe;border-radius:18px;place-items:center;width:88px;height:88px;margin-bottom:16px;display:grid}.qr-car-icon svg{fill:#0f172a;width:72px;height:54px}.qr-vehicle-card h1{color:#0f172a;letter-spacing:0;overflow-wrap:anywhere;font-size:clamp(1.9rem,9vw,2.65rem);font-weight:900;line-height:1.04}.qr-vehicle-card p{color:#64748b;margin-top:10px;font-size:1rem}.qr-action-list{gap:12px;display:grid}.qr-action-button{text-align:left;border-radius:14px;grid-template-columns:48px 1fr;align-items:center;gap:14px;width:100%;min-height:74px;padding:13px 16px;transition:box-shadow .15s,transform .15s,border-color .15s,background .15s;display:grid}.qr-action-button:hover:not(:disabled){transform:translateY(-1px)}.qr-action-button:active:not(:disabled){transform:translateY(0)scale(.99)}.qr-action-button__icon{border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:900;display:grid}.qr-action-button strong,.qr-action-button small{display:block}.qr-action-button strong{font-size:1.04rem;font-weight:850;line-height:1.15}.qr-action-button small{margin-top:3px;font-size:.9rem;font-weight:500;line-height:1.25}.qr-action-button--call{color:#fff;background:#0f172a;border:1px solid #0f172a;box-shadow:0 16px 34px #0f172a33}.qr-action-button--call .qr-action-button__icon{color:#fff;background:#ffffff1f}.qr-action-button--call small{color:#cbd5e1}.qr-action-button--message{color:#0f172a;background:#fff;border:1px solid #e2e8f0}.qr-action-button--message .qr-action-button__icon{color:#2563eb;background:#eff6ff}.qr-action-button--message small{color:#64748b}.qr-action-button--urgent{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.qr-action-button--urgent .qr-action-button__icon{color:#dc2626;background:#fee2e2}.qr-action-button--urgent small{color:#991b1b}.call-status{background:var(--accent-soft);color:var(--accent-strong);border:1px solid #2563eb2e}.action-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:18px;display:grid}.action-panel h2{color:var(--text-strong);margin-top:4px;font-size:1.45rem;line-height:1.15}.action-panel p{color:var(--muted);margin-top:6px}.urgent-panel{background:#fff8f7;border-color:#b4231847}.urgent-eyebrow{color:var(--danger)}.field span{color:var(--text-strong);margin-bottom:8px;font-size:.95rem;font-weight:800;display:block}.field em{color:var(--muted);font-style:normal;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);color:var(--text-strong);background:#fff;border-radius:8px;outline:none;width:100%;padding:13px 14px;display:block}.field textarea{resize:vertical;min-height:116px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}.primary-action,.danger-action{color:#fff;border:0;border-radius:8px;width:100%;min-height:54px;padding:14px 18px;font-weight:850}.primary-action{background:var(--accent)}.primary-action:hover:not(:disabled){background:var(--accent-strong)}.danger-action{background:var(--danger)}.danger-action:hover:not(:disabled){background:#8f1d14}.success-panel{background:var(--success-soft);box-shadow:var(--shadow);border:1px solid #13733338;border-radius:8px;gap:8px;padding:18px;display:grid}.success-panel h2{color:var(--success);font-size:1.55rem;line-height:1.15}.success-panel p{color:#245b34}.urgent-success-panel{background:var(--danger-soft);border-color:#b4231847}.urgent-success-panel h2{color:var(--danger)}.urgent-success-panel p{color:#7a241c}.compact-action{justify-self:start;min-height:44px;margin-top:8px;padding:10px 14px}.qr-action-button:focus-visible,.qr-retry-button:focus-visible,.quick-action:focus-visible,.primary-action:focus-visible,.danger-action:focus-visible,.secondary-action:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}.qr-privacy-note{color:#64748b;text-align:center;margin-top:auto;padding:2px 10px 0;font-size:.9rem;line-height:1.35}.qr-privacy-note span{margin-right:4px;display:inline-block}.qr-card--state{text-align:center;align-content:center;justify-items:center;min-height:auto;margin-top:max(10px,9svh);padding:28px 20px}.qr-state-icon{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;place-items:center;width:64px;height:64px;margin-top:10px;font-size:1.4rem;font-weight:900;display:grid}.qr-card--state h1{color:#0f172a;letter-spacing:0;font-size:clamp(1.8rem,8vw,2.45rem);font-weight:900;line-height:1.06}.qr-card--state p{color:#64748b;max-width:29rem}.qr-retry-button{color:#fff;background:#2563eb;border:0;border-radius:12px;min-height:48px;padding:12px 18px;font-weight:800}.qr-card--loading{align-content:start;padding-top:8px}.qr-skeleton{background:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0) 0 0/220% 100%;border-radius:999px;animation:1.25s ease-in-out infinite skeletonPulse}.qr-skeleton--badge{width:210px;height:34px;margin:0 auto}.qr-skeleton--icon{border-radius:18px;width:88px;height:88px;margin:12px auto 0}.qr-skeleton--title{width:min(82%,330px);height:38px;margin:6px auto 0}.qr-skeleton--text{width:min(70%,260px);height:18px;margin:-2px auto 4px}.qr-skeleton--button{border-radius:14px;width:100%;height:74px}.secondary-action{background:var(--accent);color:#fff;border:0;border-radius:8px;min-height:52px;margin-top:22px;padding:14px 18px;font-weight:800}.secondary-action:hover:not(:disabled){background:var(--accent-strong)}.form-alert{border-radius:8px;padding:13px 14px;font-weight:700}.form-alert.success{background:var(--success-soft);color:var(--success)}.form-alert.error{background:var(--danger-soft);color:var(--danger)}.state-panel{margin-top:max(20px,12svh);padding:26px}.owner-page{background:var(--bg);min-height:100svh;padding:18px}.owner-card,.owner-dashboard{width:min(100%,760px);margin:0 auto}.owner-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:22px;display:grid}.owner-card h1,.owner-card h2,.dashboard-header h1{color:var(--text-strong);line-height:1.1}.owner-card h1,.dashboard-header h1{font-size:clamp(2rem,8vw,3.2rem)}.owner-copy,.owner-link{color:var(--muted)}.owner-link a,.vehicle-list a{color:var(--accent-strong);font-weight:800;text-decoration-color:#1d4ed852}.owner-inline-link{justify-content:flex-end;margin-top:-4px;display:flex}.owner-inline-link a{color:var(--accent-strong);font-size:.94rem;font-weight:800;text-decoration:none}.owner-inline-link a:hover{text-decoration:underline}.owner-form,.owner-dashboard{gap:16px;display:grid}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;display:flex}.dashboard-header__brand,.dashboard-header__copy{gap:0;display:grid}.dashboard-header__copy{flex:320px}.dashboard-header__logo{width:164px}.vehicle-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.vehicle-list li{border:1px solid var(--border);background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:13px;display:flex}.vehicle-summary{align-items:center;gap:14px;display:flex}.sticker-preview{aspect-ratio:3/4;border:1px solid var(--border);object-fit:contain;background:#fff;border-radius:6px;flex:none;place-items:center;height:104px;padding:4px;display:grid;box-shadow:0 8px 18px #0c1e2814}.placeholder-preview{color:var(--accent-strong);font-size:.7rem;font-weight:850}.vehicle-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.vehicle-list strong,.vehicle-list span{display:block}.vehicle-list span{color:var(--muted);font-size:.92rem}.text-action{color:var(--accent-strong);background:0 0;border:0;padding:0;font-weight:800}.message-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.message-list li{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:10px;padding:14px;display:grid}.message-list li.urgent-message{background:var(--danger-soft);border-color:#b4231847}.message-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.message-header strong{color:var(--text-strong)}.urgent-pill{background:var(--danger);color:#fff;border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:850}.message-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.message-meta dt{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.message-meta dd{color:var(--text-strong);overflow-wrap:anywhere;margin:2px 0 0}.loader{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pageFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonPulse{to{background-position:-220% 0}}@media (width>=760px){.public-page{padding:34px 24px}.page-header{padding-top:34px}.action-panel{padding:22px}}@media (width<=520px){.site-header__inner{flex-direction:column;align-items:flex-start}.site-nav{width:100%}.site-nav__link{text-align:center}.public-page{padding:12px 22px}.qr-shell{gap:14px}.page-header{padding-top:14px}.page-header h1,.state-panel h1{max-width:100%;font-size:2.15rem}.vehicle-panel{grid-template-columns:auto 1fr;gap:13px;padding:14px}.vehicle-icon{width:58px}.vehicle-icon span{width:40px;height:20px}.quick-actions{grid-template-columns:1fr}.quick-action{min-height:76px}.action-panel,.success-panel{padding:16px}.owner-page{padding:12px}.owner-card{padding:16px}.dashboard-header,.vehicle-list li{flex-direction:column;align-items:stretch}.dashboard-header__logo{width:144px}.vehicle-summary{align-items:flex-start}.sticker-preview{height:96px}.vehicle-actions{justify-content:flex-start}.message-header{flex-direction:column;align-items:flex-start}.message-meta{grid-template-columns:1fr}}
