/* Estilos do Fluxo — movidos do <style> do app.html na Fase 3 - F4.
   Copiado byte a byte. O @import das fontes segue em primeiro lugar, como exige o CSS.
   Cache: o frontend/.htaccess forca revalidar (a regra da raiz cacharia 30 dias). */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');
@import url('./fundacao.css');
@import url('./componentes.css');
@import url('./telas.css');
/* ===== TEMA PRETO PREMIUM (opcional) — preto sofisticado + acento lavanda único ===== */
.fx-root.preto {
  --bg:#08080A; --bg2:#0D0D11; --surface:#131318; --surface2:#1B1B23;
  --border:#272730; --border2:#383844; --text:#F3F2F7; --muted:#A6A5B3; --faint:#6C6B7A;
  --green:#3DDCA0; --green-d:rgba(61,220,160,.13); --red:#FF6B86; --red-d:rgba(255,107,134,.13);
  --gold:#B49CFF; --gold-d:rgba(180,156,255,.17); --gold2:#7C5CFF; --ink:#0C0A16;
  --steel:#6E8FE8; --steel-d:rgba(110,143,232,.12);
  --teal:#67C7E6; --teal-d:rgba(103,199,230,.12); --violet:#CBB8FF; --violet-d:rgba(203,184,255,.17);
  --glow:rgba(124,92,255,.45); --sheen:rgba(255,255,255,.04);
  background:#08080A;
}
/* fundo externo (atrás do app) acompanha o preto */
body.tema-preto, body.tema-preto #root { background:#08080A !important; }
/* premium: brilho de cor SUTIL (só lavanda), sem rainbow */
.fx-root.preto .fx-card { border-color:rgba(180,156,255,.14); box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 18px 46px -30px rgba(124,92,255,.3); }
.fx-root.preto .fx-card:hover { border-color:rgba(180,156,255,.36); box-shadow:0 0 0 1px rgba(180,156,255,.18), 0 26px 60px -32px rgba(124,92,255,.46); }
.fx-root.preto .fx-tab.on { box-shadow:0 0 0 1px rgba(180,156,255,.36), 0 10px 24px -10px rgba(124,92,255,.42); }
.fx-root.preto .fx-tool:hover, .fx-root.preto .fx-adm-btn:hover { border-color:rgba(180,156,255,.32); }
.fx-root.preto .fx-hero-val { text-shadow:0 4px 34px rgba(124,92,255,.4); }

