.ticket-design-form{display:grid;gap:24px}.ticket-design-section{padding:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(150deg,#141414,#0d0d0d)}.ticket-design-section h2{margin:0 0 7px;font:800 19px Manrope,sans-serif}.ticket-design-section>p,.ticket-design-hint{margin:0 0 16px;color:var(--muted);font-size:12px}.ticket-design-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ticket-template-option{position:relative;display:grid;gap:8px;padding:9px;border:1px solid #ffffff19;border-radius:15px;background:#ffffff05;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.ticket-template-option:hover{transform:translateY(-2px);border-color:#90909088}.ticket-template-option.selected{border-color:#858585;background:#56565613;box-shadow:0 0 0 2px #67676722}.ticket-template-option input{position:absolute;opacity:0;pointer-events:none}.ticket-template-option b{font-size:11px}.ticket-template-option small{color:#a1a1a1;font-size:9px}.ticket-template-select{justify-self:start;padding:5px 9px;border:1px solid #ffffff20;border-radius:9px;background:#ffffff0b;color:#ffffff;font-size:9px;font-weight:800}.ticket-template-option.selected .ticket-template-select{border-color:#686868;background:#4f4f4f}.ticket-template-swatch{position:relative;overflow:hidden;display:grid;height:72px;align-content:end;padding:8px;border:1px solid #ffffff37;border-radius:10px;background:linear-gradient(110deg,var(--template-a),var(--template-b))}.ticket-template-swatch:before{position:absolute;inset:0 32% 0 0;content:"";background-image:linear-gradient(0deg,#050505c9,transparent),url('../images/hero-stage.png');background-position:center;background-size:cover;opacity:.78}.ticket-template-swatch:after{position:absolute;top:7px;right:7px;width:28px;height:42px;content:"";border:1px dashed #ffffff99;border-radius:5px;background:repeating-linear-gradient(0deg,#ffffff22 0 3px,transparent 3px 6px)}.ticket-template-swatch span{position:relative;z-index:1;max-width:75%;color:var(--swatch-text,#ffffff);font:800 11px Manrope,sans-serif;text-shadow:0 2px 5px #000000}.ticket-template-option[data-template="concert"],.ticket-template-swatch[data-template="concert"],.ticket-pass[data-template="concert"]{--template-a:#1e1e1e;--template-b:#505050;--template-text:#ffffff;--template-accent:#7a7a7a;--template-glow:#63636355}.ticket-template-option[data-template="cultural"],.ticket-template-swatch[data-template="cultural"],.ticket-pass[data-template="cultural"]{--template-a:#1b1b1b;--template-b:#848484;--template-text:#f7f7f7;--template-accent:#d5d5d5;--template-glow:#aaaaaa50}.ticket-template-option[data-template="conference"],.ticket-template-swatch[data-template="conference"],.ticket-pass[data-template="conference"]{--template-a:#272727;--template-b:#6e6e6e;--template-text:#f7f7f7;--template-accent:#c8c8c8;--template-glow:#8d8d8d4f}.ticket-template-option[data-template="night-party"],.ticket-template-swatch[data-template="night-party"],.ticket-pass[data-template="night-party"]{--template-a:#101010;--template-b:#4d4d4d;--template-text:#ffffff;--template-accent:#818181;--template-glow:#63636355}.ticket-template-option[data-template="food"],.ticket-template-swatch[data-template="food"],.ticket-pass[data-template="food"]{--template-a:#282828;--template-b:#979797;--template-text:#f8f8f8;--template-accent:#d2d2d2;--template-glow:#a8a8a850}.ticket-template-option[data-template="sports"],.ticket-template-swatch[data-template="sports"],.ticket-pass[data-template="sports"]{--template-a:#191919;--template-b:#626262;--template-text:#f7f7f7;--template-accent:#bfbfbf;--template-glow:#74747455}.ticket-template-option[data-template="movie"],.ticket-template-swatch[data-template="movie"],.ticket-pass[data-template="movie"]{--template-a:#0c0c0c;--template-b:#474747;--template-text:#f3f3f3;--template-accent:#c6c6c6;--template-glow:#71717155}.ticket-template-option[data-template="art"],.ticket-template-swatch[data-template="art"],.ticket-pass[data-template="art"]{--template-a:#f3f3f3;--template-b:#e1e1e1;--template-text:#1a1a1a;--template-accent:#5b5b5b;--template-glow:#c9c9c955}.ticket-template-option[data-template="charity"],.ticket-template-swatch[data-template="charity"],.ticket-pass[data-template="charity"]{--template-a:#f8f8f8;--template-b:#c6c6c6;--template-text:#2a2a2a;--template-accent:#8c8c8c;--template-glow:#9b9b9b55}.ticket-template-option[data-template="esports"],.ticket-template-swatch[data-template="esports"],.ticket-pass[data-template="esports"]{--template-a:#0e0e0e;--template-b:#434343;--template-text:#f5f5f5;--template-accent:#c8c8c8;--template-glow:#51515166}
.ticket-preview-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0}.ticket-preview-controls span{color:var(--muted);font-size:10px}.ticket-preview-switch{display:flex;padding:3px;border:1px solid #ffffff1b;border-radius:99px;background:#0b0b0b}.ticket-preview-switch button{padding:6px 10px;border:0;border-radius:99px;background:transparent;color:#a4a4a4;font-size:9px;font-weight:800}.ticket-preview-switch button.active{background:#4e4e4e;color:white}.ticket-preview-device{width:100%;transition:max-width .2s}.ticket-preview-device.is-mobile{max-width:390px;margin:0 auto}.ticket-preview-device.is-desktop{max-width:860px;margin:0 auto}.ticket-design-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ticket-design-upload-grid>label,.ticket-design-field{display:grid;gap:6px;color:#e3e3e3;font-size:11px;font-weight:700}.ticket-design-field small,.ticket-design-upload-grid small{color:#8d8d8d;font-size:9px;font-weight:500}.ticket-design-upload-grid input[type=file]{width:100%;padding:10px;border:1px dashed #88888844;border-radius:12px;background:#ffffff06;color:#b9b9b9;font-size:10px}.ticket-design-field input,.ticket-design-field select,.ticket-design-field textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid #ffffff20;border-radius:11px;background:#101010;color:#f5f5f5}.ticket-design-field textarea{min-height:78px;resize:vertical}.ticket-design-custom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ticket-design-custom-grid .span-all{grid-column:1/-1}.ticket-template-submit{width:100%;min-height:50px}.ticket-template-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #ffffff14}.ticket-template-list-row b{display:block}.ticket-template-list-row small{color:var(--muted)}
.ticket-pass{position:relative;display:grid;grid-template-columns:minmax(0,1.85fr) minmax(155px,.78fr);min-height:250px;overflow:hidden;border:1px solid color-mix(in srgb,var(--template-accent) 78%,white 8%);border-radius:19px;background:linear-gradient(118deg,var(--template-a),var(--template-b));box-shadow:0 18px 40px #05050566,0 0 18px var(--template-glow);color:var(--template-text)}.ticket-pass-main{position:relative;display:grid;grid-template-rows:auto minmax(125px,1fr) auto auto;padding:14px 16px 11px;isolation:isolate}.ticket-pass-main:before,.ticket-pass-main:after{position:absolute;z-index:-1;content:"";pointer-events:none}.ticket-pass-main:before{inset:0;background:radial-gradient(circle at 10% 15%,var(--template-glow),transparent 42%),linear-gradient(120deg,#04040462,transparent 65%)}.ticket-pass-main:after{right:-34px;bottom:10px;width:130px;height:130px;border:1px solid color-mix(in srgb,var(--template-accent) 40%,transparent);border-radius:50%;box-shadow:0 0 0 11px #ffffff09,0 0 0 23px #ffffff06}.ticket-pass-brand{display:flex;align-items:center;gap:8px;min-width:0}.ticket-organizer-mark{display:grid;width:31px;height:31px;flex:none;place-items:center;border:1px solid #ffffff52;border-radius:9px;background:#0b0b0b55}.ticket-organizer-mark img{width:21px;height:21px;object-fit:contain}.ticket-pass-brand>span:nth-child(2){display:grid;min-width:0;gap:2px}.ticket-pass-brand>span:nth-child(2) b{overflow:hidden;font:800 11px Manrope,sans-serif;text-overflow:ellipsis;white-space:nowrap}.ticket-pass-brand>span:nth-child(2) small{font-size:8px;opacity:.75}.ticket-pass-ribbon{margin-left:auto;padding:5px 8px;border:1px solid #ffffff45;border-radius:99px;background:#0808082b;font-size:8px;font-weight:850;white-space:nowrap}.ticket-pass-hero{position:relative;display:flex;min-height:125px;align-items:flex-end;overflow:hidden;margin:9px 0 7px;border-radius:11px;background:#080808}.ticket-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.87}.ticket-pass-overlay{position:absolute;inset:0;background:linear-gradient(0deg,#070707e8 0%,#0909094a 72%,#05050520),linear-gradient(110deg,var(--template-b)33,transparent 75%);mix-blend-mode:screen;opacity:.63}.ticket-pass-headline{position:relative;z-index:1;width:100%;padding:10px 11px 9px}.ticket-pass-headline>small{font-size:8px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase;color:var(--template-accent)}.ticket-pass-headline h2{max-width:100%;margin:3px 0 0;overflow:hidden;color:#ffffff;font:900 clamp(16px,2.7vw,24px)/1.12 Manrope,sans-serif;letter-spacing:-.5px;text-overflow:ellipsis;text-shadow:0 3px 12px #000000;white-space:nowrap}.ticket-pass-headline p{margin:3px 0 0;color:#ffffff;font-size:8px;font-weight:700;text-shadow:0 2px 6px #000000}.ticket-preview-custom-empty:empty{display:none}.ticket-pass-facts{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;padding:3px 0 9px}.ticket-pass-facts>div{display:grid;grid-template-columns:15px minmax(0,1fr);align-content:start;column-gap:5px;row-gap:2px;min-width:0}.ticket-pass-facts>div>span{grid-row:span 2;color:var(--template-accent);font-size:13px}.ticket-pass-facts b{overflow:hidden;font-size:8px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.ticket-pass-facts small{overflow:hidden;font-size:7px;line-height:1.3;opacity:.73;text-overflow:ellipsis;white-space:nowrap}.ticket-pass-bottomline{display:flex;justify-content:space-between;gap:8px;padding-top:6px;border-top:1px solid #ffffff4a;color:#ffffffb3;font-size:6px;font-weight:850;letter-spacing:.65px}.ticket-pass-stub{position:relative;display:grid;align-content:center;justify-items:center;gap:7px;padding:14px 10px;border-left:1px dashed #ffffffa8;background:linear-gradient(150deg,#000000f3,#04040424);text-align:center}.ticket-stub-cutout{position:absolute;left:-10px;width:20px;height:20px;border:1px solid #ffffff38;border-radius:50%;background:#0b0b0b}.ticket-stub-cutout-top{top:-10px}.ticket-stub-cutout-bottom{bottom:-10px}.ticket-stub-label{padding:4px 8px;border-radius:99px;background:#08080833;color:var(--template-accent);font-size:7px;font-weight:900;letter-spacing:1.2px}.ticket-qr-box{display:grid;width:92px;height:92px;place-items:center;padding:6px;border:1px solid #ffffff88;border-radius:8px;background:#ffffff}.ticket-qr-box img{width:100%;height:100%;object-fit:contain}.ticket-qr-placeholder{position:relative;width:100%;height:100%;background:repeating-conic-gradient(#111111 0 25%,#ffffff 0 50%) 0 0/10px 10px}.ticket-qr-placeholder i{position:absolute;width:24px;height:24px;border:5px solid #111111;background:#ffffff;box-shadow:inset 0 0 0 4px #111111}.ticket-qr-placeholder i:nth-child(1){left:1px;top:1px}.ticket-qr-placeholder i:nth-child(2){right:1px;top:1px}.ticket-qr-placeholder i:nth-child(3){bottom:1px;left:1px}.ticket-qr-placeholder i:nth-child(4){right:1px;bottom:1px}.ticket-qr-placeholder small{position:absolute;inset:0;display:grid;place-items:center;color:#111111;font-size:6px;font-weight:900}.ticket-stub-id-label{margin-top:2px;font-size:6px;font-weight:900;letter-spacing:1px;opacity:.7}.ticket-stub-code{max-width:100%;overflow-wrap:anywhere;font:850 11px/1.25 Manrope,sans-serif;letter-spacing:.4px}.ticket-stub-price{color:var(--template-accent);font:900 12px Manrope,sans-serif}.ticket-stub-owner{max-width:100%;overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.ticket-pass-terms{grid-column:1/-1;margin:0;padding:7px 12px;background:#05050533;color:var(--template-text);font-size:7px;line-height:1.35;opacity:.8}
.ticket-template-cultural{border:2px solid #c3c3c3;outline:1px solid #c3c3c340;outline-offset:-6px}.ticket-template-cultural .ticket-pass-main:after{border-radius:20px;transform:rotate(45deg)}.ticket-template-conference{border-radius:10px;box-shadow:0 14px 30px #19191966}.ticket-template-conference .ticket-pass-stub{background:linear-gradient(160deg,#ededed,#d3d3d3);color:#242424}.ticket-template-conference .ticket-stub-cutout{background:#151515}.ticket-template-night-party{border-radius:22px;box-shadow:0 0 24px #676767aa}.ticket-template-night-party .ticket-pass-hero{border:1px solid #81818188}.ticket-template-food .ticket-pass-main:after{width:96px;height:96px;border-style:dotted}.ticket-template-sports{border-radius:9px;transform:skewX(-.5deg)}.ticket-template-sports .ticket-pass-hero{border-left:4px solid var(--template-accent)}.ticket-template-movie{border:2px solid #606060;border-radius:5px}.ticket-template-movie .ticket-pass-stub{background:linear-gradient(135deg,#0c0c0c,#2c2c2c)}.ticket-template-movie .ticket-pass-hero{border:1px solid #b8b8b8}.ticket-template-art{border:1px solid #b0b0b0;background:linear-gradient(112deg,#f8f8f8,#e4e4e4 68%,#e0e0e0);color:#181818}.ticket-template-art .ticket-pass-main:before{background:radial-gradient(ellipse at 9% 84%,#9b9b9b66,transparent 35%),radial-gradient(ellipse at 76% 20%,#8e8e8e66,transparent 40%),linear-gradient(120deg,#ffffff70,transparent)}.ticket-template-art .ticket-pass-hero{background:#f2f2f2}.ticket-template-art .ticket-pass-headline h2{color:#191919;text-shadow:none}.ticket-template-art .ticket-pass-headline p{color:#313131;text-shadow:none}.ticket-template-art .ticket-pass-brand>span:nth-child(2) b,.ticket-template-art .ticket-pass-facts b{color:#1e1e1e}.ticket-template-art .ticket-pass-stub{background:#000000f7}.ticket-template-art .ticket-stub-cutout{background:#d7d7d7}.ticket-template-art .ticket-pass-bottomline{border-color:#66666640;color:#595959}.ticket-template-charity{border-radius:28px 7px 28px 7px;background:linear-gradient(115deg,#f8f8f8,#d2d2d2 65%,#f1f1f1);color:#282828}.ticket-template-charity .ticket-pass-main:after{border:2px dashed #959595;border-radius:42%;transform:rotate(30deg)}.ticket-template-charity .ticket-pass-stub{background:#ffffff88;border-left-color:#8c8c8c}.ticket-template-charity .ticket-stub-cutout{background:#f8f8f8}.ticket-template-charity .ticket-pass-bottomline{border-color:#5b5b5b48;color:#555555}.ticket-template-esports{border:1px solid #6f6f6f;border-radius:8px;clip-path:polygon(0 0,97% 0,100% 8%,100% 92%,97% 100%,0 100%);box-shadow:0 0 28px #535353aa}.ticket-template-esports .ticket-pass-main:before{background:repeating-linear-gradient(135deg,#62626210 0 2px,transparent 2px 10px),radial-gradient(circle at 6% 50%,#71717177,transparent 48%)}
.ticket-manage-preview{margin:10px 0}.ticket-pass[data-ticket-mode="screen"]{margin:10px 0}.ticket-pass[data-ticket-mode="preview"]{min-height:205px}.ticket-pass[data-ticket-mode="preview"] .ticket-pass-main{grid-template-rows:auto minmax(105px,1fr) auto auto}.ticket-pass[data-ticket-mode="preview"] .ticket-qr-box{width:78px;height:78px}.ticket-pass[data-ticket-mode="pdf"]{min-height:250px}.ticket-pass[data-ticket-mode="pdf"] .ticket-qr-box{width:100px;height:100px}.ticket-pass[data-ticket-mode="pdf"] .ticket-pass-headline h2{font-size:22px}
@media(max-width:520px){.ticket-design-section{padding:15px}.ticket-design-gallery{gap:7px}.ticket-template-option{padding:7px}.ticket-template-swatch{height:61px}.ticket-design-upload-grid,.ticket-design-custom-grid{grid-template-columns:1fr}.ticket-design-custom-grid .span-all{grid-column:auto}.ticket-pass{grid-template-columns:minmax(0,1fr) 104px;min-height:195px;border-radius:14px}.ticket-pass-main{padding:10px 9px 8px;grid-template-rows:auto minmax(94px,1fr) auto auto}.ticket-pass-hero{min-height:94px}.ticket-pass-brand{gap:5px}.ticket-organizer-mark{width:25px;height:25px}.ticket-organizer-mark img{width:18px;height:18px}.ticket-pass-brand>span:nth-child(2) b{font-size:9px}.ticket-pass-brand>span:nth-child(2) small{font-size:6px}.ticket-pass-ribbon{padding:4px 5px;font-size:6px}.ticket-pass-facts{grid-template-columns:1fr 1fr;gap:5px}.ticket-pass-facts>div:last-child{display:none}.ticket-pass-facts b{font-size:7px}.ticket-pass-facts small{font-size:6px}.ticket-pass-bottomline{font-size:5px}.ticket-pass-stub{gap:5px;padding:9px 5px}.ticket-qr-box{width:70px;height:70px;padding:4px}.ticket-stub-code{font-size:8px}.ticket-stub-price{font-size:10px}.ticket-stub-owner{display:none}.ticket-pass[data-ticket-mode="preview"] .ticket-qr-box{width:68px;height:68px}}
@media(min-width:800px){.ticket-design-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ticket-template-option,.ticket-preview-device{transition:none!important;transform:none!important}}
