
/* ===== Panel, inscripción, ingreso y boletos ===== */
.pn-host,.pn-mb{--pn-bg:var(--bg,#09090d);--pn-s1:#131317;--pn-s2:#1a1a1f;--pn-s3:#222228;--pn-line:#2a2a31;--pn-ink:#f4f4f7;--pn-ink2:#b9b9c3;--pn-ink3:#8a8a95;--pn-ok:#22c55e;--pn-warn:#f59e0b;--pn-bad:#ef4444;--pn-info:#60a5fa;color:var(--pn-ink);font-family:var(--fb,'Inter'),system-ui,-apple-system,'Segoe UI',sans-serif}
.pn-mb *{box-sizing:border-box}
:where(.pn-mb) a{color:inherit}
.pn-mb .pn-btn{text-decoration:none;color:inherit;cursor:pointer}
body.wp-admin .toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#fff;color:#111;font-weight:700;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;z-index:400;box-shadow:0 8px 24px rgba(0,0,0,.3)}
body.wp-admin .toast.show{opacity:1;transform:translate(-50%,0)}
.pn-host *{box-sizing:border-box}
:where(.pn-host) button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:where(.pn-host) input,:where(.pn-host) select,:where(.pn-host) textarea{font:inherit;color:inherit}
:where(.pn-host) a{color:inherit}

/* botones y campos */
.pn-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:12px;background:var(--pn-s3);border:1px solid var(--pn-line)!important;font-weight:700;font-size:14.5px;white-space:nowrap;text-decoration:none;transition:filter .15s}
.pn-btn:hover{filter:brightness(1.15)}
.pn-btn.pri{background:var(--primary,#2cf29b);border-color:var(--primary,#2cf29b)!important;color:#04140c}
.pn-btn.sec{background:var(--secondary,#8b3dff);border-color:var(--secondary,#8b3dff)!important;color:#fff}
.pn-btn.ghost{background:transparent}
.pn-btn.bad{color:#ff8a8a}
.pn-btn.sm{padding:7px 12px;font-size:13px;border-radius:10px}
.pn-btn.lg{padding:16px 26px;font-size:17px;border-radius:40px}
.pn-btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.pn-f{display:block;margin-bottom:14px}
.pn-f>span{display:block;font-size:13px;font-weight:700;color:var(--pn-ink2);margin-bottom:6px}
.pn-f small{display:block;color:var(--pn-ink3);font-size:12.5px;margin-top:5px;line-height:1.4}
.pn-in{width:100%;background:#0e0e12;border:1px solid var(--pn-line);border-radius:12px;padding:12px 14px;outline:none;font-size:15px;color:var(--pn-ink)}
.pn-in:focus{border-color:var(--primary,#2cf29b)}
textarea.pn-in{resize:vertical;min-height:92px;line-height:1.5}
select.pn-in{appearance:auto}
.pn-g2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.pn-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}
.pn-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:0 12px}
.pn-chk{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:6px 0;line-height:1.35}
.pn-chk input{width:19px;height:19px;accent-color:var(--primary,#2cf29b);flex:none;margin-top:1px}
.pn-err{color:#ff8a8a;font-size:14px;min-height:20px;margin:6px 0}
.pn-muted{color:var(--pn-ink3)}
.pn-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* chips de estado (siempre con texto e icono) */
.pn-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:12.5px;font-weight:700;background:var(--pn-s3);color:var(--pn-ink3);white-space:nowrap;margin:0 4px 4px 0}
.pn-chip.ok{background:rgba(34,197,94,.16);color:#4ade80}
.pn-chip.warn{background:rgba(245,158,11,.16);color:#fbbf24}
.pn-chip.bad{background:rgba(239,68,68,.16);color:#f87171}
.pn-chip.info{background:rgba(96,165,250,.16);color:#93c5fd}
.pn-chip.pop{animation:pnpop .45s ease}
@keyframes pnpop{0%{transform:scale(.7);opacity:.2}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}

/* layout del panel */
.pn-app{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh;background:var(--pn-bg)}
.pn-side{background:#0c0c10;border-right:1px solid #1c1c22;padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.pn-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:21px;letter-spacing:-.6px;padding:4px 10px 16px;text-decoration:none}
.pn-brand img{height:30px;max-width:180px;object-fit:contain}
.pn-brand i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--primary,#2cf29b)}
.pn-nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;color:var(--pn-ink2);font-weight:600;font-size:14.5px;text-decoration:none}
.pn-nav a:hover{background:var(--pn-s2);color:var(--pn-ink)}
.pn-nav a.on{background:var(--pn-s3);color:var(--pn-ink)}
.pn-nav a.on svg{color:var(--primary,#2cf29b)}
.pn-nav svg{width:19px;height:19px;flex:none}
.pn-nav .cnt{margin-left:auto;background:var(--secondary,#8b3dff);color:#fff;font-size:11.5px;font-weight:800;border-radius:10px;padding:1px 7px}
.pn-navh{font-size:11.5px;font-weight:800;color:var(--pn-ink3);padding:14px 12px 6px;letter-spacing:.3px}
.pn-user{margin-top:auto;border-top:1px solid #1c1c22;padding:14px 10px 4px;font-size:13.5px}
.pn-user b{display:block;font-size:14.5px}
.pn-user .role{color:var(--pn-ink3)}
.pn-user .acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.pn-app>div{min-width:0}
.pn-main{padding:28px 32px 70px;min-width:0}
.pn-top{display:none}
.pn-h1{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.pn-h1 h1{font-size:28px;font-weight:800;letter-spacing:-.6px;margin:0}
.pn-h1 .sp{flex:1}
.pn-h1 p{width:100%;margin:-4px 0 0;color:var(--pn-ink3)}
.pn-card{background:var(--pn-s1);border:1px solid #202027;border-radius:18px;padding:20px}
.pn-card h2{font-size:17px;font-weight:800;margin:0 0 14px;letter-spacing:-.2px}
.pn-card h3{font-size:15px;margin:0 0 10px}
.pn-stack{display:flex;flex-direction:column;gap:18px}
.pn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pn-alerts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.pn-alert{display:flex;align-items:center;gap:10px;background:var(--pn-s1);border:1px solid #2b2b33;border-left:4px solid var(--pn-warn);border-radius:12px;padding:11px 14px;font-weight:600;text-decoration:none}
.pn-alert.info{border-left-color:var(--pn-info)}

/* indicadores */
.pn-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.pn-kpi{background:var(--pn-s1);border:1px solid #202027;border-radius:16px;padding:16px 16px 14px}
.pn-kpi small{display:block;color:var(--pn-ink3);font-weight:700;font-size:12.5px;margin-bottom:8px}
.pn-kpi b{display:block;font-size:clamp(17px,1.45vw,26px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800;letter-spacing:-.6px;line-height:1.05}
.pn-kpi span{display:block;color:var(--pn-ink3);font-size:12.5px;margin-top:6px}
.pn-kpi.hl{border-color:color-mix(in srgb,var(--primary,#2cf29b) 45%,#202027)}
.pn-kpi.hl b{color:var(--primary,#2cf29b)}

/* gráfica de barras */
.pn-chart{position:relative}
.pn-chart svg{display:block;width:100%;height:auto;overflow:visible}
.pn-chart .gl{stroke:#26262d;stroke-width:1}
.pn-chart .ax{fill:var(--pn-ink3);font-size:11px}
.pn-chart .bar{fill:var(--primary,#2cf29b)}
.pn-chart .bar:hover,.pn-chart .hit:hover+.bar{filter:brightness(1.25)}
.pn-tip{position:absolute;pointer-events:none;background:#fff;color:#111;font-size:12.5px;font-weight:700;padding:6px 9px;border-radius:8px;white-space:nowrap;transform:translate(-50%,-110%);box-shadow:0 6px 18px rgba(0,0,0,.35)}

/* tablas */
.pn-tw{overflow-x:auto;border:1px solid #202027;border-radius:14px}
.pn-t{width:100%;border-collapse:collapse;font-size:14px}
.pn-t th{text-align:left;font-size:12px;color:var(--pn-ink3);font-weight:800;padding:11px 12px;background:#101014;border-bottom:1px solid #202027;white-space:nowrap}
.pn-t td{padding:12px;border-bottom:1px solid #1d1d23;vertical-align:top}
.pn-t tr:last-child td{border-bottom:0}
.pn-t tr.click{cursor:pointer}
.pn-t tr.click:hover td{background:#16161b}
.pn-t .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pn-t small{color:var(--pn-ink3)}
.pn-empty{padding:36px 18px;text-align:center;color:var(--pn-ink3);border:1px dashed #2a2a31;border-radius:14px}

/* barras de progreso por localidad */
.pn-prog{height:10px;border-radius:6px;background:#26262d;overflow:hidden;display:flex;gap:2px;min-width:90px}
.pn-prog i{display:block;height:100%}
.pn-prog i.p{background:var(--primary,#2cf29b)}
.pn-prog i.r{background:color-mix(in srgb,var(--primary,#2cf29b) 38%,#26262d)}
.pn-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--pn-ink2);margin-top:10px}
.pn-legend span{display:inline-flex;align-items:center;gap:6px}
.pn-legend i{width:12px;height:8px;border-radius:3px;display:inline-block}
.pn-zdot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;vertical-align:-1px}

/* eventos */
.pn-evs{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.pn-ev{display:flex;gap:14px;background:var(--pn-s1);border:1px solid #202027;border-radius:16px;padding:14px;text-decoration:none;align-items:flex-start}
.pn-ev:hover{border-color:#34343d}
.pn-ev img{width:78px;height:92px;border-radius:12px;object-fit:cover;flex:none;background:#222}
.pn-ev b{display:block;font-size:15.5px;line-height:1.3;margin-bottom:4px}
.pn-ev small{display:block;color:var(--pn-ink3);font-size:13px;margin-bottom:8px}
.pn-ev .pn-prog{margin-top:8px}
.pn-ev .meta{font-size:12.5px;color:var(--pn-ink2);margin-top:6px}

/* formulario de evento */
.pn-form{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.pn-aside{position:sticky;top:20px;display:flex;flex-direction:column;gap:14px}
.pn-zrow{display:grid;grid-template-columns:18px 1.4fr 1fr 1fr 34px;gap:10px;align-items:start;background:var(--pn-s2);border:1px solid var(--pn-line);border-radius:14px;padding:12px;margin-bottom:10px}
.pn-zrow .pn-f{margin:0}
.pn-zrow .c{width:18px;height:18px;border-radius:5px;margin-top:36px}
.pn-zrow .x{margin-top:28px;width:34px;height:40px;border-radius:10px;color:var(--pn-ink3)}
.pn-zrow .x:hover{background:#2b2b33;color:#fff}
.pn-zrow .full{grid-column:2/5}
.pn-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pn-opt{position:relative;display:block;background:var(--pn-s2);border:2px solid var(--pn-line);border-radius:16px;padding:16px 16px 14px;cursor:pointer}
.pn-opt input{position:absolute;opacity:0;pointer-events:none}
.pn-opt.on{border-color:var(--primary,#2cf29b);background:color-mix(in srgb,var(--primary,#2cf29b) 8%,var(--pn-s2))}
.pn-opt .l{display:inline-block;font-size:12px;font-weight:800;color:var(--primary,#2cf29b);margin-bottom:6px}
.pn-opt b{display:block;font-size:15.5px;margin-bottom:6px}
.pn-opt p{margin:0;color:var(--pn-ink2);font-size:13px;line-height:1.45}
.pn-opt .ex{margin-top:10px;font-size:12.5px;color:var(--pn-ink2);border-top:1px solid var(--pn-line);padding-top:8px;line-height:1.6}
.pn-opt .ex b{display:inline;font-size:12.5px}
.pn-rate{display:flex;align-items:center;gap:14px;background:linear-gradient(120deg,color-mix(in srgb,var(--secondary,#8b3dff) 30%,#15151a),#15151a);border:1px solid #2b2b33;border-radius:16px;padding:16px 18px}
.pn-rate big{font-size:40px;font-weight:900;letter-spacing:-1.5px;line-height:1}
.pn-rate p{margin:0;font-size:13.5px;color:var(--pn-ink2);line-height:1.45}
.pn-meter{height:8px;border-radius:5px;background:#26262d;overflow:hidden;margin:10px 0 6px}
.pn-meter i{display:block;height:100%;background:var(--primary,#2cf29b);border-radius:5px;transition:width .3s}
.pn-extras{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
.pn-sumrow{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #202027;font-size:14px}
.pn-sumrow:last-child{border-bottom:0}
.pn-sumrow b{font-variant-numeric:tabular-nums}
.pn-up{display:flex;gap:12px;align-items:center}
.pn-up .th{width:86px;height:86px;border-radius:12px;background:#0e0e12 center/cover no-repeat;border:1px dashed var(--pn-line);flex:none;display:grid;place-items:center;color:var(--pn-ink3);font-size:11.5px;text-align:center}
.pn-up .th.w{width:150px}

/* catálogo de servicios */
.pn-cat h3{font-size:16px;margin:18px 0 10px;display:flex;align-items:center;gap:8px}
.pn-cat h3:first-child{margin-top:0}
.pn-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pn-plan{position:relative;display:block;border:2px solid var(--pn-line);border-radius:14px;padding:12px;background:var(--pn-s2);cursor:pointer}
.pn-plan input{position:absolute;opacity:0}
.pn-plan.on{border-color:var(--secondary,#8b3dff);background:color-mix(in srgb,var(--secondary,#8b3dff) 12%,var(--pn-s2))}
.pn-plan b{display:block;margin-bottom:6px}
.pn-plan ul{margin:0;padding-left:16px;color:var(--pn-ink2);font-size:13px;line-height:1.55}
.pn-tags{display:flex;flex-wrap:wrap;gap:8px}
.pn-tag{position:relative;display:inline-flex;align-items:center;padding:8px 13px;border:1.5px solid var(--pn-line);border-radius:22px;font-size:13.5px;font-weight:600;cursor:pointer;background:var(--pn-s2);color:var(--pn-ink2)}
.pn-tag input{position:absolute;opacity:0}
.pn-tag.on{border-color:var(--primary,#2cf29b);color:var(--pn-ink);background:color-mix(in srgb,var(--primary,#2cf29b) 12%,var(--pn-s2))}
.pn-tag.on::before{content:'✓';margin-right:6px;color:var(--primary,#2cf29b);font-weight:900}

/* modal */
.pn-mb{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:18px;animation:pnfi .15s ease}
@keyframes pnfi{from{opacity:0}}
.pn-md{position:relative;width:min(760px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#141418;border:1px solid #26262d;border-radius:26px;padding:28px;color:var(--pn-ink,#f4f4f7);font-family:var(--fb,'Inter'),system-ui,sans-serif;animation:pnup .2s ease}
.pn-md.sm{width:min(480px,100%)}
.pn-md.lg{width:min(980px,100%)}
@keyframes pnup{from{transform:translateY(14px);opacity:0}}
.pn-md h2{font-size:23px;font-weight:800;letter-spacing:-.4px;margin:0 0 6px}
.pn-md .sub{color:var(--pn-ink3,#8a8a95);margin:0 0 18px}
.pn-md .x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:#222228;display:grid;place-items:center;color:#bbb;border:0;cursor:pointer}
.pn-md .pn-mfoot{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
:where(.pn-md) button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:where(.pn-md) input,:where(.pn-md) select,:where(.pn-md) textarea{font:inherit;color:inherit}

/* popup de entrega */
.pn-tks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:14px 0}
.pn-tk{background:#fff;color:#111;border-radius:14px;padding:10px;text-align:center;font-size:12px;font-weight:700}
.pn-tk .qr{width:120px;height:120px;margin:0 auto 6px}
.pn-tk .qr img,.pn-tk .qr canvas{width:120px!important;height:120px!important}
.pn-ch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}
.pn-ch label{display:flex;gap:10px;align-items:center;background:#1b1b20;border:2px solid #2a2a31;border-radius:14px;padding:12px 14px;cursor:pointer;font-weight:700}
.pn-ch label.on{border-color:var(--primary,#2cf29b)}
.pn-ch label small{display:block;font-weight:500;color:#9a9aa4;font-size:12.5px;word-break:break-all}
.pn-ch input{width:18px;height:18px;accent-color:var(--primary,#2cf29b)}
.pn-states{display:flex;gap:10px;justify-content:center;margin:18px 0 6px;flex-wrap:wrap}
.pn-states .pn-chip{font-size:15px;padding:9px 16px}
.pn-done{text-align:center;padding:10px 0}
.pn-done .pn-okicon{width:74px;height:74px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:rgba(34,197,94,.16);color:#4ade80}
.pn-sum{background:#1b1b20;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.6}

/* escáner */
.pn-scan{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.pn-cam{position:relative;background:#000;border-radius:20px;overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center}
.pn-cam video{width:100%;height:100%;object-fit:cover}
.pn-cam .frame{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.85);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.pn-cam .msg{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#fff;font-weight:700;text-shadow:0 1px 4px #000}
.pn-res{border-radius:20px;padding:22px;text-align:center;min-height:210px;display:flex;flex-direction:column;justify-content:center;background:var(--pn-s1);border:1px solid #202027}
.pn-res.ok{background:#0f3d24;border-color:#16a34a}
.pn-res.used{background:#452a06;border-color:#d97706}
.pn-res.bad{background:#4a1111;border-color:#dc2626}
.pn-res big{display:block;font-size:30px;font-weight:900;letter-spacing:-.6px;margin-bottom:8px}
.pn-res p{margin:4px 0;color:#eee}

/* página Publica tu evento */
.pn-pub{max-width:1180px;margin:0 auto;padding:46px 22px 30px}
.pn-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;margin-bottom:46px}
.pn-hero h1{font-family:var(--fd,'Bebas Neue'),Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(48px,6vw,92px);line-height:.92;letter-spacing:.5px;margin:0 0 18px;background:linear-gradient(90deg,var(--primary,#2cf29b),#4fa3ff 50%,var(--secondary,#8b3dff));-webkit-background-clip:text;background-clip:text;color:transparent}
.pn-hero p{font-size:18px;line-height:1.6;color:var(--pn-ink2);margin:0 0 24px;max-width:560px}
.pn-rates{display:grid;gap:12px}
.pn-rt{display:flex;align-items:center;gap:18px;background:var(--pn-s1);border:1px solid #24242b;border-radius:18px;padding:18px 20px}
.pn-rt big{font-size:46px;font-weight:900;letter-spacing:-2px;min-width:108px;line-height:1}
.pn-rt:nth-child(1) big{color:var(--pn-ink)}
.pn-rt:nth-child(2) big{color:var(--primary,#2cf29b)}
.pn-rt:nth-child(3) big{color:var(--secondary,#a47bff)}
.pn-rt b{display:block;font-size:16px;margin-bottom:3px}
.pn-rt span{color:var(--pn-ink3);font-size:14px;line-height:1.4}
.pn-sec{margin:0 0 46px}
.pn-sec>h2{font-size:30px;font-weight:800;letter-spacing:-.8px;margin:0 0 6px}
.pn-sec>p{color:var(--pn-ink3);margin:0 0 20px;font-size:16px}
.pn-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;counter-reset:st}
.pn-step{background:var(--pn-s1);border:1px solid #24242b;border-radius:18px;padding:18px}
.pn-step::before{counter-increment:st;content:counter(st);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--pn-s3);color:var(--primary,#2cf29b);font-weight:900;margin-bottom:12px}
.pn-step b{display:block;margin-bottom:6px}
.pn-step p{margin:0;color:var(--pn-ink3);font-size:14px;line-height:1.5}
.pn-reg{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.pn-ok{text-align:center;padding:50px 20px}
.pn-ok .pn-okicon{width:84px;height:84px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:rgba(34,197,94,.16);color:#4ade80}
.pn-ok h2{font-size:28px;margin:0 0 10px}
.pn-ok p{color:var(--pn-ink2);max-width:520px;margin:0 auto 20px;line-height:1.6}

/* ingreso */
.pn-login{max-width:460px;margin:0 auto;padding:60px 20px 40px}
.pn-login h1{font-size:32px;font-weight:800;letter-spacing:-.8px;margin:0 0 6px}
.pn-login>p{color:var(--pn-ink3);margin:0 0 24px}
.pn-demo{margin-top:22px;border-top:1px solid #24242b;padding-top:18px}
.pn-demo p{color:var(--pn-ink3);font-size:13.5px;margin:0 0 10px}
.pn-demo .pn-row .pn-btn{flex:1}

/* boleto del comprador */
.pn-tkt{max-width:760px;margin:0 auto;padding:40px 20px}
.pn-tkt-h{display:flex;gap:18px;align-items:center;margin-bottom:24px}
.pn-tkt-h img{width:96px;height:112px;object-fit:cover;border-radius:14px}
.pn-tkt-h h1{font-size:26px;margin:0 0 6px;letter-spacing:-.5px}
.pn-tkt-h p{margin:0;color:var(--pn-ink2)}
.pn-pass{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;background:#fff;color:#111;border-radius:22px;padding:18px;margin-bottom:14px;position:relative;overflow:hidden}
.pn-pass .qr{width:170px;height:170px}
.pn-pass .qr img,.pn-pass .qr canvas{width:170px!important;height:170px!important}
.pn-pass b{display:block;font-size:20px;margin-bottom:6px}
.pn-pass p{margin:3px 0;color:#444}
.pn-pass code{font-size:11px;color:#777;word-break:break-all}
.pn-pass.used::after{content:'YA INGRESÓ';position:absolute;right:-40px;top:22px;transform:rotate(35deg);background:#dc2626;color:#fff;font-weight:900;padding:6px 50px;font-size:13px}

@media (max-width:1100px){
  .pn-form,.pn-scan,.pn-reg{grid-template-columns:1fr}
  .pn-aside{position:static}
  .pn-hero{grid-template-columns:1fr}
  .pn-steps{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .pn-app{grid-template-columns:1fr}
  .pn-side{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:200;transform:translateX(-100%);transition:transform .2s;height:auto}
  .pn-app.open .pn-side{transform:none;box-shadow:0 0 0 999px rgba(0,0,0,.55)}
  .pn-top{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));background:#0c0c10;border-bottom:1px solid #1c1c22;position:sticky;top:0;z-index:100}
  .pn-top b{font-size:17px}
  .pn-top button{width:40px;height:40px;border-radius:10px;background:var(--pn-s3);display:grid;place-items:center}
  .pn-main{padding:18px 16px 60px}
  .pn-h1 h1{font-size:23px}
  .pn-g2,.pn-g3,.pn-g4,.pn-opts,.pn-plans,.pn-extras,.pn-ch{grid-template-columns:1fr}
  .pn-zrow{grid-template-columns:14px 1fr 34px}
  .pn-zrow .c{margin-top:34px}
  .pn-zrow .pn-f.pz,.pn-zrow .pn-f.cz,.pn-zrow .full{grid-column:2/3}
  .pn-zrow .x{grid-row:1;grid-column:3}
  .pn-kpis{grid-template-columns:1fr 1fr}
  .pn-kpi b{font-size:21px}
  .pn-steps{grid-template-columns:1fr}
  .pn-rt big{font-size:36px;min-width:84px}
  .pn-md{padding:22px 16px;border-radius:20px}
  .pn-pass{grid-template-columns:1fr;justify-items:center;text-align:center}
}
@media print{
  .hdr,.foot,.pn-noprint{display:none!important}
  body{background:#fff!important}
  .pn-host{color:#111}
  .pn-pass{break-inside:avoid;border:1px solid #ccc}
}
@media (prefers-reduced-motion:reduce){.pn-host *,.pn-md{animation:none!important;transition:none!important}}
