/* ================================================================
   comunidad/layout.css
   Migrado desde el <style> inline de comunidad/layout.php.
   ================================================================ */

  html { scroll-behavior: smooth; }
  
  /* Forzamos el texto a gris oscuro para pisar el text-gray-200 del header global
     y el fondo perlado para coherencia con el catálogo (#eef0f3). */
  body { color: #111827 !important; background-color: #eef0f3 !important; }

  .scrollbar-hide::-webkit-scrollbar { display: none; }
  .scrollbar-hide { scrollbar-width: none; }
  .line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .hilo-enter { animation: hiloEnter .35s cubic-bezier(.16,1,.3,1); }
  @keyframes hiloEnter { from { opacity:0; transform: translateY(-6px) scale(.99);} to { opacity:1; transform: translateY(0) scale(1);} }

  /* =========================================================
     SISTEMA DE RAREZAS — badges de plan de socio
     ========================================================= */

  /* BASE — Bronce/naranja sólido */
  .foro-badge-base {
    background: linear-gradient(135deg, #ea580c 0%, #c2410c 100%);
    color: #fff;
    border: 1px solid rgba(251, 146, 60, 0.6);
    box-shadow: 0 1px 2px rgba(194, 65, 12, 0.3);
  }

  /* PRO — Oro brillante con shimmer sutil */
  .foro-badge-pro {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 45%, #d97706 100%);
    color: #78350f;
    border: 1px solid rgba(253, 224, 71, 0.8);
    box-shadow: 0 2px 6px rgba(245, 158, 11, 0.35), inset 0 1px 0 rgba(255,255,255,0.4);
    position: relative;
    overflow: hidden;
  }
  .foro-badge-pro::after {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 50%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
    animation: proShimmer 3.5s ease-in-out infinite;
  }
  @keyframes proShimmer {
    0% { left: -100%; }
    60%, 100% { left: 200%; }
  }

  /* PLUS — Legendario holo: fuchsia → violeta → azul (idéntico a vender.php
     para que la insignia del foro sea visualmente consistente con la card
     del plan que el usuario eligió al pagar). */
  .foro-badge-plus {
    background: linear-gradient(115deg, #d946ef 0%, #8b5cf6 35%, #3b82f6 70%, #d946ef 100%);
    background-size: 220% 220%;
    animation: plusShift 4s ease-in-out infinite;
    color: #fff;
    border: 1px solid rgba(232, 121, 249, 0.7);
    box-shadow:
      0 0 10px rgba(217, 70, 239, 0.45),
      0 0 20px rgba(139, 92, 246, 0.25),
      inset 0 1px 0 rgba(255,255,255,0.3);
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
  }
  @keyframes plusShift {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
  }

  @media (prefers-reduced-motion: reduce) {
    .foro-badge-pro::after { animation: none; display: none; }
    .foro-badge-plus { animation: none; }
  }

  /* =========================================================
     RANGOS DE NIVEL — píldoras del rango de foro (Novato → Leyenda)
     Tailwind precompilado solo tiene orange/gray/white/black, así que
     defino los colores explícitos acá. Cada rango sube en sofisticación
     visual: plano → gradient → shimmer animado.
     ========================================================= */
  .mz-rango {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 14px;
    border-radius: 9999px;
    border: 1px solid;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    line-height: 1;
    user-select: none;
  }
  .mz-rango-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
  }

  .mz-rango-novato {
    background: #F5F5F4; border-color: #D6D3D1; color: #57534E;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }
  .mz-rango-novato .mz-rango-dot { background: #A8A29E; }

  .mz-rango-cadete {
    background: #FFF7ED; border-color: #FED7AA; color: #9A3412;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }
  .mz-rango-cadete .mz-rango-dot { background: #EA580C; }

  .mz-rango-piloto {
    background: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 50%, #CBD5E1 100%);
    border-color: #94A3B8; color: #334155;
    box-shadow: 0 2px 4px rgba(0,0,0,0.06);
    font-weight: 900;
  }
  .mz-rango-piloto .mz-rango-dot { background: #64748B; box-shadow: inset 0 1px 1px rgba(0,0,0,0.2); }

  .mz-rango-mecanico {
    background: linear-gradient(135deg, #FFFBEB 0%, #FEF3C7 50%, #FDE68A 100%);
    border-color: #FCD34D; color: #78350F;
    box-shadow: 0 2px 4px rgba(0,0,0,0.06);
    font-weight: 900;
  }
  .mz-rango-mecanico .mz-rango-dot { background: #F59E0B; box-shadow: inset 0 1px 1px rgba(0,0,0,0.2); }

  .mz-rango-veterano {
    background: linear-gradient(135deg, #E2E8F0 0%, #FFFFFF 50%, #94A3B8 100%);
    border-color: #64748B; color: #0F172A;
    box-shadow: 0 4px 8px rgba(0,0,0,0.08);
    font-weight: 900;
    font-style: italic;
    position: relative;
    overflow: hidden;
  }
  .mz-rango-veterano .mz-rango-dot { background: #0E7490; box-shadow: 0 0 5px rgba(8,145,178,0.5); }

  .mz-rango-leyenda {
    background: #1A1C1E; border-color: #1E293B; color: #FFFFFF;
    box-shadow: 0 6px 12px rgba(0,0,0,0.25);
    font-weight: 900;
    font-style: italic;
    letter-spacing: 0.2em;
    position: relative;
    overflow: hidden;
  }
  .mz-rango-leyenda .mz-rango-dot { background: #FFFFFF; box-shadow: 0 0 8px rgba(255,255,255,0.9); }

  /* Shimmer animado solo para Veterano y Leyenda */
  .mz-rango-veterano::after,
  .mz-rango-leyenda::after {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: mzRangoShine 4s infinite;
    pointer-events: none;
  }
  @keyframes mzRangoShine {
    from { transform: translateX(-100%); }
    to   { transform: translateX(100%); }
  }
  @media (prefers-reduced-motion: reduce) {
    .mz-rango-veterano::after,
    .mz-rango-leyenda::after { animation: none; display: none; }
  }

  /* =========================================================
     MODAL LEVEL-UP — animaciones livianas, GPU-only (WAAPI)
     ========================================================= */
  #mz-levelup-overlay { opacity: 0; will-change: opacity; backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
  #mz-levelup-card    { transform: scale(.88) translateZ(0); opacity: 0; will-change: transform, opacity; }
  .mz-levelup-logro   { opacity: 0; transform: translateY(10px) translateZ(0); will-change: transform, opacity; }

  /* Banner con gradiente sutil (claro→oscuro del color del rango) */
  .mz-levelup-banner {
    background: linear-gradient(135deg, var(--mz-c, #f97316) 0%, color-mix(in srgb, var(--mz-c, #f97316), #000 28%) 100%);
  }

  /* Glow ring del badge: pulse one-shot al aparecer */
  .mz-levelup-badge {
    box-shadow: 0 6px 18px -4px rgba(0,0,0,.35);
    animation: mzBadgePulse 1.6s ease-out .25s 1 both;
  }
  @keyframes mzBadgePulse {
    0%   { box-shadow: 0 6px 18px -4px rgba(0,0,0,.35), 0 0 0 0 rgba(255,255,255,.55); }
    60%  { box-shadow: 0 6px 18px -4px rgba(0,0,0,.35), 0 0 0 18px rgba(255,255,255,0); }
    100% { box-shadow: 0 6px 18px -4px rgba(0,0,0,.35), 0 0 0 0 rgba(255,255,255,0); }
  }

  .mz-sparkle {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.95);
    box-shadow: 0 0 8px rgba(255,255,255,.85);
    opacity: 0;
    animation: mzSparkle 1.7s ease-out forwards;
    animation-delay: var(--d, 0s);
    pointer-events: none;
  }
  @keyframes mzSparkle {
    0%   { opacity: 0; transform: scale(0) translateY(0); }
    30%  { opacity: 1; transform: scale(1.1) translateY(-2px); }
    100% { opacity: 0; transform: scale(.3) translateY(-18px); }
  }

  @media (prefers-reduced-motion: reduce) {
    #mz-levelup-overlay { opacity: 1 !important; backdrop-filter: none; -webkit-backdrop-filter: none; }
    #mz-levelup-card    { transform: none !important; opacity: 1 !important; }
    .mz-levelup-logro   { transform: none !important; opacity: 1 !important; }
    .mz-sparkle         { animation: none; opacity: 0; }
    .mz-levelup-badge   { animation: none; }
  }

  /* Avatar dentro de la tarjeta del feed: bg blanco con borde sutil. Sólo
     pisa el bg oscuro de mz_generar_avatar_nivel cuando se renderiza dentro
     del wrapper .mz-feed-avatar (el resto del foro mantiene el look oscuro). */
  .mz-feed-avatar > a > div,
  .mz-feed-avatar > div {
    background: #ffffff !important;
    border: 1px solid #e5e7eb;
  }
  .mz-feed-avatar > a > div > span,
  .mz-feed-avatar > div > span {
    color: #18181b !important;
  }
