/* BL4CK Wealth v8.1 - arquivo limpo de cores finais. */

/* ======================================================
   BL4CK Wealth v8.1 - Blindagem final de contraste
   REGRA FIXA:
   fundo roxo/escuro => texto claro;
   fundo claro => texto escuro;
   botões roxos => texto branco.
   Também neutraliza regras antigas que deixavam texto escuro em card roxo.
   ====================================================== */
:root{
  --bl4ck-ink:#171122;
  --bl4ck-soft-ink:#5F5570;
  --bl4ck-white:#FFFFFF;
  --bl4ck-lilac:#F3E8FF;
  --bl4ck-lilac-2:#EDE9FE;
  --bl4ck-purple:#6D28D9;
  --bl4ck-purple-dark:#2A104F;
  --bl4ck-green-soft:#BBF7D0;
}

/* Áreas escuras/roxas conhecidas do app */
.panel-dark,
.dark-card,
.premium-card,
.hero-balance,
.compact-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.today-hero,
.summary-hero,
.today-balance-card,
.finance-core-card.real,
.stat-card.glow,
.price-card.featured,
.plans-v54-choice article.featured,
.v54-cycle-cards article.featured,
[class*="purple-card"],
[class*="dark-panel"],
[class*="dark-card"]{
  color:var(--bl4ck-white) !important;
}

/* Tudo dentro de fundo escuro/roxo começa claro */
.panel-dark :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.dark-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.premium-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.hero-balance :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.compact-balance :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.sheet-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.notification-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.reminders-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.business-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.projects-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.today-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.summary-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.today-balance-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.finance-core-card.real :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.stat-card.glow :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.price-card.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.plans-v54-choice article.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.v54-cycle-cards article.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a){
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Textos secundários dentro de fundo escuro/roxo */
.panel-dark :where(p,small,span:not(.btn):not(.nav-badge)),
.dark-card :where(p,small,span:not(.btn):not(.nav-badge)),
.premium-card :where(p,small,span:not(.btn):not(.nav-badge)),
.hero-balance :where(p,small,span:not(.btn):not(.nav-badge)),
.compact-balance :where(p,small,span:not(.btn):not(.nav-badge)),
.sheet-hero :where(p,small),
.notification-hero :where(p,small),
.reminders-hero :where(p,small),
.business-hero :where(p,small),
.projects-hero :where(p,small),
.today-hero :where(p,small),
.summary-hero :where(p,small),
.today-balance-card :where(span,small),
.finance-core-card.real :where(span,small){
  color:var(--bl4ck-lilac-2) !important;
}

/* Valores grandes/números em card roxo sempre brancos */
.panel-dark strong,
.dark-card strong,
.premium-card strong,
.hero-balance strong,
.compact-balance strong,
.today-balance-card strong,
.finance-core-card.real strong,
.stat-card.glow strong,
.price-card.featured strong,
.plans-v54-choice article.featured strong,
.v54-cycle-cards article.featured strong,
.panel-dark .amount,
.dark-card .amount,
.premium-card .amount,
.hero-balance .amount,
.today-balance-card .amount{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Links de ação no cabeçalho de painéis viram botão legível */
.panel-header > a,
.compact-header > a,
.panel-header .text-button,
.compact-header .text-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:38px !important;
  padding:10px 16px !important;
  border-radius:999px !important;
  background:var(--bl4ck-purple) !important;
  border:1px solid rgba(109,40,217,.22) !important;
  color:var(--bl4ck-white) !important;
  font-weight:900 !important;
  box-shadow:0 14px 30px rgba(109,40,217,.24) !important;
}
.panel-header > a *,
.compact-header > a *,
.panel-header .text-button *,
.compact-header .text-button *{
  color:var(--bl4ck-white) !important;
}

/* Botão roxo em qualquer lugar */
.btn-primary,
.btn.btn-primary,
a.btn-primary,
button.btn-primary,
.btn-purple,
.btn-gradient,
.action-button,
button[type="submit"].btn-primary{
  background:var(--bl4ck-purple) !important;
  color:var(--bl4ck-white) !important;
  border-color:var(--bl4ck-purple) !important;
}
.btn-primary *,
.btn.btn-primary *,
a.btn-primary *,
button.btn-primary *,
.btn-purple *,
.btn-gradient *,
.action-button *{
  color:var(--bl4ck-white) !important;
}

/* Botão secundário claro */
.btn-secondary,
.btn.btn-secondary,
a.btn-secondary,
button.btn-secondary{
  background:#FFFFFF !important;
  color:var(--bl4ck-purple-dark) !important;
  border-color:#D8C8FF !important;
}
.btn-secondary *,.btn.btn-secondary *,a.btn-secondary *,button.btn-secondary *{
  color:var(--bl4ck-purple-dark) !important;
}

/* Entrada/Saída ativa: como o fundo ativo é roxo, o texto fica claro */
.segmented input:checked + span,
.compact-segmented input:checked + span,
.segmented label.is-active,
.compact-segmented label.is-active,
.segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked),
.segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Cards claros continuam com fonte escura */
.panel:not(.panel-dark):not(.dark-card):not(.premium-card),
.card:not(.dark-card):not(.premium-card),
.stat-card:not(.glow),
.finance-core-card:not(.real),
.today-card,
.ux-empty-state,
.empty-state-card{
  color:var(--bl4ck-ink) !important;
}
.panel:not(.panel-dark):not(.dark-card):not(.premium-card) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.card:not(.dark-card):not(.premium-card) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.stat-card:not(.glow) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.finance-core-card:not(.real) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.today-card :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.ux-empty-state strong,
.empty-state-card strong{
  color:var(--bl4ck-ink) !important;
}
.panel:not(.panel-dark):not(.dark-card):not(.premium-card) :where(p,small,span),
.card:not(.dark-card):not(.premium-card) :where(p,small,span),
.stat-card:not(.glow) :where(p,small,span),
.finance-core-card:not(.real) :where(p,small,span),
.today-card :where(p,small,span),
.ux-empty-state p,
.empty-state-card p{
  color:var(--bl4ck-soft-ink) !important;
}

