﻿:root {
  --blue: #1A4F9C; --blue-dark: #0d3a7a; --blue-light: #EEF3FB;
  --red: #C0272D; --green: #10B981; --yellow: #F59E0B; --purple: #8B5CF6;
  --gray: #64748B; --gray-light: #F4F6FA; --white: #fff;
  --border: #E2E8F0; --text: #1a2a4a; --text-light: #6b7c99;
  --sidebar-w: 240px; --shadow: 0 2px 8px rgba(0,0,0,0.08);
  --card-radius: 16px; --transition: all .2s cubic-bezier(.4,0,.2,1);
  --bg-page: #F4F6FA; --bg-card: #fff; --bg-sidebar: #0d3a7a;
  --border-color: #E2E8F0; --text-main: #1a2a4a; --text-muted: #6b7c99;
}
body.dark {
  --bg-page: #0f172a; --bg-card: #1e293b; --bg-sidebar: #020c1b;
  --border-color: #334155; --text-main: #e2e8f0; --text-muted: #94a3b8;
  --blue-light: #1e3a5f; --gray-light: #1e293b; --white: #1e293b;
  --border: #334155; --text: #e2e8f0; --text-light: #94a3b8;
}
body { background: var(--bg-page); color: var(--text-main); transition: background .3s, color .3s; }
* { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
body { display: flex; min-height: 100vh; }

/* Custom scrollbar */
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(99,102,241,.25); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:rgba(99,102,241,.45); }
body.dark ::-webkit-scrollbar-thumb { background:rgba(148,163,184,.2); }
body.dark ::-webkit-scrollbar-thumb:hover { background:rgba(148,163,184,.4); }
/* Firefox */
* { scrollbar-width:thin; scrollbar-color:rgba(99,102,241,.25) transparent; }
body.dark * { scrollbar-color:rgba(148,163,184,.2) transparent; }

