:root{
  --ink:#0a0c11; --ink-soft:#11141c; --card:#161a24; --card2:#1c2130; --paper:#f1efe9; --muted:#9da1aa;
  --red:#ff3b25; --blue:#4977ff; --green:#2fbf71; --amber:#f2b134; --line:rgba(241,239,233,.14);
  --serif:Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:1.15;text-wrap:balance}
a{color:#8ea9ff}
button{font:inherit;color:inherit;cursor:pointer}
[hidden]{display:none!important}
.top{border-bottom:1px solid var(--line);background:rgba(10,12,17,.94);position:sticky;top:0;z-index:10}
.top .in{max-width:1080px;margin:0 auto;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.brand{font-family:var(--serif);font-size:1.1rem;color:var(--paper);text-decoration:none}
.brand b{color:var(--red);font-style:italic;font-weight:400}
.top a.back{font-size:.85rem;color:var(--muted);text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:22px max(16px,env(safe-area-inset-right)) 70px max(16px,env(safe-area-inset-left))}
.kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:8px}
.muted{color:var(--muted)}
.hero{background:linear-gradient(180deg,#1a1020,#0a0c11);border:1px solid var(--line);padding:30px 24px;margin-bottom:22px}
.hero h1{font-size:clamp(1.9rem,5vw,3rem)} .hero h1 em{color:var(--red)}
.hero p{max-width:60ch;color:#c8c5be}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.date{font-family:var(--serif);font-size:2rem;color:var(--red);line-height:1}
.date small{display:block;font-family:var(--sans);font-size:.75rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:4px}
.bar{height:6px;background:var(--card2);border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue)} .bar i.hot{background:var(--red)}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}
.p-ok{background:rgba(47,191,113,.15);color:var(--green)} .p-wait{background:rgba(242,177,52,.15);color:var(--amber)}
.p-bad{background:rgba(255,59,37,.15);color:var(--red)} .p-blue{background:rgba(73,119,255,.18);color:#8ea9ff} .p-grey{background:rgba(157,161,170,.15);color:var(--muted)}
.btn{display:inline-block;background:var(--red);border:0;color:#fff;padding:12px 22px;font-weight:700;letter-spacing:.04em;border-radius:3px;text-decoration:none;text-align:center}
.btn.alt{background:transparent;border:1px solid var(--line);color:var(--paper)}
.btn.sm{padding:7px 12px;font-size:.85rem}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.block{display:block;width:100%}
.layout{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start}
@media(max-width:820px){.layout{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);padding:20px;min-width:0}
.panel h3{font-size:1.2rem;margin-bottom:10px}
.tier{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.tier:last-child{border-bottom:0}
.tier small{display:block;color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:34px;height:34px;border:1px solid var(--line);background:var(--card2);border-radius:3px;font-size:1.1rem}
.qty span{min-width:1.4em;text-align:center;font-variant-numeric:tabular-nums}
.price{font-variant-numeric:tabular-nums;min-width:5em;text-align:right}
@media(max-width:480px){.tier{grid-template-columns:1fr auto}.tier .price{grid-column:1;text-align:left}.tier .qty{grid-column:2;grid-row:1 / span 2}}
label.f{display:block;font-size:.8rem;color:var(--muted);margin-bottom:12px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=datetime-local],input[type=url],textarea,select{display:block;width:100%;margin-top:4px;background:var(--ink);border:1px solid var(--line);color:var(--paper);padding:10px 12px;border-radius:3px;font:inherit;font-size:16px}
textarea{min-height:90px;resize:vertical}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:.85rem;color:#c8c5be;margin:8px 0}
.chk input{margin-top:3px;flex:none}
.pay{display:grid;gap:8px;margin:10px 0}
.pay label{display:flex;gap:10px;align-items:center;background:var(--card2);border:1px solid var(--line);padding:11px 12px;border-radius:3px;font-size:.9rem}
.pay label:has(input:checked){border-color:var(--red);background:rgba(255,59,37,.1)}
.sum{display:flex;justify-content:space-between;font-size:1.1rem;font-weight:700;padding-top:12px;border-top:1px solid var(--line);margin-top:8px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{padding:12px 16px;margin:12px 0;border:1px solid var(--line);background:var(--card2)}
.msg.ok{border-color:rgba(47,191,113,.4);background:rgba(47,191,113,.1)} .msg.warn{border-color:rgba(242,177,52,.4);background:rgba(242,177,52,.1)} .msg.err{border-color:rgba(255,59,37,.5);background:rgba(255,59,37,.1)}
.ticket{display:grid;grid-template-columns:1fr 200px;background:var(--paper);color:#12151d;border-radius:6px;overflow:hidden;margin-bottom:14px}
@media(max-width:560px){.ticket{grid-template-columns:1fr}.ticket .l{border-right:0!important;border-bottom:2px dashed #b9b4a8}}
.ticket .l{padding:20px;border-right:2px dashed #b9b4a8}
.ticket .l h3{font-size:1.4rem} .ticket .l h3 em{color:#d42a14}
.ticket .r{padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:.75rem;color:#444}
.ticket .r svg{width:170px;height:170px;display:block}
.ticket dl{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.88rem}
.ticket dt{color:#6b6a65} .ticket dd{margin:0;font-weight:600}
.ticket .code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;letter-spacing:.06em}
.ticket.used{opacity:.55}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.foot{margin-top:40px;font-size:.8rem;color:var(--muted)}
.spin{color:var(--muted);padding:30px 0}

.navlinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin:22px 0 0;font-size:.9rem}
.navlinks a{color:var(--muted);text-decoration:none;padding:6px 0}
.navlinks a:hover{color:var(--red)}

/* Typografia jak na stronie zespołu (sklep i skaner; panel ma własny, jasny styl) */
body:not(.panel) h1,body:not(.panel) h2,body:not(.panel) h3{font-family:var(--sans);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;line-height:1.08}
body:not(.panel) h1 em,body:not(.panel) h2 em,body:not(.panel) h3 em{font-family:var(--serif);font-weight:400;font-style:italic;text-transform:none;letter-spacing:0}
body:not(.panel) .hero h1{font-size:clamp(1.8rem,6vw,3.2rem)}
body:not(.panel) .panel h3,body:not(.panel) .card h3{font-size:1rem;letter-spacing:.02em}
body:not(.panel) .brand{font-family:var(--sans);font-weight:900;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}
body:not(.panel) .brand b{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.05rem}
body:not(.panel) .kicker{font-weight:900;letter-spacing:.22em}
body:not(.panel) .btn{font-weight:900;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;border-radius:0;min-height:48px;display:inline-flex;align-items:center;justify-content:center}
body:not(.panel) .btn.block{display:flex}
body:not(.panel) .btn.sm{min-height:0;padding:8px 14px;font-size:.72rem}
body:not(.panel) .date{font-family:var(--sans);font-weight:900}

/* plan sali w sklepie */
.planview{display:block;width:100%;height:auto;aspect-ratio:1000/700;border-radius:16px;margin-top:6px}
.planpanel .planlegend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px}
.planpanel .lg{display:flex;gap:8px;align-items:center;font-size:.9rem}
.planpanel .lg i{width:14px;height:14px;border-radius:4px;flex:none}

/* ---- sklep: zakładki, gadżety ---- */
.shoptabs{display:flex;gap:6px;margin:4px 0 14px}
.shoptabs a{padding:10px 18px;border:1px solid var(--line);color:var(--muted);text-decoration:none;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}
.shoptabs a[aria-current=page]{background:var(--paper);color:#0a0c11;border-color:transparent}
.goods{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.gcard{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.gcard .gart{width:100%;height:auto;display:block}
.gbody{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px}
.gbody h3{margin:0}.gbody p{margin:0;font-size:.85rem}
.gprice{font-weight:800;font-size:1.1rem}
.sizes{display:flex;flex-wrap:wrap;gap:4px}.sizes span{border:1px solid var(--line);padding:2px 8px;font-size:.75rem;color:var(--muted)}.sizes .off{text-decoration:line-through;opacity:.45}
.gline{display:grid;grid-template-columns:84px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
.gline:last-child{border-bottom:0}
.gline .gart{width:84px;height:84px}
.ginfo small{display:block;color:var(--muted)}
.gvars{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px}
.gvar{display:flex;align-items:center;gap:8px}.gvar .gl{min-width:2.2em;font-weight:700;font-size:.85rem}.gvar.off{opacity:.5}
.gvar .qty button{width:30px;height:30px}

.linklike{background:none;border:0;padding:0;color:var(--accent,#ff6a58);font:inherit;text-decoration:underline;cursor:pointer}
/* wybór numerowanych miejsc */
.seatpanel{margin-top:20px}
.seattitle{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-bottom:12px}
.seattitle h3{margin:0}
.seattitle p{margin:0;font-size:.9rem}
.seatpicker{display:flex;flex-direction:column;gap:12px;min-width:0}
.seathead{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;justify-content:space-between}
.seatquick{display:flex;flex-direction:column;gap:8px;min-width:0}
.seatcats,.seatns{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.qlab{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin-right:4px}
.numbtn{min-width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:inherit;font:inherit;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}
.numbtn:hover{background:#ff3b25;border-color:#ff3b25}
.numbtn:active{transform:scale(.95)}
.chipbtn{height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;font:inherit;font-size:.85rem;cursor:pointer}
.chipbtn.on{background:#f1efe9;color:#0a0c11;border-color:#f1efe9}
.seatzoom{display:flex;gap:6px}
.seatzoom .btn{min-width:42px;height:42px;padding:0;font-size:1.1rem}
.seatwrap{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:18px;max-height:72vh;background:#f7f5ef;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.seatinner{min-width:100%;transition:width .2s ease}
.seatinner .planview{margin-top:0;border-radius:0}
.seatplan .seat{cursor:pointer}
.seatplan .seat rect{transition:transform .12s ease,filter .12s ease;transform-box:fill-box;transform-origin:center}
.seatplan .seat:not(.taken):hover rect{transform:scale(1.2);filter:brightness(1.08) drop-shadow(0 2px 4px rgba(0,0,0,.35))}
.seatplan .seat.mine rect{filter:drop-shadow(0 2px 5px rgba(0,0,0,.4))}
.seatplan .seat.taken{cursor:not-allowed}
.seatlegend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.88rem}
.seatlegend .lg{display:flex;align-items:center;gap:8px}
.seatlegend .lg i{width:16px;height:16px;border-radius:5px;flex:none}
.seatlegend .lg.mine i{background:#12151d;box-shadow:inset 0 0 0 3px #ff3b25}
.seatlegend .lg.held i{background:repeating-linear-gradient(45deg,#6b7180 0 3px,#9095a1 3px 5px)}
.seatlegend .lg.taken i{background:#cfccc4}
.chosenwrap{margin-top:14px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.chosenwrap h4{margin:0 0 8px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.chosen{display:flex;flex-wrap:wrap;gap:8px}
.chosen .chip{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:6px 6px 6px 14px;font-size:.9rem}
.chosen .chip small{opacity:.7}
.chosen .chip button{width:28px;height:28px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:inherit;font-size:1rem;cursor:pointer}
.seatcount{font-weight:700;white-space:nowrap}
@media (max-width:600px){.seathead{flex-direction:column;align-items:stretch}.seatzoom{justify-content:flex-end}.numbtn{min-width:40px;height:40px}}
.numbtn.on{background:#ff3b25;border-color:#ff3b25;box-shadow:0 0 0 3px rgba(255,59,37,.3)}
.seathint{font-size:.85rem;opacity:.75;min-height:1.2em}
.seatplan .seat rect.hz{transform:none!important;filter:none!important;stroke:none!important}
.seatplan .seat.hov rect{transform:scale(1.22);stroke:#12151d;stroke-width:2.5px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.seatplan .seat.hovbad rect{stroke:#c0392b;stroke-width:2.5px;stroke-dasharray:3 2}
.seatplan .seat.mine rect{transform:scale(1.12)}
