/* Sólo la extensión Clases y la marca configurada; el CSS 2027 sigue siendo la base. */
[data-clases-marca] .nx-hero-logo img{object-fit:contain}
[data-clases-logo] .nx-hero-arte{background-image:var(--clase-logo)!important;background-size:54% auto!important;background-position:right center!important;background-repeat:no-repeat!important;opacity:.18}
[data-clases-marca] .nx-hero{background:var(--anubis-bg);border-color:var(--anubis-gold)}
[data-clases-marca] .nx-hero-logo{border-color:var(--anubis-gold)}
[data-clases-marca] .nx-btn-primary{color:var(--clase-on-accent,#000)}
.nx-clases-entrada{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--anubis-gold) 45%,transparent);border-radius:14px;background:var(--anubis-panel);color:var(--anubis-text);text-decoration:none;min-height:92px;box-sizing:border-box}
.nx-clases-entrada>span:nth-child(2){flex:1}.nx-clases-entrada small{display:block;font-size:9px;letter-spacing:.14em;color:var(--anubis-gold);font-weight:700}.nx-clases-entrada b{display:block;font-size:19px;margin:3px 0}.nx-clases-entrada span span{font-size:12px;color:var(--anubis-muted)}.nx-clases-entrada__icon{font-size:30px;color:var(--anubis-gold)}
/* ── Página Clases (G1) ──────────────────────────────────────────────────────────────────────────────────────────
   Autosuficiente: NO depende del CSS con hash del paquete de la app (antes pedía /app-nueva/assets/index-<hash>.css y,
   cuando el hash cambiaba, la página quedaba sin estilos y «Reintentar» negro sobre negro). Los valores por defecto viven
   en html.nx-clases-doc (sólo esta página; la app de la socia también carga este archivo y no se toca su :root). La marca
   del gimnasio (marcaSocia) los pisa con estilos en línea sobre <html>. */
/* Inter (regular y bold), copiada del paquete de la app con nombre sin hash (fonts/, licencia OFL en fonts/OFL-Inter.txt).
   Familia propia «Clases Inter»: la app de la socia también carga este CSS y ya declara «Inter»; así no se pisan ni la app
   descarga dos veces. Nada externo. */
