h1,h2,h3{font-family:'Space Grotesk',Manrope,sans-serif}.brand img{width:44px;height:44px}.mobileMenu{display:none;position:relative}.mobileMenu summary{list-style:none;width:43px;height:43px;border:1px solid var(--line);border-radius:12px;display:grid;place-content:center;gap:4px;cursor:pointer;background:#141414}.mobileMenu summary::-webkit-details-marker{display:none}.mobileMenu summary i{display:block;width:18px;height:2px;background:#eee;border-radius:2px}.mobileMenuPanel{position:absolute;right:0;top:53px;width:min(280px,calc(100vw - 28px));padding:10px;background:#111;border:1px solid #343434;border-radius:16px;box-shadow:0 24px 60px #000c}.mobileMenuPanel a{display:block;padding:13px;border-radius:10px;text-decoration:none;font-weight:700}.mobileMenuPanel a:hover{background:#1c1c1c}.footerLinks{display:flex;gap:18px}.footerLinks a{text-decoration:none}.formSection{padding:22px;border:1px solid var(--line);border-radius:17px;background:#121212;margin:18px 0}.ticketTypeRow{display:grid;grid-template-columns:1.3fr 1fr .8fr .7fr auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.ticketTypeRow label{margin-top:0}.uploadBox{display:block;border:1px dashed #6a5630;border-radius:16px;padding:26px;text-align:center;background:#181407;cursor:pointer}.uploadBox input{margin:14px auto 0;max-width:360px}.orderTickets{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:25px 0}.orderTicket{display:flex;align-items:center;gap:13px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:16px;background:#151515;text-decoration:none}.orderTicket strong{display:block}.orderTicketIcon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#28200e;color:var(--gold2);font-size:22px}.ticketShell{max-width:720px;margin:44px auto;padding:0 16px}.ticketToolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}.ticketPro{background:#f7f2e8;color:#121212;border-radius:26px;overflow:hidden;box-shadow:0 35px 100px #000a;position:relative}.ticketCover{height:210px;position:relative;background:#111;overflow:hidden}.ticketCover img{width:100%;height:100%;object-fit:cover}.ticketCover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080808e8,transparent 80%)}.ticketCoverBrand{position:absolute;z-index:2;left:25px;top:22px;display:flex;align-items:center;gap:9px;color:#fff;font-weight:800}.ticketCoverBrand img{width:38px;height:38px}.ticketCover h1{position:absolute;z-index:2;left:25px;right:25px;bottom:18px;color:#fff;margin:0;font-size:30px}.ticketMain{display:grid;grid-template-columns:1fr 250px;min-height:330px}.ticketInfo{padding:28px}.ticketQrSide{padding:25px;border-left:2px dashed #c8c0b1;display:flex;flex-direction:column;justify-content:center;position:relative}.ticketQrSide:before,.ticketQrSide:after{content:'';position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:#080808}.ticketQrSide:before{top:-13px}.ticketQrSide:after{bottom:-13px}.ticketPro .qr{margin:0 auto;width:202px;height:202px;background:#fff;padding:6px;border:0}.ticketData{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.ticketData small{display:block;color:#777;font-size:10px;letter-spacing:.1em;margin-bottom:4px}.ticketStatus{display:inline-flex;padding:6px 10px;border-radius:99px;font-size:11px;font-weight:800;background:#d9f6e7;color:#17633e}.ticketStatus.used{background:#f6dce0;color:#8b2330}.scanResult{position:sticky;bottom:15px;z-index:5;box-shadow:0 20px 60px #000c}.scanResult button{margin-top:14px}.scanResult .scanTitle{font-size:24px;display:block}.scanIdle{padding:17px;border:1px dashed #393939;border-radius:14px;color:var(--muted);margin-top:15px}
@media(max-width:900px){.mobileMenu{display:block}.desktopOnly{display:none}.ticketTypeRow{grid-template-columns:1fr 1fr}.ticketTypeRow .removeType{grid-column:1/-1}.orderTickets{grid-template-columns:1fr}}
@media(max-width:620px){body{font-size:14px}.nav .brand span{font-size:13px}.brand img{width:38px;height:38px}.hero{min-height:calc(100svh - 68px);background-position:62% center}.hero:before{background:linear-gradient(90deg,#050505f2,#050505a8),linear-gradient(0deg,#070707,transparent 55%)}.hero h1{font-size:clamp(43px,13vw,58px);line-height:.96}.hero p{font-size:16px}.btn{min-height:44px}.cardMedia{height:215px}.panel{border-radius:18px}.formSection{padding:15px}.ticketTypeRow{grid-template-columns:1fr}.ticketTypeRow .removeType{grid-column:auto}.ticketShell{margin:18px auto}.ticketToolbar{flex-wrap:wrap}.ticketPro{border-radius:20px}.ticketCover{height:175px}.ticketCover h1{font-size:24px;left:18px;bottom:14px}.ticketCoverBrand{left:18px;top:15px}.ticketMain{grid-template-columns:1fr}.ticketInfo{padding:22px}.ticketQrSide{border-left:0;border-top:2px dashed #c8c0b1;padding:25px}.ticketQrSide:before,.ticketQrSide:after{top:-14px;bottom:auto}.ticketQrSide:before{left:-13px}.ticketQrSide:after{left:auto;right:-13px}.ticketData{gap:15px}.footerLinks{flex-wrap:wrap;justify-content:center}.scanner{margin-top:24px}}
@media print{.nav,footer,.ticketToolbar{display:none!important}body{background:#fff}.ticketShell{margin:0;max-width:none}.ticketPro{box-shadow:none;border:1px solid #ccc}}

/* JB MUSIC Pro — componentes de producto */
.adminHero{padding:46px 0 25px;display:flex;justify-content:space-between;align-items:end;gap:24px}.adminHero h1{font-size:clamp(42px,6vw,64px);letter-spacing:-.05em;margin:12px 0 5px}.adminGrid{display:grid;grid-template-columns:minmax(0,1fr) 540px;gap:26px;align-items:start;padding-bottom:80px}.adminList,.adminEditor{background:linear-gradient(155deg,#141310,#0d0d0b);border:1px solid var(--line);border-radius:22px;padding:22px}.adminEditor{position:sticky;top:94px;max-height:calc(100vh - 112px);overflow:auto}.adminEditor h2{font-size:30px;margin:12px 0 18px}.adminEvent{display:grid;grid-template-columns:116px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.adminEvent>img{width:116px;height:86px;border-radius:12px;object-fit:cover;background:#201e19}.adminEvent h3{font-size:19px;margin:3px 0}.adminEvent p{margin:3px 0}.adminEvent small{color:#8f8b82}.adminEventActions{display:flex;flex-direction:column;gap:7px}.adminEventActions form{margin:0}.adminEventActions .btn{width:100%}.statusDot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#777;margin-right:7px}.statusDot.live{background:var(--ok);box-shadow:0 0 10px #43d39799}.typeHeader{display:flex;justify-content:space-between;align-items:start;gap:12px}.typeHeader h3,.typeHeader p{margin:0}.ticketTypeRow{display:grid;grid-template-columns:1.15fr 1.25fr .68fr .58fr .55fr auto;gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.ticketTypeRow label{margin-top:0}.ticketTypeRow .input{padding:10px}.removeType{width:38px;height:44px;border:1px solid #5d292e;background:#2b1114;color:#ffadb3;border-radius:10px;font-size:24px;cursor:pointer}.uploadBox{display:grid;place-items:center;gap:5px;border:1px dashed #755d2d;border-radius:16px;padding:18px;text-align:center;background:#191507;cursor:pointer}.uploadBox span{color:var(--muted);font-size:12px}.uploadBox input{margin:8px auto}.uploadBox img{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-top:8px}.saveEvent{width:100%;margin-top:20px}.formSection{padding:22px;border:1px solid var(--line);border-radius:17px;background:#12110f;margin:18px 0}.formSection h2{margin-top:0}.settingsShell{padding:52px 0 80px}.settingsIntro{max-width:700px;margin-bottom:26px}.settingsIntro h1{font-size:clamp(40px,6vw,60px);margin:12px 0}.settingsGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settingsGrid .formSection{margin:0}.settingsGrid .full{grid-column:1/-1}.settingsSave{margin-top:20px}.successPage{max-width:900px;text-align:center;padding:64px 0 90px}.successIcon{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#12392b;border:1px solid #318263;color:#83efc0;font-size:36px;font-weight:800;box-shadow:0 0 50px #37c98e22}.successIcon.pending{background:#392d12;border-color:#82651f;color:#ffdc79}.successPage h1{font-size:clamp(42px,7vw,68px);letter-spacing:-.055em;margin:13px 0}.successLead{font-size:18px;color:#c9c5ba;max-width:680px;margin:0 auto 24px}.emailStatus{max-width:650px;margin:20px auto 28px;display:flex;justify-content:space-between;gap:14px;text-align:left;padding:15px 18px;border-radius:14px}.emailStatus span{color:#ccc}.emailStatus.sent{background:#0e2d22;border:1px solid #266b50}.emailStatus.pending{background:#382c10;border:1px solid #806420}.orderTickets{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:25px 0}.orderTicket{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:16px;background:#151411;text-decoration:none;transition:.2s}.orderTicket:hover{transform:translateY(-2px);border-color:#70592c}.orderTicket span:nth-child(2){display:grid}.orderTicket small{color:var(--muted)}.orderTicketNumber{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:#28200e;color:var(--gold2);font-weight:800}.successActions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.ticketShell{max-width:790px;margin:38px auto 65px;padding:0 18px}.ticketToolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.ticketToolbar>span{color:#aaa;font-size:13px}.ticketPro{background:#f8f3e9;color:#121212;border-radius:26px;overflow:hidden;box-shadow:0 35px 100px #000a;position:relative}.ticketCover{height:225px;position:relative;background:#111;overflow:hidden}.ticketCover>img{width:100%;height:100%;object-fit:cover}.ticketCover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080808ed,transparent 80%)}.ticketCoverBrand{position:absolute;z-index:2;left:24px;top:18px}.ticketCoverBrand img{width:150px;height:50px;object-fit:contain}.ticketCoverCopy{position:absolute;z-index:2;left:25px;right:25px;bottom:20px;color:#fff}.ticketCoverCopy>span{font-size:10px;font-weight:800;letter-spacing:.18em;color:#ffe39a}.ticketCoverCopy h1{margin:5px 0 0;font-size:32px}.ticketMain{display:grid;grid-template-columns:1fr 255px;min-height:342px}.ticketInfo{padding:28px}.ticketQrSide{padding:25px;border-left:2px dashed #c8c0b1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:#777;font-size:11px}.ticketQrSide:before,.ticketQrSide:after{content:'';position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:#080807}.ticketQrSide:before{top:-13px}.ticketQrSide:after{bottom:-13px}.ticketPro .qr{margin:0 auto 10px;width:214px;height:214px;background:#fff;padding:6px;border:1px solid #ddd;display:grid;place-items:center;text-align:center}.ticketTopline{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#777;font-size:11px}.ticketStatus{display:inline-flex;padding:6px 10px;border-radius:99px;font-size:10px;font-weight:800;background:#d9f6e7;color:#17633e}.ticketStatus.used{background:#f6dce0;color:#8b2330}.ticketData{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}.ticketData small,.ticketCode small{display:block;color:#777;font-size:9px;font-weight:700;letter-spacing:.12em;margin-bottom:4px}.ticketData strong{display:block;font-size:14px}.ticketCode{padding-top:22px;margin-top:22px;border-top:1px solid #d9d1c3}.ticketCode b{font-size:18px;letter-spacing:.09em}.ticketNote{font-size:11px;color:#777;margin:18px 0 0}.ticketPager{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.scanner{max-width:1100px;padding:44px 0 80px}.scannerHead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.scannerHead h1{font-size:clamp(40px,6vw,60px);margin:10px 0}.scannerStatus{display:flex;align-items:center;gap:8px;color:#c9c5ba}.scannerStatus i{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px #43d397}.scannerGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);gap:20px;align-items:start}.reader{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#111;min-height:380px}.scanLoading{padding:60px 20px;color:var(--muted)}.manualScan{margin-top:16px}.manualRow{display:grid;grid-template-columns:1fr auto;gap:8px}.scanIdle,.scanResultDock,.scanHistory{border-radius:18px;padding:22px;background:#151411;border:1px solid var(--line);text-align:center}.scanIdle{display:grid;gap:5px;border-style:dashed}.scanIdle span{color:var(--muted)}.scanResultDock{box-shadow:0 20px 70px #0009}.scanResultDock.ok{background:#0c3b2c;border-color:#238261}.scanResultDock.no{background:#451318;border-color:#97303a}.scanSignal{width:66px;height:66px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:#ffffff18;font-size:38px;font-weight:800}.scanTitle{display:block;font:700 24px 'Space Grotesk',sans-serif}.scanPerson{display:grid;gap:3px;margin:14px 0;padding:14px;background:#0002;border-radius:12px}.scanPerson span,.scanPerson small{opacity:.85}.scanResultDock .btn{width:100%;margin-top:4px}.scanHistory{margin-top:14px;text-align:left}.scanHistory h2{font-size:17px;margin-top:0}.scanHistory ol{list-style:none;padding:0;margin:0}.scanHistory li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #ffffff12;font-size:12px}.scanHistory li small{color:#aaa}.okText{color:#8ff0c8}.badText{color:#ffadb3}
@media(max-width:1100px){.adminGrid{grid-template-columns:1fr}.adminEditor{position:static;max-height:none;grid-row:1}.ticketTypeRow{grid-template-columns:1fr 1fr}.ticketTypeRow .removeType{grid-column:1/-1;width:100%}}
@media(max-width:800px){.scannerGrid,.settingsGrid{grid-template-columns:1fr}.settingsGrid .full{grid-column:auto}.orderTickets{grid-template-columns:1fr}.ticketMain{grid-template-columns:1fr}.ticketQrSide{border-left:0;border-top:2px dashed #c8c0b1;padding:28px}.ticketQrSide:before,.ticketQrSide:after{top:-14px;bottom:auto}.ticketQrSide:before{left:-13px}.ticketQrSide:after{left:auto;right:-13px}.scannerHead{align-items:start;flex-direction:column}}
@media(max-width:620px){.adminHero{padding:28px 0 18px;align-items:start;flex-direction:column}.adminGrid{width:calc(100% - 20px);gap:12px}.adminList,.adminEditor{padding:15px;border-radius:17px}.adminEvent{grid-template-columns:80px 1fr}.adminEvent>img{width:80px;height:72px}.adminEventActions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.ticketTypeRow{grid-template-columns:1fr}.ticketTypeRow .removeType{grid-column:auto}.formSection{padding:15px}.settingsShell{padding:28px 0 60px}.emailStatus{flex-direction:column}.successPage{padding:40px 14px 70px}.orderTicket{grid-template-columns:42px 1fr}.orderTicket>b{grid-column:2}.ticketShell{margin:18px auto 45px;padding:0 10px}.ticketToolbar{flex-wrap:wrap}.ticketToolbar>span{order:-1;width:100%;text-align:center}.ticketToolbar .btn{flex:1}.ticketPro{border-radius:20px}.ticketCover{height:185px}.ticketCoverBrand{left:16px;top:12px}.ticketCoverBrand img{width:125px;height:42px}.ticketCoverCopy{left:18px;bottom:15px}.ticketCoverCopy h1{font-size:24px}.ticketInfo{padding:21px}.ticketData{gap:16px}.ticketPager .btn{flex:1}.scanner{padding:26px 0 60px}.reader{min-height:310px}.manualRow{grid-template-columns:1fr}.manualRow .btn{width:100%}}
@media print{.nav,footer,.ticketToolbar,.ticketPager{display:none!important}body{background:#fff}.ticketShell{margin:0;max-width:none}.ticketPro{box-shadow:none;border:1px solid #ccc}.ticketQrSide:before,.ticketQrSide:after{background:#fff}}
.nav .brand img{width:150px;height:50px;object-fit:contain}.footerBrand .brand img{width:130px;height:42px}@media(max-width:620px){.nav .brand img{width:126px;height:44px}}
