:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif}button:focus-visible{outline-offset:2px;outline:3px solid #80cbc4}:root{--ink:#17212b;--muted:#71808c;--line:#dce4e8;--accent:#087f8c;--mint:#e4f4f1;--paper:#fff;--bg:#f5f8f8}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}.shell{width:min(100% - 32px,640px);margin:auto;padding:32px 0 28px}.header{align-items:center;gap:14px;display:flex}.brand-mark{grid-template-columns:repeat(4,5px);align-items:center;gap:3px;height:30px;display:grid}.brand-mark span{background:var(--accent);border-radius:4px;width:5px;display:block}.brand-mark span:first-child{height:18px}.brand-mark span:nth-child(2){height:30px}.brand-mark span:nth-child(3){height:23px}.brand-mark span:nth-child(4){height:14px}.eyebrow{color:var(--accent);letter-spacing:.16em;margin:0 0 2px;font-size:10px;font-weight:700}h1,h2,p{margin:0}h1{letter-spacing:-.04em;font-size:26px}h2{font-size:19px}.intro{color:var(--muted);margin:18px 0 20px;font-size:13px}.scanner-card,.result-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 28px #183b4210}.preview-wrap{background:#16262b;height:min(82vw,390px);min-height:270px;position:relative;overflow:hidden}#preview{object-fit:cover;width:100%;height:100%;display:block}.empty-preview{text-align:center;color:#d9e6e6;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.empty-preview[hidden],.live-badge[hidden]{display:none}.empty-preview p{font-size:14px}.empty-preview small{color:#91a6aa;font-size:11px}.camera-icon{color:#69bec0;font-size:38px;line-height:1}.scan-frame{pointer-events:none;border:1px solid #d5fffb99;border-radius:12px;position:absolute;inset:18% 9%}.scan-frame i{border-style:solid;border-color:#77e5d8;width:18px;height:18px;position:absolute}.scan-frame i:first-child{border-width:3px 0 0 3px;top:-1px;left:-1px}.scan-frame i:nth-child(2){border-width:3px 3px 0 0;top:-1px;right:-1px}.scan-frame i:nth-child(3){border-width:0 0 3px 3px;bottom:-1px;left:-1px}.scan-frame i:nth-child(4){border-width:0 3px 3px 0;bottom:-1px;right:-1px}.scan-frame span{background:#77e5d899;height:1px;position:absolute;top:50%;left:10%;right:10%}.live-badge{color:#bdf6ed;letter-spacing:.1em;background:#0e2529cc;border-radius:5px;padding:5px 8px;font:700 10px ui-monospace,monospace;position:absolute;top:14px;left:16px}.live-badge b{background:#49d6bd;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.controls{gap:10px;padding:17px 18px 10px;display:flex}.controls button,.copy,.rescan{cursor:pointer;border:0;border-radius:9px;min-height:44px;padding:0 16px;font:700 13px inherit}.primary{color:#fff;background:var(--accent);flex:1}.secondary{color:var(--ink);background:#edf2f3}.controls button:disabled,.copy:disabled,.rescan:disabled{opacity:.4;cursor:not-allowed}.status{min-height:34px;color:var(--muted);padding:0 18px 17px;font-size:11px}.status.error{color:#b23b3b}.result-card{margin-top:16px;padding:20px}.section-heading{justify-content:space-between;align-items:start;margin-bottom:20px;display:flex}.result-state{color:var(--muted);background:#eef2f3;border-radius:5px;padding:5px 8px;font-size:10px}.result-state.success{background:var(--mint);color:#19736c}.result-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:15px;padding:16px 0;display:grid}.field-label{color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.value{word-break:break-all;font-size:14px}.copy{width:100%;color:var(--accent);background:var(--mint);margin-top:16px}.rescan{color:var(--muted);background:0 0;margin:12px auto 0;display:block}.rescan:not(:disabled):hover{color:var(--accent)}footer{color:#839297;justify-content:center;gap:16px;margin-top:20px;font-size:10px;display:flex}@media (width>=560px){.result-grid{grid-template-columns:1.3fr 1fr 1fr}.result-grid>div+div{border-left:1px solid var(--line);padding-left:16px}}
