:root{--bg:#0b1220;--panel:#111a2e;--soft:#18233b;--text:#f7f8fb;--muted:#a8b2c7;--accent:#7c3aed;--accent2:#06b6d4;--ok:#22c55e;--warn:#f59e0b;--danger:#ef4444}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 15% 0,#241347 0,transparent 34%),linear-gradient(135deg,#08111f,#111827);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.wrap{max-width:1220px;margin:auto;padding:24px}.nav{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.brand{font-weight:900;font-size:25px}.badge{padding:6px 10px;border-radius:999px;background:#ffffff12;color:#cbd5e1;font-size:12px}.btn{display:inline-block;padding:11px 17px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#5b21b6);font-weight:800;border:0;color:white;cursor:pointer}.btn.alt{background:#ffffff12}.btn.mini{padding:8px 10px;font-size:12px}.card{background:#ffffff0b;border:1px solid #ffffff12;border-radius:22px;padding:22px;box-shadow:0 20px 60px #0004}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric strong{font-size:32px;display:block}.metric span,.small{color:var(--muted)}.section{padding:28px 0}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-head h2,.card h2{margin-top:0}.two-col{display:grid;grid-template-columns:1.4fr .7fr;gap:18px}.wide-left{grid-template-columns:1.5fr .75fr}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px;border-bottom:1px solid #ffffff12;text-align:left;vertical-align:middle}.table th{color:#cbd5e1;font-size:13px}.table-wrap{overflow:auto}.input,.select{width:100%;padding:12px 13px;border-radius:12px;border:1px solid #ffffff1a;background:#ffffff0d;color:white;margin:7px 0 14px}.select{margin:0;padding:8px 9px}.inline{display:flex;gap:7px;align-items:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.subnav{display:flex;gap:8px;margin:0 0 18px;overflow:auto;padding-bottom:2px}.navlink{padding:9px 13px;border-radius:11px;color:#cbd5e1;white-space:nowrap;background:#ffffff08}.navlink.active{background:#7c3aed;color:white;font-weight:800}.alert{padding:12px 15px;border-radius:12px;margin:8px 0 16px;background:#22c55e22;border:1px solid #22c55e55}.alert.error{background:#ef444422;border-color:#ef444455}.empty{padding:28px 10px;text-align:center;color:var(--muted)}.status{font-size:12px;padding:5px 8px;border-radius:999px;background:#ffffff12;text-transform:capitalize}.status.active,.status.drawn{background:#22c55e22;color:#86efac}.status.trial,.status.reserved{background:#f59e0b22;color:#fde68a}.status.suspended,.status.closed{background:#ef444422;color:#fca5a5}.status.draft{background:#64748b33;color:#cbd5e1}.textlink{color:#67e8f9;font-weight:800}.steps{display:grid;gap:12px}.steps div{display:flex;gap:12px;align-items:center}.steps b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#7c3aed}.pricing-five{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.plan .price{font-size:30px;font-weight:900;margin:14px 0}.plan .price small{font-size:13px;color:var(--muted)}.plan p{border-bottom:1px solid #ffffff10;padding-bottom:9px;color:#dbe2ef}.public-wrap{max-width:1120px;margin:auto;padding:28px}.public-head{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:30px 0}.public-head h1{font-size:48px;margin:10px 0 6px}.public-head p{color:var(--muted);font-size:18px}.public-price{text-align:right}.public-price strong{display:block;font-size:42px}.public-price span{color:var(--muted)}.public-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.public-stats>div{background:#ffffff0b;border:1px solid #ffffff12;padding:15px;border-radius:16px}.public-stats b{display:block;font-size:22px}.public-stats span{color:var(--muted);font-size:13px}.ticket-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.ticket{padding:10px 4px;text-align:center;border-radius:9px;background:#22c55e18;border:1px solid #22c55e42;font-size:12px;font-weight:800}.ticket.sold{background:#ef444433;border-color:#ef444466}.ticket.reserved{background:#f59e0b33;border-color:#f59e0b66}.legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.legend span{display:flex;gap:6px;align-items:center}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.available{background:var(--ok)}.dot.reserved{background:var(--warn)}.dot.sold{background:var(--danger)}.pager{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:20px}.whatsapp{position:fixed;right:24px;bottom:24px;background:#22c55e;color:#08111f;font-weight:900;padding:13px 18px;border-radius:999px;box-shadow:0 10px 30px #0006}
@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}.two-col,.wide-left{grid-template-columns:1fr}.pricing-five{grid-template-columns:1fr 1fr}.ticket-grid{grid-template-columns:repeat(5,1fr)}.public-head{align-items:start;flex-direction:column}.public-price{text-align:left}.public-head h1{font-size:38px}}
@media(max-width:520px){.wrap,.public-wrap{padding:16px}.grid,.pricing-five,.public-stats{grid-template-columns:1fr 1fr}.nav{align-items:flex-start}.brand{font-size:22px}.section-head{align-items:flex-start;flex-direction:column}.ticket-grid{grid-template-columns:repeat(4,1fr)}.public-head h1{font-size:34px}.form-row{grid-template-columns:1fr}}

