/* ==========================================================================
   Nitro Simracing - Semantic Status & Meta Classes
   --------------------------------------------------------------------------
   Esta capa centraliza las clase_css que vienen desde BD para estados, roles
   y badges reutilizados por shortcodes/modulos.

   Tablas fuente principales:
   - wp_z_programacion_estados
   - wp_z_sanciones_estados
   - wp_z_pilotos_clases
   - wp_z_pilotos_roles_participacion
   - tablas de roles/tipos/gravedad usadas por denuncias y torneos
   ========================================================================== */

:root {
  --sn-meta-radius: 999px;
  --sn-meta-gap: 8px;
  --sn-meta-font-size: 0.78rem;
  --sn-meta-font-weight: 800;
  --sn-meta-letter-spacing: 0.06em;
  --sn-meta-bg: rgba(137, 153, 180, 0.16);
  --sn-meta-border: rgba(137, 153, 180, 0.34);
  --sn-meta-text: #e6edf8;
  --sn-meta-shadow: rgba(10, 15, 28, 0.18);
}

:is(
  .sn-status,
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .pw-msg-state,
  .sn-membership-current__badge,
  .sn-membresias-pill,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
).estado,
:is(
  .sn-status,
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .pw-msg-state,
  .sn-membership-current__badge,
  .sn-membresias-pill,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
)[class*="estado-"],
:is(
  .sn-status,
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .pw-msg-state,
  .sn-membership-current__badge,
  .sn-membresias-pill,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
)[class*="rol-"],
:is(
  .sn-status,
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .pw-msg-state,
  .sn-membership-current__badge,
  .sn-membresias-pill,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
)[class*="badge-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sn-meta-gap);
  padding: 8px 14px;
  border-radius: var(--sn-meta-radius);
  border: 1px solid var(--sn-meta-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.01)),
    var(--sn-meta-bg);
  color: var(--sn-meta-text);
  font-size: var(--sn-meta-font-size);
  font-weight: var(--sn-meta-font-weight);
  letter-spacing: var(--sn-meta-letter-spacing);
  line-height: 1;
  text-transform: uppercase;
  box-shadow: 0 10px 24px var(--sn-meta-shadow);
  text-shadow: none;
  white-space: nowrap;
}

:is(
  .sn-status,
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .pw-msg-state,
  .sn-membership-current__badge,
  .sn-membresias-pill,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
) i {
  font-size: 0.92em;
  opacity: 0.96;
}

.estado-programada,
.estado-programado,
.badge-default,
.badge--info,
.estado-no-leido,
.estado-noleido,
.no-leido,
.noleido,
.pw-msg-unread,
.badge--basic {
  --sn-meta-bg: rgba(44, 131, 255, 0.18);
  --sn-meta-border: rgba(111, 181, 255, 0.4);
  --sn-meta-text: #d8ecff;
  --sn-meta-shadow: rgba(44, 131, 255, 0.18);
}

.estado-pendiente,
.estado-asignando,
.estado-en-proceso,
.estado-aplazado,
.estado-aplazada,
.estado-en-apelacion,
.estado-pendiente-adjunto,
.badge--warning,
.badge-oro {
  --sn-meta-bg: rgba(255, 173, 51, 0.18);
  --sn-meta-border: rgba(255, 196, 94, 0.4);
  --sn-meta-text: #ffe2a8;
  --sn-meta-shadow: rgba(255, 173, 51, 0.18);
}

/* Fallback para filas legacy donde clase_css quedo guardada como icono */
:is(
  .badge,
  .sn-badge,
  .tor-badge,
  .sn-pb-badge,
  .sn-ins-badge,
  .sn-tl-row__status,
  .sn-np-broadcast-row__status,
  .den-com-role,
  .den-inv-role,
  .den-adj-link__badge
).fa-clock-rotate-left {
  --sn-meta-bg: rgba(255, 173, 51, 0.18);
  --sn-meta-border: rgba(255, 196, 94, 0.4);
  --sn-meta-text: #ffe2a8;
  --sn-meta-shadow: rgba(255, 173, 51, 0.18);
}

