:root { --carga-bg:#f5f1e8; --carga-overlay:rgba(245,241,232,.88); --carga-panel:#ffffff; --carga-text:#111111; --carga-muted:#68645b; --carga-border:#dfd8ca; --carga-accent:#d6a51f; }
:root[data-gym-theme="dark"] { --carga-bg:#090a0c; --carga-overlay:rgba(9,10,12,.82); --carga-panel:#17191d; --carga-text:#f4f5f7; --carga-muted:#b4bac4; --carga-border:#34383f; --carga-accent:#f0c52e; }
html { background:var(--carga-bg); }
.sesion-pagina { min-height:100dvh; box-sizing:border-box; padding:16px; }
.sesion-pagina { margin:0; min-height:100vh; display:grid; place-items:center; background:var(--carga-bg); color:var(--carga-text); font-family:Arial,sans-serif; }
.sesion-espera { display:flex; align-items:center; gap:16px; width:min(390px,calc(100vw - 32px)); max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; padding:22px 24px; background:var(--carga-panel); color:var(--carga-text); border:1px solid var(--carga-border); border-left:4px solid var(--carga-accent); border-radius:12px; box-shadow:0 18px 48px #0002; }
.sesion-espera-copy { display:grid; gap:5px; min-width:0; }
.sesion-espera p { margin:0; font-size:14px; line-height:1.5; }
.sesion-espera .sesion-espera-titulo { font-size:16px; line-height:1.3; font-weight:800; }
.sesion-espera .sesion-espera-detalle { color:var(--carga-muted); font-size:13px; }
.sesion-spinner { width:28px; height:28px; flex:0 0 28px; border:3px solid var(--carga-border); border-top-color:var(--carga-accent); border-radius:50%; animation:sesion-giro .8s linear infinite; }
.sesion-transicion { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; box-sizing:border-box; padding:16px; background:var(--carga-overlay); cursor:progress; }
.sesion-pagina a { color:var(--carga-accent); }
.sesion-salida { padding:20px; box-sizing:border-box; background:rgba(12,14,17,.55); backdrop-filter:blur(4px); animation:sesion-salida-fondo .18s ease-out both; }
.sesion-salida .sesion-espera { width:360px; max-width:100%; padding:24px; font-family:Arial,sans-serif; animation:sesion-salida-panel .22s ease-out both; outline:none; }
.sesion-salida .sesion-salida-titulo { font-size:17px; font-weight:700; }
.sesion-salida .sesion-salida-detalle { margin-top:5px; font-size:14px; }
.sesion-espera button { min-height:40px; padding:8px 14px; border:1px solid var(--carga-border); border-radius:7px; background:var(--carga-accent); color:#111; font:inherit; font-weight:700; cursor:pointer; }
.sesion-espera button:focus-visible { outline:2px solid var(--carga-accent); outline-offset:3px; }
@keyframes sesion-salida-fondo { from { opacity:0; } to { opacity:1; } }
@keyframes sesion-salida-panel { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .sesion-salida,.sesion-salida .sesion-espera { animation:none; } }
@keyframes sesion-giro { to { transform:rotate(360deg); } }
@media(max-width:420px) { .sesion-espera { width:calc(100vw - 32px); padding:18px; gap:13px; } }
@media(prefers-reduced-motion:reduce) { .sesion-spinner { animation:none; } }
