:root{--bg:#0b0b0b;--panel:#151515;--line:#2a2a2a;--text:#f2f2f2;--muted:#9a9a9a;--accent:#d4ff3a;--danger:#ff4d4d;--ok:#2fd36b;--warn:#ffb020;--radius:14px;--display:"Helvetica Neue","Arial Narrow",Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit}.wrap{max-width:1040px;margin:0 auto;padding:0 20px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.logo{font-family:var(--display);font-weight:900;letter-spacing:.28em;font-size:14px;text-decoration:none}.logo b{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:13px}.hero{padding:64px 0 40px}.hero h1{font-family:var(--display);font-weight:900;font-size:clamp(44px,9vw,96px);line-height:.9;letter-spacing:-.03em;margin:0;text-transform:uppercase}.hero p{font-size:18px;max-width:520px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:18px;gap:18px;padding-bottom:60px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-decoration:none;display:block;transition:border-color .15s,transform .15s}a.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card .venue{color:var(--accent);font-weight:700;letter-spacing:.18em;font-size:12px}.card .venue,.card h2{text-transform:uppercase}.card h2{font-family:var(--display);font-weight:900;font-size:34px;margin:10px 0 6px;letter-spacing:-.02em}.from{margin-top:18px;font-size:15px}.event-head{padding:48px 0 28px;border-bottom:1px solid var(--line)}.event-head h1{font-family:var(--display);font-weight:900;font-size:clamp(40px,8vw,80px);line-height:.92;margin:8px 0 12px;text-transform:uppercase;letter-spacing:-.03em}.layout{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:32px;gap:32px;padding:32px 0 80px}@media (max-width:820px){.layout{grid-template-columns:1fr}}.tt{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.tt .name{font-weight:700;font-size:17px}.tt .price{font-weight:800;font-size:18px;margin-top:4px}.tt.off{opacity:.45}.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid;margin-left:6px}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#1d1d1d;color:var(--text);font-size:20px;cursor:pointer}.stepper button:disabled{opacity:.3;cursor:default}.stepper span{min-width:20px;text-align:center;font-weight:800;font-size:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:-webkit-sticky;position:sticky;top:20px}label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}input{width:100%;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:#0f0f0f;color:var(--text);font-size:16px}input:focus{outline:none;border-color:var(--accent)}.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:16px}.check input{width:auto;margin-top:2px}.btn{display:block;width:100%;padding:16px;border:0;border-radius:12px;background:var(--accent);color:#0b0b0b;font-weight:900;font-size:16px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-align:center;text-decoration:none;margin-top:18px}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.total{display:flex;justify-content:space-between;font-size:20px;font-weight:800;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.error{color:var(--danger);margin-top:12px}.error,.line{font-size:14px}.line{display:flex;justify-content:space-between;padding:4px 0}.ticket{max-width:420px;margin:40px auto;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:28px;text-align:center}.ticket img{width:100%;max-width:300px;background:#fff;padding:12px;border-radius:14px}.code{font-family:ui-monospace,monospace;font-size:20px;letter-spacing:.25em;margin-top:12px}.status{display:inline-block;padding:6px 14px;border-radius:999px;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase}.status.ok{background:rgba(47,211,107,.15);color:var(--ok)}.status.bad{background:rgba(255,77,77,.15);color:var(--danger)}.status.wait{background:rgba(255,176,32,.15);color:var(--warn)}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data td,table.data th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}table.data th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin:20px 0}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.kpi .v{font-size:26px;font-weight:900}.bar,.kpi .v{margin-top:6px}.bar{height:6px;background:#222;border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.scan-result{border-radius:18px;padding:28px 20px;text-align:center;margin-top:16px}.scan-result.ok{background:var(--ok);color:#031}.scan-result.used{background:var(--warn);color:#320}.scan-result.error,.scan-result.invalid{background:var(--danger);color:#300}.scan-result .big{font-family:var(--display);font-size:40px;font-weight:900;text-transform:uppercase}footer{border-top:1px solid var(--line);padding:24px 0 40px;font-size:13px;color:var(--muted)}