@font-face{font-family:"Clases Inter";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Clases Inter";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-latin-700-normal.woff2) format("woff2")}
html.nx-clases-doc{--anubis-bg:#0e0c0a;--anubis-panel:#1a1714;--anubis-panel-2:#241f19;--anubis-text:#efe6d6;--anubis-muted:#aa9e89;
  --anubis-gold:#d4a843;--anubis-gold-light:#f0c95d;--anubis-line:rgba(255,255,255,.13);--clase-on-accent:#16120b;
  --clase-ok:#9cdda9;--clase-alerta:#ff9d8f;--clase-espera:#8fc8ff;color-scheme:dark;background:var(--anubis-bg)}
.nx-clases-page{margin:0;min-height:100dvh;background:var(--anubis-bg,#0e0c0a);color:var(--anubis-text,#efe6d6);
  font:15px/1.45 "Clases Inter","Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;-webkit-text-size-adjust:100%}
.nx-clases-page *,.nx-clases-page *::before,.nx-clases-page *::after{box-sizing:border-box}
.nx-clases-shell{max-width:1120px;margin:0 auto;padding:16px 32px calc(96px + env(safe-area-inset-bottom,0px))}
.nx-clases-shell h1,.nx-clases-shell h2,.nx-clases-shell h3,.nx-clases-shell p{margin:0}
.nx-clases-shell button{font-weight:600;font-size:15px;line-height:1.2;font-family:inherit;cursor:pointer;border-radius:10px;min-height:44px;transition:background .15s,color .15s,border-color .15s}
.nx-clases-shell button:disabled{cursor:default;opacity:.55}
.nx-clases-shell :focus-visible{outline:2px solid var(--anubis-gold);outline-offset:3px}
.nx-clases-accion{background:var(--anubis-gold);color:var(--clase-on-accent);border:1px solid var(--anubis-gold);padding:11px 20px}
.nx-clases-secundario{background:transparent;color:var(--anubis-text);border:1px solid color-mix(in srgb,var(--anubis-text) 40%,transparent);padding:11px 18px}
.nx-clases-peligro{background:var(--clase-alerta);color:#1b0b07;border:1px solid var(--clase-alerta);padding:11px 18px}

/* encabezado */
.nx-clases-header{display:flex;align-items:center;gap:14px;min-height:48px;font-size:13px}
.nx-clases-volver{color:var(--anubis-text);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;font-weight:600;white-space:nowrap}
.nx-clases-header>.nx-clases-gym{flex:1;min-width:0;color:var(--anubis-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-clases-header img{width:84px;height:32px;object-fit:contain}
.nx-clases-demo{flex:none;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--clase-on-accent);background:var(--anubis-gold-light);border-radius:999px;padding:4px 10px}
.nx-clases-titulo{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 0 12px;border-top:1px solid var(--anubis-line)}
.nx-clases-eyebrow{display:block;font-size:11px;letter-spacing:.15em;color:var(--anubis-gold);font-weight:700;text-transform:uppercase}
.nx-clases-titulo h1{font:900 34px/1.05 "Archivo","Arial Black",Arial,sans-serif;letter-spacing:-.03em;margin-top:6px}
.nx-clases-titulo h1 span{color:var(--anubis-gold)}

/* semana y días: el calendario va arriba */
.nx-clases-week{display:flex;align-items:center;gap:8px}
.nx-clases-week h2{font-size:15px;font-weight:600;min-width:128px;text-align:center;font-variant-numeric:tabular-nums}
.nx-clases-week [data-week]{width:44px;padding:0;color:var(--anubis-text);background:var(--anubis-panel);border:1px solid var(--anubis-line);font-size:18px}
.nx-clases-week [data-refresh]{padding:8px 14px;font-size:13px}
.nx-clases-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:4px 0 14px}
.nx-clases-days button{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;padding:8px 0 10px;min-height:64px;
  background:var(--anubis-panel);color:var(--anubis-muted);border:1px solid var(--anubis-line)}
.nx-clases-days span{font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.nx-clases-days strong{font-size:21px;line-height:1.1;color:var(--anubis-text);font-variant-numeric:tabular-nums}
.nx-clases-days i{position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:transparent}
.nx-clases-days i.con-reserva{background:var(--anubis-gold)}
.nx-clases-days button.es-hoy{border-color:var(--anubis-gold)}
.nx-clases-days button.es-hoy span{color:var(--anubis-gold);font-weight:700}
.nx-clases-days button.sin-clases strong{color:var(--anubis-muted);font-weight:500}
.nx-clases-days button[aria-pressed=true]{background:var(--anubis-gold);border-color:var(--anubis-gold);color:var(--clase-on-accent)}
.nx-clases-days button[aria-pressed=true] span,.nx-clases-days button[aria-pressed=true] strong{color:var(--clase-on-accent)}
.nx-clases-days button[aria-pressed=true] i.con-reserva{background:var(--clase-on-accent)}

/* avisos de conexión */
.nx-clases-red{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--clase-alerta);
  background:color-mix(in srgb,var(--clase-alerta) 12%,var(--anubis-panel));border-radius:12px;padding:10px 12px 10px 14px;margin:0 0 14px}
.nx-clases-red b{display:block;color:var(--anubis-text);font-size:15px}
.nx-clases-red p{color:var(--anubis-text);font-size:13px}

/* pack: sólo si el servidor lo manda */
.nx-clases-pack{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid color-mix(in srgb,var(--anubis-gold) 70%,transparent);border-radius:14px;padding:12px 16px;margin:0 0 14px;background:var(--anubis-panel)}
.nx-clases-pack>div{min-width:0}
.nx-clases-pack h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;font:800 24px/1.15 "Archivo","Arial Black",Arial,sans-serif;margin:2px 0;font-variant-numeric:tabular-nums}
.nx-clases-pack h2 small{font-weight:500;font-size:15px;line-height:1.2;font-family:"Clases Inter","Inter","Segoe UI",system-ui,sans-serif}
.nx-clases-pack p{font-size:13px;color:var(--anubis-muted);line-height:1.45}
.nx-clases-pack .nx-clases-barra{width:180px;flex:none}

/* pestañas y título del día */
.nx-clases-tabs{display:flex;gap:24px;border-bottom:1px solid var(--anubis-line);margin-bottom:14px}
.nx-clases-tabs button{border:0;border-radius:0;background:none;color:var(--anubis-muted);padding:0 0 10px;min-height:44px}
.nx-clases-tabs button[aria-pressed=true]{color:var(--anubis-gold);box-shadow:inset 0 -2px 0 var(--anubis-gold)}
.nx-clases-tabs button span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:var(--anubis-panel-2);color:var(--anubis-text);border-radius:6px;margin-left:8px;font-size:12px}
.nx-clases-dia{font-size:15px;font-weight:700;margin:0 0 10px;color:var(--anubis-text)}

/* tarjetas */
.nx-clases-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nx-clase-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--anubis-line);background:var(--anubis-panel);border-radius:16px;padding:16px 16px 14px;min-width:0}
.nx-clase-card[data-estado=reservada]{border-color:var(--anubis-gold)}
.nx-clase-card[data-estado=espera]{border-color:var(--clase-espera)}
.nx-clase-card[data-estado=pasada]{opacity:.72}
.nx-clase-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.nx-clase-card__hora strong{display:block;font:800 28px/1 "Archivo","Arial Black",Arial,sans-serif;font-variant-numeric:tabular-nums}
.nx-clase-card__hora span{font-size:12px;color:var(--anubis-muted)}
.nx-clase-estado{flex:none;max-width:60%;text-align:center;font-size:12px;font-weight:700;letter-spacing:.02em;border-radius:999px;padding:5px 10px;border:1px solid currentColor}
.nx-clase-estado[data-estado=libre]{color:var(--clase-ok)}
.nx-clase-estado[data-estado=reservada]{color:var(--clase-on-accent);background:var(--anubis-gold);border-color:var(--anubis-gold)}
.nx-clase-estado[data-estado=espera]{color:var(--clase-espera)}
.nx-clase-estado[data-estado=completa]{color:var(--clase-alerta)}
.nx-clase-estado[data-estado=pasada]{color:var(--anubis-muted)}
.nx-clase-card h3{font:800 21px/1.2 "Archivo","Arial Black",Arial,sans-serif;overflow-wrap:anywhere}
.nx-clase-card__meta{font-size:13px;color:var(--anubis-muted);overflow-wrap:anywhere}
.nx-clase-card__cupo{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--anubis-muted)}
.nx-clase-card__cupo b{color:var(--anubis-text);font-size:15px;font-variant-numeric:tabular-nums}
.nx-clase-card__cupo em{font-style:normal;color:var(--clase-espera);font-weight:600}
.nx-clases-barra{height:6px;border-radius:6px;background:rgba(255,255,255,.12);overflow:hidden}
.nx-clases-barra i{display:block;height:100%;border-radius:6px;background:var(--anubis-gold)}
.nx-clase-card[data-estado=completa] .nx-clases-barra i{background:var(--clase-alerta)}
.nx-clase-card__acciones{display:flex;gap:8px;margin-top:4px}
.nx-clase-card__acciones button{flex:1;min-width:0}
.nx-clase-confirmar{display:grid;gap:8px;margin-top:4px;padding:12px;border-radius:12px;background:var(--anubis-panel-2);border:1px solid var(--anubis-line)}
.nx-clase-confirmar p{font-size:14px;font-weight:600}
.nx-clase-confirmar div{display:flex;gap:8px}
.nx-clase-confirmar button{flex:1;min-width:0}
.nx-clase-fin{font-size:13px;color:var(--anubis-muted);margin-top:4px}

