:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20212a;background:#f8f9fc;font-synthesis:none;--muted:#737582;--accent:#6c50db;--line:#e4e5ed}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button,.file-button{touch-action:manipulation}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.48}button,.button,.file-button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 15px;color:inherit;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:42px}button:hover:not(:disabled),.button:hover,.file-button:hover{border-color:#bab8cc;background:#f8f7ff}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover:not(:disabled){background:#5c40c9;border-color:#5c40c9}[hidden]{display:none!important}main{max-width:1080px;margin:auto;padding:0 32px}header{height:94px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font-weight:650;font-size:24px;text-decoration:none;color:inherit;letter-spacing:-1px}.brand-mark{width:20px;height:20px;border:6px solid var(--accent);border-radius:50%}.brand-sub{font-size:13px;letter-spacing:0;color:var(--muted);font-weight:400;margin-left:4px}.experimental{font-size:12px;color:var(--muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;border-radius:0;padding:14px 20px;border-bottom:2px solid transparent;font-size:14px;color:var(--muted)}.tabs button[aria-pressed=true]{border-bottom-color:var(--accent);color:#292330}.intro{margin:30px 0 26px}h1{font-size:29px;letter-spacing:-.8px;line-height:1.2;font-weight:550;margin:0 0 10px}p{line-height:1.6;margin:0 0 14px}.intro p{font-size:14px;color:var(--muted)}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:44px;align-items:start}.settings{min-width:0}.upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;border:1px dashed #cdcbdc;border-radius:12px;padding:22px;background:#fff;cursor:pointer;text-align:center}.upload:hover,.upload.dragging{border-color:var(--accent);background:#f3efff}.upload strong{font-size:14px;font-weight:500}.upload span:last-of-type{font-size:12px;color:var(--muted)}.upload-icon{font-size:28px;color:#8b86a4}.upload input,.file-button input{position:absolute;width:1px;height:1px;opacity:0}.text-button{border:0;background:none;color:var(--accent);font-size:12px;padding:8px 0;margin-bottom:8px;min-height:36px}.text-button:hover:not(:disabled){background:none;border:0;text-decoration:underline}.field{display:block;font-size:12px;color:#555662;margin:17px 0}select{margin-top:8px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 9px;color:#30313a;font-size:13px;min-height:42px}.range-label{display:flex;justify-content:space-between;font-size:12px;margin:18px 0 6px;color:#555662}input[type=range]{width:100%;accent-color:var(--accent);margin:8px 0 24px}.settings>.primary{width:100%;margin:6px 0 14px}.small{color:var(--muted);font-size:12px;line-height:1.65}.code-surface{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:380px;display:flex;justify-content:center;align-items:center;overflow:hidden}.code-surface canvas{display:block;width:100%;height:auto}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:310px;gap:18px;color:#92939e;font-size:13px}.empty-orbit{width:62px;height:62px;border:1px solid #dfe0e9;border-radius:50%;box-shadow:inset 0 0 0 9px #f7f7fb,inset 0 0 0 10px #e7e7f0,inset 0 0 0 20px #fff,inset 0 0 0 21px #eeeeF4}.status{font-size:13px;margin:14px 0 12px;line-height:1.6;overflow-wrap:anywhere}.status.error{color:#aa333c}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.notice{background:#fff7e8;color:#7c5c1c;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.6}.scan-workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:30px}.camera-surface{position:relative;aspect-ratio:4/3;border-radius:12px;background:#eceef4;border:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center}.camera-surface video{display:block;width:100%;height:100%;object-fit:contain}.camera-surface canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#camera-placeholder{position:absolute;color:#9395a2;font-size:13px}.recovery-panel{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:310px;display:flex;justify-content:center;align-items:center;padding:20px;min-width:0}.recovery-panel .empty{min-height:260px}.verified{font-size:12px;color:#357e59;margin-bottom:15px}.recovery-panel img{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:auto}#recovery-content{width:100%}#recovery-meta{margin:12px 0}.file-button{position:relative;cursor:pointer;font-size:12px;min-height:38px}.boundary{max-width:700px;margin-top:30px}footer{border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;margin:44px 0 26px;padding-top:18px;color:#9a9ba5;font-size:11px}#source-preview{max-height:120px;max-width:100%;display:block;border-radius:5px;margin:8px auto}#source-meta{text-align:center;font-size:11px;margin-bottom:4px}dialog{border:0;border-radius:14px;padding:16px;max-width:96vw;max-height:96dvh;background:white;color:#222}dialog::backdrop{background:#13121bba}#code-dialog[open]{display:flex;flex-direction:column;align-items:center;gap:8px}#close-dialog{align-self:flex-end}#large-code{width:min(82vw,78dvh);height:auto;max-width:100%}noscript{display:block;text-align:center;padding:30px}
@media(min-width:1250px){main{max-width:1160px}.workspace{grid-template-columns:300px minmax(0,1fr);gap:64px}}
@media(max-width:700px){main{padding:0 20px}header{height:76px}.brand{font-size:23px}.brand-sub{font-size:12px}h1{font-size:25px}.intro{margin:24px 0 22px}.workspace,.scan-workspace{grid-template-columns:1fr;gap:24px}.code-surface{min-height:300px}.empty{min-height:280px}footer{flex-direction:column;gap:5px;margin-top:30px}.settings{display:flex;flex-direction:column}.settings .field{margin:10px 0}.settings>.primary{margin-top:10px}.scan-workspace{gap:20px}.recovery-panel{min-height:200px}.recovery-panel .empty{min-height:170px}}
