:root{--text:#334155;--text-h:#0f172a;--bg:#f8fafc;--card:#fff;--border:#cbd5e1;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--success:#16a34a;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}#app{max-width:960px;margin:0 auto;padding:24px 16px 48px}header{text-align:center;margin-bottom:24px}header h1{color:var(--text-h);margin:0 0 8px;font-size:2rem}header p{max-width:600px;margin:0 auto;font-size:1rem}main{flex-direction:column;gap:20px;display:flex}section{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}#camera-section{text-align:center}video{background:#0f172a;border-radius:8px;width:100%;max-height:60vh;display:block}video.hidden{display:none}.canvas-wrapper{text-align:center;background:#0f172a;border-radius:8px;width:100%;overflow:auto}#display-canvas{cursor:crosshair;max-width:100%;margin:0 auto;display:block}.controls{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:1rem;font-weight:600;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{cursor:not-allowed;background:#94a3b8}.instructions{text-align:center;color:var(--text-h);margin-bottom:12px;font-weight:600}#status{text-align:center;padding:12px 16px;font-weight:500}#status.info{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}#status.error{color:#991b1b;background:#fef2f2;border-color:#fecaca}#status.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}#status.hidden{display:none}#results h2{color:var(--text-h);margin:0 0 12px}#results p{margin:6px 0;font-size:1.1rem}#distance-result{color:var(--text-h);font-size:1.25rem;font-weight:700}.hidden{display:none!important}footer{text-align:center;color:#64748b;margin-top:32px;font-size:.875rem}@media (width<=640px){header h1{font-size:1.5rem}button{flex:45%;padding:14px 12px}}