.estado-activa,
.estado-activo,
.estado-curso,
.estado-en-curso,
.estado-iniciando,
.estado-progresando,
.estado-completada,
.estado-completado,
.estado-aplicado,
.badge-success,
.badge-green,
.badge--success,
.badge-check,
.badge-inscrito,
.badge--ok {
  --sn-meta-bg: rgba(33, 191, 115, 0.18);
  --sn-meta-border: rgba(79, 224, 151, 0.38);
  --sn-meta-text: #d9ffeb;
  --sn-meta-shadow: rgba(33, 191, 115, 0.18);
}

.estado-cancelada,
.estado-cancelado,
.estado-rechazado,
.estado-suspendida,
.badge--danger,
.badge--ko {
  --sn-meta-bg: rgba(255, 78, 78, 0.18);
  --sn-meta-border: rgba(255, 118, 118, 0.38);
  --sn-meta-text: #ffd8d8;
  --sn-meta-shadow: rgba(255, 78, 78, 0.18);
}

.estado-sin-accion,
.estado-cerrada,
.estado-leido,
.leido,
.pw-msg-read,
.estado-finalizada,
.estado-finalizado,
.estado-en-construccion,
.badge-gray,
.badge--muted {
  --sn-meta-bg: rgba(111, 126, 150, 0.18);
  --sn-meta-border: rgba(149, 163, 184, 0.32);
  --sn-meta-text: #d7dfed;
  --sn-meta-shadow: rgba(65, 74, 88, 0.18);
}

.rol-denunciante,
.rol-comisario-lider,
.badge--primary,
.badge--plus,
.badge--pro {
  --sn-meta-bg: rgba(60, 112, 255, 0.18);
  --sn-meta-border: rgba(117, 161, 255, 0.4);
  --sn-meta-text: #dfeaff;
  --sn-meta-shadow: rgba(60, 112, 255, 0.18);
}

.rol-denunciado,
.rol-apelante,
.rol-request-headers,
.badge-cobre,
.badge-bronce {
  --sn-meta-bg: rgba(255, 163, 61, 0.18);
  --sn-meta-border: rgba(255, 194, 114, 0.4);
  --sn-meta-text: #ffe6bf;
  --sn-meta-shadow: rgba(255, 163, 61, 0.18);
}

.rol-comisario-revisor,
.rol-comisario,
.badge-plata,
.badge-platino,
.badge-diamante {
  --sn-meta-bg: rgba(64, 160, 255, 0.18);
  --sn-meta-border: rgba(125, 194, 255, 0.38);
  --sn-meta-text: #def1ff;
  --sn-meta-shadow: rgba(64, 160, 255, 0.18);
}

.rol-sistema,
.rol-admin,
.badge-elite,
.badge--outline {
  --sn-meta-bg: rgba(135, 77, 255, 0.2);
  --sn-meta-border: rgba(183, 142, 255, 0.4);
  --sn-meta-text: #efe2ff;
  --sn-meta-shadow: rgba(135, 77, 255, 0.18);
}

.rol-involucrado,
.rol-sm,
.rol-access,
.badge-principiante,
.badge--free {
  --sn-meta-bg: rgba(96, 113, 138, 0.18);
  --sn-meta-border: rgba(147, 164, 190, 0.34);
  --sn-meta-text: #e3ebf7;
  --sn-meta-shadow: rgba(96, 113, 138, 0.16);
}

.badge-small,
.badge-count,
.badge--xs,
.badge--lg {
  letter-spacing: 0.04em;
}

.badge-count {
  min-width: 2.25rem;
}

.sn-membership-current__badge,
.sn-membresias-pill {
  border-width: 0;
  box-shadow: none;
  letter-spacing: 0.08em;
}

.sn-membership-current__badge--free,
.sn-membresias-pill--free,
.membresia-free {
  background: var(--sn-tier-free, #3b4a60) !important;
  color: var(--sn-tier-free-text, #fff) !important;
}

.sn-membership-current__badge--basic,
.sn-membresias-pill--basic,
.membresia-basic {
  background: var(--sn-tier-basic, #2563eb) !important;
  color: var(--sn-tier-basic-text, #fff) !important;
}

.sn-membership-current__badge--plus,
.sn-membresias-pill--plus,
.membresia-plus {
  background: var(--sn-tier-plus, #0f766e) !important;
  color: var(--sn-tier-plus-text, #fff) !important;
}

.sn-membership-current__badge--pro,
.sn-membresias-pill--pro,
.membresia-pro {
  background: var(--sn-tier-pro, #dc2626) !important;
  color: var(--sn-tier-pro-text, #fff) !important;
}
