/* ============================================================
   ROFIA — Camada de decoração de tema do agente (v9.2.0)
   Aplicada via classe `rofia-deco-<slug>` no <body> (o loader JS adiciona).
   Tudo pointer-events:none. Cores vêm de variáveis CSS (:root) setadas pelo loader.
   Slugs permitidos (whitelist no backend): neve · bandeirinhas · verde_amarelo · confete · cop_kids
   ============================================================ */

/* base comum dos overlays */
.rofia-deco-neve::before,
.rofia-deco-bandeirinhas::before,
.rofia-deco-verde_amarelo::before,
.rofia-deco-confete::before,
.rofia-deco-cop_kids::before {
  content: ''; position: fixed; left: 0; right: 0; pointer-events: none;
}

/* ── Natal — neve caindo (overlay sutil sobre a tela) ── */
@keyframes rofia-snow { 0% { background-position: 0 -200px, 0 -120px, 0 -300px; } 100% { background-position: 0 100vh, 0 100vh, 0 100vh; } }
.rofia-deco-neve::before {
  top: 0; height: 100vh; z-index: 2147483000; opacity: .55;
  background-image:
    radial-gradient(2px 2px at 20px 30px, #fff, transparent),
    radial-gradient(2px 2px at 120px 80px, #fff, transparent),
    radial-gradient(1.5px 1.5px at 220px 50px, #e8f4ff, transparent);
  background-size: 200px 220px, 180px 200px, 160px 240px;
  animation: rofia-snow 13s linear infinite;
}

/* ── Festa Junina — bandeirinhas no topo ── */
.rofia-deco-bandeirinhas { border-top: 3px solid #FFB703; }
.rofia-deco-bandeirinhas::before {
  top: 0; height: 18px; z-index: 2147483000; opacity: .95;
  background:
    linear-gradient(135deg, transparent 49%, #E63946 50%) 0 0 / 18px 18px repeat-x,
    linear-gradient(45deg, transparent 49%, #2A9D8F 50%) 9px 0 / 18px 18px repeat-x;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.35));
}

/* ── Brasil — faixa verde-amarela no topo (Copa / Olimpíadas / seleção) ── */
.rofia-deco-verde_amarelo::before {
  top: 0; height: 5px; z-index: 2147483000; opacity: 1;
  background: linear-gradient(90deg, #009C3B 0 40%, #FFDF00 40% 70%, #002776 70% 100%);
}

/* ── Confete (genérico/comemoração) ── */
@keyframes rofia-confete { 0% { background-position: 0 -120px, 60px -200px, 120px -80px; } 100% { background-position: 0 100vh, 60px 100vh, 120px 100vh; } }
.rofia-deco-confete::before {
  top: 0; height: 100vh; z-index: 2147483000; opacity: .5;
  background-image:
    radial-gradient(3px 3px at 30px 40px, #ff5e5e, transparent),
    radial-gradient(3px 3px at 90px 120px, #5ec8ff, transparent),
    radial-gradient(3px 3px at 160px 80px, #ffd35e, transparent);
  background-size: 200px 260px, 220px 300px, 180px 240px;
  animation: rofia-confete 9s linear infinite;
}

/* ── COP Kids — "Tia Ana" / céu estrelado (espaço) — visível SOBRE o chat ── */
@keyframes rofia-twinkle { 0%, 100% { opacity: .45; } 50% { opacity: .9; } }
.rofia-deco-cop_kids::before {
  top: 0; height: 100vh; z-index: 2147483000; opacity: .8;   /* na FRENTE; pointer-events:none herdado */
  background-image:
    radial-gradient(2px 2px at 24px 40px, #ffffff, transparent),
    radial-gradient(2.4px 2.4px at 130px 120px, #88d4ff, transparent),
    radial-gradient(2px 2px at 232px 210px, #fbbf24, transparent),
    radial-gradient(2.4px 2.4px at 80px 300px, #a78bfa, transparent),
    radial-gradient(1.5px 1.5px at 300px 90px, #ffffff, transparent),
    radial-gradient(1.5px 1.5px at 180px 360px, #7fdcff, transparent);
  background-size: 220px 300px;
  animation: rofia-twinkle 3s ease-in-out infinite;
}

/* ── COP Kids — astronautas ILUSTRADOS, contidos na caixa do chat (v9.2.6) ──
   #rofia-astro-layer é injetado pelo loader JS DENTRO de .chat-box, atrás das
   mensagens. Os PNGs têm fundo escuro → mix-blend:screen remove o fundo sobre
   o chat escuro. Movimento (lento + direções variadas) é feito no JS.          */
#rofia-astro-layer {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
  border-radius: inherit;
}
#rofia-astro-layer .rofia-astro {
  position: absolute; top: 0; left: 0; height: 240px; width: auto;
  transform-origin: center center;
  mix-blend-mode: screen;
  filter: drop-shadow(0 6px 16px rgba(56,200,240,.20));
  will-change: transform; user-select: none; -webkit-user-drag: none;
}
/* conteúdo do chat sempre ACIMA dos astronautas */
.rofia-deco-cop_kids .chat-box > .chat-hdr,
.rofia-deco-cop_kids .chat-box > .chat-msgs,
.rofia-deco-cop_kids .chat-box > .chat-quick,
.rofia-deco-cop_kids .chat-box > .chat-input,
.rofia-deco-cop_kids .chat-box > .chat-compliance { position: relative; z-index: 1; }

/* ── COP Kids — faixa aurora no cabeçalho do chat ── */
.chat-hdr.rofia-ck-hdr { position: relative; overflow: hidden; background: #05060f !important; }
.chat-hdr.rofia-ck-hdr > .rofia-ck-wave {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
  object-fit: cover; opacity: .72; mix-blend-mode: screen; pointer-events: none; z-index: 0;
}
.chat-hdr.rofia-ck-hdr > *:not(.rofia-ck-wave) { position: relative; z-index: 1; }
/* v9.2.6.1 — legibilidade sobre a aurora: scrim escuro atrás do texto/pill (escuro
   nas pontas onde ficam o nome e a pill; claro no meio p/ a aurora aparecer) +
   sombra no texto + avatar/pill reforçados. O ::after fica ENTRE a wave (z0) e o
   conteúdo (z1). */
.chat-hdr.rofia-ck-hdr::after {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(90deg,
    rgba(5,6,15,.92) 0%, rgba(5,6,15,.72) 26%, rgba(5,6,15,.24) 52%,
    rgba(5,6,15,.46) 80%, rgba(5,6,15,.80) 100%);
}
.chat-hdr.rofia-ck-hdr .chat-hdr-name { text-shadow: 0 1px 5px rgba(0,0,0,.95), 0 0 2px rgba(0,0,0,.8); }
.chat-hdr.rofia-ck-hdr .chat-hdr-sub  { color: #d6e4ff; text-shadow: 0 1px 4px rgba(0,0,0,.95); }
.chat-hdr.rofia-ck-hdr .chat-av { box-shadow: 0 2px 12px rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.18); }
.chat-hdr.rofia-ck-hdr .online-pill {
  background: rgba(2,4,12,.72) !important; border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 2px 10px rgba(0,0,0,.5); backdrop-filter: blur(3px);
}
