@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=DM+Mono:wght@400;500&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#1a7a4a;--green-bg:#e8f5ee;--green-mid:#2ea06a;--amber:#b45309;--amber-bg:#fef3c7;--red:#b91c1c;--red-bg:#fee2e2;--blue:#1d4ed8;--blue-bg:#eff6ff;--gray:#374151;--gray-light:#f3f4f6;--gray-mid:#9ca3af;--border:#e5e7eb;--text:#111827;--text-muted:#6b7280;--font:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--radius:12px;--radius-sm:8px}html,body{height:100%;font-family:var(--font);color:var(--text);background:#f9fafb}.app-shell{flex-direction:column;max-width:420px;min-height:100dvh;margin:0 auto;display:flex}.idle-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem 1.5rem;display:flex}.idle-icon{color:var(--gray);opacity:.5;margin-bottom:.5rem}.idle-title{letter-spacing:-.03em;font-size:2rem;font-weight:500}.idle-sub{color:var(--text-muted);max-width:280px;font-size:1rem;line-height:1.6}.idle-hint{color:var(--gray-mid);font-size:.8rem}.camera-view{background:#000;flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative}.camera-feed{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera-overlay{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-guide{aspect-ratio:3/4;justify-content:center;align-items:flex-end;width:80%;max-width:320px;padding-bottom:12px;display:flex;position:relative}.guide-corner{border-style:solid;border-color:#ffffffe6;width:24px;height:24px;position:absolute}.guide-corner.tl{border-width:2px 0 0 2px;top:0;left:0}.guide-corner.tr{border-width:2px 2px 0 0;top:0;right:0}.guide-corner.bl{border-width:0 0 2px 2px;bottom:0;left:0}.guide-corner.br{border-width:0 2px 2px 0;bottom:0;right:0}.guide-text{color:#fffc;text-align:center;font-size:.75rem}.camera-controls{background:linear-gradient(#0000,#00000080);justify-content:space-between;align-items:center;padding:1.5rem;display:flex;position:absolute;bottom:0;left:0;right:0}.btn-shutter{cursor:pointer;background:#fff3;border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;transition:transform .1s;display:flex}.btn-shutter:active{transform:scale(.94)}.btn-shutter:disabled{opacity:.4}.shutter-inner{background:#fff;border-radius:50%;width:52px;height:52px}.btn-ghost{color:#fff;font-size:.9rem;font-family:var(--font);cursor:pointer;background:0 0;border:none;width:64px;padding:8px}.camera-error{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.scanning-screen{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;display:flex}.scanning-spinner{border:3px solid var(--border);border-top-color:var(--text);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scanning-text{font-size:1rem;font-weight:500}.scanning-sub{color:var(--text-muted);font-size:.85rem}.verdict-page{flex-direction:column;flex:1;display:flex}.verdict-hero{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem 2rem;display:flex}.verdict-hero--yes,.verdict-hero--expiring{background:var(--green-bg);color:var(--green)}.verdict-hero--no,.verdict-hero--tow{background:var(--red-bg);color:var(--red)}.verdict-hero--conditional{background:var(--blue-bg);color:var(--blue)}.verdict-hero--lowconf{background:var(--amber-bg);color:var(--amber)}.verdict-hero-icon{background:#fff9;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.verdict-title{letter-spacing:-.02em;font-size:1.5rem;font-weight:500}.verdict-sub{opacity:.8;font-size:.9rem}.verdict-body{flex-direction:column;flex:1;gap:1rem;padding:1.25rem 1.25rem 2rem;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.detail-card{background:var(--gray-light);border-radius:var(--radius-sm);padding:10px 12px}.detail-card--span{grid-column:1/-1}.detail-card--danger{background:var(--red-bg)}.detail-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:3px;font-size:.7rem}.detail-value{font-size:1rem;font-weight:500}.detail-value--warn{color:var(--amber)}.detail-value--danger{color:var(--red)}.tow-alert,.permit-note{border-radius:var(--radius-sm);align-items:flex-start;gap:8px;padding:10px 14px;font-size:.82rem;line-height:1.5;display:flex}.tow-alert{background:var(--red-bg);color:var(--red)}.permit-note{background:var(--blue-bg);color:var(--blue)}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px;font-size:.7rem}.pole-wrap{align-items:flex-start;gap:10px;display:flex}.pole-stick{background:var(--border);border-radius:2px;flex-shrink:0;align-self:stretch;width:4px;margin-top:4px}.signs-list{flex-direction:column;flex:1;gap:4px;display:flex}.sign-chip{font-family:var(--font-mono);border-radius:6px;padding:5px 10px;font-size:.75rem;line-height:1.4}.sign-chip--active{background:var(--green-bg);color:var(--green);font-weight:500}.sign-chip--dim{background:var(--gray-light);color:var(--text-muted)}.warnings-section{flex-direction:column;gap:6px;display:flex}.warning-row{align-items:flex-start;gap:8px;display:flex}.warning-dot{background:var(--amber);border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:6px}.warning-text{color:var(--text-muted);font-size:.82rem;line-height:1.5}.conf-track{background:var(--border);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.conf-fill{border-radius:2px;height:100%;transition:width .6s}.conf-fill--high{background:var(--green-mid)}.conf-fill--medium{background:var(--amber)}.conf-fill--low{background:var(--red)}.disclaimer{color:var(--gray-mid);text-align:center;font-size:.72rem;line-height:1.5}.btn-primary{background:var(--text);color:#fff;border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;border:none;padding:14px 28px;font-size:.95rem;font-weight:500;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn--full{width:100%}.btn-secondary{border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;color:var(--text);background:0 0;padding:10px 20px;font-size:.9rem}.error-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.error-title{font-size:1.1rem;font-weight:500}.error-msg{color:var(--text-muted);font-size:.85rem}