/* V1.3 · selección y apartados */
.ticket{appearance:none;color:var(--text);cursor:pointer}.ticket:disabled{cursor:not-allowed;opacity:.82}.ticket.available:hover{transform:translateY(-1px);border-color:#86efac}.ticket.available.selected{background:#7c3aed;border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa55}.ticket-tools{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:12px 0 16px}.ticket-search{margin-left:auto;color:var(--muted);font-size:12px;display:flex;gap:7px;align-items:center}.ticket-search input{width:110px;padding:8px 9px;border-radius:9px;border:1px solid #ffffff1a;background:#ffffff0d;color:#fff}.checkout-card{margin-top:18px}.selection-total{text-align:right;display:grid;gap:1px}.selection-total b{font-size:28px}.selection-total span{font-size:11px;color:var(--muted)}.selection-total strong{font-size:20px;color:#c4b5fd}.selected-chips{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 18px}.chip{border:1px solid #8b5cf666;background:#7c3aed26;color:#ede9fe;padding:7px 9px;border-radius:999px;font-weight:800;cursor:pointer}.chip.static{cursor:default}.reserve-submit{width:100%;margin-top:3px}.reserve-submit:disabled{opacity:.45;cursor:not-allowed}.confirmation-card{max-width:760px;margin:8vh auto;text-align:center}.confirmation-card h1{font-size:42px;margin:12px 0}.success-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:#22c55e;color:#07130b;font-size:38px;font-weight:900}.confirm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.confirm-grid>div{padding:14px;background:#ffffff0a;border:1px solid #ffffff10;border-radius:14px}.confirm-grid span{display:block;color:var(--muted);font-size:12px}.confirm-grid b{display:block;margin-top:5px}.confirm-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:20px}.action-stack{display:flex;gap:6px;flex-wrap:wrap}.compact-numbers{max-width:280px;white-space:normal}.status.pending{background:#f59e0b22;color:#fde68a}.status.paid{background:#22c55e22;color:#86efac}.status.expired,.status.cancelled{background:#64748b33;color:#cbd5e1}
@media(max-width:700px){.ticket-tools{align-items:stretch}.ticket-search{margin-left:0;width:100%;justify-content:space-between}.ticket-search input{flex:1}.confirm-grid{grid-template-columns:1fr}.selection-total{text-align:left}.confirmation-card h1{font-size:34px}}

/* V1.4 · pagos, comprobantes y base de marca blanca */
.textarea{resize:vertical;min-height:110px}.save-wide{width:100%;margin:0 0 28px}.color-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 18px}.color-field{display:flex;gap:10px;align-items:center;margin-top:7px}.color-field input[type=color]{width:58px;height:42px;padding:2px;border:1px solid #ffffff22;border-radius:10px;background:#ffffff0a}.color-field code{padding:8px 10px;border-radius:9px;background:#0003;color:#dbeafe}.brand-preview{min-height:190px;border-radius:20px;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(circle at 85% 5%,var(--brand2),transparent 38%),linear-gradient(135deg,var(--brand),#111827 70%);border:1px solid #ffffff20;box-shadow:inset 0 0 60px #0003}.brand-preview span{font-weight:800}.brand-preview strong{font-size:31px;margin:4px 0}.brand-preview small{color:#fff9}.coming-box{margin-top:16px;padding:14px;border-radius:14px;background:#ffffff09;border:1px dashed #ffffff28;display:grid;gap:5px}.coming-box span{color:var(--muted);font-size:13px}.upgrade-card{max-width:780px;margin:7vh auto;text-align:center}.pending-mark,.danger-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;font-size:30px;font-weight:900}.pending-mark{background:#f59e0b;color:#271500}.danger-mark{background:#ef4444;color:#fff}.wide-confirm{max-width:920px}.payment-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;text-align:left}.payment-box{background:#ffffff08;border:1px solid #ffffff12;border-radius:18px;padding:18px}.payment-box h2{font-size:19px;margin:0 0 14px}.payment-data{display:grid;gap:9px;margin:0}.payment-data>div{display:flex;justify-content:space-between;gap:16px;padding-bottom:9px;border-bottom:1px solid #ffffff10}.payment-data dt{color:var(--muted);font-size:12px}.payment-data dd{margin:0;font-weight:800;text-align:right;word-break:break-all}.payment-notes{padding:12px;border-radius:12px;background:#0002;line-height:1.5}.proof-form .file-input{padding:9px}.proof-state{display:grid;gap:4px;padding:14px;border-radius:13px}.proof-state span{font-size:13px}.proof-state.uploaded{background:#f59e0b20;border:1px solid #f59e0b55}.proof-state.approved{background:#22c55e20;border:1px solid #22c55e55}.proof-state.rejected{background:#ef444420;border:1px solid #ef444455;margin-bottom:12px}.ticket-ready{padding:20px;margin:22px 0;border-radius:18px;background:linear-gradient(135deg,#22c55e18,#06b6d418);border:1px solid #22c55e40}.permanent-link{margin-top:20px}.proof-badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;white-space:nowrap;background:#64748b33;color:#cbd5e1}.proof-badge.uploaded{background:#f59e0b22;color:#fde68a}.proof-badge.approved{background:#22c55e22;color:#86efac}.proof-badge.rejected{background:#ef444422;color:#fca5a5}.warn-btn{border:1px solid #f59e0b55}.ticket-page{padding:34px}.digital-ticket{max-width:900px;margin:3vh auto;border-radius:28px;padding:30px;background:radial-gradient(circle at 90% 5%,var(--accent2),transparent 34%),linear-gradient(135deg,var(--accent),#0f172a 68%);border:1px solid #ffffff28;box-shadow:0 28px 90px #0008;overflow:hidden;position:relative}.digital-ticket:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,#ffffff0b 50%,transparent 65%);pointer-events:none}.ticket-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ticket-top h1{font-size:48px;margin:8px 0 5px}.ticket-top p{margin:0;color:#fffbd;font-size:18px}.ticket-brand{font-weight:900;letter-spacing:.05em;text-transform:uppercase;font-size:13px}.ticket-ref{text-align:right;padding:10px 13px;border-radius:13px;background:#0003;border:1px solid #ffffff18}.ticket-ref span,.ticket-person span,.ticket-prize span{display:block;color:#fff9;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.ticket-ref strong{font-size:20px}.ticket-divider{height:1px;background:#ffffff30;margin:24px 0}.ticket-person{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px}.ticket-person>div{padding:14px;border-radius:14px;background:#0002}.ticket-person strong{display:block;font-size:19px;margin-top:5px}.ticket-person small{color:#fff9}.ticket-numbers-title{margin:25px 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#fffc}.ticket-numbers{display:flex;gap:10px;flex-wrap:wrap}.ticket-numbers span{display:grid;place-items:center;min-width:68px;height:54px;padding:0 14px;border-radius:13px;background:#fff;color:#0f172a;font-size:22px;font-weight:1000;box-shadow:0 8px 20px #0003}.ticket-prize{margin-top:24px;padding:16px;border-radius:14px;background:#0002}.ticket-prize strong{display:block;font-size:21px;margin-top:4px}.ticket-foot{display:flex;justify-content:space-between;gap:20px;margin-top:24px;color:#fff9;font-size:12px}.ticket-actions{display:flex;justify-content:center;gap:10px;margin:18px auto;max-width:900px}.ticket-note{text-align:center;max-width:760px;margin:0 auto}.copyable{user-select:all}
@media(max-width:760px){.payment-layout,.color-row{grid-template-columns:1fr}.ticket-page{padding:14px}.digital-ticket{padding:22px;border-radius:20px}.ticket-top{flex-direction:column}.ticket-ref{text-align:left}.ticket-top h1{font-size:38px}.ticket-person{grid-template-columns:1fr}.ticket-foot{flex-direction:column;gap:5px}.ticket-numbers span{min-width:58px;height:48px;font-size:19px}}
@media print{body.ticket-page{background:white;padding:0}.digital-ticket{margin:0;max-width:none;box-shadow:none;break-inside:avoid}.ticket-actions,.ticket-note{display:none}}

/* V1.5 · logo e imagen personalizada del boleto */
.brand-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.checkline{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px;margin-top:8px}.brand-preview-v15{position:relative;overflow:hidden;background-image:linear-gradient(135deg,var(--brand),#111827 72%)}.brand-preview-v15:before{content:"";position:absolute;inset:0;background-image:var(--ticket-bg,none);background-size:cover;background-position:center;opacity:.56}.brand-preview-v15:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 6%,var(--brand2),transparent 38%),linear-gradient(0deg,#050816b8,#05081625)}.preview-overlay{position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#ffffff0a 50%,transparent 80%);z-index:1}.preview-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start}.preview-logo{max-width:170px;max-height:62px;object-fit:contain;margin-bottom:14px;filter:drop-shadow(0 4px 10px #0008)}.public-title-block{display:flex;flex-direction:column;align-items:flex-start}.public-logo{max-width:190px;max-height:76px;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 5px 16px #0008)}.confirmation-logo{display:block;max-width:190px;max-height:82px;object-fit:contain;margin:0 auto 18px;filter:drop-shadow(0 5px 16px #0008)}.ticket-logo{display:block;max-width:190px;max-height:72px;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 5px 16px #0009)}.digital-ticket.has-custom-bg{background-image:linear-gradient(135deg,#07111dcc,#0f172acc),var(--custom-ticket-bg);background-size:cover;background-position:center}.digital-ticket.has-custom-bg:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 5%,var(--accent2),transparent 35%),linear-gradient(135deg,var(--accent),transparent 52%);opacity:.66;pointer-events:none}.digital-ticket>*{position:relative;z-index:1}
@media(max-width:760px){.brand-upload-grid{grid-template-columns:1fr}.public-logo,.ticket-logo,.confirmation-logo{max-width:150px;max-height:64px}}

/* v1.6 - comprobantes por WhatsApp, sin almacenamiento local */
.whatsapp-proof-box{background:linear-gradient(145deg,#22c55e12,#ffffff06);border-color:#22c55e35}.whatsapp-proof-btn{display:inline-flex;justify-content:center;width:100%;margin:10px 0 12px;background:#22c55e;color:#06110a}.whatsapp-proof-btn:hover{filter:brightness(1.06)}.wa-steps{margin:10px 0 0;padding-left:20px;color:var(--muted);line-height:1.55}.wa-steps li+li{margin-top:5px}
