:root{--ink:#18222f;--muted:#647083;--line:#d9e0e8;--bg:#f4f7fa;--panel:#fff;--brand:#0c7c66;--hero-bg:#103c3a;--logo-spin-duration:7s;--accent:#d29b2f;--danger:#c73636;--ok:#2f9e44;--warn:#e6a700;--blocked:#89919c}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1120px,92vw);margin:auto}.public-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.public-header .container{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.brand{font-weight:800;font-size:20px}.brand-with-logo{display:inline-flex;align-items:center;gap:10px}.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:50%;animation:coinSpin var(--logo-spin-duration) linear infinite;transform-style:preserve-3d}.hero{background:var(--hero-bg);color:#fff;padding:34px 0}.hero h1{font-size:clamp(30px,5vw,56px);margin:0 0 10px}.hero p{max-width:680px;color:#d7eeee}.grid{display:grid;gap:18px}.events{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:28px 0}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.card-body{padding:16px}.event-cover{height:180px;object-fit:cover;width:100%;background:#dfe6ec}.meta{color:var(--muted);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;padding:10px 14px;background:var(--brand);color:#fff;cursor:pointer;font-weight:700}.btn-light{background:#eef3f6;color:var(--ink)}.btn-danger{background:var(--danger)}.btn-warn{background:var(--accent);color:#17202a}.form{display:grid;gap:12px}.form label{display:grid;gap:6px;font-weight:700}.form input,.form textarea,.form select{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff}.admin-body{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#13202b;color:#fff;padding:18px;position:sticky;top:0;height:100vh}.sidebar nav{display:grid;gap:8px;margin-top:22px}.sidebar a{padding:11px 12px;border-radius:6px;color:#dce7ef}.sidebar a:hover{background:#223446}.sidebar span{float:right;background:var(--accent);color:#111;border-radius:20px;padding:1px 7px}.admin-main{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.page{padding:22px}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.stat strong{font-size:28px;display:block}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f7fafc}.actions{display:flex;gap:8px;flex-wrap:wrap}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.map-canvas{position:relative;min-height:360px;background:#eef2f5;border:1px solid var(--line);border-radius:8px;overflow:hidden}.map-canvas img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.zone{position:absolute;border:2px solid rgba(255,255,255,.9);border-radius:6px;color:#fff;text-shadow:0 1px 2px #000;padding:5px;font-size:13px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;min-width:44px;min-height:32px}.zone.disponible{background:rgba(47,158,68,.82)}.zone.pendiente{background:rgba(230,167,0,.86)}.zone.reservada{background:rgba(199,54,54,.86)}.zone.bloqueada{background:rgba(137,145,156,.86)}.zone.selected{outline:4px solid #fff;box-shadow:0 0 0 4px var(--accent)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf2f7;font-size:12px}.notice{padding:12px 14px;border-radius:8px;background:#e8f6f1;border:1px solid #bfe4d8;margin-bottom:14px}.login{min-height:100vh;display:grid;place-items:center;background:#122836}.login-box{width:min(400px,92vw);background:#fff;border-radius:8px;padding:24px}.editor-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.public-detail{padding:24px 0}.status-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:5px}.ok{background:var(--ok)}.warn{background:var(--warn)}.bad{background:var(--danger)}.gray{background:var(--blocked)}@keyframes coinSpin{0%{transform:rotateY(0deg)}100%{transform:rotateY(360deg)}}@media(prefers-reduced-motion:reduce){.brand-logo{animation:none}}
@media(max-width:860px){.admin-body{display:block}.sidebar{height:auto;position:relative}.sidebar nav{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.topbar{padding:0 14px}.page{padding:14px}.map-canvas{min-height:300px}.events{grid-template-columns:1fr}.public-header .container{align-items:flex-start;gap:10px;flex-direction:column}}

.map-canvas{touch-action:none;user-select:none}.map-canvas img{pointer-events:none}.zone{cursor:move;background:rgba(47,158,68,.42);border-width:3px}.zone-label{pointer-events:none}.zone-resize{position:absolute;right:-7px;bottom:-7px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--ink);cursor:nwse-resize;box-shadow:0 1px 3px rgba(0,0,0,.25)}.zone.selected{z-index:4}.editor-tools .wide{grid-column:1/-1}.editor-actions{display:flex;gap:8px;flex-wrap:wrap}
.map-canvas{aspect-ratio:16/9;min-height:0}.map-canvas img{object-fit:fill}
.map-canvas:not([data-map-editor]) .zone{cursor:pointer;border-width:4px;background:rgba(47,158,68,.42);overflow:hidden}.map-canvas:not([data-map-editor]) .zone.disponible{border-color:#2f9e44}.map-canvas:not([data-map-editor]) .zone.pendiente,.map-canvas:not([data-map-editor]) .zone.validacion{border-color:#e6a700}.map-canvas:not([data-map-editor]) .zone.reservada{border-color:#c73636;cursor:not-allowed}.map-canvas:not([data-map-editor]) .zone.bloqueada{border-color:#89919c;cursor:not-allowed}.map-canvas:not([data-map-editor]) .zone.pendiente:after,.map-canvas:not([data-map-editor]) .zone.validacion:after,.map-canvas:not([data-map-editor]) .zone.reservada:after,.map-canvas:not([data-map-editor]) .zone.bloqueada:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 7px,rgba(0,0,0,.08) 7px,rgba(0,0,0,.08) 14px);pointer-events:none}.zone-state{font-size:11px;font-weight:700}.admin-logo-preview{width:40px;height:40px;object-fit:contain;display:inline-block;vertical-align:middle;margin-right:8px}
.brand-logo.logo-spin{width:40px;height:40px;min-width:40px;max-width:40px;object-fit:contain;border-radius:50%;animation:spin2D 6s linear infinite;transform-origin:center center;will-change:transform}.brand-with-logo{min-height:44px;line-height:1.1}.brand-with-logo span{display:inline-block}@keyframes spin2D{0%{transform:rotateY(0deg) rotateZ(0deg)}100%{transform:rotateY(-360deg) rotateZ(360deg)}}@media(prefers-reduced-motion:reduce){.brand-logo.logo-spin{animation:none}}
.public-header .container{min-height:68px}.brand-with-logo{display:inline-flex!important;align-items:center!important;gap:10px!important;max-width:calc(100% - 150px)}.brand-logo.logo-spin{display:block!important;width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;max-height:40px!important;object-fit:contain!important;flex:0 0 40px!important}
.brand-with-logo{flex-direction:row!important;white-space:nowrap!important;perspective:800px!important}.brand-with-logo span{display:inline-block!important;line-height:40px!important}.brand-logo.logo-spin{animation:logoCoinSpin 6s linear infinite!important;transform-style:preserve-3d!important;backface-visibility:visible!important}@keyframes logoCoinSpin{0%{transform:perspective(800px) rotateY(0deg) rotateZ(0deg)}25%{transform:perspective(800px) rotateY(-90deg) rotateZ(90deg)}50%{transform:perspective(800px) rotateY(-180deg) rotateZ(180deg)}75%{transform:perspective(800px) rotateY(-270deg) rotateZ(270deg)}100%{transform:perspective(800px) rotateY(-360deg) rotateZ(360deg)}}@media(max-width:860px){.brand-with-logo{max-width:100%!important}.brand-with-logo span{font-size:17px;line-height:40px!important}}
.event-cover{object-position:center center}.event-detail-media{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-media-preview{width:100%;max-height:220px;object-fit:contain;background:#f7fafc;border:1px solid var(--line);border-radius:8px;padding:8px}.media-warning{color:#b42318!important;font-weight:800}
.event-schedule{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0}.event-schedule div{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.event-schedule span{display:block;color:var(--muted);font-size:12px}.event-schedule strong{display:block;margin-top:4px}
.event-detail-schedule{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}.event-detail-schedule div{min-width:0}
.event-card-schedule{display:flex;flex-wrap:wrap;gap:6px 10px;margin:8px 0 12px;color:var(--muted);font-size:13px}.event-card-schedule span{display:inline-flex;align-items:center}.event-card-schedule span:not(:last-child):after{content:"";width:4px;height:4px;border-radius:50%;background:var(--line);margin-left:10px}
.schedule-icon{position:relative;display:inline-block;width:15px;height:15px;margin-right:6px;vertical-align:-2px;flex:0 0 15px}.icon-calendar{border:2px solid currentColor;border-radius:3px}.icon-calendar:before{content:"";position:absolute;left:2px;right:2px;top:3px;border-top:2px solid currentColor}.icon-calendar:after{content:"";position:absolute;left:3px;right:3px;top:-4px;height:4px;border-left:2px solid currentColor;border-right:2px solid currentColor}.icon-open{border:2px solid currentColor;border-radius:2px}.icon-open:before{content:"";position:absolute;right:-5px;top:1px;width:7px;height:11px;border:2px solid currentColor;border-left:0;transform:skewY(-12deg)}.icon-start:before{content:"";position:absolute;left:3px;top:1px;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}.icon-end:before{content:"";position:absolute;left:2px;top:1px;width:2px;height:13px;background:currentColor}.icon-end:after{content:"";position:absolute;left:5px;top:2px;width:8px;height:7px;background:currentColor;clip-path:polygon(0 0,100% 20%,100% 80%,0 100%)}.event-schedule span{display:flex;align-items:center}
.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;font-weight:700}.check-row input{width:auto!important}.public-info-block{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.public-info-block h3{margin:0 0 6px}
.transfer-box{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 18px}.transfer-box h3{margin:0 0 12px}.transfer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.transfer-item{border:1px solid var(--line);border-radius:8px;background:#f7fafc;padding:10px;display:grid;gap:6px}.transfer-item span{font-size:12px;color:var(--muted)}.transfer-item strong{word-break:break-word}.copy-btn{border:0;border-radius:6px;background:var(--brand);color:#fff;padding:7px 10px;cursor:pointer;font-weight:700}
.folio-search{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;margin:18px 0}.folio-search h2{margin:0 0 4px;font-size:20px}.folio-search form{display:flex;gap:8px;min-width:min(420px,100%)}.folio-search input{flex:1;padding:10px;border:1px solid var(--line);border-radius:6px}.folio-copy{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:5px 8px;font-weight:800;cursor:pointer}.reservation-status{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px}@media(max-width:720px){.folio-search{align-items:stretch;flex-direction:column}.folio-search form{min-width:0;flex-direction:column}}
.event-availability{font-size:13px;color:var(--muted);margin:10px 0}.event-availability.abierto{color:var(--ok)}.event-availability.cerrado,.event-availability.proceso{color:#9a5700}.event-availability.proximamente{color:#244a9b}.event-availability.agotado,.event-availability.pasado{color:var(--danger)}.notice-warn{background:#fff7df;border-color:#f0d28a}.event-filters{margin:0 0 14px}.badge-abierto{background:#e8f6f1;color:#146c43}.badge-cerrado,.badge-proceso{background:#fff0d6;color:#9a5700}.badge-proximamente{background:#e8eefc;color:#244a9b}.badge-agotado,.badge-pasado{background:#fdecec;color:#9f2d2d}
.filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;margin:0 0 14px}.filter-bar label{display:grid;gap:6px;font-weight:700;min-width:min(260px,100%)}.filter-bar select,.filter-bar input{padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff}.reservation-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap}.change-zone-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 14px}.change-zone-panel h2{margin:0 0 8px}.page-title-actions{align-items:center;justify-content:space-between;margin-bottom:12px}@media(max-width:900px){.reservation-actions{flex-wrap:wrap;white-space:normal}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label{min-width:0;width:100%}}
.amount-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0}.amount-grid div{border:1px solid var(--line);border-radius:8px;background:#f7fafc;padding:12px}.amount-grid span{display:block;color:var(--muted);font-size:12px}.amount-grid strong{display:block;font-size:20px;margin-top:4px}
.admin-toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:min(380px,92vw);background:#fff;border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.18);padding:14px;color:var(--ink)}.admin-toast strong{display:block;margin-bottom:4px}.admin-toast .toast-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.admin-toast[hidden]{display:none}
.badge-reserva-pendiente_pago{background:#fff7df;color:#8a6200}.badge-reserva-pendiente_validacion{background:#fff0d6;color:#9a5700}.badge-reserva-confirmada{background:#e8f6f1;color:#146c43}.badge-reserva-cancelada{background:#fdecec;color:#9f2d2d}.badge-reserva-vencida{background:#edf2f7;color:#4a5568}.badge-reserva-no_show{background:#f1e8ff;color:#5f3dc4}.badge-reserva-finalizada{background:#e8eefc;color:#244a9b}.badge-reserva-espera_asignar_mesa{background:#fff7df;color:#8a6200;border:1px solid #f0d28a}
.badge-reserva-cancelada_cliente{background:#fff0d6;color:#9a5700;border:1px solid #efc27a}.important-rules{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.important-rules h3{color:var(--brand)}
.map-canvas:not([data-map-editor]) .zone.selected{animation:zonePulse .75s ease-out;z-index:5;box-shadow:0 0 0 4px #fff,0 0 0 8px var(--accent),0 10px 22px rgba(0,0,0,.22);transform:scale(1.03)}.zone-summary-title{font-size:18px;font-weight:800;margin-bottom:8px}.zone-summary-grid{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;align-items:center}.zone-summary-grid span{color:var(--muted);font-size:13px}.zone-summary-grid strong{font-size:15px}.price-highlight{color:var(--danger)!important;font-size:22px!important}.zone-summary-pop{animation:summaryPop .28s ease-out;border-color:#f2b8b8;background:#fff7f7}@keyframes zonePulse{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1.03)}}@keyframes summaryPop{0%{transform:translateY(6px);opacity:.6}100%{transform:translateY(0);opacity:1}}
.form>button.btn{justify-self:start;width:auto;min-width:150px;padding:9px 16px}.btn.btn-compact{display:inline-flex!important;align-self:flex-start!important;justify-self:start!important;width:auto!important;max-width:max-content!important;min-width:150px!important;padding:9px 16px!important}.form>.btn:not(button){justify-self:start;width:auto}.editor-actions .btn,.actions .btn{min-width:0}
.map-canvas img{object-fit:fill!important}.map-canvas:not([data-map-editor]){touch-action:manipulation}.map-canvas:not([data-map-editor]) .zone{min-width:0!important;min-height:0!important;padding:2px!important;line-height:1.05;font-size:clamp(8px,1.2vw,13px);overflow:visible}.map-canvas:not([data-map-editor]) .zone:before{content:"";position:absolute;inset:-8px;background:transparent;pointer-events:auto}.map-canvas[data-map-editor] .zone{min-width:44px;min-height:32px}
.event-tolerance{display:block;margin:10px 0 8px;padding:8px 10px;border:1px solid #f1b6b6;border-left:4px solid var(--danger);border-radius:6px;background:#fff3f3;color:#9f2d2d;font-size:13px;font-weight:800;line-height:1.35}.event-tolerance-detail{margin:12px 0 14px;font-size:15px}
.event-tolerance-card{margin:6px 0 8px;padding:5px 8px;border-left-width:3px;font-size:11.5px;font-weight:700;line-height:1.25;background:#fff8f8;color:#a54444}
.permissions-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.permissions-panel h2{margin:0 0 6px}.permission-group{border-top:1px solid var(--line);padding:12px 0}.permission-group h3{margin:0 0 8px;font-size:15px}.permission-group .check-row{margin:7px 0;font-weight:600}
.event-date-separator{display:flex;align-items:center;gap:12px;margin:28px 0 14px;color:var(--muted);font-size:14px;font-weight:800;text-align:center}.event-date-separator:before,.event-date-separator:after{content:"";height:1px;background:var(--line);flex:1}.event-date-separator span{background:var(--bg);border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:6px 12px}.events{padding:0 0 28px}@media(max-width:720px){.event-date-separator{font-size:13px;gap:8px;margin:22px 0 12px}.event-date-separator span{padding:5px 10px}.events{padding-bottom:22px}}
.modal-backdrop{position:fixed;inset:0;background:rgba(18,32,43,.42);z-index:50;display:grid;place-items:center;padding:18px}.modal-backdrop[hidden]{display:none}.modal-box{width:min(460px,94vw);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.22);padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.modal-head h2{font-size:20px;margin:0}.modal-close{border:0;background:#eef3f6;border-radius:6px;color:var(--ink);cursor:pointer;font-size:24px;line-height:1;padding:4px 10px}.modal-box label{display:grid;gap:6px;font-weight:700;margin:12px 0}.modal-box input{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px}.public-toast{position:fixed;right:18px;top:86px;z-index:80;background:#18222f;color:#fff;border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.2);font-weight:800;max-width:min(360px,90vw);padding:12px 14px;transition:opacity .3s ease,transform .3s ease}.public-toast.hide{opacity:0;transform:translateY(-8px)}@media(max-width:720px){.public-toast{left:5vw;right:5vw;top:78px;text-align:center}.modal-box .actions{display:grid}.modal-box .btn{width:100%}}
.private-link-box{background:#f7fafc;border:1px solid var(--line);border-radius:8px;display:grid;gap:7px;margin:8px 0 10px;padding:10px}.private-link-row{display:flex;align-items:flex-start;gap:8px;min-width:0}.private-link-row span{color:var(--muted);font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.35;overflow-wrap:anywhere;word-break:break-all;white-space:normal}.private-link-box .btn{justify-self:start}.qr-page{background:#edf2f7}.qr-shell{min-height:100vh;display:grid;place-items:center;gap:16px;padding:24px}.qr-card-print{width:min(460px,92vw);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.12);padding:24px;text-align:center}.qr-title{color:var(--ink);font-size:24px;font-weight:900;letter-spacing:.5px}.qr-subtitle{color:var(--muted);font-size:15px;font-weight:800;margin:6px 0 18px}.qr-image{width:100%;max-width:330px;margin:0 auto}.qr-detail{border-top:1px solid var(--line);color:var(--ink);font-size:14px;font-weight:800;line-height:1.45;margin-top:18px;padding-top:14px;overflow-wrap:anywhere}.qr-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}@media print{body.qr-page{background:#fff}.qr-shell{display:block;min-height:0;padding:0}.qr-card-print{box-shadow:none;border:0;margin:0 auto;width:100%;max-width:460px}.qr-actions{display:none}}
.map-row-actions{flex-wrap:nowrap;white-space:nowrap}.map-row-actions .btn{padding:8px 10px}
.admin-event-schedule{display:flex;align-items:center;gap:7px 10px;flex-wrap:wrap;min-width:230px;max-width:330px;color:var(--muted);font-size:12px;line-height:1.2}.admin-event-schedule span{display:inline-flex;align-items:center;white-space:nowrap}.admin-event-schedule .schedule-icon{width:13px;height:13px;flex-basis:13px;margin-right:4px}.admin-event-schedule .icon-open:before{right:-4px;width:6px;height:9px}.admin-event-schedule .icon-start:before{border-left-width:9px;border-top-width:5px;border-bottom-width:5px}.admin-event-schedule .icon-end:before{height:11px}.admin-event-schedule .icon-end:after{height:6px;width:7px}
.admin-event-media{display:grid;grid-template-columns:32px 32px;align-items:center;gap:5px;min-width:69px}.admin-event-media .media-slot{display:block;width:32px;height:32px}.admin-event-media a{position:relative;display:block;width:32px;height:32px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#f7fafc}.admin-event-media img{width:100%;height:100%;object-fit:cover}.admin-event-media em{display:grid;place-items:center;width:100%;height:100%;background:#18222f;color:#fff;font-size:12px;font-style:normal;font-weight:900}.admin-event-media a span{position:absolute;left:0;bottom:0;background:rgba(24,34,47,.8);color:#fff;font-size:9px;font-weight:800;line-height:1;padding:2px 3px}
.event-cover-wrap{position:relative;overflow:hidden}.event-soldout-card .event-cover{filter:saturate(.62) brightness(.88)}.soldout-corner{position:absolute;right:0;top:0;width:0;height:0;border-top:86px solid var(--danger);border-left:86px solid transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.22))}.soldout-corner span{position:absolute;right:4px;top:-68px;color:#fff;font-size:11px;font-weight:900;letter-spacing:.6px;transform:rotate(45deg);transform-origin:center;white-space:nowrap}.soldout-notice{background:#fdecec;border-color:#f2b8b8;color:#8a1f1f}
.event-coming-card .event-cover{filter:saturate(.78) brightness(.82)}.coming-banner{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%) rotate(-3deg);background:rgba(199,54,54,.94);border:2px solid rgba(255,255,255,.92);border-radius:6px;box-shadow:0 10px 24px rgba(0,0,0,.25);color:#fff;max-width:86%;padding:9px 16px;text-align:center}.coming-banner span{display:block;font-size:15px;font-weight:900;letter-spacing:1px;line-height:1;white-space:nowrap}.btn-disabled{cursor:not-allowed;opacity:.78}.event-blocked-notice{background:#fff7df;border-color:#f0d28a;color:#7a5a13}@media(max-width:520px){.coming-banner{padding:8px 12px;transform:translate(-50%,-50%) rotate(-2deg)}.coming-banner span{font-size:13px;letter-spacing:.7px}}
.reservation-row td{padding-top:9px;padding-bottom:9px;line-height:1.25}.reservation-row .cell-main{display:block;font-size:13px;line-height:1.2;margin-bottom:5px}.table-subline{display:block;color:var(--muted);font-size:11.25px;line-height:1.25;margin-top:2px;white-space:nowrap}.table-subline-muted{font-size:10.8px;color:#7b8794}.today-label{display:inline-block;margin:0 3px;padding:1px 5px;border-radius:999px;background:#e8f6f1;color:#146c43;font-size:10px;letter-spacing:.3px}.tomorrow-label{background:#eef3ff;color:#244a9b}.sort-link{font-weight:800;color:var(--ink)}.reservation-row .badge{font-size:11px;padding:3px 7px}.reservation-row .btn{padding:7px 9px;font-size:12px}.reservation-row .reservation-actions{gap:6px}
.reservation-origin{display:inline-flex;align-items:center;border-radius:999px;font-size:10px;font-weight:800;line-height:1;margin:0 0 4px;padding:4px 7px;white-space:nowrap}.reservation-origin.manual{background:#fff0d6;color:#8a5400}.reservation-origin.cliente{background:#eef3f6;color:#465465}
.time-picker{display:flex;gap:8px;align-items:center}.time-picker select{min-width:74px;max-width:110px}.time-picker select[data-time-minute]{min-width:70px}.time-conflict-note{align-self:start;border-left:3px solid var(--accent);color:#7a5a13;font-size:11.5px;line-height:1.35;margin:-4px 0 2px;padding:4px 8px;background:#fffaf0;border-radius:4px}.time-conflict-note strong{font-size:11.5px}@media(max-width:520px){.time-picker{align-items:stretch;flex-direction:column}.time-picker select{max-width:none;width:100%}}
.availability-panel{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 0 14px;padding:16px}.availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.availability-head h2{margin:0 0 4px;font-size:21px}.availability-grid{display:grid;grid-template-columns:minmax(360px,1.25fr) minmax(280px,.75fr);gap:16px;align-items:start}.admin-availability-map{min-height:260px}.availability-list{display:grid;gap:8px;max-height:520px;overflow:auto;padding-right:4px}.availability-item{display:grid;grid-template-columns:1fr auto;gap:8px 10px;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:8px;background:#f7fafc;padding:10px}.availability-item strong,.availability-item span,.availability-item small{display:block}.availability-item span{color:var(--muted);font-size:12px;margin-top:3px}.availability-item small{color:var(--muted);font-size:11.5px;margin-top:5px;text-align:right}.availability-client{color:var(--ink)!important}.availability-client strong{display:inline}.availability-details{grid-column:1/-1;border-top:1px solid var(--line);margin-top:4px;padding-top:6px}.availability-details summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--brand)}.availability-reservation{background:#fff;border:1px solid var(--line);border-radius:6px;margin-top:6px;padding:7px}.availability-reservation strong{font-size:13px}.availability-reservation span{font-size:11.5px}.availability-item.disponible{border-left-color:var(--ok)}.availability-item.pendiente,.availability-item.validacion{border-left-color:var(--warn)}.availability-item.reservada{border-left-color:var(--danger)}.availability-item.bloqueada{border-left-color:var(--blocked)}@media(max-width:980px){.availability-grid{grid-template-columns:1fr}.availability-list{max-height:none}.availability-head{align-items:stretch;flex-direction:column}.admin-availability-map{min-height:220px}}
.event-row-actions{flex-wrap:nowrap;white-space:nowrap}.event-row-actions .btn{padding:8px 10px}
.availability-item{cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.availability-item.disponible{background:#eefaf2}.availability-item.pendiente,.availability-item.validacion{background:#fff8e8}.availability-item.reservada{background:#fff0f0}.availability-item.bloqueada{background:#f1f3f5}.availability-item.selected{box-shadow:0 0 0 3px rgba(210,155,47,.28);transform:translateY(-1px)}.admin-availability-map .zone.availability-zone-selected{z-index:8;box-shadow:0 0 0 4px #fff,0 0 0 8px var(--accent),0 12px 24px rgba(0,0,0,.24)!important}.admin-availability-map .zone.availability-zone-pulse{animation:availabilityPulse .8s ease-out}@keyframes availabilityPulse{0%{transform:scale(1)}45%{transform:scale(1.1)}100%{transform:scale(1.03)}}
.btn-admin-reserve{margin-top:8px;padding:7px 10px;font-size:12px}.admin-direct-reserve{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.admin-direct-reserve h2{font-size:20px;margin:0}.admin-direct-reserve[hidden]{display:none}
.event-row-past .event-name-admin{text-decoration:line-through;color:var(--muted)}.event-count-pills{display:flex;gap:5px;flex-wrap:wrap}.event-count-pills span{border:1px solid var(--line);border-radius:999px;background:#f7fafc;color:var(--ink);font-size:11px;font-weight:800;padding:4px 7px;white-space:nowrap}.pagination{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin:12px 0 0}.zona-compartida .zone-occupancy{position:absolute;left:0;bottom:0;height:5px;background:rgba(199,54,54,.72);border-radius:0 0 3px 3px;pointer-events:none;z-index:1}.zona-compartida.disponible{box-shadow:inset 0 -7px 0 rgba(255,255,255,.35)}
