:root{--guinda: #6b1c2e;--guinda-osc: #4d1421;--guinda-claro: #8e1b3a;--tinta: #241a1d;--gris: #6e6266;--linea: #e5dcdf;--fondo: #f7f4f5;--papel: #ffffff;--ok: #1a7f4e;--info: #2c6e9e;--warn: #b8862d;--libre: #ece6e8;--font: "Archivo", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);background:var(--fondo);color:var(--tinta);font-size:15px}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:15px}.topbar{background:var(--guinda);color:#fff;position:sticky;top:0;z-index:40}.topbar-inner{max-width:1280px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.marca{display:flex;flex-direction:column;line-height:1.05}.marca b{font-weight:800;letter-spacing:.3px;font-size:16px}.marca span{font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:1.2px}.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.nav a{color:#fff;text-decoration:none;padding:7px 12px;border-radius:8px;font-weight:600;font-size:14px;opacity:.82}.nav a.activo,.nav a:hover{background:#ffffff24;opacity:1}.nav .salir{background:none;border:none;color:#fff;opacity:.7;font-size:14px;padding:7px 10px}.contenido{max-width:1280px;margin:0 auto;padding:18px 16px 90px}h1{font-size:22px;font-weight:800;margin:4px 0 14px;letter-spacing:-.2px}h2{font-size:16px;font-weight:700;margin:18px 0 10px}.card{background:var(--papel);border:1px solid var(--linea);border-radius:14px;padding:16px}.boton{border:none;border-radius:9px;padding:9px 14px;font-weight:700;font-size:14px;background:var(--guinda);color:#fff}.boton:disabled{opacity:.5;cursor:default}.boton.sec{background:#fff;color:var(--guinda);border:1.5px solid var(--guinda)}.boton.suave{background:var(--libre);color:var(--tinta)}.boton.ok{background:var(--ok)}.boton.peligro{background:#fff;color:#b3261e;border:1.5px solid #b3261e}.boton.wa{background:#1fa855}.boton.mini{padding:5px 10px;font-size:13px;border-radius:7px}.campo{width:100%;padding:9px 11px;border:1.5px solid var(--linea);border-radius:9px;background:#fff}.campo:focus{outline:2px solid var(--guinda);outline-offset:1px;border-color:transparent}label.et{display:block;font-size:12px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.8px;margin:10px 0 4px}.fila-form{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--libre)}.chip.ok{background:#dff2e7;color:var(--ok)}.chip.info{background:#e2eef7;color:var(--info)}.chip.warn{background:#f5ecd9;color:#8a6415}.chip.guinda{background:#f3e2e7;color:var(--guinda)}.error{color:#b3261e;font-size:13px;margin-top:8px}.aviso{color:var(--gris);font-size:13px}.mono{font-family:var(--mono)}.login-wrap{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(160deg,var(--guinda-osc),var(--guinda) 55%,var(--guinda-claro));padding:20px}.login-card{width:100%;max-width:380px;background:#fff;border-radius:18px;padding:28px}.login-card .sello{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gris)}.login-card h1{margin:6px 0 2px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.kpi{background:var(--papel);border:1px solid var(--linea);border-radius:12px;padding:12px 14px}.kpi .n{font-size:26px;font-weight:800;letter-spacing:-.5px}.kpi .t{font-size:12px;color:var(--gris);font-weight:600}.barra-zona{display:flex;align-items:center;gap:10px;margin:7px 0}.barra-zona .zeta{width:34px;font-weight:800}.barra-zona .pista{flex:1;height:18px;background:var(--libre);border-radius:9px;overflow:hidden;display:flex}.barra-zona .relleno{height:100%}.barra-zona .cifra{width:120px;font-size:12px;color:var(--gris);text-align:right}.tabs-zona{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}.tab-zona{border:1.5px solid var(--linea);background:#fff;border-radius:10px;padding:7px 12px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:7px}.tab-zona .punto{width:10px;height:10px;border-radius:3px}.tab-zona.activo{border-color:var(--tinta);background:var(--tinta);color:#fff}.tab-zona small{font-weight:600;opacity:.7}.mapa-layout{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start}@media (max-width: 900px){.mapa-layout{grid-template-columns:1fr}}.escenario{text-align:center;background:var(--guinda-osc);color:#fff;border-radius:10px;padding:8px;font-size:12px;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px}.fila-asientos{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;margin-bottom:6px}.fila-tag{font-size:11px;font-weight:800;color:var(--gris);width:26px;flex-shrink:0;font-family:var(--mono)}.asiento{width:34px;height:30px;border-radius:7px;border:none;font-size:10.5px;font-weight:700;font-family:var(--mono);color:var(--tinta);background:var(--libre);position:relative;padding:0}.asiento.asignado{background:var(--zcolor, var(--guinda));color:#fff}.asiento.confirmado{background:var(--ok);color:#fff}.asiento.asistio{background:var(--info);color:#fff}.asiento.comodin{outline:2px dashed var(--warn);outline-offset:-2px}.asiento.bloqueado{background:#cfc6c9;color:#8d8388;text-decoration:line-through}.asiento.sel{box-shadow:0 0 0 3px var(--tinta)}.asiento.match{box-shadow:0 0 0 3px var(--warn)}.leyenda{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--gris);margin:10px 0}.leyenda i{display:inline-block;width:13px;height:13px;border-radius:4px;vertical-align:-2px;margin-right:4px}.panel{position:sticky;top:66px}.persona{display:flex;gap:12px;align-items:center}.avatar{width:58px;height:58px;border-radius:12px;object-fit:cover;background:var(--libre);display:grid;place-items:center;font-weight:800;color:var(--guinda);font-size:20px;flex-shrink:0}.acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.res-inv{border:1px solid var(--linea);border-radius:10px;padding:8px 10px;margin-top:6px;display:flex;align-items:center;gap:10px}.res-inv:hover{border-color:var(--guinda)}.res-inv .datos{flex:1;min-width:0}.res-inv .datos b{display:block}.res-inv .datos span{font-size:12px;color:var(--gris)}.tabla{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--linea)}.tabla th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--gris);padding:10px 12px;border-bottom:1px solid var(--linea);background:#fbf9fa}.tabla td{padding:10px 12px;border-bottom:1px solid var(--linea);vertical-align:middle}.tabla tr:last-child td{border-bottom:none}.herr{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.herr .campo{width:auto;flex:1;min-width:160px}.velo{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e0f148c;z-index:60;display:grid;place-items:center;padding:16px;overflow-y:auto}.modal{background:#fff;border-radius:16px;width:100%;max-width:480px;padding:20px;max-height:92dvh;overflow-y:auto}.modal h2{margin-top:0}.ficha{border:2px solid var(--guinda);border-radius:16px;overflow:hidden}.ficha-cab{background:var(--guinda);color:#fff;padding:14px 16px}.ficha-cab .ev{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;opacity:.85}.ficha-cab .ti{font-size:19px;font-weight:800}.ficha-cuerpo{padding:16px;display:flex;gap:14px;align-items:center}.ficha-cuerpo .qr{flex-shrink:0;background:#fff}.ficha-lugar{font-size:21px;font-weight:800;color:var(--guinda);letter-spacing:-.3px}.ficha-pie{border-top:1px dashed var(--linea);padding:10px 16px;font-size:12px;color:var(--gris);display:flex;justify-content:space-between}@media print{body *{visibility:hidden}.imprimible,.imprimible *{visibility:visible}.imprimible{position:fixed;top:0;right:0;bottom:0;left:0;padding:30px;background:#fff}.no-print{display:none!important}}.checkin-res{border-radius:14px;padding:18px;margin-top:14px}.checkin-res.bien{background:#dff2e7;border:2px solid var(--ok)}.checkin-res.mal{background:#fdecea;border:2px solid #b3261e}.checkin-res.dup{background:#f5ecd9;border:2px solid var(--warn)}.checkin-res .lugarzo{font-size:30px;font-weight:800}video.scan{width:100%;border-radius:12px;background:#000;max-height:300px;object-fit:cover}.plano-svg{width:100%;height:auto;display:block}.plano-bloque{cursor:pointer;transition:opacity .15s,transform .15s}.plano-bloque:hover{opacity:.88}.tab-zona.sub{padding-left:10px;padding-right:10px;opacity:.85;font-size:12px}.zona-c-grid{display:flex;gap:16px;align-items:flex-start;justify-content:center;flex-wrap:wrap}.seccion-zona{min-width:0}.seccion-zona.mini{flex:0 1 auto}.subzona-cab{color:#fff;text-align:center;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:800;letter-spacing:1px;margin-bottom:10px}.asiento.mini{width:14px;height:14px;border-radius:4px;font-size:0}.hueco{width:34px;height:30px;display:inline-block}.hueco.mini{width:14px;height:14px}.fila-tag.der{text-align:right}.seccion-zona.mini .fila-tag{width:20px;font-size:9px}@media (max-width: 700px){.zona-c-grid{flex-direction:column;align-items:stretch}}.panel-top{margin:12px 0}.panel-top .card{border-left:4px solid var(--guinda)}.barra-multi{margin:12px 0;border-color:var(--info);position:sticky;top:8px;z-index:6;box-shadow:0 6px 18px #4e12201f}.asiento.reservado{background:#eddce2;outline:2px solid var(--zcolor, var(--guinda));outline-offset:-2px}.asiento.reservado.asignado{background:var(--zcolor, var(--guinda));outline:2px solid #EDDCE2}.asiento.msel{box-shadow:0 0 0 3px var(--info)}.fila-tag.click{cursor:pointer;text-decoration:underline dotted;color:var(--guinda)}.chip-x{border:none;background:transparent;color:inherit;cursor:pointer;font-size:11px;margin-left:4px;padding:0}.asiento.mas{background:transparent;border:1.5px dashed var(--guinda);color:var(--guinda);font-weight:800}.asiento.mas:hover{background:#6b1c2e14}.agregar-asientos{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px;padding-top:10px;border-top:1px dashed var(--borde, #ddd)}.campo.mini{padding:6px 8px;font-size:13px}.tabla{width:100%;border-collapse:collapse}.tabla th,.tabla td{text-align:left;padding:8px 10px;border-bottom:1px solid #eee2e6;font-size:14px;vertical-align:middle}.tabla th{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#8a7a80}