/* Exceções: valores positivos/negativos mantêm semântica */
.income{color:#16A34A !important;}
.expense{color:#DC2626 !important;}

/* Sidebar */
.sidebar .brand strong,.app-sidebar .brand strong,.topbar-mobile-brand strong{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
}
.sidebar .brand small,.app-sidebar .brand small{
  color:#D8CCFF !important;
  opacity:1 !important;
}
.sidebar-card strong{
  color:var(--bl4ck-green-soft) !important;
  opacity:1 !important;
}
.sidebar-card span,.sidebar-card small{
  color:var(--bl4ck-lilac) !important;
  opacity:1 !important;
}

/* Formulários claros */
input,select,textarea{
  background:#FFFFFF !important;
  color:var(--bl4ck-ink) !important;
}
input::placeholder,textarea::placeholder{
  color:#8D849D !important;
  opacity:1 !important;
}


/* BL4CK v8.2 - Correção direta do card Caixa Real */
.caixa-real-card,
.finance-core-card.real.caixa-real-card {
  background: linear-gradient(135deg,#15101F 0%,#2A104F 48%,#5B21B6 100%) !important;
  color: #FFFFFF !important;
}
.caixa-real-card *,
.finance-core-card.real.caixa-real-card * {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.caixa-real-card small,
.finance-core-card.real.caixa-real-card small {
  color: #EDE9FE !important;
}


/* ======================================================
   BL4CK v8.5 - Abas Entrada/Saída com fonte escura
   Pedido: botão roxo desse tipo deve ter texto mais escuro
   ====================================================== */
.segmented input:checked + span,
.compact-segmented input:checked + span,
.bl4ck-segmented input:checked + span,
.stack-form .segmented input:checked + span,
.sheet-form .segmented input:checked + span,
.segmented label.is-active,
.compact-segmented label.is-active,
.bl4ck-segmented label.is-active,
.stack-form .segmented label.is-active,
.sheet-form .segmented label.is-active,
.segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.bl4ck-segmented label.is-active .segment-option,
.stack-form .segmented label.is-active .segment-option,
.sheet-form .segmented label.is-active .segment-option,
.segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked),
.bl4ck-segmented label:has(input[type="radio"]:checked),
.stack-form .segmented label:has(input[type="radio"]:checked),
.sheet-form .segmented label:has(input[type="radio"]:checked),
.segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option,
.bl4ck-segmented label:has(input[type="radio"]:checked) .segment-option,
.stack-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.sheet-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option {
  color: #2A104F !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}


/* ======================================================
   BL4CK v8.6 - Status do plano na sidebar em verde
   ====================================================== */
.sidebar-card strong,
.sidebar .sidebar-card strong,
.app-sidebar .sidebar-card strong {
  color: #22C55E !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}

.sidebar-card span,
.sidebar .sidebar-card span,
.app-sidebar .sidebar-card span {
  color: #F3E8FF !important;
  opacity: 1 !important;
}


/* ======================================================
   BL4CK Wealth v8.7 - Imagens estratégicas do produto
   ====================================================== */
.bl4ck-visual-card,.bl4ck-visual-hero,.bl4ck-app-mockup-card{overflow:hidden;border-radius:30px;border:1px solid rgba(124,58,237,.16);background:linear-gradient(135deg,#15101F 0%,#2A104F 52%,#5B21B6 100%);box-shadow:0 26px 70px rgba(42,16,79,.16)}
.bl4ck-visual-card img,.bl4ck-visual-hero img,.bl4ck-app-mockup-card img{display:block;width:100%;height:100%;object-fit:cover}
.bl4ck-auth-visual{margin:18px 0;min-height:360px}.bl4ck-auth-visual img{aspect-ratio:4/3}.bl4ck-dashboard-mockup{margin:18px 0;min-height:280px}.bl4ck-dashboard-mockup img{max-height:420px}.bl4ck-empty-visual{margin:18px 0;border-radius:22px;overflow:hidden;border:1px solid rgba(124,58,237,.12)}.bl4ck-empty-visual img{width:100%;display:block}.bl4ck-branding-strip{margin:22px 0;border-radius:28px;overflow:hidden;border:1px solid rgba(124,58,237,.16)}.bl4ck-branding-strip img{width:100%;display:block}.bl4ck-icon-preview{margin:18px 0;border-radius:24px;overflow:hidden;border:1px solid rgba(124,58,237,.12)}.bl4ck-icon-preview img{width:100%;display:block}
@media(max-width:760px){.bl4ck-auth-visual,.bl4ck-dashboard-mockup{min-height:auto;border-radius:24px}.bl4ck-auth-visual img,.bl4ck-dashboard-mockup img{aspect-ratio:9/10;max-height:none}}


/* BL4CK Wealth v8.8 - ajuste funcional do caixa real */
.balance-adjust-details{margin-top:12px;color:#fff!important}
.balance-adjust-details summary{cursor:pointer;color:#fff!important;font-weight:900;font-size:.82rem;list-style:none;text-decoration:underline;text-underline-offset:3px}
.balance-adjust-details summary::-webkit-details-marker{display:none}
.balance-adjust-form{margin-top:12px;display:grid;gap:10px;padding:12px;border-radius:16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)}
.balance-adjust-form label{display:grid;gap:6px;color:#fff!important;font-size:.78rem;font-weight:800}
.balance-adjust-form input{width:100%;background:#fff!important;color:#171122!important;border:1px solid rgba(255,255,255,.4)!important;border-radius:12px;padding:11px 12px;font-weight:900}
.balance-adjust-form .btn-secondary{width:100%;min-height:40px}
.balance-adjust-form small{color:#EDE9FE!important;line-height:1.35}
@media(max-width:640px){.balance-adjust-form{padding:10px}.finance-core-card.real{overflow:visible}}
