:root{--bg:#16181d;--card:#1f2229;--red:#e02434;--red-dim:#3a1418;--success:#2eb872;--success-dim:#12301f;--warn:#e8a33d;--text:#f1f2f4;--muted:#9aa0ab;--line:#2c3039;--radius:12px}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;-webkit-text-size-adjust:100%}a{color:inherit;text-decoration:none}h1,h2,h3{line-height:1.2}.wrap{max-width:480px;margin:0 auto;padding:0 16px 32px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.stack>*+*{margin-top:12px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 0;margin-bottom:12px;border-bottom:1px solid var(--line)}.hdr-left{gap:10px;font-size:18px}.bolt,.hdr-left{display:inline-flex;align-items:center}.bolt{justify-content:center;border-radius:8px;flex:none}.bolt,.btn{background:var(--red)}.btn{display:block;width:100%;padding:15px;border:0;border-radius:var(--radius);color:#fff;font-weight:700;font-size:16px;cursor:pointer;text-align:center}.btn:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn-big{padding:18px;text-align:left;display:flex;gap:12px;align-items:center}.btn-big small{display:block;font-weight:400;opacity:.85}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}input,select,textarea{width:100%;padding:13px 12px;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:10px;font-size:16px}input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:0;border-color:transparent}.err{color:#ff8a93;font-size:14px}.scanbox{position:relative;aspect-ratio:1/1;background:#0e0f12;border-radius:var(--radius);overflow:hidden}.scanbox video{width:100%;height:100%;object-fit:cover}.scanbox .frame{position:absolute;inset:18%;border:3px solid var(--red);border-radius:10px;box-shadow:0 0 0 999px rgba(0,0,0,.35);pointer-events:none}.scanbox .noc{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--muted)}.code-in{letter-spacing:.5em;font-size:26px;font-weight:700;text-transform:uppercase;padding-left:.5em;font-family:ui-monospace,SF Mono,Menlo,monospace}.code-in,.result{text-align:center}.result{border-radius:var(--radius);padding:24px 16px}.result.ok{background:var(--success-dim);border:1px solid var(--success)}.result.bad{background:var(--red-dim);border:1px solid var(--red)}.result .icon{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:#fff}.result.ok .icon{background:var(--success)}.result.bad .icon{background:var(--red)}.result .big{font-size:34px;font-weight:800;margin:8px 0 4px}.rows{width:100%;border-collapse:collapse}.rows td{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.rows td:last-child{text-align:right}.good{color:var(--success)}.kpis{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.kpi .n{font-size:24px;font-weight:800}.kpi .d{font-size:12px}.up{color:var(--success)}.down{color:#ff8a93}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;border:1px solid var(--line)}.pill.live{color:var(--success);border-color:var(--success);background:var(--success-dim)}.pill.review{color:var(--warn);border-color:var(--warn)}.pill.paused{color:var(--muted)}.bar{height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin:8px 0 4px}.bar>span{display:block;height:100%;background:var(--red)}.row{justify-content:space-between;align-items:center;gap:12px}.row,.steps{display:flex}.steps{gap:6px;margin:4px 0 16px}.steps span{flex:1 1;height:4px;border-radius:4px;background:var(--line)}.steps span.on{background:var(--red)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text);font-size:13px;cursor:pointer}.chip.on{border-color:var(--red);background:var(--red-dim)}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.note{background:var(--red-dim);border:1px solid #5a2229;border-radius:10px}.note,.okbox{padding:12px;font-size:14px}.okbox{background:var(--success-dim);border:1px solid #1f5a39;border-radius:10px}