/* vacíos y carga */
.nx-clases-empty{grid-column:1/-1;padding:28px 20px;border:1px dashed var(--anubis-line);border-radius:16px;text-align:center}
.nx-clases-empty h3{font-size:19px;margin:0 0 6px}
.nx-clases-empty p{color:var(--anubis-muted);font-size:14px}
.nx-clases-estado-pagina{max-width:520px;margin:32px auto 0;padding:28px 22px;border:1px solid var(--anubis-line);border-radius:18px;background:var(--anubis-panel);display:grid;gap:12px;text-align:center}
.nx-clases-estado-pagina h1{font:900 28px/1.1 "Archivo","Arial Black",Arial,sans-serif}
.nx-clases-estado-pagina p{color:var(--anubis-muted);font-size:15px}
.nx-clases-estado-pagina .nx-clases-accion{justify-self:center;min-width:180px}
.nx-clases-ayuda{font-size:14px;color:var(--anubis-muted);line-height:1.5;margin-bottom:12px}

/* aviso flotante: siempre a la vista, abajo, sin tapar el botón tocado (se va solo) */
.nx-clases-toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:20;
  width:min(560px,calc(100vw - 24px));padding:12px 16px;border-radius:12px;background:var(--anubis-panel-2);color:var(--anubis-text);
  border:1px solid var(--anubis-gold);box-shadow:0 10px 30px rgba(0,0,0,.5);font-size:14px;font-weight:600;line-height:1.4}
