:root{--bg:#111;--panel:#111111d1;--line:#ffffff29;--text:#f5f5f5;--muted:#9a9a9a;--ok:#2ee58a;--warn:#ffb020;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;overflow:hidden}body{font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,label{font:inherit;color:inherit}[hidden]{display:none!important}#app,.screen{position:fixed;inset:0;overflow:hidden}#video,#overlay{width:100%;height:100%;display:block;position:absolute;inset:0}#video{object-fit:cover;background:#000;min-width:100%;min-height:100%}#overlay{pointer-events:none}#flash{background:var(--ok);opacity:0;pointer-events:none;position:absolute;inset:0}#flash.on{animation:.35s ease-out flash}@keyframes flash{0%{opacity:.35}to{opacity:0}}.topbar{z-index:2;padding:calc(var(--safe-t) + 14px) 16px 26px;background:linear-gradient(#0009,#0000);align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.topbar.solid{padding:calc(var(--safe-t) + 14px) 16px 8px;pointer-events:auto;background:0 0;position:static}.topbar,.hint,.controls{pointer-events:none}.topbar>*,.hint,.controls>*{pointer-events:auto}label.round,label.btn{cursor:pointer}.spacer{flex:1}.wordmark{opacity:.95;width:auto;height:14px;display:block}.round{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:relative}.round.small{width:40px;height:40px}.round svg{fill:currentColor;width:22px;height:22px}.round.small svg{width:20px;height:20px}.round.on{background:var(--warn);color:#231800;border-color:#0000}.round.pulse{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 8px #ffb02059}}.badge{color:#111;background:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px}.hint{left:50%;top:calc(var(--safe-t) + 66px);z-index:2;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);text-align:center;border-radius:999px;max-width:90%;padding:8px 16px;font-size:14px;transition:color .2s,border-color .2s;position:absolute;transform:translate(-50%)}.hint.warn{color:var(--warn);border-color:#ffb02080}.hint.ok{color:var(--ok);border-color:#2ee58a80}.controls{z-index:2;padding:24px 16px calc(var(--safe-b) + 16px);background:linear-gradient(#0000,#0009);justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;bottom:0;left:0;right:0}.zoom{background:var(--panel);border:1px solid var(--line);max-width:280px;height:48px;color:var(--muted);border-radius:24px;flex:1;align-items:center;gap:8px;padding:0 14px;font-size:12px;display:flex}.zoom input{accent-color:#fff;flex:1;min-width:0}.btn{border:1px solid var(--line);cursor:pointer;letter-spacing:.04em;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:600;display:inline-flex}.btn.primary{color:#111;background:#fff;border-color:#fff}.btn.big{text-transform:uppercase;letter-spacing:.12em;padding:16px 28px;font-size:16px}.btn.link{color:var(--muted);letter-spacing:0;border:none;padding:8px 10px;font-weight:500}.btn.link.danger{color:#ff7b7b}.btn:disabled{opacity:.6}.modal{z-index:20;padding:calc(var(--safe-t) + 14vh) 20px 20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b8;place-items:start center;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:#1b1b1b;border-radius:8px;gap:14px;width:100%;max-width:360px;padding:22px;display:grid}.modal-card h2{margin:0;font-size:18px}.modal-card input{border:1px solid var(--line);letter-spacing:.18em;text-align:center;font-variant-numeric:tabular-nums;background:#111;border-radius:4px;width:100%;padding:14px;font-size:26px}.modal-card input:focus{outline-offset:1px;outline:2px solid #fff}.muted-note{color:var(--muted);margin:0;font-size:13px}.muted-note.error{color:#ff8a8a}.modal-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.muted{color:var(--muted);letter-spacing:.18em;font-size:13px}.center{text-align:center}.start{z-index:5;background:var(--bg);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.start-card{text-align:center;justify-items:center;gap:18px;width:100%;max-width:360px;display:grid}.logo-big{width:min(280px,72vw);height:auto}.product{letter-spacing:.5em;color:var(--muted);margin-right:-.5em;font-size:12px}.start-card p{color:var(--muted);margin:4px 0 8px}.start-card p.error{color:#ff8a8a}.result-screen{padding-bottom:calc(var(--safe-b) + 20px);background:var(--bg);flex-direction:column;display:flex}.result-body{text-align:center;flex-direction:column;flex:1;align-items:center;gap:12px;min-height:0;padding:12px 20px;display:flex;overflow-y:auto}.result-body:before,.result-body:after{content:"";flex:1 1 0}.check{background:var(--ok);color:#05241a;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:30px;animation:.3s ease-out pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.5)}}.result-body>*{flex-shrink:0;max-width:100%}.result-text{letter-spacing:.04em;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;font:700 clamp(26px,8.5vw,40px)/1.2 ui-monospace,SF Mono,Consolas,monospace}.result-actions{grid-template-columns:1fr 2fr;gap:12px;width:calc(100% - 40px);max-width:520px;margin:0 auto;display:grid}.history-screen{background:var(--bg);padding-bottom:var(--safe-b);flex-direction:column;display:flex}.history-screen h2{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:8px 20px 4px;font-size:13px;font-weight:500}.history{-webkit-user-select:text;user-select:text;flex:1;margin:0;padding:0 20px;list-style:none;overflow:auto}.history li{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:12px 0;display:flex}.history .txt{flex:1;min-width:0}.history .value{word-break:break-all;font:700 18px ui-monospace,Consolas,monospace}.history .meta{color:var(--muted);margin-top:2px;font-size:12px}.history-screen .center{letter-spacing:0;margin-top:40px;font-size:14px}.boot-screen{background:var(--bg);z-index:30;place-content:center;justify-items:center;gap:18px;display:grid}.login-screen{background:var(--bg);z-index:30;place-items:center;padding:24px;display:grid;overflow-y:auto}.login-card{text-align:left;justify-items:stretch;gap:16px;width:100%;max-width:340px;display:grid}.login-card .logo-big{justify-self:center}.login-card .product{text-align:center}.field-input{color:var(--muted);letter-spacing:.06em;gap:6px;font-size:13px;display:grid}.field-input input{border:1px solid var(--line);width:100%;color:var(--text);background:#1b1b1b;border-radius:4px;padding:14px;font-size:17px}.field-input input:focus{outline-offset:1px;outline:2px solid #fff}#login-msg{min-height:1.3em}.conn{color:var(--warn);background:#ffb0202e;border:1px solid #ffb02066;border-radius:999px;margin-left:10px;padding:3px 10px;font-size:12px}.check.busy{border:3px solid var(--line);background:0 0;border-top-color:#fff;animation:.9s linear infinite spin}.check.warn{background:var(--warn);color:#231800}.check.bad{color:#2a0505;background:#ff6b6b}@keyframes spin{to{transform:rotate(360deg)}}.result-detail{text-align:left;gap:12px;width:100%;max-width:520px;display:grid}.result-worker{letter-spacing:.08em;color:var(--muted);opacity:.45;-webkit-user-select:none;user-select:none;margin-top:4px;font-size:11px}.piece{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#1b1b1b;border-radius:10px;gap:14px;padding:16px;display:grid}.piece-title{overflow-wrap:anywhere;font-size:17px;font-weight:600;line-height:1.35}.piece-grid{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px 16px;padding-top:14px;display:grid}.piece-grid .field .label{white-space:nowrap}.piece-grid .field .value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.piece>.piece-grid:first-child{border-top:0;padding-top:0}.field.wide{border-top:1px solid var(--line);padding-top:14px}.field.code .value{color:var(--muted);font:14px ui-monospace,SF Mono,Consolas,monospace}.field .label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px}.field .value{overflow-wrap:anywhere;white-space:pre-wrap;font-size:17px}.notfound{border:1px solid var(--line);color:var(--muted);text-align:center;background:#1b1b1b;border-radius:8px;padding:14px 16px}.result-actions{grid-template-columns:1fr 2fr}.result-actions #result-retry:not([hidden]){grid-column:1}.badge-status{border:1px solid var(--line);color:var(--muted);border-radius:999px;flex:none;padding:3px 10px;font-size:12px}.badge-status.completed{color:var(--ok);border-color:#2ee58a80}.badge-status.failed{color:#ff8a8a;border-color:#ff8a8a80}.badge-status.pending,.badge-status.claimed,.badge-status.processing{color:var(--warn);border-color:#ffb02080}.history li{cursor:pointer}#history-more{align-self:center;margin:8px 0}#history-error{margin:8px 20px}
