@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
@import url('https://cdn-uicons.flaticon.com/2.6.0/uicons-regular-rounded/css/uicons-regular-rounded.css');
:root{--ch-accent:#3B82F6;--ch-accent-d:#2563EB;--ch-navy:#0F172A;--ch-muted:#64748B;
--ch-green:#10B981;--ch-amber:#F59E0B;--ch-violet:#8B5CF6;--ch-rose:#F43F5E;--ch-cyan:#06B6D4;}
.fi-body,.fi-simple-layout{font-family:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;}
html:not(.dark) .fi-body{background:radial-gradient(1100px 420px at 100% -8%,rgba(139,92,246,.08),transparent),radial-gradient(900px 360px at -5% 0,rgba(59,130,246,.07),transparent),#F4F7FB;}
.fi-header-heading{font-weight:800;letter-spacing:-.02em;color:var(--ch-navy);}
html.dark .fi-header-heading{color:#F1F5F9;}
.fi-sidebar{border-right:1px solid #E9EEF5;}
html:not(.dark) .fi-sidebar,html:not(.dark) .fi-sidebar-header{background:#fff;}
.fi-sidebar-group-label{text-transform:uppercase;letter-spacing:.6px;font-size:.66rem;font-weight:700;color:#94A3B8;}
.fi-sidebar-item-btn{border-radius:10px;font-weight:500;}
.fi-sidebar-item-btn:hover{background:rgba(59,130,246,.08);}
.fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(139,92,246,.10));color:var(--ch-accent);font-weight:700;border-radius:10px;box-shadow:inset 3px 0 0 var(--ch-accent);}
.fi-sidebar-item-active .fi-sidebar-item-icon{color:var(--ch-accent);}
html:not(.dark) .fi-topbar>div{background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid #E9EEF5;}
.fi-logo{font-weight:800;letter-spacing:-.02em;color:var(--ch-navy);}
html.dark .fi-logo{color:#F1F5F9;}
.fi-section,.fi-wi,.fi-ta-ctn{border-radius:14px!important;}
html:not(.dark) .fi-section,html:not(.dark) .fi-ta-ctn{box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);border:1px solid #EAEFF5;}
.fi-btn-color-primary{background:linear-gradient(180deg,#3B82F6,#2563EB)!important;border-radius:10px;}
.fi-wi-stats-overview-stat-value{font-weight:800;letter-spacing:-.02em;}
.fi-simple-main{border-radius:20px;box-shadow:0 10px 40px rgba(15,23,42,.10);border:1px solid #EAEFF5;position:relative;overflow:hidden;}
.fi-simple-main::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3B82F6,#60A5FA);}
.fi-simple-header{display:none;}
.ch-login-brand{text-align:center;margin-bottom:6px;}
.ch-login-brand svg{width:46px;height:46px;margin:0 auto 10px;display:block;}
.ch-login-name{font-size:1.5rem;font-weight:800;color:var(--ch-navy);letter-spacing:-.02em;}
html.dark .ch-login-name{color:#F1F5F9;}
.ch-login-sub{font-size:.8rem;color:var(--ch-muted);margin-top:2px;}
.ch-login-tag{text-align:center;font-size:.75rem;font-style:italic;color:#94A3B8;margin-top:16px;}

/* Flaticon UIcons */
.fi-sidebar-item i[class*="fi-rr-"]{font-size:1.2rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;}
.fi-topbar i[class*="fi-rr-"]{font-size:1.15rem;line-height:1;}
i[class*="fi-rr-"]{vertical-align:-2px;}

/* ===== KPIs coloridos por posição (Filament deixa ícone/card cinza) ===== */
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat{--c:#3B82F6;position:relative;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:nth-child(6n+2){--c:#8B5CF6;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:nth-child(6n+3){--c:#10B981;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:nth-child(6n+4){--c:#F59E0B;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:nth-child(6n+5){--c:#F43F5E;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:nth-child(6n+6){--c:#06B6D4;}
html:not(.dark) .fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 10%,#fff),#fff)!important;border:1px solid color-mix(in srgb,var(--c) 24%,#EAEFF5)!important;}
html.dark .fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat{background:linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,#0b1220),#0b1220)!important;}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c);}
.fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat:hover{transform:translateY(-3px);box-shadow:0 12px 28px color-mix(in srgb,var(--c) 32%,transparent)!important;}
.fi-wi-stats-overview-stat-icon{color:var(--c)!important;box-sizing:content-box;background:color-mix(in srgb,var(--c) 16%,transparent);padding:.5rem;border-radius:10px;}

/* barras de topo coloridas nas seções (listas/forms) */
html:not(.dark) .fi-main .fi-section{border-top:3px solid var(--ch-accent);}
html:not(.dark) .fi-main .fi-section:nth-of-type(3n+2){border-top-color:var(--ch-violet);}
html:not(.dark) .fi-main .fi-section:nth-of-type(3n+3){border-top-color:var(--ch-green);}
html:not(.dark) .fi-ta-header-cell{background:#F8FAFF;}
html:not(.dark) .fi-ta-row:hover{background:rgba(59,130,246,.04);}

/* ===== Botão flutuante da Claudia (IA) ===== */
.ch-fab{position:fixed;right:22px;bottom:22px;z-index:9999;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3B82F6,#8B5CF6);color:#fff!important;box-shadow:0 10px 26px rgba(99,102,241,.45);text-decoration:none;transition:transform .15s,box-shadow .15s;}
.ch-fab:hover{transform:translateY(-2px) scale(1.06);box-shadow:0 16px 34px rgba(139,92,246,.55);}
.ch-fab i{font-size:1.55rem;line-height:1;}
.ch-fab::after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(99,102,241,.4);animation:chpulse 2.2s infinite;}
@keyframes chpulse{0%{transform:scale(.9);opacity:.7}70%{transform:scale(1.3);opacity:0}100%{opacity:0}}

/* ===== Sidebar premium — modo escuro (v7) ===== */
html.dark .fi-sidebar,html.dark .fi-sidebar-header{background:linear-gradient(180deg,#0B1426 0%,#0E1A30 100%);border-right:1px solid rgba(148,163,184,.10);}
html.dark .fi-sidebar::before{content:'';position:absolute;top:0;left:0;right:0;height:170px;background:radial-gradient(440px 170px at 50% -50px,rgba(59,130,246,.18),transparent);pointer-events:none;z-index:0;}
html.dark .fi-sidebar-nav{position:relative;z-index:1;}
/* grupos: divisória + respiro + rótulo */
html.dark .fi-sidebar-group{border-top:1px solid rgba(148,163,184,.09);padding-top:.3rem;margin-top:.3rem;}
html.dark .fi-sidebar-group:first-of-type{border-top:0;margin-top:0;}
html.dark .fi-sidebar-group-label{color:#7E8DA6;letter-spacing:.9px;font-size:.64rem;}
/* cabeçalho de grupo recolhível: clicável */
html.dark .fi-sidebar-group-collapse-button,html.dark .fi-sidebar-group-button{border-radius:9px;}
html.dark .fi-sidebar-group-collapse-button:hover,html.dark .fi-sidebar-group-button:hover{background:rgba(148,163,184,.06);}
/* itens */
html.dark .fi-sidebar-item-btn{color:#CBD5E1;}
html.dark .fi-sidebar-item-btn:hover{background:rgba(59,130,246,.13);color:#fff;}
html.dark .fi-sidebar-item-icon,html.dark .fi-sidebar-item i[class*="fi-rr-"]{color:#8A99B2;}
html.dark .fi-sidebar-item-btn:hover .fi-sidebar-item-icon,html.dark .fi-sidebar-item-btn:hover i[class*="fi-rr-"]{color:#93C5FD;}
/* item ativo: pílula com glow */
html.dark .fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.30),rgba(139,92,246,.18));color:#fff;font-weight:700;border-radius:10px;box-shadow:inset 3px 0 0 #60A5FA,0 6px 16px rgba(59,130,246,.20);}
html.dark .fi-sidebar-item-active .fi-sidebar-item-icon,html.dark .fi-sidebar-item-active i[class*="fi-rr-"]{color:#BFDBFE;}
/* logo + ritmo */
html.dark .fi-sidebar-header .fi-logo,html.dark .fi-logo{color:#F8FAFC;letter-spacing:-.02em;font-weight:800;}
.fi-sidebar-item{margin-bottom:2px;}
.fi-sidebar-item-btn{transition:background .12s ease,color .12s ease;}

/* ===== Menu: fontes maiores + divisórias reforçadas (v8) ===== */
.fi-sidebar-item-btn{font-size:.95rem;padding-top:.55rem;padding-bottom:.55rem;}
.fi-sidebar-item i[class*="fi-rr-"]{font-size:1.34rem;width:1.62rem;height:1.62rem;}
.fi-sidebar-group-label{font-size:.74rem;letter-spacing:1px;}
html.dark .fi-sidebar-group-label{font-size:.74rem;letter-spacing:1px;color:#94A6C4;}
/* divisórias entre grupos: mais visíveis + respiro */
html.dark .fi-sidebar-group{border-top:1px solid rgba(148,163,184,.20);padding-top:.6rem;margin-top:.6rem;}
html:not(.dark) .fi-sidebar-group{border-top:1px solid #E2E8F0;padding-top:.6rem;margin-top:.6rem;}
.fi-sidebar-group:first-of-type{border-top:0!important;margin-top:0!important;padding-top:0!important;}

/* selects nativos (custom) legíveis no dark */
.fi-main-ctn select,.fi-main select{background:#fff;color:#0F172A;}
.fi-main-ctn select option,.fi-main select option{background:#fff;color:#0F172A;}

/* v10: opcoes de select legiveis em qualquer contexto (modais, paginas dark, OS dark) */
select option, select optgroup { background-color:#ffffff !important; color:#0F172A !important; }
select:not([multiple]) { color:#0F172A; }
.fi-modal select, .fi-fo-field-wrp select { background:#fff; color:#0F172A; }
.fi-modal select option, .fi-fo-field-wrp select option { background:#fff !important; color:#0F172A !important; }

/* sidebar-fix-scroll (v20): menu lateral fixo, altura=viewport e a AREA DE NAV rola
   ate o ultimo item em telas baixas (notebooks). Usa flex (min-height:0) em vez de
   height:100% para que o nav NUNCA transborde alem da sidebar de altura de viewport. */
@media (min-width:1024px){
  .fi-sidebar{position:sticky !important;inset-block-start:0;height:100vh;height:100dvh;overflow:hidden;}
  .fi-sidebar .fi-sidebar-nav{flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain;}
}
/* affordance de scroll: barra fina sempre visivel na navegacao da sidebar (todos os tamanhos) */
.fi-sidebar-nav{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.55) transparent;}
.fi-sidebar-nav::-webkit-scrollbar{width:8px;}
.fi-sidebar-nav::-webkit-scrollbar-track{background:transparent;}
.fi-sidebar-nav::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:8px;}
.fi-sidebar-nav:hover::-webkit-scrollbar-thumb{background:rgba(148,163,184,.7);}
html.dark .fi-sidebar-nav{scrollbar-color:rgba(148,163,184,.4) transparent;}
html.dark .fi-sidebar-nav::-webkit-scrollbar-thumb{background:rgba(148,163,184,.32);}

/* resp-otimizacao: monitores menores (laptops) e celulares */
@media (max-width:1440px){ html{font-size:15px} }
@media (max-width:1280px){
  html{font-size:14px}
  .fi-main{padding-left:1rem!important;padding-right:1rem!important;padding-top:1rem!important}
  .fi-wi-stats-overview-stats-ctn>.fi-wi-stats-overview-stat{padding:.75rem!important}
}
@media (max-width:900px){
  html{font-size:14px}
  .fi-main{padding:.7rem!important}
  .fi-section{padding:.8rem!important}
}
@media (max-width:640px){
  .fi-wi-stats-overview-stats-ctn{grid-template-columns:1fr 1fr!important;gap:.5rem!important}
  .fi-header-heading{font-size:1.1rem!important}
  .fi-ta-cell,.fi-ta-header-cell{padding:.4rem .5rem!important}
  .fi-btn{padding-left:.6rem!important;padding-right:.6rem!important}
}
@media (max-width:430px){
  .fi-wi-stats-overview-stats-ctn{grid-template-columns:1fr!important}
}

/* mobile: nao deixar o botao do WhatsApp cobrir o menu hamburguer (canto sup. esq. no Filament mobile) */
@media (max-width:1023px){
  #wa-fab{left:16px!important;right:auto!important;top:auto!important;bottom:82px!important}
  #wa-dock-badge{left:44px!important;right:auto!important;top:auto!important;bottom:116px!important}
}

/* desktop: empurra o botao de recolher/mostrar o menu para a direita para nao ficar sob o botao do WhatsApp (canto sup. esq.) */
@media (min-width:1024px){
  .fi-topbar > nav, .fi-topbar nav.fi-topbar-nav{padding-inline-start:4.75rem;}
}


/* ============================================================
   v18 - Fundacao de design system + A11y (baixo risco, global)
   Use estas classes em telas NOVAS: .ch-card .ch-kpi-label
   .ch-kpi-value .ch-muted .ch-btn .ch-btn-primary .ch-grid-auto
   Texto secundario: color:var(--ch-muted) (#64748B, WCAG AA) -
   evite #94A3B8 (#2.96:1 reprova AA).
   ============================================================ */
:root{
  --ch-card-bg:#fff;--ch-card-border:#EAEFF5;--ch-radius:14px;--ch-radius-sm:12px;--ch-card-shadow:0 1px 3px rgba(15,23,42,.06);
  --ch-text:#0F172A;--ch-primary:#2563EB;
  --ch-ok:#16A34A;--ch-warn:#D97706;--ch-danger:#DC2626;
}
.ch-card{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);border-radius:var(--ch-radius);box-shadow:var(--ch-card-shadow);padding:16px 18px;}
.ch-card--sm{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);box-shadow:var(--ch-card-shadow);border-radius:var(--ch-radius);padding:14px 16px;}
.ch-card--lg{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);box-shadow:var(--ch-card-shadow);border-radius:var(--ch-radius);padding:18px;}
.ch-card--flush{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);box-shadow:var(--ch-card-shadow);border-radius:var(--ch-radius);padding:0;}
.ch-card--kanban{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);box-shadow:var(--ch-card-shadow);border-radius:var(--ch-radius-sm);padding:13px 15px;}
.ch-kpi-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ch-muted);}
.ch-kpi-value{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--ch-text);}
.ch-muted{color:var(--ch-muted);}
.ch-btn{display:inline-flex;align-items:center;gap:6px;border-radius:10px;padding:8px 14px;font-weight:600;font-size:.85rem;line-height:1;cursor:pointer;border:1px solid var(--ch-card-border);background:#fff;color:var(--ch-text);text-decoration:none;transition:transform .12s,box-shadow .12s;}
.ch-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.1);}
.ch-btn-primary{background:linear-gradient(180deg,#3B82F6,var(--ch-primary));color:#fff;border-color:transparent;}
.ch-grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.ch-grid-7{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
@media(max-width:900px){.ch-grid-7{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.ch-grid-7{grid-template-columns:repeat(2,1fr)}}

/* Barra de progresso Livewire (percepcao de responsividade) */
.ch-loading-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100000;pointer-events:none;background:linear-gradient(90deg,#3B82F6,#8B5CF6,#3B82F6);background-size:200% 100%;animation:chLoadBar 1s linear infinite;}
@keyframes chLoadBar{0%{background-position:200% 0}100%{background-position:0 0}}

/* Foco visivel por teclado (A11y) - so no Tab, nao no mouse */
.fi-body :focus-visible,.fi-simple-layout :focus-visible{outline:2px solid #3B82F6;outline-offset:2px;border-radius:3px;}

/* v19 — utilitarios responsivos de coluna (desktop = 2/3 col, mobile = 1 col).
   Use .ch-2col / .ch-3col em telas novas; gap fica no inline se precisar de valor especifico. */
.ch-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ch-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
@media(max-width:640px){.ch-2col,.ch-3col{grid-template-columns:1fr;}}


/* v21 sidebar COLAPSADA trilho de icones (CloudIA). colapsado=.fi-sidebar sem .fi-sidebar-open (Filament remove ao recolher no desktop). desktop>=1024; EXPANDIDO intocado; nao quebra o fix rolavel v20 */@media (min-width:1024px){.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-nav{padding-left:.6rem;padding-right:.6rem;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-button{justify-content:center;padding-left:.5rem;padding-right:.5rem;}.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.30),rgba(139,92,246,.18));box-shadow:0 0 0 1px rgba(96,165,250,.55) inset,0 4px 12px rgba(59,130,246,.22);border-radius:12px;}.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active .fi-sidebar-item-icon,.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active i[class*="fi-rr-"]{color:#BFDBFE;}html:not(.dark) .fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(139,92,246,.10));box-shadow:0 0 0 1px rgba(59,130,246,.38) inset;}html:not(.dark) .fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active .fi-sidebar-item-icon,html:not(.dark) .fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-active i[class*="fi-rr-"]{color:var(--ch-accent);}.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-button:hover{border-radius:12px;}.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-group-button{display:none!important;}}


/* v22 sidebar EXPANDIDA: pilula ativa com gradiente da marca (corrige seletor morto -btn -> -button).
   Filament 3.3.54: item ativo = li.fi-sidebar-item-active > a.fi-sidebar-item-button (default bg-gray-100 / dark:bg-white/5).
   Escopo desktop expandido = .fi-sidebar.fi-sidebar-open; NAO regride o colapsado (v21 usa :not(.fi-sidebar-open)) nem o rolavel (v20). */
@media (min-width:1024px){
  html.dark .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.30),rgba(139,92,246,.18));border-radius:12px;color:#fff;font-weight:700;box-shadow:inset 3px 0 0 #60A5FA,0 4px 14px rgba(59,130,246,.22);}
  html.dark .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active .fi-sidebar-item-icon,html.dark .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active i[class*="fi-rr-"]{color:#BFDBFE;}
  html:not(.dark) .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active .fi-sidebar-item-button{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(139,92,246,.10));border-radius:12px;color:var(--ch-accent);font-weight:700;box-shadow:inset 3px 0 0 var(--ch-accent),0 4px 12px rgba(59,130,246,.14);}
  html:not(.dark) .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active .fi-sidebar-item-icon,html:not(.dark) .fi-sidebar.fi-sidebar-open .fi-sidebar-item-active i[class*="fi-rr-"]{color:var(--ch-accent);}
}


/* v23: a sidebar fixa (v20) ficava SOB a topbar (z-20) no desktop, cobrindo o
   header da sidebar (logo CliniHub + botao de recolher a barra). Elevar a sidebar
   acima da topbar restaura os dois. Paint-only (nao altera layout). Desktop apenas;
   mobile off-canvas ja usa z-30 proprio. */
@media (min-width:1024px){ .fi-sidebar{z-index:30 !important;} }


/* ============================================================
   v24 - DESIGN SYSTEM CONGELADO. Paginas NOVAS DEVEM usar estas
   classes em vez de repetir estilos inline (era o $card copiado
   em ~41 blades). NAO reintroduzir cores hex soltas: use os tokens.
   Cartao branco padrao ...... class="ch-card"   (== $card dominante)
   KPI rotulo/valor .......... .ch-kpi-label / .ch-kpi-value
   Bloco KPI (cartao menor) .. .ch-kpi
   Titulo de secao ........... .ch-section-title
   Texto secundario .......... .ch-muted  (var --ch-muted, WCAG AA)
   Botao / primario .......... .ch-btn / .ch-btn-primary
   Selo/etiqueta ............. .ch-badge
   Grids ..................... .ch-grid-auto / .ch-2col / .ch-3col / .ch-grid-7
   OBS dark: cartoes de conteudo permanecem BRANCOS nos 2 temas
   (paridade com o legado inline #fff); nao trocar --ch-card-bg no dark. */
.ch-kpi{background:var(--ch-card-bg);border:1px solid var(--ch-card-border);border-radius:var(--ch-radius);box-shadow:var(--ch-card-shadow);padding:14px 16px;}
.ch-section-title{font-weight:800;color:var(--ch-text);font-size:.9rem;letter-spacing:-.01em;margin-bottom:10px;}
.ch-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.4;background:color-mix(in srgb,var(--ch-accent) 12%,#fff);color:var(--ch-accent-d);border:1px solid color-mix(in srgb,var(--ch-accent) 22%,#fff);}

/* ============================================================
   v26 - A11y (baixo risco, global): foco de teclado consistente,
   alvos de toque >=44px no mobile, piso de fonte legivel.
   ============================================================ */

/* 1) Foco visivel por teclado — anel da marca, so no :focus-visible
   (Tab), nunca no clique de mouse. Reforca o parcial do v18 e cobre
   links/botoes/inputs/itens de menu/fabs. Vale nos 2 temas. */
.fi-body a:focus-visible,.fi-body button:focus-visible,.fi-body [role="button"]:focus-visible,
.fi-body input:focus-visible,.fi-body select:focus-visible,.fi-body textarea:focus-visible,
.fi-body [tabindex]:not([tabindex="-1"]):focus-visible,.fi-body summary:focus-visible,
.fi-simple-layout a:focus-visible,.fi-simple-layout button:focus-visible,
.fi-simple-layout input:focus-visible,.fi-simple-layout select:focus-visible,
.ch-btn:focus-visible,.fi-sidebar-item-button:focus-visible,
#wa-fab:focus-visible,.ch-fab:focus-visible{
  outline:2px solid var(--ch-accent)!important;outline-offset:2px!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--ch-accent) 22%,transparent)!important;border-radius:8px;
}
html.dark .fi-body a:focus-visible,html.dark .fi-body button:focus-visible,
html.dark .fi-body input:focus-visible,html.dark .fi-body select:focus-visible,
html.dark .fi-body textarea:focus-visible,html.dark .ch-btn:focus-visible,
html.dark .fi-sidebar-item-button:focus-visible{outline-color:#60A5FA!important;box-shadow:0 0 0 4px rgba(96,165,250,.32)!important;}
/* fabs redondos: anel acompanha o formato */
#wa-fab:focus-visible,.ch-fab:focus-visible{border-radius:50%;}

/* 2) Alvos de toque >=44px no mobile (WCAG 2.5.5). Escopo <=1024px:
   NAO altera o desktop. Cobre botoes, icon-buttons, itens de tab,
   paginacao, dropdown, itens de menu, links de acao e chips clicaveis. */
@media (max-width:1024px){
  .fi-btn,.ch-btn,.fi-icon-btn,.fi-tabs-item,.fi-pagination-item,
  .fi-dropdown-list-item,.fi-sidebar-item-button,
  button.fi-link,a.fi-link{min-height:44px;}
  .fi-icon-btn,.fi-pagination-item{min-width:44px;}
  a.ch-badge,button.ch-badge{min-height:34px;padding-top:7px;padding-bottom:7px;}
}

/* 3) Piso de fonte legivel nas labels do design system.
   .ch-kpi-label .68 -> .72rem (>=11.5px); no mobile .78rem. */
.ch-kpi-label{font-size:.72rem;}
@media (max-width:1024px){.ch-kpi-label,.ch-badge{font-size:.78rem;}}


/* ============================================================
   v27 - LAYOUT ACOMPANHA (sem sobreposicao)
   (a) Sidebar: v20 agora usa position:sticky (nao fixed) para o
       conteudo REFLUIR no flex do Filament ao expandir/recolher.
   (b) WhatsApp: quando o painel (#wa-dock, 380px, esquerda) esta
       ABERTO, o JS poe .wa-dock-open no <html> e o .fi-layout ganha
       padding-inline-start=380px (border-box => o conteudo abre
       espaco no lugar de ficar coberto). Fechado = 0 (padrao).
       Desktop apenas; mobile mantem overlay (nao espremer). ===== */
@media (min-width:1024px){
  .fi-layout{transition:padding-inline-start .25s ease;}
  html.wa-dock-open .fi-layout{padding-inline-start:380px;}
}
