/* Ticket purchase window — self-contained, does not depend on the Tailwind build */
.shop-root{--v:#0B0F19;--v2:#12172A;--v3:#1B2138;--paper:#F9FAFB;--gold:#C5A880;--goldb:#D4AF37;--gold-dim:#8A7454;
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;
  font-family:'Inter',-apple-system,'Segoe UI',sans-serif;color:var(--paper);-webkit-font-smoothing:antialiased;
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.shop-root.is-open{opacity:1;visibility:visible;transition:opacity .3s ease}
.shop-root *{box-sizing:border-box}
.shop-lock{overflow:hidden!important}
.shop-backdrop{position:absolute;inset:0;background:rgba(6,8,14,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.shop-panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:600px;max-height:min(920px,calc(100vh - 48px));max-height:min(920px,calc(100dvh - 48px));
  background:var(--v);border:1px solid rgba(255,255,255,.1);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.55);
  transform:translateY(24px) scale(.98);transition:transform .4s cubic-bezier(.16,1,.3,1);outline:none;overflow:hidden}
.shop-root.is-open .shop-panel{transform:none}
.shop-x{position:absolute;top:10px;right:10px;z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:rgba(249,250,251,.6);cursor:pointer;display:flex;align-items:center;justify-content:center}
.shop-x:hover{color:var(--goldb)}
.shop-f{display:flex;flex-direction:column;flex:1;min-height:0}
.shop-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:30px 30px 22px}
.shop-eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.3em;color:var(--gold);margin:0 0 10px}
.shop-title{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:30px;line-height:1.1;margin:0 40px 10px 0;text-wrap:balance}
.shop-sub{font-size:14px;line-height:1.55;color:rgba(249,250,251,.55);margin:0 0 22px}
.shop-h{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(249,250,251,.45);margin:0 0 6px;font-weight:600}
.shop-rows{margin:0 0 24px}
.shop-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.09)}
.shop-note{flex-basis:100%;margin-top:2px;font-size:12.5px;line-height:1.55;color:rgba(249,250,251,.55)}
.shop-note a{color:var(--goldb);text-decoration:underline;text-underline-offset:2px}
.shop-row:last-child{border-bottom:0}
.shop-row .nm{font-size:16px;font-weight:600}
.shop-row .nt{font-size:12.5px;line-height:1.4;color:rgba(249,250,251,.5);margin-top:3px}
.shop-row .pr{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13.5px;color:var(--gold);margin-top:4px}
.shop-step{display:flex;align-items:center;gap:2px;flex-shrink:0}
.shop-step button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(249,250,251,.22);background:transparent;color:var(--paper);font:inherit;font-size:22px;line-height:1;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .25s,color .25s,background .25s}
.shop-step button:disabled{opacity:.28;cursor:default}
.shop-step output{min-width:34px;text-align:center;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
@media (hover:hover){.shop-step button:not(:disabled):hover{border-color:var(--goldb);color:var(--goldb)}}
.shop-f label.l{display:block;font-size:13px;color:rgba(249,250,251,.65);margin:0 0 6px}
.shop-f label.l small{color:rgba(249,250,251,.35);font-size:12px}
.shop-f input[type=text],.shop-f input[type=email],.shop-f input[type=tel]{width:100%;height:48px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:12px;color:var(--paper);padding:0 14px;font:inherit;font-size:16px;margin:0 0 14px;transition:border-color .25s,box-shadow .25s}
.shop-f input::placeholder{color:rgba(249,250,251,.28)}
.shop-f input:focus{outline:none;border-color:var(--goldb);box-shadow:0 0 0 3px rgba(212,175,55,.14)}
.shop-f input.bad{border-color:rgba(248,113,113,.7)}
.shop-f .hint{font-size:12.5px;color:rgba(249,250,251,.42);margin:-8px 0 14px;line-height:1.45}
.shop-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.shop-consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5;color:rgba(249,250,251,.62);cursor:pointer;margin:2px 0 0}
.shop-consent input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0;accent-color:var(--goldb);cursor:pointer}
.shop-consent a{color:var(--goldb);text-decoration:underline;text-underline-offset:2px}
.shop-err{min-height:1.4em;margin:12px 0 0;font-size:14px;color:#f87171}
.shop-fine{font-size:12px;line-height:1.6;color:rgba(249,250,251,.4);margin:14px 0 0}
.shop-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 30px calc(14px + env(safe-area-inset-bottom));background:var(--v2);border-top:1px solid rgba(255,255,255,.08)}
.shop-sum{display:flex;flex-direction:column;min-width:0}
.shop-sum span{font-size:12.5px;color:rgba(249,250,251,.5)}
.shop-sum b{font-size:25px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}
.shop-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 30px;border-radius:999px;border:1px solid var(--gold);background:transparent;color:var(--goldb);font:inherit;font-size:16px;font-weight:500;letter-spacing:.02em;text-decoration:none;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;z-index:0;transition:color .45s cubic-bezier(.16,1,.3,1)}
.shop-btn::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .45s cubic-bezier(.16,1,.3,1);z-index:-1}
@media (hover:hover){.shop-btn:not(:disabled):hover::before{transform:none}.shop-btn:not(:disabled):hover{color:var(--v)}}
.shop-btn:disabled{opacity:.45;cursor:default}
.shop-btn.ghost{border-color:rgba(249,250,251,.25);color:var(--paper);min-height:44px;padding:0 20px;font-size:14px}
.shop-btn.ghost::before{background:rgba(249,250,251,.12)}
.shop-btn.block{display:flex;width:100%}
.shop-root :focus-visible{outline:2px solid var(--goldb);outline-offset:3px;border-radius:6px}
.shop-root .shop-panel:focus,.shop-root .shop-panel:focus-visible{outline:none}
/* result states */
.shop-state{padding:8px 0 6px}
.shop-mark{width:56px;height:56px;border-radius:50%;border:1px solid rgba(197,168,128,.5);background:rgba(212,175,55,.06);display:flex;align-items:center;justify-content:center;margin:0 0 20px}
.shop-mark.ok{border-color:rgba(74,222,128,.45);background:rgba(34,197,94,.08)}
.shop-mark.no{border-color:rgba(248,113,113,.45);background:rgba(239,68,68,.08)}
.shop-spin{width:22px;height:22px;border:2px solid rgba(197,168,128,.25);border-top-color:var(--goldb);border-radius:50%;animation:shopspin 1s linear infinite}
@keyframes shopspin{to{transform:rotate(360deg)}}
.shop-lead{font-size:15px;line-height:1.6;color:rgba(249,250,251,.62);margin:0 0 20px}
.shop-order{background:var(--v2);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:6px 18px;margin:0 0 18px}
.shop-order h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:19px;margin:14px 0 4px}
.shop-tk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.shop-tk:last-child{border-bottom:0}
.shop-tk .n{font-weight:600;font-size:15px}
.shop-tk .m{font-size:12.5px;color:rgba(249,250,251,.5);margin-top:3px;font-family:'JetBrains Mono',ui-monospace,monospace}
.shop-contacts{font-size:13px;line-height:1.7;color:rgba(249,250,251,.5);margin:18px 0 0}
.shop-contacts a{color:rgba(249,250,251,.85);text-decoration:none;border-bottom:1px solid rgba(197,168,128,.4)}
@media (max-width:640px){
  .shop-root{padding:0;align-items:flex-end}
  .shop-panel{max-width:none;max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);border-radius:20px 20px 0 0;border-bottom:0;transform:translateY(40px)}
  .shop-scroll{padding:26px 18px 18px}
  .shop-title{font-size:26px}
  .shop-bar{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
  .shop-btn{padding:0 22px}
  .shop-sum b{font-size:22px}
}
@media (max-width:360px){.shop-btn{padding:0 16px;font-size:15px}.shop-row .nt{font-size:12px}}
@media (prefers-reduced-motion:reduce){.shop-root,.shop-panel{transition:none}.shop-spin{animation-duration:3s}}
