.aev-public{max-width:1180px;margin:30px auto;font-family:var(--aev-font-family,inherit);font-size:var(--aev-base-size,16px);color:#161616}.aev-public-step{margin:18px 0;padding:18px;border:1px solid #ddd;border-radius:10px;background:#fff}.aev-public select{width:100%;max-width:420px;margin-top:7px;padding:12px;font:inherit}.aev-public-section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.aev-public-section{display:block;width:100%;text-align:left;padding:16px;border:1px solid #d0d0d0;border-radius:10px;background:#fff;cursor:pointer}.aev-public-section:hover,.aev-public-section:focus{border-color:#2271b1}.aev-public-section strong,.aev-public-section span{display:block}.aev-public-seat-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.aev-public-back{border:1px solid #bbb;background:#fff;padding:10px 14px;border-radius:7px;cursor:pointer}.aev-public-seat-map{position:relative;min-height:500px;overflow:auto;border:1px solid #ddd;border-radius:10px;background:#f8f8f8;margin-top:15px}.aev-public-seat-canvas{position:relative;min-width:760px;min-height:520px;background:repeating-linear-gradient(0deg,#fafafa,#fafafa 39px,#ededed 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ededed 40px)}.aev-public-seat{position:absolute;border:1px solid #555;border-radius:4px;background:#fff;cursor:pointer;font-size:10px;line-height:1;padding:0;min-width:12px;min-height:12px;box-sizing:border-box}.aev-public-seat[aria-pressed=true]{background:#2271b1;color:#fff}.aev-public-seat.is-unavailable{background:#d8d8d8;color:#777;cursor:not-allowed}.aev-public-summary{display:flex;gap:18px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.aev-public-summary button{padding:11px 16px;border:0;border-radius:7px;background:#2271b1;color:#fff;cursor:pointer}.aev-public-summary button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.aev-public-seat-head{align-items:flex-start;flex-direction:column}.aev-public-summary{justify-content:flex-start}}

.aev-public-reservation-step label{display:block}.aev-public-reservation-step input{display:block;width:100%;max-width:520px;margin-top:6px;padding:10px;box-sizing:border-box}.aev-public-submit{padding:11px 18px;border:0;border-radius:7px;background:#2271b1;color:#fff;cursor:pointer}.aev-public-submit:disabled{opacity:.5}.aev-public-confirmation{padding:15px;border:1px solid #cfcfcf;border-radius:8px;background:#f7f7f7}

.aev-public-locality-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.aev-public-locality-head h3{margin:0 0 5px}.aev-public-locality-head p{margin:0;color:#666}.aev-public-general-map{margin-top:16px;border:1px solid #d9d9d9;border-radius:14px;overflow:hidden;background:#f5f5f5}.aev-public-map-canvas{width:100%;overflow:auto;touch-action:pan-x pan-y}.aev-public-map-canvas svg{display:block;width:100%;height:auto;min-width:700px}.aev-public-zone{cursor:pointer;outline:none}.aev-public-zone polygon{fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill .15s ease,stroke .15s ease}.aev-public-zone text{font:700 16px Arial,sans-serif;fill:#111;paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:4px;pointer-events:none}.aev-public-zone text+text{font-size:12px;font-weight:600}.aev-public-zone:hover polygon,.aev-public-zone:focus polygon,.aev-public-zone.is-selected polygon{fill:rgba(255,255,255,.12);stroke:rgba(255,255,255,.9);stroke-width:3}.aev-public-map-hint{font-size:13px;color:#666;margin:9px 0 14px}.aev-public-section-grid{margin-top:4px}.aev-public-localities{overflow:hidden}@media(max-width:700px){.aev-public-locality-head{align-items:flex-start}.aev-public-map-canvas svg{min-width:620px}.aev-public-zone text{font-size:13px}.aev-public-zone text+text{font-size:10px}}

.aev-public-event-header{display:flex;gap:24px;align-items:flex-start;margin-bottom:22px}.aev-public-event-poster{flex:0 0 220px}.aev-public-event-poster img{display:block;width:100%;height:auto;max-height:330px;object-fit:cover;border-radius:12px}.aev-public-event-copy{flex:1;min-width:0}.aev-public-event-copy h2{margin:0 0 10px}.aev-public-event-description p,.aev-public-event-info p{margin:0 0 10px}.aev-public-event-info{padding:12px 14px;border-left:3px solid #ddd;margin-top:14px}.aev-public-empty{padding:30px;text-align:center;color:#666}.aev-public-zone.is-disabled{cursor:not-allowed;opacity:.55}@media(max-width:700px){.aev-public-event-header{flex-direction:column}.aev-public-event-poster{width:100%;max-width:260px;flex-basis:auto}.aev-public-event-poster img{max-height:none}.aev-public-general-map{border-radius:10px}}

/* Presentación pública 2.1.3 */
.aev-public-event-header{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:38px;align-items:center;margin:0 0 30px;padding:26px;background:#f5f5f5;border-radius:4px}.aev-public-event-poster{width:100%}.aev-public-event-poster img{width:100%;max-height:520px;object-fit:cover;border-radius:2px}.aev-public-event-copy h2{font-size:var(--aev-title-size,38px);line-height:1.08;margin:0 0 18px;font-weight:800;letter-spacing:-.02em}.aev-public-event-description,.aev-public-event-info{font-size:1em;line-height:1.65}.aev-public-event-info{margin-top:18px}.aev-public-functions{background:#fff}.aev-public-section-title{display:flex;gap:14px;align-items:center;margin-bottom:18px}.aev-public-section-title h3{font-size:24px;margin:0 0 3px}.aev-public-section-title p{margin:0;color:#666}.aev-step-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#111;color:#fff;font-weight:800}.aev-public-function-select{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.aev-public-function-grid{display:grid;gap:12px}.aev-public-function-card{display:grid;grid-template-columns:70px 75px 85px 1fr auto;align-items:center;gap:16px;width:100%;padding:18px 20px;border:1px solid #ddd;border-radius:3px;background:#fff;text-align:left;cursor:pointer;font:inherit;transition:.15s}.aev-public-function-card:hover,.aev-public-function-card.is-selected{border-color:#111;box-shadow:0 3px 12px rgba(0,0,0,.08)}.aev-date-day{font-size:34px;font-weight:800;line-height:1}.aev-date-month{font-weight:800}.aev-date-time{font-weight:700}.aev-date-meta{color:#666}.aev-buy-button{display:inline-block;background:#111;color:#fff;border-radius:3px;padding:13px 28px;font-size:var(--aev-button-size,16px);font-weight:800;text-align:center}.aev-public-localities h3,.aev-public-seat-head h3,.aev-public-reservation h3{font-size:24px}.aev-public-zone polygon{pointer-events:all}.aev-public-zone:hover text{font-weight:800}.aev-public-summary button,.aev-public-submit{font-size:var(--aev-button-size,16px)}@media(max-width:800px){.aev-public-event-header{grid-template-columns:1fr;gap:22px;padding:18px}.aev-public-event-poster{max-width:420px;margin:auto}.aev-public-event-copy h2{font-size:calc(var(--aev-title-size,38px) * .78)}.aev-public-function-card{grid-template-columns:55px 65px 65px 1fr}.aev-date-meta{display:none}.aev-buy-button{padding:11px 18px}}@media(max-width:520px){.aev-public-function-card{grid-template-columns:50px 55px 1fr;gap:10px;padding:14px}.aev-buy-button{grid-column:1/-1;width:100%;box-sizing:border-box}.aev-public-event-header{margin-left:-10px;margin-right:-10px}}

/* Mapa público 2.1.5: zonas limpias y sillería centrada */
.aev-public-zone polygon{fill:transparent!important;stroke:transparent!important;}
.aev-public-zone:hover polygon,.aev-public-zone:focus polygon,.aev-public-zone.is-selected polygon{fill:rgba(255,255,255,.12)!important;stroke:rgba(255,255,255,.92)!important;}
.aev-public-seat-view{scroll-margin-top:24px;}
.aev-public-seat-map{display:flex;justify-content:center;align-items:flex-start;padding:24px;box-sizing:border-box;overflow:auto;}
.aev-public-seat-canvas{position:relative;flex:0 0 auto;min-width:0;min-height:0;background:repeating-linear-gradient(0deg,#fafafa,#fafafa 39px,#ededed 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ededed 40px);}
.aev-public-seat-layer{position:relative;margin:0 auto;}
@media(max-width:700px){.aev-public-seat-map{justify-content:flex-start;padding:14px;}}

.aev-public-stage-marker{display:flex;justify-content:center;align-items:center;gap:10px;margin:0 auto 14px;padding:9px 14px;border:1px solid #ddd;border-radius:8px;background:#fff;font-weight:800;max-width:320px}.aev-public-stage-arrow{display:inline-block;font-size:20px;line-height:1;transform-origin:center center}.aev-public-seat span{display:block;width:100%;height:100%;line-height:inherit;transform-origin:center center}

/* Presentación pública 2.1.20: lista compacta de precios y formulario de reserva */
.aev-public-price-list-wrap{margin-top:14px;border-top:1px solid #e5e5e5;padding-top:4px}.aev-public-price-list-head{display:grid;grid-template-columns:1fr minmax(150px,220px);gap:18px;padding:10px 4px;color:#666;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.aev-public-price-list-head span:last-child{text-align:right}.aev-public-price-list{display:grid;gap:0}.aev-public-price-row{display:grid;grid-template-columns:1fr minmax(150px,220px);gap:18px;align-items:center;width:100%;padding:11px 4px;border:0;border-top:1px solid #ededed;background:transparent;text-align:left;font:inherit}.aev-public-price-name{font-weight:600}.aev-public-price-value{text-align:right;font-weight:800;white-space:nowrap}.aev-payment-verify{display:inline-flex;align-items:center;justify-content:center;margin-top:18px;min-height:46px;padding:10px 24px;border-radius:7px;text-decoration:none;font-weight:800;background:#111;color:#fff;transition:opacity .15s ease}.aev-payment-verify:hover{opacity:.88;color:#fff}.aev-payment-verify-missing{margin-top:18px;color:#777;font-size:13px}.aev-public-reservation-step{padding:28px 30px}.aev-public-reservation-heading{display:flex;align-items:center;gap:14px;margin-bottom:18px}.aev-public-reservation-heading .aev-step-number{flex:0 0 38px}.aev-public-reservation-heading h3{margin:0 0 4px;font-size:24px}.aev-public-reservation-heading p{margin:0;color:#666}.aev-public-reservation-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 22px;padding:13px 15px;border:1px solid #e3e3e3;border-radius:8px;background:#fafafa;color:#555}.aev-public-reservation-notice strong{color:#222;white-space:nowrap}.aev-public-reservation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.aev-public-field{min-width:0}.aev-public-field label{display:flex;align-items:baseline;gap:6px;margin:0 0 7px;font-size:14px;font-weight:700;color:#222}.aev-public-field label span{font-size:12px;font-weight:500;color:#777}.aev-public-field input{display:block;width:100%;min-height:48px;padding:11px 13px;border:1px solid #d1d1d1;border-radius:7px;background:#fff;box-sizing:border-box;font:inherit;color:#222;transition:border-color .15s ease,box-shadow .15s ease}.aev-public-field input::placeholder{color:#999}.aev-public-field input:focus{border-color:#777;box-shadow:0 0 0 3px rgba(0,0,0,.06);outline:none}.aev-public-reservation-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding-top:4px}.aev-public-reservation-actions .aev-public-submit{min-height:46px;padding:11px 22px;border-radius:7px;font-weight:700}.aev-public-reservation-actions .aev-public-back{min-height:46px}.aev-public-confirmation{margin-top:22px;padding:18px;border:1px solid #ddd;border-radius:9px;background:#fafafa}.aev-public-confirmation h4{margin:0 0 10px;font-size:20px}.aev-public-confirmation p{margin:6px 0}@media(max-width:700px){.aev-public-price-list-head,.aev-public-price-row{grid-template-columns:1fr auto;gap:12px}.aev-public-price-list-head{padding-left:10px;padding-right:10px}.aev-public-price-row{padding:12px 10px}.aev-public-reservation-step{padding:20px 18px}.aev-public-reservation-form{grid-template-columns:1fr;gap:15px}.aev-public-reservation-actions{grid-column:auto;flex-direction:column;align-items:stretch}.aev-public-reservation-actions button{width:100%}.aev-public-reservation-notice{flex-direction:column;gap:3px}}

.aev-payment-qr-wrap{margin-top:22px;padding:22px;border:1px solid #dedede;border-radius:10px;background:#fff;text-align:center}.aev-payment-qr-title{font-size:18px;font-weight:800;margin-bottom:14px}.aev-payment-qr{display:block;width:min(280px,100%);height:auto;max-height:280px;object-fit:contain;margin:0 auto 16px;border:1px solid #eee;border-radius:8px;background:#fff}.aev-payment-instructions{max-width:680px;margin:0 auto;color:#555;line-height:1.6;text-align:left}.aev-payment-missing{margin-top:20px;padding:14px 16px;border-radius:8px;background:#fafafa;border:1px solid #ddd;color:#555}.aev-payment-status{font-weight:700}.aev-payment-qr-preview{margin-top:12px;min-height:90px;padding:12px;border:1px dashed #cfcfcf;border-radius:8px;background:#fafafa;display:flex;align-items:center;justify-content:center}.aev-payment-qr-preview img{display:block;max-width:220px;max-height:220px;width:auto;height:auto}.aev-payment-qr-preview span{color:#777}

/* AEV Booking 2.1.24: precios en listado vertical y formato monetario sin decimales */
.aev-public-price-list{display:block;width:100%;}
.aev-public-price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;width:100%;box-sizing:border-box;padding:13px 4px;border-top:1px solid #ededed;background:transparent;}
.aev-public-price-name{font-weight:600;min-width:0;}
.aev-public-price-value{text-align:right;font-weight:800;white-space:nowrap;}
@media(max-width:700px){.aev-public-price-list-head,.aev-public-price-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;}.aev-public-price-row{padding:12px 10px;}}

/* AEV Booking 2.1.26: mapa de sillas con viewport fijo en móviles */
.aev-public-seat-map{max-height:clamp(420px,68vh,720px);overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;}
@media(max-width:700px){
  .aev-public-seat-map{height:clamp(360px,58vh,560px);max-height:none;min-height:360px;padding:12px;justify-content:flex-start;overflow:auto;touch-action:pan-x pan-y;}
  .aev-public-seat-canvas{max-width:none;}
}
@media(max-width:480px){
  .aev-public-seat-map{height:clamp(340px,55vh,500px);min-height:340px;}
}
