/* Exodus Platform — paleta illumiCash (verde-esmeralda sobre verde-escuro, pedido do Moisés 24/07) */
:root {
  --bg: #0a100d;
  --painel: #101915;
  --painel-2: #16221c;
  --borda: #233129;
  --texto: #edf2ee;
  --texto-2: #9eb2a7;
  --ouro: #35b57e;          /* acento esmeralda (era o laranja neon) */
  --ouro-claro: #55cf97;
  --grad-laranja: linear-gradient(135deg, #3dcb8c, #1f8f60);
  --neon: rgba(61, 203, 140, .45);
  --neon-suave: rgba(61, 203, 140, .16);
  --verde: #2ebd6b;
  --amarelo: #f2c14e;
  --vermelho: #ef5350;
  --info: #5ca9c9;
}

/* Títulos preservam a personalidade editorial; números usam leitura limpa. */
h1 { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; letter-spacing: .2px; }
.stat-valor, .indicador-valor, .fixa-valor, .hbar-valor, .moeda, .degrau,
.campo-valor, .xp-total, .missao-metrica, .recompensa-xp, .mapa-num, input[type='number'] {
  font-family: 'Segoe UI Variable', Inter, 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1, 'zero' 1;
  letter-spacing: -.025em;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--texto);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* ---------- topbar ---------- */
.topbar { background: #070c0a; border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 10; }
.topbar-inner { max-width: 1150px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; gap: 26px; min-height: 58px; flex-wrap: wrap; }
.brand { font-size: 19px; font-weight: 700; letter-spacing: 3px; color: var(--ouro); text-decoration: none; }
.brand span { display: block; font-size: 8px; letter-spacing: 5px; color: var(--texto-2); font-weight: 400; }
.nav { display: flex; gap: 4px; flex: 1; flex-wrap: wrap; }
.nav a { color: var(--texto-2); text-decoration: none; padding: 8px 14px; border-radius: 20px; font-size: 14px; border: 1px solid transparent; transition: color .15s, border-color .15s, box-shadow .15s; }
.nav a:hover { color: var(--texto); border-color: var(--ouro); box-shadow: 0 0 10px var(--neon-suave); }
.nav a.ativo { color: #fff; background: var(--grad-laranja); box-shadow: 0 0 14px var(--neon); font-weight: 600; }
.badge { background: var(--vermelho); color: #fff; border-radius: 10px; font-size: 11px; padding: 1px 7px; margin-left: 6px; font-weight: 700; }
.topbar-user { display: flex; align-items: center; gap: 12px; }
.nome-user { color: var(--texto-2); font-size: 13px; }

/* ---------- layout ---------- */
.container { max-width: 1150px; margin: 0 auto; padding: 28px 20px 60px; width: 100%; flex: 1; }
.rodape { text-align: center; color: var(--texto-2); font-size: 12px; padding: 18px; border-top: 1px solid var(--borda); letter-spacing: .5px; }
.cabecalho-pagina { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
h1 { font-size: 26px; font-weight: 600; }
h2 { font-size: 17px; font-weight: 600; margin-bottom: 10px; }
h3 { font-size: 14px; color: var(--ouro-claro); margin: 12px 0 6px; }
.sub { color: var(--texto-2); font-size: 14px; margin-top: 4px; line-height: 1.5; }
.mini { color: var(--texto-2); font-size: 12px; }
.destaque { color: var(--ouro-claro); }
.link { color: var(--ouro-claro); text-decoration: none; }
.link:hover { text-decoration: underline; }

.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.tres-colunas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 820px) { .duas-colunas, .tres-colunas { grid-template-columns: 1fr; } }

/* ---------- cards ---------- */
.card { background: var(--painel); border: 1px solid var(--borda); border-radius: 12px; padding: 20px 22px; margin-bottom: 18px; }
.card-titulo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.card-atencao { border-color: #6b4a1f; background: #1d1812; }
.card-erro { max-width: 520px; margin: 60px auto; text-align: center; }
.card-erro p { color: var(--texto-2); margin: 12px 0 20px; }

/* ---------- indicadores (stat tiles) ---------- */
.grid-indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-bottom: 18px; }
.indicador { display: flex; flex-direction: column; gap: 6px; }
.indicador-rotulo { font-size: 12px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--texto-2); }
.indicador-valor { font-size: 34px; font-weight: 700; line-height: 1; }
.indicador-valor small { font-size: 16px; color: var(--texto-2); font-weight: 400; }
.indicador-valor.verde { color: var(--verde); }
.indicador-extra { font-size: 12px; color: var(--texto-2); }
.barra { height: 8px; background: var(--painel-2); border-radius: 4px; overflow: hidden; margin-top: 4px; }
.barra-fill { height: 100%; background: linear-gradient(90deg, var(--ouro), var(--verde)); border-radius: 4px; }

/* ---------- faróis (status nunca só por cor: glifo embutido) ---------- */
.farol-dot { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 900; color: #0a0d11; flex-shrink: 0; }
.farol-dot.grande { width: 40px; height: 40px; font-size: 19px; }
.farol-dot.mini-dot { width: 18px; height: 18px; font-size: 10px; }
.st-verde { background: var(--verde); box-shadow: 0 0 10px rgba(46, 189, 107, .55); }
.st-verde::after { content: '✓'; }
.st-amarelo { background: var(--amarelo); box-shadow: 0 0 10px rgba(242, 193, 78, .45); }
.st-amarelo::after { content: '!'; }
.st-vermelho { background: var(--vermelho); box-shadow: 0 0 10px rgba(239, 83, 80, .45); }
.st-vermelho::after { content: '✕'; }

.semaforo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin-top: 12px; }
.farol-item { display: flex; align-items: center; gap: 10px; background: var(--painel-2); border: 1px solid var(--borda); border-radius: 12px; padding: 10px 12px; text-decoration: none; color: var(--texto); transition: border-color .15s, box-shadow .15s, transform .12s; }
a.farol-item:hover { border-color: var(--ouro); box-shadow: 0 0 14px var(--neon-suave); transform: translateY(-2px); }
.farol-item.fase-da-vez { border-color: var(--ouro); box-shadow: 0 0 14px var(--neon-suave); }
.farol-texto { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.farol-num { color: var(--texto-2); font-size: 12px; }
.farol-titulo { font-size: 13.5px; line-height: 1.3; }

/* ---------- ícones das fases ---------- */
.ic { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.icone-fase {
  width: clamp(38px, 5.5vw, 44px); height: clamp(38px, 5.5vw, 44px);
  border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
  font-size: clamp(18px, 2.6vw, 22px); flex-shrink: 0;
  background: var(--painel); border: 1px solid var(--borda); color: var(--texto-2);
  transition: box-shadow .15s, border-color .15s;
}
.icone-fase.grande { width: clamp(48px, 7vw, 58px); height: clamp(48px, 7vw, 58px); font-size: clamp(22px, 3.2vw, 28px); }
.icone-fase.ic-verde { color: var(--verde); border-color: rgba(46, 189, 107, .5); background: rgba(46, 189, 107, .09); }
.icone-fase.ic-vez { background: var(--grad-laranja); border-color: transparent; color: #fff; }
.icone-fase.ic-bloq { color: var(--texto-2); opacity: .8; }
.pulsa { animation: pulso-neon 2s ease-in-out infinite; }
@keyframes pulso-neon {
  0%, 100% { box-shadow: 0 0 6px var(--neon-suave); }
  50% { box-shadow: 0 0 20px var(--neon); }
}

/* tags de status (sempre com texto) */
.tag { display: inline-block; font-size: 12px; padding: 3px 10px; border-radius: 20px; background: var(--painel-2); border: 1px solid var(--borda); color: var(--texto-2); }
.tag-verde { color: var(--verde); border-color: var(--verde); }
.tag-info { color: var(--info); border-color: var(--info); }
.st-verde-bg { color: #0a0d11; background: var(--verde); border: 0; font-weight: 600; }
.st-amarelo-bg { color: #0a0d11; background: var(--amarelo); border: 0; font-weight: 600; }
.st-vermelho-bg { color: #fff; background: var(--vermelho); border: 0; font-weight: 600; }
.mini-tag { font-size: 11px; padding: 2px 8px; }

/* ---------- cartão de farol (edição) ---------- */
.farol-card-cabecalho { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 14px; }
.dica { font-size: 13px; color: var(--ouro-claro); margin-top: 6px; }
.farol-form { display: flex; flex-direction: column; gap: 10px; }
.opcoes-status { display: flex; gap: 8px; flex-wrap: wrap; }
.opcao { display: flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid var(--borda); border-radius: 8px; cursor: pointer; font-size: 13.5px; background: var(--painel-2); }
.opcao input { accent-color: var(--ouro); }
.opcao:has(input:checked).st-verde-op { border-color: var(--verde); color: var(--verde); }
.opcao:has(input:checked).st-amarelo-op { border-color: var(--amarelo); color: var(--amarelo); }
.opcao:has(input:checked).st-vermelho-op { border-color: var(--vermelho); color: var(--vermelho); }
.linha-envio { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.resumo-farois { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- formulários ---------- */
.form-vertical { display: flex; flex-direction: column; gap: 12px; }
.form-vertical label, .card label.check { font-size: 13px; color: var(--texto-2); display: flex; flex-direction: column; gap: 5px; }
label.check { flex-direction: row !important; align-items: center; gap: 10px !important; font-size: 14.5px !important; color: var(--texto) !important; cursor: pointer; }
label.check input { width: 18px; height: 18px; accent-color: var(--verde); }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=file], select, textarea {
  background: var(--painel-2); border: 1px solid var(--borda); color: var(--texto);
  border-radius: 8px; padding: 10px 12px; font-size: 14px; font-family: inherit; width: 100%;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ouro); box-shadow: 0 0 0 3px var(--neon-suave), 0 0 12px var(--neon-suave); }
.duas-colunas-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 680px) { .duas-colunas-form { grid-template-columns: 1fr; } }
.card-form { max-width: 760px; }
.form-inline { display: flex; gap: 8px; align-items: center; }
.acoes-linha { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.form-inline select { width: auto; padding: 6px 8px; font-size: 13px; }

/* ---------- botões ---------- */
.btn { display: inline-block; border: 0; border-radius: 24px; padding: 10px 20px; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; text-align: center; font-family: inherit; transition: box-shadow .15s, transform .1s, border-color .15s; }
.btn:active { transform: scale(.97); }
.btn-primario { background: var(--grad-laranja); color: #fff; box-shadow: 0 0 10px var(--neon-suave); }
.btn-primario:hover { box-shadow: 0 0 18px var(--neon); }
.btn-ghost { background: transparent; color: var(--texto-2); border: 1px solid var(--borda); }
.btn-ghost:hover { color: var(--texto); border-color: var(--ouro); box-shadow: 0 0 10px var(--neon-suave); }
.btn-whatsapp { background: #1faa55; color: #fff; }
.btn-whatsapp:hover { background: #25c463; }
.btn-sm { padding: 6px 12px; font-size: 13px; }
.btn-block { width: 100%; }

/* ---------- listas ---------- */
.lista-tarefas { list-style: none; margin-top: 8px; }
.lista-tarefas li { padding: 7px 0; border-bottom: 1px solid var(--borda); font-size: 14px; color: var(--texto-2); }
.lista-tarefas li:last-child { border-bottom: 0; }
.lista-tarefas li.feita, span.feita { text-decoration: line-through; opacity: .55; }
.lista-jornada { list-style: none; margin-top: 12px; }
.lista-jornada li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--borda); font-size: 14.5px; }
.lista-jornada li:last-child { border-bottom: 0; }
.check-btn { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--borda); background: transparent; color: #0a0d11; cursor: pointer; font-size: 14px; font-weight: 900; flex-shrink: 0; }
.check-btn:hover { border-color: var(--verde); }
.check-btn.ok { background: var(--verde); border-color: var(--verde); }
.lista-guia { margin: 6px 0 6px 20px; line-height: 1.8; font-size: 14.5px; color: var(--texto); }
.lista-guia.numerada { list-style: decimal; }
.lista-alertas { list-style: none; }
.lista-alertas li { padding: 8px 0; border-bottom: 1px solid var(--borda); font-size: 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.lista-alertas li:last-child { border-bottom: 0; }
.fase-card.fase-atual { border-color: var(--ouro); box-shadow: 0 0 18px var(--neon-suave); }
.linha-fase { font-size: 14px; color: var(--texto-2); padding: 5px 0; }
.linha-fase.destaque { color: var(--ouro-claro); }

/* ---------- tabelas ---------- */
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--texto-2); padding: 8px 10px; border-bottom: 1px solid var(--borda); }
.tabela td { padding: 9px 10px; border-bottom: 1px solid var(--borda); vertical-align: middle; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela-scroll { overflow-x: auto; }
.matriz .col-pilar { text-align: center; padding-left: 4px; padding-right: 4px; }
.legenda { margin-top: 12px; line-height: 2; display: flex; flex-wrap: wrap; gap: 4px 14px; }

/* ---------- menu de módulos (Organizador / Trilha) ---------- */
.menu-modulo { position: relative; }
.menu-modulo-topo {
  display: inline-block; padding: 8px 14px; border-radius: 20px; font-size: 14px;
  color: var(--texto-2); text-decoration: none; border: 1px solid transparent;
  transition: color .15s, border-color .15s, box-shadow .15s;
}
.menu-modulo-topo:hover { color: var(--texto); border-color: var(--ouro); box-shadow: 0 0 10px var(--neon-suave); }
.menu-modulo.ativo > .menu-modulo-topo { color: #fff; background: var(--grad-laranja); box-shadow: 0 0 14px var(--neon); font-weight: 600; }
.menu-submenu {
  display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 30;
  background: var(--painel); border: 1px solid var(--borda); border-radius: 12px;
  padding: 6px; min-width: 190px; box-shadow: 0 8px 24px rgba(0,0,0,.5);
}
.menu-modulo:hover .menu-submenu, .menu-modulo:focus-within .menu-submenu { display: block; }
.menu-submenu a { display: block; padding: 9px 14px; border-radius: 8px; color: var(--texto-2); text-decoration: none; font-size: 14px; white-space: nowrap; }
.menu-submenu a:hover { background: var(--painel-2); color: var(--texto); }
@media (max-width: 860px) {
  /* no celular o submenu vira lista aberta, sem hover */
  .menu-submenu { display: block; position: static; border: 0; box-shadow: none; padding: 0 0 0 10px; min-width: 0; background: transparent; }
  .menu-submenu a { padding: 6px 10px; font-size: 13px; }
}

/* ---------- cards dos dois módulos no painel ---------- */
.modulos-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
@media (max-width: 820px) { .modulos-grid { grid-template-columns: 1fr; } }
.modulo-card {
  display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--texto);
  background: var(--painel); border: 1px solid var(--borda); border-radius: 16px; padding: 20px 22px;
  transition: border-color .15s, box-shadow .15s, transform .12s;
}
.modulo-card:hover { border-color: var(--ouro); box-shadow: 0 0 18px var(--neon-suave); transform: translateY(-2px); }
.modulo-emoji { font-size: 34px; line-height: 1; flex-shrink: 0; }
.modulo-texto { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.modulo-texto strong { font-size: 17px; }
.modulo-stat { font-size: 13px; color: var(--texto-2); margin-top: 4px; }
.modulo-seta { font-size: 22px; color: var(--ouro); flex-shrink: 0; }

/* ---------- financeiro estilo illumiCash ---------- */
.eyebrow { font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--texto-2); font-weight: 700; }
.grid-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; margin: 16px 0; }
.stat { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.stat-rotulo { font-size: 12px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--texto-2); display: block; }
.stat-valor { font-size: clamp(24px, 3.4vw, 30px); font-weight: 700; line-height: 1.2; }
.stat-ic { width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.stat-ic.i-neutro { background: rgba(255, 106, 0, .14); color: var(--ouro-claro); }
.stat-ic.i-verde { background: rgba(46, 189, 107, .14); color: var(--verde); }
.stat-ic.i-vermelho { background: rgba(239, 83, 80, .14); color: var(--vermelho); }

.card-filtros { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.card-filtros label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; color: var(--texto-2); text-transform: uppercase; letter-spacing: 1px; }
.card-filtros select, .card-filtros input { min-width: 150px; }

.fixa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; margin-top: 14px; }
.fixa-card { background: var(--painel-2); border: 1px solid var(--borda); border-radius: 14px; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; transition: border-color .15s, box-shadow .15s; }
.fixa-card:hover { border-color: var(--ouro); box-shadow: 0 0 12px var(--neon-suave); }
.fixa-nome { font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .5px; }
.fixa-valor { font-size: 24px; font-weight: 700; }
.fixa-meta { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.fixa-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }

.modal-overlay { position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, .7); display: flex; align-items: center; justify-content: center; padding: 18px; }
.modal-overlay[hidden] { display: none; }
.modal-caixa { background: var(--painel); border: 1px solid var(--ouro); border-radius: 16px; box-shadow: 0 0 30px var(--neon-suave); width: 100%; max-width: 460px; max-height: 92vh; overflow-y: auto; padding: 22px 24px; }
.modal-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.toggle-tipo { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; background: var(--painel-2); border: 1px solid var(--borda); border-radius: 24px; padding: 4px; }
.toggle-tipo label { text-align: center; padding: 8px 4px; border-radius: 20px; cursor: pointer; font-weight: 700; font-size: 14px; color: var(--texto-2); }
.toggle-tipo input { display: none; }
.toggle-tipo label:has(input:checked) { color: #fff; }
.toggle-tipo label.t-saida:has(input:checked) { background: var(--vermelho); }
.toggle-tipo label.t-entrada:has(input:checked) { background: var(--verde); color: #0a0d11; }

/* ---------- gráficos dos painéis ---------- */
.hbar-lista { display: flex; flex-direction: column; gap: 8px; }
.hbar { display: flex; align-items: center; gap: 10px; }
.hbar-rotulo { width: 130px; font-size: 13px; color: var(--texto-2); flex-shrink: 0; }
.hbar-trilho { flex: 1; height: 14px; background: var(--painel-2); border-radius: 7px; overflow: hidden; }
.hbar-fill { display: block; height: 100%; background: var(--grad-laranja); border-radius: 7px; }
.hbar-valor { width: 110px; text-align: right; font-size: 13px; font-weight: 600; flex-shrink: 0; }

.grafico-saldo { width: 100%; height: 170px; display: block; }
.gs-zero { stroke: var(--borda); stroke-width: 1; stroke-dasharray: 5 5; }
.gs-linha { fill: none; stroke: var(--ouro); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.gs-ponto { fill: var(--ouro); stroke: #0b0c0f; stroke-width: 2; }

.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: 10px; }
.cal-cab { text-align: center; font-size: 10px; color: var(--texto-2); letter-spacing: 1px; }
.cal-dia {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 8px; font-size: 12px; color: var(--texto-2);
  background: var(--painel-2); border: 1px solid var(--borda);
}
.cal-dia.vazio { background: transparent; border: 0; }
.cal-dia.feito { background: var(--verde); border-color: var(--verde); color: #0a0d11; font-weight: 800; }
.cal-dia.hoje { border-color: var(--ouro); box-shadow: 0 0 8px var(--neon-suave); }
.cal-dia.futuro { opacity: .45; }

.pont-grid { display: flex; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
.pont-mes { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; min-width: 64px; }
.pont-barra { display: flex; flex-direction: column; width: 34px; height: 120px; border-radius: 8px; overflow: hidden; justify-content: flex-end; }
.pont-seg { display: block; width: 100%; min-height: 4px; }
.chip-vazio { background: var(--painel-2); border: 1px dashed var(--borda); }

.docs-lista { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.chips-filtro { display: flex; gap: 6px; flex-wrap: wrap; }
.chips-filtro a { padding: 6px 14px; border-radius: 18px; border: 1px solid var(--borda); color: var(--texto-2); text-decoration: none; font-size: 13px; font-weight: 600; transition: border-color .15s, box-shadow .15s; }
.chips-filtro a:hover { color: var(--texto); border-color: var(--ouro); box-shadow: 0 0 8px var(--neon-suave); }
.chips-filtro a.ativa { background: var(--grad-laranja); color: #fff; border-color: transparent; }
.btn-bloqueado { opacity: .5; cursor: not-allowed; }

/* ---------- lembretes ---------- */
.lembrete { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 18px; }
.lembrete.lido { opacity: .55; }
.lembrete-corpo { display: flex; flex-direction: column; gap: 4px; }
.lembrete-msg { font-size: 14.5px; line-height: 1.5; }

/* ---------- alertas ---------- */
.alerta { padding: 10px 14px; border-radius: 8px; font-size: 14px; margin-bottom: 14px; }
.alerta-erro { background: #2a1517; border: 1px solid var(--vermelho); color: #ff9b99; }

/* ---------- rating / moedinha ---------- */
.moeda {
  border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; letter-spacing: .5px; flex-shrink: 0; position: relative; overflow: hidden;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.35), inset 0 -6px 10px rgba(0,0,0,.25), 0 2px 8px rgba(0,0,0,.45);
  transition: transform .15s;
}
.moeda::after {
  content: ''; position: absolute; inset: -60% auto auto -60%; width: 60%; height: 220%;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.45) 50%, transparent 80%);
  transform: rotate(20deg); animation: brilho-moeda 3.2s ease-in-out infinite;
}
@keyframes brilho-moeda {
  0%, 55%, 100% { left: -70%; }
  75% { left: 130%; }
}
.moeda:hover { transform: scale(1.1) rotate(-4deg); }
.moeda-sm { width: clamp(30px, 4.5vw, 34px); height: clamp(30px, 4.5vw, 34px); font-size: 11px; }
.moeda-md { width: clamp(46px, 7vw, 54px); height: clamp(46px, 7vw, 54px); font-size: 15px; }
.moeda-lg { width: clamp(70px, 11vw, 88px); height: clamp(70px, 11vw, 88px); font-size: 24px; }
.rating-atual { display: flex; align-items: center; gap: 12px; }
.rating-info { display: flex; flex-direction: column; line-height: 1.35; }

.escada-rating { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px; }
.degrau {
  min-width: 42px; text-align: center; padding: 6px 8px; border-radius: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 1px;
  background: var(--painel); border: 1px solid var(--borda); color: var(--texto-2);
}
.degrau.alcancado { border-color: transparent; }
.degrau:last-child.alcancado { box-shadow: 0 0 14px rgba(245, 197, 24, .6); }

.card-celebra { border-color: var(--ouro); background: linear-gradient(135deg, #1d1812, #12211a); }
.celebra-conteudo { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.moeda-pop { animation: moeda-pop .9s cubic-bezier(.2, 1.6, .4, 1) both; }
@keyframes moeda-pop {
  0% { transform: scale(.2) rotate(-30deg); opacity: 0; }
  60% { transform: scale(1.25) rotate(8deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); }
}

.fase-bloqueada { opacity: .55; }
.fase-bloqueada:hover { opacity: .8; }
.card-neon { border-color: var(--ouro); box-shadow: 0 0 18px var(--neon-suave); }

@media (prefers-reduced-motion: reduce) {
  .moeda::after, .pulsa, .moeda-pop { animation: none !important; }
  .btn, .farol-item, .moeda, .nav a { transition: none !important; }
}

/* ---------- organização financeira ---------- */
.passos { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.passo { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 30px; border: 1px solid var(--borda); color: var(--texto-2); font-size: 13px; text-decoration: none; background: var(--painel); }
.passo-num { width: 22px; height: 22px; border-radius: 50%; background: var(--painel-2); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.passo.atual { border-color: var(--ouro); color: var(--ouro-claro); box-shadow: 0 0 12px var(--neon-suave); }
.passo.atual .passo-num { background: var(--grad-laranja); color: #fff; }
.passo.feito { border-color: var(--verde); color: var(--verde); }
.passo.feito .passo-num { background: var(--verde); color: #0a0d11; }
a.passo.feito:hover { background: var(--painel-2); }

.linha-compromisso { display: grid; grid-template-columns: 2fr 1fr 100px 1.2fr 110px; gap: 10px; align-items: end; }
@media (max-width: 860px) { .linha-compromisso { grid-template-columns: 1fr 1fr; } }
.linha-compromisso label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; color: var(--texto-2); }
.campo-valor { display: flex; align-items: center; gap: 0; }
.campo-valor span { background: var(--painel-2); border: 1px solid var(--borda); border-right: 0; border-radius: 8px 0 0 8px; padding: 10px 10px; font-size: 14px; color: var(--texto-2); }
.campo-valor input { border-radius: 0 8px 8px 0; }

/* ---------- sub-abas do financeiro ---------- */
.subnav { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.subnav a { padding: 9px 18px; border-radius: 22px; border: 1px solid var(--borda); color: var(--texto-2); text-decoration: none; font-size: 14px; font-weight: 600; transition: border-color .15s, box-shadow .15s; }
.subnav a:hover { color: var(--texto); border-color: var(--ouro); box-shadow: 0 0 10px var(--neon-suave); }
.subnav a.ativa { background: var(--grad-laranja); color: #fff; border-color: transparent; box-shadow: 0 0 14px var(--neon); }

/* ---------- lançamentos (entradas e saídas) ---------- */
.lanc-box { padding: 0; overflow: hidden; }
.lanc-box summary { list-style: none; cursor: pointer; }
.lanc-box summary::-webkit-details-marker { display: none; }
.lanc-abrir { display: flex; align-items: center; gap: 10px; padding: 16px 20px; font-size: 16px; font-weight: 700; transition: box-shadow .15s; }
.lanc-abrir:hover { box-shadow: 0 0 14px var(--neon-suave); }
.lanc-abrir-entrada { color: var(--verde); }
.lanc-abrir-saida { color: var(--vermelho); }
.lanc-box[open] .lanc-abrir { border-bottom: 1px solid var(--borda); }
.lanc-box form { padding: 0 20px 18px; }

.legenda-fluxo { display: flex; gap: 14px; font-size: 13px; color: var(--texto-2); }
.legenda-fluxo span { display: flex; align-items: center; gap: 6px; }
.chip { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.chip-entrada { background: var(--verde); }
.chip-saida { background: var(--vermelho); }

.grafico-fluxo { display: flex; gap: 3px; align-items: flex-end; margin-top: 14px; overflow-x: auto; padding-bottom: 4px; }
.gf-dia { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; min-width: 18px; }
.gf-barras { display: flex; gap: 2px; align-items: flex-end; height: 120px; }
.gf-bar { width: 7px; border-radius: 3px 3px 0 0; }
.gf-entrada { background: var(--verde); }
.gf-saida { background: var(--vermelho); }
.gf-rotulo { font-size: 9px; color: var(--texto-2); }

.fin-resumo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.nav-mes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.texto-vermelho { color: var(--vermelho); }
.card-sucesso { border-color: var(--verde); background: #12211a; }

/* status financeiro (sempre com texto, nunca só cor) */
.fin-antecipado, .fin-pago { color: #0a0d11; background: var(--verde); border: 0; font-weight: 600; }
.fin-pago_atraso, .fin-vence_breve { color: #0a0d11; background: var(--amarelo); border: 0; font-weight: 600; }
.fin-atrasado { color: #fff; background: var(--vermelho); border: 0; font-weight: 600; }
.fin-pendente { color: var(--texto-2); }

/* ---------- ajuda / dicas / senha ---------- */
.btn-ajuda {
  position: fixed; right: 18px; bottom: 18px; z-index: 40;
  width: 46px; height: 46px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--grad-laranja); color: #fff; font-size: 20px; font-weight: 800;
  box-shadow: 0 0 16px var(--neon); transition: transform .12s;
}
.btn-ajuda:hover { transform: scale(1.1); }
.ajuda-overlay {
  position: fixed; inset: 0; z-index: 50; background: rgba(0, 0, 0, .65);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.ajuda-overlay[hidden] { display: none; }
.ajuda-modal {
  background: var(--painel); border: 1px solid var(--ouro); border-radius: 14px;
  box-shadow: 0 0 30px var(--neon-suave); max-width: 560px; width: 100%;
  max-height: 80vh; overflow-y: auto; padding: 22px 24px;
}
.ajuda-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.tooltip-dica {
  position: absolute; z-index: 60; max-width: 280px; padding: 8px 12px;
  background: #08090b; border: 1px solid var(--ouro); border-radius: 8px;
  color: var(--texto); font-size: 12.5px; line-height: 1.45;
  box-shadow: 0 0 14px var(--neon-suave); pointer-events: none;
}
.link-senha { text-decoration: none; border-bottom: 1px dashed var(--borda); }
.link-senha:hover { color: var(--ouro-claro); border-color: var(--ouro); }
.alerta-ok { background: #12211a; border: 1px solid var(--verde); color: #7fdca4; }
.senha-caixa {
  font-family: Consolas, monospace; font-size: 22px; letter-spacing: 1px; text-align: center;
  background: var(--painel-2); border: 1px dashed var(--ouro); border-radius: 10px; padding: 16px;
  color: var(--ouro-claro); user-select: all;
}

/* ---------- login ---------- */
.tela-login { align-items: center; justify-content: center; display: flex; }
.login-card { background: var(--painel); border: 1px solid var(--borda); border-radius: 14px; padding: 40px 36px; width: 100%; max-width: 400px; margin: 20px; }
.login-brand { font-size: 26px; font-weight: 700; letter-spacing: 4px; color: var(--ouro); text-align: center; }
.login-brand span { display: block; font-size: 10px; letter-spacing: 7px; color: var(--texto-2); font-weight: 400; margin-top: 2px; }
.login-slogan { text-align: center; color: var(--texto-2); font-size: 13px; margin: 14px 0 24px; }
.login-rodape { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--borda); color: var(--texto-2); font-size: 12px; line-height: 1.6; text-align: center; }


/* ---------- Trilha do Rating Pro: missões, XP e recompensas ---------- */
.trilha-cabecalho { align-items: center; }
.trilha-cabecalho h1 { margin: 5px 0 2px; font-size: clamp(27px, 4vw, 38px); }
.trilha-resumo { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.trilha-resumo > div { background: var(--painel); border: 1px solid var(--borda); border-radius: 14px; padding: 10px 14px; }
.xp-total { display: flex; flex-direction: column; justify-content: center; min-width: 110px; }
.xp-total strong { color: var(--ouro-claro); font-size: 20px; }
.escada-campanha { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
.escada-campanha .degrau { flex: 1; min-width: 48px; position: relative; }
.escada-campanha .degrau.atual { outline: 2px solid var(--texto); outline-offset: 2px; }

.xp-toast { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 13px 18px; border: 1px solid var(--ouro); border-radius: 14px; background: var(--neon-suave); animation: xp-entrada .45s ease-out both; }
.xp-toast strong { color: var(--ouro-claro); font-size: 20px; }
.xp-toast span { color: var(--texto-2); font-size: 13px; }
@keyframes xp-entrada { from { opacity: 0; transform: translateY(-8px); } }
.celebra-missao h2 { font-size: 22px; margin: 4px 0; }

.missao-hero {
  display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 28px;
  overflow: hidden; position: relative; min-height: 360px; margin-bottom: 16px; padding: clamp(26px, 5vw, 54px);
  border: 1px solid rgba(85, 207, 151, .42); border-radius: 24px;
  background:
    radial-gradient(circle at 86% 18%, rgba(85, 207, 151, .23), transparent 30%),
    linear-gradient(135deg, #13241c 0%, #0b130f 54%, #0e1d16 100%);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28), inset 0 1px rgba(255, 255, 255, .03);
}
.missao-hero::before { content: ''; position: absolute; width: 260px; height: 260px; right: -105px; bottom: -130px; border: 1px solid rgba(85,207,151,.18); border-radius: 50%; box-shadow: 0 0 0 36px rgba(85,207,151,.025), 0 0 0 72px rgba(85,207,151,.018); }
.missao-hero-copy { align-self: center; position: relative; z-index: 1; }
.missao-kicker { display: inline-flex; padding: 6px 11px; border: 1px solid rgba(85,207,151,.38); border-radius: 999px; color: var(--ouro-claro); font-size: 11px; font-weight: 800; letter-spacing: 1.7px; }
.missao-hero h2 { margin: 18px 0 12px; max-width: 700px; font-size: clamp(34px, 6vw, 66px); line-height: .98; letter-spacing: -.045em; }
.missao-objetivo { max-width: 660px; color: #c5d5cc; font-size: clamp(15px, 2vw, 18px); line-height: 1.58; }
.missao-acoes-topo { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.briefing-status { margin-top: 10px; }
.missao-hero-painel { align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; position: relative; z-index: 1; padding: 22px; border: 1px solid rgba(255,255,255,.08); border-radius: 20px; background: rgba(7, 15, 11, .58); backdrop-filter: blur(8px); }
.guia-avatar { width: 112px; height: 112px; align-self: center; margin: auto; position: relative; display: grid; place-items: center; border: 1px solid rgba(85,207,151,.5); border-radius: 40% 40% 46% 46%; background: linear-gradient(145deg, #234f3a, #10291d); box-shadow: 0 0 34px rgba(61,203,140,.22), inset 0 0 30px rgba(85,207,151,.13); }
.guia-avatar > span { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--grad-laranja); color: white; font-size: 30px; font-weight: 900; }
.guia-avatar i { position: absolute; left: 50%; top: 50%; width: 150%; height: 150%; border: 1px solid rgba(85,207,151,.18); border-radius: 50%; transform: translate(-50%,-50%); animation: guia-onda 2.4s ease-out infinite; }
.guia-avatar i:nth-child(3) { animation-delay: .8s; }
.guia-avatar i:nth-child(4) { animation-delay: 1.6s; }
.guia-avatar.falando > span { animation: guia-fala .36s ease-in-out infinite alternate; }
@keyframes guia-onda { 0% { width: 90%; height: 90%; opacity: .7; } 100% { width: 190%; height: 190%; opacity: 0; } }
@keyframes guia-fala { to { transform: scale(1.06) translateY(-2px); } }
.missao-metrica { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-top: 16px; font-size: 12px; color: var(--texto-2); }
.missao-metrica strong { color: var(--texto); font-size: 22px; }
.missao-metrica.rodape-metrica strong { font-size: 12px; color: var(--ouro-claro); }
.barra-missao { height: 11px; margin-top: 8px; background: #07100b; }
.barra-missao .barra-fill { box-shadow: 0 0 16px var(--neon); transition: width .45s ease; }

.por-que-card { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 18px; padding: 18px 22px; border: 1px solid var(--borda); border-radius: 16px; background: linear-gradient(90deg, rgba(92,169,201,.09), transparent); }
.por-que-icone { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: rgba(92,169,201,.13); font-size: 22px; }
.por-que-card p { margin-top: 5px; color: #c2d0c8; font-size: 14px; line-height: 1.55; }

.missao-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(250px, .6fr); gap: 18px; align-items: start; }
.acoes-missao { padding: clamp(20px, 4vw, 30px); }
.acoes-timeline { list-style: none; margin-top: 18px; }
.acao-item { display: grid; grid-template-columns: 40px 1fr; gap: 14px; position: relative; padding: 0 0 25px; }
.acao-item:not(:last-child)::after { content: ''; position: absolute; top: 40px; bottom: 0; left: 19px; width: 2px; background: var(--borda); }
.acao-item.feita:not(:last-child)::after { background: var(--verde); }
.acao-num { width: 40px; height: 40px; display: grid; place-items: center; position: relative; z-index: 1; border: 1px solid var(--borda); border-radius: 50%; background: var(--painel-2); color: var(--texto-2); font-weight: 800; font-variant-numeric: tabular-nums; }
.acao-item.feita .acao-num { background: var(--verde); border-color: var(--verde); color: #07130c; }
.acao-item.atual .acao-num { background: var(--grad-laranja); color: #fff; border-color: transparent; box-shadow: 0 0 18px var(--neon); }
.acao-corpo { min-width: 0; padding-top: 2px; }
.acao-titulo-linha { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.acao-titulo-linha strong { font-size: 15px; }
.acao-corpo p { margin: 6px 0 12px; color: var(--texto-2); font-size: 13.5px; line-height: 1.5; }
.acao-item.bloqueada { opacity: .48; }
.acao-item.atual .acao-corpo { padding: 14px 16px; margin-top: -12px; border: 1px solid rgba(85,207,151,.3); border-radius: 14px; background: rgba(61,203,140,.055); }
.acao-item .btn span { margin-left: 7px; opacity: .75; font-size: 11px; }

.recompensa-card { position: sticky; top: 80px; overflow: hidden; text-align: center; padding: 26px 22px; }
.badge-preview { width: 132px; height: 132px; display: grid; place-items: center; position: relative; margin: 20px auto 14px; border: 1px dashed rgba(158,178,167,.35); border-radius: 32px; background: radial-gradient(circle, rgba(85,207,151,.15), transparent 68%); filter: grayscale(1); opacity: .68; }
.badge-preview > span { font-size: 64px; }
.cadeado-recompensa { position: absolute; right: -6px; bottom: -6px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--borda); border-radius: 50%; background: var(--painel-2); font-style: normal; }
.recompensa-card.liberada { border-color: var(--ouro); box-shadow: 0 0 22px var(--neon-suave); }
.recompensa-card.liberada .badge-preview { filter: none; opacity: 1; animation: badge-libera .7s cubic-bezier(.2,1.5,.4,1) both; }
@keyframes badge-libera { from { transform: scale(.65) rotate(-8deg); } }
.recompensa-card h2 { font-size: 22px; }
.recompensa-xp { display: flex; flex-direction: column; gap: 2px; margin: 20px 0; padding: 13px; border-radius: 12px; background: var(--painel-2); }
.recompensa-xp strong { color: var(--ouro-claro); font-size: 22px; }
.recompensa-xp span { color: var(--texto-2); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }

.validacao-card { padding: clamp(22px, 4vw, 32px); }
.validacao-form { margin-top: 20px; }
.validacao-lista { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; margin-bottom: 18px; }
.validacao-check { min-height: 48px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 11px; background: var(--painel-2); }
.validacao-check:has(input:checked) { border-color: rgba(46,189,107,.62); background: rgba(46,189,107,.08); }
.campo-nota { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; color: var(--texto-2); font-size: 13px; }
.campo-nota small { opacity: .75; }
.concluir-missao { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--borda); }
.concluir-missao > div { display: flex; flex-direction: column; }
.concluir-missao strong { color: var(--ouro-claro); }
.btn:disabled { opacity: .42; cursor: not-allowed; box-shadow: none; }

.mapa-missoes { margin: 30px 0 18px; }
.mapa-titulo { display: flex; justify-content: space-between; align-items: end; gap: 12px; margin-bottom: 13px; }
.mapa-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 10px; }
.mapa-fase { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: center; min-height: 86px; padding: 14px; border: 1px solid var(--borda); border-radius: 14px; background: var(--painel); }
.mapa-num { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--painel-2); color: var(--texto-2); font-weight: 800; }
.mapa-fase > div { display: flex; flex-direction: column; min-width: 0; }
.mapa-fase strong { margin: 2px 0 4px; font-size: 14px; line-height: 1.25; }
.mapa-fase small { color: var(--texto-2); font-size: 11px; }
.mapa-fase.verde { border-color: rgba(46,189,107,.34); }
.mapa-fase.verde .mapa-num { background: var(--verde); color: #07130c; }
.mapa-fase.amarelo { border-color: var(--ouro); box-shadow: 0 0 14px var(--neon-suave); }
.mapa-fase.amarelo .mapa-num { background: var(--grad-laranja); color: white; }
.mapa-fase.vermelho { opacity: .55; }
.comprovantes-card summary { display: flex; justify-content: space-between; gap: 12px; cursor: pointer; }
.comprovantes-card[open] summary { margin-bottom: 16px; }

@media (max-width: 850px) {
  .missao-hero { grid-template-columns: 1fr; }
  .missao-hero-painel { min-height: 300px; }
  .missao-grid { grid-template-columns: 1fr; }
  .recompensa-card { position: static; }
  .validacao-lista { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .missao-hero { min-height: 0; padding: 24px 20px; border-radius: 18px; }
  .missao-hero h2 { font-size: 38px; }
  .missao-hero-painel { min-height: 260px; }
  .trilha-resumo { width: 100%; }
  .trilha-resumo > div { flex: 1; }
  .concluir-missao { align-items: stretch; flex-direction: column; }
  .concluir-missao .btn { width: 100%; }
  .mapa-grid { grid-template-columns: 1fr; }
}


/* No computador o botão de menu não existe. */
.menu-abrir, .menu-fundo, .menu-fechar { display: none; }

/* ============================================================
   MENU LATERAL NO CELULAR (pedido do dono, 27/07)
   Antes: a barra virava faixa horizontal com rolagem E os submenus
   eram escondidos — no celular não havia como chegar em Lançamentos,
   Custo fixo, Alertas ou Telegram. Agora: gaveta com TUDO visível.
   ============================================================ */
@media (max-width: 860px) {
  .topbar-inner { gap: 10px; padding: 9px 14px; flex-wrap: nowrap; }
  .brand { margin-right: auto; font-size: 15px; }
  .topbar-user { margin-left: 0; gap: 8px; }
  .nome-user { max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  /* botão de três traços */
  .menu-abrir {
    display: flex; flex-direction: column; justify-content: center; gap: 4px;
    width: 42px; height: 38px; padding: 0 9px; order: -1; cursor: pointer;
    border: 1px solid rgba(122,180,255,.35); border-radius: 11px; background: rgba(8,103,255,.12);
  }
  .menu-abrir span { display: block; height: 2px; border-radius: 2px; background: #cfe3ff; }

  /* a gaveta */
  .nav {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 60;
    width: min(310px, 86vw); margin: 0; padding: 64px 16px 28px;
    display: block; overflow-y: auto; -webkit-overflow-scrolling: touch;
    background: #071737; border-left: 1px solid rgba(122,180,255,.22);
    box-shadow: -18px 0 44px rgba(0,0,0,.45);
    transform: translateX(102%); transition: transform .22s ease;
  }
  .menu-check:checked ~ .nav { transform: translateX(0); }

  .menu-fundo {
    position: fixed; inset: 0; z-index: 55; background: rgba(3,10,24,.55);
    opacity: 0; pointer-events: none; transition: opacity .22s ease;
  }
  .menu-check:checked ~ .menu-fundo { display: block; opacity: 1; pointer-events: auto; }

  .menu-fechar {
    display: grid; place-items: center; position: absolute; top: 14px; right: 14px;
    width: 36px; height: 36px; border-radius: 10px; cursor: pointer;
    border: 1px solid rgba(122,180,255,.3); background: rgba(8,103,255,.14);
    color: #cfe3ff; font-size: 15px;
  }

  /* itens dentro da gaveta: alvo grande para o dedo */
  .nav > a, .menu-modulo-topo {
    display: block; width: 100%; padding: 13px 14px; margin-bottom: 6px;
    font-size: 15px; border-radius: 12px; white-space: normal;
  }
  .menu-modulo { position: static; margin-bottom: 10px; }
  /* submenus SEMPRE visíveis na gaveta */
  .menu-submenu {
    display: block !important; position: static; width: 100%;
    margin: 2px 0 0; padding: 0 0 0 10px; border: none; box-shadow: none;
    background: transparent; min-width: 0;
  }
  .menu-submenu a { display: block; padding: 11px 12px; font-size: 14px; border-radius: 10px; }
  .container { padding-top: 22px; }
}

/* Gaveta no tema claro do IllumiCash */
@media (max-width: 860px) {
  body:has(main.container.tema-claro) .nav,
  body:has(main.container:has(> .organizador-hub)) .nav { background: #f7fbff; border-left-color: rgba(8,103,255,.2); }
  body:has(main.container.tema-claro) .menu-submenu a,
  body:has(main.container:has(> .organizador-hub)) .menu-submenu a { color: #28497c; }
}

.escada-campanha { scrollbar-width: none; }
.escada-campanha::-webkit-scrollbar { display: none; }


/* ---------- Evolução visual premium: campanha, modelos e movimento ---------- */
.trilha-resumo > div {
  position: relative; overflow: hidden;
  box-shadow: 0 12px 34px rgba(0,0,0,.16), inset 0 1px rgba(255,255,255,.025);
  transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.trilha-resumo > div::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.055) 48%, transparent 72%);
  transform: translateX(-120%); transition: transform .65s ease;
}
.trilha-resumo > div:hover { transform: translateY(-3px); border-color: rgba(85,207,151,.35); box-shadow: 0 18px 38px rgba(0,0,0,.24); }
.trilha-resumo > div:hover::after { transform: translateX(120%); }
.escada-campanha .degrau { transition: transform .25s ease, filter .25s ease, box-shadow .25s ease; }
.escada-campanha .degrau.alcancado:hover { transform: translateY(-3px); filter: saturate(1.12) brightness(1.05); }
.escada-campanha .degrau.atual::after {
  content: ''; position: absolute; left: 50%; bottom: -7px; width: 6px; height: 6px;
  border-radius: 50%; background: var(--texto); transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(255,255,255,.7); animation: nivel-vivo 1.8s ease-in-out infinite;
}

.missao-hero { --spot-x: 78%; --spot-y: 18%; --hero-tilt-x: 0deg; --hero-tilt-y: 0deg; isolation: isolate; }
.missao-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(380px circle at var(--spot-x) var(--spot-y), rgba(124,255,197,.16), transparent 66%);
  opacity: .82; transition: opacity .3s ease;
}
.missao-hero:hover::after { opacity: 1; }
.missao-hero-copy { z-index: 2; }
.missao-hero-painel {
  z-index: 2; will-change: transform;
  transform: perspective(900px) rotateX(var(--hero-tilt-x)) rotateY(var(--hero-tilt-y));
  transition: transform .24s ease-out, border-color .28s ease, box-shadow .28s ease;
}
.missao-hero:hover .missao-hero-painel { border-color: rgba(85,207,151,.2); box-shadow: 0 22px 44px rgba(0,0,0,.2); }
.missao-modelos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; max-width: 660px; margin-top: 22px; }
.missao-modelo {
  min-width: 0; padding: 11px 13px; border: 1px solid rgba(255,255,255,.075); border-radius: 13px;
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(5,14,9,.12));
  box-shadow: inset 0 1px rgba(255,255,255,.025); transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.missao-modelo:hover { transform: translateY(-3px); border-color: rgba(85,207,151,.32); background: rgba(61,203,140,.07); }
.missao-modelo span { display: block; overflow: hidden; color: var(--texto-2); font-size: 9px; font-weight: 800; letter-spacing: 1.1px; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.missao-modelo strong { display: block; margin-top: 4px; color: var(--ouro-claro); font-size: 15px; letter-spacing: -.02em; }
.guia-avatar { animation: modelo-flutua 4.8s ease-in-out infinite; }
.guia-avatar::after {
  content: 'GUIA RATING'; position: absolute; left: 50%; bottom: -28px; transform: translateX(-50%);
  color: rgba(205,230,217,.55); font-size: 8px; font-weight: 800; letter-spacing: 1.8px; white-space: nowrap;
}
.guia-avatar > span { box-shadow: 0 12px 30px rgba(250,120,30,.24), inset 0 1px rgba(255,255,255,.25); }
.barra-missao { overflow: hidden; position: relative; }
.barra-missao::after {
  content: ''; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.38), transparent); animation: progresso-luz 3.2s ease-in-out infinite;
}
.barra-missao .barra-fill { transform-origin: left center; }

.por-que-card { position: relative; overflow: hidden; transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.por-que-card::after { content: ''; position: absolute; inset: auto -15% -70% 40%; height: 130px; border-radius: 50%; background: rgba(92,169,201,.07); filter: blur(20px); pointer-events: none; }
.por-que-card:hover { transform: translateY(-2px); border-color: rgba(92,169,201,.35); box-shadow: 0 14px 34px rgba(0,0,0,.16); }
.por-que-icone { animation: icone-respira 3.6s ease-in-out infinite; }

.acao-item { animation-delay: calc(var(--item-index, 0) * 55ms); }
.acao-item.atual .acao-num::after {
  content: ''; position: absolute; inset: -6px; border: 1px solid rgba(85,207,151,.5); border-radius: 50%; animation: acao-pulso 1.8s ease-out infinite;
}
.acao-item.atual .acao-corpo { position: relative; overflow: hidden; box-shadow: 0 14px 30px rgba(0,0,0,.1); }
.acao-item.atual .acao-corpo::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 20%, rgba(85,207,151,.07) 45%, transparent 68%);
  transform: translateX(-120%); animation: acao-varredura 5.5s ease-in-out infinite;
}
.acao-item.atual .btn { box-shadow: 0 8px 22px rgba(41,190,123,.2); transition: transform .22s ease, box-shadow .22s ease; }
.acao-item.atual .btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(41,190,123,.3); }

.recompensa-card { isolation: isolate; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.recompensa-card::before {
  content: ''; position: absolute; z-index: -1; width: 210px; height: 210px; right: -90px; top: -100px;
  border-radius: 50%; background: rgba(85,207,151,.08); filter: blur(3px); transition: transform .5s ease, background .5s ease;
}
.recompensa-card:hover { transform: translateY(-5px); border-color: rgba(85,207,151,.3); box-shadow: 0 24px 48px rgba(0,0,0,.24); }
.recompensa-card:hover::before { transform: scale(1.22); background: rgba(85,207,151,.13); }
.recompensa-card .badge-preview { animation: badge-suspenso 4.2s ease-in-out infinite; }
.recompensa-card.liberada::after {
  content: ''; position: absolute; inset: -120% -50%; pointer-events: none;
  background: linear-gradient(110deg, transparent 42%, rgba(255,218,96,.14) 49%, transparent 56%); animation: recompensa-varredura 4.8s ease-in-out infinite;
}

.mapa-fase { position: relative; overflow: hidden; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, opacity .25s ease; }
.mapa-fase:hover { transform: translateY(-4px); border-color: rgba(85,207,151,.3); box-shadow: 0 16px 34px rgba(0,0,0,.18); opacity: 1; }
.mapa-fase.amarelo::after {
  content: ''; position: absolute; right: 11px; top: 11px; width: 7px; height: 7px; border-radius: 50%;
  background: var(--ouro-claro); box-shadow: 0 0 0 0 rgba(255,184,74,.45); animation: fase-ativa 2s ease-out infinite;
}
.mapa-fase.verde .mapa-num { box-shadow: 0 0 18px rgba(46,189,107,.16); }

.motion-ready [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .58s ease, transform .58s cubic-bezier(.2,.72,.25,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.motion-ready .acoes-missao.is-visible .acao-item { animation: item-entrada .48s both; animation-delay: calc(var(--item-index, 0) * 55ms); }
.motion-ready .mapa-missoes.is-visible .mapa-fase { animation: item-entrada .46s both; animation-delay: calc(var(--map-index, 1) * 38ms); }

@keyframes nivel-vivo { 0%,100% { opacity: .45; transform: translateX(-50%) scale(.75); } 50% { opacity: 1; transform: translateX(-50%) scale(1.15); } }
@keyframes modelo-flutua { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes progresso-luz { 0%,45% { transform: translateX(-120%); } 70%,100% { transform: translateX(120%); } }
@keyframes icone-respira { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); box-shadow: 0 0 20px rgba(92,169,201,.14); } }
@keyframes acao-pulso { 0% { opacity: .75; transform: scale(.88); } 100% { opacity: 0; transform: scale(1.28); } }
@keyframes acao-varredura { 0%,55% { transform: translateX(-125%); } 80%,100% { transform: translateX(125%); } }
@keyframes badge-suspenso { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(1.5deg); } }
@keyframes recompensa-varredura { 0%,55% { transform: translateX(-45%); } 82%,100% { transform: translateX(45%); } }
@keyframes fase-ativa { 0% { box-shadow: 0 0 0 0 rgba(255,184,74,.52); } 100% { box-shadow: 0 0 0 11px rgba(255,184,74,0); } }
@keyframes item-entrada { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 720px) {
  .missao-modelos { grid-template-columns: repeat(3, minmax(92px, 1fr)); overflow-x: auto; padding-bottom: 3px; }
  .missao-modelo { min-width: 92px; }
}
@media (max-width: 430px) {
  .missao-modelos { grid-template-columns: 1fr; }
  .missao-modelo { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .missao-modelo strong { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-reveal], .motion-ready [data-reveal].is-visible { opacity: 1 !important; transform: none !important; transition: none !important; }
  .missao-hero-painel { transform: none !important; transition: none !important; }
  .guia-avatar, .guia-avatar i, .por-que-icone, .badge-preview, .barra-missao::after,
  .acao-item.atual .acao-num::after, .acao-item.atual .acao-corpo::before,
  .recompensa-card.liberada::after, .mapa-fase.amarelo::after,
  .motion-ready .acoes-missao.is-visible .acao-item, .motion-ready .mapa-missoes.is-visible .mapa-fase,
  .escada-campanha .degrau.atual::after { animation: none !important; }
}


.missao-hero-painel > .missao-metrica:first-of-type { margin-top: 34px; }


/* ---------- Avatar falante e progressão em jogo ---------- */
.guia-avatar {
  width: min(100%, 224px); height: 226px; margin: auto auto 34px; overflow: visible; isolation: isolate;
  border-radius: 28px; background: radial-gradient(circle at 50% 34%, rgba(85,207,151,.2), rgba(7,18,12,.82) 66%);
  border-color: rgba(195,154,46,.3); box-shadow: 0 22px 50px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.04);
}
.guia-avatar::after { content: 'SEU GUIA RATING'; bottom: -26px; color: rgba(219,238,228,.68); }
.guia-avatar > img {
  position: absolute; z-index: 2; left: 50%; bottom: 0; width: 142%; max-width: none; height: auto;
  transform: translateX(-50%); transform-origin: 50% 88%; filter: drop-shadow(0 16px 20px rgba(0,0,0,.28));
  user-select: none; pointer-events: none;
}
.guia-avatar > i { z-index: 0; }
.guia-avatar > i:nth-of-type(2) { animation-delay: .8s; }
.guia-avatar > i:nth-of-type(3) { animation-delay: 1.6s; }
.guia-avatar.falando > img { animation: avatar-fala .76s ease-in-out infinite alternate; }
.guia-avatar.falando { border-color: rgba(85,207,151,.72); box-shadow: 0 0 44px rgba(61,203,140,.25), inset 0 1px rgba(255,255,255,.06); }
.guia-audio-bars {
  position: absolute; z-index: 4; right: 11px; bottom: 12px; display: flex; align-items: center; justify-content: center; gap: 3px;
  width: 46px; height: 36px; border: 1px solid rgba(85,207,151,.45); border-radius: 12px;
  background: rgba(5,18,11,.88); box-shadow: 0 8px 24px rgba(0,0,0,.3); opacity: 0; transform: translateY(6px); transition: opacity .25s ease, transform .25s ease;
}
.guia-audio-bars b { width: 3px; height: 8px; border-radius: 99px; background: var(--verde-claro); }
.guia-avatar.falando .guia-audio-bars { opacity: 1; transform: translateY(0); }
.guia-avatar.falando .guia-audio-bars b { animation: barra-voz .62s ease-in-out infinite alternate; }
.guia-avatar.falando .guia-audio-bars b:nth-child(2) { animation-delay: -.28s; }
.guia-avatar.falando .guia-audio-bars b:nth-child(3) { animation-delay: -.46s; }
.guia-avatar.falando .guia-audio-bars b:nth-child(4) { animation-delay: -.16s; }

.acoes-missao { position: relative; min-height: 390px; }
.briefing-porta[hidden] { display: none !important; }
.briefing-porta {
  position: absolute; z-index: 8; left: 50%; top: 150px; width: min(360px, calc(100% - 40px)); min-height: 215px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 22px; text-align: center;
  border: 1px solid rgba(195,154,46,.36); border-radius: 20px; background: rgba(7,18,12,.95);
  box-shadow: 0 24px 60px rgba(0,0,0,.42), inset 0 1px rgba(255,255,255,.04); transform: translateX(-50%);
}
.briefing-porta strong { margin-top: 10px; color: var(--texto); font-size: 16px; }
.briefing-porta p { max-width: 280px; margin: 6px 0 14px; color: var(--texto-2); font-size: 13px; line-height: 1.45; }
.porta-icone {
  width: 56px; height: 70px; display: block; position: relative; border: 2px solid var(--ouro); border-radius: 7px 7px 3px 3px;
  background: linear-gradient(145deg, #23583e, #0c2819); box-shadow: 0 0 24px var(--neon-suave); transform-origin: left center; transition: transform .58s cubic-bezier(.2,.8,.2,1), opacity .45s ease;
}
.porta-icone::before { content: ''; position: absolute; inset: 6px; border: 1px solid rgba(255,255,255,.09); border-radius: 4px; }
.porta-icone i { position: absolute; right: 7px; top: 34px; width: 6px; height: 6px; border-radius: 50%; background: var(--ouro-claro); box-shadow: 0 0 10px var(--ouro); }
.briefing-porta.abrindo .porta-icone { transform: perspective(320px) rotateY(-78deg); opacity: .45; }
.briefing-porta.abrindo { animation: porta-sai .62s ease forwards; pointer-events: none; }
.briefing-bloqueado .acoes-timeline { max-height: 245px; overflow: hidden; opacity: .16; filter: blur(3px); pointer-events: none; user-select: none; }
.briefing-bloqueado .card-titulo { opacity: .55; }
.is-disabled { opacity: .48; cursor: not-allowed; }

.acao-portal { opacity: .5; padding-bottom: 8px; }
.acao-portal .acao-corpo { padding-top: 5px; }
.porta-mini { border-radius: 5px 5px 2px 2px; background: linear-gradient(145deg, rgba(85,207,151,.15), rgba(6,20,12,.8)); }
.porta-mini::before { content: ''; width: 5px; height: 5px; position: absolute; right: 7px; top: 19px; border-radius: 50%; background: var(--ouro); }

.acao-conquista {
  position: fixed; z-index: 9999; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px;
  color: #effff6; background: rgba(2,10,6,.76); backdrop-filter: blur(8px); opacity: 0; pointer-events: none; transition: opacity .22s ease;
}
.acao-conquista.ativa { opacity: 1; }
.conquista-moeda {
  width: 82px; height: 82px; display: grid; place-items: center; border: 4px solid #f7d877; border-radius: 50%;
  color: #17301f; background: radial-gradient(circle at 34% 28%, #fff1a6, #d5a72e 62%, #8f6410); font-size: 23px; font-weight: 950;
  box-shadow: 0 0 0 8px rgba(210,169,54,.14), 0 0 48px rgba(247,216,119,.35); transform: translateY(22px) scale(.55) rotate(-18deg);
}
.acao-conquista.ativa .conquista-moeda { animation: moeda-coleta .75s cubic-bezier(.2,1.4,.3,1) forwards; }
.acao-conquista strong { color: #f7d877; font-size: 30px; }
.acao-conquista small { color: #d2e7da; font-size: 13px; letter-spacing: .8px; text-transform: uppercase; }
.conquista-porta { width: 42px; height: 52px; position: relative; margin-top: 5px; border: 2px solid var(--verde-claro); border-radius: 6px 6px 2px 2px; perspective: 240px; }
.conquista-porta i { position: absolute; inset: 3px; border-radius: 3px; background: linear-gradient(145deg, #2b7650, #0d2c1c); transform-origin: left center; }
.acao-conquista.ativa .conquista-porta i { animation: conquista-abre .7s .28s ease forwards; }

@keyframes avatar-fala { to { transform: translateX(-50%) translateY(-4px) scale(1.018); filter: drop-shadow(0 20px 25px rgba(0,0,0,.34)); } }
@keyframes barra-voz { from { height: 7px; } to { height: 22px; } }
@keyframes porta-sai { 70% { opacity: 1; } 100% { opacity: 0; transform: translateX(-50%) scale(1.08); } }
@keyframes moeda-coleta { 60% { transform: translateY(-10px) scale(1.15) rotate(8deg); } 100% { transform: translateY(0) scale(1) rotate(0); } }
@keyframes conquista-abre { to { transform: rotateY(-78deg); opacity: .45; } }

@media (max-width: 600px) {
  .guia-avatar { width: 190px; height: 194px; margin-top: 12px; }
  .guia-avatar > img { width: 142%; }
  .briefing-porta { top: 135px; }
}
@media (prefers-reduced-motion: reduce) {
  .guia-avatar.falando > img, .guia-avatar.falando .guia-audio-bars b, .acao-conquista.ativa .conquista-moeda,
  .acao-conquista.ativa .conquista-porta i, .briefing-porta.abrindo { animation: none !important; }
}


/* ---------- Avatar com sincronização labial em dois quadros ---------- */
.guia-avatar > audio { display: none; }
.guia-personagem {
  position: absolute; z-index: 2; left: 50%; bottom: 0; width: 142%; aspect-ratio: 1;
  transform: translateX(-50%); transform-origin: 50% 88%; pointer-events: none; user-select: none;
  filter: drop-shadow(0 16px 20px rgba(0,0,0,.28));
}
.guia-personagem .avatar-frame { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.guia-personagem .avatar-fechado { opacity: 1; }
.guia-personagem .avatar-aberto { opacity: 0; }
.guia-avatar.falando .guia-personagem { animation: avatar-corpo-fala .84s ease-in-out infinite alternate; }
.guia-avatar.falando .avatar-fechado { animation: avatar-boca-fechada .34s steps(1,end) infinite; }
.guia-avatar.falando .avatar-aberto { animation: avatar-boca-aberta .34s steps(1,end) infinite; }
@keyframes avatar-corpo-fala { to { transform: translateX(-50%) translateY(-4px) rotate(-.45deg) scale(1.012); filter: drop-shadow(0 20px 25px rgba(0,0,0,.34)); } }
@keyframes avatar-boca-fechada { 0%, 42% { opacity: 1; } 43%, 100% { opacity: 0; } }
@keyframes avatar-boca-aberta { 0%, 42% { opacity: 0; } 43%, 100% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .guia-avatar.falando .guia-personagem { animation: none !important; }
  .guia-avatar.falando .avatar-fechado { animation-duration: .7s !important; }
  .guia-avatar.falando .avatar-aberto { animation-duration: .7s !important; }
}


/* ---------- Ciclo oficial Rating Pro: HC-inspired motion ---------- */
.ciclo-rating {
  position: relative; isolation: isolate; overflow: hidden; margin: 18px 0 22px; padding: 18px;
  border: 1px solid rgba(85,207,151,.18); border-radius: 20px;
  background: linear-gradient(145deg, rgba(12,31,21,.94), rgba(5,15,10,.88));
  box-shadow: 0 18px 46px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.035);
}
.ciclo-rating::before {
  content: ''; position: absolute; z-index: -1; inset: -100% -35%; pointer-events: none;
  background: conic-gradient(from 110deg, transparent 0 30%, rgba(85,207,151,.08) 42%, transparent 54% 100%);
  animation: ciclo-aura 14s linear infinite;
}
.ciclo-rating::after {
  content: ''; position: absolute; z-index: -1; width: 240px; height: 240px; right: -90px; top: -120px;
  border-radius: 50%; background: radial-gradient(circle, rgba(195,154,46,.12), transparent 68%); filter: blur(3px);
}
.ciclo-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.ciclo-cabecalho strong { display: block; margin-top: 3px; color: var(--texto); font-size: 18px; letter-spacing: -.02em; }
.ciclo-status {
  flex: 0 0 auto; padding: 8px 12px; border: 1px solid rgba(85,207,151,.28); border-radius: 999px;
  color: var(--verde-claro); background: rgba(85,207,151,.075); font-size: 11px; font-weight: 800; letter-spacing: .25px;
  transition: color .3s ease, border-color .3s ease, background .3s ease, transform .3s ease;
}
.ciclo-etapas {
  display: grid; grid-template-columns: repeat(6, minmax(126px, 1fr)); gap: 10px; margin: 0; padding: 0;
  list-style: none; overflow-x: auto; scrollbar-width: thin; scroll-snap-type: x proximity;
}
.ciclo-etapas li {
  --etapa-cor: rgba(147,174,159,.42); position: relative; min-width: 126px; min-height: 82px; display: flex; align-items: center; gap: 9px;
  padding: 11px; border: 1px solid rgba(255,255,255,.055); border-radius: 14px; scroll-snap-align: start;
  background: rgba(255,255,255,.018); opacity: .52; transform: translateY(0);
  transition: opacity .3s ease, transform .3s ease, border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
.ciclo-etapas li::after {
  content: ''; position: absolute; z-index: -1; left: calc(100% + 1px); top: 50%; width: 11px; height: 2px;
  background: linear-gradient(90deg, var(--etapa-cor), transparent); transform: translateY(-50%);
}
.ciclo-etapas li:last-child::after { display: none; }
.ciclo-etapas li > span {
  position: relative; flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid var(--etapa-cor); border-radius: 50%; color: var(--texto-2); background: rgba(2,12,7,.72);
  font-size: 10px; font-weight: 900; letter-spacing: .5px; transition: all .3s ease;
}
.ciclo-etapas li strong, .ciclo-etapas li small { display: block; }
.ciclo-etapas li strong { color: var(--texto); font-size: 11px; line-height: 1.18; }
.ciclo-etapas li small { margin-top: 3px; color: var(--texto-2); font-size: 9px; line-height: 1.25; }
.ciclo-etapas li.concluida { --etapa-cor: rgba(85,207,151,.7); opacity: .86; border-color: rgba(85,207,151,.13); background: rgba(85,207,151,.035); }
.ciclo-etapas li.concluida > span { color: transparent; background: rgba(45,183,114,.18); box-shadow: 0 0 18px rgba(45,183,114,.13); }
.ciclo-etapas li.concluida > span::after { content: '✓'; position: absolute; color: var(--verde-claro); font-size: 15px; }
.ciclo-etapas li.ativa {
  --etapa-cor: rgba(247,216,119,.78); opacity: 1; transform: translateY(-3px); border-color: rgba(247,216,119,.34);
  background: linear-gradient(145deg, rgba(195,154,46,.13), rgba(85,207,151,.045));
  box-shadow: 0 14px 30px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.04);
}
.ciclo-etapas li.ativa > span { color: #fff1ae; background: rgba(195,154,46,.2); box-shadow: 0 0 0 0 rgba(247,216,119,.28); animation: ciclo-etapa-pulso 1.8s ease-out infinite; }
.ciclo-etapas li.ativa strong { color: var(--ouro-claro); }
.ciclo-etapas li.ativa::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(112deg, transparent 15%, rgba(255,255,255,.075) 45%, transparent 70%);
  transform: translateX(-120%); animation: ciclo-varredura 3.8s ease-in-out infinite;
}
.ciclo-rating[data-etapa-atual='recompensa'] { border-color: rgba(247,216,119,.4); box-shadow: 0 18px 52px rgba(195,154,46,.12), inset 0 1px rgba(255,255,255,.04); }
.ciclo-rating[data-etapa-atual='recompensa'] .ciclo-status { color: #241d08; border-color: #f7d877; background: #f7d877; transform: scale(1.03); }
.ciclo-rating[data-etapa-atual='avancar'] .ciclo-status { color: #062014; border-color: var(--verde-claro); background: var(--verde-claro); }

.porta-etapa { width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.porta-etapa[hidden] { display: none !important; }
.briefing-porta.aguardando-entendimento {
  border-color: rgba(85,207,151,.48); box-shadow: 0 26px 70px rgba(0,0,0,.48), 0 0 40px rgba(85,207,151,.08), inset 0 1px rgba(255,255,255,.05);
}
.porta-entendimento { animation: entendimento-entra .48s cubic-bezier(.2,.85,.25,1) both; }
.entendimento-icone {
  width: 58px; height: 58px; display: grid; place-items: center; border: 2px solid var(--verde-claro); border-radius: 50%;
  color: var(--verde-claro); background: radial-gradient(circle, rgba(85,207,151,.18), rgba(5,20,12,.85));
  box-shadow: 0 0 0 8px rgba(85,207,151,.045), 0 0 32px rgba(85,207,151,.15); font-size: 14px; font-weight: 950;
}
.porta-entendimento .btn { margin-top: 2px; }
.btn-primario { position: relative; overflow: hidden; isolation: isolate; }
.btn-primario::after {
  content: ''; position: absolute; z-index: -1; inset: -40% auto -40% -55%; width: 42%; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), transparent); transform: skewX(-18deg); transition: left .6s ease;
}
.btn-primario:hover::after, .btn-primario:focus-visible::after { left: 125%; }
.btn-primario.pronto { animation: botao-pronto 1.8s ease-in-out infinite; }

.conquista-particulas { position: absolute; inset: 0; pointer-events: none; }
.conquista-particulas i {
  --part-x: 0px; --part-y: -110px; position: absolute; left: 50%; top: 47%; width: 8px; height: 8px;
  border-radius: 2px; background: var(--ouro-claro); opacity: 0; transform: translate(-50%,-50%);
}
.acao-conquista.ativa .conquista-particulas i { animation: particula-conquista .9s .12s cubic-bezier(.15,.72,.28,1) forwards; }
.conquista-particulas i:nth-child(1) { --part-x: -125px; --part-y: -75px; }
.conquista-particulas i:nth-child(2) { --part-x: -92px; --part-y: -130px; background: var(--verde-claro); }
.conquista-particulas i:nth-child(3) { --part-x: -42px; --part-y: -150px; }
.conquista-particulas i:nth-child(4) { --part-x: 18px; --part-y: -158px; background: var(--verde-claro); }
.conquista-particulas i:nth-child(5) { --part-x: 72px; --part-y: -138px; }
.conquista-particulas i:nth-child(6) { --part-x: 118px; --part-y: -92px; background: var(--verde-claro); }
.conquista-particulas i:nth-child(7) { --part-x: 142px; --part-y: -28px; }
.conquista-particulas i:nth-child(8) { --part-x: 118px; --part-y: 38px; background: var(--verde-claro); }
.conquista-particulas i:nth-child(9) { --part-x: -135px; --part-y: 24px; }
.conquista-particulas i:nth-child(10) { --part-x: -108px; --part-y: 64px; background: var(--verde-claro); }
.conquista-particulas i:nth-child(11) { --part-x: 68px; --part-y: 72px; }
.conquista-particulas i:nth-child(12) { --part-x: -48px; --part-y: 82px; background: var(--verde-claro); }

.chuva-xp { position: fixed; z-index: 10000; inset: 0; overflow: hidden; pointer-events: none; }
.chuva-xp i {
  position: absolute; left: var(--p-x); top: -18px; width: 8px; height: 16px; border-radius: 3px;
  background: var(--ouro-claro); box-shadow: 0 0 12px rgba(247,216,119,.26);
  animation: chuva-xp-cai 2.8s var(--p-delay) cubic-bezier(.18,.68,.32,1) forwards;
}
.chuva-xp i:nth-child(3n) { background: var(--verde-claro); }
.chuva-xp i:nth-child(4n) { width: 11px; height: 11px; border-radius: 50%; background: #fff2b0; }
.celebra-missao { position: relative; overflow: hidden; }
.celebra-missao::after {
  content: ''; position: absolute; inset: -150% -55%; pointer-events: none;
  background: linear-gradient(112deg, transparent 44%, rgba(255,241,174,.12) 49%, transparent 55%);
  animation: celebra-varredura 3.6s ease-in-out 2;
}

@keyframes ciclo-aura { to { transform: rotate(360deg); } }
@keyframes ciclo-etapa-pulso { 0% { box-shadow: 0 0 0 0 rgba(247,216,119,.34); } 100% { box-shadow: 0 0 0 12px rgba(247,216,119,0); } }
@keyframes ciclo-varredura { 0%,55% { transform: translateX(-120%); } 85%,100% { transform: translateX(120%); } }
@keyframes entendimento-entra { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes botao-pronto { 50% { box-shadow: 0 0 0 7px rgba(85,207,151,.08), 0 12px 28px rgba(41,190,123,.3); } }
@keyframes particula-conquista { 0% { opacity: 0; } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--part-x)), calc(-50% + var(--part-y))) rotate(180deg); } }
@keyframes chuva-xp-cai { 0% { opacity: 0; transform: translateY(-20px) rotate(0); } 12% { opacity: 1; } 100% { opacity: 0; transform: translateY(105vh) rotate(var(--p-rot)); } }
@keyframes celebra-varredura { 0%,35% { transform: translateX(-55%); } 75%,100% { transform: translateX(55%); } }

@media (max-width: 860px) {
  .ciclo-cabecalho { align-items: flex-start; }
  .ciclo-etapas { grid-template-columns: repeat(6, 150px); padding-bottom: 7px; }
}
@media (max-width: 520px) {
  .ciclo-rating { margin-top: 13px; padding: 15px 13px; border-radius: 17px; }
  .ciclo-cabecalho { display: block; }
  .ciclo-status { display: inline-flex; margin-top: 10px; }
  .ciclo-etapas { grid-template-columns: repeat(6, 142px); }
}
@media (prefers-reduced-motion: reduce) {
  .ciclo-rating::before, .ciclo-etapas li.ativa > span, .ciclo-etapas li.ativa::before,
  .porta-entendimento, .btn-primario.pronto, .acao-conquista.ativa .conquista-particulas i,
  .chuva-xp i, .celebra-missao::after { animation: none !important; }
  .ciclo-etapas li.ativa { transform: none !important; }
}

/* ---------- Cidade do Crédito · RPG Web ---------- */
.rpg-mundo {
  --rpg-ceu: #071b28; --rpg-ceu-2: #0d302f; position: relative; isolation: isolate; overflow: hidden;
  margin: 12px 0 30px; border: 1px solid rgba(100,225,173,.2); border-radius: 28px;
  color: #f0fff7; background:
    radial-gradient(circle at 14% 12%, rgba(85,207,151,.13) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 18%, rgba(247,216,119,.16) 0 1px, transparent 2px),
    linear-gradient(155deg, var(--rpg-ceu), #071710 62%, #041009);
  background-size: 54px 54px, 78px 78px, auto;
  box-shadow: 0 28px 80px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.04);
}
.rpg-mundo::before {
  content: ''; position: absolute; z-index: -1; inset: -35% 44% 48% -20%; pointer-events: none;
  border-radius: 50%; background: radial-gradient(circle, rgba(26,129,98,.22), transparent 68%); filter: blur(18px);
}
.rpg-mundo-topo { display: grid; grid-template-columns: minmax(300px,1fr) minmax(460px,1.25fr); gap: 28px; align-items: center; padding: 30px 32px 24px; }
.trilha-cabecalho .titulo-trilha { margin: 4px 0; color: var(--texto); font-size: clamp(25px, 4vw, 38px); letter-spacing: -.035em; }
.rpg-titulo h1 { margin: 6px 0 7px; color: #f5fff9; font-size: clamp(34px,5vw,62px); line-height: .96; letter-spacing: -.055em; }
.rpg-titulo p { max-width: 560px; margin: 0; color: #b9d5c8; font-size: 15px; line-height: 1.6; }

.jogador-card {
  display: grid; grid-template-columns: 88px 1fr auto; gap: 15px; align-items: center; padding: 14px;
  border: 1px solid rgba(247,216,119,.24); border-radius: 20px; background: rgba(3,15,10,.62);
  box-shadow: inset 0 1px rgba(255,255,255,.045), 0 18px 38px rgba(0,0,0,.22); backdrop-filter: blur(12px);
}
.jogador-avatar { --pele:#c9855d; --cabelo:#172019; --roupa:#2db772; position: relative; width: 80px; height: 88px; overflow: hidden; border: 2px solid rgba(247,216,119,.6); border-radius: 18px; background: radial-gradient(circle at 50% 24%, #274d3c, #07150f 72%); box-shadow: 0 0 28px rgba(247,216,119,.1); }
.jogador-avatar .avatar-cabeca { position: absolute; z-index: 2; left: 25px; top: 18px; width: 31px; height: 37px; border-radius: 46% 46% 50% 50%; background: var(--pele); box-shadow: inset -4px -2px rgba(78,38,25,.12); }
.jogador-avatar .avatar-cabelo { position: absolute; z-index: 3; left: 22px; top: 13px; width: 37px; height: 20px; border-radius: 60% 58% 36% 35%; background: var(--cabelo); transform: rotate(-4deg); }
.jogador-avatar .avatar-corpo { position: absolute; z-index: 1; left: 15px; bottom: -16px; width: 52px; height: 50px; border-radius: 45% 45% 12px 12px; background: linear-gradient(145deg, color-mix(in srgb,var(--roupa),#fff 12%), var(--roupa)); }
.jogador-avatar > i { position: absolute; z-index: 4; left: 33px; top: 37px; width: 4px; height: 3px; border-radius: 50%; background: #25160f; box-shadow: 12px 0 #25160f; }
.avatar-guardiao { --pele:#8f5539; --cabelo:#101614; --roupa:#bd8c27; }
.avatar-exploradora { --pele:#d49770; --cabelo:#4a2117; --roupa:#408bcb; }
.avatar-exploradora .avatar-cabelo { height: 44px; border-radius: 60% 60% 48% 48%; }
.avatar-visionaria { --pele:#9c6145; --cabelo:#17131f; --roupa:#8b5dcc; }
.avatar-visionaria .avatar-cabelo { width: 40px; height: 26px; left: 20px; border-radius: 50%; }
.jogador-dados { min-width: 0; }
.jogador-dados > strong, .jogador-dados > small { display: block; }
.jogador-dados > strong { overflow: hidden; color: #fff; font-size: 19px; text-overflow: ellipsis; white-space: nowrap; }
.jogador-dados > small { margin-top: 3px; color: #a9c7b9; font-size: 10px; }
.jogador-xp { height: 7px; margin: 8px 0 5px; background: rgba(255,255,255,.07); }
.jogador-xp span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#27b476,#f1d268); box-shadow: 0 0 14px rgba(85,207,151,.25); }
.personagem-editor { position: relative; }
.personagem-editor > summary { padding: 8px 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: #c7ded2; font-size: 10px; font-weight: 800; cursor: pointer; list-style: none; white-space: nowrap; }
.personagem-editor > summary::-webkit-details-marker { display: none; }
.personagem-editor[open] { grid-column: 1/-1; }
.personagem-editor[open] > summary { width: max-content; margin: 0 0 12px auto; }
.personagem-editor form { display: grid; gap: 12px; padding: 14px; border: 1px solid rgba(85,207,151,.13); border-radius: 14px; background: rgba(2,12,8,.62); }
.avatar-opcoes { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 0; padding: 0; border: 0; }
.avatar-opcoes legend { margin-bottom: 7px; color: #a9c7b9; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.avatar-opcoes label { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: 7px; align-items: center; min-width: 0; padding: 7px; border: 1px solid rgba(255,255,255,.07); border-radius: 11px; cursor: pointer; }
.avatar-opcoes label:has(input:checked) { border-color: rgba(247,216,119,.6); background: rgba(247,216,119,.08); }
.avatar-opcoes input { position: absolute; opacity: 0; }
.avatar-opcoes b { overflow: hidden; color: #dcece4; font-size: 9px; text-overflow: ellipsis; }
.avatar-mini { --roupa:#2db772; display: grid; place-items: end center; width: 31px; height: 31px; overflow: hidden; border-radius: 9px; background: #153227; }
.avatar-mini i { width: 17px; height: 23px; border-radius: 50% 50% 7px 7px; background: linear-gradient(#c9855d 0 45%,var(--roupa) 46%); }
.avatar-mini.avatar-guardiao { --roupa:#bd8c27; }.avatar-mini.avatar-exploradora { --roupa:#408bcb; }.avatar-mini.avatar-visionaria { --roupa:#8b5dcc; }

.cidade-cenario { position: relative; min-height: 560px; overflow-x: auto; overflow-y: hidden; padding: 24px 28px 38px; border-top: 1px solid rgba(255,255,255,.045); background: linear-gradient(180deg,rgba(19,72,75,.36),rgba(4,15,9,.25) 55%,rgba(2,12,7,.88)); scrollbar-color: rgba(85,207,151,.4) transparent; }
.cidade-lua { position: absolute; right: 8%; top: 32px; width: 108px; height: 108px; border-radius: 50%; background: radial-gradient(circle at 38% 32%,#fff8c5,#d6b74e 62%,#8e6d1e); box-shadow: 0 0 65px rgba(247,216,119,.2); opacity: .82; }
.cidade-skyline { position: absolute; left: 0; right: 0; bottom: 0; height: 195px; opacity: .32; pointer-events: none; }
.cidade-skyline::before,.cidade-skyline::after,.cidade-skyline i { content:''; position:absolute; bottom:0; width:12%; background:#06110c; border-radius:8px 8px 0 0; }
.cidade-skyline::before { left:0; height:58%; }.cidade-skyline::after { right:0; height:72%; }.cidade-skyline i:nth-child(1){left:12%;height:82%}.cidade-skyline i:nth-child(2){left:27%;height:48%}.cidade-skyline i:nth-child(3){left:44%;height:90%}.cidade-skyline i:nth-child(4){left:62%;height:58%}.cidade-skyline i:nth-child(5){left:78%;height:78%}
.npc-chamada { position: relative; z-index: 3; width: min(620px,70%); display: grid; grid-template-columns: 92px 1fr; gap: 15px; align-items: center; margin-bottom: 32px; padding: 12px 15px 12px 8px; border: 1px solid rgba(85,207,151,.28); border-radius: 18px 18px 18px 5px; background: rgba(4,19,12,.83); box-shadow: 0 16px 40px rgba(0,0,0,.22); backdrop-filter: blur(10px); }
.npc-retrato { width: 82px; height: 82px; overflow: hidden; border: 2px solid rgba(85,207,151,.42); border-radius: 16px; background: radial-gradient(circle at 50% 32%,#28513f,#07140e 72%); }
.npc-retrato img { width: 132%; max-width: none; transform: translate(-12%,-2%); }
.npc-chamada strong,.npc-chamada p { display:block; }.npc-chamada strong { margin: 2px 0 3px; color:#f3fff8; font-size:15px }.npc-chamada p { margin:0; color:#b5d2c4; font-size:11px; line-height:1.45 }.npc-chamada a { display:inline-block; margin-top:7px; color:var(--ouro-claro); font-size:11px; font-weight:900; }
.cidade-rota { position: relative; z-index: 2; min-width: 960px; display: grid; grid-template-columns: repeat(6,1fr); gap: 24px 18px; margin: 0; padding: 18px 0 0; list-style: none; }
.cidade-rota::before { content:''; position:absolute; z-index:-1; left:6%; right:6%; top:90px; height:142px; border:3px dashed rgba(111,187,150,.18); border-left-color:transparent; border-right-color:transparent; border-radius:80px; }
.cidade-local { min-height: 148px; }
.cidade-local > a,.cidade-local > div { display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; color:inherit; text-decoration:none; }
.local-edificio { position:relative; width:72px; height:76px; display:grid; place-items:center; border:2px solid rgba(255,255,255,.09); border-radius:12px 12px 5px 5px; color:#d2e3da; background:linear-gradient(145deg,#17372b,#091b13); box-shadow:0 12px 25px rgba(0,0,0,.24); transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.local-edificio::before { content:''; position:absolute; left:9px; right:9px; top:-17px; height:22px; clip-path:polygon(50% 0,100% 72%,88% 100%,12% 100%,0 72%); background:#26493a; }
.local-edificio::after { content:''; position:absolute; left:13px; right:13px; bottom:8px; height:27px; background:repeating-linear-gradient(90deg,rgba(247,216,119,.14) 0 8px,transparent 8px 15px); }
.local-edificio > b { position:relative; z-index:2; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; color:#a9c0b4; background:#07150e; font-size:13px; }
.local-texto { min-width:0; text-align:center; }.local-texto small,.local-texto strong,.local-texto em { display:block; }.local-texto small { color:#6e9581;font-size:8px;font-weight:900;letter-spacing:.7px }.local-texto strong { margin:2px 0;color:#dceae3;font-size:11px;line-height:1.2 }.local-texto em { color:#789686;font-size:9px;font-style:normal }
.cidade-local.verde .local-edificio { border-color:rgba(85,207,151,.3); background:linear-gradient(145deg,#1d5a3d,#0d281b); }.cidade-local.verde .local-edificio > b { color:#07170f;background:var(--verde-claro) }.cidade-local.verde .local-texto em{color:var(--verde-claro)}
.cidade-local.vermelho { opacity:.46; filter:saturate(.42); }
.cidade-local.amarelo .local-edificio { border-color:#f7d877; background:linear-gradient(145deg,#705b1f,#183724); box-shadow:0 0 0 7px rgba(247,216,119,.055),0 0 36px rgba(247,216,119,.2); animation:local-ativo 2s ease-in-out infinite; }
.cidade-local.amarelo .local-edificio > b { color:#241c05;background:#f7d877 }.cidade-local.amarelo .local-texto strong,.cidade-local.amarelo .local-texto em{color:#f7d877}.cidade-local.amarelo a:hover .local-edificio,.cidade-local.amarelo a:focus-visible .local-edificio{transform:translateY(-7px) scale(1.04);box-shadow:0 18px 40px rgba(247,216,119,.18)}
.rpg-aviso { margin:0; padding:10px 26px 12px; border-top:1px solid rgba(255,255,255,.04); color:#708d7f; background:rgba(2,9,6,.5); font-size:9px; text-align:center; }.rpg-aviso span{color:#9ec7b3;font-weight:800}

.quiz-rpg { position:relative; overflow:hidden; margin-top:22px; padding:clamp(22px,4vw,34px); border-color:rgba(139,104,213,.3); background:linear-gradient(145deg,rgba(24,18,48,.9),rgba(7,21,14,.94)); }
.quiz-rpg::after { content:'?'; position:absolute; right:-8px; top:-54px; color:rgba(155,116,230,.08); font-size:210px; font-weight:950; pointer-events:none; }
.quiz-cabecalho,.quiz-rodape { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:18px; }.quiz-cabecalho h2{margin:4px 0 0}.quiz-selo{padding:8px 11px;border:1px solid rgba(166,126,240,.32);border-radius:999px;color:#c8abff;background:rgba(144,96,228,.1);font-size:10px;font-weight:900}
.quiz-form { position:relative; z-index:1; margin-top:22px; }.quiz-form fieldset{margin:0;padding:0;border:0}.quiz-form legend{max-width:850px;margin-bottom:16px;color:#f3f0ff;font-size:clamp(18px,3vw,25px);font-weight:850;line-height:1.25}
.quiz-opcao{display:block;margin:9px 0;cursor:pointer}.quiz-opcao input{position:absolute;opacity:0}.quiz-opcao span{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid rgba(255,255,255,.08);border-radius:13px;color:#cadbd1;background:rgba(255,255,255,.025);font-size:12px;transition:all .25s ease}.quiz-opcao b{flex:0 0 31px;width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(188,154,255,.32);border-radius:50%;color:#c7a8ff}.quiz-opcao:hover span,.quiz-opcao input:focus-visible+span{border-color:rgba(188,154,255,.42);transform:translateX(4px)}.quiz-opcao input:checked+span{border-color:#b88fff;color:#fff;background:rgba(139,89,223,.16);box-shadow:0 0 0 3px rgba(139,89,223,.06)}.quiz-opcao input:checked+span b{color:#1c1031;background:#c4a0ff}
.quiz-rodape{margin-top:16px}.quiz-rodape small{color:#93ad9f}.quiz-resultado{position:relative;z-index:1;margin-top:20px;padding:17px;border-radius:14px}.quiz-resultado strong,.quiz-resultado p{display:block}.quiz-resultado p{margin:5px 0 0;color:#bfd3c8;font-size:12px}.quiz-resultado.erro{border:1px solid rgba(244,125,87,.3);background:rgba(142,53,35,.14)}.quiz-resultado.erro strong{color:#ffad93}.quiz-resultado.sucesso{border:1px solid rgba(85,207,151,.35);background:rgba(45,183,114,.1)}.quiz-resultado.sucesso strong,.quiz-resultado.sucesso a{color:var(--verde-claro)}.quiz-resultado.sucesso a{display:inline-block;margin-top:8px;font-size:11px;font-weight:850}.quiz-aprovado{border-color:rgba(85,207,151,.34)}.quiz-aprovado .quiz-selo{color:#07180f;border-color:var(--verde-claro);background:var(--verde-claro)}

@keyframes local-ativo { 50% { transform:translateY(-5px); box-shadow:0 0 0 11px rgba(247,216,119,.025),0 0 46px rgba(247,216,119,.24); } }
@media (max-width: 980px) { .rpg-mundo-topo{grid-template-columns:1fr}.jogador-card{max-width:720px}.npc-chamada{width:min(700px,88%)} }
@media (max-width: 620px) { .rpg-mundo{border-radius:20px}.rpg-mundo-topo{padding:24px 18px 18px}.rpg-titulo h1{font-size:40px}.jogador-card{grid-template-columns:70px 1fr}.jogador-avatar{width:66px;height:76px}.personagem-editor{grid-column:1/-1}.avatar-opcoes{grid-template-columns:repeat(2,1fr)}.cidade-cenario{min-height:530px;padding:20px 16px 30px}.npc-chamada{width:100%;grid-template-columns:66px 1fr}.npc-retrato{width:60px;height:60px}.cidade-lua{width:78px;height:78px;top:120px}.quiz-cabecalho,.quiz-rodape{align-items:flex-start;flex-direction:column}.quiz-rodape .btn{width:100%} }
@media (prefers-reduced-motion: reduce) { .cidade-local.amarelo .local-edificio{animation:none!important}.cidade-local.amarelo a:hover .local-edificio{transform:none}.quiz-opcao span{transition:none} }

/* ---------- Ambientes de dados e avatar sincronizado ---------- */
.ambiente-selo {
  display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:4px 8px;border:1px solid;border-radius:999px;
  font-size:8px;font-weight:950;letter-spacing:1px;line-height:1;white-space:nowrap;
}
.ambiente-selo-real { color:#8ce8b8;border-color:rgba(85,207,151,.36);background:rgba(45,183,114,.1); }
.ambiente-selo-demonstracao { color:#f7d877;border-color:rgba(247,216,119,.42);background:rgba(247,183,54,.11); }
.topbar-user .ambiente-selo { margin-right:2px; }
.ambiente-faixa {
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:7px 18px;border-bottom:1px solid;
  text-align:left;box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.ambiente-faixa > div { display:flex;align-items:baseline;gap:8px;min-width:0; }
.ambiente-faixa strong { font-size:10px;letter-spacing:.5px;text-transform:uppercase; }
.ambiente-faixa small { overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap; }
.ambiente-faixa-icone { width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border:1px solid;border-radius:50%;font-size:9px;font-weight:950; }
.ambiente-faixa-demonstracao { color:#f7d877;border-color:rgba(247,216,119,.2);background:linear-gradient(90deg,rgba(90,62,7,.3),rgba(31,27,9,.72),rgba(90,62,7,.3)); }
.ambiente-faixa-demonstracao small { color:#cdbf87; }
.ambiente-faixa-real { color:#8ce8b8;border-color:rgba(85,207,151,.17);background:linear-gradient(90deg,rgba(10,61,36,.22),rgba(7,28,18,.66),rgba(10,61,36,.22)); }
.ambiente-faixa-real small { color:#9fc9b2; }
.ambiente-filtros { display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 18px; }
.ambiente-filtros a { padding:8px 12px;border:1px solid var(--borda);border-radius:999px;color:var(--texto-2);background:rgba(255,255,255,.025);font-size:11px;text-decoration:none; }
.ambiente-filtros a b { margin-left:5px;color:var(--texto); }
.ambiente-filtros a.ativo { color:#07170f;border-color:var(--verde-claro);background:var(--verde-claro); }
.ambiente-filtros a.ativo b { color:inherit; }
.ambiente-escolha { grid-column:1/-1;margin:0;padding:0;border:0; }
.ambiente-escolha legend { margin-bottom:8px;color:var(--texto-2);font-size:12px;font-weight:750; }
.ambiente-escolha > label { display:inline-flex;width:min(280px,100%);margin:0 8px 8px 0;cursor:pointer; }
.ambiente-escolha input { position:absolute;opacity:0; }
.ambiente-escolha span { width:100%;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--borda);border-radius:12px;background:rgba(255,255,255,.025); }
.ambiente-escolha b { color:var(--texto);font-size:12px; }.ambiente-escolha small { color:var(--texto-2);font-size:10px; }
.ambiente-escolha input:checked + span { border-color:var(--verde-claro);background:rgba(45,183,114,.1);box-shadow:0 0 0 3px rgba(45,183,114,.06); }
.ambiente-escolha input:focus-visible + span { outline:2px solid var(--verde-claro);outline-offset:2px; }
.titulo-com-ambiente,.ambiente-resumo { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.ambiente-admin-form { display:flex;align-items:center;gap:6px;min-width:230px; }
.ambiente-admin-form select { min-width:125px;padding:7px 9px;font-size:10px; }

.guia-personagem { animation:avatar-respira-realista 4.2s ease-in-out infinite; }
.guia-voz-identidade { display:flex;align-items:center;justify-content:center;gap:6px;margin:-21px 0 25px;color:#b8d4c5;font-size:9px;letter-spacing:.45px;text-transform:uppercase; }
.guia-voz-identidade > span { width:7px;height:7px;border-radius:50%;background:var(--verde-claro);box-shadow:0 0 0 4px rgba(85,207,151,.1),0 0 12px rgba(85,207,151,.6); }
.guia-voz-identidade strong { color:#d9eee3;font-size:9px; }.guia-voz-identidade small { color:#759b87;font-size:8px; }
.guia-avatar.voz-sincronizada.falando .guia-personagem {
  animation:none;transform:translateX(-50%) translateY(var(--fala-y,-2px)) rotate(var(--fala-rotacao,0deg)) scale(var(--fala-escala,1.01));
  transition:transform .065s linear;filter:drop-shadow(0 20px 25px rgba(0,0,0,.34));
}
.guia-avatar.voz-sincronizada.falando .avatar-fechado,.guia-avatar.voz-sincronizada.falando .avatar-aberto { animation:none;transition:opacity .055s linear; }
.guia-avatar.voz-sincronizada.falando .avatar-fechado { opacity:1; }.guia-avatar.voz-sincronizada.falando .avatar-aberto { opacity:0; }
.guia-avatar.voz-sincronizada.falando.boca-aberta .avatar-fechado { opacity:0; }.guia-avatar.voz-sincronizada.falando.boca-aberta .avatar-aberto { opacity:1; }
.guia-avatar.voz-sincronizada.falando { box-shadow:0 0 54px rgba(61,203,140,.3),inset 0 1px rgba(255,255,255,.07); }
@keyframes avatar-respira-realista { 0%,100% { transform:translateX(-50%) translateY(0) scale(1); } 50% { transform:translateX(-50%) translateY(-3px) scale(1.008); } }
@media (max-width: 820px) { .topbar-user .ambiente-selo { display:none; }.ambiente-faixa > div { display:block; }.ambiente-faixa small { display:block;margin-top:2px;white-space:normal; }.ambiente-admin-form { min-width:190px;flex-wrap:wrap; } }
@media (max-width: 520px) { .ambiente-faixa { justify-content:flex-start;padding-inline:14px; }.guia-voz-identidade small { display:none; } }
@media (prefers-reduced-motion: reduce) { .guia-personagem { animation:none!important; }.guia-avatar.voz-sincronizada .avatar-frame { transition:none!important; } }


/* ========================================================================== */
/* OPERAÇÃO 01 — O DESPERTAR                                                  */
/* ========================================================================== */
.op1-shell { --op1-verde:#42d995; --op1-ouro:#f2cf67; max-width: 1040px; margin: 0 auto; }
.op1-topo { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:18px; }
.op1-topo h1 { font-size:clamp(34px,6vw,68px); line-height:1.08; margin:8px 0 12px; color:#f4f7f4; }
.op1-topo p { color:var(--texto-2); max-width:610px; line-height:1.55; }
.op1-voltar { display:inline-block; color:var(--texto-2); text-decoration:none; font-size:13px; margin-bottom:20px; }
.op1-voltar:hover { color:var(--op1-verde); }
.op1-jogador { min-width:225px; display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid rgba(66,217,149,.25); background:rgba(8,22,16,.78); border-radius:16px; }
.op1-jogador .jogador-avatar { width:62px; height:68px; flex:0 0 62px; transform:scale(.72); transform-origin:center; margin:-9px; }
.op1-jogador div:last-child { display:flex; flex-direction:column; gap:2px; }
.op1-jogador small,.op1-jogador span { color:var(--texto-2); font-size:11px; }
.op1-jogador strong { font-size:18px; }
.op1-progresso { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin:22px 0 10px; }
.op1-progresso > span { min-width:0; display:flex; align-items:center; gap:7px; padding:9px; border:1px solid var(--borda); background:#0d1612; border-radius:11px; color:#63766c; }
.op1-progresso i { width:25px; height:25px; flex:0 0 25px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-style:normal; font-size:10px; font-weight:800; }
.op1-progresso b { overflow:hidden; text-overflow:ellipsis; font-size:10px; text-transform:uppercase; letter-spacing:.7px; }
.op1-progresso > span.ativa { color:#06170f; background:var(--op1-verde); border-color:var(--op1-verde); box-shadow:0 0 22px rgba(66,217,149,.22); }
.op1-progresso > span.feita { color:var(--op1-verde); border-color:rgba(66,217,149,.35); background:rgba(66,217,149,.07); }
.op1-etapa-contador { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; margin:8px 0 24px; color:var(--texto-2); font-size:10px; font-weight:800; letter-spacing:1px; }
.op1-etapa-contador div { height:4px; background:#14221b; border-radius:99px; overflow:hidden; }
.op1-etapa-contador div i { display:block; height:100%; background:linear-gradient(90deg,#1b9f68,var(--op1-verde)); border-radius:inherit; transition:width .5s ease; }
.op1-xp-pop { position:fixed; right:28px; top:88px; z-index:20; display:flex; flex-direction:column; padding:12px 17px; border:1px solid var(--op1-verde); background:#0c2117; border-radius:14px; box-shadow:0 12px 38px rgba(0,0,0,.38),0 0 30px rgba(66,217,149,.18); animation:op1-pop .45s ease both; }
.op1-xp-pop strong { color:var(--op1-verde); font-size:21px; }
.op1-xp-pop span { color:var(--texto-2); font-size:11px; }
@keyframes op1-pop { from{opacity:0;transform:translateY(-12px) scale(.94)} to{opacity:1;transform:none} }
.op1-palco { position:relative; min-height:560px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:clamp(28px,6vw,72px); border:1px solid rgba(66,217,149,.24); border-radius:28px; overflow:hidden; background:radial-gradient(circle at 50% 10%,rgba(29,130,91,.18),transparent 43%),linear-gradient(160deg,#0e1c17,#08110d 72%); box-shadow:0 28px 80px rgba(0,0,0,.3); }
.op1-palco::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.25; background-image:radial-gradient(circle,rgba(66,217,149,.55) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(to bottom,#000,transparent 75%); }
.op1-palco > * { position:relative; z-index:1; }
.op1-palco h2 { max-width:720px; margin:12px auto 14px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(29px,5vw,54px); line-height:1.08; color:#f3f7f4; }
.op1-palco > p { max-width:620px; color:#aec1b6; font-size:16px; line-height:1.6; }
.op1-selo { display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border:1px solid rgba(66,217,149,.35); border-radius:99px; color:var(--op1-verde); font-size:10px; font-weight:900; letter-spacing:1.5px; }
.op1-cta { min-width:220px; margin-top:28px; padding:13px 24px; }
.op1-inimigo { width:112px; height:112px; position:relative; display:grid; place-items:center; margin-bottom:22px; border-radius:48% 52% 43% 57%; background:radial-gradient(circle at 45% 40%,#6d7c75,#27342e 58%,#111a16); filter:drop-shadow(0 18px 30px rgba(0,0,0,.5)); animation:op1-caos 4s ease-in-out infinite; }
.op1-inimigo::before,.op1-inimigo::after { content:''; position:absolute; width:22px; height:7px; top:42px; border-radius:50%; background:#f2cf67; box-shadow:0 0 14px rgba(242,207,103,.75); }
.op1-inimigo::before { left:25px; transform:rotate(13deg); }.op1-inimigo::after { right:25px; transform:rotate(-13deg); }
.op1-inimigo b { margin-top:34px; color:#dfe8e2; font-size:22px; }.op1-inimigo i { position:absolute; inset:-13px; border:1px dashed rgba(242,207,103,.24); border-radius:50%; animation:op1-giro 12s linear infinite; }
@keyframes op1-caos { 50%{transform:translateY(-8px) rotate(2deg)} } @keyframes op1-giro { to{transform:rotate(360deg)} }
.op1-missoes-resumo { width:min(640px,100%); display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:26px auto 0; text-align:left; }
.op1-missoes-resumo span { display:flex; align-items:center; gap:10px; padding:13px; border:1px solid var(--borda); border-radius:12px; background:rgba(255,255,255,.025); color:#dbe5df; font-size:13px; }
.op1-missoes-resumo i { color:var(--op1-verde); font-style:normal; font-weight:800; font-size:11px; }
.op1-central-icone { width:118px; height:118px; position:relative; display:grid; place-items:center; margin-bottom:24px; border:1px solid rgba(66,217,149,.5); border-radius:28px; background:radial-gradient(circle,rgba(66,217,149,.24),rgba(7,22,14,.88)); box-shadow:0 0 45px rgba(66,217,149,.18); }
.op1-central-icone span { color:var(--op1-verde); font-size:29px; font-weight:900; letter-spacing:3px; }.op1-central-icone i { position:absolute; inset:-10px; border:1px dashed rgba(66,217,149,.28); border-radius:34px; animation:op1-pulso 2s ease-in-out infinite; }
@keyframes op1-pulso { 50%{transform:scale(1.06);opacity:.35} }
.op1-recompensa { display:flex; flex-direction:column; align-items:center; gap:6px; margin-bottom:18px; }.op1-recompensa > span { font-size:58px; filter:drop-shadow(0 0 22px rgba(242,207,103,.25)); animation:op1-pop .6s ease both; }.op1-recompensa strong { font-size:15px; text-transform:uppercase; letter-spacing:1.5px; }.op1-recompensa b { color:var(--op1-ouro); font-size:22px; }
.op1-inteligencia { max-width:620px; display:flex; align-items:flex-start; gap:12px; margin:24px auto 0; padding:14px 16px; text-align:left; border-left:3px solid var(--op1-verde); background:rgba(66,217,149,.06); border-radius:0 12px 12px 0; }.op1-inteligencia b { white-space:nowrap; color:var(--op1-verde); font-size:12px; }.op1-inteligencia span { color:var(--texto-2); font-size:12px; line-height:1.5; }
.op1-form { width:min(620px,100%); display:flex; flex-direction:column; gap:13px; margin-top:26px; text-align:left; }.op1-form > label,.op1-form-grid label { display:flex; flex-direction:column; gap:6px; color:#b8c8bf; font-size:12px; }.op1-form input,.op1-form select { width:100%; }.op1-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.op1-form .op1-cta { align-self:center; }
.op1-tipo { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.op1-tipo label { cursor:pointer; }.op1-tipo input { position:absolute; opacity:0; pointer-events:none; }.op1-tipo span { display:block; padding:11px 13px; text-align:center; border:1px solid var(--borda); border-radius:10px; color:var(--texto-2); }.op1-tipo label:has(input:checked) span { color:#06170f; border-color:var(--op1-verde); background:var(--op1-verde); font-weight:800; }
.op1-detectado { width:min(610px,100%); display:flex; align-items:center; gap:16px; margin:24px auto 0; padding:18px; text-align:left; border:1px solid rgba(66,217,149,.45); border-radius:16px; background:rgba(66,217,149,.08); }.op1-detectado > span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:50%; background:var(--op1-verde); color:#06170f; font-size:22px; font-weight:900; }.op1-detectado strong { color:#e8f3ec; }.op1-detectado p { color:var(--texto-2); font-size:12px; margin-top:3px; }
.op1-sync { width:150px; height:150px; position:relative; display:grid; place-items:center; margin-bottom:24px; }.op1-sync span { width:82px; height:82px; display:grid; place-items:center; border-radius:50%; color:#07140e; background:var(--op1-verde); font-weight:900; letter-spacing:2px; box-shadow:0 0 32px rgba(66,217,149,.35); }.op1-sync i { position:absolute; inset:0; border:1px solid rgba(66,217,149,.3); border-radius:50%; animation:op1-sync 2.2s ease-out infinite; }.op1-sync i:nth-child(3){animation-delay:.7s}.op1-sync i:nth-child(4){animation-delay:1.4s}@keyframes op1-sync{0%{transform:scale(.45);opacity:0}35%{opacity:.8}100%{transform:scale(1.25);opacity:0}}
.op1-painel-grid { width:100%; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:24px; text-align:left; }.op1-painel-grid article { display:flex; flex-direction:column; gap:5px; padding:18px; border:1px solid var(--borda); border-radius:15px; background:rgba(7,18,13,.72); }.op1-painel-grid span,.op1-painel-grid small { color:var(--texto-2); font-size:11px; }.op1-painel-grid strong { font-size:25px; font-variant-numeric:tabular-nums; }.op1-painel-grid article.positivo strong { color:var(--op1-verde); }.op1-painel-grid article.negativo strong { color:#ff7773; }.op1-disclaimer { margin:16px auto 0; font-size:11px!important; color:#71877b!important; }
.op1-desafio-icone { font-size:64px; margin-bottom:18px; }.op1-regras { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:22px; list-style:none; }.op1-regras li { padding:8px 11px; border:1px solid var(--borda); border-radius:99px; color:var(--texto-2); font-size:11px; }
.op1-quiz { width:min(660px,100%); display:flex; flex-direction:column; gap:10px; margin-top:25px; text-align:left; }.op1-quiz label { cursor:pointer; }.op1-quiz input { position:absolute; opacity:0; pointer-events:none; }.op1-quiz label span { display:flex; align-items:center; gap:12px; padding:15px; border:1px solid var(--borda); border-radius:13px; background:rgba(255,255,255,.02); color:#c8d5ce; transition:.18s ease; }.op1-quiz label b { width:29px; height:29px; display:grid; place-items:center; flex:0 0 29px; border:1px solid #4b6256; border-radius:50%; color:var(--op1-verde); }.op1-quiz label:hover span,.op1-quiz label:has(input:checked) span { border-color:var(--op1-verde); background:rgba(66,217,149,.09); transform:translateX(4px); }.op1-quiz label:has(input:checked) b { color:#06170f; background:var(--op1-verde); border-color:var(--op1-verde); }.op1-quiz .op1-cta { align-self:center; }
.op1-resultado { display:flex; align-items:center; gap:13px; margin-bottom:18px; padding:13px 18px; border:1px solid; border-radius:16px; }.op1-resultado > span { width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font-size:21px;font-weight:900 }.op1-resultado strong { font-size:28px; }.op1-resultado b { font-size:11px; letter-spacing:1.2px; }.op1-resultado.aprovado { color:var(--op1-verde); background:rgba(66,217,149,.07); }.op1-resultado.aprovado > span { color:#06170f;background:var(--op1-verde) }.op1-resultado.revisar { color:var(--op1-ouro); background:rgba(242,207,103,.06); }.op1-recompensa-linha { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }.op1-recompensa-linha span { padding:9px 12px; border:1px solid rgba(242,207,103,.25); border-radius:10px; color:#e9dbab; font-size:12px; }
.op1-vitoria { position:relative; width:132px; height:132px; display:grid; place-items:center; margin-bottom:20px; }.op1-vitoria span { font-size:72px; animation:op1-pop .7s ease both; }.op1-vitoria i { position:absolute; inset:0; border:1px solid rgba(242,207,103,.3); border-radius:50%; animation:op1-giro 14s linear infinite; }.op1-vitoria i:last-child { inset:15px; border-style:dashed; animation-direction:reverse; }
.op1-premios { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0 16px; }.op1-premios article { display:flex; flex-direction:column; gap:5px; padding:15px; border:1px solid rgba(242,207,103,.22); border-radius:13px; background:rgba(242,207,103,.04); }.op1-premios span { color:var(--op1-ouro); font-weight:800; }.op1-premios small { color:var(--texto-2); }
.op1-competencias { width:min(650px,100%); display:flex; flex-direction:column; gap:10px; margin-top:8px; text-align:left; }.op1-competencias span { position:relative; height:34px; overflow:hidden; border:1px solid var(--borda); border-radius:9px; background:#0a140f; }.op1-competencias span i { position:absolute; inset:0 auto 0 0; background:linear-gradient(90deg,rgba(66,217,149,.34),rgba(66,217,149,.12)); }.op1-competencias b { position:relative; z-index:1; display:block; padding:9px 12px; font-size:11px; color:#dce8e1; }
.op1-rodape-status { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }.op1-rodape-status span { display:flex; flex-direction:column; gap:3px; padding:12px 14px; border:1px solid var(--borda); border-radius:11px; color:var(--texto-2); font-size:10px; }.op1-rodape-status b { color:#dfe9e3; font-size:13px; }
.op1-convite { display:grid; grid-template-columns:1fr 260px; gap:30px; align-items:center; margin:22px 0; padding:34px; border:1px solid rgba(66,217,149,.3); border-radius:24px; background:radial-gradient(circle at 90% 20%,rgba(66,217,149,.14),transparent 32%),#0d1914; overflow:hidden; }.op1-convite h2 { margin:8px 0 10px; font-family:Georgia,'Times New Roman',serif; font-size:42px; }.op1-convite p { color:var(--texto-2); line-height:1.55; }.op1-convite-ciclo { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:18px 0; color:var(--texto-2); font-size:11px; }.op1-convite-ciclo span { padding:6px 9px; border:1px solid var(--borda); border-radius:99px; }.op1-convite-ciclo i { color:var(--op1-verde); font-style:normal; }.op1-convite aside { display:flex; flex-direction:column; gap:7px; padding:22px; text-align:center; border:1px solid rgba(242,207,103,.22); border-radius:18px; background:rgba(4,13,8,.58); }.op1-convite aside > span { font-size:48px; }.op1-convite aside strong { color:var(--op1-ouro); }.op1-convite aside small,.op1-convite aside b { color:var(--texto-2); font-size:11px; }
@media (max-width:820px) { .op1-topo{align-items:flex-start}.op1-jogador{min-width:0}.op1-progresso{grid-template-columns:repeat(4,1fr)}.op1-palco{min-height:520px;padding:30px 18px;border-radius:20px}.op1-convite{grid-template-columns:1fr}.op1-painel-grid{grid-template-columns:1fr 1fr} }
@media (max-width:600px) { .op1-topo{display:block}.op1-jogador{margin-top:18px;width:100%}.op1-progresso{display:flex;overflow-x:auto;padding-bottom:6px}.op1-progresso>span{min-width:105px}.op1-progresso b{font-size:9px}.op1-missoes-resumo,.op1-form-grid,.op1-painel-grid,.op1-premios,.op1-rodape-status{grid-template-columns:1fr}.op1-tipo{grid-template-columns:1fr}.op1-inteligencia{display:block}.op1-inteligencia b{display:block;margin-bottom:5px}.op1-xp-pop{left:16px;right:16px;top:76px}.op1-palco h2{font-size:31px}.op1-palco>p{font-size:14px} }
@media (prefers-reduced-motion:reduce) { .op1-inimigo,.op1-inimigo i,.op1-central-icone i,.op1-sync i,.op1-vitoria i,.op1-xp-pop{animation:none!important} }


/* ========================================================================== */
/* ORGANIZADOR FINANCEIRO — SIMPLES, PROGRESSIVO E RESPONSIVO                 */
/* ========================================================================== */
.subnav-financeiro { display:flex; gap:8px; overflow-x:auto; scrollbar-width:thin; padding-bottom:7px; }
.subnav-financeiro a { white-space:nowrap; }
.finance-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:14px 0 22px; padding:28px; border:1px solid rgba(62,207,145,.2); border-radius:24px; background:radial-gradient(circle at 85% 10%,rgba(51,204,137,.14),transparent 35%),#0d1914; }
.finance-hero h1 { margin:6px 0; font-size:clamp(34px,5vw,56px); line-height:1; }
.finance-hero p { max-width:670px; color:var(--texto-2); line-height:1.55; }
.finance-hero-acoes { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.btn-destaque { box-shadow:0 12px 34px rgba(38,194,129,.22); }
.finance-pulse-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0 0 20px; }
.finance-pulse { display:flex; flex-direction:column; gap:7px; min-height:112px; padding:20px; border:1px solid var(--borda); border-radius:17px; background:#0d1813; }
.finance-pulse span { color:var(--texto-2); font-size:11px; letter-spacing:.7px; text-transform:uppercase; }
.finance-pulse strong { font-size:clamp(22px,3vw,31px); font-variant-numeric:tabular-nums; }
.finance-pulse small { color:#789184; }
.finance-pulse.previsto { border-style:dashed; background:linear-gradient(145deg,rgba(242,207,103,.07),#0d1813 65%); }
.finance-acoes-rapidas { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0 0 22px; }
.finance-acao { display:flex; align-items:center; gap:13px; padding:17px; color:inherit; text-decoration:none; border:1px solid var(--borda); border-radius:15px; background:#0d1813; transition:.18s ease; }
.finance-acao:hover { border-color:rgba(57,211,145,.55); transform:translateY(-2px); }
.finance-acao>span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:13px; color:var(--verde-claro); background:rgba(51,204,137,.1); font-size:20px; }
.finance-acao div { display:flex; flex-direction:column; gap:3px; }
.finance-acao small { color:var(--texto-2); }
.finance-acao.destaque { border-color:rgba(57,211,145,.4); }
.toast-inline { margin:12px 0 18px; padding:13px 16px; border:1px solid; border-radius:12px; font-size:13px; }
.toast-inline.sucesso { color:#8ce6b9; border-color:rgba(57,211,145,.35); background:rgba(57,211,145,.08); }
.toast-inline.erro { color:#ff9b98; border-color:rgba(255,102,98,.35); background:rgba(255,102,98,.08); }
.toast-programacao { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.toast-programacao > div { display:grid; gap:4px; }
.toast-programacao span, .toast-programacao small { color:var(--texto-suave); }
.lancamento-destacado { outline:1px solid rgba(57,211,145,.55); outline-offset:-1px; animation:lancamentoConfirmado 1.5s ease-out; }
@keyframes lancamentoConfirmado { from { background:rgba(57,211,145,.22); } to { background:rgba(242,207,103,.025); } }
@media (max-width:720px) { .toast-programacao { align-items:flex-start; flex-direction:column; } }
.lancamentos-card { overflow:hidden; }
.lancamentos-titulo { gap:16px; }
.telegram-atalho { display:inline-flex; align-items:center; gap:7px; color:var(--verde-claro); text-decoration:none; font-size:12px; }
.lancamentos-filtros { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 0; }
.lancamentos-filtros .form-inline { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.lancamentos-filtros input,.lancamentos-filtros select { min-height:38px; }
.tabela-responsiva { overflow-x:auto; }
.tabela-lancamentos { min-width:850px; }
.tabela-lancamentos td { vertical-align:middle; }
.tabela-lancamentos td>small,.tabela-lancamentos td>span { display:block; margin-top:3px; }
.linha-prevista { opacity:.82; background:rgba(242,207,103,.025); }
.status-fin { display:inline-flex!important; width:max-content; padding:4px 8px; border:1px solid; border-radius:99px; font-size:9px; letter-spacing:.6px; text-transform:uppercase; }
.status-fin.confirmado { color:#76deb0; border-color:rgba(57,211,145,.3); background:rgba(57,211,145,.07); }
.status-fin.aguardando { color:#e8cf79; border-color:rgba(242,207,103,.3); background:rgba(242,207,103,.07); }
.acoes-lancamento { display:flex; align-items:center; gap:5px; justify-content:flex-end; }
.empty-finance { display:flex; flex-direction:column; align-items:center; gap:9px; padding:55px 20px; text-align:center; }
.empty-finance>span { font-size:42px; color:var(--verde-claro); }
.empty-finance p { color:var(--texto-2); margin-bottom:9px; }
.modal-lancamento-prime { width:min(680px,calc(100vw - 28px)); max-height:90vh; overflow-y:auto; }
.toggle-tipo { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.toggle-tipo label { position:relative; cursor:pointer; padding:12px; text-align:center; border:1px solid var(--borda); border-radius:11px; color:var(--texto-2); }
.toggle-tipo input { position:absolute; opacity:0; pointer-events:none; }
.toggle-tipo label:has(input:checked) { color:#07140e; font-weight:800; }
.toggle-tipo .t-saida:has(input:checked) { border-color:#ff7773; background:#ff7773; }
.toggle-tipo .t-entrada:has(input:checked) { border-color:#42d995; background:#42d995; }
.form-grid-2,.form-grid-3 { display:grid; gap:12px; }
.form-grid-2 { grid-template-columns:1fr 1fr; }
.form-grid-3 { grid-template-columns:1fr 1fr 1.2fr; }
.campo-valor { display:flex; align-items:center; overflow:hidden; border:1px solid var(--borda); border-radius:9px; background:#101d17; }
.campo-valor:focus-within { border-color:var(--verde); }
.campo-valor span { padding:0 0 0 12px; color:var(--texto-2); }
.campo-valor input { border:0!important; background:transparent!important; }
.lancamento-opcoes { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:4px; }
.lancamento-opcoes button { display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 6px; cursor:pointer; color:var(--texto-2); border:1px solid var(--borda); border-radius:11px; background:#0d1813; }
.lancamento-opcoes button span { font-size:20px; color:#8fb5a2; }
.lancamento-opcoes button:hover,.lancamento-opcoes button.ativo { color:#dff8eb; border-color:var(--verde); background:rgba(57,211,145,.08); }
.opcao-financeira { padding:16px; border:1px solid rgba(57,211,145,.22); border-radius:13px; background:rgba(57,211,145,.035); animation:fin-painel .18s ease both; }
.opcao-financeira[hidden] { display:none!important; }
.opcao-financeira h3 { margin:0 0 10px; font-size:14px; }
.radio-linha { display:flex!important; flex-direction:row!important; align-items:center; gap:9px!important; padding:7px 0; cursor:pointer; }
.radio-linha input { width:auto; }
.resumo-repeticao { margin-top:10px; padding:10px 12px; color:#d4eadf; border-left:3px solid var(--verde); background:rgba(57,211,145,.06); font-size:12px; }
.modal-salvar { justify-content:flex-end; }
@keyframes fin-painel { from{opacity:0;transform:translateY(-4px)} to{opacity:1;transform:none} }
.series-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.serie-card { display:flex; flex-direction:column; gap:12px; }
.serie-card.inativa { opacity:.62; }
.serie-card-topo,.cadastro-item,.ranking-item,.telegram-conectado,.status-servicos>div { display:flex; align-items:center; gap:12px; }
.serie-card-topo { justify-content:space-between; }
.serie-meta { display:flex; flex-wrap:wrap; gap:7px; }
.serie-acoes { display:flex; align-items:end; gap:8px; flex-wrap:wrap; }
.serie-acoes label { flex:1; min-width:130px; }
.cadastros-grid { align-items:start; }
.cadastro-lista { display:flex; flex-direction:column; gap:8px; margin:15px 0; }
.cadastro-item { padding:11px 12px; border:1px solid var(--borda); border-radius:11px; background:rgba(255,255,255,.018); }
.cadastro-item>i { width:10px; height:10px; border-radius:50%; flex:0 0 10px; }
.cadastro-item div { display:flex; flex:1; flex-direction:column; }
.cadastro-item small { color:var(--texto-2); }
.relatorio-ranking { display:flex; flex-direction:column; gap:9px; margin-top:15px; }
.ranking-item { display:grid; grid-template-columns:minmax(100px,1fr) 2fr auto; }
.ranking-barra { height:7px; overflow:hidden; border-radius:99px; background:#14231b; }
.ranking-barra i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#1fa96f,#55dca3); }
.telegram-hero { align-items:center; }
.telegram-orbe { width:105px; height:105px; position:relative; display:grid; place-items:center; flex:0 0 105px; border-radius:50%; background:radial-gradient(circle,#42d995,#13794f); box-shadow:0 0 55px rgba(66,217,149,.24); }
.telegram-orbe span { font-size:38px; }
.telegram-orbe i { position:absolute; inset:-11px; border:1px dashed rgba(66,217,149,.45); border-radius:50%; animation:op1-giro 13s linear infinite; }
.telegram-passos { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0 0 20px; }
.telegram-passos article { display:grid; grid-template-columns:35px 1fr; gap:2px 10px; padding:16px; border:1px solid var(--borda); border-radius:14px; background:#0d1813; }
.telegram-passos b { grid-row:1/3; width:35px; height:35px; display:grid; place-items:center; border-radius:50%; color:#07140e; background:var(--verde-claro); }
.telegram-passos span { font-weight:800; }.telegram-passos p { color:var(--texto-2); font-size:11px; }
.integracao-aviso,.codigo-vinculo,.seguranca-telegram { padding:15px; border:1px solid rgba(242,207,103,.25); border-radius:13px; background:rgba(242,207,103,.055); }
.integracao-aviso p { margin-top:4px; color:var(--texto-2); font-size:12px; }
.codigo-vinculo { display:flex; flex-direction:column; align-items:center; gap:6px; margin:13px 0; }
.codigo-vinculo strong { color:var(--op1-ouro,#f2cf67); font-size:30px; letter-spacing:5px; }
.codigo-vinculo code { padding:6px 9px; border-radius:7px; background:#06110b; color:#cde9da; }
.telegram-conectado { margin:15px 0; padding:12px; border:1px solid rgba(57,211,145,.25); border-radius:12px; }
.telegram-conectado>span { width:35px;height:35px;display:grid;place-items:center;border-radius:50%;color:#07140e;background:var(--verde-claro);font-weight:900; }
.telegram-conectado p { color:var(--texto-2); font-size:11px; }
.status-servicos { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; }
.status-servicos>div { padding:10px; border:1px solid var(--borda); border-radius:10px; }
.status-servicos>div>span { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:#a84e4b; }
.status-servicos>div>span.ok { background:var(--verde-claro); box-shadow:0 0 10px rgba(57,211,145,.5); }
.status-servicos p { display:flex; flex-direction:column; }.status-servicos small { color:var(--texto-2); }
.preferencias-alerta { display:grid; gap:8px; padding:13px; border:1px solid var(--borda); border-radius:11px; }
.preferencias-alerta legend { padding:0 6px; color:#d9eee3; font-weight:800; }
.preferencias-alerta label { flex-direction:row!important; align-items:center; gap:8px!important; }
.preferencias-alerta input { width:auto; }
.canal-futuro { opacity:.5; }.canal-futuro small { margin-left:auto; }
.seguranca-telegram { display:flex; align-items:center; gap:16px; margin-top:18px; }
.seguranca-telegram>span { font-size:34px; }.seguranca-telegram p { color:var(--texto-2); line-height:1.55; }

@media (max-width:900px) {
  .finance-pulse-grid { grid-template-columns:repeat(2,1fr); }
  .finance-acoes-rapidas { grid-template-columns:1fr; }
  .lancamentos-filtros { align-items:flex-start; flex-direction:column; }
  .lancamentos-filtros .form-inline { justify-content:flex-start; }
}
@media (max-width:680px) {
  .finance-hero { display:block; padding:20px; border-radius:18px; }
  .finance-hero-acoes { justify-content:flex-start; margin-top:17px; }
  .finance-pulse-grid,.series-grid,.telegram-passos,.status-servicos { grid-template-columns:1fr; }
  .form-grid-2,.form-grid-3 { grid-template-columns:1fr; }
  .lancamento-opcoes { grid-template-columns:repeat(2,1fr); }
  .ranking-item { grid-template-columns:1fr auto; }
  .ranking-barra { grid-column:1/3; }
  .telegram-orbe { margin:20px auto 0; }
}
@media (prefers-reduced-motion:reduce) {
  .finance-acao,.opcao-financeira,.telegram-orbe i { animation:none!important; transition:none!important; }
}


/* MISSÃO 01 — A ORIGEM · MODELO DAS SETE MISSÕES */
.missao-origem { padding-bottom:42px; }
.origem-topo { padding:22px 0 8px; }
.origem-topo h1 { color:#f4f7f4; }
.origem-intro { display:grid; grid-template-columns:1.05fr .95fr; gap:16px; margin:10px 0 18px; }
.origem-intro article { min-height:245px; padding:28px; border:1px solid rgba(66,217,149,.22); border-radius:24px; background:linear-gradient(145deg,rgba(15,34,25,.96),rgba(7,17,12,.96)); box-shadow:0 20px 55px rgba(0,0,0,.22); }
.origem-intro h2 { margin:17px 0 12px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(28px,4vw,43px); line-height:1.08; }
.origem-intro p { color:#b7c8bf; line-height:1.65; }
.origem-porque { position:relative; overflow:hidden; }
.origem-porque::after { content:''; position:absolute; width:170px; height:170px; right:-62px; bottom:-82px; border-radius:50%; background:rgba(242,207,103,.09); }
.origem-inimigo { position:relative; z-index:1; display:flex; align-items:center; gap:12px; margin-top:22px; padding:12px 15px; border:1px solid rgba(242,207,103,.25); border-radius:14px; background:rgba(242,207,103,.05); }
.origem-inimigo > span { width:38px; height:38px; display:grid; place-items:center; flex:0 0 38px; border-radius:50%; background:#f2cf67; color:#171409; font-weight:900; }
.origem-inimigo div { display:flex; flex-direction:column; gap:2px; }
.origem-inimigo small { color:#9e9b7a; font-size:9px; letter-spacing:1.2px; }
.origem-inimigo strong { color:#eadfae; }
.origem-progresso { margin:0 0 24px; padding:18px 20px; border:1px solid var(--borda); border-radius:17px; background:#0d1813; }
.origem-progresso > div:first-child { display:flex; justify-content:space-between; gap:15px; margin-bottom:10px; color:#b8c9c0; font-size:13px; }
.origem-progresso > div:first-child strong { color:#42d995; }
.origem-progresso p { margin-top:10px; color:#71877b; font-size:11px; text-align:center; }
.origem-secao-titulo { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.origem-secao-titulo h2 { margin-top:5px; font-size:clamp(24px,3vw,34px); }
.origem-secao-titulo p { margin-top:6px; color:var(--texto-2); }
.origem-acoes,.origem-validacao,.origem-quiz,.origem-finalizar,.origem-conclusao { margin:18px 0; padding:clamp(20px,4vw,34px); border:1px solid rgba(66,217,149,.2); border-radius:24px; background:linear-gradient(155deg,#0e1c16,#09130e); }
.origem-acoes-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.origem-acao { display:grid; grid-template-columns:54px 1fr; gap:14px; padding:18px; border:1px solid var(--borda); border-radius:17px; background:rgba(255,255,255,.018); transition:.2s ease; }
.origem-acao:hover { transform:translateY(-2px); border-color:rgba(66,217,149,.38); }
.origem-acao.concluida { border-color:rgba(66,217,149,.38); background:rgba(66,217,149,.055); }
.origem-acao-numero { display:flex; flex-direction:column; align-items:center; gap:7px; }
.origem-acao-numero span { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:#14251d; font-size:22px; }
.origem-acao-numero b { color:#698075; font-size:10px; letter-spacing:1px; }
.origem-acao-copy { min-width:0; }
.origem-acao-status { display:flex; justify-content:space-between; gap:10px; color:#74887d; font-size:10px; text-transform:uppercase; letter-spacing:1px; }
.origem-acao.concluida .origem-acao-status { color:#42d995; }
.origem-acao-copy h3 { margin:7px 0 6px; font-size:17px; }
.origem-acao-copy p { min-height:54px; margin-bottom:12px; color:#95a99e; font-size:12px; line-height:1.48; }
.origem-objetivo { display:flex; flex-direction:column; gap:8px; }
.origem-objetivo input { width:100%; }
.origem-objetivo .btn { align-self:flex-start; }
.origem-checklist { display:grid; gap:9px; }
.origem-checklist > div { display:grid; grid-template-columns:34px 1fr; align-items:center; gap:12px; padding:13px 15px; border:1px solid var(--borda); border-radius:13px; color:#8fa298; background:rgba(255,255,255,.015); }
.origem-checklist > div > span { width:28px; height:28px; display:grid; place-items:center; border:1px solid #53685c; border-radius:50%; font-size:11px; font-weight:900; }
.origem-checklist > div.feito { color:#dce9e2; border-color:rgba(66,217,149,.32); background:rgba(66,217,149,.055); }
.origem-checklist > div.feito > span { color:#07150e; border-color:#42d995; background:#42d995; }
.origem-quiz { scroll-margin-top:92px; }
.origem-quiz > p { color:var(--texto-2); }
.origem-quiz-bloqueado { display:flex; align-items:center; gap:16px; padding:22px; border:1px dashed #394a40; border-radius:16px; color:#84968c; }
.origem-quiz-bloqueado > span { font-size:32px; }
.origem-quiz-bloqueado p { margin-top:4px; font-size:12px; }
.origem-pergunta-contador { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:12px; margin:8px 0 20px; color:#42d995; font-size:11px; font-weight:800; }
.origem-pergunta-contador div { height:4px; overflow:hidden; border-radius:99px; background:#17261e; }
.origem-pergunta-contador i { display:block; height:100%; border-radius:inherit; background:#42d995; }
.origem-quiz > h3 { max-width:760px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(23px,3vw,32px); line-height:1.25; }
.origem-finalizar,.origem-conclusao { text-align:center; border-color:rgba(242,207,103,.3); background:radial-gradient(circle at 50% 0,rgba(242,207,103,.11),transparent 46%),#0c1711; }
.origem-finalizar h2,.origem-conclusao h2 { margin:14px auto 10px; max-width:720px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(28px,4vw,43px); }
.origem-finalizar > p,.origem-conclusao > p { max-width:660px; margin:0 auto 20px; color:#a8baaf; line-height:1.6; }
.origem-conclusao .op1-vitoria { margin-left:auto; margin-right:auto; }

.agenda-data-preview { display:block; min-height:18px; margin-top:6px; color:#42d995; font-size:11px; font-weight:700; }
.agenda-data-preview.erro { color:#ff7773; }
.serie-agenda { margin:14px 0; padding:13px; border:1px solid rgba(66,217,149,.18); border-radius:12px; background:rgba(66,217,149,.035); }
.serie-agenda > strong { display:block; margin-bottom:9px; color:#cce0d5; font-size:11px; text-transform:uppercase; letter-spacing:.8px; }
.serie-agenda > div { display:flex; flex-wrap:wrap; gap:7px; }
.serie-agenda a { display:flex; flex-direction:column; gap:2px; padding:7px 9px; border:1px solid var(--borda); border-radius:9px; color:#d5e4dc; text-decoration:none; background:#0a1510; }
.serie-agenda a:hover { border-color:#42d995; }
.serie-agenda a span { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.serie-agenda a small { color:#71867a; font-size:9px; }
.serie-agenda > p { margin-top:8px; color:#71867a; font-size:10px; }
.nav-mes { flex-wrap:wrap; justify-content:flex-end; }
.nav-mes .btn { white-space:nowrap; }
.nav-mes-atual { color:#42d995!important; }

@media (max-width:800px) {
  .origem-intro,.origem-acoes-grid { grid-template-columns:1fr; }
  .origem-acao-copy p { min-height:0; }
  .nav-mes { justify-content:flex-start; }
}
@media (max-width:560px) {
  .origem-acao { grid-template-columns:1fr; }
  .origem-acao-numero { flex-direction:row; justify-content:space-between; }
  .origem-secao-titulo { display:block; }
  .origem-secao-titulo > .tag,.origem-secao-titulo > strong { display:inline-flex; margin-top:10px; }
  .nav-mes .btn { font-size:10px; padding-left:8px; padding-right:8px; }
}


/* HOTFIX — REVISÃO DA MISSÃO 1 */
.missao-revisao-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;border-color:rgba(66,217,149,.35);background:linear-gradient(125deg,rgba(66,217,149,.08),rgba(11,24,17,.96))}.missao-revisao-card h2{margin:5px 0 7px}.mapa-fase.revisavel{color:inherit;text-decoration:none;cursor:pointer}.mapa-fase.revisavel:hover{border-color:#42d995;transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.22)}.cidade-local.revisavel a{cursor:pointer}.cidade-local.revisavel a:hover .local-edificio{filter:brightness(1.2)}@media(max-width:700px){.missao-revisao-card{align-items:flex-start;flex-direction:column}}


/* =========================================================
   ORGANIZADOR PRIME — navegação Kanban e acabamento responsivo
   ========================================================= */
.organizador-prime-hero {
  position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:28px;
  margin:4px 0 20px; padding:clamp(24px,4vw,42px); border:1px solid rgba(66,217,149,.25); border-radius:26px;
  background:
    radial-gradient(circle at 82% 18%,rgba(66,217,149,.18),transparent 28%),
    linear-gradient(135deg,#10271d 0%,#09150f 54%,#07110c 100%);
  box-shadow:0 24px 60px rgba(0,0,0,.24);
}
.organizador-prime-hero:after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.2; background-image:radial-gradient(rgba(242,207,103,.6) 1px,transparent 1px); background-size:28px 28px; }
.organizador-prime-hero > * { position:relative; z-index:1; }
.organizador-prime-hero h1 { margin:7px 0 8px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(32px,5vw,52px); line-height:1.02; }
.organizador-prime-hero p { max-width:660px; color:#a8bbb0; font-size:15px; }

.organizador-hub { display:grid; grid-template-columns:repeat(7,minmax(132px,1fr)); gap:10px; margin:0 0 20px; }
.organizador-atalho {
  position:relative; min-width:0; display:grid; grid-template-columns:36px 1fr; align-items:center; gap:10px;
  padding:15px 12px; border:1px solid var(--borda); border-radius:17px; color:#d7e5dd; text-decoration:none;
  background:linear-gradient(145deg,rgba(18,35,27,.96),rgba(9,19,14,.96)); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.organizador-atalho:hover { transform:translateY(-3px); border-color:rgba(66,217,149,.5); box-shadow:0 14px 30px rgba(0,0,0,.22); }
.organizador-atalho.ativa { border-color:#42d995; background:linear-gradient(145deg,rgba(42,177,117,.25),rgba(10,28,19,.98)); box-shadow:0 0 0 1px rgba(66,217,149,.08),0 12px 28px rgba(18,137,85,.16); }
.organizador-numero { position:absolute; right:9px; top:7px; color:#527064; font-size:9px; font-weight:900; letter-spacing:.8px; }
.organizador-icone { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:#42d995; background:rgba(66,217,149,.09); font-size:18px; }
.organizador-atalho.ativa .organizador-icone { color:#07160e; background:#42d995; }
.organizador-atalho > span:last-child { min-width:0; display:flex; flex-direction:column; }
.organizador-atalho strong { overflow:hidden; text-overflow:ellipsis; color:inherit; font-size:12px; line-height:1.2; }
.organizador-atalho small { margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#72887c; font-size:9px; }

.organizador-aviso { display:flex; align-items:center; gap:10px; margin-bottom:16px; padding:14px 18px; }
.organizador-painel-clean { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0; }
.organizador-kpi { min-height:145px; display:grid; grid-template-columns:56px 1fr; align-items:center; gap:17px; padding:24px; border:1px solid var(--borda); border-radius:22px; background:linear-gradient(150deg,#102018,#0a1510); box-shadow:0 16px 36px rgba(0,0,0,.15); }
.organizador-kpi .kpi-icone { width:56px; height:56px; display:grid; place-items:center; border-radius:17px; font-size:25px; }
.organizador-kpi small { display:block; margin-bottom:7px; color:#8fa398; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; }
.organizador-kpi strong { display:block; font-size:clamp(25px,3vw,38px); font-variant-numeric:tabular-nums; line-height:1.05; }
.organizador-kpi p { margin-top:8px; color:#61796c; font-size:10px; }
.organizador-kpi.saldo .kpi-icone { color:#f2cf67; background:rgba(242,207,103,.12); }
.organizador-kpi.receita { border-color:rgba(66,217,149,.25); }.organizador-kpi.receita .kpi-icone { color:#42d995; background:rgba(66,217,149,.1); }.organizador-kpi.receita strong { color:#42d995; }
.organizador-kpi.despesa { border-color:rgba(255,103,99,.22); }.organizador-kpi.despesa .kpi-icone { color:#ff7773; background:rgba(255,103,99,.1); }.organizador-kpi.despesa strong { color:#ff7773; }

.telegram-prime-banner { display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:18px; margin:18px 0; padding:20px 24px; border:1px solid rgba(72,165,255,.28); border-radius:20px; color:#dcece4; text-decoration:none; background:linear-gradient(115deg,rgba(20,72,75,.55),rgba(8,24,18,.95)); transition:.2s ease; }
.telegram-prime-banner:hover { transform:translateY(-2px); border-color:#42d995; }
.telegram-prime-mic { width:60px; height:60px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,#42d995,#139966); box-shadow:0 0 0 8px rgba(66,217,149,.06); font-size:25px; }
.telegram-prime-banner > span:nth-child(2) { display:flex; flex-direction:column; }
.telegram-prime-banner small { color:#42d995; font-size:9px; font-weight:900; letter-spacing:1.6px; }
.telegram-prime-banner strong { margin:4px 0; font-size:17px; }
.telegram-prime-banner p { color:#829a8e; font-size:11px; }
.telegram-prime-banner b { color:#42d995; font-size:12px; white-space:nowrap; }

.organizador-orientacao { display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; gap:14px; margin:22px 0; padding:18px 22px; border:1px solid var(--borda); border-radius:18px; background:rgba(255,255,255,.014); }
.organizador-orientacao > div { display:flex; align-items:center; gap:10px; }
.organizador-orientacao > div > span { width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(66,217,149,.3); border-radius:50%; color:#42d995; font-size:10px; font-weight:900; }
.organizador-orientacao p { display:flex; flex-direction:column; }.organizador-orientacao p strong { font-size:12px; }.organizador-orientacao p small { color:#6d8377; font-size:9px; }
.organizador-orientacao i { height:1px; background:linear-gradient(90deg,rgba(66,217,149,.08),rgba(66,217,149,.5),rgba(66,217,149,.08)); }

.organizador-cabecalho { margin-top:0; }
.perfil-prime-card { max-width:900px; margin-left:auto; margin-right:auto; padding:clamp(22px,4vw,38px); }
.perfil-prime-intro { display:flex; align-items:center; gap:16px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--borda); }
.perfil-prime-avatar { width:62px; height:62px; display:grid; place-items:center; border-radius:18px; color:#07160e; background:linear-gradient(145deg,#57e4a4,#25ad75); font-size:27px; font-weight:900; box-shadow:0 12px 30px rgba(39,187,124,.2); }
.perfil-prime-form .form-grid { grid-template-columns:repeat(2,1fr); }.perfil-prime-form .campo-largo { grid-column:1/-1; }

.historico-resumo,.alerta-prime-resumo,.fixo-resumo-prime { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:16px 0; }
.historico-resumo > span,.alerta-prime-resumo > div,.fixo-resumo-prime > div { display:flex; flex-direction:column; padding:17px 20px; border:1px solid var(--borda); border-radius:16px; background:#0e1d16; }
.historico-resumo small,.alerta-prime-resumo small,.fixo-resumo-prime small { color:#7e9589; font-size:10px; text-transform:uppercase; letter-spacing:1px; }
.historico-resumo strong,.alerta-prime-resumo strong,.fixo-resumo-prime strong { margin-top:5px; font-size:23px; font-variant-numeric:tabular-nums; }
.fixo-resumo-prime span { margin-top:4px; color:#62776c; font-size:9px; }.fixo-resumo-prime .receita { border-color:rgba(66,217,149,.25); }.fixo-resumo-prime .despesa { border-color:rgba(255,103,99,.22); }
.fixo-resumo-prime .receita strong { color:#42d995; }.fixo-resumo-prime .despesa strong { color:#ff7773; }

.tabela-historico td:nth-child(3) small,.relatorio-lista td:nth-child(2) small { display:block; margin-top:4px; color:#71867a; }
.movimento-tipo { display:inline-flex; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:900; text-transform:uppercase; }
.movimento-tipo.entrada { color:#42d995; background:rgba(66,217,149,.1); }.movimento-tipo.saida { color:#ff7773; background:rgba(255,103,99,.1); }
.tabela-historico tr.linha-entrada td:first-child { border-left:3px solid #42d995; }.tabela-historico tr.linha-saida td:first-child { border-left:3px solid #ff7773; }

.organizador-vazio { padding:40px!important; text-align:center; }.organizador-vazio > span { display:block; margin-bottom:12px; color:#42d995; font-size:36px; }.organizador-vazio h3 { margin-bottom:7px; }.organizador-vazio p { margin-bottom:18px; color:#789084; }

.alerta-kanban { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.alerta-card { padding:20px; border:1px solid var(--borda); border-radius:20px; background:linear-gradient(150deg,#102018,#09140e); box-shadow:0 14px 32px rgba(0,0,0,.14); }
.alerta-card.status-atrasado { border-color:rgba(255,103,99,.45); }.alerta-card.status-vence_breve { border-color:rgba(242,207,103,.45); }
.alerta-card-topo { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.alerta-dia { width:52px; height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:14px; color:#42d995; background:rgba(66,217,149,.09); }
.alerta-dia small { font-size:8px; letter-spacing:1px; }.alerta-dia strong { font-size:22px; line-height:1; }
.alerta-card h2 { margin:16px 0 7px; font-size:18px; }.alerta-valor { display:block; font-size:25px; }.alerta-card > p { margin:7px 0 18px; color:#71887b; font-size:10px; }
.alerta-acoes { display:flex; flex-wrap:wrap; gap:7px; padding-top:13px; border-top:1px solid var(--borda); }.alerta-acoes form { margin:0; }

.organizador-filtros { margin-bottom:15px; }
.fixa-grid-prime { align-items:stretch; }
.fixa-card-prime { display:flex; flex-direction:column; min-height:255px; padding:20px; border-radius:20px; background:linear-gradient(150deg,#102018,#09140e); box-shadow:0 14px 30px rgba(0,0,0,.14); }
.fixa-card-prime.entrada { border-color:rgba(66,217,149,.32); }.fixa-card-prime.saida { border-color:rgba(255,103,99,.22); }
.fixa-card-cabecalho { display:flex; align-items:center; justify-content:space-between; gap:9px; }.fixa-tipo { color:#6f8579; font-size:9px; font-weight:900; letter-spacing:1.2px; }
.fixa-card-prime h2 { margin:16px 0 6px; font-size:18px; }.fixa-card-prime .fixa-valor { font-size:27px; }.fixa-card-prime.entrada .fixa-valor { color:#42d995; }.fixa-card-prime.saida .fixa-valor { color:#ff918e; }
.fixa-detalhes { display:flex; flex-wrap:wrap; gap:7px; margin:13px 0 auto; }.fixa-detalhes span { padding:5px 8px; border:1px solid var(--borda); border-radius:8px; color:#82988d; font-size:9px; }
.fixa-card-prime .fixa-acoes { margin-top:17px; padding-top:13px; border-top:1px solid var(--borda); }

.relatorio-identificacao { display:none; }
.relatorio-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:16px 0; }
.relatorio-kpis article { min-height:130px; display:flex; flex-direction:column; justify-content:center; padding:21px; border:1px solid var(--borda); border-radius:18px; background:#0e1d16; }
.relatorio-kpis small { color:#7c9286; font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }.relatorio-kpis strong { margin:8px 0 5px; font-size:clamp(21px,2.5vw,30px); font-variant-numeric:tabular-nums; }.relatorio-kpis span { color:#647b6f; font-size:9px; }
.relatorio-kpis .receita { border-color:rgba(66,217,149,.3); }.relatorio-kpis .receita strong { color:#42d995; }.relatorio-kpis .despesa { border-color:rgba(255,103,99,.28); }.relatorio-kpis .despesa strong { color:#ff7773; }.relatorio-kpis .fixo { border-color:rgba(242,207,103,.28); }.relatorio-kpis .fixo strong { color:#f2cf67; }
.relatorio-grafico { margin:16px 0; }
.relatorio-barras { display:grid; gap:13px; }.relatorio-barras > div > span { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; }.relatorio-barras small { color:#859a8f; }.relatorio-barras i { display:block; height:9px; overflow:hidden; border-radius:99px; background:#16271e; }.relatorio-barras em { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#42d995,#f2cf67); }
.relatorio-duas-listas { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.relatorio-lista { min-width:0; }.relatorio-lista.receita { border-color:rgba(66,217,149,.25); }.relatorio-lista.despesa { border-color:rgba(255,103,99,.22); }
.relatorio-fixos { margin-top:14px; }.relatorio-fixos-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }.relatorio-fixos-grid > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--borda); border-radius:11px; }.relatorio-fixos-grid span { display:flex; flex-direction:column; }.relatorio-fixos-grid small { margin-top:3px; color:#70867a; }

@media (max-width:1180px) {
  .organizador-hub { grid-template-columns:repeat(4,1fr); }
  .relatorio-kpis { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:800px) {
  .organizador-prime-hero { align-items:flex-start; flex-direction:column; }
  .organizador-prime-hero .btn { width:100%; text-align:center; }
  .organizador-hub { grid-template-columns:repeat(2,1fr); }
  .organizador-painel-clean,.historico-resumo,.alerta-prime-resumo,.fixo-resumo-prime { grid-template-columns:1fr; }
  .organizador-kpi { min-height:115px; }
  .telegram-prime-banner { grid-template-columns:56px 1fr; }.telegram-prime-banner b { grid-column:2; }
  .organizador-orientacao { grid-template-columns:1fr; }.organizador-orientacao i { display:none; }
  .perfil-prime-form .form-grid,.relatorio-duas-listas,.relatorio-fixos-grid { grid-template-columns:1fr; }
  .perfil-prime-form .campo-largo { grid-column:auto; }
  .alerta-kanban { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
  .organizador-hub { display:flex; overflow-x:auto; margin-left:-16px; margin-right:-16px; padding:0 16px 8px; scroll-snap-type:x mandatory; }
  .organizador-atalho { min-width:185px; scroll-snap-align:start; flex:0 0 auto; }
  .organizador-kpi { grid-template-columns:46px 1fr; padding:18px; }.organizador-kpi .kpi-icone { width:46px; height:46px; }
  .telegram-prime-banner { grid-template-columns:1fr; text-align:center; }.telegram-prime-mic { margin:auto; }.telegram-prime-banner b { grid-column:auto; }
  .alerta-kanban,.relatorio-kpis { grid-template-columns:1fr; }
  .finance-hero.organizador-cabecalho { align-items:flex-start; }.finance-hero.organizador-cabecalho > .docs-lista,.finance-hero.organizador-cabecalho > .btn { width:100%; }.finance-hero.organizador-cabecalho .docs-lista .btn { flex:1; }
}

@media print {
  @page { size:A4; margin:12mm; }
  body { color:#17221c!important; background:#fff!important; font-size:10pt; }
  .topbar,.ambiente-faixa,.nao-imprimir,.ajuda-flutuante,.organizador-cabecalho .nao-imprimir { display:none!important; }
  main.container { width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
  .relatorio-topo { margin:0 0 8mm!important; padding:0!important; border:0!important; color:#17221c!important; background:none!important; box-shadow:none!important; }
  .relatorio-topo h1 { color:#101a14!important; font-size:26pt!important; }.relatorio-topo p,.relatorio-topo .eyebrow { color:#53665b!important; }
  .relatorio-identificacao { display:flex; justify-content:space-between; margin-bottom:5mm; padding-bottom:3mm; border-bottom:1px solid #ccd7d0; color:#17221c; }
  .relatorio-kpis { grid-template-columns:repeat(4,1fr); gap:3mm; }.relatorio-kpis article,.card { color:#17221c!important; border:1px solid #d5ded8!important; background:#fff!important; box-shadow:none!important; break-inside:avoid; }
  .relatorio-kpis small,.relatorio-kpis span,.sub,.mini,.relatorio-fixos-grid small { color:#5d6c63!important; }
  .relatorio-kpis strong { font-size:15pt!important; }.verde { color:#168153!important; }.texto-vermelho { color:#c63f3c!important; }
  .relatorio-barras i { background:#e8eeea!important; }.relatorio-barras em { background:#2b9f6b!important; }
  .relatorio-duas-listas { grid-template-columns:1fr; }.relatorio-lista { break-inside:auto; }
  .tabela th,.tabela td { color:#17221c!important; border-color:#dbe2dd!important; }
  .rodape { color:#53665b!important; border-color:#d5ded8!important; background:#fff!important; }
}

.organizador-hub { scrollbar-width:none; }
.organizador-hub::-webkit-scrollbar { display:none; }

/* Missao 02 oficial - A Blindagem */
.missao-bancaria{--op1-verde:#56d7b0;--bancaria-azul:#6fb8ff;--bancaria-ouro:#f2cf67;padding-bottom:48px}
.bancaria-topo{padding:22px 0 8px}
.bancaria-topo h1{background:linear-gradient(110deg,#f4f7f4 18%,#8ce3c6 62%,#6fb8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.op2-convite{border-color:rgba(111,184,255,.34);background:radial-gradient(circle at 88% 12%,rgba(111,184,255,.16),transparent 34%),linear-gradient(135deg,#0d1914,#0a1720)}
.bancaria-operacoes,.bancaria-criterios{margin:18px 0;padding:clamp(20px,4vw,34px);border:1px solid rgba(111,184,255,.22);border-radius:24px;background:linear-gradient(150deg,rgba(12,27,23,.98),rgba(8,18,24,.98))}
.bancaria-operacoes-grid,.bancaria-criterios-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bancaria-operacoes-grid article,.bancaria-criterios-grid article{display:grid;grid-template-columns:46px 1fr;gap:14px;padding:18px;border:1px solid var(--borda);border-radius:17px;background:rgba(255,255,255,.018);transition:.2s ease}
.bancaria-operacoes-grid article:hover,.bancaria-criterios-grid article:hover{transform:translateY(-2px);border-color:rgba(111,184,255,.4)}
.bancaria-operacoes-grid article>span,.bancaria-criterios-grid article>span{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(111,184,255,.34);border-radius:13px;color:var(--bancaria-azul);background:rgba(111,184,255,.08);font-size:11px;font-weight:900;letter-spacing:1px}
.bancaria-operacoes-grid h3,.bancaria-criterios-grid h3{margin:1px 0 6px;font-size:17px}
.bancaria-operacoes-grid p,.bancaria-criterios-grid p{color:#98aba1;font-size:12px;line-height:1.55}
.bancaria-criterios{border-color:rgba(242,207,103,.23);background:linear-gradient(150deg,rgba(25,26,17,.94),rgba(8,20,16,.98))}
.bancaria-criterios-grid article>span{border-color:rgba(242,207,103,.38);color:var(--bancaria-ouro);background:rgba(242,207,103,.07)}
.bancaria-criterios-grid article:hover{border-color:rgba(242,207,103,.4)}
.bancaria-registrato{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:18px;margin:18px 0;padding:22px;border:1px solid rgba(111,184,255,.34);border-radius:20px;background:radial-gradient(circle at 4% 50%,rgba(111,184,255,.12),transparent 28%),#0b1919}
.registrato-icone{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#17483e,#17374f);font-size:25px;box-shadow:0 12px 30px rgba(0,0,0,.24)}
.bancaria-registrato h2{margin:4px 0 6px;font-size:22px}
.bancaria-registrato p{max-width:680px;color:#9db0a6;font-size:12px;line-height:1.55}
.missao-bancaria .origem-acao.disponivel{border-color:rgba(111,184,255,.55);background:linear-gradient(145deg,rgba(111,184,255,.08),rgba(66,217,149,.04));box-shadow:0 14px 34px rgba(0,0,0,.18)}
.missao-bancaria .origem-acao.bloqueada{opacity:.55;filter:saturate(.55)}
.missao-bancaria .origem-acao.bloqueada:hover{transform:none;border-color:var(--borda)}
.bancaria-link-apoio{display:inline-block;margin:-2px 0 12px;font-size:12px}
.bancaria-confirmada{display:inline-flex;align-items:center;gap:6px;color:#56d7b0;font-size:11px;font-weight:800;letter-spacing:.3px}
.bancaria-cartao{display:flex;align-items:flex-start;gap:16px;margin:18px 0;padding:20px 22px;border:1px solid rgba(242,207,103,.3);border-radius:18px;background:rgba(242,207,103,.055)}
.bancaria-cartao>span{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px;border-radius:14px;background:rgba(242,207,103,.12);font-size:24px}
.bancaria-cartao strong{color:#f1e5b7}
.bancaria-cartao p{margin-top:5px;color:#a89f7e;font-size:12px;line-height:1.55}
.bancaria-finalizar,.bancaria-conclusao{border-color:rgba(111,184,255,.3);background:radial-gradient(circle at 50% 0,rgba(111,184,255,.12),transparent 46%),#0b1714}
@media(max-width:760px){
  .bancaria-operacoes-grid,.bancaria-criterios-grid{grid-template-columns:1fr}
  .bancaria-registrato{grid-template-columns:50px 1fr}
  .bancaria-registrato .btn{grid-column:1/-1;width:100%}
  .bancaria-operacoes,.bancaria-criterios{border-radius:19px}
}
@media(max-width:560px){
  .bancaria-topo{flex-direction:column}
  .bancaria-topo .op1-jogador{width:100%}
  .bancaria-operacoes-grid article,.bancaria-criterios-grid article{grid-template-columns:38px 1fr;padding:15px}
  .bancaria-operacoes-grid article>span,.bancaria-criterios-grid article>span{width:36px;height:36px}
  .bancaria-cartao{padding:16px}
}
/* Correcao responsiva do menu superior para a campanha A Blindagem */
@media (max-width:620px) {
  body { overflow-x:hidden; }
  .topbar-inner { gap:10px; padding:6px 14px; }
  .brand { flex:0 0 auto; }
  .topbar-user { min-width:0; margin-left:auto; gap:8px; }
  .nome-user { max-width:115px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* A barra horizontal rolável foi SUBSTITUÍDA pela gaveta lateral (dono, 27/07).
     As regras antigas de .nav ficavam depois do bloco da gaveta e a anulavam. */
  .nav::-webkit-scrollbar { display:none; }
  .nav > a, .nav > .menu-modulo { flex:0 0 auto; }
}

/* Campanha final de sete fases */
.quiz-form-multiplo{display:grid;gap:18px}
.quiz-pergunta-bloco{border:1px solid var(--borda);border-radius:16px;padding:18px;background:rgba(255,255,255,.018)}
.quiz-pergunta-bloco legend{display:grid;gap:5px;width:100%;padding:0 5px 10px;font-size:17px;font-weight:800;line-height:1.35}
.quiz-pergunta-bloco legend .mini{color:var(--verde);letter-spacing:.14em}
.conclusao-convite aside{display:grid;gap:8px;place-items:center;text-align:center}
.conclusao-cabecalho{align-items:center}
.conclusao-resumo{display:flex;align-items:center;justify-content:space-between;gap:24px}
.cert-historico-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.cert-historico-item{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid var(--borda);border-radius:14px;background:rgba(255,255,255,.018)}
.cert-historico-item .mapa-num{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--verde);color:#06160e;font-weight:900}
.cert-historico-item div{display:grid;gap:3px}.cert-historico-item small{color:var(--texto-2);letter-spacing:.1em}.cert-historico-item span{color:var(--verde-claro)}.cert-historico-item em{font-size:11px;color:var(--texto-2);font-style:normal}
.conclusao-emissao{text-align:center}.conclusao-emissao form{margin-top:16px}
@media(max-width:760px){.conclusao-resumo{align-items:flex-start;flex-direction:column}.cert-historico-grid{grid-template-columns:1fr}.quiz-pergunta-bloco{padding:14px}}


/* =========================================================
   ILLUMICAST — ORGANIZADOR FINANCEIRO PREMIUM
   Referência visual aprovada em 26/07/2026.
   ========================================================= */
.illumi-dashboard{--illumi:#0867ff;--illumi-2:#00d9ff;--illumi-ink:#071737;--illumi-soft:#edf4ff;display:grid;grid-template-columns:255px minmax(0,1fr);min-height:760px;margin:8px 0 30px;overflow:hidden;border:1px solid rgba(83,150,255,.34);border-radius:28px;color:var(--illumi-ink);background:linear-gradient(145deg,#eaf2ff 0%,#f8fbff 54%,#edf4ff 100%);box-shadow:0 28px 90px rgba(0,73,182,.22),inset 0 1px rgba(255,255,255,.95)}
.illumi-rail{position:relative;display:flex;flex-direction:column;min-width:0;padding:27px 18px;background:radial-gradient(circle at 45% 0,rgba(0,135,255,.28),transparent 29%),linear-gradient(165deg,#071d4b,#03112f 62%,#020b20);box-shadow:inset -1px 0 rgba(89,180,255,.33),12px 0 45px rgba(0,61,170,.13)}
.illumi-rail:after{content:"";position:absolute;inset:10px;border:1px solid rgba(40,157,255,.18);border-radius:22px;pointer-events:none;box-shadow:inset 0 0 30px rgba(0,103,255,.08)}
.illumi-marca{position:relative;z-index:1;display:grid;grid-template-columns:42px 1fr;align-items:center;margin:5px 8px 36px;color:#fff;text-decoration:none}.illumi-marca strong{font-size:23px;letter-spacing:7px}.illumi-marca small{grid-column:2;color:#aacbff;font-size:8px;letter-spacing:2px}.illumi-simbolo{grid-row:1/3;position:relative;width:32px;height:32px}.illumi-simbolo i{position:absolute;left:2px;width:25px;height:6px;border-radius:2px;background:linear-gradient(90deg,#20e7ff,#1672ff);box-shadow:0 0 13px #149cff}.illumi-simbolo i:nth-child(1){top:2px;transform:skewX(-22deg)}.illumi-simbolo i:nth-child(2){top:13px;width:18px;left:7px}.illumi-simbolo i:nth-child(3){top:24px;transform:skewX(22deg)}
.illumi-dashboard .organizador-hub{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:9px;margin:0}.illumi-dashboard .organizador-atalho{min-height:62px;grid-template-columns:42px 1fr;padding:10px 13px;border-color:rgba(68,151,255,.24);border-radius:15px;color:#d9e9ff;background:linear-gradient(145deg,rgba(12,47,101,.78),rgba(2,20,57,.78));box-shadow:inset 0 1px rgba(255,255,255,.03)}.illumi-dashboard .organizador-atalho:hover{border-color:#25b7ff;box-shadow:0 0 22px rgba(0,124,255,.26),inset 0 0 18px rgba(0,110,255,.09)}.illumi-dashboard .organizador-atalho.ativa{color:#fff;border-color:#21c8ff;background:linear-gradient(135deg,#087bff,#044dda);box-shadow:0 0 0 1px rgba(255,255,255,.22),0 0 25px rgba(0,152,255,.72),inset 0 0 16px rgba(87,231,255,.42)}.illumi-dashboard .organizador-icone{color:#80dfff;background:rgba(5,85,188,.28);border:1px solid rgba(85,182,255,.25)}.illumi-dashboard .organizador-atalho.ativa .organizador-icone{color:#fff;background:rgba(5,27,105,.42);border-color:rgba(255,255,255,.48)}.illumi-dashboard .organizador-numero{top:50%;right:11px;transform:translateY(-50%);color:#73cdfa;font-size:10px}.illumi-dashboard .organizador-atalho small{display:none}.illumi-dashboard .organizador-atalho strong{font-size:12px}
.illumi-rail-rodape{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin:auto 8px 0;padding-top:24px;color:#bfd8ff}.illumi-rail-rodape>span{width:8px;height:8px;border-radius:50%;background:#20e7ff;box-shadow:0 0 13px #20e7ff}.illumi-rail-rodape p{display:flex;flex-direction:column}.illumi-rail-rodape strong{font-size:9px}.illumi-rail-rodape small{margin-top:3px;color:#6289c1;font-size:8px}
.illumi-stage{min-width:0;padding:30px}.illumi-hero{position:relative;min-height:300px;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(340px,1.1fr);align-items:center;overflow:hidden;padding:38px;border:1px solid rgba(98,155,240,.34);border-radius:25px;background:radial-gradient(circle at 68% 42%,rgba(61,172,255,.22),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.97),rgba(239,246,255,.94));box-shadow:0 19px 50px rgba(42,101,184,.16),inset 0 1px #fff}.illumi-hero:before{content:"";position:absolute;inset:0;opacity:.26;background-image:linear-gradient(rgba(43,114,214,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(43,114,214,.07) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(90deg,transparent 35%,#000)}.illumi-hero-copy{position:relative;z-index:2}.illumi-hero .eyebrow{color:#1268dd}.illumi-hero h1{margin:20px 0 12px;color:#071737;font-family:Inter,system-ui,sans-serif;font-size:clamp(38px,4.6vw,64px);font-weight:900;letter-spacing:-3px;line-height:.98}.illumi-hero h1 em{color:#0867ff;font-style:normal;text-shadow:0 8px 22px rgba(8,103,255,.2)}.illumi-hero p{max-width:440px;color:#667998;font-size:14px}.illumi-novo{position:absolute;z-index:4;right:34px;bottom:28px;display:flex;align-items:center;gap:12px;padding:16px 24px;border:1px solid #54e7ff;border-radius:999px;color:#fff;text-decoration:none;font-weight:900;background:linear-gradient(135deg,#087eff,#0443dc 65%,#5d28eb);box-shadow:0 0 0 5px rgba(18,127,255,.12),0 12px 27px rgba(7,64,208,.32),inset 0 1px rgba(255,255,255,.45);transition:.2s ease}.illumi-novo:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 0 0 6px rgba(18,127,255,.14),0 0 32px rgba(0,171,255,.65)}.illumi-novo span{font-size:23px;font-weight:400}
.illumi-visual{position:relative;z-index:2;width:min(100%,450px);height:240px;margin:-28px auto 16px}.illumi-grafico{position:absolute;left:44px;top:15px;width:245px;height:160px;transform:perspective(500px) rotateY(-12deg) rotateX(3deg);border:2px solid #50dcff;border-radius:23px;background:linear-gradient(145deg,rgba(16,139,255,.92),rgba(3,58,205,.9));box-shadow:0 0 0 6px rgba(38,179,255,.13),0 0 42px rgba(0,133,255,.58),inset 0 0 40px rgba(76,227,255,.28)}.illumi-grafico svg{width:100%;height:100%;overflow:visible}.illumi-grafico .grade{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}.illumi-grafico .linha{fill:none;stroke:url(#illumiLinha);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px #fff)}.illumi-grafico circle{fill:#fff;filter:drop-shadow(0 0 8px #6ff)}.illumi-base{position:absolute;left:24px;right:12px;bottom:5px;height:54px;border:2px solid #51dfff;border-radius:50%;background:radial-gradient(ellipse,rgba(20,137,255,.44),rgba(2,46,155,.86));box-shadow:0 0 26px #129dff,0 18px 32px rgba(0,58,174,.25)}.illumi-moeda-principal{position:absolute;z-index:3;right:106px;bottom:30px;width:104px;height:104px;display:grid;place-items:center;border:7px solid #7be9ff;border-radius:50%;color:#fff;font-size:50px;font-weight:900;background:linear-gradient(145deg,#148cff,#043dcf);box-shadow:0 0 0 5px #0a67ed,0 0 33px #13baff,inset 0 0 22px rgba(255,255,255,.3)}.illumi-pilhas{position:absolute;z-index:2;right:30px;bottom:39px;width:93px}.illumi-pilhas i{display:block;height:27px;margin-top:-5px;border:3px solid #61dfff;border-radius:50%;background:linear-gradient(180deg,#0e95ff,#073ecb);box-shadow:0 0 15px rgba(25,171,255,.65)}
.illumi-kpis{gap:20px;margin:22px 0}.illumi-dashboard .organizador-kpi{min-height:170px;padding:26px;border:1px solid rgba(77,141,229,.32);color:#0a1734;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(235,244,255,.9));box-shadow:0 15px 34px rgba(42,93,163,.13),inset 0 1px #fff}.illumi-dashboard .organizador-kpi .kpi-icone{border:2px solid currentColor;color:#0875ff;background:linear-gradient(145deg,#0f8cff,#043ecf);box-shadow:0 0 0 5px rgba(9,113,255,.09),0 0 22px rgba(0,116,255,.42);color:#fff}.illumi-dashboard .organizador-kpi small{color:#2564b3;font-weight:900}.illumi-dashboard .organizador-kpi strong{color:#0a1734}.illumi-dashboard .organizador-kpi p{color:#7890af}.illumi-dashboard .organizador-kpi.receita{border-color:rgba(0,198,165,.5)}.illumi-dashboard .organizador-kpi.receita .kpi-icone{border-color:#5dffe1;background:linear-gradient(145deg,#00cda6,#00856e);box-shadow:0 0 0 5px rgba(0,211,176,.09),0 0 22px rgba(0,206,171,.38)}.illumi-dashboard .organizador-kpi.receita strong{color:#008f76}.illumi-dashboard .organizador-kpi.despesa{border-color:rgba(255,61,101,.44)}.illumi-dashboard .organizador-kpi.despesa .kpi-icone{border-color:#ff93ad;background:linear-gradient(145deg,#ff345d,#bb0a35);box-shadow:0 0 0 5px rgba(255,45,92,.08),0 0 22px rgba(255,43,89,.34)}.illumi-dashboard .organizador-kpi.despesa strong{color:#c91642}
.illumi-dashboard .organizador-aviso{color:#145c47;background:#e5fff6;border-color:#7fe4c3}.illumi-telegram{color:#16345f;border-color:rgba(24,129,255,.34);background:linear-gradient(115deg,rgba(226,244,255,.96),rgba(245,250,255,.96));box-shadow:0 13px 30px rgba(35,92,167,.1)}.illumi-telegram strong{color:#0a2550}.illumi-telegram p{color:#6e85a4}.illumi-telegram b,.illumi-telegram small{color:#0875ff}.illumi-telegram .telegram-prime-mic{background:linear-gradient(145deg,#0b91ff,#0644d9);box-shadow:0 0 0 8px rgba(8,117,255,.08),0 0 24px rgba(0,136,255,.35)}.illumi-orientacao{color:#19365e;border-color:rgba(69,134,224,.25);background:rgba(255,255,255,.58)}.illumi-orientacao>div>span{color:#0875ff;border-color:#4dbdff}.illumi-orientacao p small{color:#7891b3}.illumi-orientacao i{background:linear-gradient(90deg,rgba(8,117,255,.05),rgba(8,117,255,.48),rgba(8,117,255,.05))}

/* Avatar do mentor nas boas-vindas e nas telas especiais. */
.mentor-apresentacao{position:relative;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:24px;margin:18px 0;padding:22px 28px;overflow:hidden;border:1px solid rgba(66,217,149,.34);border-radius:24px;background:radial-gradient(circle at 10% 10%,rgba(66,217,149,.16),transparent 26%),linear-gradient(135deg,#10251b,#08140f);box-shadow:0 18px 45px rgba(0,0,0,.2)}.mentor-apresentacao:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(rgba(98,238,174,.7) 1px,transparent 1px);background-size:25px 25px;mask-image:linear-gradient(90deg,#000,transparent 72%)}.mentor-avatar,.mentor-copy{position:relative;z-index:1}.mentor-avatar{--mentor-nivel:0;position:relative;width:132px;height:132px;display:grid;place-items:center;border:1px solid rgba(66,217,149,.38);border-radius:50%;background:radial-gradient(circle,rgba(44,161,108,.22),rgba(5,17,11,.9));box-shadow:0 0 30px rgba(32,197,126,.14)}.mentor-personagem{position:relative;width:118px;height:118px;overflow:hidden;border-radius:50%}.mentor-personagem .avatar-frame{position:absolute;inset:-8% -13%;width:126%;height:126%;object-fit:contain}.mentor-personagem .avatar-aberto{opacity:0}.mentor-avatar.boca-aberta .avatar-fechado{opacity:0}.mentor-avatar.boca-aberta .avatar-aberto{opacity:1}.mentor-avatar.falando{transform:translateY(calc(var(--mentor-nivel) * -4px)) scale(calc(1 + var(--mentor-nivel) * .02));box-shadow:0 0 44px rgba(49,223,144,.32)}.mentor-ondas i{position:absolute;inset:-7px;border:1px solid rgba(77,235,158,.3);border-radius:50%;opacity:0}.mentor-avatar.falando .mentor-ondas i{animation:mentor-onda 1.8s ease-out infinite}.mentor-avatar.falando .mentor-ondas i:nth-child(2){animation-delay:.55s}.mentor-avatar.falando .mentor-ondas i:nth-child(3){animation-delay:1.1s}.mentor-copy h2{margin:6px 0 7px;font-size:clamp(22px,3vw,34px)}.mentor-copy p{max-width:740px;color:#94aa9e;font-size:13px;line-height:1.6}.mentor-controles{display:flex;align-items:center;gap:14px;margin-top:15px}.mentor-controles span{color:#718a7d;font-size:10px}.mentor-apresentacao>audio{display:none}@keyframes mentor-onda{0%{transform:scale(.92);opacity:.7}100%{transform:scale(1.28);opacity:0}}
@media(max-width:1080px){.illumi-dashboard{grid-template-columns:1fr}.illumi-rail{padding:18px}.illumi-marca{margin:0 6px 18px}.illumi-dashboard .organizador-hub{display:flex;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.illumi-dashboard .organizador-atalho{min-width:180px;scroll-snap-align:start}.illumi-rail-rodape{display:none}.illumi-stage{padding:20px}.illumi-hero{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.illumi-dashboard{border-radius:20px}.illumi-stage{padding:14px}.illumi-hero{grid-template-columns:1fr;min-height:auto;padding:28px 22px 100px}.illumi-hero h1{letter-spacing:-2px}.illumi-visual{width:100%;height:205px;margin:18px auto 0;transform:scale(.88)}.illumi-novo{left:22px;right:22px;bottom:22px;justify-content:center}.illumi-kpis{grid-template-columns:1fr}.mentor-apresentacao{grid-template-columns:100px 1fr;padding:18px}.mentor-avatar{width:94px;height:94px}.mentor-personagem{width:86px;height:86px}.mentor-controles{align-items:flex-start;flex-direction:column}.mentor-controles .btn{width:100%}}
@media(max-width:520px){.illumi-rail{padding:15px 10px}.illumi-marca{margin-left:12px}.illumi-dashboard .organizador-hub{margin:0;padding-left:5px}.illumi-dashboard .organizador-atalho{min-width:155px}.illumi-hero-copy p{font-size:12px}.illumi-visual{margin-left:-12px;width:calc(100% + 24px)}.mentor-apresentacao{grid-template-columns:1fr;text-align:center}.mentor-avatar{margin:auto}.mentor-copy p{margin-left:auto;margin-right:auto}.mentor-controles{align-items:center}}
@media(prefers-reduced-motion:reduce){.mentor-avatar,.mentor-ondas i,.illumi-novo{animation:none!important;transition:none!important}}

/* ILLUMICASH — PADRÃO VISUAL COMPARTILHADO DO ORGANIZADOR */
.organizador-marca{position:relative;z-index:2;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-width:0;margin:3px 8px 22px;color:#fff;text-decoration:none}
.organizador-marca>span:last-child{display:grid;min-width:0}.organizador-marca strong{overflow:hidden;color:#fff;font-family:Inter,system-ui,sans-serif;font-size:17px;font-weight:900;letter-spacing:2px;line-height:1;white-space:nowrap}.organizador-marca small{margin-top:5px;color:#9fc7ff;font-size:7px;font-weight:800;letter-spacing:1.35px;white-space:nowrap}
.organizador-marca-simbolo{position:relative;width:31px;height:31px}.organizador-marca-simbolo i{position:absolute;left:2px;width:25px;height:6px;border-radius:2px;background:linear-gradient(90deg,#20e7ff,#1672ff);box-shadow:0 0 13px #149cff}.organizador-marca-simbolo i:nth-child(1){top:2px;transform:skewX(-22deg)}.organizador-marca-simbolo i:nth-child(2){top:13px;left:7px;width:18px}.organizador-marca-simbolo i:nth-child(3){top:24px;transform:skewX(22deg)}

/* Visão geral: contenção real da grade que estava ultrapassando o painel. */
.illumi-dashboard{grid-template-columns:220px minmax(0,1fr);width:100%;max-width:100%;box-sizing:border-box}
.illumi-rail{min-width:0;padding:24px 15px}.illumi-dashboard .organizador-marca{margin-bottom:24px}
.illumi-stage{min-width:0;max-width:100%;overflow:hidden;padding:24px}
.illumi-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-width:0;padding:30px}.illumi-hero-copy,.illumi-visual{min-width:0}.illumi-visual{max-width:100%;transform:scale(.92)}
.illumi-kpis{grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%;gap:14px}
.illumi-dashboard .organizador-kpi{grid-template-columns:48px minmax(0,1fr);min-width:0;max-width:100%;min-height:145px;gap:12px;overflow:hidden;padding:18px}
.illumi-dashboard .organizador-kpi>div{min-width:0;overflow:hidden}.illumi-dashboard .organizador-kpi .kpi-icone{width:48px;height:48px;font-size:22px}.illumi-dashboard .organizador-kpi strong{max-width:100%;overflow:hidden;font-size:clamp(19px,2vw,28px);letter-spacing:-.035em;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}.illumi-dashboard .organizador-kpi small{font-size:9px;letter-spacing:.8px;white-space:normal}.illumi-dashboard .organizador-kpi p{white-space:normal}

/* As demais páginas recebem o mesmo shell lateral, claro e azul-neon. */
main.container:has(> .organizador-hub){--cash:#0867ff;--cash-2:#00d9ff;--cash-ink:#071737;--cash-muted:#627895;display:grid;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:0;max-width:1150px;min-height:760px;margin-top:20px;margin-bottom:34px;padding:0;overflow:hidden;border:1px solid rgba(83,150,255,.34);border-radius:28px;color:var(--cash-ink);background:linear-gradient(145deg,#eaf2ff 0%,#fbfdff 54%,#edf4ff 100%);box-shadow:0 28px 90px rgba(0,73,182,.22),inset 0 1px rgba(255,255,255,.95)}
main.container:has(> .organizador-hub)> .organizador-hub{position:relative;grid-column:1;grid-row:1 / span 100;align-self:stretch;display:flex;flex-direction:column;gap:9px;min-width:0;min-height:760px;margin:0;padding:24px 15px;overflow:hidden;background:radial-gradient(circle at 45% 0,rgba(0,135,255,.28),transparent 29%),linear-gradient(165deg,#071d4b,#03112f 62%,#020b20);box-shadow:inset -1px 0 rgba(89,180,255,.33),12px 0 45px rgba(0,61,170,.13)}
main.container:has(> .organizador-hub)> .organizador-hub:after{content:"";position:absolute;inset:10px;z-index:0;border:1px solid rgba(40,157,255,.18);border-radius:20px;pointer-events:none;box-shadow:inset 0 0 30px rgba(0,103,255,.08)}
main.container:has(> .organizador-hub)> .organizador-hub>*{position:relative;z-index:1}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:58px;padding:9px 12px;border:1px solid rgba(68,151,255,.24);border-radius:14px;color:#d9e9ff;text-decoration:none;background:linear-gradient(145deg,rgba(12,47,101,.78),rgba(2,20,57,.78));box-shadow:inset 0 1px rgba(255,255,255,.03)}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho:hover{border-color:#25b7ff;box-shadow:0 0 22px rgba(0,124,255,.26),inset 0 0 18px rgba(0,110,255,.09)}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho.ativa{color:#fff;border-color:#21c8ff;background:linear-gradient(135deg,#087bff,#044dda);box-shadow:0 0 0 1px rgba(255,255,255,.22),0 0 25px rgba(0,152,255,.62),inset 0 0 16px rgba(87,231,255,.36)}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-icone{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(85,182,255,.25);border-radius:12px;color:#80dfff;background:rgba(5,85,188,.28)}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho.ativa .organizador-icone{color:#fff;border-color:rgba(255,255,255,.48);background:rgba(5,27,105,.42)}
main.container:has(> .organizador-hub)> .organizador-hub .organizador-numero{top:50%;right:9px;transform:translateY(-50%);color:#73cdfa;font-size:9px}main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho strong{display:block;overflow:hidden;font-size:11px;white-space:normal}main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho small{display:none}
main.container:has(> .organizador-hub)> :not(.organizador-hub){grid-column:2;min-width:0;max-width:calc(100% - 48px);margin-left:24px;margin-right:24px}
main.container:has(> .organizador-hub)> .organizador-hub + *{margin-top:24px}main.container:has(> .organizador-hub)> :last-child{margin-bottom:24px}
main.container:has(> .organizador-hub)> .modal-overlay{max-width:none;margin:0}

/* Superfícies, textos e formulários no padrão claro IllumiCash. */
main.container:has(> .organizador-hub) .finance-hero,main.container:has(> .organizador-hub) .card,main.container:has(> .organizador-hub) .historico-resumo>span,main.container:has(> .organizador-hub) .alerta-prime-resumo>div,main.container:has(> .organizador-hub) .fixo-resumo-prime>div,main.container:has(> .organizador-hub) .relatorio-kpis>article,main.container:has(> .organizador-hub) .kanban-coluna,main.container:has(> .organizador-hub) .modal-caixa{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container:has(> .organizador-hub) .finance-hero{overflow:hidden;border:1px solid rgba(98,155,240,.34);background:radial-gradient(circle at 90% 30%,rgba(44,160,255,.18),transparent 31%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,246,255,.95))}
main.container:has(> .organizador-hub) h1,main.container:has(> .organizador-hub) h2,main.container:has(> .organizador-hub) h3,main.container:has(> .organizador-hub) .card-titulo strong{color:var(--cash-ink)}
main.container:has(> .organizador-hub) .eyebrow,main.container:has(> .organizador-hub) .link{color:var(--cash)}
main.container:has(> .organizador-hub) p,main.container:has(> .organizador-hub) .sub,main.container:has(> .organizador-hub) .mini,main.container:has(> .organizador-hub) label,main.container:has(> .organizador-hub) small{color:var(--cash-muted)}
main.container:has(> .organizador-hub) input,main.container:has(> .organizador-hub) select,main.container:has(> .organizador-hub) textarea{color:#0a1a39;border-color:rgba(57,124,218,.3);background:rgba(255,255,255,.92);box-shadow:inset 0 1px 3px rgba(33,75,133,.07)}
main.container:has(> .organizador-hub) input::placeholder,main.container:has(> .organizador-hub) textarea::placeholder{color:#8da1bb}
main.container:has(> .organizador-hub) input:focus,main.container:has(> .organizador-hub) select:focus,main.container:has(> .organizador-hub) textarea:focus{border-color:#1688ff;box-shadow:0 0 0 3px rgba(8,103,255,.12)}
main.container:has(> .organizador-hub) .btn-primario{color:#fff;border-color:#48dfff;background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);box-shadow:0 9px 22px rgba(7,76,204,.24)}
main.container:has(> .organizador-hub) .btn-ghost{color:#135db7;border-color:rgba(34,118,230,.26);background:rgba(255,255,255,.68)}
main.container:has(> .organizador-hub) .btn-ghost:hover{color:#064dc1;border-color:#2aa9ff;background:#fff}
main.container:has(> .organizador-hub) .tabela-responsiva{border:1px solid rgba(71,137,224,.22);border-radius:16px;background:#fff}
main.container:has(> .organizador-hub) .tabela{color:#173052;background:#fff}main.container:has(> .organizador-hub) .tabela th{color:#195aab;border-color:#dce9fa;background:#edf5ff}main.container:has(> .organizador-hub) .tabela td{color:#294361;border-color:#e3edf9;background:rgba(255,255,255,.94)}
main.container:has(> .organizador-hub) .tabs,main.container:has(> .organizador-hub) .abas-fixas{border-color:rgba(53,127,226,.22);background:rgba(226,240,255,.74)}main.container:has(> .organizador-hub) .tabs a,main.container:has(> .organizador-hub) .abas-fixas a{color:#346185}main.container:has(> .organizador-hub) .tabs a.ativa,main.container:has(> .organizador-hub) .abas-fixas a.ativa{color:#fff;background:linear-gradient(135deg,#0a82ff,#0750d7)}
main.container:has(> .organizador-hub) .organizador-vazio{color:#315273;border-color:rgba(56,132,230,.24);background:rgba(238,246,255,.76)}

@media(max-width:1080px){
 .illumi-dashboard{grid-template-columns:1fr}.illumi-stage{padding:18px}.illumi-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 main.container:has(> .organizador-hub){grid-template-columns:1fr;overflow:visible;border-radius:22px}
 main.container:has(> .organizador-hub)> .organizador-hub{grid-column:1;grid-row:auto;min-height:auto;display:flex;flex-direction:row;overflow-x:auto;padding:16px;scroll-snap-type:x mandatory}
 main.container:has(> .organizador-hub)> .organizador-hub:after{display:none}main.container:has(> .organizador-hub)> .organizador-hub .organizador-marca{min-width:220px;margin:0 8px 0 0;scroll-snap-align:start}main.container:has(> .organizador-hub)> .organizador-hub .organizador-atalho{min-width:170px;scroll-snap-align:start}
 main.container:has(> .organizador-hub)> :not(.organizador-hub){grid-column:1;max-width:calc(100% - 36px);margin-left:18px;margin-right:18px}
}
@media(max-width:760px){
 .illumi-kpis{grid-template-columns:1fr}.illumi-dashboard .organizador-kpi strong{font-size:27px}.illumi-hero{grid-template-columns:1fr;padding:26px 20px 100px}
 main.container:has(> .organizador-hub){width:calc(100% - 20px);margin-left:10px;margin-right:10px}
 main.container:has(> .organizador-hub)> :not(.organizador-hub){max-width:calc(100% - 24px);margin-left:12px;margin-right:12px}
 main.container:has(> .organizador-hub) .finance-hero{padding:24px 18px}main.container:has(> .organizador-hub) .finance-hero h1{font-size:38px}
}
@media print{main.container:has(> .organizador-hub){display:block;max-width:none;border:0;box-shadow:none;background:#fff}main.container:has(> .organizador-hub)> .organizador-hub{display:none!important}main.container:has(> .organizador-hub)> :not(.organizador-hub){max-width:none;margin-left:0;margin-right:0}}
/* EXODUS — LANDING PÚBLICA */
.exodus-landing{--lp-bg:#020b18;--lp-panel:#07172a;--lp-line:rgba(112,184,255,.18);--lp-blue:#168cff;--lp-cyan:#2ce7ff;--lp-green:#35d59a;--lp-text:#eef7ff;--lp-muted:#9bb2ca;margin:0;color:var(--lp-text);background:radial-gradient(circle at 78% 8%,rgba(14,100,255,.2),transparent 30%),radial-gradient(circle at 15% 43%,rgba(31,213,255,.08),transparent 26%),var(--lp-bg);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
.exodus-landing *{box-sizing:border-box}.exodus-landing a{text-decoration:none}.exodus-landing main{min-height:auto}.lp-topo{position:sticky;z-index:30;top:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;min-height:84px;padding:0 max(28px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--lp-line);background:rgba(2,11,24,.82);backdrop-filter:blur(18px)}
.lp-logo{display:inline-flex;flex-direction:column;line-height:1}.lp-logo strong{font-size:24px;letter-spacing:.22em;color:#2ef0be;text-shadow:0 0 24px rgba(46,240,190,.24)}.lp-logo span{margin-top:6px;font-size:8px;letter-spacing:.52em;color:#d7e8f7}.lp-topo nav{display:flex;justify-content:center;gap:34px}.lp-topo nav a,.lp-rodape>a{font-size:13px;font-weight:700;color:#a9bfd4;transition:.2s}.lp-topo nav a:hover,.lp-rodape>a:hover{color:#fff}
.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border:1px solid transparent;border-radius:14px;font-size:13px;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s}.lp-btn:hover{transform:translateY(-2px)}.lp-btn-secundario{color:#dcecff;border-color:rgba(88,168,255,.3);background:rgba(10,38,71,.68)}.lp-btn-primario{color:#fff;background:linear-gradient(135deg,#0b99ff,#0750dc 68%,#592ae9);box-shadow:0 14px 42px rgba(0,108,255,.28),inset 0 1px rgba(255,255,255,.36)}.lp-btn-texto{color:#b6d3ed;border-color:rgba(130,191,255,.18);background:transparent}.lp-btn-claro{color:#053776;background:#fff;box-shadow:0 15px 42px rgba(0,18,79,.22)}
.lp-hero{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);align-items:center;gap:70px;max-width:1220px;min-height:720px;margin:auto;padding:84px 20px 96px}.lp-hero:before{position:absolute;inset:7% auto auto 44%;width:420px;height:420px;border-radius:50%;background:rgba(8,101,255,.1);filter:blur(90px);content:"";pointer-events:none}.lp-hero-conteudo{position:relative;z-index:2}.lp-eyebrow{display:block;margin-bottom:18px;font-size:11px;font-weight:900;letter-spacing:.2em;color:#3ee7ff}.lp-hero h1,.lp-secao h2,.lp-cta h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:-.045em;line-height:.95}.lp-hero h1{font-size:clamp(58px,6.2vw,86px)}.lp-hero h1 em{font-style:normal;color:#29bdff;text-shadow:0 0 36px rgba(27,150,255,.28)}.lp-hero-conteudo>p{max-width:570px;margin:28px 0 30px;font-size:18px;line-height:1.7;color:var(--lp-muted)}.lp-acoes{display:flex;flex-wrap:wrap;gap:12px}.lp-provas{display:flex;flex-wrap:wrap;gap:24px;margin-top:28px;font-size:12px;font-weight:700;color:#7898b7}.lp-provas span::first-letter{color:#30dfa5}
.lp-demo{position:relative;min-width:0;perspective:1200px}.lp-orbita{position:absolute;border:1px solid rgba(52,167,255,.16);border-radius:50%;animation:lp-girar 18s linear infinite}.lp-orbita-a{inset:-100px -80px}.lp-orbita-b{inset:-45px -30px;animation-duration:12s;animation-direction:reverse}.lp-demo-janela{position:relative;z-index:2;overflow:hidden;width:100%;min-height:440px;border:1px solid rgba(103,192,255,.45);border-radius:26px;background:linear-gradient(145deg,rgba(9,34,69,.96),rgba(3,16,34,.98));box-shadow:0 40px 90px rgba(0,0,0,.45),0 0 0 8px rgba(47,139,255,.035),0 0 70px rgba(0,117,255,.18);transform:rotateY(-5deg) rotateX(2deg);animation:lp-flutuar 7s ease-in-out infinite}.lp-demo-topo{display:flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-bottom:1px solid var(--lp-line);background:rgba(255,255,255,.025)}.lp-demo-topo i{width:7px;height:7px;border-radius:50%;background:#2165a7}.lp-demo-topo b{margin-left:auto;font-size:10px;letter-spacing:.3em;color:#35deb0}.lp-demo-corpo{display:grid;grid-template-columns:142px minmax(0,1fr);min-height:390px}.lp-demo-menu{display:flex;flex-direction:column;gap:10px;padding:24px 12px;border-right:1px solid rgba(68,154,255,.18);background:linear-gradient(#06214b,#041835)}.lp-demo-menu strong{margin:0 8px 12px;font-size:12px;letter-spacing:.12em;color:#fff}.lp-demo-menu span{padding:12px 10px;border-radius:9px;font-size:10px;color:#7fa7cd}.lp-demo-menu span.ativo{color:#fff;border:1px solid #2edfff;background:linear-gradient(135deg,#0d87ff,#0741c7);box-shadow:0 0 22px rgba(0,140,255,.4)}.lp-demo-painel{min-width:0;padding:34px 24px;background:radial-gradient(circle at 75% 25%,rgba(41,146,255,.2),transparent 28%),#071426}.lp-demo-painel>small{font-size:11px;font-weight:900;letter-spacing:.15em;color:#65cfff}.lp-demo-grafico{position:relative;display:flex;align-items:flex-end;gap:12px;height:160px;margin:20px 0 24px;padding:0 20px 12px;border-bottom:1px solid rgba(88,170,255,.2)}.lp-demo-grafico:after{position:absolute;inset:22px 12px 42px;border-top:2px solid #41dfff;border-right:2px solid #41dfff;content:"";clip-path:polygon(0 80%,24% 53%,44% 67%,68% 22%,100% 0,100% 9%,70% 33%,45% 79%,25% 64%,0 94%);background:linear-gradient(180deg,rgba(38,214,255,.3),transparent)}.lp-demo-grafico i{flex:1;height:42%;border-radius:7px 7px 2px 2px;background:linear-gradient(#1ebeff,#0751e6);opacity:.38}.lp-demo-grafico i:nth-child(2){height:65%}.lp-demo-grafico i:nth-child(3){height:48%}.lp-demo-grafico i:nth-child(4){height:80%}.lp-demo-grafico i:nth-child(5){height:93%}.lp-demo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lp-demo-cards span{min-width:0;padding:14px 12px;border:1px solid rgba(76,154,244,.16);border-radius:12px;background:rgba(255,255,255,.04)}.lp-demo-cards b{display:block;margin-bottom:7px;font-size:8px;text-transform:uppercase;color:#7899b9}.lp-demo-cards strong{display:block;overflow:hidden;font-size:14px;white-space:nowrap;text-overflow:ellipsis}.lp-demo-cards span:nth-child(2) strong{color:#38dda5}.lp-demo-cards span:nth-child(3) strong{color:#ff617f}.lp-selo-flutuante{position:absolute;z-index:4;right:-26px;bottom:40px;display:flex;flex-direction:column;min-width:154px;padding:15px 18px;border:1px solid #37eab3;border-radius:16px;background:rgba(4,38,36,.94);box-shadow:0 18px 38px rgba(0,0,0,.35),0 0 25px rgba(55,234,179,.18);animation:lp-flutuar 5s ease-in-out infinite reverse}.lp-selo-flutuante b{font-size:20px;color:#43eeb8}.lp-selo-flutuante span{margin-top:3px;font-size:9px;color:#9cc9bd}
.lp-faixa{display:flex;justify-content:center;gap:10px;padding:30px 24px;border-top:1px solid var(--lp-line);border-bottom:1px solid var(--lp-line);background:linear-gradient(90deg,rgba(7,52,102,.24),rgba(9,89,121,.18),rgba(7,52,102,.24));font-size:16px}.lp-faixa p{margin:0;color:#7f9cb8}.lp-faixa strong{color:#e7f7ff}
.lp-secao{max-width:1180px;margin:auto;padding:120px 20px}.lp-secao-titulo{max-width:660px}.lp-secao h2,.lp-metodo h2{font-size:clamp(42px,5vw,64px)}.lp-secao-titulo>p{font-size:17px;line-height:1.7;color:var(--lp-muted)}.lp-produtos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:55px}.lp-produto{position:relative;overflow:hidden;min-height:430px;padding:38px;border:1px solid var(--lp-line);border-radius:26px;background:linear-gradient(145deg,rgba(9,31,59,.98),rgba(4,16,32,.98));box-shadow:0 24px 60px rgba(0,0,0,.25)}.lp-produto:after{position:absolute;right:-80px;top:-80px;width:250px;height:250px;border-radius:50%;content:"";filter:blur(55px);opacity:.23}.lp-produto-azul:after{background:#087dff}.lp-produto-verde:after{background:#2ce3a3}.lp-produto-icone{position:relative;z-index:2;display:grid;place-items:center;width:58px;height:58px;margin-bottom:34px;border:1px solid currentColor;border-radius:17px;font-size:28px;color:#2ad8ff;background:rgba(13,114,255,.14);box-shadow:0 0 24px rgba(34,157,255,.17)}.lp-produto-verde .lp-produto-icone{color:#44e7ad;background:rgba(51,210,155,.12)}.lp-produto>span{font-size:10px;font-weight:900;letter-spacing:.17em;color:#55cfff}.lp-produto-verde>span{color:#55dfae}.lp-produto h3{margin:8px 0 18px;font-size:42px;letter-spacing:-.04em}.lp-produto p{max-width:470px;font-size:15px;line-height:1.7;color:var(--lp-muted)}.lp-produto ul{display:grid;gap:10px;padding:0;margin:24px 0 32px;list-style:none}.lp-produto li{font-size:13px;color:#c3d6e8}.lp-produto li:before{margin-right:9px;color:#3fe6b0;content:"✓"}.lp-produto>a{font-size:13px;font-weight:900;color:#42d7ff}
.lp-metodo{padding:110px max(24px,calc((100vw - 1180px)/2));border-top:1px solid var(--lp-line);border-bottom:1px solid var(--lp-line);background:linear-gradient(180deg,rgba(7,27,53,.55),rgba(3,13,27,.72))}.lp-metodo .lp-secao-titulo{text-align:center;margin:0 auto}.lp-metodo ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;max-width:1180px;margin:54px auto 0;padding:0;list-style:none}.lp-metodo li{position:relative;display:flex;flex-direction:column;min-height:190px;padding:24px 20px;border:1px solid var(--lp-line);border-radius:20px;background:rgba(8,27,51,.8)}.lp-metodo li:not(:last-child):after{position:absolute;z-index:2;top:44px;right:-21px;width:26px;height:1px;background:#168cff;content:""}.lp-metodo li b{font-size:12px;color:#39dfff}.lp-metodo li strong{margin:35px 0 9px;font-size:20px}.lp-metodo li span{font-size:12px;line-height:1.55;color:#819bb4}
.lp-mentor{display:grid;grid-template-columns:minmax(330px,.75fr) minmax(0,1.25fr);align-items:center;gap:80px}.lp-mentor-foto{position:relative;max-width:440px}.lp-mentor-foto:before{position:absolute;inset:-15px;border:1px solid rgba(53,178,255,.35);border-radius:30px;content:"";box-shadow:0 0 45px rgba(16,120,255,.16)}.lp-mentor-foto img{position:relative;display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:24px;filter:saturate(.95) contrast(1.03)}.lp-mentor-foto span{position:absolute;right:-18px;bottom:30px;padding:12px 16px;border:1px solid #38dfff;border-radius:12px;background:rgba(3,22,43,.92);box-shadow:0 14px 32px rgba(0,0,0,.28);font-size:9px;font-weight:900;letter-spacing:.15em;color:#6de8ff}.lp-mentor-conteudo h2{font-size:clamp(44px,5vw,68px)}.lp-mentor-conteudo>p{margin:28px 0;font-size:17px;line-height:1.75;color:var(--lp-muted)}.lp-mentor blockquote{margin:0 0 30px;padding:18px 24px;border-left:3px solid #26dfff;background:rgba(10,39,68,.52);font-family:Georgia,serif;font-size:20px;color:#dfefff}
.lp-cta{display:flex;flex-direction:column;align-items:center;padding:105px 24px;text-align:center;background:radial-gradient(circle at 50% 110%,rgba(0,221,183,.2),transparent 37%),linear-gradient(135deg,#064fc9,#0a8ee9 60%,#0aa88f)}.lp-cta h2{max-width:860px;font-size:clamp(48px,6vw,78px)}.lp-cta p{max-width:680px;margin:24px 0 30px;font-size:17px;line-height:1.6;color:#d9edff}.lp-cta small{margin-top:18px;color:rgba(255,255,255,.7)}.lp-rodape{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:30px;max-width:1180px;min-height:120px;margin:auto;padding:25px 20px}.lp-rodape p{text-align:center;font-size:11px;color:#718aa3}
@keyframes lp-flutuar{0%,100%{transform:translateY(0) rotateY(-5deg) rotateX(2deg)}50%{transform:translateY(-11px) rotateY(-4deg) rotateX(1deg)}}@keyframes lp-girar{to{transform:rotate(360deg)}}
@media(max-width:1000px){.lp-topo{padding:0 20px}.lp-topo nav{display:none}.lp-hero{grid-template-columns:1fr;min-height:auto;padding-top:80px}.lp-hero-conteudo{max-width:720px}.lp-demo{max-width:720px;margin:auto;width:100%}.lp-produtos{grid-template-columns:1fr}.lp-metodo ol{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-metodo li:not(:last-child):after{display:none}.lp-mentor{gap:48px}.lp-rodape{grid-template-columns:1fr;text-align:center}.lp-rodape .lp-logo{align-items:center}}
@media(max-width:700px){.lp-topo{min-height:70px}.lp-logo strong{font-size:19px}.lp-topo>.lp-btn{min-height:40px;padding:0 14px;font-size:11px}.lp-hero{gap:55px;padding:62px 16px 70px}.lp-hero h1{font-size:50px}.lp-hero-conteudo>p{font-size:16px}.lp-provas{gap:12px}.lp-demo-corpo{grid-template-columns:1fr}.lp-demo-menu{display:none}.lp-demo-janela{min-height:370px;transform:none;animation:none}.lp-demo-painel{padding:28px 16px}.lp-demo-cards{gap:6px}.lp-demo-cards span{padding:12px 8px}.lp-demo-cards strong{font-size:11px}.lp-selo-flutuante{right:7px;bottom:-27px}.lp-faixa{display:block;text-align:center;line-height:1.6}.lp-secao{padding:80px 16px}.lp-secao h2,.lp-metodo h2{font-size:40px}.lp-produto{padding:28px}.lp-metodo{padding:80px 16px}.lp-metodo ol{grid-template-columns:1fr}.lp-metodo li{min-height:130px}.lp-metodo li strong{margin:22px 0 7px}.lp-mentor{grid-template-columns:1fr}.lp-mentor-foto{max-width:360px;margin:auto}.lp-mentor-conteudo h2{font-size:42px}.lp-cta{padding:82px 18px}.lp-cta h2{font-size:46px}.lp-rodape{padding:35px 18px}}
@media(prefers-reduced-motion:reduce){.lp-orbita,.lp-demo-janela,.lp-selo-flutuante{animation:none!important}}
html:has(body.exodus-landing){overflow-x:hidden}

/* Avatar 3D do mentor: a imagem tem cenário próprio, então preenche o círculo
   inteiro (a ilustração anterior era PNG recortado e usava object-fit: contain). */
.avatar-mentor-3d .avatar-frame,
.avatar-mentor-3d .mentor-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.avatar-mentor-3d { overflow: hidden; border-radius: 50%; }

/* ============================================================
   BOCA SINCRONIZADA COM A NARRAÇÃO (pedido do dono, 27/07)
   O JavaScript já mede o volume do áudio em tempo real e liga a
   classe .boca-aberta. Faltava o quadro de boca aberta existir e
   estas regras trocarem um pelo outro.
   ============================================================ */
.avatar-mentor-3d .avatar-aberto { opacity: 0; transition: opacity .05s linear; }
.avatar-mentor-3d .avatar-fechado { opacity: 1; transition: opacity .05s linear; }

/* ANIMAÇÃO DE BOCA DESLIGADA (decisão do dono, 27/07).
   Trocar dois quadros de uma FOTO não convence: por melhor que seja a
   deformação, lê como retoque no rosto, não como fala. O rosto fica parado e
   sério — as ondas sonoras ao lado é que indicam que ele está falando.
   Boca sincronizada de verdade exige vídeo (HeyGen), não montagem 2D.
   O quadro de boca aberta e o gerador continuam no projeto, prontos para uso
   se um dia mudarmos de ideia. */
.mentor-avatar .avatar-aberto { opacity: 0 !important; }
.mentor-avatar .avatar-fechado { opacity: 1 !important; }
/* Nada de escalar o avatar com o volume: já existe um movimento sutil no
   .mentor-avatar, e somar outro aqui fazia a foto crescer e encolher — lia como
   "trocar uma foto menor por uma maior" em vez de boca falando. O que deve
   mexer é a boca; o rosto fica firme. */
.mentor-avatar.falando .avatar-mentor-3d { transform: none; }
.mentor-avatar.falando { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .avatar-mentor-3d .avatar-frame { transition: none !important; }
  .mentor-avatar.falando .avatar-mentor-3d { transform: none !important; }
}
.npc-retrato img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transform: none; }

/* Overlay de conquista no padrão claro (único elemento fora do container tema-claro). */
body:has(main.container.tema-claro) .acao-conquista{background:rgba(234,242,255,.92);backdrop-filter:blur(6px)}
body:has(main.container.tema-claro) .acao-conquista strong,
body:has(main.container.tema-claro) .acao-conquista p{color:#071737}
body:has(main.container.tema-claro) .acao-conquista small{color:#627895}

/* =========================================================
   CORREÇÕES DE CONTRASTE — tema claro do Organizador (27/07/2026)
   Cards que ficaram com fundo escuro herdando tinta escura.
   ========================================================= */
main.container:has(> .organizador-hub) .finance-pulse,
main.container:has(> .organizador-hub) .telegram-passos article,
main.container:has(> .organizador-hub) .finance-acao,
main.container:has(> .organizador-hub) .alerta-card,
main.container:has(> .organizador-hub) .fixa-card-prime {
  color: var(--cash-ink);
  border: 1px solid rgba(77,141,229,.28);
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
  box-shadow: 0 15px 36px rgba(42,93,163,.12), inset 0 1px #fff;
}
main.container:has(> .organizador-hub) .finance-pulse strong { color: var(--cash-ink); }
main.container:has(> .organizador-hub) .finance-pulse.previsto {
  border-style: dashed; border-color: rgba(191,146,42,.55);
  background: linear-gradient(145deg,#fff9e6,#ffffff 70%);
}
main.container:has(> .organizador-hub) .finance-pulse.previsto small { color: #8a6d1d; }
/* status e acentos legíveis sobre branco */
main.container:has(> .organizador-hub) .verde { color: #0e9f6e; }
main.container:has(> .organizador-hub) .texto-vermelho { color: #d6403a; }
main.container:has(> .organizador-hub) .destaque { color: #b07d10; }
main.container:has(> .organizador-hub) .fixo-resumo-prime .receita strong { color: #0e9f6e; }
main.container:has(> .organizador-hub) .fixo-resumo-prime .despesa strong { color: #d6403a; }
main.container:has(> .organizador-hub) .fixo-resumo-prime span,
main.container:has(> .organizador-hub) .fixo-resumo-prime small,
main.container:has(> .organizador-hub) .historico-resumo small,
main.container:has(> .organizador-hub) .alerta-prime-resumo small { color: var(--cash-muted); }
main.container:has(> .organizador-hub) .fixa-card-prime.entrada { border-color: rgba(14,159,110,.42); }
main.container:has(> .organizador-hub) .fixa-card-prime.saida { border-color: rgba(214,64,58,.35); }
main.container:has(> .organizador-hub) .fixa-card-prime .fixa-tipo { color: var(--cash-muted); }
main.container:has(> .organizador-hub) .fixa-card-prime.entrada .fixa-valor { color: #0e9f6e; }
main.container:has(> .organizador-hub) .fixa-card-prime.saida .fixa-valor { color: #d6403a; }
main.container:has(> .organizador-hub) .fixa-detalhes span { color: var(--cash-muted); }
main.container:has(> .organizador-hub) .alerta-card > p { color: var(--cash-muted); }
main.container:has(> .organizador-hub) .alerta-valor { color: var(--cash-ink); }
main.container:has(> .organizador-hub) .alerta-dia { color: #0e9f6e; background: rgba(14,159,110,.1); }
main.container:has(> .organizador-hub) .telegram-passos p { color: var(--cash-muted); }
/* menu lateral: número não pode colidir com o texto do atalho */
main.container:has(> .organizador-hub) > .organizador-hub .organizador-atalho { padding-right: 30px; }
/* tabela com rolagem horizontal: coluna de ações sempre visível */
main.container:has(> .organizador-hub) .tabela-responsiva .tabela th:last-child,
main.container:has(> .organizador-hub) .tabela-responsiva .tabela td:last-child {
  position: sticky; right: 0; background: #fff;
  box-shadow: -10px 0 14px -10px rgba(33,75,133,.28);
}
/* lista de contas e carteiras: itens com respiro e selo alinhado */
main.container:has(> .organizador-hub) .cadastro-item i { width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; }
main.container:has(> .organizador-hub) .cadastro-item span { color: var(--cash-muted); }
main.container:has(> .organizador-hub) .cadastro-item b { margin-left: auto; padding: 3px 9px; border: 1px solid rgba(8,103,255,.32); border-radius: 999px; color: var(--cash); font-size: 10px; font-weight: 800; }

/* Painel (tema escuro): lançamentos recentes sem corte e previstos etiquetados */
.tabela-recentes td:last-child { white-space: nowrap; }
.tag-prevista { border-color: rgba(247,216,119,.5); color: var(--ouro-claro); }

/* Mapa da trilha: menos vazio abaixo da última missão */
.cidade-cenario { min-height: 470px; }

/* =========================================================
   TEMA CLARO ILLUMICASH EM TODAS AS TELAS ADMINISTRATIVAS (27/07/2026)
   Espelha o padrão do Organizador (bloco "Superfícies, textos e formulários")
   para as páginas sem a barra lateral: painel, lembretes, jornada, guia,
   senha, organização, consultor e admin. A Trilha do Rating segue escura.
   ========================================================= */
main.container.tema-claro{--cash:#0867ff;--cash-2:#00d9ff;--cash-ink:#071737;--cash-muted:#627895;color:var(--cash-ink);max-width:1150px;margin-top:20px;margin-bottom:34px;padding:26px 28px;border:1px solid rgba(83,150,255,.34);border-radius:28px;background:linear-gradient(145deg,#eaf2ff 0%,#fbfdff 54%,#edf4ff 100%);box-shadow:0 28px 90px rgba(0,73,182,.22),inset 0 1px rgba(255,255,255,.95)}
main.container.tema-claro h1,main.container.tema-claro h2,main.container.tema-claro h3,main.container.tema-claro .card-titulo strong{color:var(--cash-ink)}
main.container.tema-claro .eyebrow,main.container.tema-claro .link{color:var(--cash)}
main.container.tema-claro p,main.container.tema-claro .sub,main.container.tema-claro .mini,main.container.tema-claro label,main.container.tema-claro small{color:var(--cash-muted)}
main.container.tema-claro .card,main.container.tema-claro .modal-caixa{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro input,main.container.tema-claro select,main.container.tema-claro textarea{color:#0a1a39;border-color:rgba(57,124,218,.3);background:rgba(255,255,255,.92);box-shadow:inset 0 1px 3px rgba(33,75,133,.07)}
main.container.tema-claro input::placeholder,main.container.tema-claro textarea::placeholder{color:#8da1bb}
main.container.tema-claro input:focus,main.container.tema-claro select:focus,main.container.tema-claro textarea:focus{border-color:#1688ff;box-shadow:0 0 0 3px rgba(8,103,255,.12)}
main.container.tema-claro .btn-primario{color:#fff;border-color:#48dfff;background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);box-shadow:0 9px 22px rgba(7,76,204,.24)}
main.container.tema-claro .btn-ghost{color:#135db7;border-color:rgba(34,118,230,.26);background:rgba(255,255,255,.68)}
main.container.tema-claro .btn-ghost:hover{color:#064dc1;border-color:#2aa9ff;background:#fff}
main.container.tema-claro .tabela{color:#173052;background:#fff}main.container.tema-claro .tabela th{color:#195aab;border-color:#dce9fa;background:#edf5ff}main.container.tema-claro .tabela td{color:#294361;border-color:#e3edf9;background:rgba(255,255,255,.94)}
main.container.tema-claro .verde{color:#0e9f6e}main.container.tema-claro .texto-vermelho{color:#d6403a}main.container.tema-claro .destaque{color:#b07d10}
main.container.tema-claro .tag{color:#28497c;border-color:rgba(57,124,218,.32);background:rgba(233,242,255,.85)}
main.container.tema-claro .tag-verde{color:#0b6c4c;border-color:rgba(14,159,110,.4);background:rgba(14,159,110,.12)}
main.container.tema-claro .st-amarelo-bg{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.28)}
main.container.tema-claro .st-vermelho-bg{color:#9c221d;border-color:rgba(214,64,58,.4);background:rgba(214,64,58,.12)}
main.container.tema-claro .barra{background:#dbe7fb}
/* painel do cliente */
main.container.tema-claro .modulo-card{color:var(--cash-ink);border-color:rgba(77,141,229,.3);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12)}
main.container.tema-claro .modulo-card:hover{border-color:#2aa9ff}
main.container.tema-claro .modulo-texto strong{color:var(--cash-ink)}
main.container.tema-claro .modulo-seta{color:var(--cash)}
main.container.tema-claro .indicador-rotulo,main.container.tema-claro .indicador-extra,main.container.tema-claro .indicador-valor small{color:var(--cash-muted)}
main.container.tema-claro .indicador-valor{color:var(--cash-ink)}
main.container.tema-claro .indicador-valor.verde{color:#0e9f6e}
main.container.tema-claro .farol-item{color:var(--cash-ink);border:1px solid rgba(77,141,229,.26);background:rgba(255,255,255,.9)}
main.container.tema-claro .farol-item:hover{border-color:#2aa9ff}
main.container.tema-claro .farol-titulo{color:var(--cash-ink)}
main.container.tema-claro .farol-num{color:var(--cash-muted)}
main.container.tema-claro .farol-item.fase-da-vez{border-color:rgba(176,125,16,.55);box-shadow:0 0 0 3px rgba(247,216,119,.18)}
main.container.tema-claro .farol-item.fase-bloqueada{opacity:.62}
main.container.tema-claro .icone-fase.ic-bloq{color:#7e93b1;background:rgba(98,120,149,.14)}
main.container.tema-claro .cal-cab{color:var(--cash-muted)}
main.container.tema-claro .cal-dia{color:#33507a;border:1px solid rgba(77,141,229,.22);background:rgba(255,255,255,.75)}
main.container.tema-claro .cal-dia.vazio{border:0;background:transparent}
main.container.tema-claro .cal-dia.feito{color:#fff;border-color:#0e9f6e;background:#12b981}
main.container.tema-claro .cal-dia.hoje{border-color:#1688ff;box-shadow:0 0 0 2px rgba(8,103,255,.22)}
main.container.tema-claro .cal-dia.futuro{opacity:.5}
main.container.tema-claro .lista-alertas li,main.container.tema-claro .lista-tarefas li{color:var(--cash-ink);border-color:rgba(77,141,229,.2)}
main.container.tema-claro .lista-tarefas li.feita{color:var(--cash-muted)}
main.container.tema-claro .card-atencao{border-color:rgba(176,125,16,.5);background:linear-gradient(145deg,#fff8e3,#ffffff 72%)}
main.container.tema-claro .card-sucesso{border-color:rgba(14,159,110,.45);background:linear-gradient(145deg,#e9fbf3,#ffffff 72%)}
/* lembretes / jornada / guia */
main.container.tema-claro .lembrete-msg{color:var(--cash-ink)}
main.container.tema-claro .lembrete.lido{opacity:.62}
main.container.tema-claro .lista-jornada li{border-color:rgba(77,141,229,.2)}
main.container.tema-claro .lista-jornada li>span{color:var(--cash-ink)}
main.container.tema-claro .lista-jornada li>span.feita{color:var(--cash-muted)}
main.container.tema-claro .check-btn{color:#135db7;border-color:rgba(34,118,230,.4);background:#fff}
main.container.tema-claro .check-btn.ok{color:#fff;border-color:#0e9f6e;background:#12b981}
main.container.tema-claro .fase-card.fase-atual{border-color:rgba(14,159,110,.5)}
main.container.tema-claro .docs-lista .btn-bloqueado{color:#8ba0bd;border-color:rgba(98,120,149,.3);background:rgba(233,242,255,.6)}
main.container.tema-claro li{color:#2a4266}
main.container.tema-claro .lembrete-corpo .mini{color:var(--cash-muted)}

/* =========================================================
   TEMA CLARO ILLUMICASH — TRILHA DO RATING E MISSÕES (27/07/2026)
   Converte farois (Trilha), operacao-1 (A Origem), operacao-2
   (Organização Bancária) e conclusão (Portas Abertas) para o padrão
   claro. Bloco APENAS de overrides escopados em main.container.tema-claro:
   nenhuma regra anterior foi alterada. Tinta sempre --cash-ink/--cash-muted
   ou tom escuro explícito — nunca --texto/--texto-2 (tema escuro).
   Semântica de estado preservada: concluído verde #0e9f6e,
   ativo dourado #b07d10, bloqueado cinza-azulado esmaecido.
   ========================================================= */

/* --- 1. Shell das missões, cabeçalhos e selos --- */
main.container.tema-claro .op1-shell{color:var(--cash-ink)}
main.container.tema-claro .op1-topo h1,main.container.tema-claro .origem-topo h1{color:var(--cash-ink)}
main.container.tema-claro .op1-topo p{color:var(--cash-muted)}
main.container.tema-claro .op1-voltar{color:#1a5fbd}
main.container.tema-claro .op1-voltar:hover{color:#0443dc}
main.container.tema-claro .op1-jogador{color:var(--cash-ink);border-color:rgba(77,141,229,.3);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .op1-jogador small,main.container.tema-claro .op1-jogador span{color:var(--cash-muted)}
main.container.tema-claro .op1-jogador strong{color:var(--cash-ink)}
main.container.tema-claro .op1-selo{color:#1a5fbd;border-color:rgba(34,118,230,.35);background:rgba(233,242,255,.82)}
main.container.tema-claro .cabecalho-pagina h1,main.container.tema-claro .titulo-trilha{color:var(--cash-ink)}

/* --- 2. Mentor (moldura clara; foto e PNGs intocados) --- */
main.container.tema-claro .mentor-apresentacao{color:var(--cash-ink);border-color:rgba(77,141,229,.3);background:radial-gradient(circle at 10% 10%,rgba(8,103,255,.08),transparent 26%),linear-gradient(135deg,rgba(255,255,255,.98),rgba(237,245,255,.94));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .mentor-apresentacao:after{opacity:.3;background-image:radial-gradient(rgba(77,141,229,.5) 1px,transparent 1px)}
main.container.tema-claro .mentor-avatar{border-color:rgba(77,141,229,.4);background:radial-gradient(circle,rgba(8,103,255,.1),rgba(255,255,255,.95));box-shadow:0 10px 26px rgba(42,93,163,.14)}
main.container.tema-claro .mentor-avatar.falando{box-shadow:0 0 40px rgba(8,103,255,.24)}
main.container.tema-claro .mentor-ondas i{border-color:rgba(8,103,255,.28)}
main.container.tema-claro .mentor-copy p{color:var(--cash-muted)}
main.container.tema-claro .mentor-controles span{color:var(--cash-muted)}

/* --- 3. Mundo RPG, cartão do jogador e editor de personagem --- */
main.container.tema-claro .rpg-mundo{color:var(--cash-ink);border-color:rgba(83,150,255,.34);background:radial-gradient(circle at 14% 12%,rgba(8,103,255,.1) 0 1px,transparent 2px),radial-gradient(circle at 72% 18%,rgba(0,166,217,.12) 0 1px,transparent 2px),linear-gradient(155deg,#eaf2ff,#fbfdff 62%,#edf4ff);box-shadow:0 24px 70px rgba(0,73,182,.16),inset 0 1px rgba(255,255,255,.95)}
main.container.tema-claro .rpg-mundo::before{background:radial-gradient(circle,rgba(8,103,255,.12),transparent 68%)}
main.container.tema-claro .rpg-titulo h1{color:var(--cash-ink)}
main.container.tema-claro .rpg-titulo p{color:var(--cash-muted)}
main.container.tema-claro .jogador-card{border-color:rgba(77,141,229,.3);background:rgba(255,255,255,.9);box-shadow:inset 0 1px #fff,0 15px 34px rgba(42,93,163,.12)}
main.container.tema-claro .jogador-avatar{border-color:rgba(77,141,229,.5);background:radial-gradient(circle at 50% 24%,#eef5ff,#cfe0f7 72%);box-shadow:0 8px 20px rgba(42,93,163,.14)}
main.container.tema-claro .jogador-dados > strong{color:var(--cash-ink)}
main.container.tema-claro .jogador-dados > small{color:var(--cash-muted)}
main.container.tema-claro .jogador-xp{background:#dbe7fb}
main.container.tema-claro .jogador-xp span{background:linear-gradient(90deg,#0867ff,#00c2ff);box-shadow:none}
main.container.tema-claro .personagem-editor > summary{color:#1a5fbd;border-color:rgba(34,118,230,.3);background:rgba(255,255,255,.7)}
main.container.tema-claro .personagem-editor form{border-color:rgba(77,141,229,.26);background:rgba(255,255,255,.88)}
main.container.tema-claro .avatar-opcoes legend{color:var(--cash-muted)}
main.container.tema-claro .avatar-opcoes label{border-color:rgba(77,141,229,.24);background:rgba(255,255,255,.6)}
main.container.tema-claro .avatar-opcoes label:has(input:checked){border-color:#1688ff;background:rgba(8,103,255,.1)}
main.container.tema-claro .avatar-opcoes b{color:var(--cash-ink)}
main.container.tema-claro .avatar-mini{background:#e6f0ff}

/* --- 4. Mapa da cidade em versão DIURNA --- */
main.container.tema-claro .cidade-cenario{border-top-color:rgba(77,141,229,.22);background:linear-gradient(180deg,#eaf2ff,#f7fbff 55%,#ffffff);scrollbar-color:rgba(8,103,255,.35) transparent}
main.container.tema-claro .cidade-lua{background:radial-gradient(circle at 38% 32%,#fffbe8,#ffe9a3 58%,#f3c85c);box-shadow:0 0 70px rgba(243,200,92,.45);opacity:.95}
main.container.tema-claro .cidade-skyline{opacity:.55}
main.container.tema-claro .cidade-skyline::before,main.container.tema-claro .cidade-skyline::after,main.container.tema-claro .cidade-skyline i{background:#c2d5ef}
main.container.tema-claro .npc-chamada{border-color:rgba(77,141,229,.32);background:rgba(255,255,255,.94);box-shadow:0 14px 34px rgba(42,93,163,.14)}
main.container.tema-claro .npc-retrato{border-color:rgba(77,141,229,.4);background:radial-gradient(circle at 50% 32%,#eef5ff,#cfe0f7 72%)}
main.container.tema-claro .npc-chamada .mini{color:var(--cash-muted)}
main.container.tema-claro .npc-chamada strong{color:var(--cash-ink)}
main.container.tema-claro .npc-chamada p{color:var(--cash-muted)}
main.container.tema-claro .npc-chamada a{color:#0f4fae}
main.container.tema-claro .cidade-rota::before{border-color:rgba(77,141,229,.3);border-left-color:transparent;border-right-color:transparent}
main.container.tema-claro .local-edificio{color:var(--cash-ink);border-color:rgba(77,141,229,.34);background:linear-gradient(145deg,#ffffff,#e6f0ff);box-shadow:0 10px 22px rgba(42,93,163,.14)}
main.container.tema-claro .local-edificio::before{background:#cfe0f7}
main.container.tema-claro .local-edificio::after{background:repeating-linear-gradient(90deg,rgba(8,103,255,.16) 0 8px,transparent 8px 15px)}
main.container.tema-claro .local-edificio > b{color:#405980;background:#eaf2ff}
main.container.tema-claro .local-texto small{color:#7089ab}
main.container.tema-claro .local-texto strong{color:var(--cash-ink)}
main.container.tema-claro .local-texto em{color:var(--cash-muted)}
main.container.tema-claro .cidade-local.verde .local-edificio{border-color:rgba(14,159,110,.45);background:linear-gradient(145deg,#ffffff,#dff8ee)}
main.container.tema-claro .cidade-local.verde .local-edificio > b{color:#fff;background:#0e9f6e}
main.container.tema-claro .cidade-local.verde .local-texto em{color:#0e9f6e}
main.container.tema-claro .cidade-local.amarelo .local-edificio{border-color:#b07d10;background:linear-gradient(145deg,#fffdf5,#fff2d3);box-shadow:0 0 0 7px rgba(176,125,16,.09),0 0 30px rgba(176,125,16,.18)}
main.container.tema-claro .cidade-local.amarelo .local-edificio > b{color:#fff;background:#b07d10}
main.container.tema-claro .cidade-local.amarelo .local-texto strong{color:#8a6208}
main.container.tema-claro .cidade-local.amarelo .local-texto em{color:#b07d10}
main.container.tema-claro .cidade-local.amarelo a:hover .local-edificio,main.container.tema-claro .cidade-local.amarelo a:focus-visible .local-edificio{box-shadow:0 16px 34px rgba(176,125,16,.2)}
main.container.tema-claro .cidade-local.vermelho{opacity:.7;filter:grayscale(.4)}
main.container.tema-claro .cidade-local.vermelho .local-edificio{border-color:rgba(98,120,149,.32);background:linear-gradient(145deg,#f6f9fe,#e7edf6)}
main.container.tema-claro .cidade-local.vermelho .local-edificio > b{color:#66809f;background:#e2e9f4}
main.container.tema-claro .cidade-local.vermelho .local-texto strong,main.container.tema-claro .cidade-local.vermelho .local-texto em{color:#7089ab}
main.container.tema-claro .rpg-aviso{color:#7089ab;border-top-color:rgba(77,141,229,.2);background:rgba(255,255,255,.6)}
main.container.tema-claro .rpg-aviso span{color:#1a5fbd}

/* --- 5. Cabeçalho da trilha, resumo e escada de rating --- */
main.container.tema-claro .trilha-resumo > div{border-color:rgba(77,141,229,.28);background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(42,93,163,.1),inset 0 1px #fff}
main.container.tema-claro .trilha-resumo > div::after{background:linear-gradient(115deg,transparent 20%,rgba(8,103,255,.05) 48%,transparent 72%)}
main.container.tema-claro .trilha-resumo > div:hover{border-color:#2aa9ff;box-shadow:0 16px 34px rgba(42,93,163,.16)}
main.container.tema-claro .trilha-resumo strong{color:var(--cash-ink)}
main.container.tema-claro .degrau{color:#4a6486;border-color:rgba(77,141,229,.28);background:#fff}
main.container.tema-claro .escada-campanha .degrau.atual{outline-color:#0867ff}
main.container.tema-claro .degrau:last-child.alcancado{box-shadow:0 0 14px rgba(176,125,16,.4)}

/* --- 6. Convites das missões 1, 2 e 7 --- */
main.container.tema-claro .op1-convite{border-color:rgba(77,141,229,.3);background:radial-gradient(circle at 90% 20%,rgba(8,103,255,.09),transparent 32%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .op1-convite p{color:var(--cash-muted)}
main.container.tema-claro .op1-convite-ciclo{color:var(--cash-muted)}
main.container.tema-claro .op1-convite-ciclo span{border-color:rgba(77,141,229,.28);background:rgba(255,255,255,.7)}
main.container.tema-claro .op1-convite-ciclo i{color:#0867ff}
main.container.tema-claro .op1-convite aside{border-color:rgba(176,125,16,.35);background:linear-gradient(145deg,#fffdf5,#fff8e3)}
main.container.tema-claro .op1-convite aside strong{color:#b07d10}
main.container.tema-claro .op1-convite aside small,main.container.tema-claro .op1-convite aside b{color:var(--cash-muted)}
main.container.tema-claro .op2-convite{border-color:rgba(34,118,230,.36);background:radial-gradient(circle at 88% 12%,rgba(0,166,217,.12),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.98),rgba(234,244,255,.95))}

/* --- 7. Ciclo da missão --- */
main.container.tema-claro .ciclo-rating{border-color:rgba(77,141,229,.28);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .ciclo-rating::before{background:conic-gradient(from 110deg,transparent 0 30%,rgba(8,103,255,.06) 42%,transparent 54% 100%)}
main.container.tema-claro .ciclo-rating::after{background:radial-gradient(circle,rgba(176,125,16,.08),transparent 68%)}
main.container.tema-claro .ciclo-cabecalho strong{color:var(--cash-ink)}
main.container.tema-claro .ciclo-status{color:#0f4fae;border-color:rgba(34,118,230,.32);background:rgba(233,242,255,.9)}
main.container.tema-claro .ciclo-etapas li{--etapa-cor:rgba(98,120,149,.4);border-color:rgba(77,141,229,.22);background:rgba(255,255,255,.72);opacity:.72}
main.container.tema-claro .ciclo-etapas li > span{color:#4a6486;border-color:var(--etapa-cor);background:#eef4ff}
main.container.tema-claro .ciclo-etapas li strong{color:var(--cash-ink)}
main.container.tema-claro .ciclo-etapas li small{color:var(--cash-muted)}
main.container.tema-claro .ciclo-etapas li.concluida{--etapa-cor:rgba(14,159,110,.6);border-color:rgba(14,159,110,.3);background:rgba(14,159,110,.08);opacity:1}
main.container.tema-claro .ciclo-etapas li.concluida > span{background:rgba(14,159,110,.16);box-shadow:none}
main.container.tema-claro .ciclo-etapas li.concluida > span::after{color:#0e9f6e}
main.container.tema-claro .ciclo-etapas li.ativa{--etapa-cor:rgba(176,125,16,.7);border-color:rgba(176,125,16,.45);background:linear-gradient(145deg,#fff8e3,#ffffff 72%);box-shadow:0 12px 26px rgba(42,93,163,.12)}
main.container.tema-claro .ciclo-etapas li.ativa > span{color:#7c5a08;background:rgba(247,216,119,.35)}
main.container.tema-claro .ciclo-etapas li.ativa strong{color:#b07d10}
main.container.tema-claro .ciclo-etapas li.ativa::before{background:linear-gradient(112deg,transparent 15%,rgba(8,103,255,.06) 45%,transparent 70%)}
main.container.tema-claro .ciclo-rating[data-etapa-atual='recompensa']{border-color:rgba(176,125,16,.45)}
main.container.tema-claro .ciclo-rating[data-etapa-atual='recompensa'] .ciclo-status{color:#fff;border-color:#b07d10;background:#b07d10}
main.container.tema-claro .ciclo-rating[data-etapa-atual='avancar'] .ciclo-status{color:#fff;border-color:#0e9f6e;background:#12b981}

/* --- 8. Missão ativa: hero, guia e métricas --- */
main.container.tema-claro .missao-hero{color:var(--cash-ink);border-color:rgba(83,150,255,.34);background:radial-gradient(circle at 86% 18%,rgba(8,103,255,.1),transparent 30%),linear-gradient(135deg,#f7fbff 0%,#eaf2ff 54%,#f3f8ff 100%);box-shadow:0 20px 55px rgba(0,73,182,.14),inset 0 1px rgba(255,255,255,.95)}
main.container.tema-claro .missao-hero::before{border-color:rgba(8,103,255,.14);box-shadow:0 0 0 36px rgba(8,103,255,.02),0 0 0 72px rgba(8,103,255,.015)}
main.container.tema-claro .missao-hero::after{background:radial-gradient(380px circle at var(--spot-x) var(--spot-y),rgba(8,103,255,.1),transparent 66%)}
main.container.tema-claro .missao-kicker{color:#1a5fbd;border-color:rgba(34,118,230,.35);background:rgba(233,242,255,.75)}
main.container.tema-claro .missao-objetivo{color:var(--cash-muted)}
main.container.tema-claro .missao-hero-painel{border-color:rgba(77,141,229,.26);background:rgba(255,255,255,.72)}
main.container.tema-claro .missao-hero:hover .missao-hero-painel{border-color:rgba(8,103,255,.3)}
main.container.tema-claro .missao-modelo{border-color:rgba(77,141,229,.24);background:rgba(255,255,255,.82);box-shadow:inset 0 1px #fff}
main.container.tema-claro .missao-modelo:hover{border-color:#2aa9ff;background:#fff}
main.container.tema-claro .missao-modelo span{color:var(--cash-muted)}
main.container.tema-claro .missao-modelo strong{color:#0f4fae}
main.container.tema-claro .guia-avatar{border-color:rgba(77,141,229,.4);background:radial-gradient(circle at 50% 34%,rgba(8,103,255,.1),rgba(255,255,255,.9) 66%);box-shadow:0 16px 38px rgba(42,93,163,.16),inset 0 1px #fff}
main.container.tema-claro .guia-avatar::after{color:var(--cash-muted)}
main.container.tema-claro .guia-avatar.falando{border-color:rgba(8,103,255,.55);box-shadow:0 0 40px rgba(8,103,255,.2),inset 0 1px #fff}
main.container.tema-claro .guia-audio-bars b{background:#0867ff}
main.container.tema-claro .guia-voz-identidade{color:var(--cash-muted);margin-top:8px}
main.container.tema-claro .guia-voz-identidade > span{background:#0867ff;box-shadow:0 0 0 4px rgba(8,103,255,.1),0 0 12px rgba(8,103,255,.5)}
main.container.tema-claro .guia-voz-identidade strong{color:var(--cash-ink)}
main.container.tema-claro .guia-voz-identidade small{color:var(--cash-muted)}
main.container.tema-claro .missao-metrica{color:var(--cash-muted)}
main.container.tema-claro .missao-metrica strong{color:var(--cash-ink)}
main.container.tema-claro .missao-metrica.rodape-metrica strong{color:#0f4fae}
main.container.tema-claro .barra-missao{background:#dbe7fb}
main.container.tema-claro .barra-missao .barra-fill{box-shadow:none}
main.container.tema-claro .barra-missao::after{background:linear-gradient(90deg,transparent,rgba(8,103,255,.12),transparent)}

/* --- 9. Por que / rota de ações / porta do briefing --- */
main.container.tema-claro .por-que-card{border-color:rgba(77,141,229,.26);background:linear-gradient(90deg,rgba(8,103,255,.07),rgba(255,255,255,.6))}
main.container.tema-claro .por-que-card::after{background:rgba(8,103,255,.06)}
main.container.tema-claro .por-que-card:hover{border-color:#2aa9ff}
main.container.tema-claro .por-que-card p{color:var(--cash-muted)}
main.container.tema-claro .por-que-icone{background:rgba(8,103,255,.1)}
main.container.tema-claro .acao-item:not(:last-child)::after{background:#d5e3f7}
main.container.tema-claro .acao-item.feita:not(:last-child)::after{background:#12b981}
main.container.tema-claro .acao-num{color:#4a6486;border-color:rgba(77,141,229,.3);background:#eaf2ff}
main.container.tema-claro .acao-item.feita .acao-num{color:#fff;border-color:#0e9f6e;background:#12b981}
main.container.tema-claro .acao-item.atual .acao-num{color:#fff;border-color:transparent;background:linear-gradient(135deg,#087eff,#0443dc);box-shadow:0 6px 16px rgba(7,76,204,.28)}
main.container.tema-claro .acao-item.atual .acao-num::after{border-color:rgba(8,103,255,.35)}
main.container.tema-claro .acao-titulo-linha strong{color:var(--cash-ink)}
main.container.tema-claro .acao-corpo p{color:var(--cash-muted)}
main.container.tema-claro .acao-corpo strong{color:var(--cash-ink)}
main.container.tema-claro .acao-item.atual .acao-corpo{border-color:rgba(8,103,255,.28);background:rgba(233,242,255,.8);box-shadow:0 12px 26px rgba(42,93,163,.1)}
main.container.tema-claro .acao-item.atual .acao-corpo::before{background:linear-gradient(112deg,transparent 15%,rgba(8,103,255,.06) 45%,transparent 70%)}
main.container.tema-claro .acao-item.atual .btn{box-shadow:0 8px 22px rgba(7,76,204,.18)}
main.container.tema-claro .porta-mini{border-color:rgba(77,141,229,.3);background:linear-gradient(145deg,#eaf2ff,#cfe0f7)}
main.container.tema-claro .porta-mini::before{background:#b07d10}
main.container.tema-claro .briefing-porta{border-color:rgba(77,141,229,.34);background:rgba(255,255,255,.97);box-shadow:0 22px 52px rgba(42,93,163,.18),inset 0 1px #fff}
main.container.tema-claro .briefing-porta.aguardando-entendimento{border-color:rgba(8,103,255,.45);box-shadow:0 22px 52px rgba(42,93,163,.2),0 0 34px rgba(8,103,255,.1)}
main.container.tema-claro .briefing-porta strong{color:var(--cash-ink)}
main.container.tema-claro .briefing-porta p{color:var(--cash-muted)}
main.container.tema-claro .porta-icone{border-color:#0867ff;background:linear-gradient(145deg,#e6f0ff,#c8dcf8);box-shadow:0 0 20px rgba(8,103,255,.14)}
main.container.tema-claro .porta-icone::before{border-color:rgba(8,103,255,.22)}
main.container.tema-claro .porta-icone i{background:#b07d10;box-shadow:0 0 10px rgba(176,125,16,.6)}
main.container.tema-claro .entendimento-icone{color:#0f4fae;border-color:#0867ff;background:radial-gradient(circle,rgba(8,103,255,.14),rgba(255,255,255,.95));box-shadow:0 0 0 8px rgba(8,103,255,.05),0 0 28px rgba(8,103,255,.12)}

/* --- 10. Cartão de recompensa --- */
main.container.tema-claro .recompensa-card::before{background:rgba(8,103,255,.07)}
main.container.tema-claro .recompensa-card:hover{border-color:#2aa9ff;box-shadow:0 20px 42px rgba(42,93,163,.16)}
main.container.tema-claro .recompensa-card:hover::before{background:rgba(8,103,255,.12)}
main.container.tema-claro .badge-preview{border-color:rgba(77,141,229,.4);background:radial-gradient(circle,rgba(8,103,255,.12),transparent 68%)}
main.container.tema-claro .cadeado-recompensa{color:#4a6486;border-color:rgba(77,141,229,.3);background:#eaf2ff}
main.container.tema-claro .recompensa-card.liberada{border-color:rgba(176,125,16,.5);box-shadow:0 0 0 3px rgba(247,216,119,.2),0 15px 36px rgba(42,93,163,.12)}
main.container.tema-claro .recompensa-card.liberada::after{background:linear-gradient(110deg,transparent 42%,rgba(176,125,16,.1) 49%,transparent 56%)}
main.container.tema-claro .recompensa-xp{background:rgba(233,242,255,.9)}
main.container.tema-claro .recompensa-xp strong{color:#0f4fae}
main.container.tema-claro .recompensa-xp span{color:var(--cash-muted)}

/* --- 11. Quiz da campanha (quiz-rpg) --- */
main.container.tema-claro .quiz-rpg{border-color:rgba(77,141,229,.3);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.94));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .quiz-rpg::after{color:rgba(8,103,255,.07)}
main.container.tema-claro .quiz-selo{color:#0f4fae;border-color:rgba(34,118,230,.32);background:rgba(233,242,255,.9)}
main.container.tema-claro .quiz-form legend{color:var(--cash-ink)}
main.container.tema-claro .quiz-pergunta-bloco{border-color:rgba(77,141,229,.26);background:rgba(255,255,255,.85)}
main.container.tema-claro .quiz-pergunta-bloco legend .mini{color:#1a5fbd}
main.container.tema-claro .quiz-opcao span{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:#fff}
main.container.tema-claro .quiz-opcao b{color:#1a5fbd;border-color:rgba(34,118,230,.35)}
main.container.tema-claro .quiz-opcao:hover span,main.container.tema-claro .quiz-opcao input:focus-visible+span{border-color:#2aa9ff}
main.container.tema-claro .quiz-opcao input:checked+span{color:var(--cash-ink);border-color:#1688ff;background:rgba(8,103,255,.1);box-shadow:0 0 0 3px rgba(8,103,255,.1)}
main.container.tema-claro .quiz-opcao input:checked+span b{color:#fff;background:#0867ff;border-color:#0867ff}
main.container.tema-claro .quiz-rodape small{color:var(--cash-muted)}
main.container.tema-claro .quiz-resultado p{color:var(--cash-muted)}
main.container.tema-claro .quiz-resultado.sucesso{border-color:rgba(14,159,110,.45);background:linear-gradient(145deg,#e9fbf3,#ffffff 72%)}
main.container.tema-claro .quiz-resultado.sucesso strong,main.container.tema-claro .quiz-resultado.sucesso a{color:#0b6c4c}
main.container.tema-claro .quiz-resultado.erro{border-color:rgba(176,125,16,.5);background:linear-gradient(145deg,#fff8e3,#ffffff 72%)}
main.container.tema-claro .quiz-resultado.erro strong{color:#8a5b08}
main.container.tema-claro .quiz-aprovado{border-color:rgba(14,159,110,.45)}
main.container.tema-claro .quiz-aprovado .quiz-selo{color:#fff;border-color:#0e9f6e;background:#12b981}

/* --- 12. Validação final da missão --- */
main.container.tema-claro .card-neon{border-color:rgba(77,141,229,.34);box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .validacao-check{color:var(--cash-ink)!important;border-color:rgba(77,141,229,.28);background:#fff}
main.container.tema-claro .validacao-check:has(input:checked){border-color:rgba(14,159,110,.5);background:rgba(14,159,110,.09)}
main.container.tema-claro label.check{color:var(--cash-ink)!important}
main.container.tema-claro label.check input{accent-color:#0e9f6e}
main.container.tema-claro .concluir-missao{border-top-color:rgba(77,141,229,.24)}
main.container.tema-claro .concluir-missao strong{color:#0f4fae}
main.container.tema-claro .campo-nota{color:var(--cash-muted)}

/* --- 13. Mapa das 7 missões e comprovantes --- */
main.container.tema-claro .mapa-fase{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 12px 28px rgba(42,93,163,.1)}
main.container.tema-claro .mapa-fase:hover{border-color:#2aa9ff;box-shadow:0 16px 34px rgba(42,93,163,.16)}
main.container.tema-claro .mapa-fase strong{color:var(--cash-ink)}
main.container.tema-claro .mapa-fase small,main.container.tema-claro .mapa-fase .mini{color:var(--cash-muted)}
main.container.tema-claro .mapa-num{color:#4a6486;background:#eaf2ff}
main.container.tema-claro .mapa-fase.verde{border-color:rgba(14,159,110,.42)}
main.container.tema-claro .mapa-fase.verde .mapa-num{color:#fff;background:#12b981;box-shadow:none}
main.container.tema-claro .mapa-fase.amarelo{border-color:rgba(176,125,16,.55);box-shadow:0 0 0 3px rgba(247,216,119,.18)}
main.container.tema-claro .mapa-fase.amarelo .mapa-num{color:#fff;background:linear-gradient(135deg,#c99414,#a06f0c)}
main.container.tema-claro .mapa-fase.amarelo::after{background:linear-gradient(110deg,transparent 42%,rgba(176,125,16,.1) 49%,transparent 56%)}
main.container.tema-claro .mapa-fase.vermelho{opacity:.62}
main.container.tema-claro .mapa-fase.revisavel:hover{border-color:#2aa9ff}
main.container.tema-claro .comprovantes-card summary strong{color:var(--cash-ink)}

/* --- 14. Celebração, XP e alertas --- */
main.container.tema-claro .card-celebra{border-color:rgba(176,125,16,.45);background:linear-gradient(135deg,#fff8e3,#eafaf3 62%,#ffffff)}
main.container.tema-claro .celebra-missao::after{background:linear-gradient(112deg,transparent 44%,rgba(176,125,16,.09) 49%,transparent 55%)}
main.container.tema-claro .xp-toast{border-color:rgba(176,125,16,.45);background:linear-gradient(135deg,#fff8e3,#ffffff 72%)}
main.container.tema-claro .xp-toast strong{color:#b07d10}
main.container.tema-claro .xp-toast span{color:var(--cash-muted)}
main.container.tema-claro .alerta-erro{color:#9c221d;border-color:rgba(214,64,58,.4);background:#fdecec}
main.container.tema-claro .alerta-ok{color:#0b6c4c;border-color:rgba(14,159,110,.4);background:#e9fbf3}
main.container.tema-claro .missao-revisao-card{border-color:rgba(77,141,229,.32);background:linear-gradient(125deg,rgba(8,103,255,.07),rgba(255,255,255,.97))}

/* --- 15. Missão 01 · A Origem (origem-*) --- */
main.container.tema-claro .origem-intro article{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .origem-intro p{color:var(--cash-muted)}
main.container.tema-claro .origem-porque::after{background:rgba(8,103,255,.06)}
main.container.tema-claro .origem-inimigo{border-color:rgba(176,125,16,.42);background:linear-gradient(145deg,#fff8e3,#ffffff 72%)}
main.container.tema-claro .origem-inimigo > span{color:#fff;background:#b07d10}
main.container.tema-claro .origem-inimigo small{color:#8a6d1d}
main.container.tema-claro .origem-inimigo strong{color:#7c5a08}
main.container.tema-claro .origem-progresso{border-color:rgba(77,141,229,.26);background:rgba(255,255,255,.9)}
main.container.tema-claro .origem-progresso > div:first-child{color:var(--cash-muted)}
main.container.tema-claro .origem-progresso > div:first-child strong{color:#0f4fae}
main.container.tema-claro .origem-progresso p{color:var(--cash-muted)}
main.container.tema-claro .origem-secao-titulo p{color:var(--cash-muted)}
main.container.tema-claro .origem-acoes,main.container.tema-claro .origem-validacao,main.container.tema-claro .origem-quiz{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(237,245,255,.93));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .origem-acao{border-color:rgba(77,141,229,.24);background:rgba(255,255,255,.86)}
main.container.tema-claro .origem-acao:hover{border-color:#2aa9ff}
main.container.tema-claro .origem-acao.concluida{border-color:rgba(14,159,110,.42);background:rgba(14,159,110,.07)}
main.container.tema-claro .origem-acao-numero span{background:#eaf2ff}
main.container.tema-claro .origem-acao-numero b{color:var(--cash-muted)}
main.container.tema-claro .origem-acao-status{color:var(--cash-muted)}
main.container.tema-claro .origem-acao.concluida .origem-acao-status{color:#0e9f6e}
main.container.tema-claro .origem-acao-copy h3{color:var(--cash-ink)}
main.container.tema-claro .origem-acao-copy p{color:var(--cash-muted)}
main.container.tema-claro .origem-checklist > div{color:var(--cash-muted);border-color:rgba(77,141,229,.24);background:rgba(255,255,255,.82)}
main.container.tema-claro .origem-checklist > div > span{color:#4a6486;border-color:rgba(77,141,229,.4)}
main.container.tema-claro .origem-checklist > div.feito{color:var(--cash-ink);border-color:rgba(14,159,110,.42);background:rgba(14,159,110,.08)}
main.container.tema-claro .origem-checklist > div.feito > span{color:#fff;border-color:#0e9f6e;background:#12b981}
main.container.tema-claro .origem-quiz > p,main.container.tema-claro .origem-quiz > h3{color:var(--cash-ink)}
main.container.tema-claro .origem-quiz > p{color:var(--cash-muted)}
main.container.tema-claro .origem-quiz-bloqueado{color:var(--cash-muted);border-color:#c3d6ee}
main.container.tema-claro .origem-quiz-bloqueado strong{color:var(--cash-ink)}
main.container.tema-claro .origem-pergunta-contador{color:#0f4fae}
main.container.tema-claro .origem-pergunta-contador div{background:#dbe7fb}
main.container.tema-claro .origem-pergunta-contador i{background:linear-gradient(90deg,#0867ff,#00c2ff)}
main.container.tema-claro .op1-quiz label span{color:var(--cash-ink);border-color:rgba(77,141,229,.28);background:#fff}
main.container.tema-claro .op1-quiz label b{color:#1a5fbd;border-color:rgba(34,118,230,.35)}
main.container.tema-claro .op1-quiz label:hover span,main.container.tema-claro .op1-quiz label:has(input:checked) span{border-color:#1688ff;background:rgba(8,103,255,.1)}
main.container.tema-claro .op1-quiz label:has(input:checked) b{color:#fff;border-color:#0867ff;background:#0867ff}
main.container.tema-claro .op1-resultado.aprovado{color:#0b6c4c;border-color:rgba(14,159,110,.45);background:#e9fbf3}
main.container.tema-claro .op1-resultado.aprovado > span{color:#fff;background:#12b981}
main.container.tema-claro .op1-resultado.revisar{color:#8a5b08;border-color:rgba(176,125,16,.5);background:#fff8e3}
main.container.tema-claro .op1-resultado.revisar > span{color:#fff;background:#b07d10}
main.container.tema-claro .origem-finalizar,main.container.tema-claro .origem-conclusao{color:var(--cash-ink);border-color:rgba(176,125,16,.42);background:radial-gradient(circle at 50% 0,rgba(247,216,119,.3),transparent 46%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,251,240,.95));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .origem-finalizar > p,main.container.tema-claro .origem-conclusao > p{color:var(--cash-muted)}
main.container.tema-claro .op1-premios article{border-color:rgba(176,125,16,.32);background:rgba(255,248,227,.7)}
main.container.tema-claro .op1-premios span{color:#b07d10}
main.container.tema-claro .op1-premios small{color:var(--cash-muted)}
main.container.tema-claro .op1-vitoria i{border-color:rgba(176,125,16,.35)}

/* --- 16. Missão 02 · Organização Bancária (bancaria-*) --- */
main.container.tema-claro .bancaria-topo h1{color:transparent;background:linear-gradient(110deg,#071737 18%,#0867ff 62%,#00a6d9);-webkit-background-clip:text;background-clip:text}
main.container.tema-claro .bancaria-operacoes{border-color:rgba(77,141,229,.28);background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(234,244,255,.95));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .bancaria-criterios{border-color:rgba(176,125,16,.34);background:linear-gradient(150deg,rgba(255,253,246,.98),rgba(255,248,227,.9));box-shadow:0 15px 36px rgba(42,93,163,.1),inset 0 1px #fff}
main.container.tema-claro .bancaria-operacoes-grid article,main.container.tema-claro .bancaria-criterios-grid article{border-color:rgba(77,141,229,.24);background:rgba(255,255,255,.88)}
main.container.tema-claro .bancaria-operacoes-grid article:hover{border-color:#2aa9ff}
main.container.tema-claro .bancaria-criterios-grid article{border-color:rgba(176,125,16,.26)}
main.container.tema-claro .bancaria-criterios-grid article:hover{border-color:rgba(176,125,16,.55)}
main.container.tema-claro .bancaria-operacoes-grid article > span{color:#0f4fae;border-color:rgba(34,118,230,.34);background:rgba(233,242,255,.9)}
main.container.tema-claro .bancaria-criterios-grid article > span{color:#8a5b08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.28)}
main.container.tema-claro .bancaria-operacoes-grid h3,main.container.tema-claro .bancaria-criterios-grid h3{color:var(--cash-ink)}
main.container.tema-claro .bancaria-operacoes-grid p,main.container.tema-claro .bancaria-criterios-grid p{color:var(--cash-muted)}
main.container.tema-claro .bancaria-registrato{border-color:rgba(34,118,230,.34);background:radial-gradient(circle at 4% 50%,rgba(8,103,255,.1),transparent 28%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(234,244,255,.95));box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff}
main.container.tema-claro .registrato-icone{background:linear-gradient(145deg,#e6f0ff,#cfe0f7);box-shadow:0 10px 24px rgba(42,93,163,.14)}
main.container.tema-claro .bancaria-registrato p{color:var(--cash-muted)}
main.container.tema-claro .bancaria-registrato strong{color:var(--cash-ink)}
main.container.tema-claro .missao-bancaria .origem-acao.disponivel{border-color:rgba(8,103,255,.5);background:linear-gradient(145deg,rgba(233,242,255,.95),rgba(255,255,255,.95));box-shadow:0 12px 28px rgba(42,93,163,.14)}
main.container.tema-claro .missao-bancaria .origem-acao.bloqueada{opacity:.62;filter:grayscale(.3)}
main.container.tema-claro .missao-bancaria .origem-acao.bloqueada:hover{border-color:rgba(77,141,229,.24)}
main.container.tema-claro .bancaria-confirmada{color:#0e9f6e}
main.container.tema-claro .bancaria-cartao{border-color:rgba(176,125,16,.42);background:linear-gradient(145deg,#fff8e3,#ffffff 78%)}
main.container.tema-claro .bancaria-cartao > span{background:rgba(247,216,119,.35)}
main.container.tema-claro .bancaria-cartao strong{color:#7c5a08}
main.container.tema-claro .bancaria-cartao p{color:#8a6d1d}
main.container.tema-claro .bancaria-finalizar,main.container.tema-claro .bancaria-conclusao{border-color:rgba(34,118,230,.34);background:radial-gradient(circle at 50% 0,rgba(8,103,255,.12),transparent 46%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.95))}

/* --- 17. Fase 07 · Portas Abertas (conclusão) --- */
main.container.tema-claro .cert-historico-item{border-color:rgba(77,141,229,.26);background:rgba(255,255,255,.88)}
main.container.tema-claro .cert-historico-item .mapa-num{color:#fff;background:#12b981}
main.container.tema-claro .cert-historico-item strong{color:var(--cash-ink)}
main.container.tema-claro .cert-historico-item small,main.container.tema-claro .cert-historico-item em{color:var(--cash-muted)}
main.container.tema-claro .cert-historico-item span{color:#0b6c4c}
main.container.tema-claro .conclusao-convite aside strong{color:#b07d10}

/* =========================================================
   LOGIN — cartão claro IllumiCash (fora do main.container).
   A landing pública (lp-*) e a topbar não são afetadas.
   ========================================================= */
/* =========================================================
   IDENTIDADE ILLUMICASH APLICADA AO APP INTEIRO (27/07/2026)
   Pedido do Moisés: fundo claro uniforme, acentos azuis, sem
   ícones no menu e sem selo de ambiente para conta real.
   ========================================================= */
body:has(main.container){
  --il:#0867ff; --il-2:#00d9ff; --il-ink:#071737; --il-muted:#627895;
  color:var(--il-ink);
  background:radial-gradient(circle at 15% 0,rgba(8,103,255,.10),transparent 38%),
             linear-gradient(170deg,#eef4ff 0%,#f9fbff 45%,#eaf2ff 100%);
}
/* topo escuro-azulado (marca) em vez do verde-escuro antigo */
body:has(main.container) .topbar{
  background:linear-gradient(120deg,#04122e,#071d4b 55%,#03112f);
  border-bottom:1px solid rgba(83,150,255,.30);
  box-shadow:0 6px 26px rgba(0,50,140,.16);
}
body:has(main.container) .brand{color:#eaf3ff}
body:has(main.container) .brand span{color:#8fb6ee}
body:has(main.container) .nav a{color:#c3d9f7}
body:has(main.container) .nav a:hover{color:#fff;border-color:#25b7ff;box-shadow:0 0 12px rgba(0,140,255,.35)}
/* botão ativo: azul neon (era gradiente laranja/verde) */
body:has(main.container) .nav a.ativo,
body:has(main.container) .menu-modulo.ativo > .menu-modulo-topo{
  color:#fff;
  background:linear-gradient(135deg,#0a8cff,#0443dc);
  border-color:#48dfff;
  box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 18px rgba(0,150,255,.55);
  font-weight:600;
}
body:has(main.container) .menu-modulo-topo{color:#c3d9f7}
body:has(main.container) .menu-submenu{
  background:linear-gradient(155deg,#07205a,#03112f);
  border:1px solid rgba(68,151,255,.30);
  box-shadow:0 18px 44px rgba(0,40,120,.34);
}
body:has(main.container) .menu-submenu a{color:#cfe2ff}
body:has(main.container) .menu-submenu a:hover{color:#fff;background:rgba(10,120,255,.24)}
body:has(main.container) .nome-user{color:#dbe9ff}
body:has(main.container) .topbar-user .btn-ghost{color:#cfe2ff;border-color:rgba(120,180,255,.42);background:rgba(9,45,110,.42)}
body:has(main.container) .topbar-user .btn-ghost:hover{color:#fff;border-color:#4bc4ff;background:rgba(12,70,175,.55)}
/* selo de demonstração discreto, em âmbar (só aparece em conta simulada) */
body:has(main.container) .ambiente-selo-demonstracao{color:#7c5a08;border-color:rgba(191,146,42,.6);background:#ffe9a8}
body:has(main.container) .ambiente-faixa-demonstracao{
  color:#7c5a08;border-bottom:1px solid rgba(191,146,42,.35);
  background:linear-gradient(180deg,#fff8e3,#fffdf6);
}
body:has(main.container) .ambiente-faixa-demonstracao strong{color:#6b4e07}
body:has(main.container) .ambiente-faixa-demonstracao small{color:#8a6d1d}
body:has(main.container) .ambiente-faixa-icone{color:#fff;background:#b07d10}
/* rodapé claro */
body:has(main.container) .rodape{color:var(--il-muted);border-top:1px solid rgba(83,150,255,.24);background:transparent}
/* botão de ajuda flutuante: azul, não verde */
body:has(main.container) .ajuda-flutuante{
  background:linear-gradient(135deg,#0a8cff,#0443dc);
  border-color:#48dfff;
  box-shadow:0 12px 30px rgba(7,76,204,.34),0 0 0 5px rgba(9,113,255,.10);
}
/* avatar/inicial do perfil: azul */
body:has(main.container) .perfil-prime-avatar{
  color:#fff;
  background:linear-gradient(145deg,#0f8cff,#043ecf);
  box-shadow:0 0 0 5px rgba(9,113,255,.09),0 0 22px rgba(0,116,255,.34);
}

/* MODAIS no padrão claro (o "Novo lançamento" ainda vinha escuro) */
body:has(main.container) .modal-overlay{background:rgba(7,23,55,.55);backdrop-filter:blur(4px)}
body:has(main.container) .modal-caixa{
  color:var(--il-ink);
  border:1px solid rgba(83,150,255,.34);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(237,245,255,.96));
  box-shadow:0 28px 80px rgba(0,50,150,.28),inset 0 1px #fff;
}
body:has(main.container) .modal-caixa h2,
body:has(main.container) .modal-caixa h3{color:var(--il-ink)}
body:has(main.container) .modal-caixa label,
body:has(main.container) .modal-caixa .mini,
body:has(main.container) .modal-caixa small,
body:has(main.container) .modal-caixa p{color:var(--il-muted)}
body:has(main.container) .modal-caixa .eyebrow{color:var(--il)}
body:has(main.container) .modal-caixa input,
body:has(main.container) .modal-caixa select,
body:has(main.container) .modal-caixa textarea{
  color:#0a1a39;border:1px solid rgba(57,124,218,.32);background:#fff;
  box-shadow:inset 0 1px 3px rgba(33,75,133,.06);
}
body:has(main.container) .modal-caixa input:focus,
body:has(main.container) .modal-caixa select:focus,
body:has(main.container) .modal-caixa textarea:focus{border-color:#1688ff;box-shadow:0 0 0 3px rgba(8,103,255,.12)}
body:has(main.container) .modal-caixa .btn-primario{
  color:#fff;border:1px solid #48dfff;
  background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);
  box-shadow:0 9px 22px rgba(7,76,204,.24);
}
body:has(main.container) .modal-caixa .btn-ghost{color:#135db7;border:1px solid rgba(34,118,230,.3);background:#fff}
/* seletor Despesa/Receita dentro do modal */
body:has(main.container) .toggle-tipo{border:1px solid rgba(57,124,218,.28);background:#eaf1fc}
body:has(main.container) .toggle-tipo label{color:#4a6285}
body:has(main.container) .toggle-tipo label.t-saida:has(input:checked){color:#fff;background:#d6403a}
body:has(main.container) .toggle-tipo label.t-entrada:has(input:checked){color:#fff;background:#0e9f6e}

/* Relatório consolidado e demais painéis escuros do Organizador */
main.container:has(> .organizador-hub) .relatorio-hero,
main.container:has(> .organizador-hub) .relatorio-kpis > article,
main.container:has(> .organizador-hub) .historico-resumo > span,
main.container:has(> .organizador-hub) .alerta-prime-resumo > div,
main.container:has(> .organizador-hub) .fixo-resumo-prime > div,
main.container:has(> .organizador-hub) .organizador-painel-clean,
main.container:has(> .organizador-hub) .card-relatorio,
main.container:has(> .organizador-hub) .relatorio-bloco{
  color:var(--cash-ink);
  border:1px solid rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
  box-shadow:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff;
}
main.container:has(> .organizador-hub) .relatorio-hero h1,
main.container:has(> .organizador-hub) .relatorio-kpis strong,
main.container:has(> .organizador-hub) .relatorio-bloco h2{color:var(--cash-ink)}
main.container:has(> .organizador-hub) .relatorio-hero p,
main.container:has(> .organizador-hub) .relatorio-kpis small,
main.container:has(> .organizador-hub) .relatorio-kpis span{color:var(--cash-muted)}
main.container:has(> .organizador-hub) .relatorio-hero .eyebrow{color:var(--cash)}

body.tela-login{--cash:#0867ff;--cash-ink:#071737;--cash-muted:#627895;color:var(--cash-ink);background:radial-gradient(circle at 18% 12%,rgba(8,103,255,.16),transparent 42%),linear-gradient(155deg,#eaf2ff 0%,#f8fbff 54%,#e7f0ff 100%)}
body.tela-login .login-card{color:var(--cash-ink);border:1px solid rgba(83,150,255,.34);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(237,245,255,.95));box-shadow:0 28px 90px rgba(0,73,182,.2),inset 0 1px rgba(255,255,255,.95)}
body.tela-login .login-brand{color:var(--cash-ink)}
body.tela-login .login-brand span{color:var(--cash)}
body.tela-login .login-slogan{color:var(--cash-muted)}
body.tela-login .login-rodape{color:var(--cash-muted);border-top-color:rgba(77,141,229,.24)}
body.tela-login .login-rodape strong{color:var(--cash-ink)}
body.tela-login .link{color:#0f4fae}
body.tela-login label{color:var(--cash-muted)}
body.tela-login input{color:#0a1a39;border-color:rgba(57,124,218,.3);background:rgba(255,255,255,.92);box-shadow:inset 0 1px 3px rgba(33,75,133,.07)}
body.tela-login input::placeholder{color:#8da1bb}
body.tela-login input:focus{border-color:#1688ff;box-shadow:0 0 0 3px rgba(8,103,255,.12)}
body.tela-login .btn-primario{color:#fff;border-color:#48dfff;background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);box-shadow:0 9px 22px rgba(7,76,204,.24)}
body.tela-login .alerta-erro{color:#9c221d;border-color:rgba(214,64,58,.4);background:#fdecec}

/* =========================================================
   TRILHA DO RATING — ACABAMENTO PADRÃO ORGANIZADOR (27/07/2026)
   Bloco APENAS ADITIVO: nenhuma regra anterior foi reescrita,
   nenhum !important, todo seletor escopado em main.container.tema-claro.
   Eleva farois (Trilha), operacao-1 (A Origem), operacao-2 (Organização
   Bancária) e conclusão (Portas Abertas) ao acabamento do Organizador
   Financeiro (IllumiCash), aplicando as cinco regras invioláveis:
     (a) toda superfície clara leva inset 0 1px #fff;
     (b) toda sombra é azul-marinho translúcida, nunca preta;
     (c) todo fundo é gradiente de dois tons, nunca cor chapada;
     (d) o glow ciano fica no CTA/rail, nunca no corpo claro;
     (e) o azul de ação #0867ff só em eyebrow, link, botão e acento —
         sobre chip azul-claro ele vira --cash-forte (mesma matiz, um grau
         mais fundo) porque #0867ff ali mede 4,3:1 e reprova no AA.
   Causa-raiz corrigida: os CONTÊINERES já tinham a receita-ouro, os
   ITENS dentro deles não. Aqui são os itens que passam a carregar
   gradiente + sombra + inset, como .organizador-kpi / .finance-pulse.
   SEMÂNTICA DE ESTADO PRESERVADA: concluído = verde #0e9f6e /
   #12b981; ativo = dourado-âmbar #b07d10 / #f7d877; bloqueado =
   cinza-azulado. Só o acabamento muda, nunca o significado.
   ========================================================= */

/* --- A. Tokens de acabamento (nomes novos; não sobrescrevem nada) --- */
main.container.tema-claro{
  --sup-borda:rgba(77,141,229,.28);
  --sup-fundo:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
  --sup-sombra:0 15px 36px rgba(42,93,163,.12),inset 0 1px #fff;
  --sup-sombra-alta:0 22px 46px rgba(42,93,163,.18),inset 0 1px #fff;
  --sup-sombra-baixa:0 6px 16px rgba(42,93,163,.1),inset 0 1px #fff;
  /* Anel de foco: é o ÚNICO indicador onde o bloco usa outline:none, então
     precisa de contraste >= 3:1 contra a página (WCAG 2.2 SC 2.4.11).
     Com .14 o anel media 1,2:1 — invisível para quem navega por teclado. */
  --sup-anel:0 0 0 3px rgba(8,103,255,.85);
  /* Mesmo azul de ação, um grau mais fundo, para TEXTO sobre chip azul-claro:
     #0867ff sobre rgba(233,242,255,.75-.9) cai para ~4,3:1 e reprova no AA. */
  --cash-forte:#0a56cf;
  --sup-ambar-borda:rgba(176,125,16,.4);
  --sup-ambar-fundo:linear-gradient(145deg,rgba(255,253,246,.99),rgba(255,246,219,.93));
  --sup-verde-borda:rgba(14,159,110,.42);
  --sup-verde-fundo:linear-gradient(145deg,rgba(255,255,255,.98),rgba(226,250,240,.92));
  --sup-cinza-borda:rgba(98,120,149,.26);
  --sup-cinza-fundo:linear-gradient(145deg,rgba(252,253,255,.97),rgba(238,243,250,.92));
}

/* --- B1. Itens internos: receita-ouro do card (já possuem borda) --- */
main.container.tema-claro .origem-acao,
main.container.tema-claro .cert-historico-item,
main.container.tema-claro .origem-progresso,
main.container.tema-claro .bancaria-operacoes-grid article,
main.container.tema-claro .missao-modelo,
main.container.tema-claro .trilha-resumo > div,
main.container.tema-claro .quiz-pergunta-bloco,
main.container.tema-claro .personagem-editor form,
main.container.tema-claro .jogador-card,
main.container.tema-claro .npc-chamada,
main.container.tema-claro .origem-quiz-bloqueado{
  border-color:var(--sup-borda);
  background:var(--sup-fundo);
  box-shadow:var(--sup-sombra);
}

/* --- B1b. Chips e linhas: mesma receita, sombra curta (hierarquia de elevação) --- */
main.container.tema-claro .origem-checklist > div,
main.container.tema-claro .op1-convite-ciclo span,
main.container.tema-claro .avatar-opcoes label{
  border-color:var(--sup-borda);
  background:var(--sup-fundo);
  box-shadow:var(--sup-sombra-baixa);
}

/* --- B2. Itens sem borda na base: declara a moldura --- */
main.container.tema-claro .recompensa-xp{
  border:1px solid var(--sup-borda);
  background:var(--sup-fundo);
  box-shadow:var(--sup-sombra);
}
main.container.tema-claro .tabela-scroll{
  border:1px solid rgba(71,137,224,.22);
  background:#fff;
  box-shadow:var(--sup-sombra);
}

/* --- B3. Painel de vidro do hero: precisa de moldura e sombra próprias --- */
main.container.tema-claro .missao-hero-painel{
  border-color:rgba(77,141,229,.3);
  background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(237,245,255,.86));
  box-shadow:0 18px 42px rgba(42,93,163,.14),inset 0 1px #fff;
}
main.container.tema-claro .missao-hero:hover .missao-hero-painel{
  border-color:rgba(8,103,255,.32);
  box-shadow:0 22px 46px rgba(42,93,163,.2),inset 0 1px #fff;
}

/* --- B4. Família ÂMBAR (ativo / prêmio) mantém o dourado e ganha relevo --- */
main.container.tema-claro .bancaria-criterios-grid article,
main.container.tema-claro .op1-premios article,
main.container.tema-claro .bancaria-cartao,
main.container.tema-claro .op1-convite aside,
main.container.tema-claro .origem-inimigo,
main.container.tema-claro .xp-toast,
main.container.tema-claro .conclusao-convite aside{
  border-color:var(--sup-ambar-borda);
  background:var(--sup-ambar-fundo);
  box-shadow:0 15px 36px rgba(42,93,163,.1),inset 0 1px #fff;
}

/* --- B5. Família VERDE (concluído) mantém o verde e ganha relevo --- */
main.container.tema-claro .origem-acao.concluida,
main.container.tema-claro .origem-checklist > div.feito,
main.container.tema-claro .op1-resultado.aprovado,
main.container.tema-claro .quiz-resultado.sucesso,
main.container.tema-claro .alerta-ok{
  border-color:var(--sup-verde-borda);
  background:var(--sup-verde-fundo);
  box-shadow:0 15px 36px rgba(42,93,163,.1),inset 0 1px #fff;
}

/* --- B6. Estado BLOQUEADO: superfície cinza explícita no lugar de opacidade dupla --- */
main.container.tema-claro .ciclo-etapas li{
  opacity:1;
  border-color:rgba(77,141,229,.2);
  background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(240,246,255,.82));
  box-shadow:inset 0 1px #fff;
}
main.container.tema-claro .ciclo-etapas li:not(.concluida):not(.ativa) strong{color:var(--cash-muted)}
main.container.tema-claro .mapa-fase.vermelho{
  opacity:.82;
  border-color:var(--sup-cinza-borda);
  background:var(--sup-cinza-fundo);
  box-shadow:0 8px 20px rgba(42,93,163,.07),inset 0 1px #fff;
}
/* .disponivel já tinha regra própria em 2234 com especificidade maior que a
   de B1: sem esta linha o cartão da Missão 02 ficava sem o inset da regra (a). */
main.container.tema-claro .missao-bancaria .origem-acao.disponivel{
  box-shadow:0 12px 28px rgba(42,93,163,.14),inset 0 1px #fff;
}
main.container.tema-claro .missao-bancaria .origem-acao.bloqueada{
  opacity:.82;
  filter:none;
  border-color:var(--sup-cinza-borda);
  background:var(--sup-cinza-fundo);
  box-shadow:0 8px 20px rgba(42,93,163,.07),inset 0 1px #fff;
}
main.container.tema-claro .cidade-local.vermelho{opacity:.8;filter:grayscale(.22)}

/* --- C. Hover: o card levanta COM sombra (antes levantava sem) --- */
main.container.tema-claro .cert-historico-item{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
main.container.tema-claro .origem-acao:hover,
main.container.tema-claro .cert-historico-item:hover,
main.container.tema-claro .bancaria-operacoes-grid article:hover,
main.container.tema-claro .bancaria-criterios-grid article:hover,
main.container.tema-claro .missao-modelo:hover,
main.container.tema-claro .mapa-fase:hover,
main.container.tema-claro .mapa-fase.revisavel:hover,
main.container.tema-claro .trilha-resumo > div:hover,
main.container.tema-claro .por-que-card:hover,
main.container.tema-claro .recompensa-card:hover{
  box-shadow:var(--sup-sombra-alta);
}
main.container.tema-claro .cert-historico-item:hover{transform:translateY(-2px);border-color:#2aa9ff}
main.container.tema-claro .missao-modelo:hover{background:linear-gradient(145deg,#fff,rgba(233,242,255,.96))}

/* --- D. Botão primário: borda ciano viva e halo AZUL (nunca mais verde) --- */
main.container.tema-claro .btn-primario{border:1px solid #48dfff}
main.container.tema-claro .btn-primario:hover{
  border-color:#7ceaff;
  box-shadow:0 14px 30px rgba(7,76,204,.3),0 0 26px rgba(0,171,255,.32);
}
main.container.tema-claro .btn-primario:focus-visible{
  outline:none;
  border-color:#7ceaff;
  box-shadow:0 9px 22px rgba(7,76,204,.24),0 0 0 4px rgba(8,103,255,.85);
}
main.container.tema-claro .btn-primario:disabled,
main.container.tema-claro .btn-primario[disabled]{box-shadow:none}
main.container.tema-claro .acao-item.atual .btn:hover{
  box-shadow:0 14px 30px rgba(7,76,204,.3),0 0 26px rgba(0,171,255,.28);
}
main.container.tema-claro .btn-primario.pronto{box-shadow:0 9px 22px rgba(7,76,204,.24),0 0 0 5px rgba(18,127,255,.12)}

/* --- D2. Botão fantasma da Trilha: deixa de sumir dentro do card --- */
main.container.tema-claro .origem-acao .btn-ghost,
main.container.tema-claro .origem-acoes .btn-ghost,
main.container.tema-claro .acao-corpo .btn-ghost,
main.container.tema-claro .briefing-porta .btn-ghost,
main.container.tema-claro .acoes-missao .btn-ghost,
main.container.tema-claro .missao-hero .btn-ghost,
main.container.tema-claro .op1-shell .btn-ghost{
  color:#0f4fae;
  border-color:rgba(34,118,230,.42);
  background:linear-gradient(145deg,#ffffff,#e9f1ff);
  box-shadow:var(--sup-sombra-baixa);
}
main.container.tema-claro .origem-acao .btn-ghost:hover,
main.container.tema-claro .origem-acoes .btn-ghost:hover,
main.container.tema-claro .acao-corpo .btn-ghost:hover,
main.container.tema-claro .briefing-porta .btn-ghost:hover,
main.container.tema-claro .acoes-missao .btn-ghost:hover,
main.container.tema-claro .missao-hero .btn-ghost:hover,
main.container.tema-claro .op1-shell .btn-ghost:hover{
  color:#064dc1;
  border-color:#2aa9ff;
  background:#fff;
  box-shadow:0 10px 22px rgba(42,93,163,.16),inset 0 1px #fff;
}
main.container.tema-claro .btn-ghost:focus-visible{outline:none;box-shadow:var(--sup-anel)}

/* --- E. CTAs que não eram botão viram pill de ação (mesmo raio 999 do sistema) --- */
main.container.tema-claro .npc-chamada a,
main.container.tema-claro .quiz-resultado.sucesso a,
main.container.tema-claro .bancaria-link-apoio,
main.container.tema-claro .op1-voltar,
main.container.tema-claro .personagem-editor > summary{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 14px;
  border:1px solid rgba(8,103,255,.32);
  border-radius:999px;
  /* pílula tem fundo #e9f1ff na ponta do gradiente: --cash mediria 4,2:1 */
  color:var(--cash-forte);
  background:linear-gradient(145deg,#ffffff,#e9f1ff);
  box-shadow:var(--sup-sombra-baixa);
  font-weight:800;
  text-decoration:none;
  transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
main.container.tema-claro .npc-chamada a:hover,
main.container.tema-claro .quiz-resultado.sucesso a:hover,
main.container.tema-claro .bancaria-link-apoio:hover,
main.container.tema-claro .op1-voltar:hover,
main.container.tema-claro .personagem-editor > summary:hover{
  color:#064dc1;
  border-color:#2aa9ff;
  background:#fff;
  box-shadow:0 10px 22px rgba(42,93,163,.16),inset 0 1px #fff;
}
main.container.tema-claro .npc-chamada a:focus-visible,
main.container.tema-claro .quiz-resultado.sucesso a:focus-visible,
main.container.tema-claro .bancaria-link-apoio:focus-visible,
main.container.tema-claro .op1-voltar:focus-visible,
main.container.tema-claro .personagem-editor > summary:focus-visible{outline:none;box-shadow:var(--sup-anel)}
/* estado concluído da Missão 02 passa a ler como o "Revisar" da Missão 01 */
main.container.tema-claro .bancaria-confirmada{
  padding:7px 14px;
  border:1px solid rgba(14,159,110,.42);
  border-radius:999px;
  background:linear-gradient(145deg,#ffffff,#e4f8ef);
  box-shadow:var(--sup-sombra-baixa);
}

/* --- F. Tinta unificada: 1 acento (--cash), 1 tinta (--cash-ink), 1 cinza (--cash-muted) --- */
/* F1a. acento sobre superfície BRANCA: o azul de ação puro (4,8:1) */
main.container.tema-claro .quiz-pergunta-bloco legend .mini,
main.container.tema-claro .origem-pergunta-contador,
main.container.tema-claro .origem-acao-numero b{color:var(--cash)}
/* F1b. acento sobre CHIP AZUL-CLARO: mesma matiz, um grau mais fundo.
   Selos, status e pílulas do quiz têm fundo rgba(233,242,255,.75-.9) — ali
   o #0867ff mede 4,3:1 (reprova AA para 9-12px); --cash-forte dá 5,8:1. */
main.container.tema-claro .op1-selo,
main.container.tema-claro .missao-kicker,
main.container.tema-claro .quiz-selo,
main.container.tema-claro .ciclo-status,
main.container.tema-claro .quiz-opcao b,
main.container.tema-claro .op1-quiz label b,
main.container.tema-claro .rpg-aviso span,
main.container.tema-claro .bancaria-operacoes-grid article > span,
main.container.tema-claro .entendimento-icone{color:var(--cash-forte)}
main.container.tema-claro .origem-acao.concluida .origem-acao-numero b{color:#0e9f6e}

/* F2. valores e números = tinta do sistema (igual ao strong do .organizador-kpi) */
main.container.tema-claro .missao-modelo strong,
main.container.tema-claro .missao-metrica.rodape-metrica strong,
main.container.tema-claro .origem-progresso > div:first-child strong,
main.container.tema-claro .concluir-missao strong,
main.container.tema-claro .recompensa-xp strong,
main.container.tema-claro .degrau:not(.alcancado),
main.container.tema-claro .acao-num,
main.container.tema-claro .mapa-num,
main.container.tema-claro .ciclo-etapas li > span,
main.container.tema-claro .origem-checklist > div > span,
main.container.tema-claro .cadeado-recompensa,
main.container.tema-claro .local-edificio > b{color:var(--cash-ink)}

/* F3. texto secundário = cinza único do sistema */
main.container.tema-claro .local-texto small,
main.container.tema-claro .rpg-aviso,
main.container.tema-claro .cidade-local.vermelho .local-texto strong,
main.container.tema-claro .cidade-local.vermelho .local-texto em,
main.container.tema-claro .origem-acao-status,
main.container.tema-claro .campo-nota,
main.container.tema-claro .quiz-rodape small{color:var(--cash-muted)}

/* F4. eyebrow: alinhamento óptico do emoji na baseline (o HTML não muda) */
main.container.tema-claro .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:7px;
  line-height:1.25;
}

/* F5. títulos irmãos com o mesmo tratamento da Missão 02 */
main.container.tema-claro .op1-topo h1,
main.container.tema-claro .origem-topo h1{
  color:transparent;
  background:linear-gradient(110deg,#071737 18%,#0867ff 62%,#00a6d9);
  -webkit-background-clip:text;
  background-clip:text;
}

/* --- G. Barra de progresso: preenchimento AZUL e trilho côncavo --- */
main.container.tema-claro .barra-missao .barra-fill,
main.container.tema-claro .origem-progresso .barra .barra-fill{
  background:linear-gradient(90deg,#0867ff,#00c2ff);
  box-shadow:0 0 10px rgba(8,103,255,.22);
}
main.container.tema-claro .barra-missao,
main.container.tema-claro .origem-progresso .barra,
main.container.tema-claro .jogador-xp{box-shadow:inset 0 1px 3px rgba(33,75,133,.09)}

/* --- H. Chips e ícones: moldura + relevo (equivalente ao .kpi-icone) --- */
main.container.tema-claro .origem-acao-numero span,
main.container.tema-claro .mapa-num,
main.container.tema-claro .registrato-icone,
main.container.tema-claro .por-que-icone{
  border:1px solid rgba(77,141,229,.3);
  background:linear-gradient(145deg,#f5f9ff,#e2ecfd);
  box-shadow:inset 0 1px #fff;
}
main.container.tema-claro .mapa-fase.verde .mapa-num,
main.container.tema-claro .cert-historico-item .mapa-num{
  border:1px solid rgba(14,159,110,.5);
  box-shadow:inset 0 1px rgba(255,255,255,.4);
}
main.container.tema-claro .mapa-fase.amarelo .mapa-num{
  border:1px solid rgba(176,125,16,.5);
  box-shadow:inset 0 1px rgba(255,255,255,.4);
}
main.container.tema-claro .acao-item.feita .acao-num,
main.container.tema-claro .acao-item.atual .acao-num{box-shadow:inset 0 1px rgba(255,255,255,.35),0 6px 16px rgba(7,76,204,.2)}
main.container.tema-claro .registrato-icone{box-shadow:0 10px 24px rgba(42,93,163,.14),inset 0 1px #fff}
main.container.tema-claro .bancaria-cartao > span{
  border:1px solid rgba(176,125,16,.4);
  box-shadow:inset 0 1px rgba(255,255,255,.55);
}

/* --- I. Alvos de clique do quiz: superfície e anel de foco do sistema --- */
main.container.tema-claro .quiz-opcao span,
main.container.tema-claro .op1-quiz label span{
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(240,246,255,.94));
  box-shadow:0 6px 16px rgba(42,93,163,.08),inset 0 1px #fff;
}
main.container.tema-claro .quiz-opcao:hover span,
main.container.tema-claro .op1-quiz label:hover span{
  box-shadow:0 10px 22px rgba(42,93,163,.14),inset 0 1px #fff;
}
main.container.tema-claro .quiz-opcao input:focus-visible+span,
main.container.tema-claro .op1-quiz label:focus-within span{
  box-shadow:var(--sup-anel),0 10px 22px rgba(42,93,163,.14),inset 0 1px #fff;
}
main.container.tema-claro .quiz-opcao input:checked+span,
main.container.tema-claro .op1-quiz label:has(input:checked) span{
  box-shadow:0 0 0 3px rgba(8,103,255,.14),0 10px 24px rgba(42,93,163,.14),inset 0 1px #fff;
}
main.container.tema-claro .validacao-check{box-shadow:var(--sup-sombra-baixa)}
main.container.tema-claro .validacao-check:has(input:checked){box-shadow:0 8px 20px rgba(14,159,110,.14),inset 0 1px #fff}

/* --- J. Restos do tema escuro dentro da cena clara --- */
/* chip preto-esverdeado do áudio do Moisés vira chip claro */
main.container.tema-claro .guia-audio-bars{
  border-color:rgba(8,103,255,.3);
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(233,242,255,.9));
  box-shadow:0 8px 22px rgba(42,93,163,.16),inset 0 1px #fff;
}
main.container.tema-claro .guia-avatar i{border-color:rgba(8,103,255,.22)}
/* var(--verde-claro) nunca foi definido: o shorthand border era invalidado
   e o anel simplesmente não renderizava. Redeclara border completo. */
main.container.tema-claro .entendimento-icone{border:2px solid #0867ff}
main.container.tema-claro .conquista-porta{border:2px solid rgba(14,159,110,.6)}
/* lua noturna -> sol diurno, mesmo âmbar do sistema (cena já é diurna) */
main.container.tema-claro .cidade-lua{
  background:radial-gradient(circle at 50% 50%,#fffdf3 0 32%,#ffeeb9 62%,#f7d877 100%);
  box-shadow:0 0 0 14px rgba(247,216,119,.14),0 0 80px rgba(247,216,119,.34);
  opacity:.9;
}
main.container.tema-claro .cidade-skyline{opacity:.62}
main.container.tema-claro .local-edificio{box-shadow:0 10px 22px rgba(42,93,163,.14),inset 0 1px #fff}

/* --- K. Hierarquia de raio: shell 28 > hero 24 > seção 20 > item 16 > chip 12 --- */
main.container.tema-claro .card.acoes-missao,
main.container.tema-claro .card.quiz-rpg,
main.container.tema-claro .card.validacao-card,
main.container.tema-claro .card.card-neon,
main.container.tema-claro .card.recompensa-card,
main.container.tema-claro .card.comprovantes-card,
main.container.tema-claro .card.card-celebra,
main.container.tema-claro .card.missao-revisao-card,
main.container.tema-claro .origem-acoes,
main.container.tema-claro .origem-validacao,
main.container.tema-claro .origem-quiz,
main.container.tema-claro .origem-finalizar,
main.container.tema-claro .origem-conclusao,
main.container.tema-claro .bancaria-operacoes,
main.container.tema-claro .bancaria-criterios,
main.container.tema-claro .bancaria-registrato,
main.container.tema-claro .briefing-porta{border-radius:20px}
main.container.tema-claro .origem-progresso{border-radius:18px}
main.container.tema-claro .origem-acao,
main.container.tema-claro .bancaria-operacoes-grid article,
main.container.tema-claro .bancaria-criterios-grid article,
main.container.tema-claro .cert-historico-item,
main.container.tema-claro .mapa-fase,
main.container.tema-claro .ciclo-etapas li,
main.container.tema-claro .missao-modelo,
main.container.tema-claro .trilha-resumo > div,
main.container.tema-claro .quiz-pergunta-bloco,
main.container.tema-claro .op1-premios article,
main.container.tema-claro .acao-item.atual .acao-corpo,
main.container.tema-claro .por-que-card{border-radius:16px}
main.container.tema-claro .origem-checklist > div,
main.container.tema-claro .op1-convite-ciclo span{border-radius:14px}
main.container.tema-claro .mapa-num,
main.container.tema-claro .origem-acao-numero span,
main.container.tema-claro .bancaria-operacoes-grid article > span,
main.container.tema-claro .bancaria-criterios-grid article > span,
main.container.tema-claro .cert-historico-item .mapa-num,
main.container.tema-claro .avatar-mini{border-radius:12px}
main.container.tema-claro .badge-preview{border-radius:22px}

/* --- L. Ritmo vertical e escala de padding (5 valores -> 2) --- */
main.container.tema-claro .origem-acoes,
main.container.tema-claro .origem-validacao,
main.container.tema-claro .origem-quiz,
main.container.tema-claro .origem-finalizar,
main.container.tema-claro .origem-conclusao,
main.container.tema-claro .bancaria-operacoes,
main.container.tema-claro .bancaria-criterios,
main.container.tema-claro .bancaria-registrato,
main.container.tema-claro .op1-convite,
main.container.tema-claro .ciclo-rating,
main.container.tema-claro .mapa-missoes{margin:18px 0}
main.container.tema-claro .origem-progresso{margin:0 0 18px}
main.container.tema-claro .missao-hero{margin-bottom:18px}
main.container.tema-claro .rpg-mundo{margin:12px 0 18px}
main.container.tema-claro .origem-acoes,
main.container.tema-claro .origem-validacao,
main.container.tema-claro .origem-quiz,
main.container.tema-claro .origem-finalizar,
main.container.tema-claro .origem-conclusao{padding:clamp(20px,3.2vw,28px)}
main.container.tema-claro .cert-historico-item{padding:18px}
main.container.tema-claro .mapa-fase{padding:16px}

/* --- M. Missões 1 e 2 na mesma largura de farois/conclusão (fim da calha de 27px) --- */
main.container.tema-claro .op1-shell{max-width:none;width:100%;margin:0}

/* --- N. Tabela de comprovantes ganha a moldura do .tabela-responsiva --- */
main.container.tema-claro .tabela-scroll{border-radius:16px}
main.container.tema-claro .tabela-scroll .tabela th:first-child{border-top-left-radius:16px}
main.container.tema-claro .tabela-scroll .tabela th:last-child{border-top-right-radius:16px}

/* --- O. Partículas de comemoração: var(--verde-claro) inexistente deixava
   metade invisível. Estes dois nós são criados pelo JS em document.body,
   fora do main; o escopo é garantido por :has() no próprio container claro,
   de modo que a regra não alcança nenhuma tela de tema escuro. --- */
body:has(main.container.tema-claro) .conquista-particulas i:nth-child(2n){background:#57e2ff}
body:has(main.container.tema-claro) .chuva-xp i{background:#f7d877;box-shadow:0 0 12px rgba(247,216,119,.4)}
body:has(main.container.tema-claro) .chuva-xp i:nth-child(3n){background:#0867ff;box-shadow:0 0 12px rgba(8,103,255,.32)}
body:has(main.container.tema-claro) .chuva-xp i:nth-child(4n){background:#00c2ff;box-shadow:0 0 12px rgba(0,194,255,.32)}

/* --- P. Responsivo: o acabamento acompanha as quebras do Organizador --- */
@media (max-width:760px){
  main.container.tema-claro .origem-acoes,
  main.container.tema-claro .origem-validacao,
  main.container.tema-claro .origem-quiz,
  main.container.tema-claro .origem-finalizar,
  main.container.tema-claro .origem-conclusao{padding:20px 16px}
  main.container.tema-claro .cert-historico-item{padding:14px}
  main.container.tema-claro .card.acoes-missao,
  main.container.tema-claro .card.quiz-rpg,
  main.container.tema-claro .card.validacao-card,
  main.container.tema-claro .card.card-neon,
  main.container.tema-claro .card.card-celebra{border-radius:18px}
}
@media print{
  main.container.tema-claro .origem-acao,
  main.container.tema-claro .cert-historico-item,
  main.container.tema-claro .origem-progresso,
  main.container.tema-claro .bancaria-operacoes-grid article,
  main.container.tema-claro .bancaria-criterios-grid article,
  main.container.tema-claro .missao-modelo,
  main.container.tema-claro .trilha-resumo > div,
  main.container.tema-claro .tabela-scroll{box-shadow:none;background:#fff}
}

/* =========================================================
   VARREDURA FINAL DA PALETA ANTIGA (27/07/2026)
   Última passagem de conversão do verde-esmeralda/dourado de MARCA
   (tema escuro original) para a paleta azul IllumiCash.
   Bloco APENAS aditivo: nenhuma regra anterior do arquivo foi alterada.
   Escopos usados, sempre restritos ao app autenticado:
     body:has(main.container) ................. shell fora do <main>
     main.container:has(> .organizador-hub) ... 9 telas do Organizador Financeiro
     main.container.tema-claro ................ painel, jornada, organização, consultor, admin
   A landing (.lp-*, body.exodus-landing) e o login (body.tela-login) NÃO são
   alcançados por nenhum seletor deste bloco.
   Sem !important em nenhuma declaração (ver notas B0 e B6 para os dois casos
   em que a regra antiga usa !important e foi vencida por outro caminho).
   SEMÂNTICA DE ESTADO PRESERVADA (não é identidade de marca, não vira azul):
     valor positivo / receita / concluído .. #0e9f6e (tinta #0b6c4c, disco #12b981)
     despesa / atraso ...................... #d6403a
     atenção / previsto / fase-da-vez ...... #b07d10 · #8a6d1d · #c99414→#a06f0c
     régua de rating e moeda de nível ...... intocadas (cor vem do dado)
   ========================================================= */

/* ---------------------------------------------------------
   A. SHELL FORA DO <main> — vaza em TODAS as telas do app
   Causa-raiz do botão de ajuda: o override anterior mirava
   .ajuda-flutuante, classe inexistente; partials/ajuda.ejs usa .btn-ajuda.
   --------------------------------------------------------- */
body:has(main.container) .btn-ajuda{
  color:#fff;
  border:1px solid #48dfff;
  background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);
  box-shadow:0 12px 30px rgba(7,76,204,.34),0 0 0 5px rgba(9,113,255,.10);
}
body:has(main.container) .ajuda-overlay{background:rgba(7,23,55,.55);backdrop-filter:blur(4px)}
body:has(main.container) .ajuda-modal{
  color:#071737;
  border:1px solid rgba(83,150,255,.34);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(237,245,255,.96));
  box-shadow:0 28px 80px rgba(0,50,150,.28),inset 0 1px #fff;
}
body:has(main.container) .ajuda-modal h2{color:#071737}
body:has(main.container) .ajuda-modal .lista-guia{color:#071737}
body:has(main.container) .ajuda-modal .lista-guia strong{color:#0a56cf}
body:has(main.container) .ajuda-modal .btn-ghost{color:#135db7;border-color:rgba(34,118,230,.26);background:rgba(255,255,255,.68)}
body:has(main.container) .ajuda-modal .btn-ghost:hover{color:#064dc1;border-color:#2aa9ff;background:#fff;box-shadow:0 0 10px rgba(8,103,255,.18)}
/* balão de dica dos campos (senha, organização) */
body:has(main.container) .tooltip-dica{
  color:#071737;
  border:1px solid rgba(8,103,255,.32);
  background:#fff;
  box-shadow:0 10px 24px rgba(42,93,163,.18);
}
/* sublinhado tracejado do nome do usuário na topbar */
body:has(main.container) .link-senha{border-bottom-color:rgba(120,180,255,.42)}
body:has(main.container) .link-senha:hover{color:#48dfff;border-color:#48dfff}

/* ---------------------------------------------------------
   B. ORGANIZADOR FINANCEIRO — telas com a barra lateral
   (lançamentos, custos fixos, alertas, cadastros, programações,
    histórico, relatório consolidado, perfil, telegram)
   --------------------------------------------------------- */

/* B0. .nav-mes-atual declara color:#42d995!important com hex literal.
   !important é proibido aqui, então a conversão usa -webkit-text-fill-color,
   que pinta o glifo por cima do color computado sem disputar a cascata
   da propriedade `color`. Suportado em Chrome/Edge/Safari/Firefox. */
main.container:has(> .organizador-hub) .nav-mes-atual{-webkit-text-fill-color:#0867ff}

/* B1. Chips de filtro (Todos/Entradas/Saídas · Todos/Custos/Receitas) */
main.container:has(> .organizador-hub) .chips-filtro a{
  color:#135db7;border-color:rgba(77,141,229,.28);background:rgba(255,255,255,.68);
}
main.container:has(> .organizador-hub) .chips-filtro a:hover{
  color:#064dc1;border-color:#25b7ff;box-shadow:0 0 8px rgba(0,124,255,.22);
}
main.container:has(> .organizador-hub) .chips-filtro a.ativa{
  color:#fff;border-color:#48dfff;
  background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);
  box-shadow:0 9px 22px rgba(7,76,204,.24);
}

/* B2. Chip .tag (categoria, "Fixa mensal", "N registro(s)", "Personalizáveis") */
main.container:has(> .organizador-hub) .tag{
  color:#28497c;border-color:rgba(57,124,218,.32);background:rgba(233,242,255,.85);
}
/* modificadores de estado voltam a se distinguir do chip neutro */
main.container:has(> .organizador-hub) .tag.tag-verde{color:#0b6c4c;border-color:rgba(14,159,110,.4);background:rgba(14,159,110,.12)}
main.container:has(> .organizador-hub) .tag.tag-info{color:#1f6f8f;border-color:rgba(92,169,201,.55);background:rgba(92,169,201,.12)}
main.container:has(> .organizador-hub) .tag.tag-prevista{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.3)}
main.container:has(> .organizador-hub) .tag.st-amarelo-bg{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.28)}
main.container:has(> .organizador-hub) .tag.st-vermelho-bg{color:#9c221d;border-color:rgba(214,64,58,.4);background:rgba(214,64,58,.12)}
/* selos da coluna Status (Custo fixo, Alertas): #2ebd6b saía da paleta antiga */
main.container:has(> .organizador-hub) .tag.fin-antecipado,
main.container:has(> .organizador-hub) .tag.fin-pago{color:#fff;border-color:transparent;background:#0e9f6e}
main.container:has(> .organizador-hub) .tag.fin-pago_atraso,
main.container:has(> .organizador-hub) .tag.fin-vence_breve{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.35)}
main.container:has(> .organizador-hub) .tag.fin-atrasado{color:#fff;border-color:transparent;background:#d6403a}
main.container:has(> .organizador-hub) .tag.fin-pendente{color:#28497c}

/* B3. Cartões de aviso preservam a cor de estado sob o override genérico de .card */
main.container:has(> .organizador-hub) .card.card-atencao{border-color:rgba(176,125,16,.5);background:linear-gradient(145deg,#fff8e3,#ffffff 72%)}
main.container:has(> .organizador-hub) .card.card-sucesso{border-color:rgba(14,159,110,.45);background:linear-gradient(145deg,#e9fbf3,#ffffff 72%)}

/* B4. Halo do .btn-ghost (Editar/Excluir/Desfazer/Cancelar/✕) */
main.container:has(> .organizador-hub) .btn-ghost:hover{box-shadow:0 0 10px rgba(8,103,255,.18)}

/* B5. Modal Novo lançamento: campo Valor, botões de opção e painéis */
main.container:has(> .organizador-hub) .campo-valor{border-color:rgba(57,124,218,.32);background:#fff}
main.container:has(> .organizador-hub) .campo-valor span{color:#4a6285;border-color:rgba(57,124,218,.28);background:#eaf1fc}
main.container:has(> .organizador-hub) .campo-valor:focus-within{border-color:#1688ff}
main.container:has(> .organizador-hub) .lancamento-opcoes button{
  color:#135db7;border-color:rgba(57,124,218,.28);background:#fff;
}
main.container:has(> .organizador-hub) .lancamento-opcoes button span{color:#0875ff}
main.container:has(> .organizador-hub) .lancamento-opcoes button:hover,
main.container:has(> .organizador-hub) .lancamento-opcoes button.ativo{
  color:#0a56cf;border-color:#1688ff;background:rgba(8,103,255,.08);
}
main.container:has(> .organizador-hub) .opcao-financeira{
  border-color:rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
}
main.container:has(> .organizador-hub) .resumo-repeticao{
  color:#071737;border-left-color:#0867ff;background:rgba(8,103,255,.06);
}
main.container:has(> .organizador-hub) .agenda-data-preview{color:#0867ff}
main.container:has(> .organizador-hub) .agenda-data-preview.erro{color:#d6403a}
/* anel do botão "+ Receita" marcado acompanha o fundo verde semântico já aplicado */
body:has(main.container) .toggle-tipo label.t-entrada:has(input:checked){border-color:#0e9f6e}
/* mesmo tratamento no lado "Saída": a regra antiga (.toggle-tipo .t-saida:has(input:checked))
   ainda impunha o salmão #ff7773 em volta do preenchimento #d6403a já convertido */
body:has(main.container) .toggle-tipo label.t-saida:has(input:checked){border-color:#d6403a}

/* B6. "Débito automático": a regra base usa color:var(--texto)!important.
   Sem poder usar !important, redeclaramos a própria variável no elemento
   (a substituição de var() acontece depois da cascata) e reforçamos o glifo. */
main.container:has(> .organizador-hub) label.check{--texto:#071737;-webkit-text-fill-color:#071737}
main.container:has(> .organizador-hub) label.check input{accent-color:#0867ff}

/* B7. Realce da linha recém-criada (verde -> azul); keyframes com nome próprio */
main.container:has(> .organizador-hub) .lancamento-destacado{
  outline-color:rgba(8,103,255,.5);
  animation-name:lancamentoConfirmadoCash;
}
@keyframes lancamentoConfirmadoCash{
  from{background:rgba(8,103,255,.14)}
  to{background:rgba(237,245,255,0)}
}

/* B8. Cards de pulso do mês: rótulos e semântica dos valores */
main.container:has(> .organizador-hub) .finance-pulse span{color:var(--cash-muted)}
main.container:has(> .organizador-hub) .finance-pulse strong.verde{color:#0e9f6e}
main.container:has(> .organizador-hub) .finance-pulse strong.texto-vermelho{color:#d6403a}

/* B9. Referências mortas a var(--verde-claro) (variável nunca definida no :root) */
main.container:has(> .organizador-hub) .telegram-atalho{color:#0867ff}
main.container:has(> .organizador-hub) .empty-finance > span{color:#0867ff}
main.container:has(> .organizador-hub) .organizador-vazio > span{color:#0867ff}

/* B10. Selos de status e faixa de sucesso */
main.container:has(> .organizador-hub) .status-fin.confirmado{
  color:#0b6c4c;border-color:rgba(14,159,110,.4);background:rgba(14,159,110,.1);
}
main.container:has(> .organizador-hub) .status-fin.aguardando{
  color:#8a6d1d;border-color:rgba(176,125,16,.42);background:rgba(247,216,119,.22);
}
main.container:has(> .organizador-hub) .toast-inline.sucesso{
  color:#0b6c4c;border-color:rgba(14,159,110,.4);background:rgba(14,159,110,.1);
}

/* B11. Programações: bloco "Agenda cadastrada" e chips de data */
main.container:has(> .organizador-hub) .serie-agenda{border-color:rgba(77,141,229,.28);background:rgba(237,245,255,.7)}
main.container:has(> .organizador-hub) .serie-agenda > strong{color:#2564b3}
main.container:has(> .organizador-hub) .serie-agenda a{color:#071737;border-color:rgba(77,141,229,.28);background:rgba(237,245,255,.9)}
main.container:has(> .organizador-hub) .serie-agenda a:hover{border-color:#2aa9ff}

/* B12. Filetes e molduras herdados de var(--borda) */
main.container:has(> .organizador-hub) .cadastro-item{
  border-color:rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
}
main.container:has(> .organizador-hub) .fixa-detalhes span{border-color:rgba(77,141,229,.28)}
main.container:has(> .organizador-hub) .fixa-card-prime .fixa-acoes{border-top-color:rgba(77,141,229,.22)}
main.container:has(> .organizador-hub) .alerta-acoes{border-top-color:rgba(77,141,229,.22)}
main.container:has(> .organizador-hub) .perfil-prime-intro{border-bottom-color:rgba(77,141,229,.28)}

/* B13. Relatório consolidado: barras, trilhos e grade de custos fixos */
main.container:has(> .organizador-hub) .relatorio-barras i{background:#dbe7fb}
main.container:has(> .organizador-hub) .relatorio-barras em{background:linear-gradient(90deg,#0867ff,#00c2ff)}
main.container:has(> .organizador-hub) .relatorio-barras small{color:var(--cash-muted)}
main.container:has(> .organizador-hub) .relatorio-fixos-grid > div{border-color:rgba(77,141,229,.28)}
main.container:has(> .organizador-hub) .relatorio-fixos-grid small{color:var(--cash-muted)}

/* B14. Histórico mensal: pílula RECEITA e tarja da linha de entrada
   (verde de valor positivo — estado, não marca) */
main.container:has(> .organizador-hub) .movimento-tipo.entrada{color:#0b6c4c;background:rgba(14,159,110,.12)}
main.container:has(> .organizador-hub) .tabela-historico tr.linha-entrada td:first-child{border-left-color:#0e9f6e}
/* par SAÍDA: ficara no salmão #ff7773 do tema escuro — 2,6:1 sobre a tabela clara.
   Volta ao vermelho de despesa oficial, na mesma leitura tinta-sobre-tinta da entrada. */
main.container:has(> .organizador-hub) .movimento-tipo.saida{color:#9c221d;background:rgba(214,64,58,.12)}
main.container:has(> .organizador-hub) .tabela-historico tr.linha-saida td:first-child{border-left-color:#d6403a}

/* B15. Tela do Telegram: orbe, passos, código de vínculo e semáforos */
main.container:has(> .organizador-hub) .telegram-orbe{
  background:linear-gradient(145deg,#0f8cff,#043ecf);
  box-shadow:0 0 55px rgba(0,116,255,.28);
}
main.container:has(> .organizador-hub) .telegram-orbe i{border-color:rgba(0,217,255,.45)}
main.container:has(> .organizador-hub) .telegram-passos b{color:#fff;background:linear-gradient(145deg,#0f8cff,#043ecf)}
main.container:has(> .organizador-hub) .telegram-conectado{border-color:rgba(77,141,229,.28)}
main.container:has(> .organizador-hub) .telegram-conectado > span{color:#fff;background:linear-gradient(145deg,#0f8cff,#043ecf)}
main.container:has(> .organizador-hub) .codigo-vinculo strong{color:#0a56cf}
main.container:has(> .organizador-hub) .codigo-vinculo code{color:#0a56cf;background:#edf5ff}
/* .integracao-aviso segue dourado de propósito: marca atenção pendente (estado) */
main.container:has(> .organizador-hub) .codigo-vinculo,
main.container:has(> .organizador-hub) .seguranca-telegram{
  border-color:rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
}
main.container:has(> .organizador-hub) .status-servicos > div{border-color:rgba(77,141,229,.28)}
main.container:has(> .organizador-hub) .status-servicos > div > span.ok{background:#0e9f6e;box-shadow:0 0 10px rgba(14,159,110,.45)}
main.container:has(> .organizador-hub) .preferencias-alerta{border-color:rgba(77,141,229,.28)}
main.container:has(> .organizador-hub) .preferencias-alerta legend{color:#071737}

/* ---------------------------------------------------------
   C. VISÃO GERAL DO ORGANIZADOR (financeiro.ejs)
   O .organizador-hub fica dentro do .illumi-rail: esta tela não é
   alcançada por main.container:has(> .organizador-hub) nem por .tema-claro.
   --------------------------------------------------------- */
body:has(main.container) .telegram-prime-banner:hover{border-color:#25b7ff}
/* KPI de receita alinhado ao verde oficial de valor positivo */
body:has(main.container) .illumi-dashboard .organizador-kpi.receita{border-color:rgba(14,159,110,.45)}
body:has(main.container) .illumi-dashboard .organizador-kpi.receita .kpi-icone{
  border-color:#6ee7c0;
  background:linear-gradient(145deg,#12b981,#0b7a5c);
  box-shadow:0 0 0 5px rgba(14,159,110,.09),0 0 22px rgba(14,159,110,.34);
}
body:has(main.container) .illumi-dashboard .organizador-kpi.receita strong{color:#0e9f6e}
/* faixa "✓ Configuração concluída": verde de sucesso oficial */
body:has(main.container) .illumi-dashboard .organizador-aviso{
  color:#0b6c4c;border-color:rgba(14,159,110,.45);
  background:linear-gradient(145deg,#e9fbf3,#ffffff 72%);
}
/* Saldo atual volta a ler positivo/negativo (o strong genérico vencia .verde) */
body:has(main.container) .illumi-dashboard .organizador-kpi strong.verde{color:#0e9f6e}
body:has(main.container) .illumi-dashboard .organizador-kpi strong.texto-vermelho{color:#d6403a}

/* ---------------------------------------------------------
   D. TELAS COM main.container.tema-claro
   (painel, lembretes, jornada, guia, senha, organização,
    carteira, cliente, novo, admin)
   --------------------------------------------------------- */

/* D1. Organização financeira: régua dos 5 passos */
main.container.tema-claro .passo{
  color:var(--cash-muted);border-color:rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
}
main.container.tema-claro .passo-num{color:var(--cash-ink);background:#eaf2ff}
main.container.tema-claro .passo.atual{color:#0a56cf;border-color:rgba(8,103,255,.45);box-shadow:0 0 0 3px rgba(8,103,255,.14)}
main.container.tema-claro .passo.atual .passo-num{color:#fff;background:linear-gradient(135deg,#087eff,#0443dc)}
/* passo concluído = estado: permanece verde, agora no verde oficial */
main.container.tema-claro .passo.feito{color:#0b6c4c;border-color:rgba(14,159,110,.42)}
main.container.tema-claro .passo.feito .passo-num{color:#fff;background:#12b981}
main.container.tema-claro a.passo.feito:hover{background:linear-gradient(145deg,#fff,rgba(226,250,240,.92))}
/* campo "R$ ____" do passo 1 */
main.container.tema-claro .campo-valor{border-color:rgba(57,124,218,.3);background:#fff}
main.container.tema-claro .campo-valor span{color:var(--cash-muted);border-color:rgba(57,124,218,.3);background:#eaf2ff}
main.container.tema-claro .campo-valor:focus-within{border-color:#1688ff}

/* D2. Painel do cliente */
main.container.tema-claro .barra-fill{background:linear-gradient(90deg,#0867ff,#00c2ff)}
main.container.tema-claro .modulo-stat{color:var(--cash-muted)}
main.container.tema-claro .modulo-card:hover{box-shadow:0 18px 40px rgba(42,93,163,.18)}
main.container.tema-claro a.farol-item:hover{box-shadow:0 10px 22px rgba(42,93,163,.16)}
/* ícones das 7 fases: concluída = verde de estado, da vez = âmbar de estado */
main.container.tema-claro .icone-fase{border-color:rgba(98,120,149,.3)}
main.container.tema-claro .icone-fase.ic-verde{color:#0e9f6e;border-color:rgba(14,159,110,.45);background:rgba(14,159,110,.1)}
main.container.tema-claro .icone-fase.ic-vez{color:#fff;border-color:transparent;background:linear-gradient(135deg,#c99414,#a06f0c)}
main.container.tema-claro .icone-fase.ic-bloq{border-color:rgba(98,120,149,.3)}
main.container.tema-claro .st-verde{background:#12b981;box-shadow:0 0 0 2px rgba(14,159,110,.18)}
/* o halo pulsante acompanha o âmbar da fase da vez (keyframes com nome próprio) */
main.container.tema-claro .pulsa{animation-name:pulso-cash-ambar}
@keyframes pulso-cash-ambar{
  0%,100%{box-shadow:0 0 6px rgba(176,125,16,.12)}
  50%{box-shadow:0 0 20px rgba(176,125,16,.30)}
}

/* D3. Jornada: halo do card da fase atual */
main.container.tema-claro .fase-card.fase-atual{box-shadow:0 0 0 3px rgba(14,159,110,.16),0 15px 36px rgba(42,93,163,.12)}

/* D4. Carteira / cliente / novo / admin: escada, filtros e escolha de ambiente */
main.container.tema-claro .hbar-trilho{background:#dbe7fb;box-shadow:inset 0 1px 3px rgba(33,75,133,.09)}
main.container.tema-claro .hbar-fill{background:linear-gradient(90deg,#0867ff,#00c2ff)}
main.container.tema-claro .ambiente-filtros a{color:#135db7;border-color:rgba(34,118,230,.26);background:rgba(255,255,255,.68)}
main.container.tema-claro .ambiente-filtros a b{color:var(--cash-ink)}
main.container.tema-claro .ambiente-filtros a.ativo{
  color:#fff;border-color:#48dfff;
  background:linear-gradient(135deg,#087eff,#0443dc 67%,#5d28eb);
}
main.container.tema-claro .ambiente-filtros a.ativo b{color:#fff}
main.container.tema-claro .ambiente-selo-real{color:#135db7;border-color:rgba(34,118,230,.4);background:#e3edff}
main.container.tema-claro .ambiente-escolha legend{color:var(--cash-muted)}
main.container.tema-claro .ambiente-escolha span{
  border-color:rgba(77,141,229,.28);
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,245,255,.93));
}
main.container.tema-claro .ambiente-escolha b{color:var(--cash-ink)}
main.container.tema-claro .ambiente-escolha input:checked + span{
  border-color:#1688ff;background:rgba(8,103,255,.1);box-shadow:0 0 0 3px rgba(8,103,255,.1);
}
main.container.tema-claro .ambiente-escolha input:focus-visible + span{outline:2px solid #0867ff;outline-offset:2px}

/* D5. Coluna Status do cliente e tag "Marco": o override genérico de .tag
   apagava os modificadores de 1 classe. Restauração da leitura de estado. */
main.container.tema-claro .tag.tag-info{color:#1f6f8f;border-color:rgba(92,169,201,.55);background:rgba(92,169,201,.12)}
/* chip "Previsto" do painel: .tag-prevista tem 1 classe e perdia para o override
   genérico de .tag — o âmbar de atenção sumia. Mesmo valor usado no Organizador. */
main.container.tema-claro .tag.tag-prevista{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.3)}
main.container.tema-claro .tag.fin-antecipado,
main.container.tema-claro .tag.fin-pago{color:#fff;border-color:transparent;background:#0e9f6e}
main.container.tema-claro .tag.fin-pago_atraso,
main.container.tema-claro .tag.fin-vence_breve{color:#7c5a08;border-color:rgba(176,125,16,.45);background:rgba(247,216,119,.35)}
main.container.tema-claro .tag.fin-atrasado{color:#fff;border-color:transparent;background:#d6403a}
main.container.tema-claro .tag.fin-pendente{color:#28497c}

/* ============================================================
   VALORES NUNCA CORTADOS (pedido do dono do produto, 27/07)
   Regra: numero de dinheiro encolhe a fonte antes de estourar;
   nada flutua por cima de valor; proibido ellipsis em moeda.
   ============================================================ */
/* 1) Lançamentos: a coluna de ações deixa de flutuar sobre o valor na rolagem */
main.container:has(> .organizador-hub) .tabela-responsiva .tabela th:last-child,
main.container:has(> .organizador-hub) .tabela-responsiva .tabela td:last-child{position:static;box-shadow:none}
/* 2) Coluna de valor inteira, sem quebra de linha */
.tabela-lancamentos td:nth-last-child(2){white-space:nowrap}
.tabela-lancamentos td:nth-last-child(2) strong{white-space:nowrap}
/* 3) Cards Entradas/Saídas/Saldo/Saldo previsto: fonte se ajusta ao espaço */
.finance-pulse{min-width:0}
.finance-pulse strong{font-size:clamp(16px,1.9vw,26px);white-space:nowrap;letter-spacing:-.02em}
/* 4) KPIs da visão geral: sem reticências em dinheiro; fonte menor cabe inteira */
.illumi-dashboard .organizador-kpi strong{text-overflow:clip;font-size:clamp(15px,1.6vw,22px)}
@media (max-width: 900px){ .illumi-dashboard .organizador-kpi strong{font-size:24px} }

/* ============================================================
   MAPA DA JORNADA COMPACTO (pedido do dono, 27/07)
   As 7 fases em uma única linha; o cenário encolhe para o
   conteúdo e o horizonte decorativo deixa de criar vazio.
   ============================================================ */
.cidade-rota{grid-template-columns:repeat(7,1fr);gap:18px 14px}
/* No celular o mapa cabe inteiro na tela: sem rolagem lateral e sem a moeda
   dominando a página (reclamação do Moisés, 27/07 22h21). */
@media (max-width:760px){
  .cidade-rota{min-width:0;gap:8px 3px;padding-top:10px}
  .cidade-rota::before{left:9%;right:9%;top:30px}
  .cidade-local{min-height:0;min-width:0}
  .cidade-local > a,.cidade-local > div{gap:4px}
  .local-texto{min-width:0}
  .local-texto small{font-size:6.5px;letter-spacing:0}
  .local-texto strong{font-size:7.5px;line-height:1.15;margin:1px 0;overflow-wrap:anywhere}
  .local-texto em{display:none}
  .cidade-cenario{padding:14px 6px 20px}
  .cidade-skyline{height:70px}
}
.cidade-rota::before{top:56px;height:0;border:none;border-top:3px dashed rgba(111,187,150,.18);border-radius:0}
.cidade-cenario{min-height:0;padding-bottom:26px}
.cidade-skyline{height:110px}
main.container.tema-claro .cidade-rota::before{border-top-color:rgba(77,141,229,.3)}

/* ============================================================
   CUSTO FIXO EM CARDS ESTILO KANBAN (referência visual do dono,
   27/07): valor grande, selo de status forte, botão de ação largo.
   ============================================================ */
main.container:has(> .organizador-hub) .fixa-grid-prime{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
main.container:has(> .organizador-hub) .fixa-card-prime{display:flex;flex-direction:column;gap:7px;padding:22px 22px 18px;border:1px solid rgba(8,103,255,.16);border-radius:20px;background:#fff;box-shadow:0 14px 30px rgba(33,75,133,.10)}
main.container:has(> .organizador-hub) .fixa-card-cabecalho{display:flex;justify-content:space-between;align-items:center}
main.container:has(> .organizador-hub) .fixa-card-prime .fixa-icone{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;font-weight:900;font-size:15px}
main.container:has(> .organizador-hub) .fixa-card-prime.saida .fixa-icone{color:#d6403a;background:rgba(214,64,58,.12)}
main.container:has(> .organizador-hub) .fixa-card-prime.entrada .fixa-icone{color:#0e9f6e;background:rgba(14,159,110,.12)}
main.container:has(> .organizador-hub) .fixa-card-prime h2{margin:2px 0 0;font-size:19px;color:var(--cash-ink)}
main.container:has(> .organizador-hub) .fixa-vence{color:var(--cash-muted);font-size:13px}
main.container:has(> .organizador-hub) .fixa-vence b{color:var(--cash-ink)}
main.container:has(> .organizador-hub) .fixa-valor-linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 2px}
main.container:has(> .organizador-hub) .fixa-card-prime .fixa-valor{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}
main.container:has(> .organizador-hub) .fixa-valor-linha .tag{border-radius:999px;padding:5px 13px;font-weight:800;font-size:11px}
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-pago,
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-antecipado,
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-recebido{background:#0e9f6e;color:#fff;border-color:transparent}
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-atrasado{background:#d6403a;color:#fff;border-color:transparent}
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-vence_breve,
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-pago_atraso{background:rgba(176,125,16,.16);color:#7c5a08;border-color:rgba(176,125,16,.4)}
main.container:has(> .organizador-hub) .fixa-valor-linha .tag.fin-pendente{background:#eef4ff;color:#28497c;border-color:rgba(8,103,255,.25)}
main.container:has(> .organizador-hub) .fixa-acoes{display:flex;gap:8px;align-items:stretch;margin-top:8px}
main.container:has(> .organizador-hub) .fixa-acao-principal{flex:1;display:flex}
main.container:has(> .organizador-hub) .fixa-acao-principal .btn{width:100%}

/* ============================================================
   AÇÃO DE MISSÃO COM CHECKLIST AGRUPADO (texto estruturado do
   dono, 27/07 — usado no Dossiê da Missão 03 e reutilizável)
   ============================================================ */
.acao-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px;margin:10px 0 4px}
.acao-grupo strong{display:block;margin-bottom:5px;font-size:12px;letter-spacing:.3px}
.acao-grupo ul{margin:0;padding:0;list-style:none}
.acao-grupo li{position:relative;padding:2px 0 2px 20px;font-size:12.5px;line-height:1.45}
.acao-grupo li::before{content:'☐';position:absolute;left:2px;top:2px;opacity:.55}
.acao-atencao{margin-top:10px;padding:10px 13px;border:1px solid rgba(176,125,16,.4);border-radius:12px;background:rgba(247,216,119,.14);font-size:12.5px}
main.container.tema-claro .acao-atencao{color:#7c5a08;background:rgba(247,216,119,.3)}

/* No celular a marca colapsava dentro da faixa rolável do Organizador e o texto
   ILLUMICASH caía por cima do primeiro atalho (print do dono, 27/07). Ela é
   redundante ali — a marca já está no cabeçalho do app. Precisa vir depois das
   regras de .organizador-marca do bloco premium para prevalecer. */
@media (max-width:640px) {
  .organizador-hub > .organizador-marca { display:none; }
}

/* ============================================================
   MARCA OFICIAL ILLUMICASH (logo do dono, 27/07): lâmpada com R$
   ao lado do nome, no cabeçalho de todas as telas.
   ============================================================ */
.brand { display:flex; align-items:center; gap:9px; }
.brand-lampada { width:34px; height:34px; object-fit:contain; flex:0 0 auto;
  filter: drop-shadow(0 0 7px rgba(0,180,255,.5)); }
.brand-texto { display:block; }
@media (max-width:860px) {
  .brand-lampada { width:29px; height:29px; }
}
@media (max-width:420px) {
  .brand-texto > span { display:none; } /* só o nome no celular estreito */
}
/* ============================================================
   PLACA DE RECONHECIMENTO no lugar da medalha (pedido do dono,
   27/07): "aquelas placas que dão no lugar de medalha, com título".
   Metal escovado, borda dourada e o título gravado.
   ============================================================ */
/* O !important aqui é intencional: as regras do tema claro pintam os "aside"
   das missões de âmbar com especificidade maior, e a placa precisa manter o
   metal escuro nos dois temas — é o contraste que a faz parecer uma placa. */
.placa-recompensa{position:relative;border-radius:14px;padding:20px 18px 18px;text-align:center;
  border:2px solid #c9a227 !important;
  background:linear-gradient(160deg,#1a1f2b 0%,#2a3242 30%,#1e2532 55%,#2b3444 78%,#1a1f2b 100%) !important;
  box-shadow:0 14px 32px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.13), inset 0 0 0 5px rgba(201,162,39,.16) !important}
main.container .placa-recompensa .placa-topo{display:block;margin-bottom:9px;padding-bottom:8px;color:#e8c766;
  font-size:8.5px;font-weight:900;letter-spacing:2.4px;border-bottom:1px solid rgba(201,162,39,.4)}
main.container .placa-recompensa strong{display:block;margin-bottom:6px;color:#fff !important;font-size:17px;font-weight:800;
  line-height:1.25;letter-spacing:.4px;text-shadow:0 1px 2px rgba(0,0,0,.55)}
main.container .placa-recompensa small{display:block;margin-bottom:12px;color:#c3cede !important;font-size:11px}
main.container .placa-recompensa b{display:block;margin-top:9px;color:#e8c766;font-size:11px;font-weight:800}
.placa-recompensa .barra{background:rgba(255,255,255,.12)}
.placa-recompensa .barra-fill{background:linear-gradient(90deg,#c9a227,#f0d97a)}
/* miniatura da placa na prévia da recompensa */
.placa-preview .placa-mini{display:grid;place-items:center;width:100%;height:100%;
  border:2px solid #c9a227;border-radius:10px;color:#e8c766;font-size:19px;font-weight:900;
  background:linear-gradient(160deg,#1e2532,#2b3444);box-shadow:inset 0 0 0 3px rgba(201,162,39,.18)}
/* no tema claro a placa mantém o metal escuro: é o contraste que a faz parecer placa */
main.container.tema-claro .placa-recompensa strong{color:#fff}

/* Tela de entrada: o logo completo, que já traz o nome. */
.login-logo { display:block; width:min(240px, 68%); height:auto; margin:0 auto 6px; }
body.tela-login .login-brand { font-size:0; }
body.tela-login .login-brand span { font-size:10px; letter-spacing:6px; }

/* ============================================================
   MISSÃO 01: numeração no quadrado com BORDA AZUL NEON no lugar
   dos ícones (pedido do dono, 27/07)
   ============================================================ */
.origem-acao-numero span{font-size:18px;font-weight:900;letter-spacing:.5px;border:2px solid #0867ff;box-shadow:0 0 0 3px rgba(8,103,255,.14),0 0 14px rgba(0,217,255,.5)}

/* ============================================================
   MISSÃO ATIVA EM AZUL NEON no lugar do âmbar (dono, 27/07):
   lista da campanha, mapa da cidade e ícone "fase da vez".
   ============================================================ */
main.container.tema-claro .mapa-fase.amarelo{border-color:#0867ff;box-shadow:0 0 0 3px rgba(0,217,255,.16),0 0 14px rgba(0,217,255,.35)}
main.container.tema-claro .mapa-fase.amarelo .mapa-num{color:#fff;background:linear-gradient(135deg,#0867ff,#0847b8)}
main.container.tema-claro .mapa-fase.amarelo::after{background:linear-gradient(110deg,transparent 42%,rgba(8,103,255,.12) 49%,transparent 56%)}
main.container.tema-claro .cidade-local.amarelo .local-edificio{border-color:#0867ff;background:linear-gradient(145deg,#ffffff,#e3f0ff);box-shadow:0 0 0 7px rgba(8,103,255,.09),0 0 30px rgba(0,217,255,.35)}
main.container.tema-claro .cidade-local.amarelo .local-edificio > b{color:#fff;background:#0867ff}
main.container.tema-claro .cidade-local.amarelo .local-texto strong{color:#0847b8}
main.container.tema-claro .cidade-local.amarelo .local-texto em{color:#0867ff}
main.container.tema-claro .cidade-local.amarelo a:hover .local-edificio,
main.container.tema-claro .cidade-local.amarelo a:focus-visible .local-edificio{box-shadow:0 16px 34px rgba(8,103,255,.25)}
main.container.tema-claro .icone-fase.ic-vez{color:#fff;border-color:transparent;background:linear-gradient(135deg,#0867ff,#0847b8)}
main.container.tema-claro .origem-acao-numero span{color:#0867ff;background:#fff;border:2px solid #0867ff;box-shadow:0 0 0 3px rgba(0,217,255,.18),0 0 14px rgba(0,217,255,.45)}
main.container.tema-claro .origem-acao.concluida .origem-acao-numero span{color:#0e9f6e;border:2px solid #0e9f6e;box-shadow:0 0 0 3px rgba(14,159,110,.15),0 0 10px rgba(14,159,110,.3)}

/* Organizador em largura total no desktop (pedido do Moisés 29/07): as telas do
   módulo financeiro esticam até as margens laterais; as demais seguem em 1150px. */
@media (min-width: 1200px) {
  main.container.container-larga { max-width: none; }
}

/* ===== Bateria Moises 29/07 - mapa, moedas, cards (frag-mapa) ===== */
/* =====================================================================
   FRAGMENTO CSS — Trilha / Jornada Rating Pro (views/cliente/farois.ejs)
   Ajustes pedidos pelo dono do produto (Moisés), 29/07/2026.
   Regra da casa: todo CSS novo fica só aqui. Nada de !important, exceto
   onde marcado como inevitável. Cada seletor foi calculado para vencer
   as regras equivalentes já existentes em style.css (arquivo NÃO tocado)
   por especificidade, sem depender da ordem de carregamento dos <link>.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1) MOEDAS EM ALTO RELEVO 3D
   As artes de public/images/placas/fase-01..07.webp agora têm
   transparência real (círculo recortado). Trocamos o border-radius:50%
   + box-shadow retangular por filter:drop-shadow em camadas — a sombra
   passa a seguir o contorno real da moeda (silhueta), o que dá a
   sensação de alto relevo/3D pedida, em vez de uma sombra de caixa.
   A distinção bloqueada/liberada continua vindo de .cidade-local.vermelho
   (opacidade reduzida no <li> do mapa), regra existente em style.css que
   não foi tocada — o filter novo só se aplica "dentro" dela.
   --------------------------------------------------------------------- */
.moeda-fase {
  display: block;
  border-radius: 0;
  box-shadow: none;
  /* sombra de contato (curta e mais escura) + sombra ambiente (longa e suave) */
  filter:
    drop-shadow(0 1px 0 rgba(255, 255, 255, .45))
    drop-shadow(0 10px 16px rgba(7, 23, 55, .30))
    drop-shadow(0 3px 6px rgba(7, 23, 55, .38));
  transition: filter .25s ease, transform .25s ease;
}

.moeda-fase:hover {
  transform: scale(1.05);
  filter:
    drop-shadow(0 1px 0 rgba(255, 255, 255, .5))
    drop-shadow(0 16px 24px rgba(7, 23, 55, .36))
    drop-shadow(0 5px 10px rgba(7, 23, 55, .46));
}

/* Moeda da missão ativa no mapa da jornada: mantém o realce azul que
   antes vinha de um box-shadow em anel, agora seguindo o contorno real
   da moeda. */
.moeda-fase--ativa {
  filter:
    drop-shadow(0 0 5px rgba(8, 103, 255, .55))
    drop-shadow(0 10px 18px rgba(8, 103, 255, .32))
    drop-shadow(0 3px 6px rgba(7, 23, 55, .32));
}
.moeda-fase--ativa:hover {
  filter:
    drop-shadow(0 0 8px rgba(8, 103, 255, .65))
    drop-shadow(0 16px 24px rgba(8, 103, 255, .4))
    drop-shadow(0 5px 10px rgba(7, 23, 55, .4));
}

/* Tamanhos por local de uso — antes eram estilos inline por tag em farois.ejs */
.moeda-fase--mapa { width: 100%; height: 100%; }
.moeda-fase--destaque { display: block; width: 100%; max-width: 230px; height: auto; margin: 0 auto; }
.moeda-fase--final { width: 150px; height: 150px; margin: 0 auto; }
.moeda-fase--painel { width: 150px; height: 150px; margin: 14px auto 10px; }

@media (prefers-reduced-motion: reduce) {
  .moeda-fase { transition: none; }
  .moeda-fase:hover { transform: none; }
}

/* ---------------------------------------------------------------------
   2) e 3) SEM SOL DOURADO / SEM "GRÁFICO" AZUL DECORATIVO
   Os elementos .cidade-lua (sol) e .cidade-skyline (barras em degrau)
   foram removidos diretamente do HTML em farois.ejs (pedido do dono,
   29/07) — não sobrou elemento para estilizar. As regras antigas
   continuam existindo em style.css (arquivo fora do meu escopo), mas
   ficam sem efeito porque não há mais .cidade-lua/.cidade-skyline no DOM.
   --------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
   4) MENOS VAZIO ABAIXO DA FILEIRA DE MOEDAS NO MAPA
   Reforço defensivo de altura: garante que o cenário do mapa não fique
   com sobra de altura fixa. (Ver "duvidas" — o vão observado no print
   parece maior que a altura desta seção e pode ter outra causa, fora do
   escopo deste arquivo.)
   --------------------------------------------------------------------- */
.rpg-mundo .cidade-cenario {
  min-height: 0;
  padding-bottom: 18px;
}

/* ---------------------------------------------------------------------
   5) HOVER UNIFORME NOS CARDS DE MISSÃO DO MAPA (seção .mapa-missoes)
   Todos os cards — concluído, ativo e bloqueado — acendem igual ao
   passar o mouse: elevação + brilho azul suave + transição. A missão
   ativa mantém a borda azul permanente (já existente em style.css) e
   ainda acende mais forte no hover. Nenhum <a>/<article> foi alterado,
   então o clique/não-clique de cada estado continua igual.
   --------------------------------------------------------------------- */
.mapa-missoes .mapa-grid .mapa-fase,
main.container.tema-claro .mapa-missoes .mapa-grid .mapa-fase {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.mapa-missoes .mapa-grid .mapa-fase:hover,
main.container.tema-claro .mapa-missoes .mapa-grid .mapa-fase:hover {
  transform: translateY(-4px);
  border-color: #2aa9ff;
  box-shadow: 0 16px 34px rgba(8, 103, 255, .22), 0 0 0 3px rgba(0, 217, 255, .14);
}

.mapa-missoes .mapa-grid .mapa-fase.amarelo:hover,
main.container.tema-claro .mapa-missoes .mapa-grid .mapa-fase.amarelo:hover {
  border-color: #0867ff;
  box-shadow: 0 18px 36px rgba(8, 103, 255, .3), 0 0 0 4px rgba(0, 217, 255, .28), 0 0 20px rgba(0, 217, 255, .4);
}

@media (prefers-reduced-motion: reduce) {
  .mapa-missoes .mapa-grid .mapa-fase,
  .mapa-missoes .mapa-grid .mapa-fase:hover { transition: none; transform: none; }
}

/* ---------------------------------------------------------------------
   6) ASIDES DE RECOMPENSA (MISSÕES 1, 2 E 7): SÓ A MOEDA CENTRALIZADA
   Print da missão "Blindagem" (dono, 29/07): tirar a caixa (borda/fundo/
   textos) e deixar só a moeda centralizada. O <aside> continua existindo
   no HTML (necessário para não quebrar o grid de 2 colunas do
   .op1-convite), mas fica neutro.
   --------------------------------------------------------------------- */
.op1-convite aside.moeda-aside-limpa,
main.container.tema-claro .op1-convite aside.moeda-aside-limpa {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 6px 0;
  text-align: center;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

/* ===== Bateria Moises 29/07 - operacoes, quiz, celebracao (frag-operacoes) ===== */
/* Fragmento CSS — ajustes pedidos pelo Moisés nas Missões 01 e 02 (views/cliente/operacao1.ejs
   e operacao2.ejs). Este arquivo é próprio dessas duas telas: paleta azul-clara IllumiCash
   (azul #0867ff, ciano #00d9ff, tinta #071737, fundo suave #edf4ff). Dourado só aparece junto
   da moeda da fase, como o resto do produto já faz. Toda regra aqui usa `main.container.tema-claro`
   + uma classe própria (ic-op-*) para ter especificidade suficiente e vencer o style.css sem
   precisar de !important.
*/

/* 1) Ícone de check azul — substitui os emojis antigos (🧠 / 📍) nos títulos apontados
   pelo dono: "Por que isso influencia sua evolução", "Quatro critérios antes da decisão"
   e o cabeçalho do quiz "Valide o que você aprendeu". */
.ic-op-checkicon { display: inline-flex; align-items: center; vertical-align: -2px; margin-right: 3px; color: #0867ff; }
.ic-op-checkicon svg { display: block; }

/* 2) Cartão "Inimigo da missão" (A Desorganização / A Dispersão Bancária): saía do azul-claro
   atual para um dourado antigo. Volta para a família azul; o nome do vilão mantém ênfase escura. */
main.container.tema-claro .origem-inimigo.ic-op-inimigo {
  border-color: rgba(77, 141, 229, .28);
  background: linear-gradient(145deg, #edf4ff, #ffffff 74%);
}
main.container.tema-claro .origem-inimigo.ic-op-inimigo > span {
  color: #0867ff;
  background: rgba(8, 103, 255, .12);
}
main.container.tema-claro .origem-inimigo.ic-op-inimigo small { color: #5b7292; }
main.container.tema-claro .origem-inimigo.ic-op-inimigo strong { color: #071737; }

/* 3) "Quatro critérios antes da decisão" (Missão 02): os 4 cartões estavam com a paleta
   dourada antiga. Vão para o azul-claro com alto relevo: sombra de contato (curta) + sombra
   ambiente (longa), e uma leve elevação no hover — sem exagero, respeitando o reduce-motion. */
main.container.tema-claro .bancaria-criterios.ic-op-criterios {
  border-color: rgba(77, 141, 229, .28);
  background: linear-gradient(150deg, rgba(255, 255, 255, .98), rgba(234, 244, 255, .95));
  box-shadow: 0 15px 36px rgba(42, 93, 163, .12), inset 0 1px #fff;
}
main.container.tema-claro .bancaria-criterios.ic-op-criterios .bancaria-criterios-grid article {
  border-color: rgba(77, 141, 229, .24);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1px 2px rgba(15, 45, 90, .10), 0 10px 24px rgba(15, 45, 90, .12);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
main.container.tema-claro .bancaria-criterios.ic-op-criterios .bancaria-criterios-grid article:hover {
  border-color: #2aa9ff;
  transform: translateY(-3px);
  box-shadow: 0 2px 4px rgba(15, 45, 90, .12), 0 16px 34px rgba(15, 45, 90, .18);
}
main.container.tema-claro .bancaria-criterios.ic-op-criterios .bancaria-criterios-grid article > span {
  color: #0f4fae;
  border-color: rgba(34, 118, 230, .34);
  background: rgba(233, 242, 255, .9);
}
@media (prefers-reduced-motion: reduce) {
  main.container.tema-claro .bancaria-criterios.ic-op-criterios .bancaria-criterios-grid article,
  main.container.tema-claro .bancaria-criterios.ic-op-criterios .bancaria-criterios-grid article:hover {
    transition: none;
    transform: none;
  }
}

/* 4) Aviso "Conta corrente e cartão de crédito podem ser contratos independentes"
   (Missão 02): saía da tarja escura/dourada antiga. Fundo suave, texto escuro legível. */
main.container.tema-claro .bancaria-cartao.ic-op-aviso {
  border-color: rgba(77, 141, 229, .28);
  background: linear-gradient(145deg, #edf4ff, #ffffff 80%);
}
main.container.tema-claro .bancaria-cartao.ic-op-aviso > span { background: rgba(8, 103, 255, .12); }
main.container.tema-claro .bancaria-cartao.ic-op-aviso strong { color: #071737; }
main.container.tema-claro .bancaria-cartao.ic-op-aviso p { color: #4a5f7d; }

/* 5) Quiz "Show do Milhão": resultado da resposta exibido antes da próxima pergunta
   (ou antes da tela final), usando só o estado já carregado pelo servidor (sem JS). */
.ic-op-quizreveal {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
  padding: 16px 18px;
  border: 1px solid;
  border-radius: 16px;
  animation: ic-op-reveal-in .45s ease both;
}
.ic-op-quizreveal-selo {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 17px;
  font-weight: 900;
}
.ic-op-quizreveal-corpo { display: flex; flex-direction: column; gap: 6px; }
.ic-op-quizreveal-rotulo { font-size: 12.5px; letter-spacing: .2px; }
.ic-op-quizreveal-alternativa { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 11px; }
.ic-op-quizreveal-alternativa i { flex: 0 0 24px; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; font-style: normal; font-size: 11px; font-weight: 800; }
.ic-op-quizreveal-alternativa span { font-size: 13px; }
.ic-op-quizreveal-corpo p { font-size: 12.5px; line-height: 1.55; }

main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-acerto {
  border-color: rgba(14, 159, 110, .38);
  background: linear-gradient(145deg, #e9fbf3, #ffffff 72%);
}
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-acerto .ic-op-quizreveal-selo { background: #12b981; box-shadow: 0 0 0 6px rgba(18, 185, 129, .14); }
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-acerto .ic-op-quizreveal-rotulo { color: #0b6c4c; font-weight: 800; }
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-acerto .ic-op-quizreveal-corpo p { color: #3d6b58; }

main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-erro {
  border-color: rgba(214, 64, 58, .24);
  background: linear-gradient(145deg, #fff4f3, #ffffff 74%);
}
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-erro .ic-op-quizreveal-selo { background: #dd6b66; }
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-erro .ic-op-quizreveal-rotulo { color: #9c3630; font-weight: 800; }
main.container.tema-claro .ic-op-quizreveal.ic-op-quizreveal-erro .ic-op-quizreveal-corpo p { color: #627895; }

/* A alternativa correta é sempre destacada em verde, acertando ou não a pergunta —
   é ela que o Gestor precisa fixar, no estilo "essa era a resposta certa". */
main.container.tema-claro .ic-op-quizreveal-alternativa { background: rgba(14, 159, 110, .12); }
main.container.tema-claro .ic-op-quizreveal-alternativa i { background: #0e9f6e; color: #fff; }

@keyframes ic-op-reveal-in { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .ic-op-quizreveal { animation: none; }
}

/* 6) Comemoração de fim de missão: overlay em tela cheia quando `concluidaAgora` é
   verdadeiro, entregando a moeda da fase. Fecha por link (funciona sem JavaScript). */
.ic-op-celebra {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: radial-gradient(circle at 50% 28%, rgba(8, 23, 55, .74), rgba(6, 18, 46, .88));
  animation: ic-op-celebra-fundo .35s ease both;
}
.ic-op-celebra-confete { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ic-op-celebra-confete i {
  position: absolute;
  top: -10%;
  width: 8px;
  height: 14px;
  border-radius: 2px;
  opacity: .85;
  animation: ic-op-celebra-cai 2.8s linear infinite;
}
.ic-op-celebra-confete i:nth-child(odd) { border-radius: 50%; }
.ic-op-celebra-confete i:nth-child(1) { left: 6%; background: #0867ff; animation-delay: 0s; }
.ic-op-celebra-confete i:nth-child(2) { left: 15%; background: #00d9ff; animation-delay: .35s; }
.ic-op-celebra-confete i:nth-child(3) { left: 24%; background: #0867ff; animation-delay: .7s; }
.ic-op-celebra-confete i:nth-child(4) { left: 34%; background: #00d9ff; animation-delay: 1.05s; }
.ic-op-celebra-confete i:nth-child(5) { left: 45%; background: #0867ff; animation-delay: .2s; }
.ic-op-celebra-confete i:nth-child(6) { left: 55%; background: #00d9ff; animation-delay: .55s; }
.ic-op-celebra-confete i:nth-child(7) { left: 65%; background: #0867ff; animation-delay: .9s; }
.ic-op-celebra-confete i:nth-child(8) { left: 75%; background: #00d9ff; animation-delay: 1.25s; }
.ic-op-celebra-confete i:nth-child(9) { left: 84%; background: #0867ff; animation-delay: .4s; }
.ic-op-celebra-confete i:nth-child(10) { left: 92%; background: #00d9ff; animation-delay: .75s; }
.ic-op-celebra-confete i:nth-child(11) { left: 50%; background: #0867ff; animation-delay: 1.4s; }
.ic-op-celebra-confete i:nth-child(12) { left: 10%; background: #00d9ff; animation-delay: 1.6s; }

.ic-op-celebra-caixa {
  position: relative;
  width: min(440px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: clamp(30px, 5vw, 42px) clamp(22px, 5vw, 34px) 32px;
  text-align: center;
  border: 1px solid rgba(77, 141, 229, .28);
  border-radius: 26px;
  background: linear-gradient(160deg, #ffffff 0%, #edf4ff 100%);
  box-shadow: 0 30px 80px rgba(4, 20, 50, .45), inset 0 1px #fff;
  animation: ic-op-celebra-caixa .5s cubic-bezier(.2, .9, .3, 1.08) both;
}
.ic-op-celebra-fechar {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #5b7292;
  background: rgba(8, 103, 255, .08);
  text-decoration: none;
  font-size: 14px;
}
.ic-op-celebra-fechar:hover { background: rgba(8, 103, 255, .16); color: #071737; }
.ic-op-celebra-eyebrow { font-size: 11px; letter-spacing: 2px; font-weight: 800; color: #0867ff; }
.ic-op-celebra-moeda { position: relative; width: 150px; height: 150px; display: grid; place-items: center; margin: 6px 0 2px; }
.ic-op-celebra-moeda img {
  position: relative;
  z-index: 2;
  width: 132px;
  height: 132px;
  object-fit: contain;
  filter: drop-shadow(0 14px 26px rgba(8, 103, 255, .35));
  animation: ic-op-celebra-moeda-in .7s cubic-bezier(.25, .9, .3, 1.2) .1s both;
}
.ic-op-celebra-brilho {
  position: absolute;
  inset: -16px;
  z-index: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(247, 216, 119, .5), rgba(0, 217, 255, .16) 55%, transparent 72%);
  filter: blur(2px);
  animation: ic-op-celebra-brilho-pulso 2.4s ease-in-out infinite;
}
.ic-op-celebra-caixa h2 { margin-top: 2px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(22px, 4vw, 28px); color: #071737; }
.ic-op-celebra-caixa > p { max-width: 360px; color: #3a4f6e; font-size: 13px; line-height: 1.6; }
.ic-op-celebra-caixa > p strong { color: #071737; }
.ic-op-celebra-nivel {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 6px 0 4px;
  padding: 10px 20px;
  border: 1px solid rgba(8, 103, 255, .16);
  border-radius: 14px;
  background: rgba(8, 103, 255, .07);
}
.ic-op-celebra-nivel span { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: #5b7292; }
.ic-op-celebra-nivel strong { color: #0867ff; font-size: 15px; }
.ic-op-celebra-cta { margin-top: 10px; }

@keyframes ic-op-celebra-fundo { from { opacity: 0; } to { opacity: 1; } }
@keyframes ic-op-celebra-caixa { from { opacity: 0; transform: translateY(18px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes ic-op-celebra-moeda-in { 0% { opacity: 0; transform: scale(.2); } 60% { opacity: 1; transform: scale(1.12); } 100% { opacity: 1; transform: scale(1); } }
@keyframes ic-op-celebra-brilho-pulso { 0%, 100% { opacity: .55; transform: scale(1); } 50% { opacity: .85; transform: scale(1.08); } }
@keyframes ic-op-celebra-cai { 0% { transform: translateY(0) rotate(0deg); opacity: 0; } 8% { opacity: 1; } 100% { transform: translateY(760px) rotate(240deg); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .ic-op-celebra,
  .ic-op-celebra-caixa,
  .ic-op-celebra-moeda img,
  .ic-op-celebra-brilho,
  .ic-op-celebra-confete i {
    animation: none;
  }
  .ic-op-celebra-confete { display: none; }
}

@media (max-width: 480px) {
  .ic-op-celebra-caixa { padding-left: 18px; padding-right: 18px; }
  .ic-op-celebra-moeda { width: 120px; height: 120px; }
  .ic-op-celebra-moeda img { width: 104px; height: 104px; }
}

/* Selos de conquista das conclusoes (op1/op2) na paleta atual — tira o amarelo antigo */
.op1-premios article {
  background: linear-gradient(160deg, #f2f7ff, #e6efff) !important;
  border: 1px solid rgba(8, 103, 255, .22) !important;
  box-shadow: 0 10px 22px rgba(0, 73, 182, .12), 0 2px 6px rgba(0, 73, 182, .10);
}
.op1-premios article span { color: #0a55d6 !important; }
.op1-premios article small { color: #62789b !important; }

/* ===== LOGIN v2 — arte do Moisés 29/07 (split desktop + cartão mobile) ===== */
body.login-v2 { display: block; padding: 0; margin: 0;
  background: radial-gradient(circle at 18% 12%, rgba(8,103,255,.16), transparent 42%),
              linear-gradient(155deg, #eaf2ff 0%, #f8fbff 54%, #e7f0ff 100%); }
.login-split { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 1.05fr) minmax(480px, .95fr); }
.login-visual { position: relative; overflow: hidden; background: #041753; }
.login-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.login-visual-sombra { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(1,8,37,.05) 40%, rgba(1,8,37,.8) 100%); }
.login-visual-texto { position: absolute; left: 8%; right: 10%; bottom: 7%; color: #fff; }
.login-visual-texto p { margin: 0 0 12px; color: #7ce2ff; font-size: 11px; font-weight: 800; letter-spacing: .17em; }
.login-visual-texto h1 { max-width: 560px; margin: 0; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.06;
  letter-spacing: -.04em; text-shadow: 0 10px 30px rgba(0,0,0,.35); }
.login-painel { display: grid; place-items: center; padding: 48px 7%; position: relative;
  background: radial-gradient(circle at 80% 4%, rgba(0,108,255,.11), transparent 30%), linear-gradient(150deg, #fafdff, #eaf2ff); }

body.login-v2 .login-card { width: min(100%, 500px); max-width: 500px; margin: 0; padding: 42px 38px;
  color: #071737; border: 1px solid rgba(83,150,255,.4); border-radius: 30px; text-align: center;
  background: linear-gradient(160deg, rgba(255,255,255,.99), rgba(234,243,255,.96));
  box-shadow: 0 0 0 6px rgba(120,180,255,.14), 0 34px 90px rgba(4,23,83,.28), inset 0 1px rgba(255,255,255,.95); }

.login-marca { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.login-marca-simbolo { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
  font-weight: 900; font-size: 20px; color: #ffc832; background: radial-gradient(circle at 32% 28%, #0f6bff, #04164f 78%);
  border: 2px solid #2f7dff; box-shadow: 0 0 14px rgba(47,125,255,.55), inset 0 1px rgba(255,255,255,.25); }
.login-marca-nome { font-size: 26px; font-weight: 800; letter-spacing: -.03em; color: #071737; }
.login-marca-nome b { color: #0867ff; }

.login-cadeado { width: 52px; height: 52px; margin: 4px auto 14px; border-radius: 50%;
  background: linear-gradient(160deg, #f2f7ff, #dfeaff); border: 1px solid rgba(83,150,255,.45);
  box-shadow: 0 8px 22px rgba(8,103,255,.2), inset 0 1px #fff; position: relative; }
.login-cadeado::before { content: "🔒"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 22px; }

body.login-v2 .login-card h2 { margin: 0 0 8px; font-size: clamp(28px, 3vw, 36px); letter-spacing: -.04em; }
.login-sub { margin: 0 0 24px; color: #627895; font-size: 14px; }

.login-form-v2 { text-align: left; }
.login-form-v2 label { display: block; margin-bottom: 16px; font-weight: 700; color: #334a75; font-size: 13px; }
.campo-envolto { position: relative; display: block; margin-top: 7px; }
.login-form-v2 input[type="text"], .login-form-v2 input[type="password"] {
  width: 100%; min-height: 58px; padding: 14px 52px 14px 18px; font-size: 15px; color: #071737;
  border: 1px solid rgba(83,150,255,.5); border-radius: 15px;
  background: linear-gradient(160deg, #fff, #f3f8ff);
  box-shadow: inset 0 2px 6px rgba(8,60,150,.07), 0 6px 16px rgba(8,60,150,.06); }
.login-form-v2 input:focus { outline: none; border-color: #0867ff; box-shadow: 0 0 0 4px rgba(8,103,255,.16); }
.olho-senha { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px;
  border: 0; border-radius: 11px; background: transparent; cursor: pointer; font-size: 18px; color: #627895; }
.olho-senha:hover { background: rgba(8,103,255,.1); }

.login-opcoes { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 2px 0 22px; font-size: 13px; }
.login-opcoes .lembrar { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; color: #334a75; }
.login-opcoes .lembrar input { width: 17px; height: 17px; accent-color: #0867ff; }
.login-opcoes .link { font-weight: 800; color: #0f4fae; }

.login-entrar { min-height: 62px; border-radius: 16px; font-size: 17px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(160deg, #0a6bff, #0538c9); border: 1px solid rgba(255,255,255,.25);
  box-shadow: 0 16px 34px rgba(6,66,205,.4), inset 0 1px rgba(255,255,255,.35); }
.login-entrar span { font-size: 22px; font-weight: 400; margin-left: auto; }
.login-entrar:hover { filter: brightness(1.07); }

.login-selo { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(77,141,229,.24);
  color: #627895; font-size: 12.5px; }

body.login-v2 .alerta-erro { text-align: left; }

@media (max-width: 880px) {
  .login-split { display: block; min-height: 100vh; }
  .login-visual { display: none; }
  .login-painel { min-height: 100vh; padding: 30px 16px; }
  body.login-v2 .login-card { padding: 34px 22px; }
}
@media (prefers-reduced-motion: no-preference) {
  body.login-v2 .login-card { animation: loginSurge .5s ease-out; }
  @keyframes loginSurge { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}
/* retoques login v2 */
.login-visual-texto h1 { font-family: system-ui, -apple-system, 'Segoe UI', sans-serif; font-weight: 800; }
.login-opcoes .lembrar { white-space: nowrap; flex-shrink: 0; }
.login-form-v2 .login-opcoes label.lembrar { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.login-form-v2 .login-opcoes label.lembrar input { width: 17px; height: 17px; min-height: 0; margin: 0; }
.login-form-v2 .login-opcoes label.lembrar { flex-direction: row; }