.nx-clases-toast[data-tono=error]{border-color:var(--clase-alerta)}
.nx-clases-toast:empty{display:none}
.nx-clases-footer{text-align:center;color:var(--anubis-muted);font-size:12px;padding:24px 0 4px}

@media(max-width:900px){.nx-clases-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .nx-clases-shell{padding:8px 12px calc(96px + env(safe-area-inset-bottom,0px))}
  .nx-clases-header{min-height:44px}
  .nx-clases-header img{width:60px;height:26px}
  .nx-clases-titulo{padding:10px 0 8px;gap:8px}
  .nx-clases-titulo h1{font-size:26px;margin-top:4px}
  .nx-clases-week{width:100%}
  .nx-clases-week h2{flex:1;min-width:0;font-size:14px}
  .nx-clases-week [data-refresh]{padding:6px 10px;font-size:12px}
  .nx-clases-days{gap:4px;margin-bottom:12px}
  .nx-clases-days button{min-height:58px;padding:6px 0 9px;border-radius:9px}
  .nx-clases-days span{font-size:11px}
  .nx-clases-days strong{font-size:19px}
  .nx-clases-pack{padding:10px 12px;gap:10px}
  .nx-clases-pack h2{font-size:21px}
  .nx-clases-pack .nx-clases-barra{display:none}
  .nx-clases-tabs{gap:20px;margin-bottom:10px}
  .nx-clases-grid{grid-template-columns:1fr;gap:10px}
  .nx-clase-card{padding:14px 14px 12px}
}
@media(prefers-reduced-motion:reduce){.nx-clases-shell button{transition:none}}
.nx-clases-entrada__pack{display:inline-block;margin-top:8px;padding:4px 10px;border-radius:999px;font-style:normal;font-size:12px;font-weight:700;color:var(--anubis-gold);background:color-mix(in srgb,var(--anubis-gold) 14%,transparent)}.nx-clases-entrada__pack[data-clases-pack="aviso"]{color:var(--anubis-text);background:color-mix(in srgb,var(--anubis-gold) 30%,transparent)}
