:root{--bg: #ffffff;--surface: #ffffff;--surface-2: #f4f5f7;--border: #e5e7eb;--text: #0a0a0a;--muted: #6b7280;--accent: #2563eb;--accent-press: #1d4ed8;--danger: #dc2626;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:460px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 4px 16px;border-bottom:1px solid var(--border);margin-bottom:20px}.topbar h1{font-size:18px;font-weight:600;margin:0;letter-spacing:-.01em}main{flex:1;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px}.card h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.muted{color:var(--muted);margin:0;font-size:14px}.hint{text-align:center;color:var(--muted);font-size:14px;margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}input{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:16px;color:var(--text);outline:none;transition:border-color .15s}input:focus{border-color:var(--accent)}.segmented{display:flex;gap:8px}.segmented button{flex:1;padding:11px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:15px;cursor:pointer;transition:all .15s}.segmented button.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:500}button.primary{margin-top:4px;padding:14px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:background .15s}button.primary:active{background:var(--accent-press)}button.link{background:none;border:none;color:var(--accent);font-size:14px;cursor:pointer;padding:0}.error{color:var(--danger);font-size:14px;margin:0}.error.banner{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:12px 14px}.scanner{display:flex;flex-direction:column;gap:16px;align-items:center}.video-wrap{position:relative;width:100%;aspect-ratio:3 / 4;border-radius:14px;overflow:hidden;background:#0a0a0a;border:1px solid var(--border)}.video-wrap video{width:100%;height:100%;object-fit:cover}.reticle{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:1.5px solid rgba(255,255,255,.85);border-radius:10px;pointer-events:none}.shutter{width:100%;padding:15px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:background .15s}.shutter:active{background:var(--accent-press)}.shutter:disabled{opacity:.5;cursor:default}.result .badge{align-self:flex-start;background:var(--surface-2);color:var(--muted);padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.stats{display:flex;gap:12px}.stat{flex:1;background:var(--surface-2);border-radius:12px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:4px}.stat .value{font-size:28px;font-weight:700;color:var(--text);letter-spacing:-.02em}.stat .label{font-size:13px;color:var(--muted)}.target{background:var(--surface-2);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.target input{background:var(--surface)}.target-answer{margin:0;font-size:16px;color:var(--muted)}.target-answer strong{color:var(--accent);font-size:20px}.note{margin:0;font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:10px 12px;line-height:1.4}