/* Navbar (top) — two-row layout */
#navbar { position:fixed; top:0; left:0; right:0; background:var(--bg-sidebar); color:#fff; z-index:100; display:flex; flex-direction:column; box-shadow:0 2px 16px rgba(0,0,0,.25); transition:background .3s; }
#navbar-top { display:flex; align-items:center; padding:0 16px; height:46px; gap:10px; border-bottom:1px solid rgba(255,255,255,.08); flex-shrink:0; }
#navbar-bottom { display:flex; align-items:center; padding:0 12px; height:38px; gap:1px; background:rgba(0,0,0,.15); }
#navbar-logo { display:flex; flex-direction:column; flex-shrink:0; text-decoration:none; cursor:default; gap:2px; }
#navbar-logo img { height:28px; width:auto; object-fit:contain; display:block; }
#navbar-logo .sub { font-size:8.5px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:1.5px; font-weight:600; margin-top:1px; }
#navbar-nav { display:flex; align-items:center; gap:1px; flex:1; min-width:0; overflow:visible; }
.nav-item { display:flex; align-items:center; gap:6px; padding:5px 10px; cursor:pointer; color:rgba(255,255,255,.85); font-size:13px; font-weight:500; border-radius:7px; transition:background .15s, color .15s; white-space:nowrap; position:relative; background:none; }
.nav-item:hover { background:rgba(255,255,255,.12); color:#fff; }
.nav-item.active { background:rgba(255,255,255,.18); color:#fff; }
.nav-item .icon { width:17px; height:17px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.nav-svg { width:15px; height:15px; display:block; color:rgba(255,255,255,.75); transition:color .15s; }
.nav-item:hover .nav-svg, .nav-item.active .nav-svg { color:#fff; }
/* Dropdown items use different colors */
.nav-dropdown .nav-item { color:var(--text-main); background:none; padding:8px 12px; }
.nav-dropdown .nav-item:hover { background:var(--bg-page); color:var(--text-main); }
.nav-dropdown .nav-item.active { background:var(--blue-light); color:var(--blue); }
.nav-dropdown .nav-item .nav-svg { color:var(--text-muted); }
.nav-dropdown .nav-item:hover .nav-svg { color:var(--blue); }
.nav-dropdown .nav-item.active .nav-svg { color:var(--blue); }
/* Nav groups */
.nav-group { position:relative; }
.nav-group-btn { display:flex; align-items:center; gap:6px; padding:5px 10px; cursor:pointer; color:rgba(255,255,255,.85); font-size:13px; font-weight:500; border-radius:7px; transition:background .15s, color .15s; white-space:nowrap; background:none; border:none; }
.nav-group:hover > .nav-group-btn, .nav-group-btn.active { background:rgba(255,255,255,.12); color:#fff; }
.nav-group-btn.active { background:rgba(255,255,255,.18) !important; }
.nav-group-btn .nav-svg { color:rgba(255,255,255,.75); }
.nav-group-btn:hover .nav-svg, .nav-group-btn.active .nav-svg { color:#fff; }
.nav-chevron { transition:transform .2s; opacity:.55; flex-shrink:0; }
.nav-group:hover .nav-chevron { transform:rotate(180deg); }
/* Dropdown panel */
.nav-dropdown { position:absolute; top:calc(100% + 6px); left:0; background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; padding:5px; min-width:185px; box-shadow:0 8px 32px rgba(0,0,0,.18); opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s ease, transform .18s ease, pointer-events 0s .18s; z-index:200; }
/* Ponte invisível sobre o gap — impede que o hover feche ao mover o mouse do botão para o dropdown */
.nav-dropdown::before { content:''; position:absolute; top:-10px; left:0; right:0; height:10px; }
.nav-group:hover .nav-dropdown { opacity:1; pointer-events:auto; transform:translateY(0); transition:opacity .18s ease, transform .18s ease; }
/* Navbar right (lives inside #navbar-top) */
#navbar-right { display:flex; align-items:center; gap:10px; flex-shrink:0; }
/* User dropdown */
#navbar-user { position:relative; }
#navbar-user-btn { display:flex; align-items:center; gap:8px; padding:5px 10px; border-radius:8px; cursor:pointer; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); transition:background .15s; }
#navbar-user-btn:hover { background:rgba(255,255,255,.18); }
#navbar-user-dropdown { position:absolute; top:calc(100% + 8px); right:0; background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; padding:8px; min-width:170px; box-shadow:0 8px 32px rgba(0,0,0,.18); opacity:0; pointer-events:none; transform:translateY(-8px); transition:opacity .18s, transform .18s; z-index:200; }
#navbar-user-dropdown::before { content:''; position:absolute; top:-12px; left:0; right:0; height:14px; }
#navbar-user:hover #navbar-user-dropdown { opacity:1; pointer-events:auto; transform:translateY(0); }

/* ── SVG Icon Animations — contained, GPU-only (transform+opacity) ──── */

/* Shared: SVG child elements animate inside their own bounding box */
.nav-svg * { transform-box:fill-box; transform-origin:center; }

/* Dashboard bars: grow from bottom sequentially */
.nav-svg .bar { transform-origin:bottom center; }
@keyframes barUp { from{transform:scaleY(.15);opacity:.4} to{transform:scaleY(1);opacity:1} }
.nav-item:hover .bar-1 { animation:barUp .38s .00s cubic-bezier(.34,1.4,.64,1) both; }
.nav-item:hover .bar-2 { animation:barUp .38s .07s cubic-bezier(.34,1.4,.64,1) both; }
.nav-item:hover .bar-3 { animation:barUp .38s .14s cubic-bezier(.34,1.4,.64,1) both; }

/* Clientes: two people bob up independently */
@keyframes personBob { 0%{transform:translateY(0)} 40%{transform:translateY(-2.5px)} 70%{transform:translateY(.6px)} 100%{transform:translateY(0)} }
.nav-item:hover .person-1 { animation:personBob .45s .00s ease both; }
.nav-item:hover .person-2 { animation:personBob .45s .10s ease both; }

/* Cotações: text lines reveal from left */
.nav-svg .doc-line { transform-origin:left center; }
@keyframes lineReveal { from{transform:scaleX(0);opacity:.3} to{transform:scaleX(1);opacity:1} }
.nav-item:hover .doc-line-1 { animation:lineReveal .32s .08s ease both; }
.nav-item:hover .doc-line-2 { animation:lineReveal .32s .18s ease both; }

/* Sinistros: exclamation + triangle flash */
@keyframes alertFlash { 0%,100%{opacity:1} 25%{opacity:.1} 55%{opacity:.95} 80%{opacity:.3} }
.nav-item:hover .alert-mark { animation:alertFlash .55s ease both; }

/* Busca: glass tilts to scan */
@keyframes glassTilt { 0%{transform:rotate(0)} 50%{transform:rotate(-18deg)} 100%{transform:rotate(0)} }
.nav-item:hover .search-g { animation:glassTilt .40s ease both; }

/* Pin: drops from above, sticks */
@keyframes pinDrop { 0%{transform:translateY(-5px);opacity:.3} 65%{transform:translateY(1px);opacity:1} 100%{transform:translateY(0);opacity:1} }
.nav-item:hover .pin-g { animation:pinDrop .40s cubic-bezier(.34,1.5,.64,1) both; }

/* Assistências: cross beats once */
@keyframes crossBeat { 0%,100%{transform:scale(1)} 45%{transform:scale(1.18)} }
.nav-item:hover .cross-g { animation:crossBeat .38s ease both; }

/* Documento: lifts slightly */
@keyframes docLift { 0%{transform:translateY(0) rotate(0)} 45%{transform:translateY(-2px) rotate(-4deg)} 100%{transform:translateY(0) rotate(0)} }
.nav-item:hover .file-g { animation:docLift .40s ease both; }

/* Financeiro: trend line slides in from left */
@keyframes trendIn { from{transform:translateX(-3px);opacity:.2} to{transform:translateX(0);opacity:1} }
.nav-item:hover .trend-g { animation:trendIn .35s ease both; }

/* Importar: arrow drops down */
@keyframes arrowDrop { 0%{transform:translateY(-4px);opacity:.3} 65%{transform:translateY(1px);opacity:1} 100%{transform:translateY(0);opacity:1} }
.nav-item:hover .down-g { animation:arrowDrop .38s cubic-bezier(.34,1.5,.64,1) both; }


/* Relatórios: frame tilts, lines reveal from left sequentially */
@keyframes relFrameTilt { 0%{transform:rotate(0)} 35%{transform:rotate(-3deg)} 65%{transform:rotate(1.5deg)} 100%{transform:rotate(0)} }
.nav-item:hover .rel-frame { animation:relFrameTilt .42s ease both; transform-origin:center; }
.rel-line { transform-origin:left center; }
.nav-item:hover .rel-line-1 { animation:lineReveal .30s .06s ease both; }
.nav-item:hover .rel-line-2 { animation:lineReveal .30s .14s ease both; }
.nav-item:hover .rel-line-3 { animation:lineReveal .30s .22s ease both; }

/* Retenção: face shakes, exclamation flashes */
@keyframes retShake { 0%{transform:rotate(0)} 20%{transform:rotate(-6deg)} 40%{transform:rotate(6deg)} 60%{transform:rotate(-3deg)} 80%{transform:rotate(2deg)} 100%{transform:rotate(0)} }
@keyframes retMarkFlash { 0%,100%{opacity:1} 30%{opacity:.1} 65%{opacity:1} 85%{opacity:.2} }
.nav-item:hover .ret-g { animation:retShake .5s ease both; transform-origin:center; }
.nav-item:hover .ret-mark { animation:retMarkFlash .55s ease both; }

/* Mapa: pin drops and bounces */
@keyframes mapaBounce { 0%{transform:translateY(-5px);opacity:.3} 50%{transform:translateY(1.5px);opacity:1} 70%{transform:translateY(-1.5px)} 100%{transform:translateY(0);opacity:1} }
@keyframes mapaDotPulse { 0%{transform:scale(1)} 50%{transform:scale(1.3)} 100%{transform:scale(1)} }
.nav-item:hover .mapa-g { animation:mapaBounce .48s cubic-bezier(.34,1.5,.64,1) both; }
.nav-item:hover .mapa-dot { animation:mapaDotPulse .4s .2s ease both; transform-origin:center; }

/* Régua: bar stretches, ticks grow from bottom sequentially */
@keyframes reguaStretch { 0%{transform:scaleX(1)} 40%{transform:scaleX(.9)} 70%{transform:scaleX(1.04)} 100%{transform:scaleX(1)} }
.regua-tick { transform-origin:bottom center; }
@keyframes tickGrow { from{transform:scaleY(0);opacity:.3} to{transform:scaleY(1);opacity:1} }
.nav-item:hover .regua-bar { animation:reguaStretch .42s ease both; transform-origin:center; }
.nav-item:hover .regua-t1 { animation:tickGrow .3s .05s cubic-bezier(.34,1.4,.64,1) both; }
.nav-item:hover .regua-t2 { animation:tickGrow .3s .12s cubic-bezier(.34,1.4,.64,1) both; }
.nav-item:hover .regua-t3 { animation:tickGrow .3s .19s cubic-bezier(.34,1.4,.64,1) both; }
.nav-item:hover .regua-t4 { animation:tickGrow .3s .26s cubic-bezier(.34,1.4,.64,1) both; }

/* Gestão Saúde nav: whole calendar beats on button hover */
@keyframes gsCalBeat { 0%{transform:scale(1)} 25%{transform:scale(1.18)} 42%{transform:scale(.94)} 62%{transform:scale(1.1)} 100%{transform:scale(1)} }
.nav-group-btn:hover .gs-g { animation:gsCalBeat .48s ease both; }
/* Visão Geral: 4 squares pop in staggered (Patrimonial, Saúde e Gestão Saúde) */
@keyframes cellPop { from{transform:scale(0);opacity:.2} to{transform:scale(1);opacity:1} }
.nav-item:hover .gs-cell-1 { animation:cellPop .28s .04s cubic-bezier(.34,1.5,.64,1) both; }
.nav-item:hover .gs-cell-2 { animation:cellPop .28s .11s cubic-bezier(.34,1.5,.64,1) both; }
.nav-item:hover .gs-cell-3 { animation:cellPop .28s .18s cubic-bezier(.34,1.5,.64,1) both; }
.nav-item:hover .gs-cell-4 { animation:cellPop .28s .25s cubic-bezier(.34,1.5,.64,1) both; }
/* Agendamentos: clock hand ticks forward */
@keyframes gsClockTick { 0%{transform:rotate(-20deg);opacity:.5} 65%{transform:rotate(5deg);opacity:1} 100%{transform:rotate(0);opacity:1} }
.nav-item:hover .gs-clock-hand { animation:gsClockTick .42s cubic-bezier(.34,1.5,.64,1) both; }
/* Atestados: document lines reveal from left */
.nav-item:hover .gs-doc-l1 { animation:lineReveal .28s .05s ease both; }
.nav-item:hover .gs-doc-l2 { animation:lineReveal .28s .13s ease both; }
.nav-item:hover .gs-doc-l3 { animation:lineReveal .28s .21s ease both; }

/* Controle de Senhas: cadeado quica, Prontuários: cruz cresce */
@keyframes gsLockBounce { 0%{transform:translateY(0)} 35%{transform:translateY(-3px)} 65%{transform:translateY(.8px)} 100%{transform:translateY(0)} }
@keyframes gsPronCross { from{transform:scale(0) rotate(-45deg);opacity:.2} to{transform:scale(1) rotate(0);opacity:1} }
.nav-item:hover .gs-lock-shackle { animation:gsLockBounce .4s cubic-bezier(.34,1.5,.64,1) both; }
.nav-item:hover .gs-pron-cross { animation:gsPronCross .32s .06s cubic-bezier(.34,1.5,.64,1) both; }

/* Agente: head bobs, gear spins, eyes blink */
@keyframes agenteBob { 0%{transform:translateY(0)} 40%{transform:translateY(-2px)} 70%{transform:translateY(.5px)} 100%{transform:translateY(0)} }
@keyframes agenteGearSpin { from{transform:rotate(0)} to{transform:rotate(90deg)} }
@keyframes agenteBlink { 0%,42%,58%,100%{transform:scaleY(1)} 50%{transform:scaleY(.1)} }
.nav-item:hover .agente-g { animation:agenteBob .5s ease both; }
.nav-item:hover .agente-gear { animation:agenteGearSpin .5s ease both; transform-origin:12.5px 4px; }
.nav-item:hover .agente-eye { animation:agenteBlink .5s .15s ease both; transform-origin:center; }

/* ── Agente de Organização ─────────────────────────────────── */
@keyframes agenteScan {
  0%   { background-position: -100% 0; }
  100% { background-position: 200% 0; }
}
@keyframes agenteCardIn {
  from { opacity:0; transform:translateY(16px) scale(.96); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes modalOverlayIn {
  from { opacity:0; }
  to   { opacity:1; }
}
@keyframes modalOverlayOut {
  from { opacity:1; }
  to   { opacity:0; }
}
@keyframes modalBoxIn {
  from { opacity:0; transform:scale(.94) translateY(24px); }
  to   { opacity:1; transform:scale(1)   translateY(0); }
}
@keyframes modalBoxOut {
  from { opacity:1; transform:scale(1)   translateY(0); }
  to   { opacity:0; transform:scale(.94) translateY(16px); }
}
@keyframes agenteFixPulse {
  0%   { box-shadow:0 0 0 0 rgba(16,185,129,.4); }
  70%  { box-shadow:0 0 0 12px rgba(16,185,129,0); }
  100% { box-shadow:0 0 0 0 rgba(16,185,129,0); }
}
@keyframes agenteCheckPop {
  0%   { transform:scale(0) rotate(-20deg); opacity:0; }
  60%  { transform:scale(1.2) rotate(5deg); opacity:1; }
  100% { transform:scale(1) rotate(0); opacity:1; }
}
@keyframes agenteProgress {
  from { width:0; }
}
@keyframes agenteScanLine {
  0%   { top:0; opacity:1; }
  100% { top:100%; opacity:0; }
}
@keyframes agenteGlow {
  0%,100% { box-shadow:0 0 0 0 rgba(99,102,241,.2); }
  50%     { box-shadow:0 0 20px 4px rgba(99,102,241,.25); }
}
.agente-scan-active {
  background:linear-gradient(90deg, transparent 30%, rgba(99,102,241,.08) 50%, transparent 70%);
  background-size:200% 100%;
  animation:agenteScan 1.5s ease-in-out infinite;
}
.agente-issue-card {
  background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px;
  padding:16px; cursor:pointer; transition:all .2s;
  animation:agenteCardIn .4s cubic-bezier(.22,1,.36,1) both;
  position:relative; overflow:hidden;
}
.agente-issue-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08); border-color:var(--blue); }
.agente-issue-card.fixing {
  animation:agenteGlow 1s ease-in-out infinite;
  pointer-events:none;
}
.agente-issue-card.fixed {
  border-color:#10B981 !important;
  animation:agenteFixPulse .6s ease both;
}
.agente-issue-card.fixed::after {
  content:''; position:absolute; top:8px; right:8px; width:24px; height:24px;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%2310B981' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='8,12 11,15 16,9'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:agenteCheckPop .4s .1s cubic-bezier(.34,1.5,.64,1) both;
}
.agente-progress-bar {
  height:4px; border-radius:2px; background:var(--border-color); overflow:hidden; margin-top:10px;
}
.agente-progress-fill {
  height:100%; border-radius:2px; background:linear-gradient(90deg,#6366F1,#10B981);
  transition:width .4s ease;
}
.agente-robot {
  width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#6366F1,#8B5CF6);
  box-shadow:0 4px 14px rgba(99,102,241,.3);
}
.agente-stat { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text-muted); }
.agente-stat-num { font-size:20px; font-weight:800; color:var(--text-main); }
.agente-detail-row {
  display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--border-color);
  font-size:13px; transition:background .12s;
}
.agente-detail-row:hover { background:var(--bg-page); }
.agente-detail-row:last-child { border-bottom:none; }
.agente-tag { display:inline-block; padding:2px 8px; border-radius:6px; font-size:10px; font-weight:700; }
/* ── Import hourglass animation ─────────────────────────── */
@keyframes hgFlip { 0%,45%{transform:rotate(0)} 50%,95%{transform:rotate(180deg)} 100%{transform:rotate(360deg)} }
@keyframes hgSandFlow { 0%{stroke-dashoffset:0} 100%{stroke-dashoffset:-8} }
@keyframes hgSandTop { 0%,49%{opacity:1} 50%,99%{opacity:.3} }
@keyframes hgSandBot { 0%,49%{opacity:.3} 50%,99%{opacity:1} }
.import-hourglass { animation:hgFlip 2.4s cubic-bezier(.4,0,.2,1) infinite; transform-origin:center; }
.hg-sand-flow { animation:hgSandFlow .8s linear infinite; }
.hg-sand-top { animation:hgSandTop 2.4s ease infinite; transform-origin:center; }
.hg-sand-bot { animation:hgSandBot 2.4s ease infinite; transform-origin:center; }

.agente-scan-line {
  position:absolute; left:0; right:0; height:2px;
  background:linear-gradient(90deg,transparent,#6366F1,transparent);
  animation:agenteScanLine 1.2s ease-in-out infinite;
  pointer-events:none;
}

/* ── Chat Inteligente — layout com sidebar ──────────────── */
.chat-layout { display:flex; height:calc(100vh - 136px); overflow:hidden; }
/* Sidebar */
.chat-sidebar { width:260px; min-width:260px; background:var(--bg-sidebar); border-right:1px solid rgba(255,255,255,.07); display:flex; flex-direction:column; overflow:hidden; transition:min-width .22s ease, width .22s ease; flex-shrink:0; }
.chat-sidebar.collapsed { width:0; min-width:0; }
.chat-sidebar-head { display:flex; align-items:center; gap:8px; padding:14px 14px 10px; flex-shrink:0; }
.chat-sidebar-title { font-size:13px; font-weight:800; color:#fff; flex:1; white-space:nowrap; overflow:hidden; }
.chat-sidebar-ico-btn { width:30px; height:30px; border-radius:8px; background:rgba(255,255,255,.07); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); transition:all .15s; flex-shrink:0; }
.chat-sidebar-ico-btn:hover { background:rgba(255,255,255,.14); color:#fff; }
.chat-sidebar-new-btn { display:flex; align-items:center; gap:6px; margin:0 10px 10px; padding:8px 12px; border-radius:10px; background:linear-gradient(135deg,#6366F1,#8B5CF6); border:none; cursor:pointer; font-size:12px; font-weight:700; color:#fff; transition:opacity .15s; flex-shrink:0; }
.chat-sidebar-new-btn:hover { opacity:.88; }
.chat-sidebar-body { flex:1; overflow-y:auto; padding:0 6px 10px; }
.chat-sidebar-body::-webkit-scrollbar { width:4px; }
.chat-sidebar-body::-webkit-scrollbar-thumb { background:rgba(255,255,255,.15); border-radius:2px; }
.chat-folder-header { display:flex; align-items:center; gap:6px; padding:5px 8px; border-radius:8px; cursor:pointer; margin-bottom:2px; transition:background .15s; user-select:none; }
.chat-folder-header:hover { background:rgba(255,255,255,.06); }
.chat-folder-label { font-size:11px; font-weight:700; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.5px; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-folder-count { font-size:10px; color:rgba(255,255,255,.3); }
.chat-session-item { display:flex; align-items:center; gap:6px; padding:7px 10px 7px 18px; border-radius:9px; cursor:pointer; margin-bottom:1px; transition:background .15s; position:relative; }
.chat-session-item:hover { background:rgba(255,255,255,.07); }
.chat-session-item.active { background:rgba(99,102,241,.22); }
.chat-session-title { font-size:12px; color:rgba(255,255,255,.75); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }
.chat-session-item.active .chat-session-title { color:#fff; font-weight:600; }
.chat-session-date { font-size:10px; color:rgba(255,255,255,.3); white-space:nowrap; }
.chat-session-del { opacity:0; width:20px; height:20px; border-radius:5px; background:rgba(220,38,38,.15); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:opacity .15s; }
.chat-session-item:hover .chat-session-del { opacity:1; }
/* Sidebar toggle strip (when collapsed) */
.chat-sidebar-strip { width:0; overflow:hidden; display:flex; align-items:flex-start; padding-top:14px; justify-content:center; background:var(--bg-sidebar); border-right:1px solid rgba(255,255,255,.07); transition:width .22s ease; flex-shrink:0; }
.chat-sidebar-strip.visible { width:36px; }
/* Main area */
.chat-main { flex:1; display:flex; flex-direction:column; overflow:hidden; min-width:0; padding:16px 22px 16px; }
.chat-messages { flex:1; overflow-y:auto; padding:10px 0 14px; display:flex; flex-direction:column; gap:12px; }
.chat-messages::-webkit-scrollbar { width:4px; }
.chat-messages::-webkit-scrollbar-thumb { background:rgba(99,102,241,.2); border-radius:4px; }
/* Bot message row (avatar + bubble) */
.chat-msg-bot-row { display:flex; align-items:flex-start; gap:9px; align-self:flex-start; max-width:84%; animation:agenteCardIn .3s ease both; }
.chat-bot-avatar { width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,#6366F1,#8B5CF6); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; box-shadow:0 2px 10px rgba(99,102,241,.3); }
/* Message bubbles */
.chat-msg { font-size:13px; line-height:1.65; animation:agenteCardIn .3s ease both; }
.chat-msg.user { align-self:flex-end; max-width:76%; background:linear-gradient(135deg,#6366F1,#7C3AED); color:#fff; border-radius:18px 18px 4px 18px; padding:12px 17px; box-shadow:0 3px 14px rgba(99,102,241,.32); }
.chat-msg.bot { align-self:flex-start; background:var(--bg-card); border:1px solid var(--border-color); border-left:3px solid #6366F155; color:var(--text-main); border-radius:4px 18px 18px 18px; padding:13px 17px; box-shadow:0 2px 10px rgba(0,0,0,.07); }
.chat-msg.bot .chat-table { width:100%; font-size:12px; margin-top:8px; border-collapse:collapse; }
.chat-msg.bot .chat-table th { text-align:left; font-size:10px; color:var(--text-muted); text-transform:uppercase; padding:4px 8px; border-bottom:1px solid var(--border-color); }
.chat-msg.bot .chat-table td { padding:6px 8px; border-bottom:1px solid var(--border-color); }
.chat-msg.bot .chat-table tr:last-child td { border-bottom:none; }
/* Input area */
.chat-input-wrap { display:flex; gap:8px; padding:12px 0 0; border-top:1px solid var(--border-color); flex-shrink:0; align-items:center; }
.chat-input { flex:1; background:var(--bg-page); border:1.5px solid var(--border-color); border-radius:14px; padding:12px 16px; font-size:13.5px; color:var(--text-main); outline:none; transition:border-color .2s, box-shadow .2s; }
.chat-input:focus { border-color:#6366F1; box-shadow:0 0 0 3px rgba(99,102,241,.1); }
.chat-send-btn { width:44px; height:44px; border-radius:13px; background:linear-gradient(135deg,#6366F1,#7C3AED); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:opacity .15s, transform .1s; flex-shrink:0; box-shadow:0 2px 10px rgba(99,102,241,.35); }
.chat-send-btn:hover { opacity:.88; transform:scale(1.03); }
.chat-send-btn:disabled { opacity:.4; cursor:default; transform:none; }
.chat-suggestions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.chat-chip { padding:5px 11px; border-radius:9px; font-size:11px; background:var(--bg-page); border:1px solid var(--border-color); cursor:pointer; color:var(--text-main); transition:all .15s; }
.chat-chip:hover { border-color:#6366F1; color:#6366F1; background:rgba(99,102,241,.04); }
.chat-typing { display:flex; gap:4px; padding:8px 16px; }
.chat-typing span { width:6px; height:6px; border-radius:50%; background:var(--text-muted); animation:chatDot .6s ease-in-out infinite; }
.chat-typing span:nth-child(2) { animation-delay:.15s; }
.chat-typing span:nth-child(3) { animation-delay:.3s; }
@keyframes chatDot { 0%,100%{opacity:.3;transform:translateY(0)} 50%{opacity:1;transform:translateY(-4px)} }
/* ── Chat thinking indicator ── */
.chat-thinking-card { background:var(--bg-card); border:1px solid var(--border-color); border-radius:18px; border-bottom-left-radius:5px; padding:14px 18px; max-width:420px; align-self:flex-start; animation:agenteCardIn .3s ease both; }
.chat-thinking-header { display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none; }
.chat-thinking-label { font-size:12px; font-weight:600; color:var(--text-muted); }
.chat-thinking-toggle { font-size:10px; color:var(--text-muted); margin-left:auto; opacity:.6; }
.chat-thinking-steps { margin-top:10px; display:flex; flex-direction:column; gap:6px; overflow:hidden; }
.chat-thinking-steps.hidden { display:none; }
.chat-thinking-step { display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-muted); animation:agenteCardIn .25s ease both; }
.chat-thinking-step.done { color:var(--text-main); }
.chat-thinking-step.active { color:#6366F1; }
.chat-thinking-step-icon { flex-shrink:0; margin-top:1px; }
@keyframes thinkSpin { to { transform:rotate(360deg); } }
.chat-thinking-spinner { width:14px; height:14px; border:2px solid rgba(99,102,241,.2); border-top-color:#6366F1; border-radius:50%; animation:thinkSpin .7s linear infinite; flex-shrink:0; }
/* Sidebar chat animation */
@keyframes chatBubble { 0%{transform:scale(1)} 40%{transform:scale(1.15)} 70%{transform:scale(.95)} 100%{transform:scale(1)} }
.nav-item:hover .chat-icon-g { animation:chatBubble .45s ease both; }
/* Playground beaker tilt */
@keyframes pgBeakerTilt { 0%{transform:rotate(0)} 40%{transform:rotate(-14deg)} 70%{transform:rotate(4deg)} 100%{transform:rotate(0)} }
.nav-item:hover .pg-g { animation:pgBeakerTilt .42s ease both; transform-origin:50% 80%; }

/* ── Playground layout ────────────────────────────── */
.pg-layout { display:flex; height:calc(100vh - 136px); overflow:hidden; }
.pg-agents { width:210px; min-width:210px; background:var(--bg-card); border-right:1px solid var(--border-color); display:flex; flex-direction:column; overflow:hidden; flex-shrink:0; }
.pg-agents-head { padding:14px 14px 8px; border-bottom:1px solid var(--border-color); flex-shrink:0; }
.pg-agents-title { font-size:13px; font-weight:800; color:var(--text-main); }
.pg-agents-sub { font-size:10px; color:var(--text-muted); margin-top:2px; }
.pg-agents-body { flex:1; overflow-y:auto; padding:8px 6px; }
.pg-agent-item { display:flex; align-items:center; gap:9px; padding:9px 10px; cursor:pointer; border-radius:10px; margin-bottom:2px; transition:background .13s; }
.pg-agent-item:hover { background:var(--bg-page); }
.pg-agent-item.active { background:var(--blue-light); }
.pg-agent-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.pg-agent-info { flex:1; min-width:0; }
.pg-agent-name { font-size:12px; font-weight:700; color:var(--text-main); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pg-agent-desc { font-size:10px; color:var(--text-muted); }
.pg-agent-lock { color:var(--text-muted); flex-shrink:0; opacity:.45; }
.pg-main { flex:1; display:flex; flex-direction:column; overflow:hidden; min-width:0; }
.pg-main-top { display:flex; align-items:center; gap:10px; padding:10px 16px; border-bottom:1px solid var(--border-color); flex-shrink:0; background:var(--bg-card); }
.pg-main-agent-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.pg-main-title { font-size:13px; font-weight:700; color:var(--text-main); }
.pg-main-badge { font-size:10px; color:var(--text-muted); background:var(--bg-page); border:1px solid var(--border-color); border-radius:6px; padding:2px 7px; }
.pg-messages { flex:1; overflow-y:auto; padding:20px 24px; display:flex; flex-direction:column; gap:14px; }
.pg-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:40px; text-align:center; }
.pg-empty-icon { width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.pg-input-area { padding:12px 16px 14px; border-top:1px solid var(--border-color); background:var(--bg-card); display:flex; gap:8px; align-items:flex-end; flex-shrink:0; }
.pg-input { flex:1; border:1px solid var(--border-color); border-radius:12px; background:var(--bg-page); color:var(--text-main); font-size:13px; padding:10px 14px; resize:none; height:42px; max-height:120px; font-family:inherit; overflow-y:auto; line-height:1.5; transition:border-color .15s; }
.pg-input:focus { outline:none; border-color:#6366F1; }
.pg-send-btn { width:40px; height:40px; border-radius:12px; background:linear-gradient(135deg,#6366F1,#8B5CF6); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:opacity .15s; }
.pg-send-btn:hover { opacity:.85; }
.pg-send-btn:disabled { opacity:.4; cursor:default; }
.pg-msg-user { align-self:flex-end; background:linear-gradient(135deg,#6366F1,#8B5CF6); color:#fff; padding:10px 16px; border-radius:18px; border-bottom-right-radius:5px; max-width:75%; font-size:13px; line-height:1.55; word-break:break-word; }
.pg-msg-bot { align-self:flex-start; background:var(--bg-card); border:1px solid var(--border-color); padding:12px 16px; border-radius:18px; border-bottom-left-radius:5px; max-width:80%; font-size:13px; line-height:1.6; word-break:break-word; }
.pg-msg-bot p { margin:0 0 8px; } .pg-msg-bot p:last-child { margin:0; }
.pg-msg-bot ul, .pg-msg-bot ol { margin:6px 0 6px 18px; }
.pg-msg-bot li { margin-bottom:3px; }
.pg-msg-bot strong { color:var(--text-main); }
.pg-msg-bot code { background:var(--bg-page); padding:1px 5px; border-radius:4px; font-size:11px; }
.pg-config { width:270px; min-width:270px; background:var(--bg-card); border-left:1px solid var(--border-color); display:flex; flex-direction:column; overflow-y:auto; flex-shrink:0; }
.pg-config-head { padding:14px 16px 10px; border-bottom:1px solid var(--border-color); flex-shrink:0; }
.pg-config-body { padding:14px 16px; display:flex; flex-direction:column; gap:16px; flex:1; }
.pg-config-label { font-size:10px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
.pg-config-value { font-size:11px; font-weight:700; color:#6366F1; }
.pg-textarea { width:100%; border:1px solid var(--border-color); border-radius:10px; background:var(--bg-page); color:var(--text-main); font-size:11.5px; line-height:1.6; padding:10px 12px; resize:vertical; min-height:140px; font-family:inherit; box-sizing:border-box; transition:border-color .15s; }
.pg-textarea:focus { outline:none; border-color:#6366F1; }
.pg-range { width:100%; accent-color:#6366F1; cursor:pointer; }
.pg-divider { border:none; border-top:1px solid var(--border-color); margin:0; }
.pg-config-footer { padding:0 16px 16px; display:flex; flex-direction:column; gap:6px; }
.pg-thinking { align-self:flex-start; display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:14px; border-bottom-left-radius:4px; background:var(--bg-card); border:1px solid var(--border-color); font-size:12px; color:var(--text-muted); animation:agenteCardIn .3s ease both; }
.pg-thinking-dot { width:7px; height:7px; border-radius:50%; background:#6366F1; animation:pgDotBounce .9s ease infinite; }
.pg-thinking-dot:nth-child(2) { animation-delay:.15s; }
.pg-thinking-dot:nth-child(3) { animation-delay:.3s; }
@keyframes pgDotBounce { 0%,80%,100%{transform:translateY(0)} 40%{transform:translateY(-5px)} }
@keyframes pgDot { from{opacity:.3;transform:scale(.7)} to{opacity:1;transform:scale(1)} }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.45} }
@keyframes spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
/* Playground tabs */
.pg-tab-btn { padding:0 14px; height:100%; font-size:12px; font-weight:600; color:var(--text-muted); background:none; border:none; border-bottom:2px solid transparent; cursor:pointer; transition:color .2s, border-color .2s; white-space:nowrap; }
.pg-tab-btn:hover { color:var(--text-main); }
.pg-tab-btn.active { color:#6366F1; border-bottom-color:#6366F1; }
/* Tab & view transitions */
@keyframes pgTabSlide { from{opacity:0;transform:translateX(16px)} to{opacity:1;transform:translateX(0)} }
@keyframes pgTabSlideLeft { from{opacity:0;transform:translateX(-16px)} to{opacity:1;transform:translateX(0)} }
@keyframes cbViewFade { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
@keyframes cbItemCascade { from{opacity:0;transform:translateX(-14px)} to{opacity:1;transform:translateX(0)} }
.pg-tab-enter-r { animation:pgTabSlide .22s cubic-bezier(.4,0,.2,1) both; }
.pg-tab-enter-l { animation:pgTabSlideLeft .22s cubic-bezier(.4,0,.2,1) both; }
.cb-view-enter { animation:cbViewFade .2s cubic-bezier(.4,0,.2,1) both; }
.cb-item-cascade { animation:cbItemCascade .18s cubic-bezier(.34,1.4,.64,1) both; }
/* Flow canvas */
.pg-flow-scroll { flex:1; overflow:auto; position:relative; background:var(--bg-page); }
.pg-flow-canvas { position:relative; min-width:1250px; min-height:660px; }
.pg-flow-scroll { background-image:radial-gradient(circle, var(--border-color) 1.2px, transparent 1.2px); background-size:24px 24px; }
.pg-flow-svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.pg-flow-edge { pointer-events:stroke !important; cursor:pointer; }
.pg-flow-node { position:absolute; width:180px; background:var(--bg-card); border:1.5px solid var(--border-color); border-radius:12px; box-shadow:0 2px 12px rgba(0,0,0,.09); }
.pg-flow-node-head { padding:10px 12px 8px; border-radius:10px 10px 0 0; cursor:grab; display:flex; align-items:center; gap:8px; }
.pg-flow-node-head:active { cursor:grabbing; }
.pg-flow-node-title { font-size:11.5px; font-weight:800; color:#fff; line-height:1.2; }
.pg-flow-node-tipo { font-size:9px; color:rgba(255,255,255,.6); font-weight:700; text-transform:uppercase; letter-spacing:.4px; margin-top:1px; }
.pg-flow-node-body { padding:7px 12px 11px; }
.pg-flow-node-desc { font-size:11px; color:var(--text-muted); line-height:1.4; }
.pg-flow-port { width:14px; height:14px; border-radius:50%; background:var(--bg-card); border:2.5px solid var(--border-color); position:absolute; top:50%; margin-top:-7px; z-index:3; transition:transform .12s, border-color .12s, background .12s; cursor:crosshair; }
.pg-flow-port-in  { left:-8px; }
.pg-flow-port-out { right:-8px; }
.pg-flow-port-in:hover  { transform:scale(1.35); border-color:#10B981; background:#10B981; }
.pg-flow-port-out:hover { transform:scale(1.35); border-color:#6366F1; background:#6366F1; }
.pg-flow-toolbar { display:flex; align-items:center; gap:8px; padding:8px 16px; background:var(--bg-card); border-bottom:1px solid var(--border-color); flex-shrink:0; font-size:11px; color:var(--text-muted); }
.pg-flow-toolbar-sep { width:1px; height:16px; background:var(--border-color); margin:0 4px; }
.pg-flow-zoom-btn { width:24px; height:24px; border-radius:6px; border:1px solid var(--border-color); background:var(--bg-card); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text-main); font-size:14px; line-height:1; transition:background .12s; flex-shrink:0; }
.pg-flow-zoom-btn:hover { background:var(--bg-page); }
#pg-flow-inner { cursor:grab; transform-origin:0 0; will-change:transform; }
#pg-flow-inner.panning { cursor:grabbing; }
/* Agent icon badge */
.pg-agent-icon { border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
/* Usage display in agents panel */
.pg-usage-wrap { padding:6px 10px 8px; border-bottom:1px solid var(--border-color); flex-shrink:0; }
.pg-usage-track { height:3px; border-radius:2px; background:var(--border-color); margin-top:4px; overflow:hidden; }
.pg-usage-fill { height:100%; border-radius:2px; transition:width .4s; }
/* Patrimonial: house bounces */
@keyframes patriBounce { 0%{transform:translateY(0)} 35%{transform:translateY(-3px)} 65%{transform:translateY(.5px)} 100%{transform:translateY(0)} }
.nav-item:hover .patri-g { animation:patriBounce .45s ease both; }
/* Saude: heart beat */
@keyframes saudeHeartBeat { 0%{transform:scale(1)} 25%{transform:scale(1.18)} 40%{transform:scale(.95)} 60%{transform:scale(1.1)} 100%{transform:scale(1)} }
.nav-group-btn:hover .saude-g { animation:saudeHeartBeat .55s ease both; }
/* Saude dropdown: icon animations on hover */
@keyframes saudeGlobeSpin { 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }
@keyframes saudeFileLift { 0%{transform:translateY(0)} 40%{transform:translateY(-2px) rotate(-3deg)} 100%{transform:translateY(0)} }
@keyframes saudeCellPop { 0%{stroke-dasharray:0 40} 100%{stroke-dasharray:40 0} }
@keyframes saudeUserX { 0%{transform:scale(1)} 50%{transform:scale(1.15)} 100%{transform:scale(1)} }
/* Faturamento (Juliana): card lifts, stripe slides, coin spins */
@keyframes fatCardLift { 0%{transform:translateY(0)} 45%{transform:translateY(-1.5px) rotate(-2deg)} 100%{transform:translateY(0)} }
@keyframes fatStripeSlide { from{transform:translateX(-3px);opacity:.3} to{transform:translateX(0);opacity:1} }
@keyframes fatCoinFlip { 0%{transform:rotateY(0)} 50%{transform:rotateY(180deg)} 100%{transform:rotateY(360deg)} }
@keyframes fatRowReveal { from{transform:scaleX(0);opacity:.2} to{transform:scaleX(1);opacity:1} }
.fat-card { transform-box:fill-box; transform-origin:center; }
.fat-stripe { transform-box:fill-box; transform-origin:left center; }
.fat-coin, .fat-coin-mark { transform-box:fill-box; transform-origin:center; }
.fat-row { transform-box:fill-box; transform-origin:left center; }
#nav-saude .nav-dropdown .nav-item:nth-child(2):hover .nav-svg { animation:saudeFileLift .4s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(3):hover .fat-card { animation:fatCardLift .42s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(3):hover .fat-stripe { animation:fatStripeSlide .35s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(3):hover .fat-coin { animation:fatCoinFlip .55s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(3):hover .fat-r1 { animation:fatRowReveal .3s .08s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(3):hover .fat-r2 { animation:fatRowReveal .3s .16s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(4):hover .nav-svg { animation:saudeFileLift .4s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(5):hover .nav-svg { animation:saudeGlobeSpin .6s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(6):hover .caged-g { animation:saudeFileLift .35s ease both; }
#nav-saude .nav-dropdown .nav-item:nth-child(7):hover .deslig-g { animation:saudeUserX .4s ease both; }
/* nth-child(8-12) = itens da Tayná (Estipulantes/Reajustes/Boas-Vindas/Regras/Contatos Com.) — animam pelas classes genéricas .rel-frame/.ret-g/.cross-g/.file-g/.person-1 já presentes nos SVGs */
#nav-saude .nav-dropdown .nav-item:nth-child(13):hover .auto-g { animation:saudeFileLift .35s ease both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(5):hover .gs-card-stripe { animation:saudeFileLift .35s ease both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(5):hover .gs-card-chip { animation:barUp .3s cubic-bezier(.34,1.4,.64,1) both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(7):hover .gs-pauta-l1 { animation:saudeFileLift .25s ease both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(7):hover .gs-pauta-l2 { animation:saudeFileLift .35s ease .05s both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(7):hover .gs-pauta-l3 { animation:saudeFileLift .35s ease .1s both; }
#nav-gestao-saude .nav-dropdown .nav-item:nth-child(8):hover .gs-pill-g { animation:saudeGlobeSpin .5s ease both; }

/* Floating Agentes button (FAB) */
.orc-pag-flex > div { flex:1 1 150px; min-width:120px; }
.fab-agentes { position:fixed; bottom:28px; right:28px; z-index:9000; display:flex; flex-direction:column; align-items:flex-end; gap:10px; pointer-events:none; }
.fab-agentes > * { pointer-events:auto; }
.fab-agentes-btn { width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,#6366F1,#8B5CF6); border:none; cursor:pointer; box-shadow:0 4px 20px rgba(99,102,241,.45); display:flex; align-items:center; justify-content:center; transition:transform .2s, box-shadow .2s; }
.fab-agentes-btn:hover { transform:scale(1.1); box-shadow:0 6px 28px rgba(99,102,241,.65); }
.fab-agentes-btn svg { transition:transform .3s; }
.fab-agentes-btn.open svg { transform:rotate(15deg); }
.fab-panel { background:var(--bg-card); border:1px solid var(--border-color); border-radius:16px; box-shadow:0 8px 40px rgba(0,0,0,.2); width:258px; overflow:hidden; transform-origin:bottom right; animation:fabPanelIn .22s cubic-bezier(.22,1,.36,1) both; }
.fab-panel-header { padding:11px 14px; border-bottom:1px solid var(--border-color); display:flex; align-items:center; justify-content:space-between; }
.fab-agent-item { display:flex; align-items:center; gap:10px; padding:8px 14px; cursor:pointer; transition:background .12s; border-bottom:1px solid var(--border-color); }
.fab-agent-item:last-child { border-bottom:none; }
.fab-agent-item:hover { background:var(--bg-hover,rgba(99,102,241,.06)); }
@keyframes fabPanelIn { from{opacity:0;transform:scale(.85) translateY(10px)} to{opacity:1;transform:scale(1) translateY(0)} }
/* ── Mini-chat overlay ── */
.fmc-backdrop { position:fixed;inset:0;z-index:8990;background:rgba(0,0,0,.18);opacity:0;transition:opacity .25s;pointer-events:none; }
.fmc-backdrop.fmc-vis { opacity:1; }
.fmc-panel { position:fixed;top:0;right:0;bottom:0;z-index:8995;width:375px;background:var(--bg-card);border-left:1px solid var(--border-color);display:flex;flex-direction:column;box-shadow:-10px 0 50px rgba(0,0,0,.22);transform:translateX(100%);transition:transform .28s cubic-bezier(.22,1,.36,1);pointer-events:none; }
.fmc-panel.fmc-vis { transform:translateX(0);pointer-events:all; }
.fmc-hdr { padding:10px 12px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:8px;flex-shrink:0; }
.fmc-agents-row { padding:6px 12px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex-shrink:0;min-height:36px;position:relative; }
.fmc-chip { display:inline-flex;align-items:center;gap:4px;padding:3px 7px 3px 5px;border-radius:20px;font-size:10px;font-weight:700;cursor:default; }
.fmc-chip-rm { background:none;border:none;cursor:pointer;padding:1px;border-radius:50%;opacity:.55;line-height:0;transition:opacity .12s; }
.fmc-chip-rm:hover { opacity:1; }
.fmc-add-btn { display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:20px;font-size:10px;font-weight:700;cursor:pointer;border:1px dashed var(--border-color);background:none;color:var(--text-muted);transition:all .15s; }
.fmc-add-btn:hover { border-color:#6366F1;color:#6366F1; }
.fmc-add-drop { position:absolute;left:0;right:0;top:100%;background:var(--bg-card);border:1px solid var(--border-color);border-top:none;border-radius:0 0 12px 12px;box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:30;overflow:hidden; }
.fmc-add-row { display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .12s; }
.fmc-add-row:hover { background:var(--bg-hover,rgba(99,102,241,.06)); }
.fmc-ctx-bar { padding:5px 12px;border-bottom:1px solid var(--border-color);background:rgba(99,102,241,.05);flex-shrink:0; }
.fmc-msgs { flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px; }
.fmc-msg-u { align-self:flex-end;background:linear-gradient(135deg,#6366F1,#8B5CF6);color:#fff;padding:9px 13px;border-radius:14px 14px 4px 14px;font-size:12.5px;max-width:88%;line-height:1.55;word-break:break-word; }
.fmc-msg-a-wrap { align-self:flex-start;max-width:92%;display:flex;flex-direction:column;gap:3px; }
.fmc-msg-label { font-size:9.5px;font-weight:800;letter-spacing:.3px;padding-left:4px; }
.fmc-msg-a { background:var(--bg-alt,rgba(0,0,0,.04));color:var(--text-main);padding:9px 13px;border-radius:14px 14px 14px 4px;font-size:12.5px;line-height:1.55;border:1px solid var(--border-color);word-break:break-word; }
.fmc-msg-a p { margin:0; }
.fmc-msg-a p+p { margin-top:6px; }
.fmc-think-wrap { align-self:flex-start;max-width:92%;display:flex;flex-direction:column;gap:3px; }
.fmc-think-lbl { font-size:9.5px;font-weight:800;letter-spacing:.3px;padding-left:4px; }
.fmc-think-bubble { display:flex;align-items:center;gap:8px;background:var(--bg-alt,rgba(0,0,0,.04));padding:9px 13px;border-radius:14px 14px 14px 4px;border:1px solid var(--border-color);font-size:11.5px;color:var(--text-muted); }
.fmc-think-dots { display:flex;gap:3px;flex-shrink:0; }
.fmc-think-dots span { width:5px;height:5px;border-radius:50%;background:currentColor;animation:fmcDot 1.2s infinite; }
.fmc-think-dots span:nth-child(2){animation-delay:.22s} .fmc-think-dots span:nth-child(3){animation-delay:.44s}
@keyframes fmcDot { 0%,80%,100%{opacity:.25;transform:scale(.75)} 40%{opacity:1;transform:scale(1)} }
.fmc-inp-area { padding:10px 12px;border-top:1px solid var(--border-color);flex-shrink:0; }
.fmc-textarea { width:100%;resize:none;border:1px solid var(--border-color);border-radius:10px;padding:9px 12px;font-size:12.5px;font-family:inherit;background:var(--bg-main);color:var(--text-main);outline:none;transition:border-color .15s;box-sizing:border-box;min-height:40px;max-height:120px;line-height:1.5; }
.fmc-textarea:focus { border-color:#6366F1; }
/* History panel (slides in over fmc-panel) */
.fmc-hist { position:absolute;inset:0;background:var(--bg-card);z-index:25;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .25s cubic-bezier(.22,1,.36,1); }
.fmc-hist.fmc-hist-vis { transform:translateX(0); }
.fmc-hist-item { padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .12s; }
.fmc-hist-item:hover { background:var(--bg-hover,rgba(99,102,241,.06)); }
/* Nav group button icons */
@keyframes gstBriefcase { 0%{transform:translateY(0)} 35%{transform:translateY(-3px) scaleX(1.05)} 65%{transform:translateY(.5px)} 100%{transform:translateY(0)} }
@keyframes acompLens { 0%,100%{transform:scale(1) rotate(0)} 40%{transform:scale(1.15) rotate(-10deg)} 70%{transform:scale(.97) rotate(4deg)} }
@keyframes ferrSpin { 0%{transform:rotate(0)} 60%{transform:rotate(-25deg)} 100%{transform:rotate(0)} }
.nav-group-btn:hover .gst-g { animation:gstBriefcase .45s ease both; }
.nav-group-btn:hover .acomp-g { animation:acompLens .5s ease both; }
.nav-group-btn:hover .ferr-g { animation:ferrSpin .5s ease both; }
/* ── Nav dropdown cascade animation ── */
@keyframes navItemCascade { from{opacity:0;transform:translateX(-7px)} to{opacity:1;transform:translateX(0)} }
.nav-group:hover .nav-dropdown .nav-item { animation:navItemCascade .21s ease both; }
@keyframes clockTick { 0%{transform:rotate(0)} 40%{transform:rotate(28deg)} 70%{transform:rotate(-7deg)} 100%{transform:rotate(0)} }
.nav-item:hover .clock-hand { animation:clockTick .48s ease both; transform-origin:8px 8px; }
.nav-group:hover .nav-dropdown .nav-item:nth-child(1){animation-delay:.05s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(2){animation-delay:.10s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(3){animation-delay:.15s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(4){animation-delay:.20s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(5){animation-delay:.25s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(6){animation-delay:.30s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(7){animation-delay:.35s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(8){animation-delay:.40s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(9){animation-delay:.45s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(10){animation-delay:.50s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(11){animation-delay:.55s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(12){animation-delay:.60s}
.nav-group:hover .nav-dropdown .nav-item:nth-child(13){animation-delay:.65s}
/* ── Patrimonial page styles ──────────────────────── */
.patri-tabs { display:flex; gap:2px; border-bottom:2px solid var(--border-color); margin-bottom:20px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.patri-tabs::-webkit-scrollbar { display:none; }
.patri-tab { padding:8px 8px; font-size:11px; font-weight:600; color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .15s; border-radius:8px 8px 0 0; background:none; border-left:none; border-right:none; border-top:none; white-space:nowrap; flex-shrink:0; display:flex; align-items:center; gap:4px; }
.patri-tab:hover { color:var(--text-main); }
.patri-tab.active { color:#6366F1; border-bottom-color:#6366F1; }
.patri-card { background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px; padding:16px; }
.patri-stat { text-align:center; padding:12px; }
.patri-stat-val { font-size:22px; font-weight:800; line-height:1.1; }
.patri-stat-label { font-size:10px; color:var(--text-muted); margin-top:4px; }
.patri-table { width:100%; border-collapse:collapse; font-size:12px; }
.patri-table th { text-align:left; font-size:10px; text-transform:uppercase; color:var(--text-muted); padding:8px; border-bottom:1px solid var(--border-color); }
.patri-table td { padding:8px; border-bottom:1px solid var(--border-color); }
.patri-table tr:last-child td { border-bottom:none; }
.patri-table tr:hover { background:var(--bg-page); }
.patri-badge { display:inline-block; padding:2px 8px; border-radius:8px; font-size:10px; font-weight:700; }
.patri-badge.emitido { background:#D1FAE5; color:#059669; }
.patri-badge.pendente { background:#FEF3C7; color:#D97706; }
.patri-badge.cancelado,.patri-badge.nao_fechado,.patri-badge.nao_renovado { background:#FEE2E2; color:#DC2626; }
.patri-badge.fechado { background:#D1FAE5; color:#059669; }
.patri-badge.aviso_enviado { background:#DBEAFE; color:#1E40AF; }
.patri-badge.em_negociacao { background:#EDE9FE; color:#7C3AED; }
.patri-badge.aprovado { background:#DBEAFE; color:#1E40AF; }
.patri-badge.pago { background:#D1FAE5; color:#059669; }
.patri-badge.transferencia { background:#FEF3C7; color:#D97706; }
.patri-card { transition:all .2s; }
.patri-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08); }
.patri-stat:hover .patri-stat-val { transform:scale(1.08); }
.patri-stat-val { transition:transform .2s; }
.patri-menu-item:hover { background:var(--bg-page) !important; }
/* ── Saude page styles ──────────────────────────── */
.saude-tabs { display:flex; gap:4px; border-bottom:2px solid var(--border-color); margin-bottom:20px; flex-wrap:wrap; }
.saude-tab { padding:8px 16px; font-size:13px; font-weight:600; color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .15s; border-radius:8px 8px 0 0; background:none; border-left:none; border-right:none; border-top:none; }
.saude-tab:hover { color:var(--text-main); }
.saude-tab.active { color:#10B981; border-bottom-color:#10B981; }
.gs-tabs { display:flex; gap:4px; border-bottom:2px solid var(--border-color); margin-bottom:20px; flex-wrap:wrap; }
.gs-tab { padding:8px 16px; font-size:13px; font-weight:600; color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .15s; border-radius:8px 8px 0 0; background:none; border-left:none; border-right:none; border-top:none; display:flex; align-items:center; gap:6px; }
.gs-tab:hover { color:var(--text-main); }
.gs-tab.active { color:#14B8A6; border-bottom-color:#14B8A6; }
.saude-card { background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px; padding:16px; transition:all .2s; }
.saude-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08); }
.saude-stat { text-align:center; padding:12px; }
.saude-stat-val { font-size:22px; font-weight:800; line-height:1.1; transition:transform .2s; }
.saude-stat:hover .saude-stat-val { transform:scale(1.08); }
.saude-stat-label { font-size:10px; color:var(--text-muted); margin-top:4px; }
.saude-table { width:100%; border-collapse:collapse; font-size:12px; }
.saude-table th { text-align:left; font-size:10px; text-transform:uppercase; color:var(--text-muted); padding:8px; border-bottom:1px solid var(--border-color); }
.saude-table td { padding:8px; border-bottom:1px solid var(--border-color); }
.saude-table tr:last-child td { border-bottom:none; }
.saude-table tr:hover { background:var(--bg-page); }
.saude-badge { display:inline-block; padding:2px 8px; border-radius:8px; font-size:10px; font-weight:700; }
.saude-badge.ativo { background:#D1FAE5; color:#059669; }
.saude-badge.pendente { background:#FEF3C7; color:#D97706; }
.saude-badge.concluido { background:#DBEAFE; color:#1E40AF; }
.saude-badge.exclusao { background:#FEE2E2; color:#DC2626; }
.saude-badge.admissao { background:#D1FAE5; color:#059669; }
.saude-badge.aumento { background:#EDE9FE; color:#7C3AED; }
.saude-badge.declinio { background:#FEF3C7; color:#D97706; }
.saude-badge.pad { background:#DBEAFE; color:#1E40AF; }
.saude-menu-item:hover { background:var(--bg-page) !important; }
/* Saude pulse animation for pending items */
@keyframes saudePulse { 0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.3)} 50%{box-shadow:0 0 0 8px rgba(16,185,129,0)} }
.saude-pulse { animation:saudePulse 2s infinite; }
/* Saude card stagger animation */
@keyframes saudeCardIn { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.saude-card { animation:saudeCardIn .35s cubic-bezier(.4,0,.2,1) both; }
.saude-card:nth-child(1){animation-delay:.05s} .saude-card:nth-child(2){animation-delay:.1s}
.saude-card:nth-child(3){animation-delay:.15s} .saude-card:nth-child(4){animation-delay:.2s}
.saude-card:nth-child(5){animation-delay:.25s} .saude-card:nth-child(6){animation-delay:.3s}
/* Saude + Patri tabs slide in */
@keyframes saudeTabSlide { from{opacity:0;transform:translateX(-8px)} to{opacity:1;transform:translateX(0)} }
.saude-tab,.patri-tab { animation:saudeTabSlide .25s ease both; }
.saude-tab:nth-child(1),.patri-tab:nth-child(1){animation-delay:.02s}
.saude-tab:nth-child(2),.patri-tab:nth-child(2){animation-delay:.05s}
.saude-tab:nth-child(3),.patri-tab:nth-child(3){animation-delay:.08s}
.saude-tab:nth-child(4),.patri-tab:nth-child(4){animation-delay:.11s}
.saude-tab:nth-child(5),.patri-tab:nth-child(5){animation-delay:.14s}
.saude-tab:nth-child(6),.patri-tab:nth-child(6){animation-delay:.17s}
.saude-tab:nth-child(7),.patri-tab:nth-child(7){animation-delay:.20s}
.saude-tab:nth-child(8),.patri-tab:nth-child(8){animation-delay:.23s}
.patri-tab:nth-child(9){animation-delay:.26s}
.patri-tab:nth-child(10){animation-delay:.29s}
/* Saude stat counter pop */
@keyframes saudeStatPop { from{opacity:0;transform:scale(.7)} to{opacity:1;transform:scale(1)} }
.saude-stat-val { animation:saudeStatPop .4s .15s cubic-bezier(.34,1.4,.64,1) both; }
/* Saude badge shimmer */
@keyframes saudeBadgeIn { from{opacity:0;transform:scale(.8)} to{opacity:1;transform:scale(1)} }
.saude-badge { animation:saudeBadgeIn .25s ease both; }
/* Saude timeline fade in */
.saude-timeline-item { animation:saudeCardIn .3s ease both; }
.saude-timeline-item:nth-child(1){animation-delay:.1s} .saude-timeline-item:nth-child(2){animation-delay:.18s}
.saude-timeline-item:nth-child(3){animation-delay:.26s} .saude-timeline-item:nth-child(4){animation-delay:.34s}
/* Saude inline form */
.saude-inline-form { background:var(--bg-page);border:1px solid var(--border-color);border-radius:12px;padding:16px;animation:saudeCardIn .25s ease both; }
/* Saude progress bar */
.saude-progress { height:6px; background:var(--border-color); border-radius:3px; overflow:hidden; }
.saude-progress-bar { height:100%; border-radius:3px; background:linear-gradient(90deg,#10B981,#059669); transition:width .6s cubic-bezier(.4,0,.2,1); }
/* Saude timeline */
.saude-timeline-item { position:relative; padding-left:24px; padding-bottom:16px; border-left:2px solid var(--border-color); margin-left:8px; }
.saude-timeline-item:last-child { border-left-color:transparent; padding-bottom:0; }
/* Comparativo mensal */
@keyframes saude-stat-pop { from{opacity:0;transform:scale(.6)} to{opacity:1;transform:scale(1)} }
@keyframes compFadeInUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.comp-kpi { animation:saude-stat-pop .4s cubic-bezier(.34,1.4,.64,1) both; }
.comp-kpi:nth-child(1){animation-delay:.05s} .comp-kpi:nth-child(2){animation-delay:.12s}
.comp-kpi:nth-child(3){animation-delay:.19s} .comp-kpi:nth-child(4){animation-delay:.26s}
.comp-section { animation:compFadeInUp .35s ease both; }
.comp-section:nth-child(1){animation-delay:.05s} .comp-section:nth-child(2){animation-delay:.12s}
.comp-section:nth-child(3){animation-delay:.19s} .comp-section:nth-child(4){animation-delay:.26s}
.saude-timeline-dot { position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%; border:2px solid var(--bg-card); }
.saude-timeline-dot.green { background:#10B981; }
.saude-timeline-dot.yellow { background:#F59E0B; }
.saude-timeline-dot.red { background:#EF4444; }
.saude-timeline-dot.blue { background:#3B82F6; }
/* ── Faturamento (Juliana) ─────────────────────────────────────── */
@keyframes fatHeroFade { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes fatHeroShine { 0%{transform:translateX(-100%)} 100%{transform:translateX(200%)} }
@keyframes fatNumPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.04)} }
@keyframes fatStepperIn { from{opacity:0;transform:translateY(8px) scale(.96)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes fatLineGrow { from{transform:scaleX(0)} to{transform:scaleX(1)} }
@keyframes fatBadgeBob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes fatChipPop { from{transform:scale(.8);opacity:.4} to{transform:scale(1);opacity:1} }

.fat-hero { position:relative; overflow:hidden; border-radius:18px; padding:22px 24px; color:#fff; background:linear-gradient(135deg,#10B981 0%,#0F766E 55%,#0E7490 100%); box-shadow:0 12px 32px rgba(16,185,129,.22); animation:fatHeroFade .45s cubic-bezier(.4,0,.2,1) both; }
.fat-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%); animation:fatHeroShine 3.4s ease-in-out infinite; pointer-events:none; }
body.dark .fat-hero { background:linear-gradient(135deg,#065F46 0%,#0E7490 100%); box-shadow:0 12px 32px rgba(0,0,0,.45); }
.fat-hero-grid { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:center; position:relative; z-index:1; }
.fat-hero-name { font-size:11px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; opacity:.85; }
.fat-hero-title { font-size:22px; font-weight:800; margin-top:6px; line-height:1.2; }
.fat-hero-sub { font-size:12.5px; opacity:.92; margin-top:6px; max-width:560px; line-height:1.55; }
.fat-hero-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; background:rgba(255,255,255,.18); border-radius:999px; font-size:11px; font-weight:700; backdrop-filter:blur(8px); animation:fatBadgeBob 2.6s ease-in-out infinite; }
.fat-hero-avatar { width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:22px; letter-spacing:.5px; backdrop-filter:blur(8px); border:2px solid rgba(255,255,255,.35); }

/* Sub-tabs operadoras */
.fat-subtabs { display:flex; gap:8px; margin:18px 0 16px; flex-wrap:wrap; }
.fat-subtab { display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:10px; border:1px solid var(--border-color); background:var(--bg-card); color:var(--text-main); font-size:12.5px; font-weight:600; cursor:pointer; transition:all .18s; }
.fat-subtab:hover { border-color:#10B981; transform:translateY(-1px); box-shadow:0 4px 12px rgba(16,185,129,.12); }
.fat-subtab.active { background:linear-gradient(135deg,#10B981,#059669); color:#fff; border-color:transparent; box-shadow:0 6px 16px rgba(16,185,129,.32); }
.fat-subtab .fat-dot { width:7px; height:7px; border-radius:50%; }

/* Operadora cards */
.fat-op-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-bottom:18px; }
.fat-op-card { position:relative; background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px; padding:16px; overflow:hidden; transition:transform .2s, box-shadow .2s; cursor:pointer; animation:saudeCardIn .35s cubic-bezier(.4,0,.2,1) both; }
.fat-op-card:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,.08); }
.fat-op-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--op-color,#10B981); transform-origin:left; transform:scaleX(0); animation:fatLineGrow .55s .15s cubic-bezier(.4,0,.2,1) both; }
.fat-op-head { display:flex; align-items:center; gap:10px; }
.fat-op-icon { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:var(--op-bg,rgba(16,185,129,.12)); color:var(--op-color,#10B981); }
.fat-op-name { font-size:14px; font-weight:800; color:var(--text-main); }
.fat-op-sub { font-size:11px; color:var(--text-muted); margin-top:2px; }
.fat-op-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.fat-op-stat { background:var(--bg-page); border-radius:10px; padding:8px 10px; }
.fat-op-stat-num { font-size:18px; font-weight:800; color:var(--op-color,#10B981); animation:fatNumPulse 2.4s ease-in-out infinite; }
.fat-op-stat-lbl { font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.4px; margin-top:2px; }

/* Stepper / passo a passo */
.fat-stepper { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.fat-step { display:flex; gap:14px; padding:12px 14px; background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; animation:fatStepperIn .35s cubic-bezier(.34,1.5,.64,1) both; transition:all .2s; position:relative; }
.fat-step:hover { border-color:#10B981; box-shadow:0 4px 14px rgba(16,185,129,.10); }
.fat-step:nth-child(1){animation-delay:.05s} .fat-step:nth-child(2){animation-delay:.10s}
.fat-step:nth-child(3){animation-delay:.15s} .fat-step:nth-child(4){animation-delay:.20s}
.fat-step:nth-child(5){animation-delay:.25s} .fat-step:nth-child(6){animation-delay:.30s}
.fat-step:nth-child(7){animation-delay:.35s} .fat-step:nth-child(8){animation-delay:.40s}
.fat-step:nth-child(9){animation-delay:.45s} .fat-step:nth-child(10){animation-delay:.50s}
.fat-step-num { width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg,#10B981,#059669); color:#fff; font-weight:800; font-size:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 4px 12px rgba(16,185,129,.32); }
.fat-step-num.purple { background:linear-gradient(135deg,#8B5CF6,#6D28D9); box-shadow:0 4px 12px rgba(139,92,246,.32); }
.fat-step-num.orange { background:linear-gradient(135deg,#F97316,#C2410C); box-shadow:0 4px 12px rgba(249,115,22,.32); }
.fat-step-num.blue { background:linear-gradient(135deg,#3B82F6,#1D4ED8); box-shadow:0 4px 12px rgba(59,130,246,.32); }
.fat-step-body { flex:1; min-width:0; }
.fat-step-title { font-size:13px; font-weight:700; color:var(--text-main); }
.fat-step-desc { font-size:12px; color:var(--text-muted); line-height:1.5; margin-top:3px; }
.fat-step-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.fat-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:999px; font-size:10.5px; font-weight:600; background:var(--bg-page); color:var(--text-muted); border:1px solid var(--border-color); animation:fatChipPop .28s ease both; }
.fat-chip.green { background:rgba(16,185,129,.12); color:#059669; border-color:rgba(16,185,129,.28); }
.fat-chip.purple { background:rgba(139,92,246,.12); color:#7C3AED; border-color:rgba(139,92,246,.28); }
.fat-chip.orange { background:rgba(249,115,22,.12); color:#C2410C; border-color:rgba(249,115,22,.28); }
.fat-chip.blue { background:rgba(59,130,246,.12); color:#1D4ED8; border-color:rgba(59,130,246,.28); }
.fat-chip.red { background:rgba(239,68,68,.12); color:#B91C1C; border-color:rgba(239,68,68,.28); }
body.dark .fat-chip.green { color:#34D399 } body.dark .fat-chip.purple { color:#A78BFA } body.dark .fat-chip.orange { color:#FB923C } body.dark .fat-chip.blue { color:#60A5FA } body.dark .fat-chip.red { color:#F87171 }

/* Path / caminho copiável */
.fat-path { display:flex; align-items:center; gap:8px; padding:8px 10px; background:var(--bg-page); border:1px dashed var(--border-color); border-radius:8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:11.5px; color:var(--text-main); margin-top:8px; transition:all .18s; }
.fat-path:hover { border-color:#10B981; background:rgba(16,185,129,.06); }
.fat-path-text { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fat-path-btn { background:none; border:none; cursor:pointer; padding:4px; border-radius:6px; color:var(--text-muted); transition:all .18s; flex-shrink:0; }
.fat-path-btn:hover { background:rgba(16,185,129,.12); color:#10B981; }
.fat-path-btn.copied { color:#10B981; }

/* Formula box */
.fat-formula { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; background:linear-gradient(135deg,rgba(16,185,129,.08),rgba(59,130,246,.08)); border:1px solid rgba(16,185,129,.22); border-radius:8px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; font-weight:600; color:var(--text-main); margin-top:6px; }
.fat-formula-label { font-size:10px; color:#10B981; font-weight:800; text-transform:uppercase; letter-spacing:.5px; }

/* Sort guide */
.fat-sort-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; margin-top:10px; }
.fat-sort-card { display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--bg-page); border:1px solid var(--border-color); border-radius:10px; transition:all .18s; }
.fat-sort-card:hover { border-color:#10B981; transform:translateY(-1px); }
.fat-sort-letter { width:30px; height:30px; border-radius:8px; background:linear-gradient(135deg,#10B981,#059669); color:#fff; font-weight:800; font-size:14px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.fat-sort-info { font-size:11px; color:var(--text-muted); }
.fat-sort-info b { display:block; font-size:12px; color:var(--text-main); margin-bottom:1px; }

/* Alert/info banner */
.fat-banner { display:flex; gap:12px; padding:12px 14px; border-radius:12px; align-items:flex-start; margin-bottom:14px; animation:saudeCardIn .3s ease both; }
.fat-banner.info { background:rgba(59,130,246,.08); border-left:3px solid #3B82F6; color:var(--text-main); }
.fat-banner.warn { background:rgba(245,158,11,.08); border-left:3px solid #F59E0B; color:var(--text-main); }
.fat-banner.danger { background:rgba(239,68,68,.08); border-left:3px solid #EF4444; color:var(--text-main); }
.fat-banner.success { background:rgba(16,185,129,.08); border-left:3px solid #10B981; color:var(--text-main); }
.fat-banner-ico { width:24px; height:24px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.fat-banner-text { font-size:12.5px; line-height:1.55; flex:1; }
.fat-banner-text b { display:block; font-size:13px; margin-bottom:2px; }

/* Tag de filtro / valor */
.fat-tag { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; background:var(--bg-page); border:1px solid var(--border-color); border-radius:6px; font-size:11px; font-family:ui-monospace,monospace; color:var(--text-main); }
.fat-tag b { color:#10B981; }

/* Validation status pill */
.fat-pill { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; font-size:11px; font-weight:700; }
.fat-pill.ok { background:rgba(16,185,129,.14); color:#059669; }
.fat-pill.err { background:rgba(239,68,68,.14); color:#B91C1C; }
body.dark .fat-pill.ok { color:#34D399 } body.dark .fat-pill.err { color:#F87171 }

/* Workflow visual (timeline horizontal) */
.fat-flow { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin:18px 0; position:relative; }
.fat-flow-step { background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; padding:14px; text-align:center; transition:all .2s; animation:fatStepperIn .35s cubic-bezier(.34,1.5,.64,1) both; }
.fat-flow-step:hover { transform:translateY(-3px); box-shadow:0 8px 22px rgba(0,0,0,.08); border-color:#10B981; }
.fat-flow-step:nth-child(1){animation-delay:.05s} .fat-flow-step:nth-child(2){animation-delay:.12s}
.fat-flow-step:nth-child(3){animation-delay:.19s} .fat-flow-step:nth-child(4){animation-delay:.26s}
.fat-flow-step:nth-child(5){animation-delay:.33s} .fat-flow-step:nth-child(6){animation-delay:.40s}
.fat-flow-icon { width:42px; height:42px; border-radius:12px; margin:0 auto 8px; display:flex; align-items:center; justify-content:center; }
.fat-flow-step h5 { font-size:12px; font-weight:800; color:var(--text-main); margin-bottom:3px; }
.fat-flow-step p { font-size:10.5px; color:var(--text-muted); line-height:1.45; }

/* Section heading */
.fat-section-head { display:flex; align-items:center; gap:10px; margin:18px 0 10px; }
.fat-section-head h4 { font-size:14px; font-weight:800; color:var(--text-main); }
.fat-section-head .fat-section-line { flex:1; height:1px; background:linear-gradient(90deg, var(--border-color), transparent); }
.fat-section-ico { width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center; }

/* Upload zones / processar / exportar */
.fat-upload-card { background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; padding:10px 12px; transition:all .2s; animation:saudeCardIn .3s ease both; }
.fat-upload-card:hover { box-shadow:0 4px 14px rgba(16,185,129,.08); }
.fat-btn-process { display:inline-flex; align-items:center; gap:7px; padding:8px 16px; background:linear-gradient(135deg,#10B981,#059669); color:#fff; border:none; border-radius:10px; font-size:12.5px; font-weight:700; cursor:pointer; box-shadow:0 6px 18px rgba(16,185,129,.32); transition:transform .15s, box-shadow .2s; }
.fat-btn-process:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 10px 22px rgba(16,185,129,.42); }
.fat-btn-process:disabled { opacity:.7; cursor:wait; }
.fat-btn-export { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; background:var(--bg-card); border:1px solid #10B981; color:#10B981; border-radius:8px; font-size:11.5px; font-weight:700; cursor:pointer; transition:all .15s; }
.fat-btn-export:hover { background:#10B981; color:#fff; transform:translateY(-1px); box-shadow:0 6px 16px rgba(16,185,129,.28); }
@keyframes spin { to { transform:rotate(360deg); } }

/* PROCV mini-diagram */
.fat-procv { display:flex; align-items:center; gap:10px; padding:10px 12px; background:linear-gradient(135deg,rgba(59,130,246,.06),rgba(16,185,129,.06)); border:1px solid var(--border-color); border-radius:10px; font-size:11.5px; margin-top:8px; flex-wrap:wrap; }
.fat-procv-arrow { color:#10B981; font-weight:800; }
.fat-procv-piece { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; background:var(--bg-card); border:1px solid var(--border-color); border-radius:6px; font-family:ui-monospace,monospace; font-weight:600; }

/* Automações Avisos */
.av-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:box-shadow .2s}
.av-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}
.av-urgency{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.av-urgency.critico{background:#EF4444}
.av-urgency.alto{background:#F59E0B}
.av-urgency.normal{background:#6366F1}
.av-slide-sel{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);padding:5px 8px;font-size:11.5px;color:var(--text-main);cursor:pointer;outline:none}
.av-slide-sel.selected{border-color:#8B5CF6;background:rgba(139,92,246,.07)}
/* Modal overlay */
#av-modal{position:fixed;top:84px;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
#av-modal-box{background:var(--bg-card);border-radius:16px;padding:24px;width:100%;max-width:520px;box-shadow:0 24px 64px rgba(0,0,0,.22)}
@keyframes patriStatIn { from{opacity:0;transform:translateY(12px) scale(.95)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes patriGlow { 0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,0)} 50%{box-shadow:0 0 16px 2px rgba(99,102,241,.15)} }

/* KPI icons */
.kpi-icon { margin-bottom:10px; display:flex; align-items:center; }
.kpi-svg { display:block; }
.kpi-svg * { transform-box:fill-box; transform-origin:center; }
@keyframes kpiEnter { from{transform:scale(.7);opacity:0} to{transform:scale(1);opacity:1} }
.card-kpi .kpi-icon { animation:kpiEnter .5s cubic-bezier(.34,1.4,.64,1) both; }

/* ── KPI hover animations (all contained, compositor-only) ───────── */
/* Bars */
.kpi-svg .kpi-bar { transform-origin:bottom center; }
@keyframes kpiBarUp { from{transform:scaleY(.15);opacity:.4} to{transform:scaleY(1);opacity:1} }
.card-kpi:hover .kpi-b1 { animation:kpiBarUp .35s .00s cubic-bezier(.34,1.4,.64,1) both; }
.card-kpi:hover .kpi-b2 { animation:kpiBarUp .35s .07s cubic-bezier(.34,1.4,.64,1) both; }
.card-kpi:hover .kpi-b3 { animation:kpiBarUp .35s .14s cubic-bezier(.34,1.4,.64,1) both; }
/* Clock hand sweep */
@keyframes kpiHandSweep { from{transform:rotate(-30deg);opacity:.4} to{transform:rotate(0deg);opacity:1} }
.card-kpi:hover .kpi-hand { animation:kpiHandSweep .45s cubic-bezier(.34,1.4,.64,1) both; }
/* Check draw */
@keyframes kpiCheckIn { from{transform:scale(.5);opacity:0} to{transform:scale(1);opacity:1} }
.card-kpi:hover .kpi-check { animation:kpiCheckIn .38s .05s cubic-bezier(.34,1.5,.64,1) both; }
/* Calendar pop */
@keyframes kpiCalPop { 0%{transform:scaleY(1)} 35%{transform:scaleY(.82)} 65%{transform:scaleY(1.06)} 100%{transform:scaleY(1)} }
.card-kpi:hover .kpi-cal { animation:kpiCalPop .42s ease both; transform-origin:bottom center; }
/* Person bob */
.card-kpi:hover .kpi-p1 { animation:personBob .45s .00s ease both; }
.card-kpi:hover .kpi-p2 { animation:personBob .45s .10s ease both; }
/* Doc lift */
.card-kpi:hover .kpi-doc { animation:docLift .40s ease both; }
/* Lines reveal */
.kpi-svg .kpi-ln { transform-origin:left center; }
.card-kpi:hover .kpi-ln1 { animation:lineReveal .30s .06s ease both; }
.card-kpi:hover .kpi-ln2 { animation:lineReveal .30s .15s ease both; }
/* Alert flash */
.card-kpi:hover .kpi-alert { animation:alertFlash .55s ease both; }
/* Cross beat */
.card-kpi:hover .kpi-cross { animation:crossBeat .38s ease both; }
/* Trend slide */
.card-kpi:hover .kpi-trend { animation:trendIn .35s ease both; }

/* ── Rank badge animations ───────────────────────────────────────── */
.rank-badge { flex-shrink:0; }
@keyframes rankEnter  { from{transform:scale(0) rotate(-20deg);opacity:0} to{transform:scale(1) rotate(0);opacity:1} }
/* Gold #1: scale pulse + strong golden ring */
@keyframes rank1Glow  { 0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,0),0 0 6px rgba(245,158,11,0.2)} 50%{box-shadow:0 0 0 8px rgba(245,158,11,0.35),0 0 18px rgba(245,158,11,0.45)} }
@keyframes rank1Scale { 0%,100%{transform:scale(1)} 50%{transform:scale(1.1)} }
/* Silver #2: glow ring + brightness shimmer (both combined = visible) */
@keyframes rank2Shine { 0%,100%{box-shadow:0 0 0 0 rgba(203,213,225,0);filter:brightness(1)} 50%{box-shadow:0 0 0 7px rgba(203,213,225,0.45);filter:brightness(1.45)} }
/* Bronze #3: warm ember ring */
@keyframes rank3Glow  { 0%,100%{box-shadow:0 0 0 0 rgba(205,127,50,0),0 0 4px rgba(205,127,50,0.1)} 50%{box-shadow:0 0 0 7px rgba(205,127,50,0.38),0 0 14px rgba(205,127,50,0.3)} }
.rank-1 { animation:rankEnter .5s .00s cubic-bezier(.34,1.5,.64,1) both, rank1Glow 2s 1s ease-in-out infinite, rank1Scale 2s 1s ease-in-out infinite; }
.rank-2 { animation:rankEnter .5s .06s cubic-bezier(.34,1.5,.64,1) both, rank2Shine 2.4s 1s ease-in-out infinite; }
.rank-3 { animation:rankEnter .5s .12s cubic-bezier(.34,1.5,.64,1) both, rank3Glow 2.8s 1s ease-in-out infinite; }
.rank-n { animation:rankEnter .5s .18s cubic-bezier(.34,1.5,.64,1) both; }

/* Import table improvements */
.imp-row-selected { background: rgba(26,79,156,0.06) !important; box-shadow: inset 3px 0 0 var(--blue); }
.imp-row-selected:hover { background: rgba(26,79,156,0.10) !important; }
body.dark .imp-row-selected { background: rgba(99,179,237,0.08) !important; box-shadow: inset 3px 0 0 #63B3ED; }
body.dark .imp-row-selected:hover { background: rgba(99,179,237,0.13) !important; }

/* Form controls in dark mode get proper focus glow */
body.dark .form-control:focus { border-color:#63B3ED; box-shadow:0 0 0 3px rgba(99,179,237,0.2); }
body:not(.dark) .form-control:focus { box-shadow:0 0 0 3px rgba(26,79,156,0.12); }

/* Import-specific input highlight */
body.dark input[style*="border-color:#F59E0B"] { background:#2d2a1a !important; color:#FCD34D !important; }

/* Modal bem dark mode */
.modal-imp-bem { background:var(--bg-card); color:var(--text-main); border-radius:16px; padding:28px; width:520px; max-width:95vw; box-shadow:0 8px 40px rgba(0,0,0,.4); }
.modal-imp-bem .form-label { color:var(--text-muted); }
.modal-imp-bem .form-control { background:var(--bg-page); border-color:var(--border-color); color:var(--text-main); }
.nav-badge { background:var(--red); color:#fff; font-size:10px; font-weight:700; padding:1px 6px; border-radius:10px; margin-left:2px; }
.logout-btn { width:100%; padding:9px 14px; background:none; border:1px solid var(--border-color); color:var(--text-main); border-radius:8px; cursor:pointer; font-size:13px; font-weight:500; text-align:left; transition:background .15s, border-color .15s, color .15s; }
.logout-btn:hover { background:rgba(220,38,38,0.08); border-color:rgba(220,38,38,0.35); color:#DC2626; }

/* Main */
#main { margin-left:0; margin-top:84px; flex:1; display:flex; flex-direction:column; min-height:calc(100vh - 84px); min-width:0; overflow-x:hidden; }
#topbar { background:var(--bg-card); border-bottom:1px solid var(--border-color); padding:0 24px; height:52px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:90; transition:background .3s; }
#topbar h1 { font-size:18px; font-weight:700; color:var(--text); }
#topbar .topbar-right { display:flex; align-items:center; gap:14px; }
/* Topbar datetime */
#topbar-datetime { display:flex; flex-direction:column; align-items:flex-end; gap:1px; }
.tb-date { font-size:10.5px; color:rgba(255,255,255,.6); font-weight:500; text-transform:capitalize; letter-spacing:.2px; }
.tb-time { font-size:19px; font-weight:800; color:#fff; font-variant-numeric:tabular-nums; line-height:1; letter-spacing:-0.5px; }
/* Animated Sun/Moon Toggle */
#btn-dark { position:relative; background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.2); border-radius:12px; width:40px; height:40px; cursor:pointer; overflow:hidden; transition:border-color .3s, box-shadow .3s, transform .2s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
#btn-dark:hover { transform:scale(1.08); background:rgba(255,255,255,.15); }
body:not(.dark) #btn-dark:hover { box-shadow:0 0 0 4px rgba(245,158,11,0.25); border-color:#F59E0B; }
body.dark #btn-dark:hover { box-shadow:0 0 0 4px rgba(147,197,253,0.2); border-color:#93C5FD; }
#btn-escritorio { display:none; align-items:center; gap:6px; padding:6px 12px; background:rgba(139,92,246,.18); border:1.5px solid rgba(139,92,246,.4); border-radius:10px; cursor:pointer; color:rgba(255,255,255,.9); font-size:12px; font-weight:600; letter-spacing:.3px; transition:all .2s; flex-shrink:0; text-decoration:none; }
#btn-escritorio:hover { background:rgba(139,92,246,.32); border-color:rgba(139,92,246,.7); box-shadow:0 0 0 3px rgba(139,92,246,.2); color:#fff; transform:translateY(-1px); }
#btn-escritorio svg { width:15px; height:15px; flex-shrink:0; }
.tb-sun { position:absolute; display:flex; align-items:center; justify-content:center; transition:opacity .45s cubic-bezier(.4,0,.2,1), transform .45s cubic-bezier(.4,0,.2,1); }
.tb-sun svg { animation:rotateSun 12s linear infinite; filter:drop-shadow(0 0 5px rgba(245,158,11,0.7)); will-change:transform; }
body.dark .tb-sun { opacity:0; transform:scale(.4) rotate(100deg); pointer-events:none; }
body:not(.dark) .tb-sun { opacity:1; transform:scale(1) rotate(0deg); }
.tb-moon { position:absolute; display:flex; align-items:center; justify-content:center; transition:opacity .45s cubic-bezier(.4,0,.2,1), transform .45s cubic-bezier(.4,0,.2,1); }
.tb-moon svg { filter:drop-shadow(0 0 7px rgba(147,197,253,0.9)); }
body:not(.dark) .tb-moon { opacity:0; transform:scale(.4) rotate(-100deg); pointer-events:none; }
body.dark .tb-moon { opacity:1; transform:scale(1) rotate(0deg); }
.tb-star { position:absolute; background:#C7D2FE; border-radius:50%; animation:twinkleStar 2.2s ease-in-out infinite; }
@keyframes rotateSun { to { transform:rotate(360deg); } }
@keyframes twinkleStar { 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.25; transform:scale(.5); } }
.search-box { display:flex; align-items:center; gap:8px; background:var(--gray-light); border:1px solid var(--border); border-radius:8px; padding:6px 12px; }
.search-box input { border:none; background:none; outline:none; font-size:13px; color:var(--text); width:200px; }
#content { padding:24px; flex:1; min-width:0; max-width:100%; }

/* Cards */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px,1fr)); gap:16px; margin-bottom:24px; }
.card { background:var(--bg-card); border-radius:var(--card-radius); padding:20px; box-shadow:var(--shadow); border:1px solid var(--border-color); transition: var(--transition); }
.card-stat { display:flex; align-items:flex-start; justify-content:space-between; }
.card-stat .val { font-size:32px; font-weight:800; color:var(--text); line-height:1; }
.card-stat .label { font-size:12px; color:var(--text-light); margin-top:4px; }
.card-stat .icon-wrap { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; }
.card-stat .trend { font-size:12px; margin-top:8px; }
/* KPI Cards */
.card-kpi { position:relative; overflow:hidden; }
.card-kpi::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--kpi-color,var(--blue)); border-radius:16px 16px 0 0; }
.kpi-icon { margin-bottom:10px; display:flex; align-items:center; }
.kpi-val { font-size:36px; font-weight:800; line-height:1; color:var(--text); font-variant-numeric:tabular-nums; }
.kpi-val-sm { font-size:22px; }
.kpi-label { font-size:13px; font-weight:600; color:var(--text); margin-top:6px; }
.kpi-sub { font-size:11px; color:var(--text-light); margin-top:2px; }
.card-kpi:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.12), 0 0 0 2px var(--kpi-color), 0 0 28px -6px var(--kpi-color); border-color:var(--kpi-color) !important; }
/* Skeleton */
.skel { background:linear-gradient(90deg,var(--border) 25%,var(--gray-light) 50%,var(--border) 75%); background-size:200% 100%; animation:skelPulse 1.4s ease infinite; border-radius:10px; }
@keyframes skelPulse { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
/* card-clickable moved to animation system below */

/* Tables */
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.section-title { font-size:16px; font-weight:700; color:var(--text); }
.table-wrap { background:var(--white); border-radius:14px; box-shadow:var(--shadow); border:1px solid var(--border); overflow:hidden; }
table { width:100%; border-collapse:collapse; }
thead th { background:var(--gray-light); font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-light); padding:10px 16px; text-align:left; font-weight:600; }
tbody tr { border-top:1px solid var(--border); }
tbody tr:hover { background:var(--gray-light); }
tbody td { padding:12px 16px; font-size:13px; color:var(--text); }
tbody td.light { color:var(--text-light); font-size:12px; }
.table-actions { display:flex; gap:6px; }
.btn { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; border:none; transition:all .15s; }
.btn-primary { background:var(--blue); color:#fff; }
.btn-primary:hover { background:var(--blue-dark); }
.btn-primary:disabled { opacity:.6; cursor:not-allowed; }
.btn-sm { padding:4px 10px; font-size:12px; border-radius:6px; }
.btn-outline { background:none; border:1px solid var(--border); color:var(--text); }
.btn-outline:hover { background:var(--gray-light); }
.btn-danger { background:#FEE2E2; color:var(--red); }
.btn-danger:hover { background:#FECACA; }
.btn-success { background:#D1FAE5; color:#065F46; }

/* Badges */
.badge { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:20px; font-size:11px; font-weight:700; }
.badge-pendente    { background:#FEF3C7; color:#92400E; }
.badge-em_analise  { background:#DBEAFE; color:#1E40AF; }
.badge-respondida  { background:#D1FAE5; color:#065F46; }
.badge-cancelada   { background:#FEE2E2; color:#991B1B; }
.badge-abertura    { background:#FEF3C7; color:#92400E; }
.badge-analise     { background:#DBEAFE; color:#1E40AF; }
.badge-vistoria    { background:#EDE9FE; color:#4C1D95; }
.badge-aprovado    { background:#D1FAE5; color:#065F46; }
.badge-concluido   { background:#D1FAE5; color:#065F46; }
.badge-negado      { background:#FEE2E2; color:#991B1B; }
.badge-ativo       { background:#D1FAE5; color:#065F46; }
.badge-inativo     { background:#FEE2E2; color:#991B1B; }
.badge-info        { background:#EFF6FF; color:#1A4F9C; }
.badge-a_receber   { background:#FEF3C7; color:#92400E; white-space:nowrap; }
.badge-recebida    { background:#D1FAE5; color:#065F46; }
.badge-cancelada-c { background:#FEE2E2; color:#991B1B; }

/* Filters */
.filters { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.filter-btn { padding:5px 14px; border-radius:20px; font-size:12px; font-weight:600; cursor:pointer; border:1.5px solid var(--border); background:var(--white); color:var(--text-light); transition:all .15s; }
.filter-btn.active, .filter-btn:hover { border-color:var(--blue); color:var(--blue); background:var(--blue-light); }

/* Modal — enhanced version in animation system below */
.modal { background:var(--white); border-radius:16px; width:560px; max-width:95vw; max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,0.2); flex-shrink:0; }
.modal-header { padding:20px 24px 16px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; background:var(--white); z-index:1; }
.modal-title { font-size:17px; font-weight:700; }
.modal-close { background:var(--gray-light); border:none; width:32px; height:32px; border-radius:8px; cursor:pointer; font-size:16px; color:var(--text-light); }
.modal-close:hover { background:var(--border); }
.modal-body { padding:20px 24px; }
.modal-footer { padding:16px 24px; border-top:1px solid var(--border); display:flex; gap:8px; justify-content:flex-end; position:sticky; bottom:0; background:var(--white); }

/* Form */
.form-group { margin-bottom:16px; }
.form-label { display:block; font-size:12px; font-weight:600; color:var(--text-light); margin-bottom:5px; text-transform:uppercase; letter-spacing:.3px; }
.form-control { width:100%; padding:9px 12px; border:1.5px solid var(--border); border-radius:8px; font-size:14px; color:var(--text); outline:none; transition:border-color .15s; background:var(--white); }
.form-control:focus { border-color:var(--blue); }
select.form-control { cursor:pointer; }
textarea.form-control { min-height:100px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* ── Login Screen ───────────────────────────────────────────────────── */
#login-screen {
  position:fixed; inset:0; z-index:1000;
  display:flex; align-items:center; justify-content:center;
  background: #0a1628;
  overflow:hidden;
}
/* Animated gradient orbs */
#login-screen::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 20% 30%, rgba(26,79,156,0.55) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 70%, rgba(139,92,246,0.3) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 60% 10%, rgba(16,185,129,0.2) 0%, transparent 50%);
  animation: orbShift 8s ease-in-out infinite alternate;
}
@keyframes orbShift {
  0%   { opacity:1; transform:scale(1) rotate(0deg); }
  100% { opacity:.85; transform:scale(1.06) rotate(2deg); }
}
/* Floating particles */
.lp { position:absolute; border-radius:50%; animation:floatUp linear infinite; opacity:0; }
@keyframes floatUp {
  0%   { transform:translateY(0) scale(1);   opacity:0; }
  10%  { opacity:.6; }
  90%  { opacity:.2; }
  100% { transform:translateY(-100vh) scale(.4); opacity:0; }
}
/* Card */
.login-card {
  position:relative; z-index:2;
  background:rgba(255,255,255,0.97);
  border-radius:24px;
  padding:48px 44px 40px;
  width:400px; max-width:92vw;
  box-shadow:0 32px 80px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.12);
  animation:cardIn .7s cubic-bezier(.22,1,.36,1) both;
}
@keyframes cardIn {
  from { opacity:0; transform:translateY(32px) scale(.96); }
  to   { opacity:1; transform:translateY(0)    scale(1);   }
}
/* Logo */
.login-logo { text-align:center; margin-bottom:10px; animation:fadeSlide .6s .15s both; }
.login-logo .brand {
  font-size:34px; font-weight:900; letter-spacing:-1px;
  background:linear-gradient(135deg,#1A4F9C,#3B82F6);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  display:inline-block;
}
.login-logo .brand span {
  background:linear-gradient(135deg,#C0272D,#EF4444);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.login-logo .sub {
  font-size:11px; color:#6b7c99; text-transform:uppercase;
  letter-spacing:2.5px; margin-top:6px; font-weight:600;
}
/* Divider */
.login-divider {
  height:1px; background:linear-gradient(90deg,transparent,#E2E8F0,transparent);
  margin:20px 0 28px; animation:fadeSlide .6s .2s both;
}
/* Title */
.login-title {
  font-size:19px; font-weight:700; text-align:center;
  color:#1a2a4a; margin-bottom:26px;
  animation:fadeSlide .6s .25s both;
}
/* Input groups with floating effect */
.login-field { position:relative; margin-bottom:18px; animation:fadeSlide .6s both; }
.login-field:nth-child(1) { animation-delay:.3s; }
.login-field:nth-child(2) { animation-delay:.38s; }
.login-field label {
  display:block; font-size:11px; font-weight:700; color:#6b7c99;
  text-transform:uppercase; letter-spacing:1px; margin-bottom:7px;
}
.login-field input {
  width:100%; padding:13px 16px;
  border:1.5px solid #E2E8F0; border-radius:12px;
  font-size:14px; color:#1a2a4a; background:#FAFBFF;
  outline:none; transition:all .25s cubic-bezier(.4,0,.2,1);
}
.login-field input:focus {
  border-color:var(--blue); background:#fff;
  box-shadow:0 0 0 4px rgba(26,79,156,0.1);
  transform:translateY(-1px);
}
/* Error */
#login-error {
  background:#FEF2F2; color:#B91C1C; border:1px solid #FECACA;
  padding:11px 14px; border-radius:10px; font-size:13px;
  margin-bottom:16px; display:none;
  animation:shake .4s cubic-bezier(.36,.07,.19,.97);
}
@keyframes shake {
  0%,100%{ transform:translateX(0); }
  20%    { transform:translateX(-7px); }
  40%    { transform:translateX(7px); }
  60%    { transform:translateX(-4px); }
  80%    { transform:translateX(4px); }
}
/* Button */
.login-btn {
  width:100%; padding:14px; margin-top:6px;
  background:linear-gradient(135deg,#1A4F9C,#2563EB);
  color:#fff; border:none; border-radius:12px;
  font-size:15px; font-weight:700; cursor:pointer; letter-spacing:.3px;
  transition:all .25s cubic-bezier(.4,0,.2,1);
  position:relative; overflow:hidden;
  animation:fadeSlide .6s .45s both;
}
.login-btn::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,0.15),transparent);
  opacity:0; transition:opacity .2s;
}
.login-btn:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(26,79,156,0.4); }
.login-btn:hover::after { opacity:1; }
.login-btn:active { transform:translateY(0); box-shadow:none; }
.login-btn:disabled { opacity:.7; cursor:not-allowed; transform:none; }
/* Footer note */
.login-footer {
  text-align:center; font-size:11px; color:#6b7c99;
  margin-top:20px; animation:fadeSlide .6s .5s both;
}
@keyframes fadeSlide {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes spin { to { transform:rotate(360deg); } }

/* Pagination */
.pagination { display:flex; gap:4px; margin-top:16px; align-items:center; }
.page-btn { padding:5px 10px; border:1.5px solid var(--border); border-radius:6px; background:var(--white); cursor:pointer; font-size:13px; color:var(--text); }
.page-btn.active { background:var(--blue); color:#fff; border-color:var(--blue); }
.page-btn:hover:not(.active) { background:var(--gray-light); }
.page-info { font-size:13px; color:var(--text-light); margin:0 8px; }

/* Timeline */
.timeline { position:relative; padding-left:24px; }
.timeline-item { position:relative; padding-bottom:20px; }
.timeline-item:before { content:''; position:absolute; left:-20px; top:6px; bottom:-6px; width:2px; background:var(--border); }
.timeline-item:last-child:before { display:none; }
.timeline-dot { position:absolute; left:-25px; top:4px; width:12px; height:12px; border-radius:50%; background:var(--blue); border:2px solid var(--white); box-shadow:0 0 0 2px var(--blue); }
.timeline-title { font-size:14px; font-weight:700; color:var(--text); }
.timeline-desc { font-size:13px; color:var(--text-light); margin-top:2px; }
.timeline-date { font-size:11px; color:#94A3B8; margin-top:3px; }

/* Empty */
.empty { text-align:center; padding:48px 24px; color:var(--text-light); }
.empty-icon { font-size:48px; margin-bottom:12px; }
.empty p { font-size:14px; }

/* Toast */
#toast-container { position:fixed; bottom:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast { display:flex; align-items:center; gap:10px; padding:12px 18px; border-radius:12px; font-size:14px; font-weight:600; box-shadow:0 4px 20px rgba(0,0,0,0.15); min-width:260px; max-width:380px; animation:slideIn .25s ease; }
.toast-success { background:#D1FAE5; color:#065F46; border:1px solid #A7F3D0; }
.toast-error   { background:#FEE2E2; color:#991B1B; border:1px solid #FECACA; }
.toast-info    { background:#DBEAFE; color:#1E40AF; border:1px solid #BFDBFE; }
@keyframes slideIn  { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
@keyframes slideOut { from { transform:translateX(0); opacity:1; } to { transform:translateX(100%); opacity:0; } }

/* ── Animation System ─────────────────────────────────────────────── */
@keyframes fadeUp    { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInUp  { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeDown  { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn  { from { opacity:0; transform:scale(0.93) translateY(12px); } to { opacity:1; transform:scale(1) translateY(0); } }

/* ── Welcome Modal ─────────────────────────────────────────────────── */
@keyframes wlBackdropIn { from{opacity:0} to{opacity:1} }
@keyframes wlCardIn     { from{opacity:0;transform:scale(.9) translateY(32px)} to{opacity:1;transform:scale(1) translateY(0)} }
@keyframes wlSlideRight { from{opacity:0;transform:translateX(-18px)} to{opacity:1;transform:translateX(0)} }
@keyframes wlStepIn     { from{opacity:0;transform:translateX(24px)} to{opacity:1;transform:translateX(0)} }
@keyframes wlOrb        { 0%,100%{transform:scale(1) translate(0,0);opacity:.35} 33%{transform:scale(1.15) translate(8px,-10px);opacity:.55} 66%{transform:scale(.9) translate(-6px,8px);opacity:.3} }
@keyframes wlFeatureIn  { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
@keyframes wlShine      { from{left:-100%} to{left:200%} }
@keyframes wlPulseRing  { 0%{transform:scale(1);opacity:.6} 100%{transform:scale(2.2);opacity:0} }
@keyframes wlCheckPop   { 0%{transform:scale(0) rotate(-45deg);opacity:0} 70%{transform:scale(1.25) rotate(5deg);opacity:1} 100%{transform:scale(1) rotate(0deg);opacity:1} }
@keyframes wlBounce     { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes scaleOut { from { opacity:1; transform:scale(1) translateY(0); } to { opacity:0; transform:scale(0.93) translateY(12px); } }
@keyframes shimmer  { 0% { background-position:-400% 0; } 100% { background-position:400% 0; } }
@keyframes spin     { to { transform:rotate(360deg); } }
@keyframes pulseDot { 0%,100% { box-shadow:0 0 0 0 rgba(192,39,45,0.5); } 60% { box-shadow:0 0 0 7px rgba(192,39,45,0); } }
@keyframes slideInLeft { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }
@keyframes navIndicator { from { height:0; opacity:0; } to { height:60%; opacity:1; } }

/* Page transition */
#content { transition:opacity .18s ease; }
#content.fading { opacity:0; pointer-events:none; }
.page-enter > * { animation:fadeUp .38s cubic-bezier(0.22,0.61,0.36,1) both; }
.page-enter > *:nth-child(2) { animation-delay:.05s; }
.page-enter > *:nth-child(3) { animation-delay:.10s; }
.page-enter > *:nth-child(4) { animation-delay:.15s; }
.page-enter > *:nth-child(5) { animation-delay:.20s; }

/* Dashboard cards stagger */
@keyframes dashCardIn { from{opacity:0;transform:translateY(18px) scale(.97)} to{opacity:1;transform:translateY(0) scale(1)} }
.cards-grid .card { animation:dashCardIn .4s cubic-bezier(0.22,0.61,0.36,1) both; }
.cards-grid .card:nth-child(1) { animation-delay:.04s; }
.cards-grid .card:nth-child(2) { animation-delay:.08s; }
.cards-grid .card:nth-child(3) { animation-delay:.12s; }
.cards-grid .card:nth-child(4) { animation-delay:.16s; }
.cards-grid .card:nth-child(5) { animation-delay:.20s; }
.cards-grid .card:nth-child(6) { animation-delay:.24s; }
/* KPI cards stagger (dashboard inline grids) */
.card-kpi { animation:dashCardIn .4s cubic-bezier(0.22,0.61,0.36,1) both; }
.kpi-row-1 .card-kpi:nth-child(1) { animation-delay:.04s; }
.kpi-row-1 .card-kpi:nth-child(2) { animation-delay:.09s; }
.kpi-row-1 .card-kpi:nth-child(3) { animation-delay:.14s; }
.kpi-row-1 .card-kpi:nth-child(4) { animation-delay:.19s; }
.kpi-row-2 .card-kpi:nth-child(1) { animation-delay:.12s; }
.kpi-row-2 .card-kpi:nth-child(2) { animation-delay:.17s; }
.kpi-row-2 .card-kpi:nth-child(3) { animation-delay:.22s; }
.kpi-row-2 .card-kpi:nth-child(4) { animation-delay:.27s; }
/* Patrimonial KPI row stagger */
.kpi-row-patri .card-kpi:nth-child(1) { animation-delay:.04s; }
.kpi-row-patri .card-kpi:nth-child(2) { animation-delay:.09s; }
.kpi-row-patri .card-kpi:nth-child(3) { animation-delay:.14s; }
.kpi-row-patri .card-kpi:nth-child(4) { animation-delay:.19s; }
.kpi-row-patri .card-kpi:nth-child(5) { animation-delay:.24s; }

/* Table rows stagger */
.anim-rows tbody tr { opacity:0; animation:fadeUp .3s ease both; }
.anim-rows tbody tr:nth-child(1)  { animation-delay:.03s; }
.anim-rows tbody tr:nth-child(2)  { animation-delay:.06s; }
.anim-rows tbody tr:nth-child(3)  { animation-delay:.09s; }
.anim-rows tbody tr:nth-child(4)  { animation-delay:.12s; }
.anim-rows tbody tr:nth-child(5)  { animation-delay:.15s; }
.anim-rows tbody tr:nth-child(6)  { animation-delay:.18s; }
.anim-rows tbody tr:nth-child(7)  { animation-delay:.21s; }
.anim-rows tbody tr:nth-child(8)  { animation-delay:.24s; }
.anim-rows tbody tr:nth-child(9)  { animation-delay:.27s; }
.anim-rows tbody tr:nth-child(10) { animation-delay:.30s; }
.anim-rows tbody tr:nth-child(n+11) { animation-delay:.33s; }

/* Skeleton loading */
.skeleton { background:linear-gradient(90deg,#edf1f7 25%,#e2e7ef 50%,#edf1f7 75%); background-size:400% 100%; animation:shimmer 1.6s infinite; border-radius:8px; }
.skeleton-line { height:14px; margin:6px 0; border-radius:6px; }
.skeleton-line.w-60 { width:60%; }
.skeleton-line.w-80 { width:80%; }
.skeleton-line.w-40 { width:40%; }
.skeleton-card { background:var(--white); border-radius:14px; padding:20px; border:1px solid var(--border); }

/* Loading spinner */
.spinner { width:28px; height:28px; border:3px solid var(--border); border-top-color:var(--blue); border-radius:50%; animation:spin .75s linear infinite; display:inline-block; }

/* Enhanced card hover */
.card-clickable { cursor:pointer; transition:box-shadow .25s, transform .25s, border-color .25s !important; }
.card-clickable:hover { box-shadow:0 8px 28px rgba(26,79,156,0.14) !important; border-color:var(--blue) !important; transform:translateY(-4px) !important; }
/* KPI+clickable cards: kpi-color wins over blue */
.card-clickable.card-kpi:hover { box-shadow:0 8px 24px rgba(0,0,0,0.12), 0 0 0 2px var(--kpi-color), 0 0 28px -6px var(--kpi-color) !important; border-color:var(--kpi-color) !important; transform:translateY(-4px) !important; }
.card-clickable:active { transform:translateY(-1px) !important; }

/* Enhanced modal */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0); z-index:200; align-items:flex-start; justify-content:center; overflow-y:auto; padding:30px 0; transition:background .22s; }
.modal-overlay.open { display:flex; background:rgba(15,23,42,0.45); backdrop-filter:blur(3px); }
.modal-overlay.open .modal { animation:scaleIn .28s cubic-bezier(0.22,0.61,0.36,1) forwards; }
.modal-overlay.closing { display:flex; background:rgba(0,0,0,0); }
.modal-overlay.closing .modal { animation:scaleOut .2s ease forwards; }

/* Button ripple */
.btn { position:relative; overflow:hidden; }
.btn .ripple { position:absolute; border-radius:50%; background:rgba(255,255,255,0.3); transform:scale(0); animation:rippleAnim .55s linear; pointer-events:none; }
@keyframes rippleAnim { to { transform:scale(4); opacity:0; } }

/* Topbar search enhancement */
.search-box { transition:box-shadow .2s, border-color .2s; }
.search-box:focus-within { box-shadow:0 0 0 3px rgba(26,79,156,0.12); border-color:var(--blue); }

/* Counter number animation */
.counter-val { display:inline-block; transition:all .1s; }

/* Urgency pulse on red badges with count */
.badge-urgent-pulse { animation:pulseDot .9s infinite; border-radius:50%; }

/* Dashboard sections */
.dash-two { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.dash-refresh { font-size:11px; color:var(--text-light); display:flex; align-items:center; gap:6px; }
.dash-refresh button { background:none; border:none; cursor:pointer; font-size:12px; color:var(--blue); font-weight:600; padding:2px 6px; border-radius:4px; }
.dash-refresh button:hover { background:var(--blue-light); }

/* Status bar */
.status-bar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px; }
.status-pill { font-size:12px; font-weight:700; padding:4px 12px; border-radius:20px; }

/* ── Financeiro tabs ────────────────────────────────── */
.fin-tabs { display:flex; gap:4px; background:var(--bg-page); border-radius:12px; padding:4px; margin-bottom:24px; border:1px solid var(--border-color); width:fit-content; }
.fin-tab { padding:8px 20px; border-radius:9px; border:none; font-size:13px; font-weight:600; cursor:pointer; transition:all .2s; background:none; color:var(--text-muted); }
.fin-tab.active { background:var(--bg-card); color:var(--text-main); box-shadow:0 2px 8px rgba(0,0,0,0.1); }
.fin-tab:hover:not(.active) { color:var(--text-main); background:rgba(0,0,0,0.04); }
body.dark .fin-tab.active { box-shadow:0 2px 8px rgba(0,0,0,0.3); }
.fin-pane { animation:fadeIn .25s ease both; }

/* ── Market section ────────────────────────────────── */
.mkt-card { border-radius:12px; padding:14px 16px; border:1px solid var(--border-color); background:var(--bg-page); position:relative; overflow:hidden; transition:transform .2s, box-shadow .2s, border-color .2s; }
.mkt-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,0.12); border-color:var(--mkt-color,var(--border-color)); }
.mkt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.mkt-row-card { background:var(--bg-page); border:1px solid var(--border-color); border-radius:10px; padding:10px 12px; transition:all .18s; }
.mkt-row-card:hover { border-color:var(--mkt-color,var(--blue)); box-shadow:0 0 0 1px var(--mkt-color,var(--blue)); transform:translateX(3px); }
.mkt-val { font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.1; color:var(--text-main); margin:4px 0; }
.mkt-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--text-muted); }
.mkt-sub { font-size:10px; color:var(--text-muted); margin-top:3px; }
.mkt-section-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); margin-bottom:10px; padding-left:2px; display:flex; align-items:center; gap:6px; }
.mkt-section-label::after { content:''; flex:1; height:1px; background:var(--border-color); }
.mkt-change-up { color:#10B981; font-weight:700; }
.mkt-change-dn { color:#EF4444; font-weight:700; }
@keyframes mktEnter  { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes mktLive   { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.7)} }
@keyframes mktArrow  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2.5px)} }
@keyframes tickerScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.mkt-live-dot { width:7px; height:7px; border-radius:50%; background:#10B981; display:inline-block; animation:mktLive 1.6s ease-in-out infinite; vertical-align:middle; }
.mkt-arrow { display:inline-block; animation:mktArrow 1.8s ease-in-out infinite; }

/* Responsive */
@media (max-width:768px) {
  #navbar-bottom { display:none; }
  #main { margin-top:46px; }
  .cards-grid { grid-template-columns:1fr 1fr; }
  .form-row { grid-template-columns:1fr; }
  .dash-two { grid-template-columns:1fr; }
}

/* ── Calendário de Vencimentos ─────────────────────────────── */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-day  { min-height:64px; background:var(--bg-page); border:1px solid var(--border-color); border-radius:8px; padding:6px; cursor:default; position:relative; font-size:12px; transition:transform .15s, border-color .15s; }
.cal-day.has-events { cursor:pointer; }
.cal-day.has-events:hover { border-color:var(--blue); transform:translateY(-1px); }
.cal-day.today { border-color:var(--blue); background:var(--blue-light); }
.cal-day.other-month { opacity:.35; }
.cal-day-num { font-size:11px; font-weight:600; color:var(--text-muted); margin-bottom:4px; }
.cal-pill { font-size:9px; font-weight:700; padding:1px 5px; border-radius:8px; margin-bottom:2px; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-pill.critico { background:#FEE2E2; color:#DC2626; }
.cal-pill.proximo { background:#FEF3C7; color:#D97706; }
.cal-pill.normal  { background:#D1FAE5; color:#059669; }
.cal-drawer { position:fixed; top:0; right:0; width:380px; height:100vh; background:var(--bg-card); border-left:1px solid var(--border-color); z-index:200; transform:translateX(100%); transition:transform .25s cubic-bezier(.4,0,.2,1); overflow-y:auto; box-shadow:-4px 0 24px rgba(0,0,0,0.1); }
.cal-drawer.open { transform:translateX(0); }
.cal-drawer-overlay { position:fixed; inset:0; z-index:199; background:rgba(0,0,0,0); display:none; }
.cal-drawer-overlay.open { display:block; }
@keyframes calBell { 0%{transform:rotate(0)} 15%{transform:rotate(-18deg)} 30%{transform:rotate(16deg)} 45%{transform:rotate(-12deg)} 60%{transform:rotate(8deg)} 75%{transform:rotate(-4deg)} 100%{transform:rotate(0)} }
.nav-item:hover .bell-g { animation:calBell .7s ease both; transform-origin:top center; }
@keyframes calFramePop { 0%{transform:scaleY(1)} 35%{transform:scaleY(.84)} 65%{transform:scaleY(1.06)} 100%{transform:scaleY(1)} }
.nav-item:hover .cal-frame { animation:calFramePop .42s ease both; transform-origin:bottom center; }
@keyframes dotsPop { 0%{opacity:0;transform:scale(0)} 60%{opacity:1;transform:scale(1.2)} 100%{opacity:1;transform:scale(1)} }
.nav-item:hover .cal-dot:nth-child(1) { animation:dotsPop .35s .10s ease both; }
.nav-item:hover .cal-dot:nth-child(2) { animation:dotsPop .35s .18s ease both; }
.nav-item:hover .cal-dot:nth-child(3) { animation:dotsPop .35s .26s ease both; }

/* ── Central de Alertas ────────────────────────────────────── */
.alert-card { border-left:4px solid; border-radius:0 10px 10px 0; padding:12px 14px; background:var(--bg-card); margin-bottom:8px; display:flex; align-items:flex-start; gap:12px; box-shadow:0 1px 4px rgba(0,0,0,0.06); transition:transform .15s, box-shadow .15s; }
.alert-card:hover { transform:translateX(2px); box-shadow:0 3px 12px rgba(0,0,0,0.1); }
.alert-card.critico { border-color:#DC2626; }
.alert-card.atencao  { border-color:#D97706; }
.alert-card.info     { border-color:#3B82F6; }
.alert-card.dismissed { opacity:.4; }
.alert-group-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; margin-top:20px; }
.alert-group-title { font-size:14px; font-weight:700; color:var(--text-main); }
.alert-group-count { font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px; }
.alert-group-count.critico { background:#FEE2E2; color:#DC2626; }
.alert-group-count.atencao  { background:#FEF3C7; color:#D97706; }
.alert-group-count.info     { background:#DBEAFE; color:#1E40AF; }
.alert-summary-bar { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:4px; }
.alert-sum-card { background:var(--bg-card); border-radius:var(--card-radius); padding:16px; border:1px solid var(--border-color); text-align:center; }
.alert-sum-val { font-size:28px; font-weight:800; line-height:1; margin-bottom:4px; }
.alert-sum-label { font-size:11px; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.4px; }

/* ── Feature 4: Risk Score Badges ─────────────────────────── */
.risk-badge { font-size:9px; font-weight:700; padding:2px 7px; border-radius:10px; display:inline-block; }
.risk-badge.baixo   { background:#D1FAE5; color:#059669; }
.risk-badge.medio   { background:#FEF3C7; color:#D97706; }
.risk-badge.alto    { background:#FED7AA; color:#EA580C; }
.risk-badge.critico { background:#FEE2E2; color:#DC2626; }

/* ── Feature 6: Kanban ─────────────────────────────────────── */
.kanban-board { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; align-items:start; }
.kanban-col { background:var(--bg-page); border-radius:12px; padding:12px; border:1px solid var(--border-color); min-width:0; }
.kanban-col-header { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
.kanban-col-count { font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px; }
.kanban-card { background:var(--bg-card); border:1px solid var(--border-color); border-radius:10px; padding:10px 12px 10px 10px; margin-bottom:8px; cursor:grab; transition:transform .15s, box-shadow .15s; user-select:none; display:flex; gap:8px; align-items:flex-start; }
.kanban-card:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.1); border-color:var(--blue); }
.kanban-card.dragging { opacity:.45; cursor:grabbing; transform:scale(0.97); }
.kanban-drag-handle { flex-shrink:0; display:flex; flex-direction:column; gap:3px; padding-top:3px; cursor:grab; opacity:.35; transition:opacity .15s; }
.kanban-card:hover .kanban-drag-handle { opacity:.7; }
.kanban-drag-handle span { display:block; width:14px; height:2px; border-radius:2px; background:var(--text-muted); }
.kanban-card-body { flex:1; min-width:0; }
.kanban-drop-zone { min-height:56px; border:2px dashed var(--border-color); border-radius:10px; transition:all .15s; display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--text-muted); gap:6px; }
.kanban-drop-zone.drag-over { border-color:var(--blue); background:var(--blue-light); color:var(--blue); font-weight:700; }
.kanban-card-cliente { font-size:13px; font-weight:700; color:var(--text-main); margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kanban-card-tipo { font-size:11px; color:var(--text-muted); margin-bottom:7px; }
.kanban-card-meta { display:flex; align-items:center; justify-content:space-between; gap:4px; }
.kanban-card-date { font-size:10px; color:var(--text-muted); }
.kanban-next-btn { font-size:11px; font-weight:700; padding:3px 10px; border-radius:6px; border:1px solid var(--border-color); background:var(--bg-page); color:var(--blue); cursor:pointer; transition:all .15s; }
.kanban-next-btn:hover { border-color:var(--blue); background:var(--blue); color:#fff; }

/* ── Feature 7: Client Timeline ────────────────────────────── */
.client-timeline { position:relative; padding-left:28px; }
.client-timeline::before { content:''; position:absolute; left:8px; top:0; bottom:0; width:2px; background:var(--border-color); }
.client-timeline-item { position:relative; margin-bottom:14px; }
.client-timeline-dot { position:absolute; left:-24px; top:4px; width:14px; height:14px; border-radius:50%; border:2px solid var(--bg-card); }
.client-timeline-card { background:var(--bg-page); border:1px solid var(--border-color); border-radius:8px; padding:10px 12px; cursor:pointer; transition:border-color .15s, transform .15s; }
.client-timeline-card:hover { border-color:var(--blue); transform:translateX(2px); }
.client-timeline-title { font-size:13px; font-weight:700; color:var(--text-main); }
.client-timeline-sub { font-size:11px; color:var(--text-muted); margin-top:2px; }
.client-timeline-date { font-size:10px; color:var(--text-muted); margin-top:3px; }

/* ── Modal tabs ─────────────────────────────────────────────── */
.modal-tabs { display:flex; gap:2px; border-bottom:1px solid var(--border-color); margin-bottom:16px; padding:0 0 0 0; }
.modal-tab { padding:8px 16px; border:none; background:none; font-size:13px; font-weight:600; color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:all .15s; border-radius:6px 6px 0 0; }
.modal-tab.active { color:var(--blue); border-bottom-color:var(--blue); background:var(--blue-light); }
.modal-tab:hover:not(.active) { color:var(--text-main); background:var(--bg-page); }
.modal-tab-pane { display:none; animation:fadeIn .2s ease both; }
.modal-tab-pane.active { display:block; }

/* ── Feature 8: Contato badges ─────────────────────────────── */
.contato-badge { font-size:9px; font-weight:700; padding:2px 7px; border-radius:10px; display:inline-block; }
.contato-badge.positivo   { background:#D1FAE5; color:#059669; }
.contato-badge.neutro     { background:#DBEAFE; color:#1E40AF; }
.contato-badge.negativo   { background:#FEE2E2; color:#DC2626; }
.contato-badge.sem_resposta { background:#F1F5F9; color:#64748B; }

/* ── Previsao renovacao progress bar ───────────────────────── */
.prob-bar-wrap { height:8px; background:var(--border-color); border-radius:4px; overflow:hidden; flex:1; }
.prob-bar-fill { height:100%; border-radius:4px; transition:width .5s cubic-bezier(.4,0,.2,1); }

/* ── Feature 9: Relatórios ─────────────────────────────────── */
.rel-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.rel-filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rel-filters label { font-size:12px; color:var(--text-muted); white-space:nowrap; }
.rel-filters input[type=date] { font-size:12px; padding:5px 8px; border-radius:6px; border:1px solid var(--border-color); background:var(--bg-card); color:var(--text-main); }
.rel-kpi-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px; }
.rel-kpi { background:var(--bg-card); border:1px solid var(--border-color); border-radius:12px; padding:16px 18px; display:flex; flex-direction:column; gap:4px; transition:border-color .15s; }
.rel-kpi:hover { border-color:var(--blue); }
.rel-kpi-label { font-size:11px; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.4px; }
.rel-kpi-val { font-size:24px; font-weight:800; color:var(--text-main); line-height:1.1; }
.rel-kpi-sub { font-size:11px; color:var(--text-muted); }
.rel-section { background:var(--bg-card); border:1px solid var(--border-color); border-radius:14px; padding:20px; margin-bottom:20px; }
.rel-section-title { font-size:13px; font-weight:700; color:var(--text-main); margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.rel-export-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.rel-export-btn { display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:10px; border:1px solid var(--border-color); background:var(--bg-page); cursor:pointer; transition:all .15s; text-decoration:none; color:var(--text-main); }
.rel-export-btn:hover { border-color:var(--green); background:#F0FDF4; transform:translateY(-1px); box-shadow:0 4px 12px rgba(16,185,129,.12); }
.rel-export-btn .rel-exp-icon { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.rel-export-btn .rel-exp-info { display:flex; flex-direction:column; gap:2px; }
.rel-export-btn .rel-exp-name { font-size:13px; font-weight:700; }
.rel-export-btn .rel-exp-desc { font-size:10px; color:var(--text-muted); }
.rel-chart-wrap { position:relative; height:200px; }
.rel-tipo-list { display:flex; flex-direction:column; gap:8px; }
.rel-tipo-row { display:flex; align-items:center; gap:10px; }
.rel-tipo-label { font-size:12px; color:var(--text-main); width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0; }
.rel-tipo-bar-wrap { flex:1; height:8px; background:var(--border-color); border-radius:4px; overflow:hidden; }
.rel-tipo-bar { height:100%; border-radius:4px; background:var(--blue); transition:width .6s cubic-bezier(.4,0,.2,1); }
.rel-tipo-count { font-size:11px; color:var(--text-muted); width:40px; text-align:right; flex-shrink:0; }

/* ── Feature 10: Churn ─────────────────────────────────────── */
.churn-badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:10px; font-weight:700; }
.churn-badge.alto   { background:#FEE2E2; color:#DC2626; }
.churn-badge.medio  { background:#FEF3C7; color:#D97706; }
.churn-badge.baixo  { background:#D1FAE5; color:#059669; }
.churn-score-bar { height:6px; border-radius:3px; background:var(--border-color); overflow:hidden; width:60px; }
.churn-score-fill { height:100%; border-radius:3px; }
.churn-row { display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--border-color); transition:background .12s; }
.churn-row:hover { background:var(--bg-page); }
.churn-row:last-child { border-bottom:none; }

/* ── Feature 11: Mapa ──────────────────────────────────────── */
.mapa-estado-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; }
.mapa-estado-card { background:var(--bg-page); border:1px solid var(--border-color); border-radius:10px; padding:12px; text-align:center; cursor:pointer; transition:all .15s; }
.mapa-estado-card:hover { border-color:var(--blue); background:var(--blue-light); transform:translateY(-2px); }
.mapa-estado-sigla { font-size:18px; font-weight:800; color:var(--text-main); }
.mapa-estado-count { font-size:20px; font-weight:800; color:var(--blue); margin:2px 0; }
.mapa-estado-label { font-size:10px; color:var(--text-muted); }
.mapa-bar-row { display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--border-color); }
.mapa-bar-row:last-child { border-bottom:none; }

/* ── Feature 12: Régua ─────────────────────────────────────── */
.regua-tabs { display:flex; gap:4px; margin-bottom:16px; flex-wrap:wrap; }
.regua-tab { padding:6px 14px; border-radius:20px; border:1px solid var(--border-color); background:var(--bg-page); font-size:12px; font-weight:600; color:var(--text-muted); cursor:pointer; transition:all .15s; display:flex; align-items:center; gap:6px; }
.regua-tab.active { background:var(--blue); border-color:var(--blue); color:#fff; }
.regua-tab .regua-tab-badge { font-size:10px; font-weight:700; padding:1px 6px; border-radius:8px; background:rgba(255,255,255,0.25); }
.regua-tab:not(.active) .regua-tab-badge { background:var(--border-color); color:var(--text-muted); }
.regua-item { display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--border-color); transition:background .12s; }
.regua-item:hover { background:var(--bg-page); }
.regua-item:last-child { border-bottom:none; }
.regua-urgente { border-left:3px solid var(--red) !important; }