@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&display=swap";:root{--bg:#fff;--bg-elevated:#f7faf9;--bg-panel:#fff;--ink:#132027;--muted:#5f716c;--accent:#2f8f7a;--accent-strong:#247864;--danger:#b42318;--line:#1320271f;--radius:16px;--font-display:"Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;color:var(--ink);background:radial-gradient(1100px 520px at 8% -12%, #2f8f7a1f, transparent 55%), radial-gradient(900px 480px at 100% 0%, #c4a86c1a, transparent 52%), var(--bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .35rem;font-weight:600}p{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.35rem;font-size:.72rem}.subtitle{color:var(--muted);line-height:1.45}.mono{letter-spacing:.04em;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.app-shell{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.app-header,.app-main,.bottom-nav{width:min(720px,100%);margin:0 auto}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1rem .75rem;display:flex}.app-main{padding:.5rem 1rem 6rem}.bottom-nav{padding:.65rem .5rem calc(.65rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);background:#fffffff0;grid-template-columns:repeat(5,1fr);gap:.25rem;display:grid;position:sticky;bottom:0}.bottom-nav a,.nav-disabled{text-align:center;color:var(--muted);border-radius:999px;padding:.55rem .2rem;font-size:.78rem}.bottom-nav a.active{color:var(--accent-strong);background:#2f8f7a29;font-weight:600}.nav-disabled{opacity:.45}.login-page{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-card,.panel,.hero-panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:0 8px 24px #1320270a}.login-card{width:min(420px,100%)}.stack{flex-direction:column;gap:.9rem;display:flex}.page{gap:1rem}.page-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}label{flex-direction:column;gap:.4rem;font-size:.9rem;display:flex}input,textarea,button{font:inherit}input,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:12px;padding:.8rem .9rem}textarea{resize:vertical}.primary-button,.secondary-button,.ghost-button{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.1rem;display:inline-flex}.primary-button{background:var(--accent);color:#04110e;font-weight:600}.primary-button:disabled{opacity:.6;cursor:wait}.secondary-button{border-color:var(--line);color:var(--ink);background:0 0}.ghost-button{border-color:var(--line);color:var(--muted);background:0 0;padding:.55rem .85rem}.hero-panel{background:linear-gradient(135deg, #2f8f7a24, transparent 55%), var(--bg-elevated)}.panel.muted{opacity:.9}.panel ul{color:var(--muted);margin:.5rem 0 0;padding-left:1.1rem}.error{color:var(--danger)}.scan-page.page{gap:.65rem}.scan-page .page-heading h2{margin:0;font-size:1.15rem}.scan-page .page-heading .subtitle{margin:.15rem 0 0}.scan-page .panel{padding:.85rem 1rem}.scan-mode-toggle{border:1px solid var(--line);background:#1320270a;border-radius:14px;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;display:grid}.scan-mode-option{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:.45rem;margin:0;padding:.7rem .75rem;font-size:.92rem;font-weight:600;transition:background .16s,color .16s,box-shadow .16s,transform .16s;display:inline-flex}.scan-mode-option:hover:not(:disabled){color:var(--ink);background:#ffffffb3}.scan-mode-option.active{color:var(--accent-strong);background:#fff;box-shadow:0 1px 2px #13202714,0 0 0 1px #2f8f7a38}.scan-mode-option:disabled{opacity:.55;cursor:not-allowed}.scan-mode-icon{flex-shrink:0;width:1.15rem;height:1.15rem}.scan-status{border:1px solid var(--line);background:var(--bg-elevated);color:var(--muted);border-radius:12px;margin:0;padding:.55rem .8rem;font-size:.9rem}.scan-status-found{color:var(--accent-strong);background:#2f8f7a1f;border-color:#2f8f7a66}.scan-status-ai{color:var(--accent-strong);background:#2f8f7a1a;border-color:#2f8f7a59}.camera-panel{border-radius:var(--radius);border:1px solid var(--line);background:#000;height:min(28vh,200px);position:relative;overflow:hidden}.camera-panel-tall{height:min(58vh,460px)}.camera-preview{object-fit:cover;background:#000;width:100%;height:100%;display:block}.camera-error{text-align:center;background:#ffffffe6;place-items:center;margin:0;padding:.85rem;display:grid;position:absolute;inset:0}.camera-flash{pointer-events:none;background:#fff;animation:.42s ease-out forwards camera-flash-fade;position:absolute;inset:0}.camera-snap-preview{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.camera-snap-badge{z-index:2;color:#fff;letter-spacing:.01em;background:#132027c7;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex;position:absolute;top:.65rem;left:.65rem}.camera-snap-badge:before{content:"";background:#3ecf9a;border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 0 3px #3ecf9a47}@keyframes camera-flash-fade{0%{opacity:.92}to{opacity:0}}.scan-actions{flex-direction:column;gap:.65rem;display:flex}.scan-actions .primary-button,.scan-actions .secondary-button,.scan-actions .ghost-button{width:100%}.scan-actions .stop-camera-button{color:#b42318;border-color:#b4231859}.camera-stop{z-index:3;color:#fff;font:inherit;cursor:pointer;background:#132027c7;border:0;border-radius:999px;margin:0;padding:.4rem .7rem;font-size:.82rem;font-weight:700;position:absolute;top:.65rem;right:.65rem}.camera-stop:disabled{opacity:.55;cursor:not-allowed}.camera-status{z-index:2;color:#fff;background:linear-gradient(#0000,#000000b8);margin:0;padding:.85rem .85rem .7rem;font-size:.9rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.camera-status-busy{color:#b8f3d8}.scan-confirm{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 1.1rem 1.25rem;display:flex}.scan-confirm-logo,.make-logo.scan-confirm-logo{border-radius:20px;width:96px;height:96px}.scan-confirm-copy{flex-direction:column;gap:.35rem;display:flex}.scan-confirm-summary{color:var(--ink);margin:0;font-size:1.25rem;font-weight:700}.scan-confirm-vin{letter-spacing:.04em;margin:0;font-size:.95rem}.scan-confirm-actions{flex-direction:column;gap:.65rem;width:100%;display:flex}.contact-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.contact-item{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);cursor:pointer;width:100%;color:inherit;font:inherit;flex-direction:column;gap:.2rem;padding:.9rem 1rem;display:flex}.contact-item:hover,.contact-item:focus-visible{border-color:#2f8f7a73;outline:none}.scan-vehicle-summary{color:var(--ink);margin:.2rem 0 0;font-weight:600}.scan-contact-name{color:var(--accent-strong);margin:.15rem 0 0;font-weight:600}.scan-vehicle-details{margin-top:.15rem}.scan-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.scan-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);grid-template-columns:56px 1fr;align-items:start;gap:.85rem;padding:.95rem 1rem;display:grid}.scan-item-body{min-width:0}.make-logo{border:1px solid var(--line);background:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:56px;height:56px;display:grid;overflow:hidden}.make-logo-image{object-fit:contain;width:78%;height:78%;display:block}.make-logo-fallback{color:var(--accent-strong);letter-spacing:.04em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;font-weight:600}.embed-scan,.scan-page.embed-mode{min-height:100%;padding:1rem 1rem 1.25rem}.embed-scan .page,.scan-page.embed-mode.page{max-width:none}
