
:root{
  --bg:#0a0a0c; --panel:#121216; --panel2:#18181e; --line:#2a2a33;
  --text:#f7f3ec; --muted:#aaa5a0; --gold:#d9b56d; --gold2:#f1d39b;
  --red:#a50f1e; --red2:#e2263d; --radius:22px; --shadow:0 22px 60px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at top,#161219 0,#0a0a0c 30%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:rgba(10,10,12,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}
.brand{display:flex;flex-direction:column;line-height:.95;min-width:max-content}
.brand-kicker{font-size:.64rem;letter-spacing:.28em;color:var(--muted);font-weight:800}
.brand-main{font-size:1.1rem;letter-spacing:.08em;font-weight:950}
.mainnav{display:flex;gap:7px}
.nav-pill{padding:10px 12px;border:1px solid var(--line);border-radius:999px;font-size:.72rem;font-weight:850;letter-spacing:.05em;white-space:nowrap}
.nav-pill.active{background:var(--text);color:#0a0a0c;border-color:var(--text)}
.hero{position:relative;min-height:74vh;display:flex;align-items:flex-end;overflow:hidden;padding:56px 18px 44px;border-bottom:1px solid rgba(255,255,255,.06)}
.hero:before{content:"";position:absolute;inset:0;background:
linear-gradient(180deg,rgba(10,10,12,.1),rgba(10,10,12,.86)),
radial-gradient(circle at 72% 24%,rgba(217,181,109,.19),transparent 27%),
radial-gradient(circle at 15% 45%,rgba(165,15,30,.22),transparent 24%)}
.hero-glow{position:absolute;width:320px;height:320px;border-radius:50%;filter:blur(70px);background:rgba(226,38,61,.13);top:12%;right:-120px}
.hero-content{position:relative;max-width:780px;margin:0 auto;width:100%}
.eyebrow{display:inline-block;color:var(--gold2);font-size:.72rem;letter-spacing:.18em;font-weight:900}
.hero h1,.page-title,.event-hero h1{margin:.55rem 0 1rem;font-size:clamp(2.65rem,12vw,6.5rem);line-height:.92;letter-spacing:-.055em}
.hero h1 span{color:var(--gold2)}
.hero p{max-width:580px;color:#d3cfca;font-size:1rem}
.hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:28px}
.btn{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:14px 18px;border-radius:16px;font-weight:950;letter-spacing:.03em;border:1px solid transparent;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#19140c}
.btn-secondary{background:rgba(255,255,255,.04);border-color:var(--line);color:var(--text)}
.btn.small{min-height:44px;padding:10px 14px;font-size:.82rem}
.btn.full{width:100%}
.section-wrap{width:min(1120px,100%);margin:0 auto;padding:34px 16px 60px}
.section-wrap.compact{padding-top:30px}
.page-top{padding-top:34px}
.section-heading{margin-bottom:22px}
.section-heading h2,.section-heading .page-title{margin:.35rem 0 .5rem}
.section-heading h2{font-size:2rem}
.section-heading p{color:var(--muted);max-width:680px}
.home-grid,.event-grid,.ticket-grid{display:grid;grid-template-columns:1fr;gap:14px}
.feature-card,.event-card,.ticket-card,.form-card,.info-card{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.feature-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:20px}
.feature-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(217,181,109,.12);color:var(--gold2);font-size:1.3rem}
.feature-card h3{margin:.12rem 0 .25rem;font-size:1.25rem}
.feature-card p{margin:0;color:var(--muted);font-size:.9rem}
.card-kicker{font-size:.65rem;color:var(--gold);letter-spacing:.18em;font-weight:900}
.arrow{font-size:1.4rem;color:var(--gold2)}
.event-card{overflow:hidden}
.event-visual{position:relative;min-height:190px;display:flex;align-items:flex-end;padding:18px;background:#19191f;isolation:isolate}
.event-visual:before{content:"";position:absolute;inset:0;z-index:-1;background:
radial-gradient(circle at 70% 20%,rgba(255,255,255,.12),transparent 22%),
linear-gradient(135deg,rgba(255,255,255,.02),rgba(255,255,255,.06))}
.event-halloween{background:
linear-gradient(180deg,transparent,rgba(0,0,0,.62)),
radial-gradient(circle at 70% 25%,rgba(226,38,61,.35),transparent 24%),
linear-gradient(135deg,#190d11,#2b1216 55%,#0b0b0d)}
.event-graduaciones{background:linear-gradient(135deg,#171717,#36322b)}
.event-zarzamora{background:linear-gradient(135deg,#26171f,#5d2944)}
.event-nochevieja{background:linear-gradient(135deg,#111522,#2b3556)}
.event-ramos{background:linear-gradient(135deg,#1c1a14,#50472d)}
.event-visual>span:not(.event-badge){font-weight:950;letter-spacing:.08em;font-size:1.3rem}
.event-badge{position:absolute;top:14px;left:14px;background:var(--red2);padding:7px 10px;border-radius:999px;font-size:.68rem;font-weight:950;letter-spacing:.08em}
.event-title-lockup small{display:block;color:#e6b6bd;font-weight:900;letter-spacing:.14em}
.event-title-lockup strong{display:block;font-size:2.1rem;line-height:1;font-weight:950}
.event-card-body{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px}
.event-card-body h2{margin:0 0 3px;font-size:1.25rem}
.event-card-body p{margin:0;color:var(--muted);font-size:.88rem}
.event-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;padding:56px 18px 34px;overflow:hidden}
.halloween-hero{background:
radial-gradient(circle at 70% 24%,rgba(226,38,61,.32),transparent 24%),
radial-gradient(circle at 30% 20%,rgba(217,181,109,.13),transparent 18%),
linear-gradient(135deg,#140b0d,#211015 52%,#09090b)}
.event-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 15%,rgba(0,0,0,.7))}
.event-hero-content{position:relative;width:min(1120px,100%);margin:0 auto}
.event-hero h1{font-size:clamp(3.8rem,18vw,8rem);margin:.25rem 0 .4rem}
.organizer{color:#ddd6cf;margin:0 0 16px}
.location-chip{display:inline-flex;align-items:center;padding:10px 12px;border:1px solid var(--line);background:rgba(0,0,0,.25);border-radius:999px;margin-bottom:10px;font-size:.88rem}
.ticket-card{padding:20px}
.ticket-card.adult{border-color:rgba(226,38,61,.45)}
.ticket-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ticket-label{font-size:.72rem;letter-spacing:.12em;color:var(--gold2);font-weight:950}
.price{font-size:2.7rem;line-height:1;font-weight:950}
.price span{font-size:1.1rem;margin-left:2px}
.ticket-card h3{font-size:1.4rem;margin:18px 0 6px}
.ticket-card p{color:var(--muted);margin:0 0 18px}
.adult-note{display:inline-block;margin:-4px 0 18px;padding:7px 10px;border-radius:999px;background:rgba(226,38,61,.12);border:1px solid rgba(226,38,61,.35);color:#ff9dab;font-size:.72rem;font-weight:950;letter-spacing:.1em}
.payment-shell{max-width:1160px}
.checkout-layout{display:grid;grid-template-columns:1fr;gap:16px}
.form-card{padding:18px}
.form-step{padding:4px 0 24px}
.form-step+.form-step{border-top:1px solid var(--line);padding-top:24px}
.step-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.step-head>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--gold2);color:#17120b;font-weight:950}
.step-head h2{margin:0;font-size:1.18rem}
.selected-ticket{display:flex;justify-content:space-between;gap:12px;padding:16px;border-radius:16px;background:var(--panel2);border:1px solid var(--line);margin-bottom:16px}
.selected-ticket small,.selected-ticket em{display:block;color:var(--gold2);font-size:.7rem;font-style:normal;font-weight:900;letter-spacing:.08em}
.selected-ticket strong{display:block;margin:2px 0}
.selected-ticket b{font-size:1.35rem;white-space:nowrap}
.field{display:block;margin:0 0 14px}
.field>span{display:block;margin-bottom:7px;font-size:.82rem;font-weight:850;color:#e9e2dc}
.field small{display:block;color:var(--muted);font-size:.74rem;margin-top:6px}
input,select{width:100%;min-height:52px;padding:13px 14px;border-radius:14px;border:1px solid var(--line);background:#0f0f13;color:var(--text);outline:none}
input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,181,109,.12)}
.phone-row{display:grid;grid-template-columns:96px 1fr;gap:10px}
.summary-box{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:16px}
.summary-box>div{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}
.summary-box>div:last-child{border-bottom:none}
.summary-box span{color:var(--muted);font-size:.84rem}
.summary-box strong{text-align:right}
.summary-box .total{background:rgba(217,181,109,.07)}
.summary-box .total strong{font-size:1.35rem;color:var(--gold2)}
.check-row{display:flex;align-items:flex-start;gap:10px;margin:12px 0;color:#d3cec8;font-size:.84rem}
.check-row input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin-top:1px}
.adult-check{padding:11px;border-radius:14px;background:rgba(226,38,61,.08);border:1px solid rgba(226,38,61,.2)}
.pay-btn{margin-top:15px;border:0}
.secure-note{text-align:center;color:var(--muted);font-size:.76rem;margin:10px 0 0}
.form-message{display:none;margin-top:12px;padding:12px;border-radius:14px;font-size:.84rem}
.form-message.show{display:block}
.form-message.error{background:rgba(226,38,61,.09);border:1px solid rgba(226,38,61,.25);color:#ffb4be}
.form-message.ok{background:rgba(217,181,109,.09);border:1px solid rgba(217,181,109,.25);color:var(--gold2)}
.checkout-info{display:grid;gap:14px}
.info-card{padding:18px}
.info-card h3{margin:.45rem 0 .45rem}
.info-card p{color:var(--muted);margin:.3rem 0}
.footer{padding:28px 16px 42px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:3px;text-align:center;color:var(--muted);font-size:.82rem}
.footer strong{color:var(--text)}
@media(min-width:720px){
  .topbar{padding:16px 28px}
  .hero{padding:80px 28px 64px;min-height:78vh}
  .hero-actions{grid-template-columns:max-content max-content}
  .section-wrap{padding-left:28px;padding-right:28px}
  .home-grid,.ticket-grid{grid-template-columns:repeat(2,1fr)}
  .event-grid{grid-template-columns:repeat(2,1fr)}
  .event-card.featured{grid-column:1/-1}
  .form-card{padding:26px}
}
@media(min-width:980px){
  .checkout-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:start}
  .checkout-info{position:sticky;top:96px}
  .event-grid{grid-template-columns:repeat(3,1fr)}
  .event-card.featured{grid-column:span 2}
  .event-card.featured .event-visual{min-height:300px}
  .ticket-grid{max-width:860px}
}
@media(max-width:430px){
  .brand-main{font-size:.98rem}
  .brand-kicker{font-size:.56rem}
  .nav-pill{padding:9px 10px;font-size:.65rem}
}

.test-banner{margin:0 0 20px;padding:11px 14px;border-radius:14px;background:rgba(217,181,109,.12);border:1px solid rgba(217,181,109,.35);color:var(--gold2);font-size:.72rem;font-weight:950;letter-spacing:.08em;text-align:center}
.result-shell{min-height:72vh;display:grid;place-items:center;padding:32px 16px}
.result-card{width:min(620px,100%);padding:26px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}
.result-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;font-size:2rem;font-weight:950}
.result-icon.ok{background:rgba(89,205,132,.12);border:1px solid rgba(89,205,132,.35);color:#8ce5ac}
.result-icon.ko{background:rgba(226,38,61,.12);border:1px solid rgba(226,38,61,.35);color:#ff9dab}
.result-icon.pending{background:rgba(217,181,109,.12);border:1px solid rgba(217,181,109,.35);color:var(--gold2)}
.result-card h1{font-size:2rem;margin:.2rem 0 .7rem}
.result-card p{color:var(--muted)}
.order-box{margin:18px 0;padding:14px;border-radius:14px;background:#0f0f13;border:1px solid var(--line);font-size:.85rem}

/* ===== V3: ajustes de portada, selector de entrada y validación visual ===== */
.brand-single .brand-main{font-size:.94rem;letter-spacing:.07em;font-weight:950;white-space:nowrap}
.hero-new{min-height:52vh;align-items:flex-start;padding-top:32px;padding-bottom:38px}
.new-home-title{font-size:clamp(2.35rem,11vw,5.5rem)!important;line-height:.94!important;margin:0 0 20px!important;font-weight:950;letter-spacing:-.045em}
.new-services{display:grid;gap:7px;margin-bottom:26px;color:#ece5dc;font-weight:900;font-size:.9rem;letter-spacing:.025em}
.new-order{margin-top:8px}
.field{position:relative}
.field input,.field select{padding-right:46px}
.field-warning{display:none;position:absolute;right:14px;top:38px;width:25px;height:25px;border-radius:50%;background:#d52b3f;color:#fff;text-align:center;line-height:25px;font-weight:950}
.field-error{display:none!important;color:#ff9baa!important;font-size:.72rem!important;margin-top:6px!important}
.field-help{display:block;color:var(--muted);font-size:.74rem;margin-top:6px}
.field.invalid input,.field.invalid select{border-color:#d52b3f;box-shadow:0 0 0 3px rgba(213,43,63,.10)}
.field.invalid .field-warning,.field.invalid .field-error{display:block!important}
.validate-check{position:relative;padding-right:34px}
.check-warning{display:none;position:absolute;right:2px;top:0;width:24px;height:24px;border-radius:50%;background:#d52b3f;color:#fff;text-align:center;line-height:24px;font-weight:950}
.validate-check.invalid{color:#ffb1bb}.validate-check.invalid .check-warning{display:block}
@media(min-width:720px){.hero-new{min-height:58vh;padding-top:46px}.new-order{grid-template-columns:max-content max-content}.brand-single .brand-main{font-size:1.05rem}}
@media(max-width:430px){.brand-single .brand-main{font-size:.75rem;letter-spacing:.045em}.new-home-title{font-size:2.45rem!important}.new-services{font-size:.82rem}}

/* ===== V3.2 · PANEL PRIVADO DE LISTAS ===== */
.admin-auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.admin-auth-card{width:min(460px,100%);padding:24px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.admin-auth-card h1{font-size:2rem;line-height:1;margin:.45rem 0 .7rem}.admin-auth-card p{color:var(--muted);margin:0 0 20px}
.admin-alert{padding:12px 14px;border-radius:14px;margin:0 0 15px;font-size:.82rem}.admin-alert.error{background:rgba(226,38,61,.1);border:1px solid rgba(226,38,61,.3);color:#ffb4be}
.admin-topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:rgba(10,10,12,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.07)}
.admin-topbar>div{display:flex;flex-direction:column;line-height:1.05}.admin-topbar small{color:var(--gold2);font-size:.62rem;letter-spacing:.14em;font-weight:950}.admin-topbar strong{font-size:.9rem;letter-spacing:.06em}.admin-logout{padding:9px 12px;border:1px solid var(--line);border-radius:999px;font-size:.68rem;font-weight:950}
.admin-shell{width:min(1380px,100%);margin:auto;padding:26px 14px 60px}.admin-heading{margin:0 0 20px}.admin-heading h1{font-size:clamp(2.2rem,10vw,4.5rem);line-height:.94;letter-spacing:-.045em;margin:.35rem 0 .6rem}.admin-heading p{color:var(--muted);max-width:880px;margin:0}
.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.admin-stats article{padding:15px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025)}.admin-stats span{display:block;color:var(--muted);font-size:.64rem;letter-spacing:.08em;font-weight:900}.admin-stats strong{display:block;margin-top:3px;font-size:2rem;line-height:1;color:var(--gold2)}
.admin-controls{display:grid;gap:13px;margin:18px 0}.admin-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.admin-tabs a{white-space:nowrap;padding:10px 12px;border-radius:999px;border:1px solid var(--line);font-size:.68rem;font-weight:950}.admin-tabs a.active{background:var(--text);color:#111;border-color:var(--text)}
.admin-actions{display:grid;gap:10px}.admin-search{display:grid;grid-template-columns:1fr auto;gap:8px}.admin-search input{min-height:48px}.admin-search button{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:14px;padding:0 14px;font-weight:950;font-size:.72rem}.admin-export{min-height:48px;font-size:.74rem}
.admin-current-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:16px 0;padding:12px 14px;border-radius:15px;background:rgba(217,181,109,.07);border:1px solid rgba(217,181,109,.2)}.admin-current-summary strong{color:var(--gold2)}.admin-current-summary span{color:var(--muted);font-size:.8rem}
.admin-groups{display:grid;gap:16px}.admin-group-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.012))}.admin-group-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;border-bottom:1px solid var(--line);background:rgba(217,181,109,.045)}.admin-group-header span{display:block;color:var(--gold2);font-size:.62rem;letter-spacing:.13em;font-weight:950}.admin-group-header h2{font-size:1.35rem;margin:.15rem 0 0}.admin-group-count{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:5px;row-gap:0;text-align:right}.admin-group-count strong{font-size:1.1rem;color:var(--gold2)}.admin-group-count small{color:var(--muted);font-size:.68rem}
.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;min-width:980px}.admin-table th,.admin-table td{padding:12px 11px;text-align:left;border-bottom:1px solid rgba(255,255,255,.055);font-size:.78rem}.admin-table th{position:sticky;top:0;background:#121216;color:var(--muted);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;z-index:1}.admin-table tr:last-child td{border-bottom:0}.admin-table td:first-child{color:var(--muted);width:42px}.admin-table .num-entries{font-size:1.05rem;font-weight:950;color:var(--gold2)}
.status-pill{display:inline-flex;padding:6px 8px;border-radius:999px;font-size:.62rem;font-weight:950;letter-spacing:.04em}.status-pill.paid{background:rgba(83,197,125,.12);border:1px solid rgba(83,197,125,.3);color:#8be7ae}.status-pill.pending{background:rgba(217,181,109,.1);border:1px solid rgba(217,181,109,.3);color:var(--gold2)}.status-pill.rejected{background:rgba(226,38,61,.1);border:1px solid rgba(226,38,61,.28);color:#ff9dab}
.admin-empty{padding:30px 18px;text-align:center;border:1px dashed var(--line);border-radius:20px}.admin-empty h2{margin:0 0 6px}.admin-empty p{margin:0;color:var(--muted)}
@media(min-width:720px){.admin-shell{padding:34px 26px 70px}.admin-stats{grid-template-columns:repeat(4,1fr)}.admin-actions{grid-template-columns:minmax(320px,1fr) max-content;align-items:center}.admin-group-header{padding:18px 20px}.admin-table th,.admin-table td{padding:13px 14px}}


/* ===== V3.3 · ACCESO PRIVADO + PARTICIPANTES + QR ===== */
.access-page{min-height:100vh;background:radial-gradient(circle at 50% 15%,rgba(217,181,109,.11),transparent 30%),#08080a}
.access-shell{min-height:100vh;display:grid;place-items:center;padding:20px}
.access-card{width:min(520px,100%);padding:26px 20px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));box-shadow:0 24px 70px rgba(0,0,0,.45)}
.access-card h1{font-size:clamp(2rem,10vw,3.7rem);line-height:.95;letter-spacing:-.045em;margin:.55rem 0 1rem}
.access-lead{font-size:1.02rem;color:#eee6dc}
.access-whatsapp{display:grid;gap:9px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);text-align:center}.access-whatsapp small{color:var(--muted)}
.access-legal{margin-top:20px;color:var(--muted);font-size:.73rem}.access-not-ready{padding:16px;border:1px solid rgba(213,43,63,.25);border-radius:16px;background:rgba(213,43,63,.08)}

.participant-help{color:var(--muted);font-size:.85rem;margin:-4px 0 15px}
.participants{display:grid;gap:10px}
.participant-card{border:1px solid var(--line);border-radius:17px;background:#101014;overflow:hidden}
.participant-toggle{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:13px 14px;background:transparent;border:0;color:var(--text);text-align:left;cursor:pointer}
.participant-number{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(217,181,109,.13);color:var(--gold2);font-weight:950}
.participant-heading{display:flex;flex-direction:column;min-width:0}.participant-heading strong{font-size:.83rem;letter-spacing:.05em}.participant-heading small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.participant-status{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-weight:950}.participant-status.complete{background:#1d7544;color:#fff}.participant-status.incomplete{background:var(--red2);color:#fff}
.participant-chevron{font-size:1.25rem;color:var(--gold2)}
.participant-body{display:none;padding:2px 14px 16px;border-top:1px solid var(--line)}.participant-body.open{display:block}.participant-body .field:first-child{margin-top:14px}

.qr-page{max-width:900px}.qr-cards{display:grid;grid-template-columns:1fr;gap:26px}.digital-ticket-wrap{display:grid;gap:10px}
.digital-ticket{position:relative;overflow:hidden;border:1px solid #34323b;border-radius:24px;padding:20px;background:radial-gradient(circle at 80% 10%,rgba(213,43,63,.24),transparent 25%),radial-gradient(circle at 10% 35%,rgba(217,181,109,.1),transparent 20%),linear-gradient(160deg,#171016,#09090c 70%);box-shadow:0 25px 60px rgba(0,0,0,.4)}
.digital-ticket:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.03),transparent 35%)}
.digital-ticket-top{position:relative;display:flex;justify-content:space-between;align-items:flex-start}.digital-ticket-top small{display:block;color:#e8bcc3;font-weight:950;letter-spacing:.12em}.digital-ticket-top strong{display:block;font-size:2rem;line-height:1}.digital-ticket-top>span{font-weight:950;color:var(--gold2)}
.digital-person{position:relative;margin:22px 0 16px}.digital-person small,.digital-data span{display:block;color:var(--muted);font-size:.64rem;letter-spacing:.12em;font-weight:900}.digital-person h2{font-size:1.65rem;margin:.15rem 0;line-height:1.05}
.digital-data{position:relative;display:grid;grid-template-columns:1fr;gap:10px}.digital-data>div{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}.digital-data strong{font-size:.88rem}
.qr-box{position:relative;width:204px;min-height:204px;margin:20px auto 8px;padding:12px;border-radius:17px;background:#fff;display:grid;place-items:center}.qr-box img,.qr-box canvas{max-width:180px!important;max-height:180px!important}
.qr-code-fallback{text-align:center;color:var(--muted);font-size:.65rem;letter-spacing:.12em}.digital-note{text-align:center;color:#cbc3bb;font-size:.72rem}.digital-ticket footer{text-align:center;border-top:1px solid rgba(255,255,255,.08);padding-top:12px;color:var(--gold2);font-size:.64rem;font-weight:950;letter-spacing:.1em}

.admin-header-links{display:flex;gap:10px;align-items:center}.admin-header-links a{font-size:.68rem;color:#eee;padding:8px;border:1px solid var(--line);border-radius:10px}.settings-grid{display:grid;grid-template-columns:1fr;gap:14px}.settings-grid .info-card{padding:20px}
.admin-alert.ok{background:rgba(31,122,69,.11);border:1px solid rgba(31,122,69,.35);color:#a5efc2}

.door-page{background:#08080a}.door-shell{width:min(560px,100%);margin:auto;padding:24px 16px 50px}.door-card{border-radius:24px;padding:22px;border:2px solid var(--line);margin-bottom:12px}.door-card.valid{border-color:#238b50;background:rgba(35,139,80,.09)}.door-card.used,.door-card.invalid{border-color:#d52b3f;background:rgba(213,43,63,.11)}
.door-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:2.2rem;font-weight:950;margin-bottom:13px}.valid .door-icon{background:#238b50}.used .door-icon,.invalid .door-icon{background:#d52b3f}
.door-card h1{font-size:2rem;line-height:1;margin:.3rem 0}.door-time{font-weight:900;color:#ffb2bd;margin:10px 0}.door-person{display:grid;gap:5px;margin:18px 0;padding:15px;border-radius:17px;background:rgba(0,0,0,.25)}.door-person small{color:var(--muted);font-size:.65rem;letter-spacing:.1em}.door-person strong{margin-bottom:8px;font-size:1.05rem}.door-guide{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:20px}.door-guide strong:first-of-type{color:#8be4ad}.door-guide strong:last-of-type{color:#ff9cab}

@media(min-width:720px){.qr-cards{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:repeat(2,1fr)}}

.admin-notice{margin:0 0 14px;padding:12px 14px;border:1px solid rgba(241,211,155,.28);border-radius:14px;background:rgba(241,211,155,.07);color:#d8d0c5;font-size:.82rem}.admin-notice strong{color:#f1d39b}

/* V3.6 · Validación positiva */
.field.valid input,.field.valid select{border-color:#35c978;box-shadow:0 0 0 3px rgba(53,201,120,.11)}
.field.valid .field-warning{display:block!important;background:#35c978!important;color:#07150d!important}
.participant-status.complete{background:#35c978!important;color:#07150d!important}
.staff-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:rgba(53,201,120,.10);border:1px solid rgba(53,201,120,.32);color:#8df0b8;font-weight:900;font-size:.68rem;white-space:nowrap}
.admin-qr-link{display:inline-flex;align-items:center;justify-content:center;padding:7px 9px;border-radius:10px;border:1px solid rgba(241,211,155,.35);color:#f1d39b;font-weight:900;font-size:.68rem;white-space:nowrap}
.admin-qr-link:hover{background:rgba(241,211,155,.08)}
.staff-config-list{display:grid;gap:10px;margin-top:14px}.staff-config-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.staff-config-row strong{display:block}.staff-config-row small{color:var(--muted)}
.settings-grid-wide{display:grid;gap:14px}.settings-form-grid{display:grid;grid-template-columns:1fr;gap:10px}.money-euro{white-space:nowrap}
@media(min-width:760px){.settings-form-grid{grid-template-columns:1.2fr 1.2fr .7fr auto;align-items:end}.settings-grid-wide{grid-template-columns:1fr}}
.staff-sale-banner{margin-top:8px;padding:10px 12px;border-radius:13px;background:rgba(53,201,120,.08);border:1px solid rgba(53,201,120,.28);color:#8df0b8;text-align:center;font-size:.68rem;font-weight:950;letter-spacing:.07em}


/* V3.8 · Web pública simplificada: solo Halloween Festival */
.v38-single-event-grid{
  grid-template-columns:1fr!important;
  max-width:760px;
  margin:0 auto;
}
.v38-single-event-card{grid-column:auto!important}
.v38-single-event-card .event-visual{
  min-height:clamp(300px,58vh,650px);
}
.v38-event-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  max-width:760px;
  margin:16px auto 0;
}
@media(min-width:720px){
  .v38-event-actions{grid-template-columns:1fr 1fr}
}


/* V3.9 · Acceso WhatsApp más directo */
.whatsapp-direct{
  display:grid;
  gap:10px;
  text-align:center;
}
.whatsapp-direct>span{
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.12em;
  color:var(--muted);
}
.whatsapp-number{
  display:block;
  width:100%;
  padding:7px 4px 10px;
  color:var(--gold2);
  font-size:clamp(2.15rem,11vw,3.6rem);
  line-height:1;
  font-weight:950;
  letter-spacing:-.045em;
  text-decoration:none;
}
.whatsapp-number:active{transform:scale(.985)}

/* Texto de distribución de plantas en una sola línea en móvil. */
.ticket-floor-line{
  white-space:nowrap;
  font-size:clamp(.69rem,2.75vw,.88rem);
  letter-spacing:-.015em;
  overflow:visible;
}
@media(max-width:360px){
  .ticket-floor-line{font-size:.66rem}
}


/* V4.0 · Carteles visibles directamente en Halloween */
.poster-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.poster-card{
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
  overflow:hidden;
  box-shadow:0 22px 60px rgba(0,0,0,.28);
}
.poster-image-wrap{
  background:#0b0b0d;
}
.poster-image{
  display:block;
  width:100%;
  height:auto;
}
.poster-card-body{
  padding:18px;
}
.poster-card-body h3{
  margin:10px 0 6px;
  font-size:1.38rem;
}
.poster-card-body p{
  margin:0 0 18px;
  color:var(--muted);
}
.poster-actions{
  display:grid;
  justify-content:center;
  margin-top:18px;
}
.poster-actions .btn{
  min-width:min(100%,420px);
}
@media(min-width:820px){
  .poster-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
    align-items:start;
  }
}


/* V4.1 · Halloween directo, sin pantalla intermedia */
.halloween-intro{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 20%,rgba(210,22,36,.16),transparent 28%),
    linear-gradient(180deg,#0b0b0d,#08080a);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.halloween-intro-inner{
  width:min(1120px,100%);
  margin:0 auto;
  padding:26px 16px 22px;
}
.horror-title{
  margin:0;
  color:#e61d2d;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  font-size:clamp(3.15rem,15vw,7.2rem);
  line-height:.84;
  letter-spacing:.005em;
  text-transform:uppercase;
  text-shadow:
    0 2px 0 #5f070e,
    0 0 18px rgba(230,29,45,.18);
  transform:scaleY(1.06);
  transform-origin:left center;
}
.halloween-meta{
  margin:16px 0 10px;
  color:#d8d2cc;
  font-size:.92rem;
}
.halloween-location-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px 12px;
  color:var(--muted);
  font-size:.82rem;
}
.halloween-location-row .btn{
  min-height:40px;
}
.halloween-posters-section{
  padding-top:22px;
}
.halloween-choice-heading{
  margin:0 0 15px;
}
.horror-choice{
  margin:.35rem 0 0!important;
  color:#f5f1e9;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  font-size:clamp(2.25rem,11vw,4.8rem)!important;
  line-height:.92;
  letter-spacing:.015em;
  text-transform:uppercase;
}
.poster-grid{
  margin-top:0;
}

/* En teléfono reducimos especialmente el espacio superior. */
@media(max-width:719px){
  .halloween-intro-inner{
    padding-top:18px;
    padding-bottom:17px;
  }
  .horror-title{
    font-size:clamp(3rem,14.5vw,4.6rem);
  }
  .halloween-meta{
    margin-top:13px;
    margin-bottom:8px;
    font-size:.82rem;
  }
  .halloween-posters-section{
    padding-top:16px;
  }
  .halloween-choice-heading{
    margin-bottom:12px;
  }
}

/* Escritorio: seguimos dando presencia, pero sin el enorme hueco anterior. */
@media(min-width:720px){
  .halloween-intro-inner{
    padding:38px 28px 30px;
  }
}


/* V4.2 · Pago final y aviso previo */
.horror-payment-title{
  color:#e61d2d!important;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  letter-spacing:.005em!important;
  text-transform:uppercase;
  text-shadow:0 2px 0 #5f070e,0 0 18px rgba(230,29,45,.15);
  transform:scaleY(1.05);
  transform-origin:left center;
}
body.modal-open{overflow:hidden}
.sale-policy-modal{
  position:fixed;
  inset:0;
  z-index:999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.sale-policy-modal.open{display:flex}
.sale-policy-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(8px);
}
.sale-policy-card{
  position:relative;
  width:min(640px,100%);
  max-height:min(86vh,760px);
  overflow:auto;
  border:1px solid rgba(230,29,45,.38);
  border-radius:24px;
  background:linear-gradient(180deg,#151116,#0d0d10);
  box-shadow:0 30px 90px rgba(0,0,0,.6);
  padding:24px 20px;
}
.sale-policy-card h2{
  margin:.45rem 0 1rem;
  color:#e61d2d;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  font-size:clamp(2rem,9vw,3.5rem);
  line-height:.95;
  letter-spacing:.02em;
}
.sale-policy-card p{color:#d8d1cb}
.sale-policy-lead{
  font-size:1.02rem;
  font-weight:800;
  color:#f5f0ea!important;
}
.sale-policy-check{
  display:flex;
  gap:11px;
  align-items:flex-start;
  margin:20px 0 10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  cursor:pointer;
}
.sale-policy-check input{
  width:22px;
  height:22px;
  min-height:22px;
  flex:0 0 22px;
  margin-top:1px;
}
.sale-policy-check span{
  font-weight:800;
  color:#f2ece6;
}
.sale-policy-error{
  min-height:20px;
  color:#ff9baa;
  font-size:.78rem;
  font-weight:800;
  margin:6px 0;
}
.sale-policy-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  margin-top:12px;
}
.sale-policy-legal{
  display:block;
  margin-top:14px;
  color:var(--muted);
  line-height:1.45;
}
@media(min-width:620px){
  .sale-policy-actions{grid-template-columns:.72fr 1.28fr}
}


/* V4.3 · Acceso con estética Halloween */
.access-card-halloween{
  background:
    radial-gradient(circle at 75% 10%, rgba(230,29,45,.14), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
}
.access-horror-title{
  margin:.35rem 0 .75rem;
  color:#e61d2d;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  font-size:clamp(3rem,12vw,5.8rem);
  line-height:.84;
  letter-spacing:.01em;
  text-transform:uppercase;
  text-shadow:
    0 2px 0 #5f070e,
    0 0 18px rgba(230,29,45,.18);
  transform:scaleY(1.06);
  transform-origin:left center;
}
.access-open-tickets{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 18px;
  padding:10px 14px;
  border:1px solid rgba(230,29,45,.34);
  border-radius:999px;
  color:#e61d2d;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  font-size:clamp(1.2rem,5.2vw,2rem);
  line-height:1;
  letter-spacing:.04em;
  text-transform:uppercase;
  background:rgba(230,29,45,.06);
}
.whatsapp-number-halloween{
  color:#e61d2d!important;
  font-family:Impact,"Arial Black","Helvetica Neue",sans-serif;
  text-shadow:0 2px 0 #5f070e,0 0 18px rgba(230,29,45,.12);
  letter-spacing:.01em;
}
@media(max-width:719px){
  .access-horror-title{
    font-size:clamp(3.1rem,13.5vw,4.7rem);
  }
  .access-open-tickets{
    font-size:clamp(1.05rem,5vw,1.55rem);
  }
}


/* V4.7 · Ingreso total + comensales */
.admin-stats .income-total-card{
  border-color:rgba(49,196,116,.42);
  background:linear-gradient(180deg,rgba(49,196,116,.12),rgba(49,196,116,.035));
}
.admin-stats .income-total-card strong{color:#5be39a}
.admin-stats .income-total-card small{
  display:block;margin-top:5px;color:#9eddbb;font-size:.65rem;font-weight:800
}
.admin-table tr.dinner-row td{
  background:rgba(49,196,116,.11);
  border-top-color:rgba(49,196,116,.18);
  border-bottom-color:rgba(49,196,116,.18);
}
.admin-table tr.dinner-row td:first-child{box-shadow:inset 4px 0 0 #31c474}
@media(min-width:1100px){.admin-stats{grid-template-columns:repeat(5,1fr)}}


/* V4.8 · Desglose RPP */
.admin-stat-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.admin-stat-link article{
  height:100%;
}
.rpp-commission-card{
  border-color:rgba(217,181,109,.45)!important;
  background:linear-gradient(180deg,rgba(217,181,109,.13),rgba(217,181,109,.035))!important;
}
.rpp-commission-card small{
  display:block;
  margin-top:5px;
  color:var(--gold2);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.04em;
}
.rpp-total-stats{
  margin-bottom:18px;
}
.rpp-pay-total{
  border-color:rgba(49,196,116,.45)!important;
  background:linear-gradient(180deg,rgba(49,196,116,.13),rgba(49,196,116,.035))!important;
}
.rpp-pay-total strong{
  color:#5be39a!important;
}
.rpp-breakdown-list{
  display:grid;
  gap:16px;
}
.rpp-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
  overflow:hidden;
}
.rpp-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:20px;
  border-bottom:1px solid var(--line);
}
.rpp-card-head h2{
  margin:.35rem 0 0;
  font-size:1.65rem;
}
.rpp-pay-box{
  min-width:132px;
  text-align:right;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(49,196,116,.4);
  background:rgba(49,196,116,.08);
}
.rpp-pay-box span{
  display:block;
  color:#9eddbb;
  font-size:.65rem;
  font-weight:950;
  letter-spacing:.12em;
}
.rpp-pay-box strong{
  display:block;
  color:#5be39a;
  font-size:1.65rem;
  line-height:1.1;
}
.rpp-card-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border-bottom:1px solid var(--line);
}
.rpp-card-stats>div{
  background:#101014;
  padding:14px 16px;
}
.rpp-card-stats span{
  display:block;
  color:var(--muted);
  font-size:.68rem;
  font-weight:850;
}
.rpp-card-stats strong{
  display:block;
  margin-top:3px;
  font-size:1.15rem;
}
.rpp-groups{
  padding:0 20px 18px;
}
.rpp-group-head,.rpp-group-row{
  display:grid;
  grid-template-columns:minmax(240px,1.6fr) 100px 120px 120px;
  align-items:center;
  gap:12px;
}
.rpp-group-head{
  padding:14px 0 9px;
  color:var(--muted);
  font-size:.65rem;
  font-weight:950;
  letter-spacing:.08em;
}
.rpp-group-row{
  padding:13px 0;
  border-top:1px solid rgba(255,255,255,.07);
}
.rpp-group-name small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.35;
}
.rpp-group-commission strong{
  color:#5be39a;
}
@media(max-width:760px){
  .rpp-card-head{
    align-items:stretch;
    flex-direction:column;
  }
  .rpp-pay-box{
    width:100%;
    text-align:left;
  }
  .rpp-card-stats{
    grid-template-columns:1fr;
  }
  .rpp-group-head{
    display:none;
  }
  .rpp-group-row{
    grid-template-columns:1fr 1fr;
    gap:10px 14px;
    padding:15px 0;
  }
  .rpp-group-name{
    grid-column:1/-1;
  }
  .rpp-group-row>div:not(.rpp-group-name)::before{
    content:attr(data-label);
    display:block;
    color:var(--muted);
    font-size:.62rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:2px;
  }
}


/* V4.9 · Cenas */
.dinner-pricing-note{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 16px;padding:14px;border:1px solid rgba(217,181,109,.28);border-radius:16px;background:rgba(217,181,109,.055)}
.dinner-pricing-note>div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dinner-pricing-note span{color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.06em}
.dinner-pricing-note strong{color:var(--gold2);font-size:1.18rem}
.dinner-pricing-note p{grid-column:1/-1;margin:3px 0 0;color:var(--muted);font-size:.76rem}
.dinner-fields-grid{display:grid;grid-template-columns:1fr;gap:10px}
.dinner-notes-field textarea{width:100%;resize:vertical;min-height:86px;padding:13px 14px;border-radius:14px;border:1px solid var(--line);background:#0f0f13;color:var(--text);outline:none;font:inherit}
.dinner-notes-field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,181,109,.12)}
.admin-table tr.dinner-row td{background:transparent!important}
.admin-table tr.dinner-row td:first-child{box-shadow:none!important}
@media(min-width:650px){.dinner-fields-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.dinner-pricing-note{grid-template-columns:1fr}.dinner-pricing-note p{grid-column:1}}


/* V5.0 · Cena terrorífica + menores sin DNI/teléfono */
.payment-pill{font-size:.68rem}
.dinner-title-line{
  white-space:nowrap;
  font-size:clamp(2.05rem,8vw,4.6rem)!important;
  line-height:.98!important;
  letter-spacing:-.035em!important;
}
.organizer-line{
  color:var(--gold2)!important;
  font-size:.94rem;
  font-weight:800;
  letter-spacing:.015em;
  margin-top:.25rem!important;
  max-width:none!important;
}
.dinner-pricing-top{margin-bottom:16px}
.dinner-pricing-top p + p{margin-top:.2rem}
.minor-doc-help{
  margin:-4px 0 10px;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.45;
}
@media(max-width:430px){
  .payment-pill{font-size:.62rem;padding:10px 10px}
  .dinner-title-line{font-size:clamp(1.85rem,7.7vw,2.55rem)!important}
}


/* V5.2 · Trona / carrito solo para menú infantil */
.dinner-seat-field[hidden]{
  display:none!important;
}


/* V5.3 · Devoluciones */
.refund-total-card{
  border-color:rgba(230,29,45,.42)!important;
  background:linear-gradient(180deg,rgba(230,29,45,.12),rgba(230,29,45,.03))!important;
}
.refund-total-card strong{color:#ff7b88!important}
.refund-total-card small,.refund-mini{
  display:block;margin-top:4px;color:var(--muted);font-size:.65rem;font-weight:800
}
.refund-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;padding:8px 11px;border-radius:10px;
  border:1px solid rgba(230,29,45,.4);background:rgba(230,29,45,.08);
  color:#ff8d98;text-decoration:none;font-size:.67rem;font-weight:950;white-space:nowrap
}
.refund-link:hover{background:rgba(230,29,45,.14)}
.status-pill.refunded{
  background:rgba(230,29,45,.12);border-color:rgba(230,29,45,.35);color:#ff8d98
}
.refund-shell{max-width:980px}
.refund-summary-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px
}
.refund-summary-grid article{
  border:1px solid var(--line);border-radius:16px;padding:15px;background:#101014
}
.refund-summary-grid span{
  display:block;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.07em
}
.refund-summary-grid strong{display:block;margin-top:4px;font-size:1.55rem}
.refund-card{
  border:1px solid var(--line);border-radius:22px;background:#101014;overflow:hidden
}
.refund-step{
  display:grid;grid-template-columns:48px 1fr;gap:14px;padding:20px;border-bottom:1px solid var(--line)
}
.refund-step:last-child{border-bottom:0}
.refund-step-num{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--gold2);color:#111;font-weight:950;font-size:1.1rem
}
.refund-step h2{margin:0 0 8px}
.refund-step p{color:var(--muted)}
.refund-step small{display:block;margin-top:8px;color:var(--muted)}
.refund-form-wrap{width:100%}
.refund-person{
  border:1px solid rgba(217,181,109,.25);background:rgba(217,181,109,.05);
  border-radius:14px;padding:12px 14px;margin:12px 0
}
.refund-person span,.refund-person small{display:block;color:var(--muted)}
.refund-person strong{display:block;margin:3px 0}
.refund-form textarea{
  width:100%;resize:vertical;min-height:82px;padding:13px 14px;border-radius:14px;
  border:1px solid var(--line);background:#0d0d11;color:var(--text);font:inherit
}
.refund-confirm{margin:14px 0}
.refund-history{margin-top:18px}
.ticket-refunded{opacity:.72;filter:saturate(.55)}
.ticket-refunded-badge{
  margin:0 0 10px;padding:8px 10px;text-align:center;border-radius:10px;
  background:#8e101b;color:#fff;font-weight:950;letter-spacing:.06em
}
.door-refunded-alert{
  width:min(720px,calc(100% - 28px));margin:16px auto;padding:18px;border-radius:16px;
  background:#8e101b;color:#fff;text-align:center;border:1px solid rgba(255,255,255,.2)
}
.door-refunded-alert strong{display:block;font-size:1.3rem}
.door-refunded-alert span{display:block;margin-top:4px}
@media(max-width:700px){
  .refund-summary-grid{grid-template-columns:1fr}
  .refund-step{grid-template-columns:1fr}
}
\n\n/* ===== V6.1 · Textos de acceso + política legal compacta ===== */\n.brand-with-tagline{flex-direction:row;align-items:center;gap:9px;line-height:1}\n.brand-side-tagline{font-size:.56rem;letter-spacing:.07em;font-weight:850;color:var(--muted);white-space:nowrap}\n.access-producer-line{font-size:.66rem;letter-spacing:.10em}\n.sale-policy-important{padding:12px 13px;border-radius:14px;border:1px solid rgba(230,29,45,.38);background:rgba(230,29,45,.08);color:#f5f0ea!important}\n.sale-policy-important>strong:first-child{color:#ff8793;letter-spacing:.04em}\n@media(max-width:640px){\n  .brand-with-tagline{gap:6px}\n  .brand-side-tagline{font-size:.43rem;letter-spacing:.04em;max-width:120px;white-space:normal;line-height:1.15}\n  .access-producer-line{font-size:.58rem;letter-spacing:.075em;line-height:1.35}\n  .sale-policy-card{padding:20px 16px;max-height:90vh}\n  .sale-policy-card h2{font-size:clamp(1.75rem,8vw,2.45rem)}\n  .sale-policy-card p{font-size:.88rem;line-height:1.42;margin:.7rem 0}\n  .sale-policy-lead{font-size:.93rem}\n}\n
/* ===== V6.2 · Tarjeta Halloween Premium + aviso legal compacto ===== */
.halloween-premium-ticket{
  padding:0;
  border:1px solid rgba(226,181,93,.72);
  border-radius:24px;
  background:linear-gradient(165deg,#18110d 0%,#0b0a0a 52%,#08090b 100%);
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,210,120,.04) inset;
}
.halloween-premium-ticket:before{display:none}
.ticket-art-header{
  min-height:150px;
  background-image:linear-gradient(to bottom,rgba(5,4,4,.02) 0%,rgba(8,7,7,.10) 58%,#0d0b0a 100%),url('ticket_halloween_header.png');
  background-size:cover;
  background-position:center top;
  border-bottom:1px solid rgba(226,181,93,.24);
}
.ticket-content{padding:14px 20px 18px}
.compact-person{margin:0 0 8px}
.compact-person small{display:block;color:#d6c8b9;font-size:.64rem;letter-spacing:.16em;font-weight:950}
.compact-person h2{font-size:1.48rem;line-height:1.04;margin:3px 0 0;color:#fff8ee}
.compact-data{display:grid;gap:0;margin-top:4px}
.compact-data>div{display:grid;grid-template-columns:92px 1fr;align-items:start;gap:10px;padding:9px 0;border-top:1px solid rgba(221,177,91,.20)}
.compact-data>div:last-child{border-bottom:1px solid rgba(221,177,91,.20)}
.compact-data span{font-size:.62rem;line-height:1.25;letter-spacing:.12em;color:#cfc3b5;font-weight:900}
.compact-data strong{font-size:.78rem;line-height:1.3;color:#fff7ec;overflow-wrap:anywhere}
.premium-qr{width:214px;min-height:214px;margin:16px auto 7px;padding:11px;border-radius:17px;box-shadow:0 7px 26px rgba(0,0,0,.34)}
.premium-qr img,.premium-qr canvas{max-width:192px!important;max-height:192px!important;width:192px!important;height:192px!important}
.single-use-note{margin:5px 0 10px!important;font-size:.58rem!important;letter-spacing:.16em;color:#b8aa9a!important;font-weight:900}
.ticket-legal-mini{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start;padding:11px 0 10px;border-top:1px solid rgba(221,177,91,.30);border-bottom:1px solid rgba(221,177,91,.16)}
.ticket-legal-shield{width:24px;height:24px;border:2px solid #dcb15c;border-radius:8px 8px 11px 11px;display:grid;place-items:center;color:#e6bd69;font-size:.78rem;font-weight:950;line-height:1}
.ticket-legal-mini div{display:grid;gap:2px}
.ticket-legal-mini strong,.ticket-legal-mini span{display:block;font-size:.57rem;line-height:1.34;color:#d5cec6}
.ticket-legal-mini strong{color:#f2e6d7;font-weight:900}
.halloween-premium-ticket footer{border-top:0!important;padding-top:11px!important;color:#e7bd68!important;font-size:.60rem!important;letter-spacing:.13em!important}
@media(max-width:520px){
  .qr-page{padding-left:12px;padding-right:12px}
  .ticket-art-header{min-height:135px}
  .ticket-content{padding:12px 16px 16px}
  .compact-data>div{grid-template-columns:82px 1fr;padding:8px 0;gap:8px}
  .premium-qr{width:206px;min-height:206px}
  .premium-qr img,.premium-qr canvas{max-width:184px!important;max-height:184px!important;width:184px!important;height:184px!important}
  .ticket-legal-mini strong,.ticket-legal-mini span{font-size:.55rem}
}


/* ===== V6.3 · Fecha y hora visibles en la tarjeta ===== */
.ticket-date-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 14px 7px;
  border-bottom:1px solid rgba(226,181,93,.22);
  background:linear-gradient(180deg,rgba(221,177,91,.045),rgba(221,177,91,.012));
  color:#e8c475;
  text-align:center;
  letter-spacing:.11em;
  line-height:1.15;
}
.ticket-date-line strong,.ticket-date-line b{font-size:.62rem;font-weight:950}
.ticket-date-line span{font-size:.72rem;color:#8f7550}
@media(max-width:520px){
  .ticket-date-line{gap:5px;padding:7px 10px 6px;letter-spacing:.085em}
  .ticket-date-line strong,.ticket-date-line b{font-size:.57rem}
}

/* ===== V6.4 · Pie legal público + páginas legales ===== */
.legal-access-footer{
  width:min(920px,calc(100% - 28px));margin:18px auto 30px;padding:17px 18px;
  border:1px solid var(--line);border-radius:18px;background:#0d0d10;color:var(--muted);
  text-align:center;font-size:.72rem;line-height:1.5
}
.legal-owner-block>strong{display:block;color:var(--gold2);font-size:.68rem;letter-spacing:.13em;margin-bottom:5px}
.legal-owner-block p{margin:4px 0}.legal-owner-block b{color:#f2eee8}
.legal-owner-block a,.legal-footer-links a{color:#e6c47b;text-decoration:none}
.legal-owner-block a:hover,.legal-footer-links a:hover{text-decoration:underline}
.legal-activity-line{max-width:820px;margin:7px auto!important;font-size:.68rem}
.legal-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:7px 13px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.legal-footer-links a{font-weight:850;font-size:.69rem}
.legal-page-shell{width:min(880px,calc(100% - 28px));margin:24px auto 44px}
.legal-page-card{border:1px solid var(--line);border-radius:22px;background:#101014;padding:24px;box-shadow:0 20px 55px rgba(0,0,0,.28)}
.legal-page-card h1{margin:0 0 8px;color:var(--gold2);font-size:clamp(1.8rem,6vw,3rem)}
.legal-page-card h2{margin:22px 0 7px;font-size:1rem;color:#f4eee6}
.legal-page-card p,.legal-page-card li{color:#c8c2bb;line-height:1.6}
.legal-page-card a{color:#e6c47b}.legal-page-card ul{padding-left:20px}
.legal-page-back{display:inline-flex;margin-bottom:12px;color:#e6c47b;text-decoration:none;font-weight:850}
.legal-highlight{padding:12px 14px;border:1px solid rgba(217,181,109,.28);border-radius:14px;background:rgba(217,181,109,.06)}
.legal-warning{padding:12px 14px;border:1px solid rgba(230,29,45,.35);border-radius:14px;background:rgba(230,29,45,.07)}
@media(max-width:520px){
  .legal-access-footer{font-size:.67rem;padding:15px 13px}.legal-activity-line{font-size:.63rem}
  .legal-footer-links{gap:8px 11px}.legal-footer-links a{font-size:.64rem}
  .legal-page-card{padding:19px 16px}.legal-page-card p,.legal-page-card li{font-size:.88rem}
}

/* ===== V6.5 · Barra, camareros, ranking y cierre de caja ===== */
.complaints-btn{color:#17120a!important;text-shadow:none!important}
.bar-page{background:#08080a;color:var(--text)}
.bar-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(8,8,10,.96);backdrop-filter:blur(12px)}
.bar-top small,.bar-top strong{display:block}.bar-top small{color:var(--gold2);font-size:.62rem;letter-spacing:.12em}.bar-top strong{font-size:1rem}.bar-admin-link{color:var(--gold2);text-decoration:none;font-weight:900;font-size:.72rem}
.bar-shell{width:min(760px,calc(100% - 20px));margin:14px auto 44px}.bar-card,.bar-open-panel{border:1px solid var(--line);border-radius:20px;background:#101014;padding:18px;margin-bottom:14px}.bar-card h2,.bar-open-panel h1{margin:4px 0 8px}.bar-card p,.bar-open-panel p{color:var(--muted);font-size:.86rem;line-height:1.45}
.bar-flash{position:sticky;top:66px;z-index:30;padding:13px 15px;border-radius:14px;margin-bottom:12px;font-weight:950;text-align:center}.bar-flash.ok{background:#0d6f47;color:#fff}.bar-flash.error{background:#8e101b;color:#fff}
.bar-cash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.bar-cash-grid label{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#0b0b0e}.bar-cash-grid span{font-weight:950;color:var(--gold2)}.bar-cash-grid input{width:100%;padding:11px;border-radius:10px;border:1px solid var(--line);background:#15151a;color:#fff;font-size:1.1rem;font-weight:900;text-align:center}.bar-initial-total{padding:13px;border-radius:13px;background:rgba(217,181,109,.08);margin:10px 0 13px;text-align:center}.bar-initial-total strong{color:var(--gold2);font-size:1.25rem}
.bar-live-head{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.bar-live-head>div{padding:14px;border:1px solid var(--line);border-radius:16px;background:#101014}.bar-live-head span{display:block;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.09em}.bar-live-head strong{display:block;margin-top:3px;color:var(--gold2);font-size:1.25rem}
.bar-scan-input{width:100%;padding:17px 14px;border-radius:14px;border:2px solid rgba(217,181,109,.55);background:#09090c;color:#fff;font-size:.8rem;text-align:center;font-weight:900;letter-spacing:.04em;margin:8px 0}.bar-scan-input:focus{outline:none;border-color:var(--gold2);box-shadow:0 0 0 4px rgba(217,181,109,.10)}
.scan-result{margin-top:12px;padding:16px;border-radius:15px;text-align:center}.scan-result strong,.scan-result span{display:block}.scan-result strong{font-size:1.12rem}.scan-result span{margin-top:4px}.scan-result.ok{background:rgba(30,180,110,.13);border:1px solid rgba(30,180,110,.38);color:#7ff0b8}.scan-result.error{background:rgba(230,29,45,.11);border:1px solid rgba(230,29,45,.35);color:#ff8d98}
.redeem-person{padding:10px 12px;border-radius:12px;background:rgba(217,181,109,.07);color:var(--gold2);font-weight:900;margin-bottom:10px;text-align:center}.bar-staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bar-staff-grid button{min-height:62px;border-radius:15px;border:1px solid rgba(217,181,109,.35);background:#16151a;color:#fff;font-size:1rem;font-weight:950}.bar-staff-grid button.active{background:var(--gold2);color:#111;border-color:var(--gold2)}.bar-selected{margin:10px 0 18px;padding:10px;text-align:center;color:var(--muted);font-size:.72rem}.bar-selected strong{color:var(--gold2)}
.bar-product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bar-product-grid button{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:78px;border-radius:16px;border:1px solid var(--line);background:#17171c;color:#fff}.bar-product-grid strong{font-size:1.02rem}.bar-product-grid span{margin-top:4px;color:var(--gold2);font-weight:950;font-size:1.05rem}.bar-product-grid button:active{transform:scale(.98);background:#222128}
.ranking-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.ranking-row:last-child{border-bottom:0}.ranking-row b{color:#f2eee8}.ranking-row span{color:var(--gold2);font-weight:850;font-size:.8rem}
.bar-admin-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.bar-admin-stats article{padding:15px;border:1px solid var(--line);border-radius:16px;background:#101014}.bar-admin-stats span{display:block;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.08em}.bar-admin-stats strong{display:block;margin-top:4px;font-size:1.35rem;color:var(--gold2)}.bar-admin-stats small{display:block;margin-top:4px;color:var(--muted);font-size:.62rem}.bar-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cash-breakdown{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.cash-breakdown>div{padding:11px;border:1px solid var(--line);border-radius:13px;background:#0d0d11;text-align:center}.cash-breakdown span,.cash-breakdown strong,.cash-breakdown small{display:block}.cash-breakdown span{color:var(--gold2);font-weight:900}.cash-breakdown strong{font-size:1.05rem;margin:3px 0}.cash-breakdown small{color:var(--muted)}.bar-close-card{margin-top:14px;border-color:rgba(217,181,109,.36)}
@media(max-width:850px){.bar-admin-stats{grid-template-columns:1fr 1fr}.bar-admin-grid{grid-template-columns:1fr}.cash-breakdown{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.bar-shell{width:min(100% - 14px,760px);margin-top:8px}.bar-card,.bar-open-panel{padding:14px;border-radius:17px}.bar-cash-grid{grid-template-columns:repeat(2,1fr)}.bar-live-head{grid-template-columns:1fr 1fr}.bar-live-head strong{font-size:1rem}.bar-staff-grid button{min-height:58px}.bar-product-grid button{min-height:72px}.bar-admin-stats{grid-template-columns:1fr 1fr}.cash-breakdown{grid-template-columns:repeat(2,1fr)}}

/* V6.7 · Botellas tiradas */
.bar-bottle-main{width:100%;margin-top:16px;min-height:62px;border:1px solid rgba(217,181,109,.5);border-radius:16px;background:linear-gradient(180deg,rgba(217,181,109,.17),rgba(217,181,109,.08));color:var(--gold2);font-size:1rem;font-weight:950;letter-spacing:.04em}.bar-bottle-main.active{background:var(--gold2);color:#111}.bar-bottle-panel{margin-top:12px;padding:14px;border:1px solid rgba(217,181,109,.25);border-radius:16px;background:#0b0b0f}.bar-bottle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.bar-bottle-head h2{margin-top:3px}.bar-undo{border:1px solid rgba(255,255,255,.15);border-radius:12px;background:#17171c;color:#fff;padding:10px 12px;font-size:.68rem;font-weight:900}.bar-bottle-category{margin:16px 0 8px;color:var(--gold2);font-size:.78rem;letter-spacing:.12em}.bar-bottle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.bar-bottle-grid button{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:56px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#15151a;color:#fff;text-align:left}.bar-bottle-grid button:active{transform:scale(.98);background:#222128}.bar-bottle-grid button strong{font-size:.78rem}.bar-bottle-grid button span{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;background:rgba(217,181,109,.14);color:var(--gold2);font-weight:950}.bottle-admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.bottle-admin-grid>div{padding:12px;border:1px solid var(--line);border-radius:13px;background:#0d0d11}.bottle-admin-grid span,.bottle-admin-grid strong,.bottle-admin-grid small{display:block}.bottle-admin-grid span{font-size:.72rem;font-weight:900}.bottle-admin-grid strong{font-size:1.5rem;color:var(--gold2);margin:4px 0}.bottle-admin-grid small{color:var(--muted);font-size:.62rem}.bottle-staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bottle-staff-card{padding:13px;border:1px solid var(--line);border-radius:13px;background:#0d0d11}.bottle-staff-card b{display:block;color:var(--gold2);margin-bottom:7px}.bottle-staff-card span{display:block;color:var(--muted);font-size:.76rem;line-height:1.55}.muted{color:var(--muted)}@media(max-width:850px){.bottle-admin-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.bar-bottle-grid{grid-template-columns:1fr}.bar-bottle-head{display:block}.bar-undo{width:100%;margin:8px 0}.bottle-admin-grid,.bottle-staff-grid{grid-template-columns:1fr 1fr}}

/* V6.8 · venta rápida por ráfagas */
.bar-tap-counter{position:sticky;top:76px;z-index:45;margin:0 0 12px;padding:13px 16px;border-radius:16px;background:#0d6f47;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;text-align:left}
.bar-tap-counter strong{font-size:1.28rem;line-height:1.05}.bar-tap-counter span{font-size:1.12rem;font-weight:950}.bar-tap-counter small{grid-column:1/-1;font-size:.68rem;font-weight:900;letter-spacing:.12em;opacity:.88}.bar-tap-counter.sending{background:#8a6313}.bar-tap-counter.error{background:#8e101b}
.bar-product-grid button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
@media(max-width:520px){.bar-tap-counter{top:72px;padding:12px 14px}.bar-tap-counter strong{font-size:1.18rem}}

/* V6.9 · Selector rápido de cantidad 1–9 para ventas de barra */
.bar-qty-wrap{margin:2px 0 18px}
.bar-qty-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:7px}
.bar-qty-grid button{min-height:50px;border-radius:13px;border:1px solid rgba(217,181,109,.32);background:#17171c;color:#fff;font-size:1.2rem;font-weight:950;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bar-qty-grid button.active{background:var(--gold2);color:#111;border-color:var(--gold2);box-shadow:0 5px 18px rgba(217,181,109,.18)}
.bar-qty-grid button:active{transform:scale(.96)}
.bar-qty-selected{text-align:center;margin-top:8px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.04em}
.bar-qty-selected strong{color:var(--gold2);font-size:1rem}
@media(max-width:520px){.bar-qty-grid{gap:5px}.bar-qty-grid button{min-height:46px;border-radius:11px;font-size:1.08rem}}

/* v70 barra mejoras */
.bar-product-grid{grid-template-columns:repeat(2,1fr);gap:10px}
.bar-product-grid button{display:grid;grid-template-columns:1fr;justify-items:center;align-content:center;gap:4px;min-height:90px;padding:10px 8px;border-radius:16px;border:1px solid var(--line);background:#17171c;color:#fff;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}
.bar-product-grid button i{font-style:normal;font-size:1.55rem;line-height:1}
.bar-product-grid strong{font-size:.98rem;text-align:center;line-height:1.08}
.bar-product-grid span{margin-top:0;color:var(--gold2);font-weight:950;font-size:1.05rem}
.bar-product-grid button:active{transform:scale(.98);background:#222128}
.bar-sale-panel{margin-top:14px;padding:14px;border:1px solid rgba(217,181,109,.25);border-radius:16px;background:#0b0b0f}
.bar-sale-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.bar-sale-header h2{margin:3px 0 0}
.bar-clear-ticket{border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#17171c;color:#fff;padding:10px 12px;font-size:.72rem;font-weight:900}
.bar-sale-empty{padding:12px;border-radius:12px;background:#14141a;color:var(--muted);text-align:center;margin:10px 0}
.bar-sale-lines{display:grid;gap:8px;margin:10px 0}
.bar-sale-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#14141a}
.bar-sale-row .sale-left b{display:block;font-size:.88rem;line-height:1.15}
.bar-sale-row .sale-left small{display:block;color:var(--muted);margin-top:3px}
.bar-sale-row .sale-right{text-align:right;display:grid;gap:6px;justify-items:end}
.bar-sale-row .sale-right strong{color:var(--gold2);font-size:.95rem}
.bar-sale-row .sale-right button{border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#0d0d11;color:#fff;padding:6px 9px;font-size:.64rem;font-weight:900}
.bar-sale-total{margin-top:10px;padding:12px;border-radius:12px;background:rgba(217,181,109,.08);text-align:center;font-size:.84rem;font-weight:900}
.bar-sale-total strong{display:block;color:var(--gold2);font-size:1.35rem;margin-top:3px}
.bar-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.bar-pay-btn{min-height:68px;border-radius:15px;border:1px solid rgba(217,181,109,.35);background:#17171c;color:#fff;font-size:.92rem;font-weight:950;padding:8px 10px;display:grid;justify-items:center;align-content:center;gap:4px}
.bar-pay-btn span{color:var(--gold2);font-size:1.15rem}
.bar-pay-btn.cash{background:linear-gradient(180deg,rgba(18,91,50,.75),rgba(10,58,32,.92))}
.bar-pay-btn.card{background:linear-gradient(180deg,rgba(26,57,109,.82),rgba(17,33,70,.94))}
.bar-pay-btn:disabled{opacity:.45;filter:grayscale(.15)}
.bar-pay-btn:not(:disabled):active{transform:scale(.98)}
@media(max-width:520px){
  .bar-product-grid button{min-height:84px;padding:10px 6px}
  .bar-product-grid button i{font-size:1.45rem}
  .bar-product-grid strong{font-size:.88rem}
  .bar-pay-grid{grid-template-columns:1fr}
  .bar-sale-header{display:block}
  .bar-clear-ticket{width:100%;margin-top:8px}
}


/* ===== V7.1 · Barra visual final ===== */
.bar-product-grid button{min-height:96px;padding:12px 8px}
.bar-product-grid button i{font-size:1.8rem;line-height:1;margin-bottom:2px}
.bar-product-grid strong{font-size:1rem;letter-spacing:.01em}
.bar-product-grid span{font-size:1.08rem}
.bar-sale-panel{margin-top:16px}
.bar-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.bar-pay-btn{min-height:72px;border-radius:16px}
.bar-pay-btn span{display:block}
.bar-tap-counter{position:sticky;top:74px;z-index:55;margin:0 0 12px;padding:14px 16px;border-radius:16px;background:#0d6f47;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;text-align:left}
.bar-tap-counter strong{font-size:1.36rem;line-height:1.02}
.bar-tap-counter span{font-size:1.14rem;font-weight:950}
.bar-tap-counter small{grid-column:1/-1;font-size:.70rem;font-weight:900;letter-spacing:.12em;opacity:.92}
.bar-tap-counter.sending{background:#8a6313}
.bar-tap-counter.ready{background:#0c5f79}
@media(max-width:520px){
  .bar-product-grid button{min-height:88px;padding:10px 6px}
  .bar-product-grid button i{font-size:1.65rem}
  .bar-product-grid strong{font-size:.90rem}
  .bar-pay-grid{grid-template-columns:1fr 1fr}
  .bar-pay-btn{min-height:66px;font-size:.86rem}
  .bar-tap-counter{top:70px;padding:12px 14px}
  .bar-tap-counter strong{font-size:1.22rem}
}


/* ===== V7.2 · Diseño horizontal para tablet Xiaomi Pad 7 Pro ===== */
.bar-sales-grid{display:grid;gap:12px}
.bar-sales-left,.bar-sales-center,.bar-sales-right{min-width:0}
@media (orientation: landscape) and (min-width: 900px){
  html,body{height:100%}
  body.bar-page{overflow:hidden}
  .bar-top{padding:8px 14px}
  .bar-top strong{font-size:.94rem}
  .bar-top small{font-size:.58rem}
  .bar-shell{width:min(100vw - 22px,1320px);margin:8px auto 10px}
  #bar-flash{top:54px;padding:9px 12px;margin-bottom:8px}
  #bar-work-panel{display:grid;grid-template-columns:290px minmax(0,1fr);gap:10px;max-height:calc(100vh - 72px);overflow:hidden;align-items:start}
  #bar-work-panel > *{margin-bottom:0}
  .bar-live-head{grid-column:1;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:0}
  .bar-live-head>div{padding:10px 12px}
  .bar-live-head strong{font-size:1.08rem}
  .scanner-card{grid-column:1;padding:12px}
  .scanner-card h2{font-size:1.8rem;margin:3px 0 5px}
  .scanner-card p{font-size:.76rem;line-height:1.35;margin:0 0 6px}
  .bar-scan-input{padding:12px 10px;font-size:.74rem;margin:6px 0;border-radius:12px}
  #focus-scanner{min-height:44px;padding:10px 12px}
  #redeem-staff{grid-column:1;padding:12px}
  .ranking-card{grid-column:1;padding:12px;overflow:auto;max-height:220px}
  .ranking-card h2{font-size:1.1rem;margin-bottom:6px}
  .ranking-row{padding:8px 0}
  .bar-sales-card{grid-column:2;padding:12px;overflow:hidden}
  .bar-sales-grid{grid-template-columns:250px minmax(0,1fr) 290px;gap:10px;align-items:start}
  .bar-sales-left h2,.bar-sales-center h2,.bar-sale-header h2{font-size:1.38rem;line-height:1.04;margin:0 0 8px}
  .bar-staff-grid{gap:8px}
  .bar-staff-grid button{min-height:56px;font-size:.95rem;border-radius:13px}
  .bar-selected{margin:8px 0 12px;padding:6px 8px;font-size:.68rem}
  .bar-qty-wrap{margin:0}
  .bar-qty-grid{gap:6px}
  .bar-qty-grid button{min-height:42px;border-radius:11px;font-size:1.02rem}
  .bar-qty-selected{margin-top:6px;font-size:.66rem}
  .bar-sales-center .bar-product-grid{grid-template-columns:repeat(4,1fr);gap:8px}
  .bar-sales-center .bar-product-grid button{min-height:78px;padding:8px 6px;border-radius:14px}
  .bar-sales-center .bar-product-grid button i{font-size:1.38rem;margin-bottom:0}
  .bar-sales-center .bar-product-grid strong{font-size:.83rem;line-height:1.04}
  .bar-sales-center .bar-product-grid span{font-size:.92rem}
  .bar-tap-counter{position:static;top:auto;margin:0 0 8px;padding:11px 12px;border-radius:13px}
  .bar-tap-counter strong{font-size:1.06rem}
  .bar-tap-counter span{font-size:1rem}
  .bar-tap-counter small{font-size:.60rem;letter-spacing:.1em}
  .bar-sale-panel{margin-top:0;padding:12px;border-radius:14px}
  .bar-sale-header{align-items:center;gap:8px}
  .bar-clear-ticket{padding:8px 10px;font-size:.65rem}
  .bar-sale-empty{padding:10px;font-size:.8rem;margin:8px 0}
  .bar-sale-lines{gap:6px;margin:8px 0;max-height:180px;overflow:auto}
  .bar-sale-row{padding:8px 10px;border-radius:11px}
  .bar-sale-row .sale-left b{font-size:.78rem}
  .bar-sale-row .sale-left small{font-size:.67rem}
  .bar-sale-row .sale-right strong{font-size:.86rem}
  .bar-sale-row .sale-right button{padding:5px 8px;font-size:.58rem}
  .bar-sale-total{padding:10px;font-size:.76rem}
  .bar-sale-total strong{font-size:1.15rem;margin-top:2px}
  .bar-pay-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .bar-pay-btn{min-height:60px;border-radius:13px;font-size:.78rem;padding:6px 8px}
  .bar-pay-btn span{font-size:.98rem}
  .bar-bottle-main{margin-top:10px;min-height:50px;border-radius:13px;font-size:.88rem}
  .bar-bottle-panel{margin-top:8px;padding:10px;border-radius:14px;max-height:calc(100vh - 200px);overflow:auto}
  .bar-bottle-head h2{font-size:1.08rem}
  .bar-bottle-head p,.bar-bottle-panel p{font-size:.74rem}
  .bar-bottle-grid{gap:6px}
  .bar-bottle-grid button{min-height:50px;padding:9px 10px;border-radius:11px}
  .bar-bottle-grid button strong{font-size:.72rem}
  .bar-bottle-grid button span{min-width:26px;height:26px;font-size:.8rem}

  #bar-open-panel{max-height:calc(100vh - 74px);overflow:hidden;padding:14px}
  #bar-open-panel h1{font-size:1.85rem;margin:2px 0 4px}
  #bar-open-panel p{font-size:.76rem;line-height:1.35;margin:0 0 8px}
  .bar-cash-grid{grid-template-columns:repeat(6,1fr);gap:8px;margin:10px 0}
  .bar-cash-grid label{padding:8px;border-radius:12px}
  .bar-cash-grid span{font-size:.9rem}
  .bar-cash-grid input{padding:8px;border-radius:9px;font-size:1rem}
  .bar-initial-total{padding:10px;margin:8px 0 10px;font-size:.85rem}
  .bar-initial-total strong{font-size:1.12rem}
  #open-shift{min-height:48px;padding:10px 14px}
}


/* ===== V7.3 · Compactar QR y dar más ancho a camareros/cantidades/productos ===== */
.bar-live-head>button.bar-qr-head{appearance:none;-webkit-appearance:none;width:100%;text-align:left;cursor:pointer;padding:14px;border:1px solid var(--line);border-radius:16px;background:#101014;color:#fff}
.bar-live-head>button.bar-qr-head span{display:block;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.09em}
.bar-live-head>button.bar-qr-head strong{display:block;margin-top:3px;color:var(--gold2);font-size:1.05rem;letter-spacing:.02em}
.bar-live-head>button.bar-qr-head:active{transform:scale(.99)}
.bar-scan-hidden{position:fixed !important;left:-9999px !important;top:-9999px !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important;padding:0 !important;margin:0 !important;border:0 !important}
.scan-result-inline{margin:6px 0 10px;padding:10px 12px;border-radius:14px}
.bar-redeem-card{margin-bottom:10px}

@media (orientation: landscape) and (min-width: 900px){
  #bar-work-panel{display:grid;grid-template-columns:1fr;gap:8px;max-height:calc(100vh - 72px);overflow:hidden;align-items:start}
  .bar-live-head{grid-column:1;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:0}
  .bar-live-head>div,.bar-live-head>button.bar-qr-head{padding:10px 12px}
  .bar-live-head strong,.bar-live-head>button.bar-qr-head strong{font-size:1.08rem}
  .bar-redeem-card{grid-column:1;padding:10px 12px;margin-bottom:0}
  .bar-redeem-card h2{font-size:1.18rem;margin-bottom:6px}
  .bar-redeem-card .redeem-person{margin-bottom:8px;padding:8px 10px}
  .bar-redeem-card .bar-staff-grid button{min-height:52px;font-size:.88rem}
  .bar-sales-card{grid-column:1;padding:12px;overflow:hidden}
  .bar-sales-grid{grid-template-columns:310px minmax(0,1fr) 340px;gap:12px;align-items:start}
  .bar-sales-left h2,.bar-sales-center h2,.bar-sale-header h2{font-size:1.52rem;line-height:1.02;margin:0 0 10px}
  .bar-staff-grid{gap:10px}
  .bar-staff-grid button{min-height:64px;font-size:1rem;border-radius:14px}
  .bar-selected{margin:8px 0 12px;padding:6px 8px;font-size:.72rem}
  .bar-qty-grid{gap:8px}
  .bar-qty-grid button{min-height:56px;border-radius:12px;font-size:1.2rem}
  .bar-qty-selected{margin-top:7px;font-size:.74rem}
  .bar-sales-center .bar-product-grid{grid-template-columns:repeat(4,1fr);gap:10px}
  .bar-sales-center .bar-product-grid button{min-height:96px;padding:10px 8px;border-radius:15px}
  .bar-sales-center .bar-product-grid button i{font-size:1.6rem;margin-bottom:2px}
  .bar-sales-center .bar-product-grid strong{font-size:.93rem;line-height:1.02}
  .bar-sales-center .bar-product-grid span{font-size:1rem}
  .bar-tap-counter{margin:0 0 8px;padding:10px 12px;border-radius:13px}
  .bar-sale-panel{padding:12px;border-radius:15px}
  .bar-sale-lines{max-height:184px;overflow:auto}
  .bar-sale-row{padding:9px 10px}
  .bar-sale-total strong{font-size:1.22rem}
  .bar-pay-btn{min-height:68px;font-size:.82rem}
  .bar-pay-btn span{font-size:1.02rem}
  .bar-bottle-main{min-height:56px;font-size:.95rem}
  .ranking-card{grid-column:1;padding:10px 12px;overflow:auto;max-height:120px;margin-bottom:0}
  .ranking-card h2{font-size:1rem;margin-bottom:4px}
  .ranking-row{padding:6px 0}
}


/* ===== V7.4 · Horizontal optimizado: QR compacto, cantidades 2 filas, ranking bajo productos ===== */
.inline-ranking-card{margin-top:10px}
@media (orientation: landscape) and (min-width: 900px){
  .bar-shell{width:min(100vw - 20px,1460px);margin:8px auto 8px}
  #bar-work-panel{gap:6px;max-height:calc(100vh - 68px)}
  .bar-live-head{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .bar-live-head>div,.bar-live-head>button.bar-qr-head{padding:9px 12px;border-radius:15px}
  .bar-live-head strong,.bar-live-head>button.bar-qr-head strong{font-size:1.14rem}
  .scan-result-inline{margin:2px 0 6px;padding:8px 10px}
  .bar-sales-card{padding:10px 12px}
  .bar-sales-grid{grid-template-columns:400px minmax(0,1fr) 360px;gap:12px}
  .bar-sales-left h2,.bar-sales-center h2,.bar-sale-header h2{font-size:1.48rem;line-height:1.02;margin:0 0 8px}
  .bar-staff-grid{gap:10px}
  .bar-staff-grid button{min-height:78px;font-size:1.05rem;border-radius:15px}
  .bar-selected{margin:8px 0 12px;padding:6px 8px;font-size:.75rem}
  .bar-qty-grid{grid-template-columns:repeat(4,1fr);gap:10px}
  .bar-qty-grid button{min-height:74px;border-radius:15px;font-size:1.52rem}
  .bar-qty-grid button[data-qty="9"]{grid-column:2 / span 2;min-height:60px;font-size:1.3rem}
  .bar-qty-selected{margin-top:8px;font-size:.78rem}
  .bar-sales-center{display:flex;flex-direction:column;min-width:0}
  .bar-sales-center .bar-product-grid{order:1;grid-template-columns:repeat(4,1fr);gap:10px}
  .bar-sales-center .bar-product-grid button{min-height:114px;padding:10px 8px;border-radius:15px}
  .bar-sales-center .bar-product-grid button i{font-size:1.7rem;margin-bottom:2px}
  .bar-sales-center .bar-product-grid strong{font-size:.95rem;line-height:1.02}
  .bar-sales-center .bar-product-grid span{font-size:1.02rem}
  .bar-tap-counter{order:2;position:static;top:auto;min-height:60px;margin:10px 0 8px;padding:10px 12px;border-radius:13px}
  .bar-tap-counter strong{font-size:1.02rem}
  .bar-tap-counter span{font-size:1rem}
  .bar-tap-counter small{font-size:.62rem}
  .inline-ranking-card{order:3;margin-top:0;padding:8px 10px;border-radius:14px;max-height:104px;overflow:auto}
  .inline-ranking-card h2{font-size:.96rem;margin-bottom:2px}
  .inline-ranking-card .ranking-row{padding:5px 0}
  .inline-ranking-card .ranking-row b{font-size:.78rem}
  .inline-ranking-card .ranking-row span,.inline-ranking-card .ranking-row strong{font-size:.72rem}
  .bar-sale-panel{padding:12px;border-radius:15px}
  .bar-sale-header{align-items:center;gap:6px}
  .bar-sale-header h2{font-size:1.36rem}
  .bar-clear-ticket{padding:7px 9px;font-size:.63rem}
  .bar-sale-lines{max-height:185px;overflow:auto}
  .bar-sale-row{padding:9px 10px}
  .bar-sale-total{padding:10px}
  .bar-sale-total strong{font-size:1.22rem}
  .bar-pay-grid{gap:8px;margin-top:10px}
  .bar-pay-btn{min-height:76px;border-radius:14px;font-size:.84rem;padding:8px}
  .bar-pay-btn span{font-size:1.08rem}
  .bar-bottle-main{margin-top:10px;min-height:54px;border-radius:14px;font-size:.92rem}
}


/* ===== V7.6 · Barra horizontal refinada: sin banda verde, ranking live y nombres cortos ===== */
.live-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#ff7d7d !important}
.live-dot{width:10px;height:10px;border-radius:999px;background:#ff3b30;box-shadow:0 0 0 4px rgba(255,59,48,.15)}
.bar-tap-counter{display:none !important}
@media (orientation: landscape) and (min-width: 900px){
  .bar-sales-grid{grid-template-columns:420px minmax(0,1fr) 320px;gap:12px;align-items:start}
  .bar-staff-grid button{min-height:82px;font-size:1.08rem}
  .bar-qty-grid{grid-template-columns:repeat(4,1fr);gap:10px}
  .bar-qty-grid button{min-height:86px;border-radius:15px;font-size:1.82rem}
  .bar-sales-center .bar-product-grid button{min-height:114px;padding:10px 6px;border-radius:15px}
  .bar-sales-center .bar-product-grid button i{font-size:1.72rem}
  .bar-sales-center .bar-product-grid strong{font-size:.9rem;line-height:1.0}
  .bar-sales-center .bar-product-grid span{font-size:1.05rem}
  .inline-ranking-card{order:2;margin-top:8px;padding:10px 12px;border-radius:14px;max-height:138px;overflow:auto}
  .inline-ranking-card h2{font-size:1rem;margin-bottom:4px}
  .inline-ranking-card .ranking-row{padding:6px 0}
  .inline-ranking-card .ranking-row b{font-size:.8rem}
  .inline-ranking-card .ranking-row span,.inline-ranking-card .ranking-row strong{font-size:.74rem}
  .bar-sale-panel{padding:10px 11px}
  .bar-sale-header h2{font-size:1.24rem;line-height:1.0}
  .bar-sale-lines{max-height:168px}
  .bar-bottle-main{margin-top:8px;min-height:52px}
}


/* ===== V7.7 · Aviso flotante abajo y cónico sin mover layout ===== */
.bar-flash{
  position:fixed;
  left:50%;
  bottom:14px;
  top:auto;
  transform:translateX(-50%);
  z-index:1200;
  width:min(92vw,760px);
  margin:0;
  padding:12px 18px;
  border-radius:16px;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  pointer-events:none;
}
.bar-flash.ok{background:#118553;color:#fff}
.bar-flash.error{background:#9f1c28;color:#fff}
@media (orientation: landscape) and (min-width: 900px){
  .bar-flash{
    width:min(64vw,700px);
    bottom:12px;
    padding:10px 16px;
    font-size:1rem;
  }
}


/* ===== V7.8 · Toast real fuera del layout + pulsación instantánea ===== */
.bar-toast[hidden]{display:none !important}
.bar-toast{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  top:auto !important;
  bottom:10px !important;
  transform:translateX(-50%) !important;
  z-index:99999 !important;
  display:block !important;
  width:auto !important;
  min-width:220px !important;
  max-width:min(70vw,520px) !important;
  height:auto !important;
  min-height:0 !important;
  max-height:56px !important;
  margin:0 !important;
  padding:8px 14px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:999px !important;
  color:#fff !important;
  font-size:.86rem !important;
  line-height:1.2 !important;
  font-weight:950 !important;
  text-align:center !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
  box-shadow:0 8px 24px rgba(0,0,0,.28) !important;
  pointer-events:none !important;
  user-select:none !important;
}
.bar-toast.ok{background:rgba(17,133,83,.96) !important}
.bar-toast.error{background:rgba(159,28,40,.97) !important}
@media (orientation:landscape) and (min-width:900px){
  .bar-toast{bottom:8px !important;min-width:180px !important;max-width:420px !important;padding:7px 13px !important;font-size:.82rem !important;max-height:44px !important}
}


/* ===== V7.9 · Configuración editable de barra + panel de botellas ajustado ===== */
.bar-config-form{display:grid;gap:0}
.bar-config-staff{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.bar-config-staff label,.bar-config-product label{display:grid;gap:6px}
.bar-config-staff label span,.bar-config-product label span{font-size:.68rem;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.bar-config-staff input,.bar-config-product input{width:100%;box-sizing:border-box;padding:12px;border-radius:12px;border:1px solid var(--line);background:#101014;color:#fff;font:inherit;font-weight:800}
.bar-config-products{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.bar-config-product{display:grid;grid-template-columns:54px minmax(0,1fr) 120px;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:14px;background:#0d0d11}
.bar-config-icon{display:grid;place-items:center;min-height:48px;font-size:1.6rem;border-radius:12px;background:#17171c}
.bar-config-actions{display:flex;gap:10px;margin-top:14px}
.bar-config-actions .btn{flex:1;text-align:center}
@media(max-width:900px){.bar-config-staff{grid-template-columns:repeat(2,1fr)}.bar-config-products{grid-template-columns:1fr}}
@media(max-width:520px){.bar-config-product{grid-template-columns:46px minmax(0,1fr) 96px}.bar-config-actions{display:grid}}
@media (orientation: landscape) and (min-width: 900px){
  .bar-top{padding-top:6px;padding-bottom:6px}
  .bar-shell{margin-top:5px}
  .bar-live-head>div,.bar-live-head>button.bar-qr-head{padding-top:7px;padding-bottom:7px}
  .bar-sales-card{padding-top:8px}
  .bar-bottle-panel{max-height:190px !important;overflow-y:auto !important;overscroll-behavior:contain}
}


/* ===== V8.1 · Cantidad en una sola fila + scroll seguro en horizontal ===== */
.bar-qty-line{display:block}
@media (orientation: landscape) and (min-width: 900px){
  html,body{min-height:100%;height:auto !important}
  body.bar-page{overflow-y:auto !important;overflow-x:hidden !important}
  .bar-shell{padding-bottom:18px}
  #bar-work-panel{max-height:none !important;overflow:visible !important}
  .bar-sales-card{overflow:visible !important}
  .bar-sales-grid{align-items:start}

  .bar-qty-line{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:12px;
    margin-top:8px;
  }
  .bar-qty-line>h2{
    margin:0 !important;
    white-space:nowrap;
    font-size:1.28rem !important;
    line-height:1 !important;
  }
  .bar-qty-line .bar-qty-wrap{
    margin:0 !important;
    min-width:0;
  }
  .bar-qty-line .bar-qty-grid{
    grid-template-columns:repeat(8,minmax(48px,1fr)) !important;
    gap:7px !important;
  }
  .bar-qty-line .bar-qty-grid button{
    min-height:62px !important;
    border-radius:14px !important;
    font-size:1.55rem !important;
    padding:0 !important;
  }
  .bar-qty-line .bar-qty-selected{
    display:none !important;
  }

  /* Con más camareros, que nada importante quede recortado. */
  .bar-sales-left,.bar-sales-center,.bar-sales-right{align-self:start}
  .bar-bottle-panel{max-height:240px !important;overflow-y:auto !important}
}


/* ===== V8.2 · Más altura útil en horizontal ===== */
.bar-staff-heading{display:block}
@media (orientation: landscape) and (min-width: 900px){
  /* Acercamos la zona de trabajo a la cabecera QR sin afectar al modo vertical. */
  #bar-work-panel{gap:3px !important}
  .bar-sales-card{padding-top:5px !important}

  /* Título de camareros + contexto de venta en una sola línea. */
  .bar-staff-heading{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin:0 0 8px;
    min-width:0;
    white-space:nowrap;
  }
  .bar-staff-heading h2{
    margin:0 !important;
    font-size:1.30rem !important;
    line-height:1 !important;
    flex:0 0 auto;
  }
  .bar-staff-heading .eyebrow{
    margin:0 !important;
    font-size:.56rem !important;
    letter-spacing:.08em !important;
    line-height:1 !important;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* Sin la línea CAMARERO ACTIVO ganamos otra franja vertical completa. */
  .bar-selected{display:none !important}

  /* Botones siguen grandes, pero más compactos para que 6–8 camareros no oculten cantidad. */
  .bar-staff-grid{gap:8px !important}
  .bar-staff-grid button{
    min-height:70px !important;
    font-size:1.02rem !important;
  }

  /* Cantidad pegada justo debajo de los camareros y en una sola fila. */
  .bar-qty-line{
    margin-top:8px !important;
    gap:10px !important;
  }
  .bar-qty-line>h2{
    font-size:1.16rem !important;
  }
  .bar-qty-line .bar-qty-grid{
    grid-template-columns:repeat(8,minmax(44px,1fr)) !important;
    gap:6px !important;
  }
  .bar-qty-line .bar-qty-grid button{
    min-height:58px !important;
    font-size:1.48rem !important;
  }

  /* Toda la columna de cobro sube con el grid y aprovecha el hueco bajo ESCANEAR QR. */
  .bar-sales-right{margin-top:0 !important}
  .bar-sale-panel{margin-top:0 !important}
  .bar-bottle-main{margin-top:6px !important}
}

/* ===== V8.3 · Cupones promocionales discretos ===== */
.promo-discreet{margin:10px 0 14px;text-align:left}
.promo-toggle{border:0;background:transparent;color:#8f8b86;font-size:.78rem;text-decoration:underline;text-underline-offset:3px;padding:4px 0;cursor:pointer}
.promo-toggle:hover{color:#d5c7aa}
.promo-panel{margin-top:8px;padding:10px;border:1px solid rgba(217,181,109,.16);border-radius:12px;background:#0e0e12}
.promo-row{display:flex;gap:8px;align-items:center}
.promo-row input{flex:1;min-width:0;background:#15151a;border:1px solid var(--line);border-radius:10px;color:#fff;padding:10px 12px;text-transform:uppercase;font-weight:800;letter-spacing:.04em}
.promo-row button{border:1px solid rgba(217,181,109,.35);border-radius:10px;background:#1b1812;color:var(--gold2);padding:10px 13px;font-weight:900;cursor:pointer}
.promo-row button:disabled{opacity:.5}
.promo-status{display:block;margin-top:7px;min-height:1em;color:#8f8b86;font-size:.74rem}
.promo-status.ok{color:#66d99a}
.promo-status.error{color:#ff8b94}
.summary-discount strong{color:#66d99a !important}

/* Admin cupones */
.promo-admin-shell{max-width:1180px}
.promo-create-card,.promo-list-card{margin-bottom:16px}
.promo-admin-form{display:grid;gap:14px}
.promo-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.promo-admin-check{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#111116;min-height:48px}
.promo-admin-check input{width:18px;height:18px}
.promo-name{display:block;color:var(--muted);margin-top:3px}
.promo-actions{display:flex;gap:6px;flex-wrap:wrap}
.promo-actions form{margin:0}
.promo-actions button{border:1px solid var(--line);border-radius:9px;background:#17171c;color:#fff;padding:7px 9px;font-size:.68rem;font-weight:900;cursor:pointer}
.promo-actions button.danger{border-color:rgba(255,70,80,.35);color:#ff9098}
@media(max-width:900px){.promo-admin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.promo-admin-grid{grid-template-columns:1fr}.promo-row{align-items:stretch}.promo-row button{flex:0 0 auto}}


/* ===== V8.7 · EXIT integrado en navegación, sin solapar botones ===== */
.nav-exit{
  border-color:rgba(230,29,45,.42) !important;
  background:rgba(80,8,14,.20);
  color:#f5e9e9;
}
.nav-exit:hover,.nav-exit:focus-visible{
  border-color:rgba(230,29,45,.85) !important;
  background:rgba(100,8,16,.78);
  color:#fff;
}
.access-exit-row{
  width:min(1180px,calc(100% - 28px));
  margin:10px auto -2px;
  display:flex;
  justify-content:flex-end;
  position:relative;
  z-index:2;
}
@media(max-width:640px){
  .topbar{gap:8px}
  .brand-main{font-size:.72rem}
  .mainnav{gap:5px;align-items:center}
  .mainnav .nav-pill{padding:8px 8px;font-size:.58rem;letter-spacing:.035em}
  .mainnav .nav-exit{padding-left:9px;padding-right:9px}
  .access-exit-row{width:calc(100% - 24px);margin-top:8px}
}

/* ===== V8.8 · Acceso móvil compacto: teléfono visible sin desplazar ===== */
@media(max-width:640px){
  .access-page .access-exit-row{
    margin:6px auto -8px;
    min-height:34px;
    align-items:center;
  }
  .access-page .access-exit-row .nav-pill{
    padding:7px 11px;
    font-size:.58rem;
  }
  .access-page .access-shell{
    min-height:auto;
    padding:10px 12px 14px;
    place-items:start center;
  }
  .access-page .access-card{
    padding:18px 16px 19px;
    border-radius:22px;
  }
  .access-page .access-producer-line{
    font-size:.54rem;
    line-height:1.25;
  }
  .access-page .access-horror-title{
    font-size:clamp(2.75rem,12vw,4rem);
    line-height:.82;
    margin:.28rem 0 .55rem;
  }
  .access-page .access-open-tickets{
    margin:0 0 12px;
    padding:8px 12px;
    font-size:clamp(1rem,4.7vw,1.35rem);
  }
  .access-page .access-lead{
    font-size:.88rem;
    line-height:1.42;
    margin:.7rem 0;
  }
  .access-page .access-card>p:not(.access-lead){
    font-size:.86rem;
    line-height:1.42;
    margin:.65rem 0 .8rem;
  }
  .access-page .field{
    margin-bottom:10px;
  }
  .access-page .field>span{
    font-size:.74rem;
  }
  .access-page .field input{
    min-height:50px;
    padding:12px 14px;
  }
  .access-page .btn{
    min-height:50px;
  }
  .access-page .access-whatsapp{
    margin-top:13px;
    padding-top:12px;
    gap:5px;
  }
  .access-page .whatsapp-direct>span{
    font-size:.65rem;
  }
  .access-page .whatsapp-number{
    padding:2px 4px 4px;
    font-size:clamp(2.15rem,10.5vw,3.1rem);
  }
  .access-page .access-whatsapp .btn{
    min-height:46px;
    margin-top:2px;
  }
  .access-page + .legal-access-footer,
  .access-page .legal-access-footer{
    margin-top:26px;
  }
}

/* ===== V8.9 · Cabecera acceso en dos líneas ===== */
.access-producer-line{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.access-producer-name{display:block}
.access-producer-sub{display:block;font-size:.88em;letter-spacing:.085em}
@media(max-width:640px){.access-producer-line{gap:2px}.access-producer-sub{font-size:.82em;letter-spacing:.065em}}


/* ===== V9.0 · Cabecera acceso móvil: salto de línea forzado + anti-caché ===== */
.access-page .access-producer-line{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  flex-wrap:nowrap !important;
  width:100%;
}
.access-page .access-producer-name,
.access-page .access-producer-sub{
  display:block !important;
  width:100%;
  flex:0 0 auto;
  white-space:normal !important;
}
@media(max-width:640px){
  .access-page .access-producer-line{gap:2px !important;line-height:1.18 !important}
  .access-page .access-producer-name{font-size:1em !important;letter-spacing:.10em !important}
  .access-page .access-producer-sub{font-size:.80em !important;letter-spacing:.055em !important}
}
