:root{--bg:#f4f6fa;--card:#fff;--text:#1b2330;--muted:#5b6577;--primary:#2563eb;--danger:#dc2626;--ok:#15803d;--warn-bg:#fff7e6;--warn:#92400e;--border:#dde3ec;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0f141b;--card:#18202b;--text:#e6ebf2;--muted:#9aa5b5;--border:#2a3443;--warn-bg:#3a2c12;--warn:#fcd34d}}*{box-sizing:border-box}body{margin:0}.app{max-width:640px;margin:0 auto;padding:32px 16px 48px}header h1{margin:0 0 4px;font-size:1.75rem}.subtitle{color:var(--muted);margin:0 0 24px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;padding:24px;display:flex}.card.center{text-align:center;align-items:center}.error-card{border-color:var(--danger)}.card h2{margin:0}button{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:10px 18px}button:disabled{opacity:.6;cursor:progress}button.big{padding:14px 24px;font-size:1.1rem;font-weight:600}.primary{background:var(--primary);color:#fff}.secondary{color:var(--primary);border:1px solid var(--primary);background:0 0}.danger{background:var(--danger);color:#fff}.steps{color:var(--muted);margin:0;padding-left:20px;line-height:1.6}.label{color:var(--muted);margin:0}.code-form{flex-direction:column;gap:12px;display:flex}.code-input{letter-spacing:.3em;text-align:center;border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(2rem,9vw,3rem);font-weight:700}.code-input:focus{border-color:var(--primary);outline:none}.code-input.invalid{border-color:var(--danger)}.field-error{color:var(--danger);margin:0}.warning{background:var(--warn-bg);color:var(--warn);border-radius:8px;margin:0;padding:10px 12px}.hint{color:var(--muted);margin:0}.status-grid{grid-template-columns:max-content 1fr;gap:10px 16px;margin:0;display:grid}.status-grid dt{color:var(--muted)}.status-grid dd{overflow-wrap:anywhere;margin:0}.status-grid dd.ok{color:var(--ok);font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.dot{background:var(--muted);border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.dot.on{background:var(--ok)}.dot.pending{background:#f59e0b}.preview{object-fit:contain;background:#000;border-radius:8px;width:100%;max-height:220px;margin-top:16px}@media (width<=480px){.status-grid{grid-template-columns:1fr}}
