:root{--bg:#0b0d10;--card:#15191f;--card-2:#1c222a;--text:#f7f9fb;--muted:#8f9aa8;--line:#2b333d;--accent:#6ee7b7;--danger:#fb7185}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{cursor:pointer}.shell{width:min(100%,760px);min-height:100dvh;margin:0 auto;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.brand{letter-spacing:-.02em;font-size:18px;font-weight:750}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px}.login-shell{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{width:min(100%,420px)}.login-card h1,.manage-title{letter-spacing:-.04em;margin:0 0 8px}.login-card p{margin:0 0 24px}.field{gap:8px;margin-top:16px;display:grid}.field label{color:var(--muted);font-size:14px}.input{border:1px solid var(--line);width:100%;color:var(--text);background:#0f1216;border-radius:12px;outline:none;padding:14px 16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6ee7b722}.button{background:var(--accent);color:#07130e;border:0;border-radius:12px;padding:14px 18px;font-weight:750}.button:disabled{cursor:not-allowed;opacity:.55}.button.secondary{background:var(--card-2);color:var(--text);border:1px solid var(--line)}.button.danger{background:var(--danger);color:#21070d}.button.full{width:100%;margin-top:20px}.error-text{color:var(--danger);margin-top:14px}.scanner-frame{aspect-ratio:3/4;border:1px solid var(--line);background:#050607;border-radius:24px;width:100%;max-height:68dvh;position:relative;overflow:hidden}.scanner-frame video{object-fit:cover;width:100%;height:100%}.scan-guide{aspect-ratio:1;pointer-events:none;border:3px solid #fffc;border-radius:26px;width:min(70%,320px);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #0005}.scan-hint{text-align:center;color:var(--muted);margin:16px 0 0}.result{text-align:center;border-radius:24px;place-items:center;min-height:62dvh;padding:28px;display:grid}.result.accepted{background:#0d3b2d;border:1px solid #1a7659}.result.already-used,.result.invalid,.result.error{background:#41151e;border:1px solid #8b293e}.result-icon{font-size:76px;line-height:1}.result h1{margin:18px 0 6px;font-size:clamp(32px,8vw,54px);line-height:1}.result p{margin:8px 0;font-size:18px}.ticket-number{font-weight:800;font-size:28px!important}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}.stat strong{font-size:clamp(24px,5vw,36px);display:block}.stat span{color:var(--muted);font-size:13px}.search-row{gap:10px;margin-top:18px;display:flex}.search-row .input{flex:1}.ticket-result{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.ticket-result h2{margin:0 0 8px}.actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}@media (max-width:520px){.shell{padding:16px}.stats{gap:8px}.stat{padding:14px 12px}.search-row{flex-direction:column}}