/* ===== FLUXO ANIM KIT (Camada 2) — leve, respeita prefers-reduced-motion ===== */
/* 1) TROCA DE TEMA: durante a troca, TUDO muda de cor suavemente (só durante a troca, sem custo no uso normal) */
body.fx-theming, body.fx-theming * { transition: background-color .55s ease, color .5s ease, border-color .5s ease, box-shadow .5s ease, fill .5s ease !important; }
/* um brilho de cor varre a tela ao trocar de tema */
body.fx-theming::after { content:''; position:fixed; inset:0; z-index:99998; pointer-events:none; background:radial-gradient(120vmax 120vmax at 86% 5%, rgba(177,79,255,.18), transparent 55%); animation: fxThemeFlash .6s ease-out forwards; }
@keyframes fxThemeFlash { 0%{opacity:0} 30%{opacity:1} 100%{opacity:0} }
/* 2) TROCA DE TELA: ao mudar de aba, o conteúdo entra em cascata (cada bloco sobe e aparece) */
.fx-main > * { animation: fxRise .6s cubic-bezier(.16,1,.3,1) both; }
.fx-main > *:nth-child(1){animation-delay:.03s} .fx-main > *:nth-child(2){animation-delay:.1s}
.fx-main > *:nth-child(3){animation-delay:.17s} .fx-main > *:nth-child(4){animation-delay:.24s}
.fx-main > *:nth-child(5){animation-delay:.31s} .fx-main > *:nth-child(6){animation-delay:.38s} .fx-main > *:nth-child(n+7){animation-delay:.44s}
@keyframes fxRise { from{opacity:0; transform:translateY(30px) scale(.98)} to{opacity:1; transform:none} }
/* 3) VIDA nos cards: reagem ao toque/hover (sobem um tico) */
.fx-root .fx-card{ transition: background-color .5s, color .5s, border-color .22s, box-shadow .22s, transform .18s ease; }
.fx-root .fx-card:hover{ transform:translateY(-3px); }
/* respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce){
  body.fx-theming, body.fx-theming *, .fx-main > *, body.fx-theming::after { transition:none !important; animation:none !important; }
  .fx-main > *{ opacity:1 !important; transform:none !important; }
}
.fx-root { font-family:var(--ui); color:var(--text); background:var(--bg); min-height:100vh; padding:22px; max-width:1100px; margin:0 auto;
  background-image: radial-gradient(1000px 480px at 8% -10%, rgba(124,58,237,.20), transparent 58%), radial-gradient(820px 460px at 100% -4%, rgba(201,77,191,.13), transparent 55%), radial-gradient(700px 600px at 50% 120%, rgba(94,72,200,.10), transparent 60%); background-attachment: fixed; }
.fx-root .mono { font-family:var(--mono); font-feature-settings:"tnum"; }
.fx-root .green { color:var(--green); } .fx-root .red { color:var(--red); } .fx-root .fx-faint { color:var(--faint); }
.fx-root .r { text-align:right; }
.fx-boot, .fx-empty { color:var(--muted); text-align:center; padding:36px 0; font-size:14px; }

.fx-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; gap:12px; flex-wrap:wrap; }
.fx-brand { display:flex; align-items:center; gap:13px; }
.fx-logo { width:42px; height:42px; border-radius:13px; display:grid; place-items:center; background:linear-gradient(140deg,#B98CFF,#6D28D9); color:#fff; box-shadow:0 8px 26px rgba(124,58,237,.45), inset 0 1px 0 rgba(255,255,255,.25); }
.fx-title { font-size:22px; font-weight:800; letter-spacing:-.6px; line-height:1; background:linear-gradient(120deg,#fff,#C99BFF); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ref { background:transparent; border:none; color:var(--muted); font-family:var(--ui); font-size:12.5px; padding:3px 0 0; outline:none; width:150px; }
.fx-ref:focus { color:var(--gold); }

.fx-monthbar { display:grid; grid-template-columns:1.1fr auto; gap:12px; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:14px 16px; margin-bottom:16px; }
.fx-month-main { display:flex; align-items:center; gap:12px; min-width:0; }
.fx-month-ic { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:var(--gold-d); color:var(--gold); flex-shrink:0; }
.fx-month-kicker { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.45px; font-weight:700; }
.fx-month-name { font-size:18px; font-weight:700; margin-top:2px; }
.fx-month-sub { font-size:12px; color:var(--muted); margin-top:3px; }
.fx-month-actions { display:flex; gap:7px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.fx-month-select { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:9px 11px; font-family:var(--ui); font-size:12.5px; outline:none; min-width:160px; }
.fx-month-select:focus { border-color:var(--gold); }
.fx-month-list { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.fx-monthitem { background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:15px; text-align:left; cursor:pointer; font-family:var(--ui); color:var(--text); transition:.15s; }
.fx-monthitem:hover { border-color:var(--border2); background:var(--surface2); }
.fx-monthitem.on { border-color:rgba(169,116,255,.55); box-shadow:0 0 0 1px rgba(169,116,255,.18) inset; }
.fx-monthitem-top { display:flex; justify-content:space-between; gap:8px; align-items:center; margin-bottom:11px; }
.fx-monthitem-name { font-size:14px; font-weight:700; }
.fx-monthitem-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
.fx-monthitem-grid div { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:9px; }
.fx-monthitem-grid span { display:block; color:var(--muted); font-size:10.5px; margin-bottom:4px; }
.fx-toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.fx-sync { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; padding:7px 11px; border-radius:9px; border:1px solid var(--border); background:var(--surface); color:var(--muted); }
.fx-sync .dot { width:7px; height:7px; border-radius:50%; background:var(--faint); flex-shrink:0; }
.fx-sync.saved { color:var(--green); border-color:rgba(47,208,138,.3); } .fx-sync.saved .dot { background:var(--green); }
.fx-sync.saving { color:var(--gold); border-color:rgba(169,116,255,.3); } .fx-sync.saving .dot { background:var(--gold); }
.fx-sync.offline { color:var(--red); border-color:rgba(251,111,132,.3); } .fx-sync.offline .dot { background:var(--red); }
.fx-alert { display:flex; align-items:center; gap:5px; background:var(--red-d); color:var(--red); border:1px solid rgba(251,111,132,.3); padding:7px 11px; border-radius:9px; font-size:12.5px; font-weight:600; }
.fx-tool { display:inline-flex; align-items:center; gap:6px; background:linear-gradient(160deg,var(--surface2),var(--surface)); border:1px solid var(--border2); color:var(--text); padding:9px 14px; border-radius:11px; font-family:var(--ui); font-size:12.5px; font-weight:600; cursor:pointer; transition:transform .12s, border-color .15s, box-shadow .15s, filter .15s; box-shadow:0 1px 0 rgba(255,255,255,.04) inset; }
.fx-tool:hover:not(:disabled) { border-color:var(--gold); color:var(--gold); transform:translateY(-1px); box-shadow:0 6px 16px -8px rgba(124,58,237,.6); } .fx-tool:disabled { opacity:.4; cursor:not-allowed; }
.fx-tool:active:not(:disabled){ transform:scale(.95); box-shadow:0 0 0 2.5px rgba(52,211,153,.55) inset; }

.fx-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:14px; background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:22px; margin-bottom:16px; }
.fx-hero-lbl { font-size:12.5px; color:var(--muted); }
.fx-hero-val { font-family:var(--mono); font-size:38px; font-weight:700; letter-spacing:-1px; margin:6px 0 8px; line-height:1; }
.fx-hero-line { font-size:13px; display:flex; gap:9px; align-items:center; font-family:var(--mono); } .fx-dot { color:var(--border2); }
.fx-hero-side { display:flex; flex-direction:column; gap:9px; justify-content:center; }
.fx-mini { display:flex; align-items:center; gap:11px; background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:11px 13px; }
.fx-mini-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; background:var(--surface2); color:var(--muted); flex-shrink:0; }
.fx-mini.t-gold .fx-mini-ic { background:var(--gold-d); color:var(--gold); }
.fx-mini-lbl { font-size:11.5px; color:var(--muted); } .fx-mini-val { font-family:var(--mono); font-size:15px; font-weight:700; margin-top:2px; }

.fx-calib { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; margin:0 0 14px; }
.fx-calib label { display:flex; flex-direction:column; gap:6px; font-size:11.5px; color:var(--muted); }
.fx-calib input { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:11px 13px; font-family:var(--mono); font-size:13.5px; outline:none; width:100%; }
.fx-calib input:focus { border-color:var(--gold); }
.fx-calib-note { grid-column:1/-1; font-size:11.5px; color:var(--muted); line-height:1.5; }

.fx-tabs { display:flex; gap:5px; background:var(--bg2); border:1px solid var(--border); border-radius:13px; padding:5px; margin-bottom:16px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
/* v86 — sidebar (PC) + barra inferior (celular) */
.fx-body{display:block}
.fx-side-brand{display:none}
.fx-bottombar{display:none}
html[data-fxlayout="premiumA"] .fx-tabs{display:none!important}
html[data-fxlayout="premiumA"] .fx-bottombar{display:flex!important;position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(14,9,24,.97);backdrop-filter:blur(14px);border-top:1px solid var(--border2);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
html[data-fxlayout="premiumA"] .fx-root{padding-bottom:88px}
@media(min-width:921px){
  .fx-body{display:flex;gap:22px;align-items:flex-start}
  .fx-tabs{flex-direction:column;flex-wrap:nowrap;width:236px;flex-shrink:0;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;overflow-x:hidden;gap:4px;padding:16px 12px;margin-bottom:0;background:linear-gradient(180deg,var(--surface),var(--bg2));border:1px solid var(--border2);border-radius:20px;box-shadow:0 20px 50px -30px rgba(124,58,237,.5)}
  .fx-tabs::-webkit-scrollbar{width:6px} .fx-tabs::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
  .fx-side-brand{display:flex;align-items:center;gap:11px;padding:4px 10px 16px;margin-bottom:8px;border-bottom:1px solid var(--border);font-weight:800;font-size:19px;letter-spacing:-.3px}
  .fx-tab{flex:none;justify-content:flex-start;width:100%;padding:11px 13px;font-size:14px;font-weight:600;gap:12px;border:1px solid transparent;border-radius:12px;color:var(--muted)}
  .fx-tab svg{color:var(--faint);flex-shrink:0;transition:color .15s}
  .fx-tab:hover:not(.on){background:var(--surface2);border-color:var(--border);color:var(--text)}
  .fx-tab:hover:not(.on) svg{color:var(--gold)}
  .fx-root .fx-tab.on{background:linear-gradient(135deg,rgba(124,58,237,.32),rgba(169,116,255,.16));border:1px solid var(--gold);color:#fff;box-shadow:0 6px 18px -6px rgba(124,58,237,.6),0 0 0 1px rgba(169,116,255,.2) inset}
  .fx-root .fx-tab.on svg{color:var(--gold)}
  .fx-tab .fx-lock-ic{margin-left:auto;font-size:13px}
  .fx-main{flex:1;min-width:0}
  /* layout: menu no TOPO (horizontal) */
  .fx-root.menu-topo .fx-body{display:block}
  .fx-root.menu-topo .fx-tabs{flex-direction:row;flex-wrap:wrap;width:auto;position:static;max-height:none;overflow:visible;padding:6px;margin-bottom:16px;gap:5px;box-shadow:none;background:rgba(255,255,255,.03);border-radius:16px}
  .fx-root.menu-topo .fx-side-brand{display:none}
  .fx-root.menu-topo .fx-tab{flex:1;min-width:max-content;justify-content:center;padding:10px 14px;border-radius:11px}
}
.fx-bb,.fx-mais-item{font-family:var(--ui)}
@media(max-width:920px){
  .fx-tabs{display:none}
  .fx-bottombar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(14,9,24,.97);backdrop-filter:blur(14px);border-top:1px solid var(--border2);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .fx-bb{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:var(--faint);font-size:10.5px;font-weight:600;cursor:pointer;padding:6px 2px;border-radius:10px;min-width:0;transition:color .15s}
  .fx-bb span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .fx-bb.on{color:var(--gold)}
  .fx-bb.on svg{color:var(--gold)}
  .fx-bb:active{transform:scale(.9)}
  .fx-main{padding-bottom:74px}
  .fx-fab{bottom:86px!important}
  .fx-ajuda-fab{bottom:86px!important}
}
/* ===== Layout NOVO (opcional) — coluna de Ações à direita no PC ===== */
.fx-layout-btn.on{background:linear-gradient(135deg,rgba(124,58,237,.32),rgba(169,116,255,.16))!important;border:1px solid var(--gold)!important;color:#fff!important;box-shadow:0 6px 18px -6px rgba(124,58,237,.6)}
@media(min-width:921px){
  .fx-root.layout-novo{ padding-right:226px; }
  .fx-root.layout-novo .fx-toolbar{
    position:fixed; top:20px; right:max(20px, calc((100vw - 1100px)/2 + 20px));
    width:198px; flex-direction:column; align-items:stretch; flex-wrap:nowrap;
    gap:7px; max-height:calc(100vh - 40px); overflow-y:auto; overflow-x:hidden;
    background:linear-gradient(180deg,var(--surface),var(--bg2));
    border:1px solid var(--border2); border-radius:20px; padding:14px 12px;
    box-shadow:0 24px 60px -34px rgba(124,58,237,.5), inset 0 1px 0 rgba(255,255,255,.05);
    z-index:30; animation:fxRailIn .5s cubic-bezier(.16,1,.3,1) both;
  }
  @keyframes fxRailIn{ from{opacity:0; transform:translateX(24px)} to{opacity:1; transform:none} }
  .fx-root.layout-novo .fx-toolbar::before{ content:"⚡ Ações"; display:block; font-size:11px; font-weight:800; letter-spacing:1.2px; color:var(--accent-2); padding:2px 6px 8px; border-bottom:1px solid var(--border); margin-bottom:2px; }
  .fx-root.layout-novo .fx-toolbar::-webkit-scrollbar{ width:6px }
  .fx-root.layout-novo .fx-toolbar::-webkit-scrollbar-thumb{ background:var(--border2); border-radius:3px }
  .fx-root.layout-novo .fx-toolbar > *{ width:100%; }
  .fx-root.layout-novo .fx-toolbar .fx-tool{ justify-content:flex-start; padding:10px 12px; border-radius:11px; }
  .fx-root.layout-novo .fx-toolbar .fx-tool:hover{ background:var(--surface2); border-color:var(--border2); transform:translateX(2px); }
  /* Perfil/Tema/Modo/Melhorar saem do rail e vão pro rodapé da esquerda */
  .fx-root.layout-novo .fx-toolbar .fx-tema-btn,
  .fx-root.layout-novo .fx-toolbar .fx-modo-btn,
  .fx-root.layout-novo .fx-toolbar .fx-perfil-btn,
  .fx-root.layout-novo .fx-toolbar .fx-tool-up{ display:none !important; }
  .fx-side-foot{ margin-top:14px; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:7px; }
  .fx-side-perfil{ display:flex; align-items:center; gap:10px; width:100%; padding:9px 11px; border-radius:13px; background:linear-gradient(135deg,rgba(124,58,237,.24),rgba(169,116,255,.08)); border:1px solid var(--gold); color:#fff; cursor:pointer; font-family:var(--ui); font-weight:700; text-align:left; }
  .fx-side-perfil .fx-conta-foto{ width:30px; height:30px; border-radius:9px; object-fit:cover; flex-shrink:0; }
  .fx-side-perfil b{ font-size:13.5px; display:block; }
  .fx-side-plano{ font-size:11px; color:var(--violet); font-weight:600; }
  .fx-side-foot .fx-tool{ justify-content:flex-start; width:100%; }
  /* cartões-número (KPIs) do topo ganham vida no layout Novo */
  .fx-root.layout-novo .fx-mini{ transition:transform .2s, box-shadow .2s, border-color .2s; }
  .fx-root.layout-novo .fx-mini:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -18px var(--glow); border-color:var(--gold); }
}
/* Card Entradas e Saídas (centro, layout Novo) */
.fx-es-card{ padding:15px 17px; }
.fx-es-h{ display:flex; align-items:center; justify-content:space-between; font-weight:800; font-size:15px; margin-bottom:11px; flex-wrap:wrap; gap:6px; }
.fx-es-sum{ font-size:12.5px; font-weight:600; color:var(--muted); }
.fx-es-sum .green{ color:var(--green); } .fx-es-sum .red{ color:var(--red); }
.fx-es-list{ display:flex; flex-direction:column; }
.fx-es-item{ display:flex; align-items:center; gap:11px; padding:9px 4px; }
.fx-es-item + .fx-es-item{ border-top:1px solid var(--border); }
.fx-es-ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font-size:16px; flex-shrink:0; }
.fx-es-ic.in{ background:var(--green-d); } .fx-es-ic.out{ background:var(--gold-d); }
.fx-es-info{ flex:1; min-width:0; } .fx-es-info b{ font-size:13.5px; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .fx-es-info small{ font-size:11px; color:var(--muted); } .fx-es-info small.pend{ color:var(--gold); }
.fx-es-val{ font-weight:800; font-size:14px; white-space:nowrap; } .fx-es-val.in{ color:var(--green); } .fx-es-val.pend{ color:var(--gold); }
.fx-es-foot{ font-size:11.5px; color:var(--faint); margin-top:10px; text-align:center; }
/* Rosca de categorias (centro, layout Novo) */
.fx-gc-card{ padding:15px 17px; }
.fx-gc-h{ font-weight:800; font-size:15px; margin-bottom:12px; }
.fx-gc-body{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.fx-gc-donut{ position:relative; width:160px; height:160px; flex-shrink:0; }
.fx-gc-donut svg{ transform:rotate(-90deg); }
.fx-gc-ring{ fill:none; stroke-width:15; stroke-linecap:round; transition:stroke-dasharray 1.1s cubic-bezier(.16,1,.3,1); }
.fx-gc-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fx-gc-big{ font-size:20px; font-weight:800; letter-spacing:-.5px; }
.fx-gc-sm{ font-size:11px; color:var(--muted); }
.fx-gc-legend{ flex:1; min-width:150px; display:flex; flex-direction:column; gap:9px; }
.fx-gc-lg{ display:flex; align-items:center; gap:9px; font-size:13.5px; }
.fx-gc-dot{ width:12px; height:12px; border-radius:4px; flex-shrink:0; }
.fx-gc-nm{ flex:1; color:var(--muted); }
.fx-gc-pc{ font-weight:800; }
/* Barras dos meses (centro, layout Novo) */
.fx-gm-card{ padding:15px 17px; }
.fx-gm-h{ font-weight:800; font-size:15px; margin-bottom:6px; }
.fx-gm-h small{ font-weight:400; font-size:11.5px; color:var(--muted); }
.fx-gm-bars{ display:flex; align-items:stretch; gap:10px; height:130px; padding-top:20px; }
.fx-gm-bar{ flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; position:relative; }
.fx-gm-fill{ width:100%; max-width:38px; min-height:4px; border-radius:7px 7px 3px 3px; background:linear-gradient(180deg,var(--violet),var(--gold)); transition:height .9s cubic-bezier(.16,1,.3,1),filter .2s; cursor:pointer; }
.fx-gm-bar.atual .fx-gm-fill{ background:linear-gradient(180deg,#5BE7C4,var(--green)); box-shadow:0 0 16px -3px var(--green); }
.fx-gm-bar:hover .fx-gm-fill{ filter:brightness(1.15) saturate(1.15); }
.fx-gm-x{ display:flex; gap:10px; margin-top:7px; }
.fx-gm-x span{ flex:1; text-align:center; font-size:11px; color:var(--faint); text-transform:capitalize; }
.fx-gm-x span.atual{ color:var(--green); font-weight:700; }
.fx-gm-tip{ position:absolute; top:14px; left:50%; transform:translate(-50%,-100%) scale(.85); opacity:0; background:var(--surface2); border:1px solid var(--border2); border-radius:8px; padding:4px 9px; font-size:11.5px; font-weight:700; white-space:nowrap; transition:.16s cubic-bezier(.16,1,.3,1); pointer-events:none; z-index:5; box-shadow:0 8px 20px -8px #000; }
.fx-gm-bar:hover .fx-gm-tip{ opacity:1; transform:translate(-50%,-110%) scale(1); }
/* ➕ central elevado na barra de baixo (celular, layout Novo) */
@media(max-width:920px){
  .fx-root.layout-novo .fx-bottombar{ overflow:visible; }
  .fx-root.layout-novo .fx-bottombar .fx-bb-fab svg{ width:26px; height:26px; padding:10px; box-sizing:content-box; background:linear-gradient(135deg,var(--gold),var(--violet)); border-radius:17px; color:#fff; box-shadow:0 10px 22px -6px var(--glow); margin-top:-20px; transition:transform .15s; }
  .fx-root.layout-novo .fx-bottombar .fx-bb-fab:active svg{ transform:scale(.9); }
  .fx-root.layout-novo .fx-bottombar .fx-bb-fab span{ color:var(--gold); font-weight:700; margin-top:3px; }
  .fx-root.layout-novo .fx-bottombar .fx-bb-fab.on svg{ filter:brightness(1.12); box-shadow:0 10px 26px -4px var(--gold); }
  /* barra de ações do topo: uma linha só que rola de lado (limpa, estilo app) */
  .fx-root.layout-novo .fx-toolbar{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent); }
  .fx-root.layout-novo .fx-toolbar::-webkit-scrollbar{ display:none; }
  .fx-root.layout-novo .fx-toolbar > *{ flex-shrink:0; }
  .fx-root.layout-novo .fx-toolbar .fx-tool{ font-size:12px; padding:7px 10px; }
  /* hero: 3 cartões compactos numa linha que rola (em vez de 3 grandes empilhados empurrando o conteúdo) */
  .fx-root.layout-novo .fx-hero{ grid-template-columns:1fr; }
  .fx-root.layout-novo .fx-hero-side{ flex-direction:row; justify-content:flex-start; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:2px; }
  .fx-root.layout-novo .fx-hero-side::-webkit-scrollbar{ display:none; }
  .fx-root.layout-novo .fx-mini{ flex:0 0 auto; min-width:150px; }
  .fx-root.layout-novo .fx-mini-lbl{ font-size:10px; line-height:1.2; }
  /* rosca: centraliza o donut quando empilha no celular */
  .fx-root.layout-novo .fx-gc-body{ justify-content:center; }
}
/* ===== Parte 3: vida e brilho (Layout Novo) ===== */
.fx-root.layout-novo .fx-brand .fx-logo, .fx-root.layout-novo .fx-side-brand .fx-logo{ animation:fxLogoFloat 4.5s ease-in-out infinite; }
@keyframes fxLogoFloat{ 0%,100%{ transform:translateY(0) rotate(0deg); } 50%{ transform:translateY(-3px) rotate(-3deg); } }
.fx-root.layout-novo .fx-brand .fx-logo{ box-shadow:0 8px 20px -6px var(--glow); }
.fx-root.layout-novo .fx-hero-val{ text-shadow:0 0 26px rgba(169,116,255,.22); }
.fx-root.layout-novo .fx-card{ transition:transform .2s, box-shadow .2s; }
.fx-root.layout-novo .fx-card:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -22px var(--glow); }
@media (prefers-reduced-motion:reduce){ .fx-root.layout-novo .fx-brand .fx-logo, .fx-root.layout-novo .fx-side-brand .fx-logo{ animation:none !important; } }
/* Parte 3: botões vibrantes + aba ativa viva (Layout Novo) */
.fx-root.layout-novo .fx-tool{ transition:transform .14s, box-shadow .2s, border-color .2s, background .2s; }
.fx-root.layout-novo .fx-tool:hover{ border-color:var(--gold); background:rgba(124,58,237,.12); box-shadow:0 5px 16px -7px var(--glow); transform:translateY(-1px); }
.fx-root.layout-novo .fx-tool:active{ transform:scale(.97); }
.fx-root.layout-novo .fx-tab.on{ animation:fxTabGlow 2.8s ease-in-out infinite; }
@keyframes fxTabGlow{ 0%,100%{ filter:brightness(1); } 50%{ filter:brightness(1.13); } }
.fx-root.layout-novo .fx-bb:active{ transform:scale(.9); }
@media (prefers-reduced-motion:reduce){ .fx-root.layout-novo .fx-tab.on{ animation:none !important; } }
.fx-mais-overlay{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;animation:fxfade .2s}
@keyframes fxfade{from{opacity:0}to{opacity:1}}
.fx-mais-sheet{background:var(--surface);border-top-left-radius:22px;border-top-right-radius:22px;border:1px solid var(--border2);width:100%;max-height:75vh;overflow-y:auto;padding:8px 16px calc(20px + env(safe-area-inset-bottom));animation:fxslideup .25s}
@keyframes fxslideup{from{transform:translateY(100%)}to{transform:translateY(0)}}
.fx-mais-head{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;font-weight:800;font-size:16px;position:sticky;top:0;background:var(--surface)}
.fx-mais-head::before{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:3px;background:var(--border2)}
.fx-mais-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 0}
.fx-mais-item{display:flex;flex-direction:column;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:16px 8px;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer}
/* Parte 4: menu deslizante vibrante (Layout Novo) */
.fx-root.layout-novo .fx-mais-item{transition:transform .14s,border-color .2s,background .2s,box-shadow .2s}
.fx-root.layout-novo .fx-mais-item:active{transform:scale(.94)}
.fx-root.layout-novo .fx-mais-item:hover{border-color:var(--gold);background:rgba(124,58,237,.1);box-shadow:0 6px 16px -8px var(--glow)}
.fx-root.layout-novo .fx-mais-item.on{border-color:var(--gold);background:linear-gradient(135deg,rgba(124,58,237,.28),rgba(169,116,255,.12));color:#fff}
.fx-root.layout-novo .fx-mais-item.on svg{color:var(--gold)}
/* ===== LAYOUT PREMIUM (Pierre) — paleta plana e calma. Inerte sem .layout-premium; Clássico e temas (light/preto) ficam intactos. ===== */
#root .fx-root.layout-premium{
  --bg:#0B0B0F; --bg2:#0E0E13; --surface:#131319; --surface2:#1A1A22;
  --border:#22222B; --border2:#2E2E38; --text:#EDEDF2; --muted:#8A8A99; --faint:#6E6E7C;
  --green:#4ECB8E; --green-d:rgba(78,203,142,.14); --red:#F2727F; --red-d:rgba(242,114,127,.14);
  --gold:#A974FF; --gold-d:rgba(169,116,255,.14); --gold2:#8E5BFF; --ink:#0B0B0F;
  --steel:#5C7CFA; --steel-d:rgba(92,124,250,.13);
  --teal:#4ECB8E; --teal-d:rgba(78,203,142,.12); --violet:#A974FF; --violet-d:rgba(169,116,255,.16);
  --glow:rgba(169,116,255,.34); --sheen:rgba(255,255,255,.04);
  --accent:var(--gold); --accent-2:var(--gold); --accent-soft:var(--gold-d); --accent-strong:var(--gold2);
  --shadow:0 18px 44px -26px rgba(0,0,0,.7);
  background:#0B0B0F; background-image:none;
}
/* ===== Visão geral PREMIUM (Pierre) — classes .fxp-*, só existem no layout-premium; herdam os tokens Pierre ===== */
.fxp-vg{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:18px; align-items:start; }
.fxp-main{ min-width:0; display:flex; flex-direction:column; gap:16px; }
.fxp-aside{ min-width:0; display:flex; flex-direction:column; gap:12px; }
@media (max-width:900px){ .fxp-vg{ grid-template-columns:1fr; } }
.fxp-hero{ padding:4px 2px 2px; }
.fxp-hero-l{ margin:0 0 8px; font-size:12px; color:var(--muted); }
.fxp-hero-v{ margin:0; font-size:clamp(32px,5vw,44px); font-weight:700; letter-spacing:-.5px; line-height:1.02; font-variant-numeric:tabular-nums; color:var(--text); }
.fxp-hero-v.in{ color:#fff; } .fxp-hero-v.out{ color:var(--red); }
.fxp-hero-line{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:12px; font-size:12.5px; color:var(--muted); }
.fxp-hero-line .in{ color:var(--green); } .fxp-hero-line .out{ color:var(--red); }
.fxp-sep{ color:var(--faint); }
.fxp-card{ background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:18px; }
.fxp-card-h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:14px; }
.fxp-card-h h2,.fxp-card-h h3{ margin:0; font-size:15px; font-weight:600; color:var(--text); }
.fxp-meta{ font-size:12px; color:var(--faint); white-space:nowrap; }
.fxp-chart-svg{ display:block; width:100%; height:auto; }
.fxp-chart-area{ fill:url(#fxpgrad); }
.fxp-chart-line{ fill:none; stroke:var(--gold); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.fxp-chart-dot{ fill:var(--gold); }
.fxp-chart-x{ display:flex; justify-content:space-between; margin-top:8px; font-size:11px; color:var(--faint); font-variant-numeric:tabular-nums; }
.fxp-chart-x .on{ color:var(--gold); }
.fxp-sec{ display:flex; justify-content:space-between; align-items:baseline; margin:2px 2px 0; }
.fxp-sec h2{ margin:0; font-size:13px; font-weight:600; color:var(--text); }
.fxp-link{ background:none; border:0; color:var(--muted); font:inherit; font-size:12px; cursor:pointer; }
.fxp-link:hover{ color:var(--text); }
.fxp-list{ background:var(--surface); border:1px solid var(--border); border-radius:16px; overflow:hidden; }
.fxp-row{ display:flex; align-items:center; gap:12px; padding:13px 16px; border-bottom:1px solid var(--border); }
.fxp-row:last-child{ border-bottom:0; }
.fxp-row-ic{ width:34px; height:34px; flex:0 0 auto; border-radius:10px; background:var(--surface2); display:flex; align-items:center; justify-content:center; font-size:16px; line-height:1; color:var(--muted); }
.fxp-row-ic.in{ color:var(--green); } .fxp-row-ic.out{ color:var(--red); }
.fxp-row-b{ flex:1; min-width:0; }
.fxp-row-nm{ margin:0; font-size:14px; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fxp-row-sb{ margin:2px 0 0; font-size:11.5px; color:var(--faint); }
.fxp-row-v{ flex:0 0 auto; font-size:14px; color:var(--text); font-variant-numeric:tabular-nums; white-space:nowrap; }
.fxp-row-v.in{ color:var(--green); } .fxp-row-v.out{ color:var(--red); }
.fxp-kpis{ display:flex; flex-direction:column; gap:10px; }
.fxp-kpi{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.fxp-kpi-l{ margin:0; font-size:12px; color:var(--muted); }
.fxp-kpi-v{ margin:0; font-size:17px; font-weight:600; color:var(--text); font-variant-numeric:tabular-nums; white-space:nowrap; }
.fxp-kpi-v.in{ color:var(--green); } .fxp-kpi-v.out{ color:var(--red); }
.fxp-cat{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.fxp-donut{ width:124px; height:124px; border-radius:50%; position:relative; flex:0 0 auto; }
.fxp-donut-c{ position:absolute; inset:25%; border-radius:50%; background:var(--surface); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fxp-donut-big{ font-size:14px; font-weight:600; color:var(--text); font-variant-numeric:tabular-nums; }
.fxp-donut-sm{ font-size:10px; color:var(--faint); }
.fxp-cat-lg{ width:100%; display:flex; flex-direction:column; gap:10px; }
.fxp-cat-it{ display:flex; align-items:center; gap:10px; font-size:12.5px; }
.fxp-cat-chip{ width:9px; height:9px; border-radius:3px; flex:0 0 auto; }
.fxp-cat-nm{ color:var(--muted); flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fxp-cat-pc{ color:var(--text); font-variant-numeric:tabular-nums; }
.fxp-limit{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.fxp-limit-u{ font-size:22px; font-weight:600; color:var(--text); font-variant-numeric:tabular-nums; }
.fxp-limit-t{ font-size:12px; color:var(--faint); }
.fxp-empty{ background:var(--surface); border:1px dashed var(--border2); border-radius:16px; padding:22px 18px; text-align:center; color:var(--muted); font-size:13px; }
.fxp-empty.sm{ padding:14px; border:0; background:none; }
/* ===== Topo PREMIUM enxuto (.fxt-*) — marca + status + 🔔 + 👤 com menu; só no layout-premium ===== */
.fxt-bar{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 2px; margin-bottom:14px; border-bottom:1px solid var(--border); }
.fxt-brand{ display:flex; align-items:center; gap:10px; min-width:0; }
.fxt-logo{ width:30px; height:30px; border-radius:9px; background:var(--surface2); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--gold); overflow:hidden; flex:0 0 auto; }
.fxt-logo img{ width:100%; height:100%; object-fit:cover; }
.fxt-name{ font-size:17px; font-weight:600; letter-spacing:-.3px; color:var(--text); }
.fxt-right{ display:flex; align-items:center; gap:8px; min-width:0; }
.fxt-ic-btn{ width:38px; height:38px; flex:0 0 auto; border-radius:11px; background:var(--surface); border:1px solid var(--border); color:var(--text); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:16px; transition:border-color .15s, background .15s; }
.fxt-ic-btn:hover{ border-color:var(--border2); background:var(--surface2); }
.fxt-av{ overflow:hidden; }
.fxt-av img{ width:100%; height:100%; object-fit:cover; border-radius:11px; }
.fxt-backdrop{ position:fixed; inset:0; z-index:60; }
.fxt-menu{ position:absolute; top:54px; right:0; z-index:61; width:250px; max-width:84vw; background:var(--surface); border:1px solid var(--border2); border-radius:14px; padding:6px; box-shadow:0 18px 44px -20px rgba(0,0,0,.8); }
.fxt-menu-h{ font-size:11px; color:var(--faint); padding:8px 10px 6px; }
.fxt-mi{ display:flex; align-items:center; gap:11px; width:100%; padding:10px; border:0; background:none; color:var(--text); font:inherit; font-size:13.5px; text-align:left; border-radius:9px; cursor:pointer; }
.fxt-mi:hover{ background:var(--surface2); }
.fxt-mi-ic{ width:20px; text-align:center; font-size:15px; flex:0 0 auto; }
.fxt-mi.danger{ color:var(--red); }
.fxt-mi:disabled{ opacity:.4; cursor:not-allowed; }
.fxt-bell{ position:relative; }
.fxt-dot{ position:absolute; top:7px; right:7px; width:8px; height:8px; border-radius:50%; background:var(--red); border:2px solid var(--surface); }
.fxt-sep{ height:1px; background:var(--border); margin:5px 8px; }
/* ===== Nav PREMIUM no PC (>=921px): barra lateral esquerda fixa; esconde a lista cheia de abas. Celular fica pra depois (usa a barra de baixo padrão). ===== */
.fx-bb-brand{ display:none; }
@media (min-width:921px){
  .fx-root.layout-premium{ max-width:none; padding-left:236px; }
  .fx-root.layout-premium .fx-tabs{ display:none !important; }
  .fx-root.layout-premium .fxt-brand{ display:none; }
  .fx-root.layout-premium .fxt-bar{ justify-content:flex-end; }
  .fx-root.layout-premium .fxp-vg{ max-width:1240px; }
  .fx-root.layout-premium .fx-bottombar{ display:flex !important; flex-direction:column; justify-content:flex-start; gap:4px; position:fixed; left:0; top:0; bottom:0; width:212px; z-index:45; padding:18px 12px; overflow-y:auto; background:linear-gradient(180deg,var(--surface),var(--bg2)); border-right:1px solid var(--border); }
  .fx-root.layout-premium .fx-bb-brand{ display:flex; align-items:center; gap:10px; padding:2px 11px 16px; margin-bottom:6px; border-bottom:1px solid var(--border); font-size:18px; font-weight:700; letter-spacing:-.3px; color:var(--text); }
  .fx-root.layout-premium .fx-bb-brand-logo{ width:30px; height:30px; border-radius:9px; background:var(--surface2); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--gold); flex:0 0 auto; }
  .fx-root.layout-premium .fx-bottombar .fx-bb{ display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:12px; width:100%; padding:11px 13px; border:0; background:none; border-radius:12px; cursor:pointer; font-family:var(--ui); font-size:14px; font-weight:600; color:var(--muted); transition:color .15s, background .15s; }
  .fx-root.layout-premium .fx-bottombar .fx-bb span{ max-width:none; white-space:nowrap; }
  .fx-root.layout-premium .fx-bottombar .fx-bb:last-child{ margin-top:auto; }
  .fx-root.layout-premium .fx-bottombar .fx-bb:hover{ color:var(--text); background:var(--surface2); }
  .fx-root.layout-premium .fx-bottombar .fx-bb.on{ color:#fff; background:var(--gold-d); }
  .fx-root.layout-premium .fx-bottombar .fx-bb.on svg{ color:var(--gold); }
}
/* ===== Celular PREMIUM (<=920px): casca Pierre — barra de baixo plana, ➕ ao centro, topo com marca ===== */
@media (max-width:920px){
  .fx-root.layout-premium .fx-bottombar{ background:var(--surface); backdrop-filter:none; border-top:1px solid var(--border); padding:6px 8px calc(6px + env(safe-area-inset-bottom)); overflow:visible; }
  .fx-root.layout-premium .fx-bottombar .fx-bb{ color:var(--faint); }
  .fx-root.layout-premium .fx-bottombar .fx-bb.on{ color:var(--gold); background:none; }
  .fx-root.layout-premium .fx-bottombar .fx-bb.on svg{ color:var(--gold); }
  .fx-root.layout-premium .fx-bottombar > .fx-bb:nth-child(2){ order:1; }   /* Início */
  .fx-root.layout-premium .fx-bottombar > .fx-bb:nth-child(4){ order:2; }   /* Analisar */
  .fx-root.layout-premium .fx-bottombar > .fx-bb-fab{ order:3; }            /* Lançar (➕) ao centro */
  .fx-root.layout-premium .fx-bottombar > .fx-bb:nth-child(5){ order:4; }   /* Extras */
  .fx-root.layout-premium .fx-bottombar > .fx-bb:nth-child(6){ order:5; }   /* Conta */
  .fx-root.layout-premium .fx-bottombar .fx-bb-fab span{ color:var(--gold); font-weight:700; margin-top:4px; }
  .fx-root.layout-premium .fx-bottombar .fx-bb-fab svg{ width:24px; height:24px; padding:11px; box-sizing:content-box; background:var(--gold2); color:#fff; border-radius:16px; margin-top:-22px; box-shadow:0 10px 24px -6px var(--glow); transition:transform .15s; }
  .fx-root.layout-premium .fx-bottombar .fx-bb-fab:active svg{ transform:scale(.92); }
  .fx-root.layout-premium .fxt-brand{ display:flex; }
}
/* ===== Transição ao ligar o Visual Premium (celular): tela se reconstruindo ===== */
.fx-transp{ position:fixed; inset:0; z-index:120; background:#0B0B0F; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:28px; text-align:center; animation:fxTranspIn .25s ease; }
.fx-transp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; width:168px; margin-bottom:26px; }
.fx-transp-grid i{ display:block; height:30px; border-radius:8px; background:#1A1A22; animation:fxTile 1.4s ease both; }
.fx-transp-grid i.on{ background:#8E5BFF; }
.fx-transp h3{ margin:0 0 8px; font-size:19px; font-weight:700; color:#fff; }
.fx-transp p{ margin:0 0 22px; font-size:13.5px; color:#8A8A99; max-width:280px; line-height:1.55; }
.fx-transp-bar{ width:170px; height:5px; border-radius:3px; background:#1A1A22; overflow:hidden; }
.fx-transp-bar i{ display:block; height:100%; border-radius:3px; background:#A974FF; width:8%; animation:fxFill 2.3s ease forwards; }
.fx-transp-skip{ margin-top:22px; background:none; border:0; color:#6E6E7C; font:inherit; font-size:12.5px; cursor:pointer; }
@keyframes fxTranspIn{ from{ opacity:0 } to{ opacity:1 } }
@keyframes fxTile{ 0%{ opacity:0; transform:translateY(8px) scale(.85) } 60%{ opacity:1 } 100%{ opacity:1; transform:none } }
@keyframes fxFill{ from{ width:8% } to{ width:96% } }
/* ===== Folha de avaliação em estrelas (celular Premium) ===== */
.fx-avs-back{ position:fixed; inset:0; z-index:115; background:rgba(11,11,15,.62); display:flex; align-items:flex-end; justify-content:center; animation:fxTranspIn .2s ease; }
.fx-avs{ width:100%; max-width:440px; background:var(--surface,#131319); border:1px solid var(--border,#22222B); border-bottom:0; border-radius:22px 22px 0 0; padding:22px 20px calc(22px + env(safe-area-inset-bottom)); animation:fxAvsUp .28s ease; }
@keyframes fxAvsUp{ from{ transform:translateY(40px); opacity:.6 } to{ transform:none; opacity:1 } }
.fx-avs-grip{ width:40px; height:4px; border-radius:3px; background:#2E2E38; margin:0 auto 16px; }
.fx-avs h3{ margin:0 0 5px; font-size:17px; font-weight:600; color:var(--text,#EDEDF2); text-align:center; }
.fx-avs p{ margin:0 0 16px; font-size:13px; color:var(--muted,#8A8A99); text-align:center; line-height:1.5; }
.fx-avs-stars{ display:flex; justify-content:center; gap:10px; margin-bottom:18px; }
.fx-avs-star{ background:none; border:0; font-size:34px; line-height:1; cursor:pointer; color:#2E2E38; transition:transform .12s, color .12s; padding:2px; }
.fx-avs-star.on{ color:#A974FF; }
.fx-avs-star:active{ transform:scale(1.18); }
.fx-avs-ta{ width:100%; box-sizing:border-box; min-height:78px; background:var(--surface2,#1A1A22); border:1px solid var(--border,#22222B); border-radius:12px; padding:11px 13px; color:var(--text,#EDEDF2); font:inherit; font-size:14px; resize:vertical; margin-bottom:14px; }
.fx-avs-ic{ width:56px; height:56px; border-radius:18px; background:var(--surface2,#1A1A22); border:1px solid var(--border2,#2E2E38); display:flex; align-items:center; justify-content:center; color:#A974FF; margin:0 auto 14px; font-size:26px; }
.fx-avs-big{ text-align:center; font-size:24px; color:#A974FF; letter-spacing:2px; margin-bottom:14px; }
.fx-avs-btn{ width:100%; box-sizing:border-box; padding:13px; border:0; border-radius:13px; background:var(--gold2,#8E5BFF); color:#fff; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.fx-avs-btn:disabled{ opacity:.45; cursor:default; }
.fx-avs-btn.loja{ background:#fff; color:#131319; display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; }
.fx-avs-skip{ display:block; width:100%; margin-top:10px; background:none; border:0; color:var(--faint,#6E6E7C); font:inherit; font-size:13px; cursor:pointer; text-align:center; }
/* ===== Acabamento Pierre nas abas (blocos compartilhados) — só no Premium, calma e consistência ===== */
.fx-root.layout-premium .fx-card{ border-radius:18px; box-shadow:none; }
.fx-root.layout-premium .fx-chip.on{ background:var(--gold-d); color:var(--gold); border-color:transparent; }
.fx-root.layout-premium .fx-field input, .fx-root.layout-premium .fx-field select, .fx-root.layout-premium .fx-field textarea{ background:var(--surface2); border-radius:11px; }
.fx-root.layout-premium .fx-btn{ border-radius:12px; }
.fx-mais-item.on{border-color:var(--gold);color:var(--text);background:var(--gold-d)}
.fx-mais-item.on svg{color:var(--gold)}
.fx-mais-item:active{transform:scale(.94)}
.fx-tab { flex:1; min-width:max-content; display:flex; align-items:center; justify-content:center; gap:7px; background:transparent; border:none; color:var(--muted); padding:10px 13px; border-radius:9px; cursor:pointer; font-family:var(--ui); font-size:13px; font-weight:500; transition:.16s; white-space:nowrap; }
.fx-tab:hover { color:var(--text); } .fx-tab.on { background:var(--surface2); color:var(--text); box-shadow:0 2px 8px rgba(0,0,0,.25); }

.fx-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.fx-span { grid-column:1/-1; }
.fx-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:18px; }
.fx-card-h { display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; margin-bottom:16px; flex-wrap:wrap; } .fx-card-h svg { color:var(--gold); }
.fx-help { font-size:12.5px; color:var(--muted); line-height:1.6; margin:-6px 0 16px; }

.fx-shead { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:10px; flex-wrap:wrap; }
.fx-shead-l { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; } .fx-shead-l svg { color:var(--gold); }
.fx-count { font-style:normal; font-size:11px; color:var(--muted); background:var(--bg2); padding:2px 8px; border-radius:20px; }
.fx-add { display:inline-flex; align-items:center; gap:6px; background:var(--gold); color:#1B0A33; border:none; padding:8px 14px; border-radius:10px; font-family:var(--ui); font-size:12.5px; font-weight:600; cursor:pointer; } .fx-add:hover { filter:brightness(1.07); }

.fx-badge { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:7px; line-height:1; }
.tone-green { background:var(--green-d); color:var(--green); } .tone-red { background:var(--red-d); color:var(--red); }
.tone-gold { background:var(--gold-d); color:var(--gold); } .tone-steel { background:var(--steel-d); color:var(--steel); }
.tone-teal { background:var(--teal-d); color:var(--teal); } .tone-violet { background:var(--violet-d); color:var(--violet); }
.tone-redx { background:var(--red); color:#2A0810; } /* atrasado: vermelho mais forte (preenchido) */
.fx-filters { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:12px; }
.fx-chipbtn { display:inline-flex; align-items:center; gap:5px; background:var(--bg2); border:1px solid var(--border); color:var(--muted); padding:7px 12px; border-radius:9px; font-family:var(--ui); font-size:12px; font-weight:600; cursor:pointer; transition:.15s; }
.fx-chipbtn:hover { border-color:var(--border2); color:var(--text); }
.fx-chipbtn.on { background:var(--gold-d); border-color:rgba(169,116,255,.5); color:var(--gold); }
.fx-chipbtn em { font-style:normal; opacity:.7; }
.fx-search { width:100%; background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:10px 13px; font-family:var(--ui); font-size:13px; outline:none; margin-bottom:12px; }
.fx-search:focus { border-color:var(--gold); }
.fx-partbar { height:7px; background:var(--red-d); border-radius:99px; overflow:hidden; margin-top:7px; }
.fx-partbar > div { height:100%; background:linear-gradient(90deg,var(--green),#1FA86C); border-radius:99px; }
.fx-quickpart { flex-shrink:0; border:1px solid var(--border2); background:var(--surface2); color:var(--muted); padding:0 10px; height:34px; border-radius:9px; cursor:pointer; font-family:var(--ui); font-size:11px; font-weight:600; transition:.15s; }
.fx-quickpart:hover { color:var(--gold); border-color:var(--gold); }
.fx-tl { display:flex; flex-direction:column; gap:8px; }
.fx-tl-row { display:grid; grid-template-columns:120px 1fr auto; gap:12px; align-items:center; background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:11px 13px; }
.fx-tl-m { font-size:12px; font-weight:600; color:var(--text); } .fx-tl-m small { display:block; color:var(--muted); font-weight:400; font-size:10.5px; }
.fx-tl-bar { height:8px; background:var(--surface2); border-radius:99px; overflow:hidden; } .fx-tl-bar > div { height:100%; background:linear-gradient(90deg,var(--steel),#3F7FD0); border-radius:99px; }
.fx-tl-v { font-family:var(--mono); font-size:13px; font-weight:700; text-align:right; } .fx-tl-v small { display:block; color:var(--green); font-size:10.5px; }
.fx-pago { display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:600; color:var(--teal); background:var(--teal-d); padding:2px 7px; border-radius:6px; }
.fx-venc { display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:600; padding:2px 7px; border-radius:6px; }
.fx-venc.red { background:var(--red-d); color:var(--red); } .fx-venc.gold { background:var(--gold-d); color:var(--gold); }
.fx-venc.green { background:var(--green-d); color:var(--green); } .fx-venc.muted { background:rgba(92,102,117,.16); color:var(--muted); }

.fx-srctable { display:flex; flex-direction:column; }
.fx-srcrow { display:grid; grid-template-columns:1.35fr .9fr .9fr .9fr .9fr; gap:10px; padding:11px 4px; border-bottom:1px solid var(--border); align-items:center; font-size:13px; }
.fx-srcrow:last-child { border-bottom:none; } .fx-srcrow.head { color:var(--muted); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; border-bottom:1px solid var(--border2); }
.fx-srcname { display:flex; align-items:center; gap:7px; font-weight:600; } .fx-srcname svg { color:var(--muted); }
.fx-srcrow .mono { font-size:12.5px; }

.fx-split { display:flex; flex-direction:column; gap:11px; }
.fx-split-row { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.fx-split-row span { display:flex; align-items:center; gap:8px; } .fx-split-row span svg { color:var(--muted); }
.fx-split-row.sub { font-size:12px; padding-left:22px; } .fx-split-row.sub span { color:var(--muted); }
.fx-split-row.hl { background:var(--green-d); border:1px solid rgba(47,208,138,.2); padding:11px 13px; border-radius:11px; margin-top:3px; } .fx-split-row.hl span svg { color:var(--green); }

.fx-catlist { display:flex; flex-direction:column; gap:14px; }
.fx-cat-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:7px; font-size:12.5px; } .fx-cat-top .mono em { color:var(--faint); font-style:normal; }
.fx-track { height:8px; background:var(--bg2); border-radius:99px; overflow:hidden; } .fx-track.lg { height:9px; } .fx-track.xl { height:12px; }
.fx-fill { height:100%; border-radius:99px; transition:width .5s cubic-bezier(.3,1,.4,1); }
.fx-fill.green { background:linear-gradient(90deg,var(--green),#1FA86C); } .fx-fill.steel { background:linear-gradient(90deg,var(--steel),#3F7FD0); }
.fx-fill.gold { background:linear-gradient(90deg,var(--gold),#6D28D9); } .fx-fill.teal { background:linear-gradient(90deg,var(--teal),#1FA89A); }
.fx-fill.red { background:linear-gradient(90deg,var(--red),#D14B61); }

.fx-rows { display:flex; flex-direction:column; gap:8px; }
.fx-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:var(--bg2); border:1px solid var(--border); border-radius:13px; padding:12px 14px; cursor:pointer; transition:.15s; font-family:var(--ui); }
.fx-row:hover { border-color:var(--border2); background:var(--surface2); }
.fx-row.static { cursor:default; } .fx-row.static:hover { border-color:var(--border); background:var(--bg2); }
.fx-row-ic { width:33px; height:33px; border-radius:9px; display:grid; place-items:center; flex-shrink:0; }
.fx-row-ic.green { background:var(--green-d); color:var(--green); } .fx-row-ic.red { background:var(--red-d); color:var(--red); }
.fx-row-ic.gold { background:var(--gold-d); color:var(--gold); } .fx-row-ic.violet { background:var(--violet-d); color:var(--violet); }
.fx-row-mid { flex:1; min-width:0; } .asbtn { background:none; border:none; cursor:pointer; text-align:left; font-family:var(--ui); }
.fx-row-mid.asbtn:hover .fx-row-name { color:var(--gold); }
.fx-row-name { font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:7px; flex-wrap:wrap; color:var(--text); }
.fx-chip { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:500; color:var(--gold); background:var(--gold-d); padding:2px 7px; border-radius:6px; }
.fx-row-meta { font-size:11.5px; color:var(--muted); margin-top:4px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; } .fx-row-meta b { color:var(--text); font-weight:600; }
.fx-obs { color:var(--faint); } .fx-lock { display:inline-flex; align-items:center; gap:4px; font-family:var(--mono); font-size:10.5px; color:var(--faint); } .fx-lock svg { color:var(--steel); }
.fx-row-val { font-family:var(--mono); font-size:14px; font-weight:700; flex-shrink:0; } .fx-row-val.gold { color:var(--gold); }
.fx-pen { color:var(--faint); flex-shrink:0; } .fx-row:hover .fx-pen { color:var(--gold); }
.fx-status { flex-shrink:0; border:none; padding:5px 11px; border-radius:8px; font-family:var(--ui); font-size:11px; font-weight:600; cursor:pointer; transition:.15s; } .fx-status:hover { filter:brightness(1.12); }
.fx-foot-total { display:flex; justify-content:space-between; align-items:center; margin-top:16px; padding-top:15px; border-top:1px solid var(--border); font-size:13.5px; font-weight:600; } .fx-foot-total .mono { font-size:16px; }

.fx-legend { display:flex; gap:14px; align-items:center; margin-bottom:14px; font-size:11px; color:var(--muted); flex-wrap:wrap; } .fx-legend span { display:flex; align-items:center; gap:5px; } .fx-legend.inl { margin:0; font-weight:400; text-transform:none; letter-spacing:0; }
.fx-group { margin-bottom:18px; } .fx-group:last-child { margin-bottom:0; }
.fx-group-h { display:flex; justify-content:space-between; align-items:center; margin-bottom:9px; }

.fx-debtgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fx-debtbtn { background:none; border:none; padding:0; cursor:pointer; text-align:left; position:relative; }
.fx-debt { background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:15px; transition:.15s; } .fx-debtbtn:hover .fx-debt { border-color:var(--border2); }
.fx-debt-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:13px; }
.fx-debt-name { font-size:14px; font-weight:600; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.fx-debt-vals { display:flex; gap:22px; margin-bottom:12px; } .fx-debt-vals span { font-size:11px; color:var(--muted); display:block; margin-bottom:2px; } .fx-debt-vals b { font-size:14px; }
.fx-debt-foot { display:flex; justify-content:space-between; gap:8px; margin-top:10px; font-size:11.5px; color:var(--muted); flex-wrap:wrap; }
.fx-debt-edit { display:inline-flex; align-items:center; gap:4px; position:absolute; top:14px; right:14px; font-size:10.5px; color:var(--faint); opacity:0; transition:.15s; } .fx-debtbtn:hover .fx-debt-edit { opacity:1; color:var(--gold); }

.fx-cc { display:grid; grid-template-columns:1.2fr 1fr; gap:18px; background:linear-gradient(135deg,#1c2331,#10141d); border:1px solid var(--border2); border-radius:16px; padding:20px; margin-bottom:14px; }
.fx-cc-chip { width:36px; height:26px; border-radius:6px; background:linear-gradient(135deg,var(--gold),#6D28D9); margin-bottom:14px; }
.fx-cc-lbl { font-size:12px; color:var(--muted); } .fx-cc-val { font-size:30px; font-weight:700; letter-spacing:-.5px; margin:5px 0 8px; }
.fx-cc-pago { font-size:11.5px; color:var(--faint); display:flex; align-items:center; gap:5px; } .fx-cc-pago svg { color:var(--teal); }
.fx-cc-right { display:flex; flex-direction:column; gap:10px; justify-content:center; } .fx-cc-dates { display:flex; gap:10px; }
.fx-cc-field { display:flex; flex-direction:column; gap:5px; font-size:11px; color:var(--muted); }
.fx-cc-field input, .fx-cc-field select { background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:9px; padding:9px 11px; font-family:var(--mono); font-size:13px; outline:none; width:100%; } .fx-cc-field select { font-family:var(--ui); } .fx-cc-field input:focus, .fx-cc-field select:focus { border-color:var(--gold); }
.fx-cc-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.fx-cc-summary > div { background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:12px 14px; } .fx-cc-summary span { font-size:11px; color:var(--muted); display:block; margin-bottom:5px; } .fx-cc-summary b { font-size:15px; }
.fx-empty-cc { text-align:center; padding:26px 16px; color:var(--muted); } .fx-empty-cc svg { color:var(--gold); margin-bottom:10px; } .fx-empty-cc p { font-size:13px; line-height:1.6; margin:0 auto 16px; max-width:420px; } .fx-empty-cc b { color:var(--text); }

.fx-sep { display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--muted); line-height:1.5; padding:14px 16px; } .fx-sep svg { color:var(--steel); flex-shrink:0; } .fx-sep b { color:var(--text); }
.fx-combo { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; } .fx-combo.col { grid-template-columns:1fr 1fr; }
.fx-combo > div { background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:13px 14px; } .fx-combo span { font-size:11px; color:var(--muted); display:block; margin-bottom:5px; } .fx-combo b { font-size:16px; }
.fx-extbar { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.fx-extbar-l { display:flex; align-items:center; gap:12px; } .fx-extbar-l svg { color:var(--gold); flex-shrink:0; }
.fx-extbar-t { font-size:13.5px; font-weight:600; } .fx-extbar-s { font-size:12px; color:var(--muted); margin-top:2px; }
.fx-switch { width:48px; height:27px; border-radius:99px; background:var(--bg2); border:1px solid var(--border2); position:relative; cursor:pointer; transition:.2s; flex-shrink:0; }
.fx-switch span { position:absolute; top:2px; left:2px; width:21px; height:21px; border-radius:50%; background:var(--faint); transition:.2s; }
.fx-switch.on { background:var(--green-d); border-color:var(--green); } .fx-switch.on span { left:23px; background:var(--green); }

.fx-ta { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:11px 13px; font-family:var(--ui); font-size:13px; outline:none; width:100%; resize:vertical; } .fx-ta:focus { border-color:var(--gold); }
.fx-or { text-align:center; font-size:12px; color:var(--faint); margin:10px 0; }
.fx-csvbox { border:1px solid var(--border2); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:12px; background:var(--bg2); margin-top:12px; }
.fx-csv-controls { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.fx-csv-controls label, .fx-csv-map label { display:flex; flex-direction:column; gap:5px; font-size:11.5px; color:var(--muted); } .fx-csv-controls > label.fx-check { flex-direction:row; align-items:center; }
.fx-csv-controls select, .fx-csv-map select { background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:7px 9px; font-family:var(--ui); font-size:12.5px; outline:none; }
.fx-csv-map { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.fx-check { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); cursor:pointer; } .fx-check input { width:16px; height:16px; accent-color:var(--gold); cursor:pointer; }

.fx-banner { display:flex; align-items:center; gap:11px; padding:14px 16px; border-radius:14px; background:var(--red-d); border:1px solid rgba(251,111,132,.32); color:var(--red); font-size:13px; font-weight:600; line-height:1.5; }
.fx-banner svg { flex-shrink:0; }
.fx-alertbox { display:flex; gap:11px; padding:14px 16px; border-radius:13px; font-size:13px; line-height:1.6; border:1px solid; }
.fx-alertbox .ic { flex-shrink:0; margin-top:1px; }
.fx-alertbox.red { background:var(--red-d); border-color:rgba(251,111,132,.32); color:#FFC9D2; } .fx-alertbox.red .ic { color:var(--red); }
.fx-alertbox.gold { background:var(--gold-d); border-color:rgba(169,116,255,.32); color:#FCE2A6; } .fx-alertbox.gold .ic { color:var(--gold); }
.fx-alertbox.green { background:var(--green-d); border-color:rgba(47,208,138,.32); color:#AEEBCF; } .fx-alertbox.green .ic { color:var(--green); }
.fx-alertbox b { color:#fff; }
.fx-eq { display:flex; flex-direction:column; gap:10px; }
.fx-eq-row { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.fx-eq-row > span { color:var(--muted); display:flex; gap:8px; align-items:center; } .fx-eq-row > span svg { color:var(--muted); }
.fx-eq-row.hl { background:var(--surface2); border:1px solid var(--border2); padding:11px 13px; border-radius:11px; }
.fx-eq-row.hl > span { color:var(--text); font-weight:600; }
.fx-stratgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fx-strat { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:14px; }
.fx-strat h4 { margin:0 0 5px; font-size:13px; display:flex; align-items:center; gap:7px; } .fx-strat h4 svg { color:var(--gold); }
.fx-strat p { margin:0; font-size:12px; color:var(--muted); line-height:1.55; }

.fx-modal-wrap { position:fixed; inset:0; background:rgba(5,7,11,.65); backdrop-filter:blur(3px); z-index:50; display:flex; align-items:center; justify-content:center; padding:18px; animation:fade .2s; }
@keyframes fade { from { opacity:0; } }
.fx-modal { background:var(--bg); border:1px solid var(--border2); border-radius:18px; width:480px; max-width:100%; max-height:90vh; display:flex; flex-direction:column; animation:pop .24s cubic-bezier(.3,1,.4,1); }
@keyframes pop { from { transform:scale(.96); opacity:.6; } }
.fx-modal-h { display:flex; justify-content:space-between; align-items:center; padding:17px 20px; border-bottom:1px solid var(--border); font-size:15px; font-weight:600; }
.fx-x { background:var(--surface2); border:none; color:var(--muted); width:32px; height:32px; border-radius:9px; display:grid; place-items:center; cursor:pointer; } .fx-x:hover { color:var(--text); }
.fx-modal-body { padding:20px; overflow-y:auto; display:flex; flex-direction:column; gap:14px; }
.fx-modal-foot { display:flex; gap:10px; padding:16px 20px; border-top:1px solid var(--border); } .fx-modal-foot .fx-btn { flex:1; }
.fx-field { display:flex; flex-direction:column; gap:6px; } .fx-field > span { font-size:12px; color:var(--muted); font-weight:500; }
.fx-field input, .fx-field select, .fx-field textarea { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:11px 13px; font-family:var(--ui); font-size:13.5px; outline:none; transition:.15s; width:100%; } .fx-field input:focus, .fx-field select:focus, .fx-field textarea:focus { border-color:var(--gold); }
.fx-readonly { background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:11px 13px; font-size:13.5px; color:var(--green); }
.fx-row3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; } .fx-row2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fx-toggle { display:flex; gap:6px; background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:4px; }
.fx-toggle button { flex:1; background:transparent; border:none; color:var(--muted); padding:9px; border-radius:8px; cursor:pointer; font-family:var(--ui); font-size:13px; font-weight:600; display:flex; align-items:center; justify-content:center; gap:7px; }
.fx-toggle button.on { background:var(--violet-d); color:var(--violet); } .fx-toggle button.on:first-child { background:var(--surface2); color:var(--text); }
.fx-locked { background:var(--steel-d); border:1px solid rgba(94,160,240,.22); border-radius:13px; padding:15px; }
.fx-locked-h { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--steel); margin-bottom:13px; }
.fx-locked-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; } .fx-locked-grid .full { grid-column:1/-1; }
.fx-locked-grid label { font-size:11px; color:var(--muted); display:block; margin-bottom:4px; } .fx-locked-grid .mono { font-size:14px; font-weight:700; }
.fx-locked-desc { font-family:var(--mono); font-size:12px; line-height:1.5; word-break:break-word; }
.fx-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:11px; padding:11px 16px; font-family:var(--ui); font-size:13.5px; font-weight:600; cursor:pointer; border:1px solid transparent; transition:.16s; } .fx-btn.full { width:100%; } .fx-btn:disabled { opacity:.4; cursor:not-allowed; }
.fx-btn.primary { background:var(--gold); color:#1B0A33; } .fx-btn.primary:hover:not(:disabled) { filter:brightness(1.07); }
.fx-btn.ghost { background:var(--surface2); color:var(--text); border-color:var(--border2); } .fx-btn.ghost:hover:not(:disabled) { border-color:var(--gold); }
.fx-btn.danger { background:var(--red-d); color:var(--red); border-color:rgba(251,111,132,.3); } .fx-btn.danger:hover { background:rgba(251,111,132,.2); }

.fx-toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg, var(--surface2), #1e1630); border:1px solid var(--green); color:var(--text); padding:13px 20px; border-radius:14px; font-size:14px; font-weight:600; display:flex; align-items:center; gap:10px; z-index:60; box-shadow:0 14px 40px rgba(0,0,0,.5), 0 0 0 1px rgba(52,216,156,.15) inset; animation:fade .2s; white-space:nowrap; } .fx-toast svg { color:var(--green); }

@media (max-width:760px) {
  .fx-root { padding:14px; padding-top:calc(14px + env(safe-area-inset-top)); }
  .fx-hero { grid-template-columns:1fr; } .fx-hero-val { font-size:32px; }
  .fx-grid, .fx-debtgrid, .fx-cc, .fx-cc-summary, .fx-combo, .fx-combo.col, .fx-stratgrid { grid-template-columns:1fr; }
  .fx-cc-val { font-size:26px; } .fx-row3 { grid-template-columns:1fr 1fr; }
  .fx-srcrow { grid-template-columns:1.3fr 1fr 1fr; } .fx-srcrow span:nth-child(4), .fx-srcrow span:nth-child(5) { display:none; }
  .fx-toolbar { width:100%; justify-content:flex-end; }
  .fx-monthbar { grid-template-columns:1fr; }
  .fx-month-actions { justify-content:flex-start; }
  .fx-month-list { grid-template-columns:1fr; }
  .fx-month-select { width:100%; }
  .fx-calib { grid-template-columns:1fr; }
}


.fx-root.light { --bg:#F7F4FC; --bg2:#EFE9F8; --surface:#FFFFFF; --surface2:#F4EFFB; --border:#E6DDF4; --border2:#D6C9EC; --text:#1B0A33; --muted:#6B6280; --faint:#9C90B4; --ink:#fff; background:#F7F4FC; background-image: radial-gradient(1000px 480px at 8% -10%, rgba(124,58,237,.14), transparent 58%), radial-gradient(820px 460px at 100% -4%, rgba(201,77,191,.10), transparent 55%); }
.fx-root.light .fx-title { background:linear-gradient(120deg,#3B1D6E,#7C3AED); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-fab { position:fixed; right:22px; bottom:22px; width:58px; height:58px; border-radius:18px; border:none; background:var(--gold); color:#1B0A33; display:grid; place-items:center; box-shadow:0 14px 35px rgba(0,0,0,.35); cursor:pointer; z-index:45; }
.fx-fab:hover { filter:brightness(1.06); }
.fx-dashgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.fx-dashbox { background:var(--bg2); border:1px solid var(--border); border-radius:13px; padding:14px; }
.fx-dashbox span { display:block; font-size:11px; color:var(--muted); margin-bottom:6px; }
.fx-dashbox b { font-family:var(--mono); font-size:17px; }
.fx-calmonth { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; }
.fx-calday { min-height:62px; background:var(--bg2); border:1px solid var(--border); border-radius:11px; padding:8px; font-size:11px; color:var(--muted); }
.fx-calnum { font-family:var(--mono); font-weight:700; color:var(--text); margin-bottom:5px; }
.fx-dotline { display:flex; gap:3px; flex-wrap:wrap; }
.fx-caldot { width:7px; height:7px; border-radius:50%; background:var(--red); }
.fx-caldot.green { background:var(--green); }
.fx-barChart { display:flex; flex-direction:column; gap:10px; }
.fx-chartrow { display:grid; grid-template-columns:100px 1fr 90px; gap:10px; align-items:center; font-size:12px; }
.fx-charttrack { height:18px; background:var(--bg2); border:1px solid var(--border); border-radius:99px; overflow:hidden; display:flex; }
.fx-chartin { background:var(--green); height:100%; opacity:.8; }
.fx-chartout { background:var(--red); height:100%; opacity:.8; }
.fx-budgetrow { display:grid; grid-template-columns:130px 1fr auto; gap:10px; align-items:center; margin-bottom:11px; font-size:12px; }
.fx-budgetrow input { background:var(--bg2); border:1px solid var(--border); color:var(--text); border-radius:9px; padding:8px 10px; font-family:var(--mono); }
@media (max-width:760px){ .fx-dashgrid{grid-template-columns:1fr 1fr;} .fx-chartrow{grid-template-columns:72px 1fr;} .fx-chartrow .r{grid-column:2;} .fx-calday{min-height:50px;padding:6px;} }
/* ===== resumo "bate o olho" ===== */
.fx-sem { width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.fx-sem.red { background:var(--red); box-shadow:0 0 0 4px rgba(251,111,132,.16); }
.fx-sem.gold { background:var(--gold); box-shadow:0 0 0 4px rgba(169,116,255,.16); }
.fx-sem.green { background:var(--green); box-shadow:0 0 0 4px rgba(47,208,138,.16); }
.fx-glance { display:flex; flex-direction:column; gap:13px; }
.fx-pay { background:rgba(251,111,132,.07); border:1px solid rgba(251,111,132,.3); border-radius:13px; padding:12px 14px; }
.fx-pay.calm { background:var(--gold-d); border-color:rgba(169,116,255,.3); }
.fx-pay-h { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; letter-spacing:.5px; color:var(--red); margin-bottom:10px; text-transform:uppercase; }
.fx-pay.calm .fx-pay-h { color:var(--gold); }
.fx-pay-row { display:flex; align-items:center; gap:9px; padding:6px 0; }
.fx-pay-row + .fx-pay-row { border-top:1px solid rgba(255,255,255,.04); }
.fx-pay-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.fx-pay-name { flex:1; font-size:13px; font-weight:600; color:var(--text); min-width:0; }
.fx-pay-when { font-size:10px; font-weight:600; padding:2px 7px; border-radius:6px; white-space:nowrap; }
.fx-pay-val { font-family:var(--mono); font-size:13.5px; font-weight:700; flex-shrink:0; }
.fx-big3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px; }
.fx-big { background:var(--bg2); border:1px solid var(--border); border-radius:12px; padding:13px 9px; text-align:center; }
.fx-big .l { font-size:10px; color:var(--muted); margin-bottom:6px; text-transform:uppercase; letter-spacing:.4px; }
.fx-big .v { font-family:var(--mono); font-size:21px; font-weight:700; line-height:1; }
.fx-progwrap { }
.fx-progtop { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.fx-progtop span { font-size:11.5px; color:var(--muted); }
.fx-prog { height:9px; background:rgba(251,111,132,.22); border-radius:99px; overflow:hidden; }
.fx-prog > div { height:100%; background:var(--green); border-radius:99px; transition:width .3s; }
.fx-sobra { display:flex; align-items:center; gap:11px; border:1px solid; border-radius:12px; padding:12px 14px; }
.fx-sobra.red { background:rgba(251,111,132,.07); border-color:rgba(251,111,132,.28); }
.fx-sobra.green { background:var(--green-d); border-color:rgba(47,208,138,.28); }
.fx-sobra .t { flex:1; } .fx-sobra .t b { font-size:12.5px; } .fx-sobra .t small { display:block; font-size:10.5px; color:var(--muted); margin-top:1px; }
.fx-sobra .n { font-family:var(--mono); font-size:20px; font-weight:700; }
/* ===== conciliação ===== */
.fx-cbtn { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border2); background:var(--surface2); color:var(--muted); padding:6px 10px; border-radius:8px; font-family:var(--ui); font-size:11px; font-weight:600; cursor:pointer; transition:.15s; }
.fx-cbtn:hover { color:var(--text); border-color:var(--border2); }
.fx-cbtn.add { border-color:rgba(47,208,138,.4); color:var(--green); background:var(--green-d); }
.fx-cbtn.add:hover { background:rgba(47,208,138,.2); }
.fx-cbtn.pay { border-color:rgba(169,116,255,.45); color:var(--gold); background:var(--gold-d); }
.fx-cacts { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.fx-concsec { margin-top:16px; }
.fx-concsec-h { font-size:12px; font-weight:700; display:flex; align-items:center; gap:7px; margin-bottom:10px; }
.fx-bankdesc { font-size:10.5px; color:var(--muted); margin-top:3px; word-break:break-word; }

/* ===================== PREMIUM LAYER (v14) ===================== */
.fx-root ::-webkit-scrollbar { width:10px; height:10px; }
.fx-root ::-webkit-scrollbar-thumb { background:var(--border2); border-radius:99px; border:2px solid transparent; background-clip:content-box; }
.fx-root ::-webkit-scrollbar-thumb:hover { background:var(--gold); background-clip:content-box; }

/* cards: layered surface, hairline sheen, soft depth, hover lift */
.fx-root .fx-card { background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, #fff 8%), var(--surface)); border:1px solid var(--border); border-radius:20px; box-shadow:0 1px 0 var(--sheen) inset, 0 18px 40px -28px rgba(0,0,0,.8); position:relative; transition:border-color .2s, box-shadow .2s; }
.fx-root .fx-card:hover { box-shadow:0 1px 0 var(--sheen) inset, 0 24px 50px -28px rgba(0,0,0,.85); }

/* HERO — the premium "card" of the app */
.fx-root .fx-hero { border-radius:24px; border:1px solid var(--border2);
  background: radial-gradient(140% 130% at 0% 0%, rgba(124,58,237,.28), transparent 52%), radial-gradient(120% 120% at 100% 0%, rgba(201,77,191,.16), transparent 50%), linear-gradient(180deg, #1d1430, #150d22);
  box-shadow:0 1px 0 rgba(255,255,255,.07) inset, 0 30px 70px -40px rgba(124,58,237,.6); overflow:hidden; }
.fx-root .fx-hero::after { content:""; position:absolute; top:-40%; right:-10%; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(169,116,255,.22), transparent 70%); pointer-events:none; }
.fx-root .fx-hero-lbl { color:var(--violet); letter-spacing:.2px; }
.fx-root .fx-hero-val { font-family:var(--ui); font-weight:800; font-size:42px; letter-spacing:-1.6px; text-shadow:0 4px 30px var(--glow); }
.fx-root .fx-hero-val.green { text-shadow:0 4px 30px rgba(52,216,156,.35); }
.fx-root .fx-hero-val.red { text-shadow:0 4px 30px rgba(255,107,134,.35); }
.fx-root .fx-mini { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.07); border-radius:14px; }

/* big numbers on the painel glance */
.fx-root .fx-big .v { letter-spacing:-.5px; }
.fx-root .fx-glance .fx-big { background:rgba(255,255,255,.03); }

/* TABS — glassy segmented control */
.fx-root .fx-tabs { background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:16px; }
.fx-root .fx-tab { border-radius:11px; font-weight:600; }
.fx-root .fx-tab.on { background:linear-gradient(180deg, #2a1d44, #221634); color:#fff; box-shadow:0 4px 14px -4px rgba(124,58,237,.6), 0 0 0 1px rgba(169,116,255,.35) inset; }
.fx-root .fx-tab.on svg { color:var(--gold); }

/* MONTH BAR — accent + gradient */
.fx-root .fx-monthbar { border-radius:18px; background:linear-gradient(120deg, #1a1230, #150e22); border:1px solid var(--border); position:relative; overflow:hidden; }
.fx-root .fx-monthbar::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--gold),var(--gold2)); }
.fx-root .fx-month-ic { background:linear-gradient(140deg, rgba(169,116,255,.3), rgba(109,40,217,.25)); color:var(--violet); border:1px solid rgba(169,116,255,.25); }

/* primary actions — gradient + glow */
.fx-root .fx-btn.primary, .fx-root .fx-add { background:linear-gradient(135deg,#B98CFF,#7C3AED); color:#fff; box-shadow:0 10px 26px -10px rgba(124,58,237,.8), 0 1px 0 rgba(255,255,255,.25) inset; border:none; }
.fx-root .fx-btn.primary:hover:not(:disabled), .fx-root .fx-add:hover { filter:brightness(1.08); }
.fx-root .fx-fab { background:linear-gradient(135deg,#B98CFF,#6D28D9); color:#fff; border-radius:20px; box-shadow:0 16px 38px -10px rgba(124,58,237,.85), 0 1px 0 rgba(255,255,255,.3) inset; }

/* inputs: focus glow */
.fx-root input:focus, .fx-root select:focus, .fx-root textarea:focus { box-shadow:0 0 0 3px rgba(169,116,255,.18); }

/* CREDIT CARD — premium plastic */
.fx-root .fx-cc { border-radius:20px; border:1px solid rgba(169,116,255,.28);
  background: radial-gradient(120% 140% at 85% -10%, rgba(201,77,191,.35), transparent 55%), linear-gradient(135deg, #2a1748 0%, #1a1030 55%, #120b22 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset, 0 30px 60px -34px rgba(124,58,237,.7); position:relative; overflow:hidden; }
.fx-root .fx-cc::after { content:""; position:absolute; inset:0; background:linear-gradient(115deg, transparent 40%, rgba(255,255,255,.07) 48%, transparent 56%); pointer-events:none; }
.fx-root .fx-cc-chip { width:42px; height:30px; border-radius:7px; background:linear-gradient(135deg,#e8c98a,#b88a2e); box-shadow:inset 0 0 0 1px rgba(0,0,0,.2); }

/* rounded depth on tone cards */
.fx-root .fx-sobra, .fx-root .fx-pay, .fx-root .fx-alertbox { border-radius:16px; }

/* light theme softening of premium surfaces */
.fx-root.light .fx-hero { background: radial-gradient(140% 130% at 0% 0%, rgba(124,58,237,.16), transparent 55%), linear-gradient(180deg,#fff,#f6f1fd); box-shadow:0 20px 50px -34px rgba(124,58,237,.4); }
.fx-root.light .fx-hero-lbl { color:#7C3AED; }
.fx-root.light .fx-hero-val { text-shadow:none; }
.fx-root.light .fx-mini { background:#fff; }
.fx-root.light .fx-tab.on { background:#fff; color:#1B0A33; box-shadow:0 4px 14px -6px rgba(124,58,237,.4), 0 0 0 1px rgba(124,58,237,.2) inset; }
.fx-root.light .fx-monthbar { background:linear-gradient(120deg,#fff,#f6f1fd); }
.fx-root.light .fx-cc { background:linear-gradient(135deg,#7C3AED,#9d4edd); border-color:rgba(124,58,237,.4); }
.fx-root.light .fx-cc .fx-cc-lbl, .fx-root.light .fx-cc .fx-cc-pago { color:rgba(255,255,255,.85); }
.fx-root.light .fx-cc .fx-cc-val { color:#fff; }

/* payment-impact ledger on the card screen */
.fx-root .fx-payimpact { margin-top:14px; padding:16px; border-radius:16px; border:1px solid rgba(169,116,255,.28); background:linear-gradient(180deg, rgba(169,116,255,.10), rgba(169,116,255,.03)); }
.fx-root .fx-payimpact-h { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--violet); margin-bottom:14px; }
.fx-root .fx-payimpact-h svg { color:var(--violet); }
.fx-root .fx-payledger { display:grid; grid-template-columns:1fr auto 1fr auto 1.15fr; gap:10px; align-items:stretch; }
.fx-root .fx-pl-cell { background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:13px; padding:12px 13px; display:flex; flex-direction:column; justify-content:center; }
.fx-root .fx-pl-cell span { display:block; font-size:10.5px; color:var(--muted); margin-bottom:6px; line-height:1.3; }
.fx-root .fx-pl-cell b { font-size:18px; letter-spacing:-.3px; }
.fx-root .fx-pl-cell.hl { background:linear-gradient(180deg, rgba(52,216,156,.10), transparent); border-color:rgba(169,116,255,.45); box-shadow:0 0 0 1px rgba(169,116,255,.22) inset; }
.fx-root .fx-pl-op { font-family:var(--mono); font-size:18px; font-weight:700; color:var(--faint); display:grid; place-items:center; }
@media (max-width:760px){ .fx-root .fx-payledger { grid-template-columns:1fr; } .fx-root .fx-pl-op { display:none; } }

/* month-review block on the painel */
.fx-root .fx-review { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:14px; }
.fx-root .fx-rv { background:rgba(255,255,255,.03); border:1px solid var(--border); border-radius:14px; padding:13px; }
.fx-root .fx-rv .lbl { font-size:10.5px; color:var(--muted); margin-bottom:6px; text-transform:uppercase; letter-spacing:.4px; }
.fx-root .fx-rv .val { font-family:var(--mono); font-size:17px; font-weight:700; letter-spacing:-.3px; }
.fx-root .fx-rv .delta { font-size:11px; font-weight:700; margin-top:5px; display:inline-flex; align-items:center; gap:3px; }
.fx-root .fx-leak { display:flex; align-items:center; gap:11px; padding:11px 13px; border-radius:12px; background:rgba(255,107,134,.06); border:1px solid rgba(255,107,134,.22); }
.fx-root .fx-leak + .fx-leak { margin-top:8px; }
.fx-root .fx-leak-ic { width:30px; height:30px; border-radius:9px; flex-shrink:0; display:grid; place-items:center; background:var(--red-d); color:var(--red); }
.fx-root .fx-leak-mid { flex:1; min-width:0; }
.fx-root .fx-leak-name { font-size:13px; font-weight:600; }
.fx-root .fx-leak-sub { font-size:11px; color:var(--muted); margin-top:2px; }
.fx-root .fx-leak-val { font-family:var(--mono); font-size:14px; font-weight:700; color:var(--red); flex-shrink:0; }
@media (max-width:760px){ .fx-root .fx-review { grid-template-columns:1fr 1fr; } }

/* changelog / novidades */
.fx-root .fx-news { display:flex; flex-direction:column; gap:11px; }
.fx-root .fx-newsitem { display:flex; gap:12px; padding:13px 14px; border-radius:14px; background:rgba(255,255,255,.03); border:1px solid var(--border); }
.fx-root .fx-newsitem.done { border-color:rgba(52,216,156,.25); }
.fx-root .fx-newsitem.idea { border-color:rgba(169,116,255,.28); background:rgba(169,116,255,.05); }
.fx-root .fx-news-ic { width:32px; height:32px; border-radius:10px; flex-shrink:0; display:grid; place-items:center; }
.fx-root .fx-newsitem.done .fx-news-ic { background:var(--green-d); color:var(--green); }
.fx-root .fx-newsitem.idea .fx-news-ic { background:var(--gold-d); color:var(--gold); }
.fx-root .fx-news-mid { flex:1; min-width:0; }
.fx-root .fx-news-t { font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.fx-root .fx-news-d { font-size:12px; color:var(--muted); margin-top:3px; line-height:1.5; }
.fx-root .fx-vtag { font-size:10px; font-weight:700; padding:2px 7px; border-radius:6px; background:var(--gold-d); color:var(--gold); letter-spacing:.3px; }

/* gentle entrance on first paint */
@keyframes fxUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.fx-root .fx-hero, .fx-root .fx-monthbar { animation:fxUp .45s cubic-bezier(.22,1,.36,1) both; }

/* v15 — gráficos, previsão e orçamento */
.fx-root .fx-chartbox { position:relative; width:100%; }
.fx-root .fx-chartbox canvas { max-width:100%; }
.fx-root .fx-forecast { display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:16px; }
.fx-root .fx-forecast.azul { border-color:rgba(52,216,156,.32); }
.fx-root .fx-forecast.vermelho { border-color:rgba(255,107,134,.32); }
.fx-root .fx-forecast .l { font-size:12.5px; color:var(--muted); flex:1 1 160px; }
.fx-root .fx-forecast .v { font-size:30px; font-weight:700; letter-spacing:-.5px; }
.fx-root .fx-forecast-tag { font-size:11.5px; font-weight:700; padding:5px 11px; border-radius:20px; white-space:nowrap; }
.fx-root .fx-budgetpct { font-weight:700; }
.fx-root .fx-budgetpct.green { color:var(--green); }
.fx-root .fx-budgetpct.gold { color:var(--gold); }
.fx-root .fx-budgetpct.red { color:var(--red); }

/* v15 — tela de bloqueio / PIN */
.fx-lockroot { display:flex; align-items:flex-start; justify-content:center; min-height:100vh; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:22px; }
.fx-lockcard { width:100%; max-width:360px; margin:auto; background:var(--surface); border:1px solid var(--border); border-radius:22px; padding:26px 22px 18px; text-align:center; box-shadow:0 24px 60px rgba(0,0,0,.4); animation:fxUp .4s cubic-bezier(.22,1,.36,1) both; }
@media (max-width:560px){ .fx-lockroot{ padding:12px; align-items:flex-start; } .fx-lockcard{ padding:20px 16px 14px; } }
.fx-lock-logo { width:58px; height:58px; border-radius:17px; margin:0 auto 14px; display:grid; place-items:center; background:linear-gradient(140deg,#B98CFF,#6D28D9); color:#fff; box-shadow:0 10px 30px rgba(124,58,237,.5), inset 0 1px 0 rgba(255,255,255,.25); }
.fx-lock-title { font-size:20px; font-weight:800; letter-spacing:-.4px; }
.fx-lock-sub { font-size:12.5px; color:var(--muted); margin:6px 0 18px; line-height:1.5; }
/* ===== PORTÃO PREMIUM — tela de login animada ("sair do sufoco / juntar dinheiro") ===== */
.fx-lock-bg { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.fx-lock-bg .orb { position:absolute; border-radius:50%; filter:blur(90px); will-change:transform; }
.fx-lock-bg .o1 { width:520px; height:520px; top:-170px; left:-130px; background:radial-gradient(circle,rgba(124,92,255,.42),transparent 70%); animation:lockOrb 18s ease-in-out infinite; }
.fx-lock-bg .o2 { width:440px; height:440px; bottom:-150px; right:-110px; background:radial-gradient(circle,rgba(103,199,230,.2),transparent 70%); animation:lockOrb 23s ease-in-out infinite reverse; }
@keyframes lockOrb { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(42px,-54px) scale(1.12)} }
.fx-lock-parts { position:absolute; inset:0; }
.fx-lock-parts i { position:absolute; bottom:-14px; border-radius:50%; background:rgba(180,156,255,.85); box-shadow:0 0 10px rgba(180,156,255,.9); opacity:0; animation:lockRise linear infinite; }
@keyframes lockRise { 0%{transform:translateY(0) scale(.5);opacity:0} 12%{opacity:.85} 86%{opacity:.45} 100%{transform:translateY(-94vh) scale(1);opacity:0} }
.fx-lockroot .fx-lockcard { position:relative; z-index:1; border:1px solid rgba(180,156,255,.2); box-shadow:0 30px 80px -28px rgba(124,92,255,.5), inset 0 1px 0 rgba(255,255,255,.06); animation:fxLockIn .75s cubic-bezier(.16,1,.3,1) both; }
.fx-lockroot:not(.light) .fx-lockcard { background:rgba(17,14,26,.8); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
@keyframes fxLockIn { from{opacity:0; transform:translateY(28px) scale(.95)} to{opacity:1; transform:none} }
.fx-lockroot .fx-lock-logo { width:74px; height:74px; border-radius:22px; position:relative; overflow:hidden; animation:lockLogo 5s ease-in-out infinite; box-shadow:0 16px 44px rgba(124,92,255,.6), inset 0 1px 0 rgba(255,255,255,.3); }
@keyframes lockLogo { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
.fx-lockroot .fx-lock-logo::after { content:''; position:absolute; inset:0; background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.28),transparent 60%); transform:translateX(-130%); animation:lockShine 4.5s ease-in-out infinite; }
@keyframes lockShine { 0%{transform:translateX(-130%)} 55%,100%{transform:translateX(230%)} }
.fx-lockroot .fx-lock-title { font-size:22px; }
@media (prefers-reduced-motion: reduce){
  .fx-lock-bg .orb, .fx-lockroot .fx-lockcard, .fx-lockroot .fx-lock-logo, .fx-lockroot .fx-lock-logo::after { animation:none !important; }
  .fx-lock-parts { display:none; }
}
/* ===== Abertura impactante (boas-vindas pós-login) ===== */
.fx-abertura{ position:fixed; inset:0; z-index:9000; background:#06050B; color:#F4F2FA; display:grid; place-items:center; text-align:center; overflow:hidden; animation:fxAbFade .5s ease both; }
.fx-abertura.fx-ab-out{ animation:fxAbFadeOut .45s ease forwards; }
@keyframes fxAbFade{ from{opacity:0} to{opacity:1} }
@keyframes fxAbFadeOut{ to{opacity:0; transform:scale(1.03)} }
.fx-ab-glow{ position:absolute; inset:0; background:radial-gradient(70vw 60vh at 50% 12%,rgba(124,58,237,.3),transparent 60%),radial-gradient(50vw 40vh at 80% 90%,rgba(34,211,238,.12),transparent 60%); }
.fx-ab-orb{ position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none; }
.fx-ab-orb.o1{ width:560px; height:560px; background:radial-gradient(circle,rgba(124,58,237,.4),transparent 70%); top:-160px; left:-120px; animation:fxAbOrb 16s ease-in-out infinite; }
.fx-ab-orb.o2{ width:440px; height:440px; background:radial-gradient(circle,rgba(168,85,247,.28),transparent 70%); bottom:-140px; right:-120px; animation:fxAbOrb 20s ease-in-out infinite reverse; }
@keyframes fxAbOrb{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(40px,-50px) scale(1.12)} }
.fx-ab-parts{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.fx-ab-parts i{ position:absolute; bottom:-12px; width:6px; height:6px; border-radius:50%; opacity:0; animation:fxAbRise linear infinite; }
@keyframes fxAbRise{ 0%{transform:translateY(0) scale(.5); opacity:0} 12%{opacity:.9} 88%{opacity:.5} 100%{transform:translateY(-96vh) scale(1); opacity:0} }
.fx-ab-wrap{ position:relative; z-index:2; padding:24px; max-width:560px; }
.fx-ab-logo{ width:104px; height:116px; margin:0 auto 26px; animation:fxAbLogoIn 1s cubic-bezier(.16,1,.3,1) both, fxAbFloat 5s ease-in-out 1s infinite; }
@keyframes fxAbLogoIn{ from{opacity:0; transform:scale(.5) translateY(20px)} to{opacity:1; transform:none} }
@keyframes fxAbFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.fx-ab-logo svg{ width:100%; height:100%; filter:drop-shadow(0 16px 40px rgba(124,58,237,.65)); }
.fx-ab-logo .lw{ animation:fxAbFlow 2.4s linear infinite; } .fx-ab-logo .lw2{ animation-duration:3.6s; }
@keyframes fxAbFlow{ from{transform:translateX(0)} to{transform:translateX(20px)} }
.fx-ab-bar{ width:180px; height:4px; border-radius:4px; background:rgba(255,255,255,.08); margin:22px auto 0; overflow:hidden; opacity:0; animation:fxAbUp .6s ease .3s both; }
.fx-ab-bar i{ display:block; height:100%; width:40%; border-radius:4px; background:linear-gradient(90deg,#7C3AED,#22D3EE); animation:fxAbLoad 2.6s ease-in-out infinite; }
@keyframes fxAbLoad{ 0%{transform:translateX(-120%)} 100%{transform:translateX(360%)} }
.fx-ab-l1,.fx-ab-l2,.fx-ab-l3,.fx-ab-l4,.fx-ab-cta{ opacity:0; transform:translateY(18px); animation:fxAbUp .8s cubic-bezier(.16,1,.3,1) both; }
@keyframes fxAbUp{ to{opacity:1; transform:none} }
.fx-ab-l1{ font-size:15px; color:#ABA3C8; letter-spacing:.5px; animation-delay:.5s; }
.fx-ab-l2{ font-size:clamp(25px,6vw,38px); font-weight:800; line-height:1.12; margin:10px 0 6px; animation-delay:1s; }
.fx-ab-l3{ font-size:clamp(25px,6vw,38px); font-weight:800; line-height:1.12; animation-delay:1.6s; background:linear-gradient(110deg,#2EE6A0,#22D3EE 45%,#A855F7); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ab-l4{ font-size:clamp(16px,4vw,20px); color:#C9C2E4; margin-top:18px; animation-delay:2.4s; }
.fx-ab-cta{ margin-top:28px; animation-delay:3.1s; }
.fx-ab-btn{ display:inline-flex; align-items:center; gap:10px; background:linear-gradient(135deg,#C77DFF,#7C3AED); color:#fff; border:0; border-radius:16px; font-family:var(--ui); font-weight:800; font-size:18px; padding:0 34px; height:62px; cursor:pointer; position:relative; overflow:hidden; box-shadow:0 18px 40px -12px rgba(124,58,237,.7); animation:fxAbPulse 2.4s ease-in-out 3.5s infinite; }
.fx-ab-btn:active{ transform:scale(.97); }
@keyframes fxAbPulse{ 0%,100%{box-shadow:0 18px 40px -12px rgba(124,58,237,.7)} 50%{box-shadow:0 18px 54px -8px rgba(124,58,237,1),0 0 30px -6px #A855F7} }
.fx-ab-btn::before{ content:''; position:absolute; top:0; left:-120%; width:60%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent); animation:fxAbShine 3.4s ease-in-out 4s infinite; }
@keyframes fxAbShine{ 0%{left:-120%} 55%,100%{left:220%} }
.fx-ab-skip{ display:block; margin:16px auto 0; background:none; border:0; color:#736C92; font-size:13px; cursor:pointer; opacity:0; animation:fxAbUp .8s ease 3.7s both; font-family:var(--ui); }
@media (prefers-reduced-motion: reduce){
  .fx-abertura .fx-ab-orb, .fx-abertura .fx-ab-parts, .fx-ab-logo, .fx-ab-logo .lw, .fx-ab-bar i, .fx-ab-btn{ animation:none !important; }
  .fx-ab-l1,.fx-ab-l2,.fx-ab-l3,.fx-ab-l4,.fx-ab-cta,.fx-ab-skip{ animation:none !important; opacity:1 !important; transform:none !important; }
}
/* ===== Boas-vindas do AFILIADO (paleta verde + selo 🤝) ===== */
.fx-ab-afiliado .fx-ab-glow{ background:radial-gradient(70vw 60vh at 50% 12%,rgba(46,230,160,.28),transparent 60%),radial-gradient(50vw 40vh at 80% 90%,rgba(34,211,238,.14),transparent 60%); }
.fx-ab-afiliado .fx-ab-orb.o1{ background:radial-gradient(circle,rgba(46,230,160,.38),transparent 70%); }
.fx-ab-afiliado .fx-ab-orb.o2{ background:radial-gradient(circle,rgba(34,211,238,.26),transparent 70%); }
.fx-ab-selo{ font-size:88px; line-height:1; margin:0 auto 18px; filter:drop-shadow(0 16px 40px rgba(46,230,160,.6)); animation:fxAbLogoIn 1s cubic-bezier(.16,1,.3,1) both, fxAbFloat 5s ease-in-out 1s infinite; }
.fx-ab-hl{ background:linear-gradient(110deg,#2EE6A0,#34D89C 50%,#22D3EE); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ab-afiliado .fx-ab-l3{ background:linear-gradient(110deg,#2EE6A0,#22D3EE 60%,#34D89C); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ab-stats{ display:flex; gap:14px; justify-content:center; margin:22px 0 4px; flex-wrap:wrap; opacity:0; transform:translateY(18px); animation:fxAbUp .8s cubic-bezier(.16,1,.3,1) 2s both; }
.fx-ab-stat{ background:rgba(46,230,160,.08); border:1px solid rgba(46,230,160,.35); border-radius:16px; padding:12px 20px; min-width:120px; }
.fx-ab-stat b{ display:block; font-size:28px; font-weight:800; color:#2EE6A0; line-height:1.1; }
.fx-ab-stat span{ font-size:12px; color:#ABA3C8; }
.fx-ab-afiliado .fx-ab-btn{ background:linear-gradient(135deg,#2EE6A0,#12B981); box-shadow:0 18px 40px -12px rgba(16,185,129,.7); animation:fxAbPulseG 2.4s ease-in-out 3.5s infinite; }
@keyframes fxAbPulseG{ 0%,100%{box-shadow:0 18px 40px -12px rgba(16,185,129,.7)} 50%{box-shadow:0 18px 54px -8px rgba(16,185,129,1),0 0 30px -6px #2EE6A0} }
@media (prefers-reduced-motion: reduce){ .fx-ab-afiliado .fx-ab-selo, .fx-ab-afiliado .fx-ab-stats{ animation:none !important; opacity:1 !important; transform:none !important; } }
/* ===== Boas-vindas do VIP (paleta dourada + coroa 👑) ===== */
.fx-ab-vip .fx-ab-glow{ background:radial-gradient(70vw 60vh at 50% 12%,rgba(255,176,32,.26),transparent 60%),radial-gradient(50vw 40vh at 80% 90%,rgba(199,125,255,.14),transparent 60%); }
.fx-ab-vip .fx-ab-orb.o1{ background:radial-gradient(circle,rgba(255,176,32,.34),transparent 70%); }
.fx-ab-vip .fx-ab-orb.o2{ background:radial-gradient(circle,rgba(199,125,255,.24),transparent 70%); }
.fx-ab-vip .fx-ab-selo{ filter:drop-shadow(0 16px 40px rgba(255,176,32,.6)); }
.fx-ab-vip .fx-ab-hl{ background:linear-gradient(110deg,#FFD479,#FFB020 50%,#FF9040); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ab-vip .fx-ab-l3{ background:linear-gradient(110deg,#FFD479,#FFB020 60%,#C77DFF); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.fx-ab-vip .fx-ab-stat{ background:rgba(255,176,32,.09); border:1px solid rgba(255,176,32,.38); }
.fx-ab-vip .fx-ab-stat b{ color:#FFC24D; }
.fx-ab-vip .fx-ab-btn{ background:linear-gradient(135deg,#FFC24D,#F59E0B); color:#3a2600; box-shadow:0 18px 40px -12px rgba(245,158,11,.7); animation:fxAbPulseV 2.4s ease-in-out 3.5s infinite; }
@keyframes fxAbPulseV{ 0%,100%{box-shadow:0 18px 40px -12px rgba(245,158,11,.7)} 50%{box-shadow:0 18px 54px -8px rgba(245,158,11,1),0 0 30px -6px #FFB020} }
/* --- entrada TRIUNFAL do VIP: raios, confete e coroa dramática --- */
.fx-ab-rays{ position:absolute; top:-10vh; left:50%; width:150vmax; height:150vmax; transform:translateX(-50%); pointer-events:none; z-index:1; opacity:.65; background:conic-gradient(from 0deg, rgba(255,196,77,.14) 0deg, transparent 11deg, transparent 17deg, rgba(255,196,77,.10) 29deg, transparent 41deg, transparent 47deg, rgba(199,125,255,.08) 59deg, transparent 71deg); animation:fxRays 28s linear infinite; }
@keyframes fxRays{ to{ transform:translateX(-50%) rotate(360deg); } }
.fx-ab-confete{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:3; }
.fx-ab-conf{ position:absolute; top:-8%; line-height:1; opacity:0; will-change:transform,opacity; animation-name:fxConf; animation-timing-function:cubic-bezier(.3,.6,.5,1); animation-iteration-count:infinite; }
@keyframes fxConf{ 0%{ transform:translateY(-10%) rotate(0deg); opacity:0 } 8%{ opacity:1 } 100%{ transform:translateY(112vh) rotate(540deg); opacity:.9 } }
.fx-ab-selo-triunfal{ animation:fxTriunfo 1.1s cubic-bezier(.2,1.5,.4,1) both, fxAbFloat 4s ease-in-out 1.1s infinite, fxCoroaGlow 2.2s ease-in-out 1.1s infinite; }
@keyframes fxTriunfo{ 0%{ opacity:0; transform:scale(0) rotate(-30deg) } 60%{ opacity:1; transform:scale(1.25) rotate(8deg) } 100%{ transform:scale(1) rotate(0) } }
@keyframes fxCoroaGlow{ 0%,100%{ filter:drop-shadow(0 10px 30px rgba(255,176,32,.6)) } 50%{ filter:drop-shadow(0 12px 46px rgba(255,196,77,1)) } }
@media (prefers-reduced-motion: reduce){ .fx-ab-rays, .fx-ab-confete, .fx-ab-selo-triunfal{ animation:none !important; } .fx-ab-selo-triunfal{ opacity:1 !important; transform:none !important; } }
/* ===== Muro de reativação (assinatura cancelada/expirada) ===== */
.fx-reativar-wall{ position:fixed; inset:0; z-index:9200; display:grid; place-items:center; padding:22px; background:rgba(6,5,11,.82); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); animation:fxAbFade .3s ease both; }
.fx-reativar-card{ max-width:420px; width:100%; background:var(--surface,#141019); border:1px solid var(--border,#2a2337); border-radius:20px; padding:30px 26px; text-align:center; box-shadow:0 30px 80px -20px rgba(0,0,0,.7); }
.fx-reativar-emoji{ font-size:52px; line-height:1; margin-bottom:12px; }
.fx-reativar-card h2{ margin:0 0 8px; font-size:22px; font-weight:800; color:var(--text,#F4F2FA); }
.fx-reativar-card p{ margin:0 0 22px; font-size:14.5px; line-height:1.5; color:var(--muted,#ABA3C8); }
.fx-reativar-btn{ width:100%; height:52px; border:0; border-radius:14px; background:linear-gradient(135deg,#C77DFF,#7C3AED); color:#fff; font-family:var(--ui); font-weight:800; font-size:16px; cursor:pointer; box-shadow:0 14px 34px -12px rgba(124,58,237,.7); }
.fx-reativar-btn:active{ transform:scale(.98); }
.fx-reativar-sair{ margin-top:12px; width:100%; height:42px; border:1px solid var(--border,#2a2337); border-radius:12px; background:transparent; color:var(--muted,#ABA3C8); font-family:var(--ui); font-weight:600; font-size:13px; cursor:pointer; }
.fx-pindots { display:flex; gap:12px; justify-content:center; min-height:18px; margin-bottom:14px; flex-wrap:wrap; }
.fx-pindot { width:14px; height:14px; border-radius:50%; border:2px solid var(--border2); background:transparent; transition:.15s; }
.fx-pindot.on { background:var(--gold); border-color:var(--gold); box-shadow:0 0 0 4px var(--gold-d); }
.fx-lock-erro { font-size:12.5px; color:var(--red); font-weight:600; margin-bottom:12px; }
.fx-keypad { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-top:6px; }
.fx-key { height:60px; border-radius:15px; border:1px solid var(--border); background:var(--bg2); color:var(--text); font-family:var(--ui); font-size:22px; font-weight:600; cursor:pointer; transition:.12s; display:grid; place-items:center; }
.fx-key:hover:not(:disabled) { border-color:var(--gold); background:var(--surface2); }
.fx-key:active:not(:disabled) { transform:scale(.96); }
.fx-key:disabled { opacity:.4; cursor:not-allowed; }
.fx-key.ghost { font-size:24px; color:var(--muted); }
.fx-key.ok { background:var(--gold); color:var(--ink); border-color:var(--gold); }
.fx-lock-foot { font-size:11px; color:var(--faint); margin-top:18px; line-height:1.5; }
/* v18 — login (usuario + senha) + PIN */
.fx-lock-form { display:flex; flex-direction:column; gap:13px; margin:2px 0 14px; text-align:left; }
.fx-lock-field label { display:block; font-size:11.5px; color:var(--muted); margin-bottom:6px; font-weight:600; }
.fx-lock-input { width:100%; height:48px; border-radius:13px; border:1px solid var(--border); background:var(--bg2); color:var(--text); font-family:var(--ui); font-size:15px; padding:0 14px; transition:.12s; }
.fx-lock-input:focus { outline:none; border-color:var(--gold); background:var(--surface2); box-shadow:0 0 0 4px var(--gold-d); }
.fx-lock-pwwrap { position:relative; }
.fx-lock-pwwrap .fx-lock-input { padding-right:60px; }
.fx-lock-eye { position:absolute; right:6px; top:50%; transform:translateY(-50%); background:none; border:0; color:var(--muted); cursor:pointer; font-size:11px; font-weight:700; padding:8px 10px; font-family:var(--ui); }
.fx-lock-btn { width:100%; height:50px; border-radius:13px; border:0; background:var(--gold); color:var(--ink); font-family:var(--ui); font-weight:800; font-size:15px; cursor:pointer; transition:.12s; display:grid; place-items:center; }
.fx-lock-btn:hover:not(:disabled) { filter:brightness(1.08); }
.fx-lock-btn:active:not(:disabled) { transform:scale(.98); }
.fx-lock-btn:disabled { opacity:.5; cursor:not-allowed; }
.fx-lock-back { width:100%; height:42px; margin-top:8px; border-radius:13px; background:transparent; color:var(--muted); border:1px solid var(--border); font-family:var(--ui); font-weight:600; font-size:13px; cursor:pointer; transition:.12s; }
.fx-lock-back:hover { border-color:var(--border2); color:var(--text); }
.fx-lock-steps { display:flex; gap:7px; justify-content:center; margin:0 0 16px; }
.fx-lock-step { width:30px; height:4px; border-radius:2px; background:var(--border2); transition:.2s; }
.fx-lock-step.on { background:var(--gold); }
/* v19 — painel do admin */
.fx-adm-list { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.fx-adm-row { display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:13px 15px; flex-wrap:wrap; }
.fx-adm-id { display:flex; align-items:center; gap:11px; min-width:180px; flex:1; }
.fx-adm-av { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:var(--gold-d); color:var(--gold); font-weight:800; font-size:15px; flex-shrink:0; }
.fx-adm-name { font-weight:700; font-size:14.5px; }
.fx-adm-sub { font-size:11.5px; color:var(--muted); }
.fx-adm-tag { font-size:10px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; padding:3px 8px; border-radius:999px; }
.fx-adm-tag.admin { background:var(--violet-d); color:var(--violet); }
.fx-adm-tag.user { background:var(--steel-d); color:var(--steel); }
.fx-adm-acts { display:flex; gap:7px; flex-wrap:wrap; }
.fx-adm-btn { border:1px solid var(--border); background:var(--bg2); color:var(--text); border-radius:10px; padding:8px 11px; font-family:var(--ui); font-size:12.5px; font-weight:600; cursor:pointer; transition:.12s; display:inline-flex; align-items:center; gap:5px; }
.fx-adm-btn:hover:not(:disabled) { border-color:var(--gold); background:var(--surface2); }
.fx-adm-btn.primary { background:var(--gold); color:var(--ink); border-color:var(--gold); }
.fx-adm-btn.danger:hover:not(:disabled) { border-color:var(--red); color:var(--red); }
.fx-adm-btn:disabled { opacity:.45; cursor:not-allowed; }
.fx-adm-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:11px; align-items:end; }
.fx-adm-form .field { display:flex; flex-direction:column; gap:5px; }
.fx-adm-form label { font-size:11px; color:var(--muted); font-weight:600; }
.fx-adm-input, .fx-adm-select { height:44px; border-radius:11px; border:1px solid var(--border); background:var(--bg2); color:var(--text); font-family:var(--ui); font-size:14px; padding:0 12px; }
.fx-adm-input:focus, .fx-adm-select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-d); }
.fx-integ-card { transition: transform .14s ease, border-color .16s ease, box-shadow .16s ease; }
.fx-integ-card:hover { transform: translateY(-2px); border-color: var(--border2); box-shadow: 0 10px 24px -16px rgba(124,58,237,.7); }
.fx-integ-in { animation: fxIntegIn .24s ease both; }
@keyframes fxIntegIn { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform:none; } }
.fx-selo-pulse { animation: fxSeloPulse 1.7s ease-in-out infinite; }
@keyframes fxSeloPulse { 0%,100% { box-shadow:0 0 0 0 rgba(251,191,36,.55); } 55% { box-shadow:0 0 0 5px rgba(251,191,36,0); } }
@media (prefers-reduced-motion: reduce){ .fx-integ-card, .fx-integ-in, .fx-selo-pulse { animation:none !important; transition:none !important; } }
/* faixa de "entrar como" */
.fx-imp-bar { position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:12px; background:linear-gradient(90deg,var(--gold2),var(--gold)); color:#fff; padding:9px 14px; border-radius:0 0 14px 14px; font-size:13px; font-weight:600; margin:-22px -22px 16px; box-shadow:0 8px 22px rgba(124,58,237,.35); }
.fx-imp-bar button { background:rgba(255,255,255,.18); color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:9px; padding:7px 12px; font-family:var(--ui); font-weight:700; font-size:12.5px; cursor:pointer; }
.fx-imp-bar button:hover { background:rgba(255,255,255,.28); }
/* tutorial / boas-vindas */
.fx-tut-overlay { position:fixed; inset:0; z-index:9000; background:rgba(8,4,14,.78); backdrop-filter:blur(5px); display:flex; align-items:flex-start; justify-content:center; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:20px; animation:fxFade .25s ease both; }
@keyframes fxFade { from{opacity:0} to{opacity:1} }
.fx-tut-card { width:100%; max-width:460px; margin:auto; background:var(--surface); border:1px solid var(--border); border-radius:22px; padding:26px 24px 20px; box-shadow:0 30px 70px rgba(0,0,0,.5); animation:fxUp .4s cubic-bezier(.22,1,.36,1) both; }
@media (max-width:560px){
  .fx-tut-overlay { padding:10px; align-items:flex-start; }
  .fx-tut-card { padding:18px 16px 16px; border-radius:18px; max-width:100%; }
  .fx-tut-ico { width:48px; height:48px; border-radius:14px; margin-bottom:10px; }
  .fx-ciclo { flex-wrap:wrap; }
  .fx-ciclo-op { min-width:calc(50% - 4px); }
}
.fx-tut-ico { width:62px; height:62px; border-radius:18px; margin:0 auto 16px; display:grid; place-items:center; background:linear-gradient(140deg,#B98CFF,#6D28D9); color:#fff; box-shadow:0 12px 30px rgba(124,58,237,.5); }
.fx-tut-title { font-size:21px; font-weight:800; text-align:center; letter-spacing:-.4px; }
.fx-tut-text { font-size:14px; color:var(--muted); line-height:1.6; text-align:center; margin:10px 4px 18px; }
.fx-tut-dots { display:flex; gap:7px; justify-content:center; margin-bottom:18px; flex-wrap:wrap; }
.fx-tut-dot { width:8px; height:8px; border-radius:50%; background:var(--border2); transition:.2s; cursor:pointer; }
.fx-tut-dot.on { background:var(--gold); width:22px; border-radius:4px; }
.fx-tut-nav { display:flex; gap:10px; }
.fx-tut-nav button { flex:1; height:48px; border-radius:13px; font-family:var(--ui); font-weight:800; font-size:14.5px; cursor:pointer; border:0; transition:.12s; }
.fx-tut-nav .prim { background:var(--gold); color:var(--ink); }
.fx-tut-nav .prim:hover { filter:brightness(1.08); }
.fx-tut-nav .sec { background:transparent; color:var(--muted); border:1px solid var(--border); }
.fx-tut-nav .sec:hover { border-color:var(--border2); color:var(--text); }
.fx-tut-skip { display:block; margin:14px auto 0; background:none; border:0; color:var(--faint); font-size:12px; cursor:pointer; font-family:var(--ui); }
.fx-tut-skip:hover { color:var(--muted); }
/* v20 — assistente IA */
.fx-ia-msgs { display:flex; flex-direction:column; gap:10px; max-height:48vh; overflow-y:auto; padding:8px 2px; margin-top:4px; }
.fx-ia-msg { max-width:88%; padding:11px 14px; border-radius:15px; font-size:14px; line-height:1.55; white-space:pre-wrap; word-break:break-word; }
.fx-ia-msg.user { align-self:flex-end; background:var(--gold); color:var(--ink); border-bottom-right-radius:5px; }
.fx-ia-msg.bot { align-self:flex-start; background:var(--surface2); border:1px solid var(--border); color:var(--text); border-bottom-left-radius:5px; }
.fx-ia-typing { align-self:flex-start; color:var(--muted); font-size:13px; padding:4px 6px; }
.fx-ia-sug { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.fx-ia-sugbtn { border:1px solid var(--border); background:var(--bg2); color:var(--muted); border-radius:999px; padding:8px 13px; font-size:12.5px; font-family:var(--ui); cursor:pointer; transition:.12s; }
.fx-ia-sugbtn:hover { border-color:var(--gold); color:var(--text); }
.fx-ia-row { display:flex; gap:8px; margin-top:12px; align-items:flex-end; }
.fx-ia-input { flex:1; resize:none; min-height:48px; max-height:130px; border-radius:13px; border:1px solid var(--border); background:var(--bg2); color:var(--text); font-family:var(--ui); font-size:14px; padding:13px 14px; line-height:1.5; }
.fx-ia-input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-d); }
.fx-ia-send { border:0; background:var(--gold); color:var(--ink); border-radius:13px; padding:0 20px; height:48px; font-weight:800; font-family:var(--ui); font-size:14px; cursor:pointer; transition:.12s; }
.fx-ia-send:hover:not(:disabled) { filter:brightness(1.08); }
.fx-ia-send:disabled { opacity:.5; cursor:not-allowed; }
/* v22 — switches e códigos */
.fx-sw-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid var(--border)}
.fx-sw-row:first-of-type{border-top:0}
.fx-sw-t{font-weight:700;font-size:14.5px}
.fx-sw-d{font-size:12.5px;color:var(--muted);margin-top:2px;max-width:560px}
.fx-switch{flex-shrink:0;width:50px;height:28px;border-radius:999px;border:1px solid var(--border2);background:var(--bg2);position:relative;cursor:pointer;transition:.18s;padding:0}
.fx-switch span{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--faint);transition:.18s}
.fx-switch.on{background:var(--gold);border-color:var(--gold)}
.fx-switch.on span{left:24px;background:var(--ink)}
.fx-code{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;letter-spacing:1px;background:var(--surface2);border:1px solid var(--border2);color:var(--gold);border-radius:9px;padding:7px 11px}
.fx-code.usado{color:var(--faint);text-decoration:line-through;opacity:.7}
.fx-code button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0}
.fx-admnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.fx-admnav button{border:1px solid var(--border);background:var(--bg2);color:var(--muted);border-radius:11px;padding:9px 14px;font-family:var(--ui);font-weight:700;font-size:13px;cursor:pointer;transition:.12s}
.fx-admnav button.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.fx-admnav button:hover:not(.on){border-color:var(--gold);color:var(--text)}
/* Menu do Admin como sidebar no PC (>=921px); no celular cai no layout normal.
   Fase 3 da reforma: o "Menu novo" (grid de 2 colunas) virou o PADRÃO e os modos laterais por
   float (v143, esq/dir) foram APOSENTADOS — o float deixava os cards do conteúdo cobrirem o menu. */
@media(min-width:921px){
  .fx-root.fx-adm-side .fx-adm-items{width:240px;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:5px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px;margin-bottom:14px;max-height:calc(100vh - 24px);overflow-y:auto}
  .fx-root.fx-adm-side .fx-adm-items button{display:block;width:100%;text-align:left;font-size:13px}
  .fx-root.fx-adm-prem{display:grid;grid-template-columns:252px minmax(0,1fr);column-gap:20px;align-items:start}
  .fx-root.fx-adm-prem > .fx-head,.fx-root.fx-adm-prem > .fx-admnav:not(.fx-adm-items){grid-column:1/-1}
  .fx-root.fx-adm-prem > :not(.fx-head):not(.fx-admnav){grid-column:2}
  /* v199 devolveu o seletor pro topo (linha 2 do grid) — a sidebar mora na linha 3 pra não disputar lugar */
  .fx-root.fx-adm-prem > .fx-adm-items{grid-column:1;grid-row:3/span 99;width:auto;gap:3px;padding:14px 12px;position:sticky;top:12px}
  .fx-root.fx-adm-prem .fx-adm-items button{display:flex;align-items:center;border-color:transparent;background:transparent}
  .fx-root.fx-adm-prem .fx-adm-items button:hover:not(.on){background:var(--bg2);border-color:var(--border)}
  .fx-root.fx-adm-prem .fx-adm-items button:last-of-type{margin-top:12px}
}
/* Opção B aprovada (02/07) — sidebar premium com a identidade do Fluxo + animações.
   Tudo escopado no modo "✨ Menu novo (beta)" (.fx-adm-prem); quem pede menos movimento, recebe menos. */
@keyframes fxPmIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes fxPmView{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fxPmBar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fxPmBadge{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.fx-root.fx-adm-prem .fx-adm-items > *{animation:fxPmIn .38s cubic-bezier(.22,1,.36,1) both}
.fx-pm-view{animation:fxPmView .3s ease both}
.fx-root.fx-adm-prem .fx-adm-items button{position:relative;gap:9px;border-radius:10px;padding-left:13px;transition:background .18s,color .18s,transform .12s}
.fx-root.fx-adm-prem .fx-adm-items button svg{color:var(--faint);flex-shrink:0;transition:transform .18s,color .18s}
.fx-root.fx-adm-prem .fx-adm-items button:hover:not(.on) svg{transform:translateX(2px) scale(1.1);color:var(--gold)}
.fx-root.fx-adm-prem .fx-adm-items button:active{transform:scale(.97)}
.fx-root.fx-adm-prem .fx-adm-items button.on{background:var(--gold-d);color:var(--gold)}
.fx-root.fx-adm-prem .fx-adm-items button.on svg{color:var(--gold)}
.fx-root.fx-adm-prem .fx-adm-items button.on::before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--gold),var(--gold2));transform-origin:top;animation:fxPmBar .28s cubic-bezier(.22,1,.36,1) both}
.fx-root.fx-adm-prem .fx-adm-items button.on .fx-adm-badge{background:var(--gold);color:var(--ink)}
.fx-root.fx-adm-prem .fx-adm-badge{animation:fxPmBadge 2.4s ease-in-out infinite}
.fx-pm-user{display:flex;align-items:center;gap:9px;margin-top:10px;padding:9px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:11px;width:100%;box-sizing:border-box}
.fx-pm-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(140deg,var(--gold),var(--gold2));color:var(--ink);font-weight:800;font-size:13px;display:grid;place-items:center;flex-shrink:0}
.fx-pm-user b{font-size:12.5px;color:var(--text);display:block;line-height:1.25}
.fx-pm-user span{font-size:10.5px;color:var(--faint)}
.fx-root.fx-adm-prem .fx-adm-items button[data-cta] svg{color:currentColor}
/* conteúdo entra suave ao trocar de painel (as sections remontam ao trocar) */
.fx-root.fx-adm-prem > section{animation:fxPmView .32s ease both}
.fx-root.fx-adm-prem > section:nth-of-type(2){animation-delay:.06s}
.fx-root.fx-adm-prem > section:nth-of-type(3){animation-delay:.12s}
.fx-root.fx-adm-prem > section:nth-of-type(4){animation-delay:.18s}
.fx-root.fx-adm-prem > section:nth-of-type(n+5){animation-delay:.24s}
@media (prefers-reduced-motion: reduce){
  .fx-root.fx-adm-prem .fx-adm-items > *,.fx-pm-view,.fx-root.fx-adm-prem .fx-adm-items button.on::before,.fx-root.fx-adm-prem .fx-adm-badge,.fx-root.fx-adm-prem > section{animation:none}
}
/* Fase 2 da reforma do Admin — "Menu novo (beta)": sidebar com grupos nomeados + badges de pendência.
   No celular (<921px) os títulos de grupo quebram a linha e viram fileiras nomeadas — nada some. */
.fx-adm-grptit{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:10px 6px 2px;width:100%}
/* Fase 4: busca rápida de painéis no topo do Menu novo */
.fx-adm-busca{width:100%;box-sizing:border-box;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--bg2);color:var(--text);font-family:var(--ui);font-size:13px;padding:0 11px;margin-bottom:4px}
.fx-adm-busca:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.fx-adm-busca::placeholder{color:var(--faint)}
.fx-adm-badge{display:inline-block;min-width:18px;text-align:center;background:var(--gold);color:var(--ink);border-radius:999px;font-size:11px;font-weight:800;padding:1px 6px;margin-left:8px}
.fx-root.fx-adm-prem .fx-adm-badge{margin-left:auto}
.fx-admnav button.on .fx-adm-badge{background:var(--ink);color:var(--gold)}
/* v23 — cofre de senhas */
.fx-cofre-bar{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}
.fx-cofre-busca{flex:1;min-width:180px;height:46px;border-radius:13px;border:1px solid var(--border);background:var(--bg2);color:var(--text);font-family:var(--ui);font-size:15px;padding:0 14px}
.fx-cofre-busca:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.fx-cofre-list{display:flex;flex-direction:column;gap:11px;margin-top:6px}
.fx-cofre-card{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:14px 15px}
.fx-cofre-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.fx-cofre-emp{display:flex;align-items:center;gap:10px}
.fx-cofre-nome{font-weight:700;font-size:15px}
.fx-cofre-acts{display:flex;gap:6px;flex-wrap:wrap}
.fx-cofre-linha{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--border)}
.fx-cofre-rot{font-size:11.5px;color:var(--muted);width:120px;flex-shrink:0;font-weight:600}
.fx-cofre-val{flex:1;font-size:14.5px;word-break:break-all}
.fx-cofre-val.mono{font-family:var(--mono);letter-spacing:1px}
.fx-cofre-copy{background:var(--gold);color:var(--ink);border:0;border-radius:9px;padding:6px 11px;font-family:var(--ui);font-weight:700;font-size:12px;cursor:pointer;flex-shrink:0}
.fx-cofre-copy:hover{filter:brightness(1.08)}
.fx-cofre-eye{background:none;border:1px solid var(--border);color:var(--muted);border-radius:9px;padding:6px 10px;font-family:var(--ui);font-size:12px;cursor:pointer;flex-shrink:0}
.fx-cofre-eye:hover{border-color:var(--gold);color:var(--text)}
.fx-cofre-obs{font-size:12.5px;color:var(--muted);margin-top:8px;border-top:1px dashed var(--border);padding-top:8px}
.fx-cofre-dica{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--faint);margin-top:16px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:11px 13px}
.fx-cofre-dica svg{color:var(--gold);flex-shrink:0;margin-top:1px}
/* v27 — radar de gastos */
.fx-radar-prev{border-radius:16px;padding:18px 20px;margin-top:6px;border:1px solid var(--border)}
.fx-radar-prev.ok{background:linear-gradient(160deg,#142019,#0e1714);border-color:#1f4036}
.fx-radar-prev.alerta{background:linear-gradient(160deg,#21121a,#160d12);border-color:#4a2330}
.fx-radar-prev-k{font-size:13px;color:var(--muted)}
.fx-radar-prev-v{font-size:34px;font-weight:800;letter-spacing:-1px;margin:4px 0}
.fx-radar-prev.ok .fx-radar-prev-v{color:var(--green)}
.fx-radar-prev.alerta .fx-radar-prev-v{color:var(--red)}
.fx-radar-prev-d{font-size:12.5px;color:var(--faint)}
.fx-radar-list{display:flex;flex-direction:column;gap:11px;margin-top:14px}
.fx-radar-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px 15px}
.fx-radar-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.fx-radar-emoji{font-size:24px;flex-shrink:0}
.fx-radar-nome{font-weight:700;font-size:14.5px}
.fx-radar-soma{font-size:12.5px;color:var(--gold);font-weight:600}
.fx-radar-msg{font-size:13.5px;color:var(--text);line-height:1.55}
/* v32 — confirmação do plano */
.fx-conf-card{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border2);border-radius:22px;padding:24px;box-shadow:0 30px 70px rgba(0,0,0,.5);position:relative;animation:fxUp .35s cubic-bezier(.22,1,.36,1) both}
.fx-conf-tag{display:inline-block;background:var(--gold);color:var(--ink);font-size:11px;font-weight:800;padding:4px 12px;border-radius:999px;letter-spacing:.4px;margin-bottom:14px}
.fx-conf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.fx-conf-plano{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.fx-conf-preco{font-size:26px;font-weight:800;letter-spacing:-1px}
.fx-conf-por{font-size:12px;color:var(--gold);font-weight:600}
.fx-conf-box{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px 16px}
.fx-conf-titulo{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.fx-conf-item{display:flex;align-items:flex-start;gap:9px;font-size:14px;padding:5px 0;border-top:1px solid var(--border)}
.fx-conf-item:first-of-type{border-top:0}
.fx-conf-item.ok svg{flex-shrink:0;margin-top:2px}
.fx-conf-regra{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;padding:7px 0;border-top:1px solid var(--border)}
.fx-conf-regra:first-of-type{border-top:0}
.fx-conf-num{width:22px;height:22px;border-radius:50%;background:var(--gold-d);color:var(--gold);font-size:11px;font-weight:800;display:grid;place-items:center;flex-shrink:0;margin-top:1px}
/* v36 — destaque do proprietário + força de senha */
.fx-adm-av.dono{background:linear-gradient(140deg,#FFD86B,#A974FF);box-shadow:0 4px 16px rgba(169,116,255,.5);font-size:20px}
.fx-adm-tag.admin{background:linear-gradient(90deg,#FFD86B,#A974FF);color:#1B0A33;font-weight:800;letter-spacing:.3px}
.fx-pwhint{margin-top:8px}
.fx-pwbar{height:6px;border-radius:4px;background:var(--bg2);overflow:hidden;margin-bottom:6px}
.fx-pwbar i{display:block;height:100%;width:0;transition:.25s}
.fx-pwbar i.f1{width:25%;background:#FB6F84}
.fx-pwbar i.f2{width:50%;background:#FBBF24}
.fx-pwbar i.f3{width:75%;background:#60A5FA}
.fx-pwbar i.f4{width:100%;background:#34D399}
.fx-pwreqs{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--faint)}
.fx-pwreqs .ok{color:var(--green)}
.fx-conf-cancel{display:block;margin:16px auto 0;background:none;border:0;color:var(--faint);font-size:12.5px;text-decoration:underline;cursor:pointer;font-family:inherit}
.fx-conf-cancel:hover{color:var(--red)}
/* v38 — categorias personalizadas */
.fx-cats{display:flex;flex-direction:column;gap:11px;margin:14px 0}
.fx-catcard{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:13px 15px}
.fx-cattop{display:flex;align-items:center;gap:11px}
.fx-catemoji{font-size:24px}
.fx-catnome{font-weight:700;font-size:15px}
.fx-catsub{font-size:12.5px;color:var(--muted)}
.fx-catbar{height:9px;border-radius:6px;background:var(--bg);overflow:hidden;margin-top:10px}
.fx-catbar i{display:block;height:100%;transition:.3s}
.fx-catalerta{margin-top:8px;font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:8px}
.fx-catalerta.vermelho{background:rgba(251,111,132,.12);color:#FB6F84}
.fx-catalerta.amarelo{background:rgba(251,191,36,.12);color:#FBBF24}
.fx-catkw{margin-top:8px;font-size:11px;color:var(--faint)}
.fx-catform{border-top:1px solid var(--border);padding-top:6px;margin-top:6px}
/* v39 — suporte/sugestões */
.fx-ajuda-fab{position:fixed;right:18px;bottom:18px;z-index:60;width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(140deg,#C79BFF,#6D28D9);color:#fff;font-size:28px;cursor:pointer;box-shadow:0 12px 32px rgba(124,58,237,.55);transition:.15s;animation:fxbob 2.4s ease-in-out infinite}
.fx-ajuda-fab::after{content:"Precisa de ajuda?";position:absolute;right:70px;top:50%;transform:translateY(-50%);background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-size:12px;font-weight:600;padding:7px 12px;border-radius:10px;white-space:nowrap;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.fx-ajuda-fab:hover::after{opacity:1}
.fx-ajuda-fab:hover{transform:translateY(-3px) scale(1.06);animation:none}
/* ===== Suporte Online (chat ao vivo) v94 ===== */
.fx-sup-fab{position:fixed;right:18px;bottom:88px;z-index:60;width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(140deg,#C79BFF,#6D28D9);color:#fff;font-size:26px;cursor:pointer;box-shadow:0 12px 32px rgba(124,58,237,.45);transition:.15s}
.fx-sup-fab:hover{transform:translateY(-3px) scale(1.06)}
.fx-sup-fab::after{content:"Suporte ao vivo";position:absolute;right:70px;top:50%;transform:translateY(-50%);background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-size:12px;font-weight:600;padding:7px 12px;border-radius:10px;white-space:nowrap;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.fx-sup-fab:hover::after{opacity:1}
.fx-sup-badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;border-radius:11px;background:#FB6F84;color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center;padding:0 5px;border:2px solid var(--bg)}
.fx-sup-win{position:fixed;right:18px;bottom:160px;z-index:70;width:362px;max-width:calc(100vw - 24px);height:500px;max-height:calc(100vh - 180px);background:var(--bg);border:1px solid var(--border2);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.55);animation:pop .24s cubic-bezier(.3,1,.4,1)}
.fx-sup-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#6D28D9,#0EA5E9);color:#fff}
.fx-sup-ava{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:19px;flex:0 0 auto}
.fx-sup-head b{font-size:14px;display:block}
.fx-sup-st{font-size:11.5px;opacity:.92;display:flex;align-items:center;gap:5px}
.fx-sup-dot{width:8px;height:8px;border-radius:50%;background:#34D399;display:inline-block;animation:fxsuppulse 1.6s infinite}
@keyframes fxsuppulse{0%,100%{opacity:1}50%{opacity:.35}}
.fx-sup-x{background:rgba(255,255,255,.15);border:0;color:#fff;width:30px;height:30px;border-radius:9px;cursor:pointer;font-size:14px;flex:0 0 auto}
.fx-sup-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.fx-sup-m{max-width:84%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.fx-sup-m.cli{align-self:flex-end;background:linear-gradient(135deg,#7C3AED,#6D28D9);color:#fff;border-bottom-right-radius:4px}
.fx-sup-m.cli .fx-sup-h{color:rgba(255,255,255,.75)}
.fx-sup-m.adm{align-self:flex-start;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}
.fx-sup-m.sis{align-self:center;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);color:var(--text);font-size:12.5px;text-align:center;border-radius:12px;max-width:96%}
.fx-sup-h{font-size:10px;opacity:.65;margin-top:3px;text-align:right}
.fx-sup-img{max-width:100%;border-radius:10px;display:block;margin-bottom:5px;cursor:zoom-in}
.fx-sup-zoom{position:fixed;inset:0;z-index:120;background:rgba(5,7,11,.88);display:grid;place-items:center;padding:20px;cursor:zoom-out}
.fx-sup-zoom img{max-width:96vw;max-height:92vh;border-radius:12px}
.fx-sup-fila{margin:4px 0;padding:10px 12px;border-radius:12px;background:rgba(255,193,7,.1);border:1px solid rgba(255,193,7,.35);font-size:12.5px;text-align:center;align-self:center;max-width:96%}
.fx-sup-fila b{font-size:20px;display:block;color:#FFC107}
.fx-sup-foot{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--bg);align-items:center}
.fx-sup-foot input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:11px;color:var(--text);font-family:var(--ui);font-size:13.5px;padding:11px 12px}
.fx-sup-foot input:focus{outline:none;border-color:var(--gold)}
.fx-sup-clip{flex:0 0 auto;width:42px;height:42px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:17px;cursor:pointer}
.fx-sup-send{flex:0 0 auto;border:0;border-radius:11px;background:linear-gradient(135deg,#C79BFF,#7C3AED);color:#fff;font-weight:800;padding:11px 16px;cursor:pointer;font-size:14px;font-family:var(--ui)}
.fx-sup-send:disabled{opacity:.5}
.fx-sup-form{flex:1;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--surface)}
.fx-sup-form p{font-size:13px;color:var(--muted);margin:0;line-height:1.55}
.fx-sup-form textarea{min-height:92px;background:var(--bg);border:1px solid var(--border);border-radius:11px;color:var(--text);font-family:var(--ui);font-size:13.5px;padding:11px 12px;resize:none}
.fx-sup-form textarea:focus{outline:none;border-color:var(--gold)}
.fx-sup-aviso{font-size:12.5px;color:var(--muted);text-align:center;padding:6px 12px}
.fx-sup-pop{position:fixed;top:14px;right:14px;z-index:90;width:344px;max-width:calc(100vw - 28px);background:var(--bg);border:1px solid var(--border2);border-left:4px solid #34D399;border-radius:16px;box-shadow:0 20px 56px rgba(0,0,0,.6);padding:14px;animation:fxsupin .3s cubic-bezier(.3,1,.4,1)}
@keyframes fxsupin{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
.fx-sup-pop-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fx-sup-pop-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(140deg,#C79BFF,#6D28D9);display:grid;place-items:center;font-size:19px;color:#fff;flex:0 0 auto}
.fx-sup-pop-h b{font-size:14px}
.fx-sup-pop-sub{font-size:12px;color:var(--muted)}
.fx-sup-pop-mot{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:9px 11px;font-size:13px;margin-bottom:10px;font-style:italic}
.fx-sup-pop-acts{display:flex;gap:7px}
.fx-sup-pop-acts button{flex:1;border:0;border-radius:10px;padding:9px 8px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:var(--ui)}
.fx-sup-pop-acts .at{background:linear-gradient(135deg,#C79BFF,#6D28D9);color:#fff}
.fx-sup-pop-acts .fi{background:var(--surface2);border:1px solid var(--border2);color:var(--text)}
.fx-sup-pop-acts .dp{flex:0 0 44px;background:transparent;color:var(--muted);border:1px solid var(--border)}
.fx-sup-pill{position:fixed;right:18px;bottom:88px;z-index:60;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#C79BFF,#6D28D9);color:#fff;border:0;border-radius:999px;padding:12px 18px;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 12px 32px rgba(124,58,237,.45);font-family:var(--ui)}

.fx-plano-pill{display:inline-block;margin:0 6px;padding:1px 9px;border-radius:999px;background:rgba(169,116,255,.14);border:1px solid rgba(169,116,255,.4);color:var(--gold);font-size:11px;font-weight:700;vertical-align:middle}
.fx-plano-pill.sem{background:var(--surface2);border-color:var(--border);color:var(--muted)}
.fx-plano-caixas{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.fx-plano-caixa{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;background:var(--surface);border:1px solid var(--border2);border-radius:13px;padding:13px 14px;cursor:pointer;color:var(--text);font-family:var(--ui);transition:.12s}
.fx-plano-caixa b{font-size:14px}
.fx-plano-caixa span{font-size:11.5px;color:var(--muted)}
.fx-plano-caixa:hover{border-color:var(--gold);transform:translateY(-2px)}
.fx-plano-caixa.danger:hover{border-color:var(--red)}

.fx-eng{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:999px;border:1px solid var(--border2)}
.fx-eng.alto{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.45);color:var(--green)}
.fx-eng.medio{background:rgba(255,193,7,.1);border-color:rgba(255,193,7,.4);color:#FFC107}
.fx-eng.baixo{background:var(--surface2);color:var(--muted)}

.fx-avulso-aviso{margin:8px 0 6px;padding:10px 12px;border-radius:12px;background:rgba(255,193,7,.1);border:1px solid rgba(255,193,7,.4);font-size:12.5px;line-height:1.5}

.fx-precos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.fx-preco-card{background:var(--surface);border:1px solid var(--border2);border-radius:14px;padding:14px}
.fx-preco-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14.5px}
.fx-preco-onoff{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer;font-weight:600}
.fx-preco-off{color:var(--green);font-weight:700;font-size:11px;margin-left:4px}
/* checkout estilo vitrine (v95) */
.fx-prc-toggle{display:flex;justify-content:center;gap:0;background:var(--surface);border:1px solid var(--border2);border-radius:999px;padding:4px;width:max-content;margin:0 auto 16px}
.fx-prc-toggle button{border:0;background:transparent;color:var(--muted);font-weight:800;font-size:13.5px;padding:9px 20px;border-radius:999px;cursor:pointer;font-family:var(--ui)}
.fx-prc-toggle button.on{background:linear-gradient(135deg,#C79BFF,#7C3AED);color:#fff;box-shadow:0 6px 18px rgba(124,58,237,.4)}
.fx-prc-toggle .eco{font-size:10.5px;font-weight:800;color:var(--green);margin-left:5px}
.fx-prc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.fx-prc-card{position:relative;background:var(--surface);border:1px solid var(--border2);border-radius:16px;padding:18px 16px;display:flex;flex-direction:column;gap:6px}
.fx-prc-card.dest{border-color:var(--gold);box-shadow:0 14px 40px rgba(124,58,237,.25)}
.fx-prc-pop{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#C79BFF,#7C3AED);color:#fff;font-size:10px;font-weight:900;letter-spacing:.5px;padding:4px 12px;border-radius:999px}
.fx-prc-nome{font-weight:800;font-size:15px}
.fx-prc-preco{font-size:26px;font-weight:900;letter-spacing:-.5px}
.fx-prc-preco span{font-size:12.5px;font-weight:600;color:var(--muted)}
.fx-prc-sub{font-size:11.5px;color:var(--muted);min-height:30px;line-height:1.45}
.fx-prc-sub b{color:var(--green)}
.fx-prc-feats{list-style:none;margin:6px 0 10px;padding:0;display:flex;flex-direction:column;gap:5px;flex:1}
.fx-prc-feats li{font-size:12.5px;color:var(--muted);display:flex;gap:7px;line-height:1.4}
.fx-prc-feats li::before{content:"✓";color:var(--green);font-weight:900}
.fx-prc-btn{border:0;border-radius:12px;padding:12px 10px;font-weight:800;font-size:13.5px;cursor:pointer;font-family:var(--ui);background:var(--surface2);border:1px solid var(--border2);color:var(--text)}
.fx-prc-card.dest .fx-prc-btn{background:linear-gradient(135deg,#C79BFF,#7C3AED);color:#fff;border:0}
.fx-prc-btn:hover{filter:brightness(1.1)}
.fx-prc-nota{text-align:center;font-size:11px;color:var(--muted);margin-top:10px}
@media (max-width:560px){.fx-prc-grid{grid-template-columns:1fr}}

.fx-pay-ids{display:flex;gap:8px;margin-bottom:8px}
.fx-pay-ids input{flex:1;min-width:0}
.fx-pay-tabs{display:flex;gap:8px;margin:4px 0 10px}
.fx-pay-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border:2px solid var(--border2);background:var(--surface);color:var(--text);font-weight:800;font-size:14px;padding:13px 10px;border-radius:12px;cursor:pointer;font-family:var(--ui);transition:.12s}
.fx-pay-tab.on{border-color:var(--gold);background:var(--gold-d)}
.fx-pay-tab .ck{position:absolute;top:-8px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--green);color:#06351d;font-size:12px;font-weight:900;display:grid;place-items:center}
.fx-pixauto{background:var(--surface);border:1px solid var(--border2);border-radius:14px;padding:14px}
/* ===== Formulário de cartão NATIVO (Campos Seguros do Mercado Pago) ===== */
.fx-cc-form{ --cc-gold:#A974FF; --cc-violet:#5b2bbf; --cc-surface:#15121f; --cc-text:#F4F2FA; --cc-muted:#9b93b5; --cc-border:#2a2440; --cc-red:#ff5c7a; color:var(--cc-text); }
.fx-cc-card{ position:relative; border-radius:16px; padding:18px 18px 16px; color:var(--cc-text); background:linear-gradient(135deg,#7b3ff0 0%,var(--cc-violet) 55%,#3a1d7a 100%); overflow:hidden; box-shadow:0 10px 30px -12px rgba(123,63,240,.6); min-height:144px; margin-bottom:16px; }
.fx-cc-card::after{ content:""; position:absolute; top:-60%; left:-30%; width:60%; height:220%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent); transform:rotate(18deg); animation:fxccShine 4.5s ease-in-out infinite; }
@keyframes fxccShine{0%,70%{left:-40%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){ .fx-cc-card::after{ animation:none } }
.fx-cc-chip{ width:34px; height:25px; border-radius:6px; background:linear-gradient(135deg,#f3d27a,#caa23c); margin-bottom:16px; }
.fx-cc-num{ font-size:18px; letter-spacing:2px; font-weight:500; font-variant-numeric:tabular-nums; }
.fx-cc-row2{ display:flex; justify-content:space-between; align-items:flex-end; margin-top:14px; gap:10px; }
.fx-cc-lbl{ font-size:9px; letter-spacing:1px; text-transform:uppercase; color:rgba(244,242,250,.65); margin-bottom:2px; }
.fx-cc-val{ font-size:12px; font-weight:500; }
.fx-cc-brand{ position:absolute; top:16px; right:18px; font-size:13px; font-weight:700; font-style:italic; opacity:.92; }
.fx-cc-field{ margin-bottom:11px; }
.fx-cc-flabel{ display:block; font-size:11px; color:var(--cc-muted); margin-bottom:5px; letter-spacing:.3px; }
.fx-cc-input,.fx-cc-secure,.fx-cc-select{ height:48px; border-radius:12px; border:1px solid var(--cc-border); background:var(--cc-surface); width:100%; box-sizing:border-box; }
.fx-cc-input{ padding:0 14px; color:var(--cc-text); font-size:15px; outline:none; font-family:var(--ui); }
.fx-cc-input::placeholder{ color:#5c5575; }
.fx-cc-input:focus{ border-color:var(--cc-gold); box-shadow:0 0 0 3px rgba(169,116,255,.18); }
.fx-cc-secure{ display:flex; align-items:center; padding:0 12px; transition:border-color .15s,box-shadow .15s; }
.fx-cc-secure iframe,.fx-cc-secure>div{ width:100%!important; height:100%!important; border:0; background:transparent; }
.fx-cc-secure:focus-within{ border-color:var(--cc-gold); box-shadow:0 0 0 3px rgba(169,116,255,.18); }
.fx-cc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fx-cc-select{ padding:0 12px; color:var(--cc-text); font-size:15px; outline:none; font-family:var(--ui); appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%239b93b5' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.fx-cc-select:focus{ border-color:var(--cc-gold); box-shadow:0 0 0 3px rgba(169,116,255,.18); }
.fx-cc-select option{ background:var(--cc-surface); color:var(--cc-text); }
.fx-cc-pay{ width:100%; height:54px; border:none; border-radius:14px; background:linear-gradient(135deg,#9b5cff,#6c2bd9); color:#fff; font-size:16px; font-weight:700; margin-top:6px; cursor:pointer; box-shadow:0 8px 20px -8px rgba(123,63,240,.7); transition:transform .08s,filter .15s; font-family:var(--ui); }
.fx-cc-pay:active{ transform:scale(.985); } .fx-cc-pay:disabled{ opacity:.55; cursor:not-allowed; }
.fx-cc-hint{ display:flex; align-items:center; justify-content:center; gap:6px; font-size:11px; color:var(--cc-muted); margin-top:10px; }
.fx-ia-resultado{margin-top:12px;background:var(--surface2);border:1px solid var(--border2);border-radius:13px;padding:13px 14px}
.fx-fab,.fx-sup-fab,.fx-ajuda-fab,.fx-sup-pill{touch-action:none}

/* Central de Ajuda v96 (reorganizada) */
.fx-faq2-list{display:flex;flex-direction:column;gap:8px;max-height:48vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 2px 0}
.fx-faq2-grupo{background:var(--surface2);border:1px solid var(--border);border-radius:13px;overflow:hidden}
.fx-faq2-grupo.on{border-color:var(--gold)}
.fx-faq2-gh{width:100%;min-height:50px;display:flex;align-items:center;gap:10px;background:none;border:0;padding:12px 14px;cursor:pointer;font-family:var(--ui)}
.fx-faq2-gi{font-size:17px;flex:0 0 auto}
.fx-faq2-gt{flex:1;text-align:left;font-weight:800;font-size:14px;color:var(--text)}
.fx-faq2-gn{font-size:11px;color:var(--muted);font-weight:700;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 9px;flex:0 0 auto}
.fx-faq2-corpo{display:flex;flex-direction:column;gap:6px;padding:2px 8px 10px}
.fx-faq2{background:var(--bg);border:1px solid var(--border);border-radius:11px;overflow:hidden}
.fx-faq2.on{border-color:var(--gold)}
.fx-faq2-q{width:100%;min-height:46px;display:flex;align-items:center;gap:10px;background:none;border:0;padding:11px 13px;cursor:pointer;font-family:var(--ui);text-align:left}
.fx-faq2-qt{flex:1;font-size:13.5px;font-weight:600;color:var(--text);line-height:1.4}
.fx-faq2-mais{color:var(--gold);font-size:18px;font-weight:800;flex:0 0 auto}
.fx-faq2-a{padding:0 13px 12px;font-size:13px;line-height:1.6;color:var(--muted)}

/* Educacao (v96) */
.fx-edu-status{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--surface2);border:1px solid var(--border2);border-radius:13px;padding:13px 14px;font-size:13.5px;margin-top:8px}
.fx-edu-status.ok{border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.07)}
.fx-edu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.fx-edu-hero{position:relative;overflow:hidden;text-align:center;padding:34px 26px 30px;border-radius:20px;border:1px solid rgba(167,139,250,.35);background:radial-gradient(120% 140% at 50% 0%,#2D1B5A 0%,#1B1340 45%,#140E2E 100%);box-shadow:0 20px 60px rgba(76,29,149,.4)}
.fx-edu-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 0%,rgba(167,139,250,.25),transparent 70%);pointer-events:none}
.fx-edu-hero-badge{display:inline-block;background:linear-gradient(90deg,#A78BFA,#F0ABFC);color:#1B1340;font-weight:800;font-size:11.5px;letter-spacing:1.2px;padding:5px 13px;border-radius:999px;margin-bottom:14px;position:relative}
.fx-edu-hero-emoji{font-size:54px;line-height:1;margin-bottom:8px;filter:drop-shadow(0 6px 16px rgba(167,139,250,.5));position:relative}
.fx-edu-hero-tit{font-size:25px;font-weight:800;color:#fff;margin:0 0 8px;position:relative}
.fx-edu-hero-sub{font-size:14.5px;line-height:1.6;color:#CFC6F0;max-width:520px;margin:0 auto 18px;position:relative}
.fx-edu-hero-perks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:480px;margin:0 auto 20px;position:relative}
.fx-edu-perk{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.06);border:1px solid rgba(167,139,250,.22);border-radius:12px;padding:11px 13px;font-size:13px;color:#EDE9FB;text-align:left;font-size:21px}
.fx-edu-perk span{font-size:13px;font-weight:600}
.fx-edu-hero-cta{background:linear-gradient(90deg,#7C3AED,#A78BFA);color:#fff;border:0;border-radius:13px;font-weight:800;font-size:15.5px;padding:15px 30px;cursor:pointer;font-family:var(--ui);box-shadow:0 10px 30px rgba(124,58,237,.5);transition:transform .15s,filter .15s;position:relative}
.fx-edu-hero-cta:hover{transform:translateY(-2px);filter:brightness(1.08)}
.fx-edu-hero-mini{font-size:12px;color:#A99FD0;margin-top:11px;position:relative}
.fx-edu-hero-ok{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.4);border-radius:13px;padding:15px 18px;font-size:14px;color:#A7F3D0;max-width:480px;margin:0 auto;line-height:1.55;position:relative}
.fx-edu-hero-msg{margin-top:13px;font-size:13.5px;color:#F0ABFC;font-weight:700;position:relative}
@media(max-width:600px){.fx-edu-hero-perks{grid-template-columns:1fr}.fx-edu-hero-tit{font-size:21px}.fx-edu-hero{padding:26px 18px}}
/* destaque da aba Educacao na navegacao */
.fx-tab.edu-beta{position:relative}
.fx-tab.edu-beta::after{content:"BETA";position:absolute;top:2px;right:4px;font-size:8px;font-weight:800;letter-spacing:.5px;color:#1B1340;background:linear-gradient(90deg,#A78BFA,#F0ABFC);padding:1px 4px;border-radius:5px;line-height:1.3}

.fx-edu-livro{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px}
.fx-edu-capa{width:100%;height:150px;object-fit:cover;border-radius:10px;background:var(--bg)}
.fx-edu-capa.ph{display:grid;place-items:center;font-size:46px}
.fx-edu-tit{font-weight:800;font-size:13.5px;line-height:1.35}
.fx-edu-aut{font-size:11.5px;color:var(--muted)}
.fx-edu-desc{font-size:11.5px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fx-edu-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.fx-edu-acts .fx-adm-btn{flex:1;justify-content:center}
.fx-edu-meu{font-size:11px;font-weight:700;color:var(--green);text-align:center}
.fx-edu-arts{display:flex;flex-direction:column;gap:7px}
.fx-edu-art{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:13px 14px;cursor:pointer;font-family:var(--ui);color:var(--text);text-align:left}
.fx-edu-art:hover{border-color:var(--gold)}
.fx-edu-art-t{flex:1;font-weight:700;font-size:13.5px}
.fx-edu-art-d{font-size:11.5px;color:var(--muted);flex:0 0 auto}
.fx-edu-leitura{max-height:64vh;overflow-y:auto}
.fx-edu-leitura p{font-size:14px;line-height:1.75;color:var(--text);margin:0 0 14px}
.fx-edu-form{display:flex;flex-direction:column;gap:8px}

.fx-trial-bar{position:sticky;top:0;z-index:55;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;background:linear-gradient(90deg,#3B1D6E,#6D28D9);color:#fff;font-size:13px;font-weight:600;padding:9px 14px;text-align:center;border-radius:0 0 14px 14px;margin:-22px -22px 16px}
.fx-trial-bar button{border:0;border-radius:999px;background:#fff;color:#4C1D95;font-weight:800;font-size:12px;padding:6px 14px;cursor:pointer;font-family:var(--ui);margin-left:6px}
.fx-trial-bar button:hover{filter:brightness(1.05)}
@media(max-width:760px){.fx-trial-bar{margin:-14px -14px 14px;border-radius:0}}
.fx-sup-modal{width:560px;height:640px;max-height:92vh}
.fx-sup-modal .fx-sup-msgs{border-radius:0}
.fx-sup-chip{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface2);border:1px solid var(--border2);vertical-align:middle}
.fx-sup-chip.aguardando{border-color:rgba(255,193,7,.5)}
.fx-sup-chip.atendendo{border-color:rgba(52,211,153,.5)}
.fx-sup-tabs{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);overflow-x:auto}
.fx-sup-tabs button{flex:0 0 auto;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--ui)}
.fx-sup-tabs button.on{background:var(--surface2);color:var(--text);border-color:var(--gold)}
.fx-sup-acoesbar{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--border);flex-wrap:wrap;align-items:center}
@media (max-width:760px){.fx-sup-fab{bottom:156px!important}.fx-sup-pill{bottom:156px!important}.fx-sup-win{right:8px;left:8px;width:auto;bottom:12px;height:74vh;max-height:none}.fx-sup-modal{width:96vw;height:86vh}}

@keyframes fxbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.fx-ajuda-fab:active{transform:scale(.92);box-shadow:0 0 0 4px rgba(52,211,153,.5)}
.fx-fbtipos{display:flex;flex-direction:column;gap:8px}
.fx-fbtipo{text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:11px 13px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit}
.fx-fbtipo.on{border-color:var(--gold);background:var(--gold-d);color:#E7DBFF}
.fx-fblist{display:flex;flex-direction:column;gap:11px;margin-top:6px}
.fx-fbitem{background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:13px 15px}
.fx-fbitem.feito{opacity:.62}
.fx-fbhead{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.fx-fbtag{font-size:11px;font-weight:800;border:1px solid;border-radius:999px;padding:2px 9px}
.fx-fbmsg{font-size:14px;line-height:1.5;white-space:pre-wrap}
/* v40 — central do admin */
.fx-central-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}
.fx-central-card{display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:15px;cursor:pointer;font-family:inherit;transition:.15s}
.fx-central-card:hover{border-color:var(--gold);transform:translateY(-1px)}
.fx-central-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--gold-d);color:var(--gold);flex-shrink:0}
.fx-central-t{font-weight:700;font-size:14.5px;color:var(--text)}
.fx-central-s{font-size:12px;color:var(--muted)}
/* v41 — marketing */
.fx-segtabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fx-segtab{background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:8px 13px;font-size:12.5px;color:var(--text);cursor:pointer;font-family:inherit}
.fx-segtab.on{border-color:var(--gold);background:var(--gold-d);color:#E7DBFF;font-weight:600}
/* v42 — modo básico/avançado */
.fx-modo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.fx-modo-grid{grid-template-columns:1fr}}
.fx-modo-card{text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:20px;cursor:pointer;font-family:inherit;transition:.15s}
.fx-modo-card:hover{transform:translateY(-2px);border-color:var(--gold)}
.fx-modo-card.dest{border-color:var(--border2);background:linear-gradient(160deg,var(--surface2),var(--surface))}
.fx-modo-emoji{font-size:30px;margin-bottom:8px}
.fx-modo-t{font-weight:800;font-size:18px}
.fx-modo-s{font-size:13px;color:var(--muted);line-height:1.5;margin:6px 0 12px}
.fx-modo-tag{display:inline-block;font-size:11px;font-weight:700;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 10px;color:var(--muted)}
.fx-modo-tag.dourado{background:var(--gold-d);border-color:var(--border2);color:var(--gold)}
.fx-tool-up{background:linear-gradient(135deg,#FFD86B,#A974FF)!important;color:#1B0A33!important;font-weight:800!important;border:0!important}
.fx-tool-up:hover{filter:brightness(1.06)}
.fx-ciclo{display:flex;gap:8px;margin-bottom:12px}
.fx-ciclo-op{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer;font-family:inherit;color:var(--text)}
.fx-ciclo-op.on{border-color:var(--gold);background:var(--gold-d)}
.fx-ciclo-op span{font-size:11px;color:var(--muted)}
.fx-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:11px;margin-top:12px}
.fx-metric{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:16px}
.fx-metric.destaque{background:linear-gradient(160deg,#241742,#16111f);border-color:var(--border2)}
.fx-metric-v{font-size:26px;font-weight:800;letter-spacing:-1px}
.fx-metric.destaque .fx-metric-v{color:var(--gold)}
.fx-metric-k{font-size:12px;color:var(--muted);margin-top:2px}
/* v47 — onboarding */
.fx-onb{background:linear-gradient(160deg,#1c1430,#150f24);border:1px solid var(--border2);border-radius:16px;padding:16px;margin-bottom:16px}
.fx-onb-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.fx-onb-x{background:none;border:0;color:var(--faint);font-size:22px;cursor:pointer;line-height:1}
.fx-onb-bar{height:7px;border-radius:5px;background:var(--bg2);overflow:hidden;margin:10px 0 12px}
.fx-onb-bar i{display:block;height:100%;background:linear-gradient(90deg,#7C3AED,#B98CFF);transition:.3s}
.fx-onb-list{display:flex;flex-direction:column;gap:8px}
.fx-onb-passo{display:flex;align-items:center;gap:11px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:11px 13px}
.fx-onb-passo.ok{opacity:.7}
.fx-onb-check{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--bg);color:var(--muted);flex-shrink:0}
.fx-onb-passo.ok .fx-onb-check{background:var(--green);color:#06351d}
.fx-onb-t{font-weight:700;font-size:14px}
.fx-onb-s{font-size:12px;color:var(--muted)}
.fx-onb-feito{color:var(--green);font-size:12px;font-weight:700}
.fx-onb-done{display:flex;align-items:center;gap:12px;background:linear-gradient(160deg,#142019,#0e1714);border:1px solid #1f4036;border-radius:16px;padding:14px 16px;margin-bottom:16px}
.fx-mk-list{display:flex;flex-direction:column;gap:6px;margin-top:12px;max-height:340px;overflow:auto}
.fx-mk-item{display:flex;align-items:center;gap:11px;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px 13px;cursor:pointer}
.fx-mk-item.on{border-color:var(--gold);background:var(--gold-d)}
.fx-mk-item.nowa{opacity:.5;cursor:not-allowed}
.fx-mk-nome{font-weight:700;font-size:14px}
.fx-mk-sub{font-size:11.5px;color:var(--muted)}
.fx-cri-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px;margin-top:12px}
.fx-cri-card{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px}
.fx-cri-img{width:100%;height:90px;object-fit:cover;border-radius:8px;background:var(--bg)}
.fx-cri-img.sem{display:grid;place-items:center;color:var(--faint);font-size:11px}
.fx-cri-nome{font-weight:700;font-size:13px;margin:6px 0 8px}
.fx-ev-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.fx-ev-item{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:13px}
.fx-ev-tipo{font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;flex-shrink:0}
.fx-ev-tipo.login{background:rgba(52,211,153,.15);color:var(--green)}
.fx-ev-tipo.navegacao{background:var(--gold-d);color:var(--gold)}
.fx-ev-tipo.edicao{background:rgba(96,165,250,.15);color:#60A5FA}
.fx-ev-tipo.clique{background:rgba(167,116,255,.18);color:#A974FF}
/* v70 — central de ajuda */
.fx-help-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fx-mascote{font-size:38px;animation:fxbob 2.2s ease-in-out infinite;flex-shrink:0;filter:drop-shadow(0 6px 10px rgba(124,58,237,.4))}
.fx-help-tabs{display:flex;gap:8px;margin-bottom:4px}
.fx-help-tab{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:10px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit;transition:.15s}
.fx-help-tab.on{border-color:var(--gold);background:var(--gold-d);color:#E7DBFF}
.fx-help-x{background:none;border:0;color:var(--faint);font-size:26px;line-height:1;cursor:pointer;padding:0 4px;flex-shrink:0}
.fx-help-x:hover{color:var(--text)}
.fx-cat-chips{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;margin-bottom:8px;scrollbar-width:none}
.fx-cat-chips::-webkit-scrollbar{display:none}
.fx-chip{flex-shrink:0;background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.15s;font-family:inherit}
.fx-chip.on{background:linear-gradient(135deg,#C79BFF,#7C3AED);color:#fff;border-color:transparent}
.fx-chip:active{transform:scale(.94)}
/* v85 — popup de novidades */
.fx-nov-card{background:var(--surface);border:1px solid var(--border2);border-radius:20px;max-width:460px;width:100%;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.7)}
.fx-nov-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}
.fx-nov-body{padding:20px 22px;min-height:180px}
.fx-nov-tag{display:inline-block;font-size:11.5px;font-weight:800;padding:4px 11px;border-radius:999px;border:1px solid;margin-bottom:12px}
.fx-nov-titulo{font-size:20px;font-weight:800;line-height:1.2;margin-bottom:10px;letter-spacing:-.3px}
.fx-nov-texto{font-size:14.5px;line-height:1.65;color:var(--muted)}
.fx-nov-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-top:1px solid var(--border);background:var(--bg2);flex-wrap:wrap}
.fx-nov-dots{display:flex;gap:6px}
.fx-nov-dot{width:7px;height:7px;border-radius:999px;background:var(--border2);cursor:pointer;transition:.2s}
.fx-nov-dot.on{background:var(--gold);width:22px}
.fx-nov-prev{background:none;border:0;color:var(--faint);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;padding:8px}
/* v87 — perfil + plano */
.fx-perfil-top{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.fx-perfil-avatar{width:84px;height:84px;border-radius:50%;background:linear-gradient(140deg,#C79BFF,#6D28D9);display:grid;place-items:center;font-size:34px;font-weight:800;color:#fff;cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;border:2px solid var(--border2)}
.fx-perfil-avatar img{width:100%;height:100%;object-fit:cover}
.fx-perfil-cam{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);font-size:13px;text-align:center;padding:3px 0}
.fx-perfil-nome{font-weight:800;font-size:19px;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-plano-badge{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,rgba(199,155,255,.18),rgba(124,58,237,.12));border:1px solid var(--border2);color:var(--gold);font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px;margin-top:6px}
.fx-plano-badge b{color:#fff}
.fx-perfil-info{background:var(--surface2);border:1px solid var(--border);border-radius:13px;overflow:hidden}
.fx-perfil-linha{display:flex;justify-content:space-between;gap:10px;padding:12px 15px;font-size:14px;border-bottom:1px solid var(--border)}
.fx-perfil-linha:last-child{border-bottom:0}
.fx-perfil-k{color:var(--muted)} .fx-perfil-v{font-weight:600;text-align:right;word-break:break-all}
.fx-conta-btn{gap:7px}
.fx-conta-foto{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1px solid var(--border2)}
.fx-conta-plano{display:inline-flex;align-items:center;gap:3px;font-weight:700}
.fx-logo-foto{overflow:hidden;padding:0!important}
.fx-logo-foto img{width:100%;height:100%;object-fit:cover}
.fx-perfil-btn{background:linear-gradient(135deg,rgba(199,155,255,.22),rgba(124,58,237,.14))!important;border:1px solid var(--gold)!important;color:#fff!important;font-weight:800!important;order:-1}
.fx-perfil-btn svg{color:var(--gold)}
.fx-perfil-btn .fx-conta-plano{opacity:.95}
.fx-hist-item{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:11px 14px;margin-bottom:7px}
.fx-hist-desc{font-size:13.5px;font-weight:600;flex:1;min-width:0}
.fx-hist-data{font-size:11.5px;color:var(--faint);white-space:nowrap;flex-shrink:0}
.fx-aviso-row{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:9px}
.fx-aviso-t{font-weight:700;font-size:14px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fx-aviso-free{font-size:10.5px;font-weight:800;color:var(--green);background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.35);padding:2px 8px;border-radius:999px}
.fx-aviso-pago{font-size:10.5px;font-weight:800;color:var(--gold);background:var(--gold-d);border:1px solid var(--border2);padding:2px 8px;border-radius:999px}
.fx-aviso-lock{font-size:16px;flex-shrink:0}
.fx-modo-btn{font-weight:700!important}
.fx-modo-dica{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(45,212,191,.06));border:1px solid var(--border2);border-radius:14px;padding:11px 15px;margin-bottom:14px;font-size:13px;color:var(--muted);line-height:1.5}
.fx-modo-dica b{color:var(--text)}
.fx-modo-dica-ic{font-size:20px;flex-shrink:0}
.fx-modo-dica-x{flex-shrink:0;background:var(--surface2);border:1px solid var(--border2);color:var(--gold);font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:9px;cursor:pointer;font-family:inherit}
.fx-modo-dica-x:hover{border-color:var(--gold)}
@media(max-width:600px){.fx-modo-dica{flex-wrap:wrap}.fx-modo-dica-x{width:100%}}
.fx-teste-user{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:14px}
.fx-teste-acoes{display:flex;flex-direction:column;gap:8px}
.fx-teste-acoes .fx-adm-btn{width:100%;justify-content:flex-start}
.fx-cartao-teste{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px}
/* v88 — bloqueio por plano + upsell */
.fx-tab.locked{opacity:.62}
.fx-tab.locked .fx-lock-ic{margin-left:auto;font-size:13px;opacity:.85}
.fx-mais-item.locked{opacity:.62;position:relative}
.fx-mais-lock{position:absolute;top:7px;right:9px;font-size:12px}
.fx-up-card{position:relative;background:linear-gradient(165deg,#231843,#15101f);border:1px solid var(--border2);border-radius:22px;max-width:420px;width:100%;padding:30px 26px;text-align:center;box-shadow:0 30px 80px -30px rgba(124,58,237,.7)}
.fx-up-ico{font-size:50px;line-height:1}
.fx-up-lock{display:inline-block;background:var(--gold-d);border:1px solid var(--border2);color:var(--gold);font-size:11.5px;font-weight:800;padding:4px 12px;border-radius:999px;margin:10px 0 6px}
.fx-up-titulo{font-size:23px;font-weight:800;letter-spacing:-.4px;margin-bottom:8px}
.fx-up-desc{font-size:14.5px;color:var(--muted);line-height:1.6;margin-bottom:16px}
.fx-up-bullets{text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.fx-up-b{font-size:14px;margin-bottom:8px}.fx-up-b:last-child{margin-bottom:0}
.fx-up-plano{font-size:13.5px;color:var(--muted);margin-bottom:14px}.fx-up-plano b{color:var(--gold)}
.fx-guia-item{display:flex;align-items:center;gap:13px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:13px 14px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}
.fx-guia-item:active{transform:scale(.99)}
.fx-guia-item:hover{border-color:var(--border2)}
.fx-guia-ic{width:40px;height:40px;border-radius:11px;background:var(--gold-d);display:grid;place-items:center;flex-shrink:0;color:var(--gold)}
.fx-guia-nome{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:8px}
.fx-guia-prem{font-size:10.5px;font-weight:800;color:var(--gold);background:var(--gold-d);border:1px solid var(--border2);padding:2px 7px;border-radius:999px}
.fx-guia-txt{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.fx-guia-seta{color:var(--faint);font-size:22px;flex-shrink:0}
.fx-menu-toggle{background:var(--surface2);border:1px solid var(--border);border-radius:9px;width:30px;height:30px;display:grid;place-items:center;color:var(--muted);cursor:pointer;flex-shrink:0}
.fx-menu-toggle:hover{border-color:var(--gold);color:var(--gold)}
.fx-only-desk{display:none}
@media(min-width:921px){ .fx-only-desk{display:inline-flex} }
.fx-help-tab:active{transform:scale(.96)}
.fx-help-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:13px;color:var(--muted);flex-wrap:wrap}
/* v71 — conselheiro */
.fx-cons{background:linear-gradient(160deg,#1d1533,#150f24);border:1px solid var(--border2);margin-bottom:16px}
.fx-cons-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.fx-cons-emoji{font-size:30px;animation:fxbob 2.6s ease-in-out infinite}
.fx-cons-x{background:none;border:0;color:var(--faint);font-size:22px;cursor:pointer;line-height:1}
.fx-cons-x:hover{color:var(--red)}
.fx-cons-list{display:flex;flex-direction:column;gap:9px}
.fx-cons-item{display:flex;gap:11px;background:var(--surface2);border:1px solid var(--border);border-left-width:3px;border-radius:12px;padding:13px 15px}
.fx-cons-item.gold{border-left-color:var(--gold)}
.fx-cons-item.red{border-left-color:var(--red)}
.fx-cons-item.green{border-left-color:var(--green)}
.fx-cons-ic{font-size:20px;flex-shrink:0}
.fx-cons-off{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface2);border:1px dashed var(--border2);border-radius:12px;padding:11px 15px;margin-bottom:16px;font-size:13px;color:var(--muted)}
.fx-cons-bloco{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:12px}
.fx-cons-bloco h4{font-size:15px;margin:0 0 8px;color:var(--text)}
.fx-cons-bloco p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}
.fx-cons-bloco b{color:var(--text)}
.fx-cons-ul{margin:0;padding-left:18px}
.fx-cons-ul li{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:7px}
/* v73 — gincana */
.fx-gin-hero{text-align:center;background:linear-gradient(160deg,#241742,#16111f);border:1px solid var(--border2);margin-bottom:16px}
.fx-gin-regras{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:13px 15px;margin-top:14px;text-align:left;font-size:12.5px;color:var(--muted);line-height:1.7}
.fx-gin-regras b{color:var(--text)}
.fx-gin-rank{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.fx-gin-row{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:11px 14px}
.fx-gin-row.eu{border-color:var(--gold);background:var(--gold-d)}
.fx-gin-pos{font-size:18px;font-weight:800;width:30px;text-align:center;flex-shrink:0;color:var(--muted)}
.fx-conduta{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.fx-conduta-item{display:flex;gap:10px;align-items:flex-start;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:11px 13px;font-size:13px;color:var(--muted);cursor:pointer;line-height:1.5}
.fx-chat{display:flex;flex-direction:column;gap:8px;max-height:42vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:12px;margin-bottom:8px}
.fx-chat-msg{max-width:80%;align-self:flex-start;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:8px 12px}
.fx-chat-msg.meu{align-self:flex-end;background:var(--gold-d);border-color:var(--border2)}
.fx-chat-ap{font-size:11px;font-weight:700;color:var(--gold);margin-bottom:2px}
.fx-chat-tx{font-size:14px;line-height:1.45;word-break:break-word}
.fx-emojis{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.fx-emoji-btn{background:var(--surface2);border:1px solid var(--border);border-radius:9px;width:36px;height:34px;font-size:18px;cursor:pointer;transition:transform .1s}
.fx-emoji-btn:active{transform:scale(.85)}
.fx-rel-compra{background:var(--surface2);border:1px solid var(--border2);border-radius:14px;padding:16px;margin-top:12px}
.fx-rel-resumo{display:flex;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px;margin-top:8px}
.fx-rel-resumo>div{flex:1}
.fx-rel-k{font-size:11px;color:var(--muted)}
.fx-rel-v{font-size:20px;font-weight:800;margin-top:2px}
.fx-rel-share{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.fx-rel-aviso{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);border-radius:10px;padding:10px 12px;margin-top:8px;font-size:12.5px;color:#FBBF24}
.fx-rel-aviso p{margin:0}.fx-rel-aviso label{color:var(--text)}
.fx-rel-ia{background:var(--gold-d);border:1px solid var(--border2);border-radius:12px;padding:12px 14px;margin-top:10px;font-size:13.5px;line-height:1.55;white-space:pre-wrap}
.fx-dica{display:flex;align-items:flex-start;gap:10px;background:var(--surface);border:1px dashed var(--border2);border-radius:12px;padding:11px 14px;margin-top:14px;font-size:12.5px;color:var(--muted);line-height:1.5}
.fx-dica-btn{background:none;border:0;color:var(--faint);font-size:16px;cursor:pointer;line-height:1;padding:0 2px;flex-shrink:0}
.fx-dica-btn:hover{color:var(--gold)}
.fx-trial-box{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.35);border-radius:12px;padding:12px 14px;margin-top:12px}
.fx-casos{display:flex;flex-direction:column;gap:10px;margin:12px 0 18px}
.fx-caso{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px 16px;cursor:pointer;transition:border-color .15s}
.fx-caso.on{border-color:var(--gold)}
.fx-caso-top{display:flex;align-items:center;gap:12px}
.fx-caso-av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#10231b;font-size:18px;flex-shrink:0}
.fx-caso-nome{font-weight:700;font-size:15px}
.fx-caso-tag{font-size:12.5px;font-weight:600}
.fx-caso-seta{font-size:22px;color:var(--faint);width:24px;text-align:center}
.fx-caso-texto{margin-top:12px;font-size:14px;line-height:1.65;color:var(--muted);font-style:italic;border-left:3px solid var(--gold);padding-left:14px}
.fx-quem{border-top:1px solid var(--border);padding-top:16px;margin-top:6px}
.fx-quem p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 12px}
.fx-quem b{color:var(--text)}
.fx-cupom{display:flex;gap:8px;margin-bottom:8px}
.fx-alerta{padding:11px 14px;border-radius:11px;font-size:13.5px;font-weight:600;border:1px solid}
.fx-alerta.ruim{background:rgba(251,111,132,.1);border-color:rgba(251,111,132,.35);color:#FB6F84}
.fx-alerta.aviso{background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.35);color:#FBBF24}
.fx-alerta.bom{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.35);color:#34D399}
/* v59 — feedback tátil dos botões */
button, .fx-tab, .fx-tool, .fx-adm-btn, .fx-lock-btn, .fx-segtab, .fx-ciclo-op, .fx-modo-card, .fx-central-card, .fx-mk-item { transition: transform .09s ease, filter .14s ease, background .16s ease, box-shadow .16s ease, border-color .16s ease; }
.fx-tab:hover, .fx-tool:hover, .fx-adm-btn:hover, .fx-segtab:hover, .fx-ciclo-op:hover { filter: brightness(1.08); }
.fx-tab:active, .fx-tool:active, .fx-adm-btn:active, .fx-lock-btn:active, .fx-segtab:active, .fx-ciclo-op:active, .fx-modo-card:active, .fx-central-card:active { transform: scale(.95); }
.fx-adm-btn:active, .fx-tool:active, .fx-tab:active, .fx-segtab:active { box-shadow: 0 0 0 2.5px rgba(52,211,153,.6) inset, 0 0 12px rgba(52,211,153,.35); }
.fx-lock-btn:active { transform: scale(.97); filter: brightness(.92); box-shadow: 0 0 0 3px rgba(52,211,153,.5); }
.fx-tab:focus-visible, .fx-tool:focus-visible, .fx-adm-btn:focus-visible, .fx-lock-btn:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.fx-parabens .fx-confete{font-size:34px;animation:fxpop .6s ease;letter-spacing:8px}
@keyframes fxpop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
/* Painel Admin > Continuidade: estados reais da infraestrutura. */
.fx-arch-hero{overflow:hidden;position:relative;background:radial-gradient(circle at 12% 0,rgba(139,92,246,.15),transparent 38%),var(--surface)}
.fx-arch-state{display:flex;align-items:center;gap:12px;margin:16px 0;padding:14px 16px;border:1px solid;border-radius:14px}
.fx-arch-state.purple{border-color:rgba(168,85,247,.45);background:rgba(126,34,206,.11);color:#c084fc}.fx-arch-state.green{border-color:rgba(45,212,191,.48);background:rgba(16,185,129,.11);color:#34d399}
.fx-arch-state div{display:grid;gap:3px}.fx-arch-state span{font-size:12px;color:var(--muted)}.fx-arch-state-dot,.fx-arch-light{display:block;border-radius:50%;flex:0 0 auto}
.fx-arch-state-dot{width:14px;height:14px;background:currentColor;animation:fxArchPulse 1.8s ease-in-out infinite}
.fx-arch-map{position:relative;min-height:460px;margin-top:14px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,rgba(8,7,16,.72),rgba(13,10,25,.94));overflow:hidden}
.fx-arch-node{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;width:220px;min-height:68px;padding:13px 15px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(28,25,45,.92);box-shadow:0 12px 34px rgba(0,0,0,.22);opacity:.72;transition:.35s ease}
.fx-arch-node.is-active{opacity:1;transform:translateY(-2px)}.fx-arch-node div{display:grid;gap:3px}.fx-arch-node b{font-size:14px;color:#fff}.fx-arch-node span:not(.fx-arch-light){font-size:11px;color:#a9a3bc}
.fx-arch-light{width:13px;height:13px;background:#64748b;box-shadow:0 0 0 5px rgba(100,116,139,.12)}.fx-arch-light.purple{background:#a855f7;box-shadow:0 0 0 5px rgba(168,85,247,.14),0 0 20px #9333ea}.fx-arch-light.green{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.14),0 0 20px #22c55e}
.fx-arch-node.is-active .fx-arch-light{animation:fxArchPulse 1.8s ease-in-out infinite}.fx-arch-node.client{left:50%;top:26px;transform:translateX(-50%)}.fx-arch-node.monitor{left:50%;top:142px;transform:translateX(-50%)}.fx-arch-node.vps{left:10%;top:294px}.fx-arch-node.sqlite{left:50%;top:338px;transform:translateX(-50%)}.fx-arch-node.standby{right:7%;top:294px}
.fx-arch-node.client.is-active,.fx-arch-node.monitor.is-active,.fx-arch-node.sqlite.is-active{transform:translateX(-50%) translateY(-2px)}
.fx-arch-line,.fx-arch-branch,.fx-arch-flow{position:absolute;z-index:1}.fx-arch-line.l1{left:50%;top:94px;width:2px;height:48px;background:linear-gradient(#64748b,#a855f7)}
.fx-arch-branch{top:220px;width:35%;height:74px;border-top:2px solid rgba(148,163,184,.32)}.fx-arch-branch.primary{left:25%;border-left:2px solid #a855f7;border-radius:18px 0 0}.fx-arch-branch.reserve{right:15%;border-right:2px solid #22c55e;border-radius:0 18px 0 0}.fx-arch-branch span{position:absolute;top:-25px;color:#a9a3bc;font-size:11px}.fx-arch-branch.primary span{left:10px}.fx-arch-branch.reserve span{right:10px}
.fx-arch-flow{height:2px;top:372px;background:linear-gradient(90deg,transparent,#22c55e,transparent);background-size:200% 100%;animation:fxArchFlow 2s linear infinite}.fx-arch-flow.f1{left:29%;width:21%}.fx-arch-flow.f2{left:70%;width:8%}
.fx-arch-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--muted)}.fx-arch-legend i{display:inline-block;width:9px;height:9px;border-radius:50%}.fx-arch-legend i.purple{background:#a855f7}.fx-arch-legend i.green{background:#22c55e}.fx-arch-legend i.gray{background:#64748b}
.fx-arch-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.fx-arch-cases article{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--bg2)}.fx-arch-cases p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.fx-arch-alert{padding:10px;border-radius:10px;background:rgba(239,68,68,.12);color:var(--red)}
@keyframes fxArchPulse{0%,100%{transform:scale(.9);filter:brightness(.9)}50%{transform:scale(1.18);filter:brightness(1.3)}}@keyframes fxArchFlow{to{background-position:-200% 0}}
@media(max-width:760px){.fx-arch-map{min-height:660px}.fx-arch-node{width:210px}.fx-arch-node.vps{left:7%;top:300px}.fx-arch-node.sqlite{top:410px}.fx-arch-node.standby{left:50%;right:auto;top:530px;transform:translateX(-50%)}.fx-arch-node.standby.is-active{transform:translateX(-50%) translateY(-2px)}.fx-arch-branch.reserve{right:16%;height:300px}.fx-arch-flow{display:none}.fx-arch-cases{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.fx-arch-state-dot,.fx-arch-node.is-active .fx-arch-light,.fx-arch-flow{animation:none}}
.fx-parabens>div:nth-child(2){animation:fxbounce 1s ease infinite alternate}
@keyframes fxbounce{from{transform:translateY(0)}to{transform:translateY(-8px)}}

/* ====== v116: FEEDBACK DE TOQUE + POLIMENTO DOS BOTOES/MENU ====== */
/* Toque (pressed) em TODOS os botoes: brilho roxo vibrante + leve "press". */
.fx-root button:not(:disabled):active,
.fx-root .fx-btn:not(:disabled):active,
.fx-root .fx-adm-btn:not(:disabled):active,
.fx-root .fx-tab:active,
.fx-root .fx-bb:active,
.fx-root .fx-mais-item:active,
.fx-root .fx-key:not(:disabled):active,
.fx-lock-btn:not(:disabled):active,
.fx-root .fx-cbtn:active,
.fx-root .fx-cofre-copy:active,
.fx-root .fx-cofre-eye:active,
.fx-root .fx-fab:active,
.fx-root .fx-ajuda-fab:active {
  transform: scale(.95);
  box-shadow: 0 0 0 3px rgba(169,116,255,.65), 0 10px 24px -6px rgba(124,58,237,.8) !important;
  filter: brightness(1.14) saturate(1.15);
  transition: transform .07s ease, box-shadow .07s ease, filter .07s ease;
}
/* Botoes primarios e FAB: no toque, fundo roxo BEM vivo. */
.fx-root .fx-btn.primary:not(:disabled):active,
.fx-root .fx-add:not(:disabled):active,
.fx-lock-btn:not(:disabled):active,
.fx-root .fx-fab:active {
  background: linear-gradient(135deg,#C79BFF,#7C3AED) !important; color:#fff !important;
}
/* Menu (tabs): transicao mais premium + brilho no item ativo. */
.fx-root .fx-tab { transition: background .18s, border-color .18s, color .18s, transform .1s, box-shadow .18s; }
.fx-root .fx-tab:hover:not(.on) { transform: translateX(2px); }
.fx-root .fx-tab.on { box-shadow: 0 8px 22px -8px rgba(124,58,237,.7), 0 0 0 1px rgba(169,116,255,.25) inset; }


/* ===== LOADING SCREEN (v-ux1) ===== */
#fx-loading-screen {
  position: fixed; inset: 0; z-index: 9999;
  background: radial-gradient(120% 85% at 50% 38%, #1a1030 0%, #0B0711 62%);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .4s ease, visibility .4s ease;
}
#fx-loading-screen.oculto { opacity: 0; visibility: hidden; pointer-events: none; }
.fx-ls-inner { display: flex; flex-direction: column; align-items: center; gap: 14px; animation: fxlsIn .5s cubic-bezier(.16,1,.3,1) both; }
.fx-ls-logo {
  width: 72px; height: 72px; border-radius: 21px;
  background: linear-gradient(140deg, #B98CFF, #6D28D9);
  display: grid; place-items: center; color: #fff;
  box-shadow: 0 16px 40px rgba(124,58,237,.55), inset 0 1px 0 rgba(255,255,255,.28);
  animation: fxlsPop .6s cubic-bezier(.16,1,.3,1) both, fxlsGlow 2s ease-in-out .6s infinite;
}
.fx-ls-name { color: #EDE7FB; font-family: system-ui, sans-serif; font-size: 22px; font-weight: 800; letter-spacing: -.4px; opacity: 0; animation: fxlsUp .5s ease .18s forwards; }
.fx-ls-bar { width: 150px; height: 3px; border-radius: 99px; background: rgba(169,116,255,.18); overflow: hidden; margin-top: 2px; }
.fx-ls-bar > i { display: block; height: 100%; width: 0; border-radius: 99px; background: linear-gradient(90deg, #B98CFF, #7C3AED); animation: fxlsFill 1s cubic-bezier(.4,0,.2,1) .1s forwards; }
.fx-ls-txt { color: #8B7CB0; font-family: system-ui, sans-serif; font-size: 12.5px; font-weight: 600; letter-spacing: .3px; opacity: 0; animation: fxlsUp .5s ease .3s forwards; }
@keyframes fxlsIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fxlsPop { 0% { transform: scale(.5); opacity: 0; } 60% { transform: scale(1.06); } 100% { transform: scale(1); opacity: 1; } }
@keyframes fxlsUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fxlsGlow { 0%,100% { box-shadow: 0 16px 40px rgba(124,58,237,.5), inset 0 1px 0 rgba(255,255,255,.28); } 50% { box-shadow: 0 20px 52px rgba(124,58,237,.8), inset 0 1px 0 rgba(255,255,255,.28); } }
@keyframes fxlsFill { 0% { width: 0; } 70% { width: 85%; } 100% { width: 96%; } }
@media (prefers-reduced-motion: reduce) {
  .fx-ls-inner, .fx-ls-logo, .fx-ls-name, .fx-ls-txt, .fx-ls-bar > i { animation: none !important; opacity: 1 !important; }
  .fx-ls-bar > i { width: 60%; }
}
/* ===== TRIAL EXPIRANDO — banner amarelo (v-ux1) ===== */
.fx-trial-warn {
  position: sticky; top: 0; z-index: 55;
  display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap;
  background: linear-gradient(90deg, #78450A, #B45309);
  color: #FEF3C7; font-size: 13px; font-weight: 600;
  padding: 9px 14px; text-align: center;
  border-radius: 0 0 14px 14px; margin: -22px -22px 16px;
  box-shadow: 0 4px 18px rgba(180,83,9,.35);
  border-bottom: 1px solid rgba(253,186,116,.3);
  animation: fxUp .4s cubic-bezier(.22,1,.36,1) both;
}
.fx-trial-warn button {
  border: 0; border-radius: 999px; background: #FEF3C7; color: #78350F;
  font-weight: 800; font-size: 12px; padding: 6px 14px; cursor: pointer;
  font-family: var(--ui); margin-left: 6px;
}
.fx-trial-warn button:hover { filter: brightness(1.05); }
@media(max-width:760px){ .fx-trial-warn { margin: -14px -14px 14px; border-radius: 0; } }

/* ===== FLUXINHO — assistente pessoal Pro (v236) ===== */
.fx-fluxinho-fab{position:fixed;right:18px;bottom:18px;z-index:62;width:72px;height:72px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:25px;background:linear-gradient(145deg,#c9a5ff 0%,#8850e8 48%,#4b1f9b 100%);color:#fff;cursor:pointer;box-shadow:0 18px 44px -10px rgba(91,33,182,.82),inset 0 1px 0 rgba(255,255,255,.46);display:grid;place-items:center;transition:transform .18s ease,filter .18s ease;animation:fxFluxinhoFloat 3.4s ease-in-out infinite}
.fx-fluxinho-fab.com-atalho{right:94px}
.fx-fluxinho-fab:hover{transform:translateY(-4px) scale(1.03);filter:brightness(1.08)}
.fx-fluxinho-fab:focus-visible{outline:3px solid #fff;outline-offset:3px}
.fx-fluxinho-fab .fx-fluxinho-status{position:absolute;right:-2px;top:-2px;width:17px;height:17px;border-radius:50%;background:#39dc9a;border:3px solid var(--bg);box-shadow:0 0 0 4px rgba(57,220,154,.16)}
.fx-fluxinho-fab .fx-fluxinho-label{position:absolute;right:82px;padding:8px 11px;border:1px solid var(--border2);border-radius:10px;background:var(--surface);color:var(--text);font:750 11px/1 var(--ui);white-space:nowrap;box-shadow:0 10px 28px rgba(0,0,0,.32);opacity:0;transform:translateX(6px);pointer-events:none;transition:.18s}
.fx-fluxinho-fab:hover .fx-fluxinho-label{opacity:1;transform:none}
.fx-fluxinho-robot{display:block;width:51px;height:51px;filter:drop-shadow(0 8px 10px rgba(35,10,77,.28))}
.fx-fluxinho-robot.large{width:92px;height:92px}
.fx-fluxinho-win{position:fixed;right:18px;bottom:102px;z-index:86;width:390px;height:min(620px,calc(100vh - 126px));max-width:calc(100vw - 24px);border:1px solid rgba(190,148,255,.32);border-radius:25px;background:linear-gradient(165deg,rgba(28,18,46,.985),rgba(10,8,16,.99));box-shadow:0 30px 90px rgba(0,0,0,.66),0 0 80px rgba(124,58,237,.15);overflow:hidden;display:flex;flex-direction:column;animation:fxFluxinhoIn .25s cubic-bezier(.16,1,.3,1)}
.light .fx-fluxinho-win{background:linear-gradient(165deg,rgba(255,255,255,.99),rgba(247,243,255,.99));box-shadow:0 30px 80px rgba(46,26,75,.24)}
.fx-fluxinho-head{position:relative;display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--border);background:radial-gradient(circle at 16% 0,rgba(176,117,255,.23),transparent 50%)}
.fx-fluxinho-avatar{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#b98cff,#6730c7);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.fx-fluxinho-avatar .fx-fluxinho-robot{width:39px;height:39px}
.fx-fluxinho-title{min-width:0;flex:1}.fx-fluxinho-title b{display:flex;align-items:center;gap:7px;font-size:15px}.fx-fluxinho-title b i{width:7px;height:7px;border-radius:50%;background:#39dc9a;box-shadow:0 0 0 4px rgba(57,220,154,.12)}
.fx-fluxinho-title span{display:block;margin-top:4px;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-fluxinho-head-actions{display:flex;gap:5px}.fx-fluxinho-iconbtn{width:34px;height:34px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--muted);cursor:pointer;font-size:17px}.fx-fluxinho-iconbtn:hover{color:var(--text);border-color:var(--border2)}
.fx-fluxinho-iconbtn.memoria{position:relative;width:auto;min-width:52px;padding:0 9px;display:flex;align-items:center;justify-content:center;gap:4px;font:800 10px var(--ui)}.fx-fluxinho-iconbtn.memoria.ativo{color:#e5d2ff;border-color:#9f62ff;background:rgba(159,98,255,.16)}.light .fx-fluxinho-iconbtn.memoria.ativo{color:#5b239f}
.fx-fluxinho-notice{display:flex;align-items:center;gap:8px;padding:8px 15px;border-bottom:1px solid var(--border);background:rgba(57,220,154,.055);color:var(--muted);font-size:9.8px}.fx-fluxinho-notice b{color:#60e3ac}
.fx-fluxinho-msgs{flex:1;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.fx-fluxinho-msg{max-width:86%;padding:11px 13px;border-radius:16px;font-size:12.7px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere}
.fx-fluxinho-msg.bot{align-self:flex-start;border:1px solid var(--border);border-top-left-radius:6px;background:var(--surface2);color:var(--text)}
.fx-fluxinho-msg.user{align-self:flex-end;border-top-right-radius:6px;background:linear-gradient(135deg,#9b65f4,#6d28d9);color:#fff;box-shadow:0 9px 23px -13px #7c3aed}
.fx-fluxinho-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:16px 16px 16px 6px;background:var(--surface2)}
.fx-fluxinho-typing i{width:6px;height:6px;border-radius:50%;background:#b98cff;animation:fxFluxinhoDot 1s ease-in-out infinite}.fx-fluxinho-typing i:nth-child(2){animation-delay:.13s}.fx-fluxinho-typing i:nth-child(3){animation-delay:.26s}
.fx-fluxinho-sug{display:flex;gap:7px;overflow:auto;padding:0 15px 11px;scrollbar-width:none}.fx-fluxinho-sug::-webkit-scrollbar{display:none}.fx-fluxinho-sug button{flex:0 0 auto;max-width:210px;border:1px solid rgba(185,140,255,.25);border-radius:999px;background:rgba(159,98,255,.08);color:#d8c4f8;padding:8px 11px;font:700 10px/1.25 var(--ui);cursor:pointer}.light .fx-fluxinho-sug button{color:#6531af;background:#f2eaff}.fx-fluxinho-sug button:hover{border-color:#a974ff;background:rgba(159,98,255,.15)}
.fx-fluxinho-error{margin:0 15px 10px;padding:9px 11px;border:1px solid rgba(251,111,132,.28);border-radius:11px;background:rgba(251,111,132,.08);color:#ff9cac;font-size:10.5px;line-height:1.45}
.fx-fluxinho-memory{flex:1;min-height:0;overflow:auto;padding:15px;scrollbar-width:thin}.fx-fluxinho-memory-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}.fx-fluxinho-memory-top h3{margin:0;font-size:15px;letter-spacing:-.02em}.fx-fluxinho-memory-top span{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(185,140,255,.28);border-radius:999px;background:rgba(159,98,255,.1);color:#d8c4f8;font:850 10px var(--ui)}.light .fx-fluxinho-memory-top span{color:#5b239f}
.fx-fluxinho-memory-info{padding:11px 12px;border:1px solid rgba(245,186,73,.27);border-radius:13px;background:rgba(245,186,73,.07);color:var(--muted);font-size:10.5px;line-height:1.55}.fx-fluxinho-memory-info b{color:var(--text)}.fx-fluxinho-memory-safe{margin-top:7px;color:var(--muted);font-size:9.7px;line-height:1.45}
.fx-fluxinho-memory-list{display:flex;flex-direction:column;gap:8px;margin:13px 0}.fx-fluxinho-memory-empty{padding:14px;border:1px dashed var(--border2);border-radius:13px;color:var(--muted);font-size:10.5px;text-align:center;line-height:1.5}.fx-fluxinho-memory-item{padding:11px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}.fx-fluxinho-memory-text{color:var(--text);font-size:10.8px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.fx-fluxinho-memory-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}.fx-fluxinho-memory-actions button{border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);padding:6px 8px;font:750 9.5px var(--ui);cursor:pointer}.fx-fluxinho-memory-actions button:hover{color:var(--text);border-color:var(--border2)}.fx-fluxinho-memory-actions button.excluir:hover{color:#ff9cac;border-color:rgba(251,111,132,.42)}
.fx-fluxinho-memory-editor{padding:12px;border:1px solid rgba(185,140,255,.22);border-radius:15px;background:rgba(159,98,255,.055)}.fx-fluxinho-memory-editor label{display:block;margin-bottom:7px;color:var(--text);font:800 10.5px var(--ui)}.fx-fluxinho-memory-editor textarea{width:100%;min-height:78px;max-height:150px;resize:vertical;box-sizing:border-box;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);padding:10px;font:500 11px/1.45 var(--ui);outline:none}.fx-fluxinho-memory-editor textarea:focus{border-color:#9f62ff;box-shadow:0 0 0 3px rgba(159,98,255,.1)}.fx-fluxinho-memory-editor small{display:flex;justify-content:space-between;gap:8px;margin-top:6px;color:var(--muted);font-size:9px}.fx-fluxinho-memory-editor-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:9px}.fx-fluxinho-memory-editor-actions button{border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);padding:8px 10px;font:800 9.5px var(--ui);cursor:pointer}.fx-fluxinho-memory-editor-actions button.salvar{border:0;background:linear-gradient(135deg,#b98cff,#6d28d9);color:#fff}.fx-fluxinho-memory-editor-actions button:disabled{opacity:.42;cursor:not-allowed}.fx-fluxinho-memory-feedback{margin-top:8px;color:#67e8b7;font-size:9.8px;line-height:1.4}.fx-fluxinho-memory-feedback.erro{color:#ff9cac}
.fx-fluxinho-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 13px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:rgba(9,7,14,.44)}
.light .fx-fluxinho-compose{background:rgba(247,243,255,.9)}.fx-fluxinho-compose textarea{min-height:46px;max-height:110px;resize:none;border:1px solid var(--border);border-radius:14px;background:var(--surface2);color:var(--text);padding:12px;font:500 12.5px/1.4 var(--ui);outline:none}.fx-fluxinho-compose textarea:focus{border-color:#9f62ff;box-shadow:0 0 0 3px rgba(159,98,255,.1)}
.fx-fluxinho-send{align-self:end;height:46px;border:0;border-radius:14px;padding:0 15px;background:linear-gradient(135deg,#b98cff,#6d28d9);color:#fff;font:800 11px var(--ui);cursor:pointer;box-shadow:0 9px 22px -12px #7c3aed}.fx-fluxinho-send:disabled{opacity:.4;cursor:not-allowed}
.fx-fluxinho-page{position:relative;overflow:hidden;min-height:470px;padding:38px!important;background:radial-gradient(circle at 85% 8%,rgba(159,98,255,.21),transparent 35%),linear-gradient(145deg,var(--surface),var(--surface2))}.fx-fluxinho-page-grid{display:grid;grid-template-columns:1fr .85fr;gap:38px;align-items:center}.fx-fluxinho-page-copy h2{font-size:clamp(31px,4vw,48px);line-height:1.04;letter-spacing:-.045em;margin:16px 0}.fx-fluxinho-page-copy h2 span{color:#b98cff}.fx-fluxinho-page-copy p{color:var(--muted);font-size:14px;line-height:1.7;max-width:590px}.fx-fluxinho-page-badges{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.fx-fluxinho-page-badges span{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.025);font-size:10.5px;font-weight:750}.fx-fluxinho-open{border:0;border-radius:14px;padding:13px 18px;background:linear-gradient(135deg,#b98cff,#6d28d9);color:#fff;font:850 12px var(--ui);cursor:pointer;box-shadow:0 14px 32px -14px #7c3aed}.fx-fluxinho-page-art{display:grid;place-items:center;min-height:300px}.fx-fluxinho-orbit{width:250px;height:250px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(185,140,255,.23),rgba(109,40,217,.06) 52%,transparent 53%);border:1px solid rgba(185,140,255,.13);box-shadow:0 0 0 24px rgba(159,98,255,.025),0 0 0 48px rgba(159,98,255,.018)}
@keyframes fxFluxinhoFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}
@keyframes fxFluxinhoIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes fxFluxinhoDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@media(max-width:760px){.fx-fluxinho-fab{right:12px;bottom:84px;width:62px;height:62px;border-radius:21px}.fx-fluxinho-fab .fx-fluxinho-robot{width:45px;height:45px}.fx-fluxinho-fab .fx-fluxinho-label{display:none}.fx-fluxinho-win{inset:8px 8px calc(72px + env(safe-area-inset-bottom));width:auto;height:auto;max-width:none;border-radius:21px}.fx-fluxinho-head{padding:11px 12px;gap:8px}.fx-fluxinho-avatar{width:42px;height:42px;border-radius:14px}.fx-fluxinho-avatar .fx-fluxinho-robot{width:34px;height:34px}.fx-fluxinho-iconbtn{width:32px;height:32px}.fx-fluxinho-iconbtn.memoria{min-width:47px;padding:0 7px}.fx-fluxinho-page{padding:25px 18px!important}.fx-fluxinho-page-grid{grid-template-columns:1fr;text-align:center}.fx-fluxinho-page-copy p{margin-inline:auto}.fx-fluxinho-page-badges{justify-content:center}.fx-fluxinho-page-art{min-height:235px;order:-1}.fx-fluxinho-orbit{width:190px;height:190px}.fx-fluxinho-robot.large{width:78px;height:78px}}
@media(prefers-reduced-motion:reduce){.fx-fluxinho-fab,.fx-fluxinho-typing i,.fx-fluxinho-win{animation:none!important}}
