:root{--bg:#10104a;--panel:#1b1b6e;--panel2:#23237e;--line:#2b2b8a;--line2:#5c5ca8;--text:#f3f1ea;--soft:#d9d6cc;--muted:#b3b2c9;--accent:#c9a86a;--ok:#8fe8d0;--warn:#ffb36b;--bad:#ffb199;--ink:#10104a}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Red Hat Text','Readex Pro',system-ui,sans-serif;font-size:16px;line-height:1.5}
a{color:var(--accent)}
h1,h2,h3{margin:0;line-height:1.2;font-family:'Red Hat Display','Red Hat Text',system-ui,sans-serif}
[dir=rtl] body,[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{font-family:'Readex Pro','Red Hat Text',system-ui,sans-serif}
h1{font-size:clamp(28px,5vw,42px);font-weight:700}
h2{font-size:22px;font-weight:600}
h3{font-size:18px;font-weight:600}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.top{border-bottom:2px solid var(--accent);background:var(--bg)}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:20px;font-weight:900;font-family:'Red Hat Display',system-ui,sans-serif;letter-spacing:.03em;text-decoration:none;min-height:44px}
main.wrap{padding-top:28px;padding-bottom:64px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.between{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:14px}
.btn{min-height:48px;padding:0 22px;border-radius:4px;border:0;background:var(--accent);color:var(--ink);font-weight:700;font-family:'Red Hat Display',system-ui,sans-serif;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--text);font-weight:500}
.btn.outline{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.btn.small{min-height:44px;padding:0 14px;border-radius:6px;font-size:15px}
.btn.danger{background:transparent;border:1px solid var(--bad);color:var(--bad)}
.link{background:none;border:0;padding:0;min-height:44px;color:var(--soft);font-size:15px;text-decoration:none;display:inline-flex;align-items:center}
.pill{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:var(--panel);color:var(--text);font-size:15px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px}
.muted{color:var(--muted)}.soft{color:var(--soft)}.small{font-size:14px}
.accent{color:var(--accent)}
label{font-size:14px;color:var(--soft);display:block;margin-bottom:6px}
input,select,textarea{width:100%;min-height:48px;padding:10px 14px;border-radius:6px;border:1px solid var(--line2);background:var(--bg);color:var(--text)}
textarea{min-height:90px}
input[type=checkbox]{width:22px;height:22px;min-height:0;padding:0;accent-color:var(--accent)}
.check{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-size:16px;color:var(--text)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.card .body{padding:18px;display:flex;flex-direction:column;gap:6px;flex-grow:1}
.poster{background:var(--panel2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;overflow:hidden}
.poster img{width:100%;height:100%;object-fit:cover;display:block}
.card .poster{height:160px}
.hero{display:flex;flex-wrap:wrap;gap:28px}
.hero .poster{flex:1 1 300px;height:360px;border-radius:6px}
.hero .info{flex:1 1 360px;display:flex;flex-direction:column;gap:16px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.fact{background:var(--panel);border-radius:6px;padding:14px}
.split{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.split>.main{flex:999 1 520px;min-width:0}
.split>.side{flex:1 1 300px}
.mapscroll{overflow-x:auto;padding-bottom:8px}
.map{min-width:max-content;display:flex;flex-direction:column;gap:8px;align-items:center;direction:ltr}
.stage{width:min(420px,90%);min-width:240px;height:36px;border-radius:6px 6px 40px 40px;background:#2a2a8a;color:var(--soft);font-size:13px;letter-spacing:.2em;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.srow{display:flex;align-items:center;gap:6px}
.srow .lt{width:24px;text-align:center;color:var(--muted);font-size:14px;font-weight:600}
.seat{width:44px;height:44px;padding:0;border-radius:8px 8px 4px 4px;border:2px solid #8a8ac4;background:#2a2a8a;color:var(--text);font-size:13px;font-weight:600}
.seat.vip{border-color:var(--accent)}
.seat.on{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.seat.taken{background:#0a0a3a;border-color:var(--line);color:#8a8ac4;opacity:1}
.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:14px;color:var(--soft);margin-top:16px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:18px;height:18px;border-radius:5px;background:#2a2a8a;border:2px solid #8a8ac4;display:inline-block}
.legend i.vip{border-color:var(--accent)}.legend i.on{background:var(--accent);border-color:var(--accent)}.legend i.taken{background:#0a0a3a;border-color:var(--line)}
.line{display:flex;justify-content:space-between;gap:12px}
.total{border-top:1px solid var(--line);padding-top:14px;font-size:20px}
.msg{min-height:22px;font-size:14px}
.msg.bad{color:var(--bad)}.msg.ok{color:var(--ok)}
.banner{background:#2d2440;border:1px solid var(--accent);color:#f1dfb5;border-radius:6px;padding:12px 16px;font-size:15px}
.ticket{background:#f7f5f0;color:var(--ink);border-radius:6px;overflow:hidden;max-width:420px;width:100%}
.ticket .tinfo{padding:20px;display:flex;flex-direction:column;gap:6px}
.ticket .tqr{border-top:2px dashed #A6ADC4;padding:22px;display:flex;flex-direction:column;align-items:center;gap:10px}
.ticket .tqr img,.ticket .tqr canvas{display:block}
.ticket .dim{color:#3A4160;font-size:13px}
.tickets{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:start;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:500}
.tablebox{overflow-x:auto}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.tabs button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:var(--text)}
.tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:600}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;border:1px solid var(--line2)}
.badge.paid{background:var(--ok);color:var(--ink);border-color:var(--ok)}
.result{border-radius:8px;padding:18px;min-height:120px;background:var(--panel);display:flex;flex-direction:column;justify-content:center;gap:4px}
.result.valid{background:var(--ok);color:var(--ink)}
.result.used,.result.invalid,.result.wrong_event{background:var(--warn);color:var(--ink)}
.result .big{font-size:26px;font-weight:700}
#reader{border-radius:8px;overflow:hidden;background:#0a0a3a;min-height:240px}
@media print{body{background:#fff;color:#000}.noprint,.top{display:none!important}.ticket{border:1px solid #999;break-inside:avoid}}
