:root{color-scheme:dark;--azul:#68afe9;--turquesa:#23669b;--fondo:#080f14;--panel:#0c171e;--campo:#111f28;--borde:#263e4c;--texto:#dce5ec;--muted:#91a4b1}*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}button,.boton{cursor:pointer;border:1px solid #377fb5;border-radius:5px;padding:10px 15px;background:var(--turquesa);color:#fff;font-weight:600;min-height:39px;transition:background .15s,border-color .15s}button:hover{background:#307eb6;border-color:#5aa7df}button:disabled{opacity:.5;cursor:wait}.secundario{background:#14232c;color:#c4d2dc;border-color:var(--borde)}.secundario:hover{background:#1c3443}.barra-superior{min-height:80px;display:flex;align-items:center;gap:20px;padding:13px 22px;background:#0a151c;border-bottom:1px solid var(--borde);border-top:2px solid #297395}.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--texto);padding-right:22px;border-right:1px solid var(--borde);flex-shrink:0}.marca svg{width:36px;height:36px;fill:none;stroke:#5faee0;stroke-width:2.4;stroke-linecap:round}.marca h1{font-size:16px;letter-spacing:2px;margin:0}.marca small{display:block;font-size:10px;color:var(--muted);margin-top:5px;letter-spacing:.5px}nav{display:flex;gap:3px;border:1px solid var(--borde);border-radius:28px;padding:4px}nav button{background:transparent;color:var(--muted);border-color:transparent;border-radius:22px;white-space:nowrap;padding:9px 14px}nav button:hover{background:#162b38;color:#edf5fb}nav button[aria-selected=true]{background:#225f90;border-color:#3c83b8;color:#fff}.icono{font-size:17px;margin-right:4px}.cuenta{display:flex;align-items:center;gap:8px;margin-left:auto;background:#101e27;border:1px solid var(--borde);padding:10px 12px;border-radius:5px;min-width:0}.cuenta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:#aabac5;font-size:12px}.estado-conexion{width:6px;height:6px;border-radius:50%;background:#7ea6be;flex-shrink:0}main{max-width:1600px;margin:auto;padding:24px 22px;min-height:calc(100vh - 126px)}.tarjeta{background:var(--panel);border:1px solid var(--borde);padding:22px;border-radius:7px;margin-bottom:18px}.encabezado{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}h2{font-size:19px;font-weight:600;margin:0 0 18px}.encabezado h2{margin:0}.sobrelinea{display:block;font-size:10px;letter-spacing:1.7px;color:var(--muted);margin-bottom:8px}.encabezado-resumen{margin:26px 0 18px}p{line-height:1.6}.sutil{color:var(--muted);font-size:13px}.indicadores{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.indicador{background:var(--panel);border:1px solid var(--borde);border-radius:6px;padding:20px 22px;display:flex;flex-direction:column-reverse;gap:12px}.indicador strong{font-size:32px;font-weight:500;color:#edf5fa;font-variant-numeric:tabular-nums}.indicador span{color:var(--muted);font-size:12px}label{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:#c2ced7}input,select{width:100%;padding:10px 12px;border:1px solid var(--borde);border-radius:5px;background:var(--campo);color:var(--texto);min-height:41px}input::placeholder{color:#8397a5}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid #6ab8ed;outline-offset:3px}input:read-only{color:var(--muted)}.fila{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.filtros{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.filtros>div{flex:1;min-width:200px}.barra-busqueda{padding:16px;background:#0a141b;border:1px solid var(--borde);border-radius:5px;margin-bottom:20px}.barra-busqueda input{max-width:540px}.tabla{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;font-weight:600;color:#a5bac8;background:#132530;letter-spacing:.5px}th,td{padding:12px 14px;border-bottom:1px solid #203440;white-space:nowrap}td{font-size:13px}tbody tr:nth-child(even){background:#0e1b23}tbody tr:hover{background:#162b38}td:first-child{font-weight:500;color:#edf3f7}td button{font-size:12px;padding:6px 11px;min-height:30px;margin:2px}.etiqueta{border-radius:4px;background:#16362f;color:#8ad1b9;border:1px solid #275346;padding:4px 8px;font-size:11px;display:inline-block}.etiqueta.pendiente{background:#342e1c;color:#dac58a;border-color:#52472b}.etiqueta.cerrada{background:#22303a;color:#aab8c1;border-color:#384a57}.peligro{background:#312024;color:#eca9ac;border-color:#5b3439}.peligro:hover{background:#502b32}.vacio{padding:38px;text-align:center;color:var(--muted)}.paginacion{display:flex;align-items:center;justify-content:end;gap:12px;margin-top:18px;font-size:12px;color:var(--muted)}[hidden]{display:none!important}#mensaje{position:sticky;top:10px;z-index:10;background:#16362f;color:#a8e0cd;padding:13px 16px;border:1px solid #305849;border-radius:5px;margin-bottom:18px;overflow-wrap:anywhere}#mensaje.error{background:#352126;color:#f2b5b7;border-color:#694047}dialog{background:var(--panel);border:1px solid #3c596b;border-radius:8px;padding:25px;width:min(620px,94vw);max-height:92vh;overflow:auto;color:var(--texto);box-shadow:0 24px 80px #0008}dialog::backdrop{background:#02070bbd}dialog h2{padding-bottom:16px;border-bottom:1px solid var(--borde)}.acciones{display:flex;gap:10px;justify-content:end;margin-top:24px;flex-wrap:wrap}.credencial{background:#12364c;border:1px solid #326480;border-radius:8px;color:white;padding:26px;text-align:center}.credencial h3{font-size:24px;margin:8px 0}.credencial .qr{padding:16px;background:white;border-radius:5px;display:inline-block;margin:20px 0}.qr canvas{display:block;width:220px;height:220px}video{width:100%;max-height:320px;border-radius:6px;background:#02070b}.ayuda{padding:12px 14px;border-left:2px solid #377fb5;background:#11232e;color:#aec4d3;font-size:13px}.resultado{padding:18px;border:1px solid #305849;border-radius:5px;background:#16362f;color:#a8e0cd;margin-top:20px}.resultado strong{display:block;font-size:22px}#proximas p{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--borde);padding:14px 0;margin:0;color:var(--muted)}#proximas p:last-child{border:0}#proximas p strong{color:var(--texto)}footer{padding:14px 22px;border-top:1px solid #1b2c37;font-size:10px;letter-spacing:1.2px;color:#758c9b}@media(max-width:1100px){.barra-superior{flex-wrap:wrap;gap:12px}.cuenta{margin-left:auto}nav{order:3;width:100%;border-radius:6px;overflow:auto}nav button{flex:1}.marca{border:0}}@media(max-width:600px){.barra-superior{padding:12px}.marca{padding:0}.marca small{display:none}.cuenta{max-width:150px;padding:8px}#actualizar{padding:7px 10px}#actualizar span{display:none}nav button{padding:8px;font-size:12px}.icono{display:none}main{padding:18px 12px}.indicadores{grid-template-columns:repeat(2,1fr);gap:8px}.indicador{padding:16px}.indicador strong{font-size:28px}.fila{grid-template-columns:1fr}.tarjeta{padding:16px}.encabezado{flex-wrap:wrap}.encabezado button{font-size:12px}th,td{padding:10px}.paginacion{justify-content:center}.filtros>div{min-width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{body>*:not(dialog){display:none!important}dialog{display:block!important;position:static;border:0;margin:auto;max-height:none;background:white;box-shadow:none}dialog>*:not(.credencial){display:none!important}dialog::backdrop{display:none}.credencial{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* Tema claro: mismos controles y jerarquía que el panel oscuro. */
:root[data-tema=claro]{color-scheme:light;--azul:#246394;--turquesa:#23669b;--fondo:#edf2f5;--panel:#fff;--campo:#f8fafc;--borde:#cbd7df;--texto:#223746;--muted:#586f7e}
[data-tema=claro] .barra-superior{background:#fff}[data-tema=claro] .marca svg{stroke:#23669b}[data-tema=claro] .cuenta,[data-tema=claro] .secundario{background:#f1f5f8;color:#304f63}[data-tema=claro] .cuenta small{color:#586f7e}[data-tema=claro] .secundario:hover,[data-tema=claro] nav button:hover{background:#e4edf4;color:#223746}[data-tema=claro] .barra-busqueda{background:#f3f7fa}[data-tema=claro] label{color:#304f63}[data-tema=claro] th{background:#e6eef4;color:#425e70}[data-tema=claro] th,[data-tema=claro] td{border-color:#dce5eb}[data-tema=claro] td:first-child{color:#223746}[data-tema=claro] tbody tr:nth-child(even){background:#f6f9fb}[data-tema=claro] tbody tr:hover{background:#eaf3f9}[data-tema=claro] .ayuda{background:#edf5fb;color:#425e70}[data-tema=claro] footer{border-color:#cbd7df;color:#586f7e}[data-tema=claro] .etiqueta{background:#e3f3eb;color:#24634a;border-color:#bddbcd}[data-tema=claro] .etiqueta.pendiente{background:#fff4d9;color:#775b18;border-color:#e8d8a9}[data-tema=claro] .etiqueta.cerrada{background:#e9eef2;color:#536978;border-color:#cbd7df}[data-tema=claro] .peligro{background:#fff0f1;color:#a43b48;border-color:#e3bdc3}[data-tema=claro] #mensaje,[data-tema=claro] .resultado{background:#e3f3eb;color:#24634a;border-color:#bddbcd}[data-tema=claro] #mensaje.error{background:#fff0f1;color:#a43b48;border-color:#e3bdc3}
[data-tema=claro] nav button[aria-selected=true]{background:#225f90;border-color:#3c83b8;color:#fff}

[hidden]{display:none!important}.acceso{max-width:420px;margin:10vh auto;padding:32px}.acceso input{width:100%;box-sizing:border-box;margin-bottom:18px}.acceso button{width:100%}#errorLogin{color:#df5465}

.mayusculas{text-transform:uppercase}.margen-superior{margin-top:16px}

.acciones-cuenta{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.acciones-cuenta .cuenta{margin-left:0}#salir{order:9}#dialogoAtleta{width:min(820px,94vw)}#formularioAtleta fieldset{border:1px solid var(--borde);border-radius:6px;margin:0 0 20px;padding:18px}#formularioAtleta legend{padding:0 8px;color:var(--texto);font-weight:600}.campos-atleta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:600px){.acciones-cuenta{gap:6px;width:100%}.campos-atleta{grid-template-columns:1fr}#formularioAtleta fieldset{padding:12px}}

/* Opción 2: marino y turquesa, con SweetAlert centrado. */
:root{--azul:#28d4e9;--turquesa:#17c7db;--fondo:#03121f;--panel:#091d2d;--campo:#091a2a;--borde:#1c3d53;--texto:#e7f1fa;--muted:#9ab3c9}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(ellipse at 85% 5%,#0c3040 0,transparent 50%),var(--fondo);font-size:14px}
button,.boton{border-radius:8px;background:var(--turquesa);border-color:#27d5e7;color:#032330;min-height:42px;padding:11px 17px;font-weight:650;box-shadow:0 3px 12px #00bdd00a}button:hover{background:#48deed;border-color:#6be5ef}.secundario{background:#0a1b2c;color:#c7dced;border-color:var(--borde);box-shadow:none}.secundario:hover{background:#102d43;border-color:#2c6880;color:#e7f8ff}
.barra-superior{background:#051725eb;border-top:0;padding:14px 28px;gap:24px;min-height:78px}.marca{border-right:1px solid var(--borde);padding-right:26px}.marca svg{stroke:#2ad5e5}.marca h1{font-size:21px;letter-spacing:1.1px}.marca small{font-size:9px;letter-spacing:1.8px;text-transform:uppercase}nav{border:0;border-radius:0;padding:0;gap:10px}nav button{border-radius:0;background:transparent;color:var(--muted);padding:16px 13px;box-shadow:none;position:relative}nav button[aria-selected=true]{background:transparent;color:#2ad4e6;border-color:transparent}nav button[aria-selected=true]:after{content:"";position:absolute;height:3px;background:#22d2e5;bottom:-14px;left:10px;right:10px}nav button:hover{background:#0c283a;color:#e6fbff}.acciones-cuenta{gap:8px}.acciones-cuenta button{font-size:12px;padding:10px 12px}.cuenta{border-radius:8px;background:#091d2d;padding:13px 12px}.estado-conexion{background:#20c8d7;box-shadow:0 0 8px #20c8d744}.cuenta small{color:#c5d7e7}#salir{color:#ff827c;border-color:#543e4d;background:#111f2d}#salir:hover{background:#352732}
main{max-width:1600px;padding:30px 28px}.tarjeta{border-radius:12px;border-color:var(--borde);background:linear-gradient(145deg,#0b2031,#081b2b);box-shadow:0 12px 32px #00000012;padding:26px}.encabezado h2{font-size:27px;letter-spacing:-.7px}h2{letter-spacing:-.4px}.sobrelinea{color:#5ebdce;letter-spacing:2px}.encabezado-resumen{margin:10px 0 24px}.panel-atletas{padding:0;overflow:hidden}.heroe-atletas{padding:34px 28px 25px;margin:0;background:radial-gradient(ellipse at 85% 20%,#11617440,transparent 55%),linear-gradient(120deg,#071c2c,#0a2a3d);border-bottom:1px solid var(--borde);position:relative;overflow:hidden}.heroe-atletas:after{content:"";position:absolute;width:460px;height:180px;right:-80px;top:-110px;border:22px solid #19a6bd16;box-shadow:0 0 0 20px #19a6bd09,0 0 0 42px #19a6bd05;border-radius:50%;transform:rotate(-15deg);pointer-events:none}.heroe-atletas h2{font-size:38px;letter-spacing:-1.2px;margin:0}.heroe-atletas p{font-size:16px;color:#b3cada;margin:10px 0 0}.heroe-atletas button{position:relative;z-index:1;white-space:nowrap}.panel-atletas .barra-busqueda{margin:22px 26px;background:transparent;padding:0;border:0}.barra-busqueda label{color:var(--muted);font-size:12px}.barra-busqueda input{max-width:680px}.panel-atletas .tabla{margin:0 26px;border:1px solid var(--borde);border-radius:9px}.panel-atletas .paginacion{padding:0 26px 22px}.identidad-atleta{display:flex;align-items:center;gap:13px}.avatar-atleta{display:grid;place-items:center;min-width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#1b5276,#11334e);border:1px solid #286485;color:#d9f4ff;font-size:12px;font-weight:500}.identidad-atleta strong{font-size:13px;font-weight:550}.membresia-atleta{display:inline-block;padding:5px 10px;border-radius:20px;background:#0c393e;color:#64d9ce;font-size:11px;border:1px solid #175354}th{background:#0b2437;font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#9fbdd3}th,td{padding:14px 16px;border-color:#19374c}td{color:#bcd1e2}tbody tr:nth-child(even){background:#0b2234}tbody tr:hover{background:#103047}td:first-child{color:#e4eef9}input,select{min-height:44px;border-radius:7px;background:var(--campo);border-color:var(--borde)}input:focus,select:focus,button:focus-visible,a:focus-visible{outline-color:#2ad6e5}label{color:#bed1e1}footer{border-color:var(--borde);color:#7192aa}
/* Modal centrado en computadora y teléfono. */
.swal2-container{padding:20px!important;background:#010a13bf!important;backdrop-filter:blur(5px)}.swal2-container .swal2-popup.modal-alberca{display:block!important;border:1px solid #28536c;border-radius:18px;background:linear-gradient(145deg,#0b2538,#071a2c);color:var(--texto);padding:30px;box-shadow:0 30px 120px #0009;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow-y:auto}.swal2-html-container.contenido-modal-alberca{margin:0!important;padding:0!important;color:inherit!important;font-size:14px!important;text-align:left!important;overflow:visible!important}.contenido-modal-alberca dialog{display:block;position:static;inset:auto;width:100%!important;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;overflow:visible}.contenido-modal-alberca h2{font-size:25px;letter-spacing:-.5px;margin:0 36px 24px 0;padding:0 0 20px;border-bottom:1px solid var(--borde)}.swal2-popup.modal-alberca .swal2-close{position:absolute;right:14px;top:14px;width:34px;height:34px;border:0;border-radius:8px;color:#a9c1d3;background:transparent;box-shadow:none;font-size:28px}.swal2-popup.modal-alberca .swal2-close:hover{color:#fff;background:#193b51}.modal-alberca .acciones{padding-top:20px;margin-top:20px;border-top:1px solid var(--borde)}#formularioAtleta fieldset{padding:18px;border-radius:10px;margin:0 0 22px;background:#0a20320f}#formularioAtleta legend{font-size:13px;font-weight:600;color:#42d4e1;padding:0 10px}.campos-atleta{gap:16px 20px}.acceso{border-top:3px solid #22d2e5;border-radius:16px;padding:32px}.acceso h1{letter-spacing:3px}.acceso p{color:var(--muted)}
[data-tema=claro] body{background:#edf3f7}[data-tema=claro] .tarjeta{background:#fff}[data-tema=claro] .heroe-atletas{background:linear-gradient(120deg,#e6f4f8,#f5fafd)}[data-tema=claro] .heroe-atletas p{color:#526e80}[data-tema=claro] nav button[aria-selected=true]{background:transparent;color:#12798c;border:0}[data-tema=claro] .swal2-popup.modal-alberca{background:#fff;color:#203a4b;border-color:#cbdce7}[data-tema=claro] .avatar-atleta{background:#d8edf6;color:#1c6584;border-color:#bbdbe9}[data-tema=claro] .membresia-atleta{background:#e2f6f2;color:#177163;border-color:#bcdfd6}[data-tema=claro] #salir{background:#fff1f1;color:#a74343;border-color:#e8c6c6}[data-tema=claro] #formularioAtleta legend{color:#177f91}
@media(max-width:1250px){.barra-superior{flex-wrap:wrap;gap:14px}.barra-superior nav{order:3;width:100%;justify-content:center}.barra-superior nav button{flex:1}.barra-superior nav button[aria-selected=true]:after{bottom:0}.acciones-cuenta{margin-left:auto}}@media(max-width:600px){main{padding:18px 12px}.barra-superior{padding:14px 12px}.marca h1{font-size:18px}.acciones-cuenta{width:100%;justify-content:flex-end}.acciones-cuenta button{font-size:11px;padding:9px}.heroe-atletas{padding:24px 18px;gap:20px}.heroe-atletas h2{font-size:30px}.heroe-atletas p{font-size:14px}.panel-atletas .barra-busqueda{margin:18px}.panel-atletas .tabla{margin:0 12px}.avatar-atleta{min-width:30px;height:30px}.swal2-container{padding:10px!important}.swal2-container .swal2-popup.modal-alberca{padding:24px 18px;max-height:calc(100dvh - 20px);max-width:calc(100vw - 20px);border-radius:14px}.campos-atleta{grid-template-columns:1fr}.modal-alberca .acciones{position:sticky;bottom:-24px;background:var(--panel);padding:14px 0}.tarjeta{padding:20px}.tarjeta.panel-atletas{padding:0}}
@media print{.swal2-container{position:static!important;display:block!important;background:white!important;backdrop-filter:none!important}.swal2-popup.modal-alberca{max-height:none!important;box-shadow:none!important;border:0!important;background:white!important}.swal2-close{display:none!important}.contenido-modal-alberca dialog{display:block!important}.contenido-modal-alberca dialog>*:not(.credencial){display:none!important}}

@media print{body>.swal2-container{display:block!important}}

/* Ajuste fiel a la propuesta 02: superficie marina, bordes finos, tabla amplia. */
:root{--fondo:#031321;--panel:#081d2d;--campo:#071b2b;--borde:#203e54;--texto:#dfecfb;--muted:#9fb8d1;--turquesa:#16cce1}
body{background:#031321}main{max-width:none;width:100%;padding:20px 16px}.barra-superior{padding:10px 20px;gap:18px;background:#061725;border-bottom-color:#18364a}.marca{padding-right:22px}.marca h1{font-size:23px}nav button{font-size:13px}.tarjeta{background:#071b2b;box-shadow:none}.tarjeta.panel-atletas{border:0;background:transparent;overflow:visible}.heroe-atletas{min-height:184px;margin:0;padding:26px 18px 24px;border:0;border-radius:0;background:linear-gradient(90deg,#031321 10%,#03132188 48%,#03132112),linear-gradient(0deg,#031321,transparent 60%),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}.heroe-atletas:after{display:none}.heroe-atletas h2{font-size:40px;font-weight:650;letter-spacing:-1px}.heroe-atletas .sobrelinea{display:none}.heroe-atletas p{font-size:19px;color:#bfd2e5;margin-top:8px}.heroe-atletas button{align-self:flex-end}.panel-atletas .barra-busqueda{margin:-3px 18px 20px;max-width:720px;position:relative}.barra-busqueda label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.barra-busqueda input{height:46px;background:#091f30d9;border-color:#456b86;padding-left:18px;max-width:none}.panel-atletas .tabla{margin:0 4px;border:1px solid #25475e;border-radius:9px;background:#071b2b}.panel-atletas .paginacion{padding:16px 12px;margin:0;background:#071b2b;border:1px solid var(--borde);border-top:0;border-radius:0 0 9px 9px}.tabla table{table-layout:auto}.tabla th{background:#0c2335;color:#c1d4e9;font-size:12px;font-weight:500;text-transform:none;letter-spacing:0}.tabla th,.tabla td{padding:11px 18px}.tabla tbody tr:nth-child(even){background:#0a2031}.tabla tbody tr:hover{background:#0f2c40}.identidad-atleta{gap:14px}.identidad-atleta strong{font-size:14px;font-weight:500;display:block}.avatar-atleta{min-width:40px;height:40px;background:linear-gradient(145deg,#235b86,#183e63);border:0;font-size:13px}.curp-atleta{display:block;color:#829fb7;font-size:10px;margin-top:4px;letter-spacing:.3px}.membresia-atleta{background:#073c3e;color:#57d4c7;padding:6px 12px;font-size:12px;border:0}.acciones-atleta{display:flex;align-items:center;gap:8px}.acciones-atleta .accion-icono{display:inline-grid;place-items:center;width:34px;height:34px;min-height:34px;padding:7px;margin:0;background:#0c2437;color:#c3d9ec;border:1px solid #284a62;border-radius:6px;box-shadow:inset 0 0 10px #24456322}.accion-icono svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.acciones-atleta .accion-icono:hover{background:#173b53;border-color:#3a91ac;color:#49d8e7}.acciones-atleta .accion-eliminar{color:#f36569}.acciones-atleta .accion-eliminar:hover{background:#35212c;border-color:#9e4a55;color:#ff8e91}.tabla th:last-child,.tabla td:last-child{width:145px}.cuenta{background:#091d2d}.swal2-container .swal2-popup.modal-alberca{padding:23px 26px;max-width:calc(100vw - 40px);border-radius:13px;background:#0a2032;border-color:#31516a}.contenido-modal-alberca h2{font-size:24px;margin-bottom:16px;padding-bottom:14px}.campos-atleta{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 16px}#formularioAtleta fieldset{margin:0 0 13px;padding:12px 15px 14px;background:#0b243333}#formularioAtleta legend{font-size:12px;color:#d8e7f6}.modal-alberca input,.modal-alberca select{min-height:36px;height:36px;padding:7px 10px;font-size:12px;background:#071b2b;border-color:#35556c}.modal-alberca label{font-size:11px;margin-bottom:5px;color:#c8d9e9}.modal-alberca .acciones{padding-top:13px;margin-top:12px}.modal-alberca .acciones button{min-height:37px;font-size:12px;padding:8px 15px}.swal2-validation-message{background:#3d2530!important;color:#ffd0d5!important;font-size:13px!important}.modal-alberca input:read-only{background:#10283a;color:#b9cbdc}
[data-tema=claro] .heroe-atletas{background:linear-gradient(90deg,#edf3f7 5%,#edf3f766 70%),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}[data-tema=claro] .panel-atletas .tabla,[data-tema=claro] .panel-atletas .paginacion{background:#fff}[data-tema=claro] .barra-busqueda input{background:#fff}[data-tema=claro] .acciones-atleta .accion-icono{background:#eef6fa;color:#385d75}[data-tema=claro] .acciones-atleta .accion-eliminar{color:#ba454e}[data-tema=claro] .modal-alberca input,[data-tema=claro] .modal-alberca select{background:#f6fafd;color:#263e51;border-color:#c1d3e0}[data-tema=claro] .modal-alberca label,[data-tema=claro] #formularioAtleta legend{color:#29495e}
@media(min-width:1800px){main{padding:20px 20px}.heroe-atletas{min-height:200px}.tabla th,.tabla td{padding:13px 20px}}@media(max-width:1000px){.campos-atleta{grid-template-columns:repeat(3,minmax(0,1fr))}.heroe-atletas h2{font-size:34px}}@media(max-width:760px){main{padding:12px 8px}.heroe-atletas{padding:20px 12px;min-height:170px;background-position:65% 22%}.heroe-atletas h2{font-size:29px}.heroe-atletas p{font-size:15px;max-width:70%}.panel-atletas .barra-busqueda{margin:5px 8px 16px}.panel-atletas .tabla{margin:0}.campos-atleta{grid-template-columns:repeat(2,minmax(0,1fr))}.swal2-container .swal2-popup.modal-alberca{padding:20px 16px;max-width:calc(100vw - 20px)}.tabla th,.tabla td{padding:10px 12px}}@media(max-width:440px){.campos-atleta{grid-template-columns:1fr}.heroe-atletas p{max-width:100%}}

.marca svg{width:52px;height:35px;color:#25c7e1;flex-shrink:0}

/* Cabecera compacta fija; el desplazamiento de atletas ocurre dentro de la tabla. */
#panel{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
#panel>.barra-superior{flex:0 0 auto;position:relative;z-index:20}
#panel>main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:auto;padding:10px 16px}
#panel>footer{flex:0 0 auto;padding:9px 20px}
#atletas{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
#atletas .panel-atletas{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin:0}
#atletas .heroe-atletas{flex:0 0 auto;min-height:116px;padding:17px 18px 13px}
#atletas .heroe-atletas h2{font-size:33px;line-height:1.15}
#atletas .heroe-atletas p{font-size:16px;line-height:1.4;margin:7px 0 0}
#atletas .heroe-atletas button{align-self:center}
#atletas .barra-busqueda{flex:0 0 auto;margin:0 18px 12px}
#atletas .barra-busqueda input{height:40px;min-height:40px}
#atletas .tabla{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#2a5068 #071b2b;scrollbar-width:thin}
#atletas .tabla th{position:sticky;top:0;z-index:2;background:#0c2335;box-shadow:0 1px 0 #25475e}
#atletas .paginacion{flex:0 0 auto;padding:10px 12px}
[data-tema=claro] #atletas .tabla th{background:#e6eef4}
@media(max-width:760px){#panel>main{padding:7px 8px}#atletas .heroe-atletas{min-height:105px;padding:12px}#atletas .heroe-atletas h2{font-size:27px}#atletas .heroe-atletas p{font-size:14px;max-width:100%}#atletas .barra-busqueda{margin:0 8px 10px}#atletas .heroe-atletas{flex-wrap:nowrap;gap:12px}#atletas .heroe-atletas button{font-size:11px;padding:9px;white-space:nowrap}#panel>footer{padding:7px 12px}}
@media print{#panel{display:none!important}}

/* Administración de competencias y búsqueda de inscripción. */
.gestion-competencia{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.bloque-gestion{border:1px solid var(--borde);border-radius:9px;padding:16px;background:#071b2b}.bloque-gestion h3{font-size:14px;margin:0 0 14px;color:#59d5e3}.bloque-gestion .filtros{margin-bottom:0}.resumen-competencia{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px}.resumen-competencia>div{padding:16px;border:1px solid var(--borde);border-radius:9px;background:#0c293b}.resumen-competencia strong{display:block;font-size:21px;margin-bottom:6px;color:#cceff7}.resumen-competencia span{font-size:11px;color:var(--muted)}#detalleCompetencia .encabezado{margin-bottom:18px}#detalleCompetencia .encabezado h2{margin-bottom:0;border:0;padding:0}#detalleCompetencia h3{font-size:15px;margin:0}#detalleCompetencia .tabla-gestion{max-height:36vh;overflow:auto;border:1px solid var(--borde);border-radius:8px}#detalleCompetencia .tabla-gestion th{position:sticky;top:0;z-index:1}#detalleCompetencia .sutil{font-size:12px}#dialogoInscripcion>p{margin-top:-4px}.resultados-inscripcion{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:5px}.resultado-atleta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:16px;border:1px solid var(--borde);border-radius:9px;background:#071b2b}.resultado-atleta h3{margin:0 0 12px;font-size:15px;font-weight:600;color:#e0edf7}.resultado-atleta dl{margin:0;display:grid;grid-template-columns:1.5fr 1.2fr 1.2fr .7fr;gap:12px}.resultado-atleta dt{font-size:10px;color:#88a8bf;margin-bottom:5px}.resultado-atleta dd{font-size:12px;color:#c4dceb;margin:0;overflow-wrap:anywhere}.resultado-atleta button{padding:9px 14px;min-height:36px;font-size:12px}#buscarInscripcion{height:44px;min-height:44px;font-size:14px}[data-tema=claro] .bloque-gestion,[data-tema=claro] .resultado-atleta{background:#f6fafc}[data-tema=claro] .resumen-competencia>div{background:#edf5fa}[data-tema=claro] .resumen-competencia strong,[data-tema=claro] .resultado-atleta h3,[data-tema=claro] .resultado-atleta dd{color:#25465c}@media(max-width:760px){.gestion-competencia{grid-template-columns:1fr}.resumen-competencia{gap:7px}.resumen-competencia>div{padding:12px}.resumen-competencia strong{font-size:17px}.resultado-atleta dl{grid-template-columns:1fr 1fr}.resultado-atleta{gap:10px;padding:12px}.resultados-inscripcion{max-height:50vh}}

/* Tema claro: cobertura final de todas las superficies y estados. */
:root[data-tema=claro]{--fondo:#edf3f7;--panel:#ffffff;--campo:#f6f9fc;--borde:#bed0de;--texto:#213c50;--muted:#506b80;--azul:#106580;--turquesa:#087f96}
[data-tema=claro] body,[data-tema=claro] #panel,[data-tema=claro] main{background:#edf3f7;color:#213c50}
[data-tema=claro] button,[data-tema=claro] .boton{background:#126985;border-color:#126985;color:#fff;box-shadow:none}
[data-tema=claro] button:hover{background:#0c526b;border-color:#0c526b;color:#fff}
[data-tema=claro] button:disabled{opacity:.6}
[data-tema=claro] button.secundario,[data-tema=claro] .cuenta{background:#f0f5f9;border-color:#bdcfdd;color:#294e67}
[data-tema=claro] button.secundario:hover{background:#dfeaf2;border-color:#8aaec5;color:#173e57}
[data-tema=claro] .barra-superior{background:#fff;border-color:#c2d3df}
[data-tema=claro] nav button{background:transparent;color:#4b677c;border-color:transparent;box-shadow:none}
[data-tema=claro] nav button:hover{background:#e6f1f7;color:#135c77}
[data-tema=claro] nav button[aria-selected=true]{background:transparent;color:#086c82;border-color:transparent}
[data-tema=claro] .marca,[data-tema=claro] .marca h1{color:#213c50}
[data-tema=claro] .marca small,[data-tema=claro] .cuenta small{color:#506b80}
[data-tema=claro] #salir{background:#fff1f1;color:#a13342;border-color:#e7bdc4}
[data-tema=claro] #salir:hover{background:#fbe1e6;color:#812333;border-color:#d596a2}
[data-tema=claro] .tarjeta,[data-tema=claro] .panel-atletas .tabla,[data-tema=claro] .panel-atletas .paginacion{background:#fff;border-color:#b8cddd;color:#213c50}
[data-tema=claro] .tarjeta.panel-atletas{background:transparent}
[data-tema=claro] .heroe-atletas{background:linear-gradient(90deg,#edf3f7 8%,#edf3f7dd 40%,#edf3f766 70%,#edf3f726),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}
[data-tema=claro] .heroe-atletas h2{color:#1d3a4e}
[data-tema=claro] .heroe-atletas p,[data-tema=claro] .sutil,[data-tema=claro] .sobrelinea,[data-tema=claro] .vacio,[data-tema=claro] .paginacion{color:#506b80}
[data-tema=claro] input,[data-tema=claro] select,[data-tema=claro] .modal-alberca input,[data-tema=claro] .modal-alberca select{background:#f7fafc;color:#213c50;border-color:#a8c1d3}
[data-tema=claro] input::placeholder{color:#5c7588;opacity:1}
[data-tema=claro] input:read-only,[data-tema=claro] .modal-alberca input:read-only{background:#edf3f7;color:#36576d}
[data-tema=claro] label,[data-tema=claro] .modal-alberca label{color:#294c64}
[data-tema=claro] .tabla table{background:#fff;color:#294b64}
[data-tema=claro] .tabla th,[data-tema=claro] #atletas .tabla th{background:#e1edf5;color:#274d68;border-color:#b8cddd;box-shadow:0 1px 0 #b8cddd}
[data-tema=claro] .tabla td{color:#355b74;border-color:#d5e2eb}
[data-tema=claro] .tabla td:first-child,[data-tema=claro] .identidad-atleta strong{color:#213c50}
[data-tema=claro] .tabla tbody tr{background:#fff}
[data-tema=claro] .tabla tbody tr:nth-child(even){background:#f0f6fa}
[data-tema=claro] .tabla tbody tr:hover,[data-tema=claro] .tabla tbody tr:nth-child(even):hover{background:#e0f0f5}
[data-tema=claro] .curp-atleta{color:#526f84}
[data-tema=claro] .avatar-atleta{background:#d9edf6;color:#1b5b79;border-color:#bfdce9}
[data-tema=claro] .membresia-atleta{background:#daf1ea;color:#17614f;border-color:#b8dbce}
[data-tema=claro] .acciones-atleta .accion-icono{background:#f0f6fa;color:#305f7c;border-color:#a8c2d5;box-shadow:none}
[data-tema=claro] .acciones-atleta .accion-icono:hover{background:#d9edf5;color:#124f70;border-color:#6e9eb9}
[data-tema=claro] .acciones-atleta .accion-eliminar{color:#b33747}
[data-tema=claro] .acciones-atleta .accion-eliminar:hover{background:#fbe4e8;color:#8e2031;border-color:#d797a4}
[data-tema=claro] .swal2-container .swal2-popup.modal-alberca{background:#fff;color:#213c50;border-color:#b6ccdc;box-shadow:0 24px 90px #1c3a4e44}
[data-tema=claro] .contenido-modal-alberca dialog{background:transparent;color:#213c50}
[data-tema=claro] .contenido-modal-alberca h2,[data-tema=claro] .contenido-modal-alberca h3{color:#213c50;border-color:#cfdee8}
[data-tema=claro] .swal2-popup.modal-alberca .swal2-close{background:transparent;color:#4e6f87;border:0}
[data-tema=claro] .swal2-popup.modal-alberca .swal2-close:hover{background:#e5eff5;color:#173f59}
[data-tema=claro] #formularioAtleta fieldset,[data-tema=claro] .bloque-gestion,[data-tema=claro] .resultado-atleta{background:#f7fafc;border-color:#c4d6e3}
[data-tema=claro] #formularioAtleta legend,[data-tema=claro] .bloque-gestion h3{color:#155f79}
[data-tema=claro] .resumen-competencia>div{background:#eaf3f9;border-color:#c3d7e5}
[data-tema=claro] .resumen-competencia strong,[data-tema=claro] .resultado-atleta h3,[data-tema=claro] .resultado-atleta dd{color:#254b65}
[data-tema=claro] .resumen-competencia span,[data-tema=claro] .resultado-atleta dt{color:#526f84}
[data-tema=claro] .modal-alberca .acciones{background:#fff;border-color:#ccdde9}
[data-tema=claro] .ayuda{background:#e4f2f8;color:#294f67;border-color:#397fa1}
[data-tema=claro] .etiqueta{background:#def2e9;color:#1b5c46;border-color:#b3d8c8}
[data-tema=claro] .etiqueta.pendiente{background:#fff1cf;color:#705311;border-color:#dfcf9e}
[data-tema=claro] .etiqueta.cerrada{background:#e4ecf2;color:#455f72;border-color:#bfceda}
[data-tema=claro] button.peligro{background:#fff0f2;color:#9d3043;border-color:#dfa8b5}
[data-tema=claro] button.peligro:hover{background:#f9dce3;color:#7e2032}
[data-tema=claro] #mensaje,[data-tema=claro] .resultado{background:#e0f2e9;color:#20583f;border-color:#a8d2bd}
[data-tema=claro] #mensaje.error,[data-tema=claro] .swal2-validation-message{background:#fce8ed!important;color:#8c2940!important;border-color:#e6acba}
[data-tema=claro] #errorLogin{color:#a02f45}
[data-tema=claro] .swal2-title,[data-tema=claro] .swal2-html-container{color:inherit}
[data-tema=claro] .credencial{background:#12364c;color:#fff;border-color:#326480}
[data-tema=claro] .credencial h3,[data-tema=claro] .credencial p{color:#fff}
[data-tema=claro] footer{background:#edf3f7;color:#526f84;border-color:#c1d3df}

.dias-elegidos {display:flex; flex-wrap:wrap; gap:8px; margin:12px 0;}

/* Administración compacta: configuración, jornada y tabla. */
#detalleCompetencia .cabecera-gestion{margin-bottom:14px;padding-right:32px;align-items:flex-start}
#detalleCompetencia .cabecera-gestion h2{font-size:23px;line-height:1.2;margin:0}
#detalleCompetencia .cabecera-gestion p{margin:5px 0 0;line-height:1.4}
#detalleCompetencia .gestion-compacta{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.65fr);gap:10px;margin-bottom:12px;align-items:stretch}
#detalleCompetencia .bloque-gestion{padding:12px;border-radius:8px;min-width:0}
#detalleCompetencia .bloque-gestion h3{font-size:13px;line-height:1.3;margin:0 0 9px}
#detalleCompetencia button{min-height:34px;padding:7px 11px;font-size:12px;line-height:1.3}
#detalleCompetencia input,#detalleCompetencia select{min-height:35px;padding:7px 9px;font-size:12px;max-width:100%}
#detalleCompetencia label{font-size:11px;margin-bottom:5px}
#detalleCompetencia .control-estado{display:flex;gap:7px;align-items:center}
#detalleCompetencia .control-estado select{min-width:0;flex:1}
#detalleCompetencia .control-estado button{flex-shrink:0}
#detalleCompetencia .nota-estado{margin:8px 0 0;font-size:11px}
#detalleCompetencia #estadoRegistro{margin:0 0 10px;line-height:1.4;font-size:12px}
#detalleCompetencia .titulo-dias{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
#detalleCompetencia .titulo-dias h3{margin:0}
#detalleCompetencia .titulo-dias button{white-space:nowrap;min-height:32px;padding:6px 9px}
#detalleCompetencia .ayuda-dias{font-size:11px;line-height:1.4;margin:0 0 8px}
#detalleCompetencia .controles-dias{display:flex;flex-wrap:nowrap;gap:7px;margin:0;align-items:flex-end}
#detalleCompetencia .controles-dias>div{min-width:0;flex:1}
#detalleCompetencia .controles-dias button{white-space:nowrap;flex-shrink:0}
#detalleCompetencia .dias-elegidos{gap:6px;margin:8px 0 0;max-height:90px;overflow:auto;padding:2px}
#detalleCompetencia .dias-elegidos button{min-height:30px;padding:5px 8px;font-size:11px;border-radius:6px;font-variant-numeric:tabular-nums}
#detalleCompetencia .consulta-jornada{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(0,2fr);align-items:center;gap:12px;margin-bottom:14px}
#detalleCompetencia .selector-jornada{min-width:0}
#detalleCompetencia .resumen-competencia{gap:8px;margin:0}
#detalleCompetencia .resumen-competencia>div{padding:10px 12px;display:flex;align-items:center;gap:9px;min-width:0}
#detalleCompetencia .resumen-competencia strong{font-size:21px;margin:0;line-height:1.1}
#detalleCompetencia .resumen-competencia span{font-size:11px;line-height:1.3}
#detalleCompetencia .cabecera-inscritos{margin-bottom:8px;gap:8px}
#detalleCompetencia .cabecera-inscritos h3{font-size:14px}
#detalleCompetencia .tabla-gestion{max-height:42vh}
#detalleCompetencia .acciones{margin-top:12px;padding-top:12px}
@media(max-width:950px){
 #detalleCompetencia .gestion-compacta{grid-template-columns:repeat(2,minmax(0,1fr))}
 #detalleCompetencia .bloque-dias{grid-column:1/-1}
 #detalleCompetencia .controles-dias>div{flex:0 1 250px}
 #detalleCompetencia .consulta-jornada{grid-template-columns:190px minmax(0,1fr)}
 #detalleCompetencia .resumen-competencia>div{padding:9px 8px;gap:6px}
}
@media(max-width:600px){
 #detalleCompetencia .cabecera-gestion{flex-wrap:nowrap;gap:8px;padding-right:24px;margin-bottom:12px}
 #detalleCompetencia .cabecera-gestion h2{font-size:19px;overflow-wrap:anywhere}
 #detalleCompetencia .cabecera-gestion p{font-size:11px}
 #detalleCompetencia .cabecera-gestion>button{flex-shrink:0;padding:7px 8px;font-size:11px}
 #detalleCompetencia .gestion-compacta{grid-template-columns:1fr;gap:8px}
 #detalleCompetencia .bloque-dias{grid-column:auto}
 #detalleCompetencia .bloque-gestion{padding:10px}
 #detalleCompetencia .consulta-jornada{grid-template-columns:1fr;gap:9px}
 #detalleCompetencia .controles-dias>div{min-width:0;flex:1}
 #detalleCompetencia .resumen-competencia>div{display:block;padding:9px}
 #detalleCompetencia .resumen-competencia strong{font-size:19px;margin-bottom:4px}
 #detalleCompetencia .resumen-competencia span{font-size:10px}
}

.acceso .enlace-atleta{color:#59d5e3;text-underline-offset:3px}
[data-tema=claro] .acceso .enlace-atleta{color:#126985}

.barras-pase{margin:0 auto 18px;max-width:100%;background:#fff;border-radius:5px;padding:4px;line-height:0}.barras-pase canvas{display:block;max-width:100%;height:auto;margin:auto;image-rendering:pixelated}

#detalleCompetencia .opcion-barras{display:flex;align-items:flex-start;gap:7px;line-height:1.4;margin:10px 0 0;font-size:11px}#detalleCompetencia .opcion-barras input{width:16px;height:16px;min-height:16px;margin:0;padding:0;flex:0 0 16px;accent-color:#15c7db}

/* QR y barras del mismo ancho; solo se conserva la zona de lectura interna. */
.credencial .qr,.credencial .barras-pase{display:block;width:240px;max-width:100%;padding:0;border-radius:4px;line-height:0;margin-left:auto;margin-right:auto}
.credencial .qr{margin-top:16px;margin-bottom:14px}
.credencial .barras-pase{margin-top:0;margin-bottom:16px}
.credencial .qr canvas,.credencial .barras-pase canvas,.portal-atleta .credencial .qr canvas{display:block;width:100%;max-width:100%;height:auto;image-rendering:pixelated}

/* El pase se superpone sin desmontar el formulario de inscripción. */
dialog.credencial-superpuesta{position:fixed;inset:0;margin:auto;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid #28536c;border-radius:14px;background:#0b2233;color:#dcebf6;box-shadow:0 24px 100px #0009;overflow:auto}
dialog.credencial-superpuesta::backdrop{background:#010a13b3;backdrop-filter:blur(2px)}
dialog.credencial-superpuesta h2{padding-right:32px;font-size:23px}
.cerrar-credencial-superpuesta{position:absolute;right:12px;top:12px;min-height:32px;width:32px;padding:0;border:0;background:transparent;color:var(--texto);font-size:28px;line-height:1}
.cerrar-credencial-superpuesta:hover{background:#193b51}
[data-tema=claro] dialog.credencial-superpuesta{background:#fff;color:#213c50;border-color:#b6ccdc}
[data-tema=claro] .cerrar-credencial-superpuesta{color:#4e6f87}
[data-tema=claro] .cerrar-credencial-superpuesta:hover{background:#e5eff5}
@media print{body:has(dialog.credencial-superpuesta[open])>.swal2-container{display:none!important}dialog.credencial-superpuesta{position:static;max-height:none;border:0;box-shadow:none;padding:0}}
/* Organización y selección de catálogos paginados. */
.barra-superior{flex-wrap:wrap}.barra-superior nav{order:3;flex:1 0 100%;overflow-x:auto;white-space:nowrap;padding-bottom:3px}.acciones-cuenta{margin-left:auto}.selector-catalogo[open]{display:block;position:fixed;inset:0;margin:auto;width:min(760px,calc(100vw - 24px));max-height:85dvh;overflow:auto;padding:24px;background:var(--panel);color:var(--texto,#e2eff8);border:1px solid var(--borde,#31516a);border-radius:14px}.selector-catalogo::backdrop{background:#00101dcc}.selector-catalogo .tabla{max-height:45dvh;overflow:auto}.formulario-org{text-align:left;display:grid;gap:14px}.formulario-org label{display:block}.formulario-org input,.formulario-org select{width:100%}.formulario-org .check-org{display:flex;align-items:center;gap:10px}.formulario-org .check-org input{width:auto;height:auto}.lista-permisos{display:grid;gap:10px;max-height:36dvh;overflow:auto;padding:12px;border:1px solid var(--borde);border-radius:8px}.lista-permisos label{display:flex;gap:10px;align-items:flex-start}.lista-permisos input{width:auto;height:auto}.campo-catalogo{display:flex;gap:8px;align-items:center}.campo-catalogo input{min-width:0}.tabla small{display:block}.tabla button{white-space:nowrap}
@media(max-width:650px){.barra-superior{padding:10px;gap:10px}.acciones-cuenta{flex-wrap:wrap}.formulario-org{gap:10px}}
/* Cuenta en panel lateral y administración de usuarios dentro de un único modal. */
.menu-cuenta[open]{display:block;position:fixed;inset:0 0 0 auto;margin:0;width:min(370px,92vw);height:100dvh;max-height:100dvh;padding:24px;border:0;border-left:1px solid var(--borde);border-radius:0;background:#0a2032;color:#e2eff8;animation:abrir-menu-cuenta .2s ease-out}.menu-cuenta::backdrop{background:#00101da6}.cabecera-menu{display:flex;align-items:center;justify-content:space-between;gap:12px}.menu-cuenta #cuentaCorreo{overflow-wrap:anywhere}.opciones-menu{display:grid;gap:14px;margin-top:30px}.opciones-menu button{width:100%;text-align:left}.formulario-usuario{text-align:left}.campos-usuario{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.campos-usuario .check-org{display:flex;gap:10px;align-items:center}.campos-usuario .check-org input{width:auto;min-height:0;height:auto}.equipos-elegidos{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.equipo-elegido{display:inline-flex;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--borde);border-radius:8px}.equipo-elegido button{min-height:24px;padding:0 6px}.formulario-usuario [role=alert]{color:#ff8e91}.tablaUsuarios{overflow:auto}#tablaUsuarios{max-height:46dvh;overflow:auto}#panelUsuarios #contextoUsuarios{margin-bottom:0}#usuarioEditor[hidden],#usuariosListado[hidden],#usuarioEquiposZona[hidden]{display:none!important}[data-tema=claro] .menu-cuenta{background:#f5fafc;color:#17364a}.cuenta small{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes abrir-menu-cuenta{from{transform:translateX(100%)}to{transform:translateX(0)}}@media(max-width:650px){.campos-usuario{grid-template-columns:1fr}.cuenta small{max-width:150px}}@media(prefers-reduced-motion:reduce){.menu-cuenta[open]{animation:none}}
@media print{#menuCuenta,#panelUsuarios,#dialogoSelector{display:none!important}}
.datos-origen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--borde);border-radius:8px}.datos-origen div{min-width:0}.datos-origen dt{font-size:11px;color:var(--muted)}.datos-origen dd{margin:4px 0 0;overflow-wrap:anywhere}details>summary{cursor:pointer;margin:16px 0;font-weight:600}@media(max-width:650px){.datos-origen{grid-template-columns:1fr}}
.dato-revision{display:block;color:#d99427;font-size:11px;margin-top:4px}[data-tema=claro] .dato-revision{color:#875615}
/* Superficies coherentes para modales nativos y SweetAlert en modo claro. */
:root[data-tema=claro] .selector-catalogo[open],:root[data-tema=claro] .menu-cuenta[open]{background:var(--panel);color:var(--texto);border-color:var(--borde);color-scheme:light}
:root[data-tema=claro] .swal2-container .swal2-popup{background:var(--panel);color:var(--texto);border-color:var(--borde)}
:root[data-tema=claro] .swal2-container .swal2-popup.modal-alberca{background:var(--panel);color:var(--texto);border-color:var(--borde)}
:root[data-tema=claro] .swal2-title,:root[data-tema=claro] .swal2-html-container,:root[data-tema=claro] .selector-catalogo h2,:root[data-tema=claro] .selector-catalogo label{color:var(--texto)}
:root[data-tema=claro] .selector-catalogo :is(input,select){background:var(--campo);color:var(--texto);border-color:var(--borde)}
:root[data-tema=claro] .selector-catalogo .sutil,:root[data-tema=claro] .selector-catalogo .vacio,:root[data-tema=claro] .selector-catalogo .paginacion{color:var(--muted)}
:root[data-tema=claro] .swal2-validation-message{background:#fff1ef;color:#923d32}
:root[data-tema=claro] .formulario-usuario [role=alert]{color:#963d39}
/* Cabecera en una fila desde escritorio; navegación adaptable en pantallas pequeñas. */
@media(min-width:900px){.barra-superior{flex-wrap:nowrap;gap:12px;padding:10px 16px}.barra-superior .marca{gap:8px;padding-right:10px}.barra-superior .marca h1{font-size:20px}.barra-superior .marca svg{width:32px;height:32px}.barra-superior nav{order:0;flex:1 1 auto;width:auto;min-width:0;justify-content:center;overflow-x:auto;padding-bottom:4px}.barra-superior nav button{flex:0 0 auto;padding:8px 10px;font-size:12px}.barra-superior .acciones-cuenta{flex:0 0 auto;flex-wrap:nowrap;width:auto;margin-left:0;gap:8px}.barra-superior .cuenta{max-width:180px;padding:9px}.barra-superior .acciones-cuenta button{padding:8px 10px}}
@media(min-width:900px) and (max-width:1200px){#actualizar span{display:none}.barra-superior .cuenta{max-width:135px}.barra-superior .marca small{display:none}}
@media(max-width:899px){.barra-superior{flex-wrap:wrap}.barra-superior nav{order:3;flex:1 0 100%;width:100%;overflow-x:auto}}
/* Filtro de equipos con selección múltiple en la propia tabla de atletas. */
.barra-filtros-atletas{display:flex;align-items:center;gap:12px;margin:0 8px 12px;flex:0 0 auto;overflow:visible}.multiselect-equipos{position:relative;width:min(420px,100%);min-width:220px}.multiselect-equipos>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0;padding:10px 12px;min-height:40px;border:1px solid var(--borde);border-radius:6px;background:var(--campo);color:var(--texto);list-style:none;font-weight:400}.multiselect-equipos>summary::-webkit-details-marker{display:none}.multiselect-equipos>summary:focus-visible{outline:2px solid var(--azul);outline-offset:2px}#resumenFiltroEquipos{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-filtro-equipos{position:absolute;left:0;top:calc(100% + 6px);z-index:60;width:min(460px,calc(100vw - 36px));padding:16px;border:1px solid var(--borde);border-radius:10px;box-shadow:0 12px 35px #0003;background:var(--panel);color:var(--texto)}.opciones-filtro-equipos{max-height:min(280px,35dvh);overflow-y:auto;margin:12px 0}.opcion-filtro-equipo{display:flex;align-items:center;gap:10px;padding:9px 6px;margin:0;cursor:pointer;color:var(--texto)}.opcion-filtro-equipo:hover{background:var(--campo)}.opcion-filtro-equipo input{width:18px;height:18px;min-height:18px;flex:0 0 auto;accent-color:var(--turquesa)}.acciones-filtro-equipos{display:flex;justify-content:space-between;gap:8px}.acciones-filtro-equipos button{padding:8px 10px}#errorFiltroEquipos:empty{display:none}#masFiltroEquipos{margin-bottom:10px}@media(max-width:600px){.barra-filtros-atletas{align-items:flex-start;flex-direction:column;gap:6px}.multiselect-equipos{min-width:0;width:100%}}
/* Navegación junto a la marca y espacio libre hacia los controles de cuenta. */
@media(min-width:900px){.barra-superior nav{justify-content:flex-start}.barra-superior{column-gap:18px}}
/* Imagen compartida por el título, el buscador y el filtro de equipos. */
.zona-heroe-atletas{flex:0 0 auto;background:linear-gradient(90deg,#031321 7%,#031321b0 44%,#03132120),linear-gradient(0deg,#031321a8,transparent 80%),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}
.panel-atletas .zona-heroe-atletas .heroe-atletas{background:none;min-height:104px;margin:0;padding:18px 18px 12px}
.controles-atletas{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,460px);align-items:center;gap:24px;padding:0 18px 16px}
.panel-atletas .controles-atletas .barra-busqueda{margin:0;padding:0;border:0;background:transparent;max-width:none}
.panel-atletas .controles-atletas .barra-busqueda input{width:100%;max-width:none;height:42px;background:var(--campo)}
.panel-atletas .controles-atletas .barra-filtros-atletas{margin:0;justify-content:flex-end;flex-direction:row;align-items:center;gap:12px;min-width:0}
.controles-atletas .multiselect-equipos{flex:1 1 auto;width:auto;min-width:0}
.controles-atletas .multiselect-equipos>summary{min-height:42px}
.controles-atletas .panel-filtro-equipos{left:auto;right:0}
:root[data-tema=claro] .zona-heroe-atletas{background:linear-gradient(90deg,#edf3f7 5%,#edf3f7b0 44%,#edf3f720),linear-gradient(0deg,#edf3f7a8,transparent 80%),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}
@media(max-width:700px){.controles-atletas{grid-template-columns:1fr;gap:12px;padding:0 14px 14px}.panel-atletas .zona-heroe-atletas .heroe-atletas{padding:16px 14px 12px}.controles-atletas .panel-filtro-equipos{max-width:calc(100vw - 56px)}}

/* Controles compactos del listado de atletas. */
.panel-atletas .controles-atletas .barra-busqueda{width:66.6667%}
#atletas .zona-heroe-atletas .heroe-atletas{min-height:76px}
#atletas .paginacion{padding:5px 12px;gap:12px}
#atletas .paginacion button{min-height:32px;padding:6px 12px}
@media(max-width:700px){.panel-atletas .controles-atletas .barra-busqueda{width:100%}}

.selector-equipo-atleta{position:relative}#opcionesEquipoAtleta{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow:auto;background:var(--campo);color:var(--texto);border:1px solid var(--borde);border-radius:6px;z-index:10;box-shadow:0 8px 20px #0003}#opcionesEquipoAtleta [role=option]{padding:10px 12px;cursor:pointer}#opcionesEquipoAtleta [role=option]:hover,#opcionesEquipoAtleta [aria-selected=true]{background:var(--turquesa);color:#fff}

.switch-usuarios{display:flex;align-items:center;gap:10px;white-space:nowrap;align-self:center;margin:0;color:var(--texto)}.switch-usuarios input{appearance:none;width:38px;min-width:38px;height:22px;min-height:22px;border-radius:20px;padding:2px;background:var(--borde);cursor:pointer}.switch-usuarios input:before{content:'';display:block;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.switch-usuarios input:checked{background:var(--turquesa)}.switch-usuarios input:checked:before{transform:translateX(14px)}.accion-usuario{width:36px;min-height:36px;padding:4px;font-size:22px;margin-right:5px}

.controles-atletas{grid-template-columns:minmax(0,1fr) minmax(260px,400px) auto}#exportarAtletas{margin-right:auto}.todos-filtro-fijo{position:sticky;top:0;background:var(--panel);z-index:2;border-bottom:1px solid var(--borde)}@media(max-width:900px){.controles-atletas{grid-template-columns:1fr 1fr}.controles-atletas>.switch-usuarios{grid-column:2}}@media(max-width:700px){.controles-atletas{grid-template-columns:1fr}.controles-atletas>.switch-usuarios{grid-column:1}}

/* Buscador, equipos y estatus agrupados a la izquierda. */
.controles-atletas{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:18px}
.panel-atletas .controles-atletas .barra-busqueda{flex:0 1 400px;width:clamp(220px,22vw,400px)}
.panel-atletas .controles-atletas .barra-filtros-atletas{flex:0 1 380px;width:380px;justify-content:flex-start}
.controles-atletas>.switch-usuarios{flex:0 0 auto}
@media(max-width:700px){.panel-atletas .controles-atletas .barra-busqueda,.panel-atletas .controles-atletas .barra-filtros-atletas{flex:1 1 100%;width:100%}}

.actualizar-atletas{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;padding:9px}.actualizar-atletas svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.capsulas-filtros{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 18px 14px;color:var(--texto);font-size:13px}.capsulas-filtros[hidden]{display:none}.capsula-equipo{display:inline-flex;align-items:center;gap:10px;max-width:100%;border:1px solid var(--borde);background:var(--campo);border-radius:22px;padding:5px 8px 5px 12px}.capsula-equipo>span{overflow-wrap:anywhere}.capsula-equipo button{background:transparent;border:0;color:var(--texto);min-height:24px;padding:0 5px;font-size:20px}.limpiar-equipos{min-height:30px;padding:5px 9px;font-size:12px}
#tooltipEquipo{position:fixed;z-index:20000;pointer-events:none;max-width:240px;padding:7px 10px;border-radius:6px;background:var(--campo);border:1px solid var(--borde);color:var(--texto);font-size:12px;box-shadow:0 4px 14px #0004}
#mensaje{position:fixed;top:18px;right:18px;left:auto;bottom:auto;width:max-content;max-width:min(360px,calc(100vw - 36px));margin:0;padding:12px 16px;border-radius:9px;z-index:18000;box-shadow:0 6px 24px #0004;font-size:14px;line-height:1.4;overflow-wrap:anywhere}#mensaje[hidden],#tooltipEquipo[hidden]{display:none}

/* Banner compartido y tablas con controles fijos. */
#mensaje{padding:24px 32px;font-size:20px;min-width:min(360px,calc(100vw - 36px));max-width:min(600px,calc(100vw - 36px));min-height:80px}
.banner-modulo{flex:0 0 auto;margin:0}.cabecera-banner{min-height:76px;padding:18px;margin:0;display:flex;align-items:center;justify-content:space-between;gap:16px}.cabecera-banner h2{font-size:33px;line-height:1.15;letter-spacing:-1px;margin:0}.cabecera-banner .sobrelinea{display:none}.controles-banner{padding:0 18px 16px;margin:0}.controles-banner>input{width:min(400px,100%);height:42px}.controles-banner.filtros>div{flex:0 1 600px}.solo-lectores{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#equipos,#competencias{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
#equipos .panel-listado,#competencias .panel-listado{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
.panel-listado>.tabla{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--borde);border-radius:9px;background:var(--panel)}.panel-listado>.tabla th{position:sticky;top:0;z-index:2;background:#0c2335}.panel-listado>.paginacion{flex:0 0 auto;padding:5px 12px;margin:0;background:var(--panel)}.panel-listado>.paginacion button{min-height:32px;padding:6px 12px}
.panel-asistencia{padding:0;overflow:hidden}.cuerpo-asistencia{padding:18px}#inicio>.banner-modulo{margin-bottom:16px}
[data-tema=claro] .panel-listado>.tabla th{background:#e6eef4}
@media(max-width:700px){.cabecera-banner{padding:16px 14px}.cabecera-banner h2{font-size:27px}.controles-banner{padding:0 14px 14px}#mensaje{font-size:18px;padding:20px 24px}}

#gestionAsistencias{text-align:left}.cabecera-asistencias{align-items:flex-start;border-bottom:1px solid var(--borde);padding-bottom:16px;margin-bottom:18px}.cabecera-asistencias h2{margin:0}.cabecera-asistencias p{margin:6px 0 0}.acciones-cabecera-asistencias{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}#gestionAsistencias .consulta-jornada{display:flex;flex-direction:column;align-items:stretch;gap:16px}#gestionAsistencias .selector-jornada{max-width:300px}#gestionAsistencias .resumen-competencia{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:12px}#gestionAsistencias .resumen-competencia>div{padding:16px;border:1px solid var(--borde);border-radius:10px;background:var(--campo)}#gestionAsistencias .resumen-competencia strong{font-size:30px}#gestionAsistencias .resumen-competencia span{display:block;font-size:13px;margin-top:5px}#gestionAsistencias .tabla-gestion{max-height:42dvh;overflow:auto}#gestionAsistencias th{position:sticky;top:0;z-index:2}#tablaCompetencias td:last-child{width:auto;white-space:nowrap}#tablaCompetencias td:last-child button{margin:3px}.asistencia-presente,.asistencia-pendiente{display:inline-block;padding:4px 9px;border-radius:16px;font-size:12px}.asistencia-presente{background:#0a514b;color:#baf4df}.asistencia-pendiente{background:#624d20;color:#fff0bc}#tablaInscripciones td small{display:block;margin-top:6px;color:var(--muted)}@media(max-width:700px){.cabecera-asistencias{flex-direction:column}.acciones-cabecera-asistencias{justify-content:flex-start}#gestionAsistencias .resumen-competencia{gap:6px}#gestionAsistencias .resumen-competencia>div{padding:10px}#gestionAsistencias .resumen-competencia strong{font-size:24px}}

/* Asistencias a pantalla completa y resumen compacto. */
.swal2-container.contenedor-asistencias-total{padding:0!important}.swal2-popup.modal-alberca.modal-asistencias-total{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;border-radius:0!important;padding:20px!important;display:flex!important;flex-direction:column}.modal-asistencias-total .swal2-html-container{flex:1 1 auto;min-height:0;margin:0!important;max-height:none!important;overflow:hidden!important}.modal-asistencias-total #gestionAsistencias{height:100%;display:flex;flex-direction:column;min-height:0}.modal-asistencias-total .cabecera-asistencias{padding-right:34px;flex:0 0 auto}.modal-asistencias-total #tablaInscripciones{flex:1 1 auto;min-height:0;max-height:none}.modal-asistencias-total .consulta-jornada,.modal-asistencias-total .cabecera-inscritos,.modal-asistencias-total .paginacion,.modal-asistencias-total #gestionAsistencias>.acciones{flex:0 0 auto}#gestionAsistencias .resumen-competencia{display:flex;flex-wrap:wrap;gap:8px;width:auto}#gestionAsistencias .resumen-competencia>div{padding:8px 14px;min-width:120px}#gestionAsistencias .resumen-competencia strong{font-size:23px}#gestionAsistencias .resumen-competencia span{font-size:12px;margin-top:2px}#gestionAsistencias .consulta-jornada{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:12px}.modal-asistencias-total .cabecera-asistencias{margin-bottom:10px}.modal-asistencias-total .cabecera-asistencias h2{font-size:25px}.modal-asistencias-total .cabecera-inscritos{margin:12px 0}.modal-asistencias-total #gestionAsistencias>.acciones{margin-top:8px;padding-top:8px}#detalleCompetencia>.acciones{justify-content:flex-end}@media(max-width:700px){.swal2-popup.modal-alberca.modal-asistencias-total{padding:12px!important}#gestionAsistencias .consulta-jornada{align-items:flex-start;flex-direction:column}#gestionAsistencias .resumen-competencia>div{min-width:85px;padding:6px 10px}.modal-asistencias-total .cabecera-asistencias h2{font-size:21px}}

#gestionAsistencias .selector-jornada{max-width:none;flex:1;min-width:0}.etiqueta-fechas{display:block;font-size:13px;margin-bottom:8px}.fechas-reporte{display:flex;flex-wrap:wrap;gap:8px}.capsula-fecha{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;margin:0;border:1px solid var(--borde);border-radius:22px;background:var(--campo);color:var(--texto);cursor:pointer;white-space:nowrap}.capsula-fecha:has(input:checked){border-color:var(--azul);background:color-mix(in srgb,var(--turquesa) 20%,var(--campo))}.capsula-fecha input{width:16px;height:16px;min-height:16px;padding:0;accent-color:var(--turquesa)}#notaFechasReporte{display:block;margin-top:7px}#notaFechasReporte[hidden]{display:none}

.select-fechas-reporte{width:min(320px,100%);min-width:0}.select-fechas-reporte .panel-fechas-reporte{left:0;right:auto;width:100%;max-height:min(320px,45dvh);overflow:auto;padding:10px}.select-fechas-reporte .opcion-filtro-equipo{font-size:13px}.select-fechas-reporte .todos-filtro-fijo{top:-10px;margin-top:-10px;padding-top:12px}.select-fechas-reporte>summary{min-height:40px}#gestionAsistencias .consulta-jornada{overflow:visible}

#capsulasFechasReporte{flex:0 0 auto;padding:10px 0;margin:0;border-bottom:1px solid var(--borde)}
.selector-equipos-asistencia{flex:0 1 320px;min-width:220px}.selector-equipos-asistencia .multiselect-equipos{width:100%;min-width:0}.selector-equipos-asistencia .panel-filtro-equipos{left:0;right:auto;width:min(380px,calc(100vw - 36px))}#opcionesEquiposAsistencia{max-height:min(260px,35dvh);overflow:auto}#capsulasEquiposAsistencia{flex:0 0 auto;padding:8px 0}.asistencia-presente{display:inline-flex;align-items:center;gap:6px}.asistencia-presente .quitar-asistencia{padding:0 3px;min-height:20px;width:22px;height:22px;border:0;background:transparent;color:inherit;font-size:19px;line-height:1}.asistencia-presente .quitar-asistencia:hover{background:#ffffff26;border-radius:50%}#gestionAsistencias .consulta-jornada{flex-wrap:wrap}#gestionAsistencias #tablaInscripciones th:last-child,#gestionAsistencias #tablaInscripciones td:last-child{width:auto}@media(max-width:700px){.selector-equipos-asistencia{flex:auto;width:100%}}

.medio-asistencia{display:block;width:max-content;margin-top:6px;padding:3px 7px;font-size:11px;border-radius:5px;border:1px solid var(--borde);background:var(--campo);color:var(--texto)}.confirmacion-asistencia{max-width:min(520px,calc(100vw - 32px));padding:24px;border:1px solid var(--borde);border-radius:12px;background:var(--panel);color:var(--texto)}.confirmacion-asistencia::backdrop{background:#00101daa}.confirmacion-asistencia h2{margin:0 0 12px}.confirmacion-asistencia .acciones{justify-content:flex-end}

/* Distribución compacta del panel de asistencias. */
#gestionAsistencias .cabecera-asistencias{padding-bottom:10px;margin-bottom:8px}
#gestionAsistencias .cabecera-asistencias h2{padding-bottom:0;border-bottom:0}
#gestionAsistencias .cabecera-asistencias p{margin-top:4px}
#gestionAsistencias .consulta-jornada{justify-content:flex-start;gap:10px;align-items:flex-end}
#gestionAsistencias .selector-jornada,#gestionAsistencias .selector-equipos-asistencia{flex:0 1 280px;min-width:0}
#gestionAsistencias .select-fechas-reporte{width:100%}
#gestionAsistencias .etiqueta-fechas{margin-bottom:4px;font-size:12px}
#gestionAsistencias .resumen-competencia{margin:0 0 0 auto;gap:6px}
#gestionAsistencias .resumen-competencia>div{padding:6px 12px;min-width:105px}
#gestionAsistencias .resumen-competencia strong{font-size:22px;margin-bottom:2px;line-height:1.1}
#gestionAsistencias .resumen-competencia span{font-size:11px;margin-top:2px}
#gestionAsistencias #capsulasFechasReporte,#gestionAsistencias #capsulasEquiposAsistencia{padding:5px 0;gap:6px;border-bottom:0}
#gestionAsistencias .capsula-equipo{padding:2px 6px 2px 10px}
#gestionAsistencias .cabecera-inscritos{margin:6px 0}
#gestionAsistencias .cabecera-inscritos h3{margin:6px 0;font-size:15px}
#gestionAsistencias .paginacion-asistencias{margin:0;padding:8px 0 0;gap:10px;flex-wrap:wrap}
#exportarGestionAsistencias{margin-right:auto}
@media(max-width:700px){
 #gestionAsistencias .consulta-jornada{flex-direction:row;align-items:flex-end;gap:8px}
 #gestionAsistencias .selector-jornada,#gestionAsistencias .selector-equipos-asistencia{flex:1 1 calc(50% - 4px);width:auto}
 #gestionAsistencias .resumen-competencia{width:100%;margin:0;flex-wrap:nowrap}
 #gestionAsistencias .resumen-competencia>div{flex:1;min-width:0;padding:6px 8px}
 #gestionAsistencias .paginacion-asistencias{gap:6px}
 #gestionAsistencias .paginacion-asistencias button{padding:6px 9px;min-height:34px}
}

/* Métodos de captura de asistencia y lectura del resumen. */
#gestionAsistencias .cabecera-inscritos{align-items:center;gap:10px;flex-wrap:wrap}
#alcanceResumenAsistencia{font-size:11px}
#gestionAsistencias .resumen-competencia>div:nth-child(2){border-top:3px solid #299b80}
#gestionAsistencias .resumen-competencia>div:nth-child(3){border-top:3px solid #b28b38}
#asistencia .metodos-asistencia{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
#asistencia .metodo-asistencia{margin:0;padding:18px;border:1px solid var(--borde);border-radius:10px;background:var(--campo);min-width:0}
#asistencia .metodo-asistencia h3{font-size:16px;margin:0 0 8px}
#asistencia .metodo-asistencia>.sutil{margin:0 0 16px;line-height:1.5}
#asistencia .metodo-asistencia .filtros{gap:10px;flex-wrap:wrap;margin-bottom:0}
#asistencia .metodo-asistencia input[type=file]{max-width:100%;font-size:12px}
#asistencia #formularioAsistencia .filtros{display:flex;flex-direction:column;align-items:stretch}
#asistencia #formularioAsistencia .filtros>div{width:100%}
#asistencia #codigoAsistencia{width:100%;min-height:46px}
#asistencia #camara{width:100%;max-height:300px;border-radius:8px;margin-top:12px;object-fit:cover}
#asistencia #avisoCompetenciaAsistencia{margin:0 0 16px;padding:12px 14px;border-left:3px solid var(--azul);background:var(--campo);border-radius:6px;line-height:1.5}
@media(max-width:850px){#asistencia .metodos-asistencia{grid-template-columns:1fr}#asistencia .metodo-asistencia{padding:14px}}

/* Evolución sutil: navegación, filtros y listados principales. */
.barra-superior nav{border:0;background:transparent;gap:6px;border-radius:0;padding:4px 0 8px}
.barra-superior nav button{position:relative;border:0;border-radius:8px;padding:11px 14px;min-height:42px;color:var(--muted)}
.barra-superior nav button:hover{background:var(--campo);color:var(--texto)}
.barra-superior nav button[aria-selected=true]{background:#123747;color:#68dfeb;box-shadow:none}
.barra-superior nav button[aria-selected=true]::after{content:'';position:absolute;bottom:-5px;left:10px;right:10px;height:3px;background:var(--turquesa);border-radius:3px}
:root[data-tema=claro] .barra-superior nav button[aria-selected=true]{background:#e3f4f8;color:#08778e}
#panel main{padding:18px 20px}
#panel main :is(button,input,select,summary){border-radius:8px}
#panel main button{transition:background .15s,border-color .15s,box-shadow .15s}
#panel main .zona-heroe-atletas{border-radius:12px 12px 0 0}
#atletas .zona-heroe-atletas .heroe-atletas,.cabecera-banner{min-height:104px;padding:22px 22px 20px;align-items:center}
#atletas .heroe-atletas h2,.cabecera-banner h2{font-size:34px;font-weight:650;letter-spacing:-1px}
.heroe-atletas button{align-self:center}
.panel-atletas .controles-atletas{margin:0 12px 18px;padding:16px;gap:16px;background:var(--panel);border:1px solid var(--borde);border-radius:12px;box-shadow:0 3px 12px #001c3006}
.panel-atletas .controles-atletas .barra-busqueda{flex:1 1 300px;width:auto;max-width:520px}
.panel-atletas .controles-atletas .barra-filtros-atletas{flex:1 1 260px;width:auto;max-width:390px}
.panel-atletas .controles-atletas input[type=search]{height:44px}
.panel-atletas .controles-atletas .multiselect-equipos>summary{min-height:44px}
.panel-atletas .tabla{margin:0;border-color:var(--borde);border-radius:10px 10px 0 0}
#panel main .tabla :is(th,td){padding:14px 20px}
#panel main .tabla th{font-size:12px;font-weight:600}
#panel main .tabla tbody tr:nth-child(even){background:var(--panel)}
#panel main .tabla tbody tr:hover{background:#103143}
:root[data-tema=claro] #panel main .tabla tbody tr:nth-child(even){background:#fbfdfe}
:root[data-tema=claro] #panel main .tabla tbody tr:hover{background:#edf7fa}
:root[data-tema=claro] #panel main .tabla th{background:#eef5f9;box-shadow:none;border-color:#d5e2eb}
.identidad-atleta strong{font-weight:600;line-height:1.4}
.avatar-atleta{background:#123d51;border-radius:50%;box-shadow:none}
:root[data-tema=claro] .avatar-atleta{background:#def1f6;color:#17627c}
.acciones-atleta .accion-icono{width:36px;height:36px;min-height:36px;box-shadow:none}
:root[data-tema=claro] .acciones-atleta .accion-icono{background:#fbfdff;border-color:#d4e2eb}
#atletas .paginacion,.panel-listado>.paginacion{padding:12px 16px;border:1px solid var(--borde);border-top:0;border-radius:0 0 10px 10px;background:var(--panel);gap:14px}
#atletas .paginacion button,.panel-listado>.paginacion button{min-height:36px;padding:8px 13px}
#equipos .controles-banner,#asistencia .controles-banner{margin:0 12px 18px;padding:16px;background:var(--panel);border:1px solid var(--borde);border-radius:12px}
#competencias .zona-heroe-atletas,#asistencia .zona-heroe-atletas{background:linear-gradient(#03132126,#03132126),url('/recursos/alberca-panoramica.jpg') center 55%/cover no-repeat}
:root[data-tema=claro] #competencias .zona-heroe-atletas,:root[data-tema=claro] #asistencia .zona-heroe-atletas{background:linear-gradient(#edf3f726,#edf3f726),url('/recursos/alberca-panoramica.jpg') center 55%/cover no-repeat}
#competencias .cabecera-banner{min-height:140px}
#asistencia .panel-asistencia{border-radius:12px}
#asistencia .metodo-asistencia{border-radius:12px}
@media(max-width:1100px){.barra-superior nav button{padding:10px 12px}#panel main{padding:14px}.panel-atletas .controles-atletas{gap:12px}.panel-atletas .controles-atletas .barra-busqueda{max-width:none}}
@media(max-width:700px){#panel main{padding:12px 10px}.barra-superior nav{gap:4px;padding-bottom:8px}.barra-superior nav button{flex:1 0 auto;padding:10px;font-size:12px}#atletas .zona-heroe-atletas .heroe-atletas,.cabecera-banner{min-height:90px;padding:18px 14px}#atletas .heroe-atletas h2,.cabecera-banner h2{font-size:28px}.panel-atletas .controles-atletas{margin:0 8px 12px;padding:12px}.panel-atletas .controles-atletas .barra-busqueda,.panel-atletas .controles-atletas .barra-filtros-atletas{flex:1 1 100%;max-width:none}#panel main .tabla :is(th,td){padding:12px 14px}#atletas .paginacion,.panel-listado>.paginacion{flex-wrap:wrap;gap:8px;padding:10px}#equipos .controles-banner,#asistencia .controles-banner{margin:0 8px 12px;padding:12px}}
@media(prefers-reduced-motion:reduce){#panel main button{transition:none}}

/* Filtros sobre la fotografía, alineados con el título del módulo. */
#atletas .controles-atletas,#equipos .controles-banner,#asistencia .controles-banner{
 margin:0;padding:0 22px 22px;background:transparent;border:0;border-radius:0;box-shadow:none;
}
#atletas .controles-atletas{align-items:center;gap:16px}
#atletas .controles-atletas .barra-busqueda{
 flex:0 1 560px;width:560px;min-width:280px;max-width:100%;margin:0;padding:0;border:0;background:transparent;
}
#atletas .controles-atletas .barra-filtros-atletas{flex:0 1 390px;min-width:260px;margin:0}
#atletas .controles-atletas .barra-busqueda input,#atletas .controles-atletas .multiselect-equipos>summary,#atletas .actualizar-atletas{height:46px;min-height:46px}
#equipos .controles-banner>input{width:560px;max-width:100%;height:46px}
#competencias .cabecera-banner h2,#asistencia .cabecera-banner h2,#asistencia .controles-banner label{
 color:#fff;text-shadow:0 1px 4px #001d32,0 1px 12px #001d32;
}
@media(max-width:700px){
 #atletas .controles-atletas,#equipos .controles-banner,#asistencia .controles-banner{padding:0 14px 16px}
 #atletas .controles-atletas .barra-busqueda,#atletas .controles-atletas .barra-filtros-atletas{flex:1 1 100%;width:100%;min-width:0;max-width:none}
}

/* Misma intensidad de imagen en las cabeceras de los módulos. */
#panel main .zona-heroe-atletas{background:linear-gradient(#03132126,#03132126),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}
:root[data-tema=claro] #panel main .zona-heroe-atletas{background:linear-gradient(#edf3f726,#edf3f726),url('/recursos/nadador.jpeg') center 22%/cover no-repeat}
#panel main :is(#competencias,#asistencia) .zona-heroe-atletas{background-image:linear-gradient(#03132126,#03132126),url('/recursos/alberca-panoramica.jpg');background-position:center 55%}
:root[data-tema=claro] #panel main :is(#competencias,#asistencia) .zona-heroe-atletas{background-image:linear-gradient(#edf3f726,#edf3f726),url('/recursos/alberca-panoramica.jpg')}
#panel main .zona-heroe-atletas :is(h2,label,.switch-usuarios,#etiquetaFiltroEquipos){color:#fff;text-shadow:0 1px 4px #001d32,0 1px 12px #001d32}

/* Inicio sin fotografía y acciones con contraste sobre las imágenes. */
#inicio .cabecera-inicio{background:transparent}
#inicio .cabecera-banner h2{color:var(--texto);text-shadow:none}
#panel main .zona-heroe-atletas :is(.heroe-atletas,.cabecera-banner)>button{
 background:#07566d;color:#fff;border:1px solid #fff;border-radius:8px;
 box-shadow:0 2px 8px #001d3259,0 0 0 3px #ffffff26;
 font-weight:700;min-height:44px;padding:11px 18px;text-shadow:none;
}
#panel main .zona-heroe-atletas :is(.heroe-atletas,.cabecera-banner)>button:hover{
 background:#034357;border-color:#fff;box-shadow:0 3px 12px #001d3273,0 0 0 3px #ffffff40;
}
#panel main .zona-heroe-atletas :is(.heroe-atletas,.cabecera-banner)>button:focus-visible{
 outline:3px solid #fff;outline-offset:4px;
}
#panel main .zona-heroe-atletas .actualizar-atletas{
 background:#f6f9fc;color:#16495f;border:1px solid #fff;box-shadow:0 2px 6px #001d3240;
}
#panel main .zona-heroe-atletas .actualizar-atletas:hover{background:#def1f6;color:#083e55}

/* Control accesible para mostrar u ocultar la contraseña de acceso. */
.campo-clave-login{position:relative;margin-bottom:16px}
.campo-clave-login #claveLogin{padding-right:52px;margin-bottom:0}
.campo-clave-login #mostrarClaveLogin{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:40px;height:36px;min-height:36px;margin:0;padding:8px;background:transparent;border:0;color:var(--texto);border-radius:6px}
.campo-clave-login #mostrarClaveLogin:hover{background:var(--borde)}
#mostrarClaveLogin svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Escala general equivalente al 90 % del navegador, conservando el alto útil. */
html.interfaz-gestion{--escala-interfaz:.9;zoom:var(--escala-interfaz)}
.interfaz-gestion #panel{height:calc(100dvh / var(--escala-interfaz))}
.interfaz-gestion .menu-cuenta[open]{height:calc(100dvh / var(--escala-interfaz));max-height:calc(100dvh / var(--escala-interfaz))}
.interfaz-gestion .swal2-popup.modal-alberca.modal-asistencias-total{
 width:100%!important;max-width:100%!important;
 height:calc(100dvh / var(--escala-interfaz))!important;
 max-height:calc(100dvh / var(--escala-interfaz))!important;
}
@media print{html.interfaz-gestion{--escala-interfaz:1;zoom:1}}
