  /* ============================================================
     GP · Gestão Prática — tema visual (claro + escuro)
     Tokens: nomes originais preservados (o JS referencia --azul,
     --verde, --vermelho, etc.). --azul e uso de TEXTO/marca;
     fundos de marca usam --brand-bg (separado p/ o tema escuro).
     ============================================================ */
  :root{
    --azul:#1F4E79; --azul-esc:#14324E; --azul-claro:#2E75B6;
    --brand-bg:#1F4E79; --brand-bg-2:#2E75B6;
    --fundo:#EEF3F9; --card:#FFFFFF; --surface-2:#E9EFF7; --hover:#E4EDF7;
    --texto:#16232F; --cinza:#5C6B7B; --faint:#8797A7; --borda:#DBE3EE; --linha:#E7EDF5;
    --verde:#1E7B4F; --vermelho:#B3261E; --laranja:#B25C00;
    --amarelo:#FFF7D6; --amarelo-borda:#E6C94C;
    --good-bg:#E4F3EB; --warn-bg:#FBEEDC; --bad-bg:#FBE7E5;
    --chip-bg:#E9EFF7; --input-bg:#FFFFFF; --th-bg:#FBFCFE; --th-fg:#7F8E9E;
    --sombra:0 1px 2px rgba(20,40,70,.05), 0 6px 18px rgba(20,40,70,.06);
    --sombra-lg:0 2px 8px rgba(20,40,70,.08), 0 20px 48px rgba(20,40,70,.12);
    --r:12px; --r-sm:8px;
    --font:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --azul:#8FC0EE; --azul-esc:#0F1D2B; --azul-claro:#6BA6DE;
      --brand-bg:#16324E; --brand-bg-2:#1E4A73;
      --fundo:#0D1721; --card:#152230; --surface-2:#1C2B3A; --hover:#223345;
      --texto:#E7EEF6; --cinza:#9DACBC; --faint:#71818F; --borda:#28394A; --linha:#22313F;
      --verde:#4CB884; --vermelho:#E9726A; --laranja:#E0973F;
      --amarelo:#3A3418; --amarelo-borda:#6E6224;
      --good-bg:#123227; --warn-bg:#33260F; --bad-bg:#341917;
      --chip-bg:#1C2B3A; --input-bg:#0F1B27; --th-bg:#1A2938; --th-fg:#8D9CAC;
      --sombra:0 1px 2px rgba(0,0,0,.3), 0 8px 22px rgba(0,0,0,.28);
      --sombra-lg:0 2px 8px rgba(0,0,0,.4), 0 22px 52px rgba(0,0,0,.5);
    }
  }
  :root[data-theme="dark"]{
    --azul:#8FC0EE; --azul-esc:#0F1D2B; --azul-claro:#6BA6DE;
    --brand-bg:#16324E; --brand-bg-2:#1E4A73;
    --fundo:#0D1721; --card:#152230; --surface-2:#1C2B3A; --hover:#223345;
    --texto:#E7EEF6; --cinza:#9DACBC; --faint:#71818F; --borda:#28394A; --linha:#22313F;
    --verde:#4CB884; --vermelho:#E9726A; --laranja:#E0973F;
    --amarelo:#3A3418; --amarelo-borda:#6E6224;
    --good-bg:#123227; --warn-bg:#33260F; --bad-bg:#341917;
    --chip-bg:#1C2B3A; --input-bg:#0F1B27; --th-bg:#1A2938; --th-fg:#8D9CAC;
    --sombra:0 1px 2px rgba(0,0,0,.3), 0 8px 22px rgba(0,0,0,.28);
    --sombra-lg:0 2px 8px rgba(0,0,0,.4), 0 22px 52px rgba(0,0,0,.5);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  body{font-family:var(--font); background:var(--fundo); color:var(--texto); font-size:14.5px; line-height:1.55; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}
  .app{display:flex; min-height:100vh;}

  /* ---------- sidebar ---------- */
  aside{width:236px; background:var(--azul-esc); color:#fff; flex-shrink:0; display:flex; flex-direction:column;}
  .logo{padding:22px 20px 16px; border-bottom:1px solid rgba(255,255,255,.1);}
  .logo .gp{font-size:26px; font-weight:800; letter-spacing:.5px;}
  .logo .gp span{color:#7FB3E0;}
  .logo small{display:block; font-size:11px; opacity:.65; margin-top:3px; letter-spacing:.1em; text-transform:uppercase;}
  nav{padding:10px 12px; flex:1;}
  nav a{display:flex; align-items:center; gap:11px; padding:10px 12px; margin:1px 0; border-radius:9px;
    color:#CFDDEC; text-decoration:none; font-size:14px; transition:background .12s, color .12s;}
  nav a:hover{background:rgba(255,255,255,.07); color:#fff;}
  nav a.ativo{background:rgba(127,179,224,.18); color:#fff; font-weight:600; box-shadow:inset 3px 0 0 #8FC0EE;}
  nav a .breve{margin-left:auto; font-size:9.5px; background:rgba(255,255,255,.15); border-radius:10px; padding:2px 8px; letter-spacing:.04em;}
  nav .secao{padding:14px 12px 5px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; opacity:.45; font-weight:600;}
  .rodape-menu{padding:14px 20px; font-size:11px; opacity:.5; line-height:1.5;}

  /* ---------- header ---------- */
  .conteudo{flex:1; min-width:0; display:flex; flex-direction:column;}
  header{background:var(--brand-bg); color:#fff; padding:0 22px; height:60px; display:flex; align-items:center; gap:12px;}
  header h1{font-size:17px; font-weight:700; letter-spacing:-.01em;}
  header span{font-size:12.5px; opacity:.82;}
  #menuBtn{display:none; background:rgba(255,255,255,.12); border:none; color:#fff; border-radius:8px; padding:6px 11px; font-size:16px; cursor:pointer;}
  main{max-width:1180px; width:100%; margin:0 auto; padding:22px 18px 60px;}
  @media(max-width:860px){
    aside{position:fixed; z-index:50; height:100vh; left:-248px; transition:left .2s;}
    aside.aberto{left:0; box-shadow:0 0 40px rgba(0,0,0,.4);}
    #menuBtn{display:block;}
  }

  /* ---------- cards ---------- */
  .card{background:var(--card); border:1px solid var(--borda); border-radius:var(--r); padding:20px 22px;
    margin-bottom:16px; box-shadow:var(--sombra);}
  .card h2{font-size:15px; color:var(--azul); margin-bottom:14px; font-weight:700; letter-spacing:-.01em;}
  .grid{display:grid; gap:12px;}
  .g3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
  .g4{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
  label{display:block; font-size:12px; color:var(--cinza); margin-bottom:4px; font-weight:600;}
  .card label:has(+ .entrada), .card label:has(+ input), .card label:has(+ select){min-height:32px; display:flex; align-items:flex-end; flex-wrap:wrap; gap:4px; align-content:flex-end;}
  input,select{width:100%; padding:9px 12px; border:1px solid var(--borda); border-radius:var(--r-sm); font-size:14.5px; font-family:inherit;
    background:var(--input-bg); color:var(--texto); transition:border-color .12s, box-shadow .12s;}
  input.entrada,select.entrada{background:var(--amarelo); border-color:var(--amarelo-borda);}
  input:focus,select:focus{outline:none; border-color:var(--azul-claro); box-shadow:0 0 0 3px color-mix(in srgb, var(--azul-claro) 22%, transparent);}

  /* ---------- buttons ---------- */
  button.acao{background:var(--brand-bg); color:#fff; border:1px solid transparent; border-radius:9px; padding:10px 18px; font-size:14px; font-weight:600; letter-spacing:.005em; cursor:pointer; box-shadow:0 1px 2px rgba(20,40,70,.14); transition:filter .12s, transform .04s, box-shadow .12s; display:inline-flex; align-items:center; gap:7px; justify-content:center;}
  button.acao:hover{filter:brightness(1.07); box-shadow:0 3px 10px rgba(20,40,70,.2);}
  button.acao:active{transform:translateY(1px);}
  button.acao:focus-visible{outline:2px solid var(--azul-claro); outline-offset:2px;}
  button.acao.sec{background:var(--card); color:var(--azul); border-color:var(--borda); box-shadow:none; font-weight:600;}
  button.acao.sec:hover{background:var(--hover); filter:none; box-shadow:none;}
  button.mini{background:var(--chip-bg); color:var(--azul); border:1px solid transparent; border-radius:7px; padding:5px 11px; font-size:12.5px; font-weight:600; cursor:pointer; transition:background .12s, filter .12s;}
  button.mini:hover{background:var(--hover);}
  button.mini.del{background:var(--bad-bg); color:var(--vermelho);}
  button.mini.del:hover{filter:brightness(.97);}
  .radios{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
  .radios label{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--cinza);
    border:1px solid var(--borda); border-radius:9px; padding:9px 15px; cursor:pointer; margin:0; background:var(--card); transition:border-color .12s, background .12s, color .12s;}
  .radios label:hover{background:var(--hover); color:var(--texto);}
  .radios label.ativo{border-color:var(--azul-claro); background:var(--hover); color:var(--azul); box-shadow:0 1px 2px rgba(20,40,70,.08);}
  .radios input{width:auto;}

  .resultado{display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px dashed var(--borda); font-size:14px;}
  .resultado:last-child{border-bottom:none;}
  .destaque{background:var(--hover); border-radius:var(--r-sm); padding:12px 16px; margin-top:10px; display:flex; justify-content:space-between; align-items:center;}
  .destaque b{font-size:20px; color:var(--azul);}

  /* ---------- tables ---------- */
  table{width:100%; border-collapse:collapse; margin-top:8px;}
  th,td{padding:12px 14px; text-align:right; border-bottom:1px solid var(--linha); font-variant-numeric:tabular-nums; font-size:13.5px;}
  th:first-child,td:first-child{text-align:left;}
  td.esq{text-align:left;}
  th{background:var(--th-bg); color:var(--th-fg); font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; position:sticky; top:0; padding-top:11px; padding-bottom:11px; border-bottom:2px solid var(--borda);}
  tr:nth-child(even) td{background:color-mix(in srgb, var(--surface-2) 45%, transparent);}
  tbody tr:hover td{background:var(--hover);}
  td.pv{font-weight:700; color:var(--azul);}
  td input.lucro-canal{width:70px; padding:4px 6px; text-align:right; background:var(--amarelo); border:1px solid var(--amarelo-borda); border-radius:5px;}

  /* ---------- precificação: escolha guiada e composição do preço ---------- */
  .radios.g-radios label{align-items:flex-start; padding:12px 16px;}
  .radios.g-radios label span{display:flex; flex-direction:column; gap:2px; font-weight:600;}
  .radios.g-radios label small{font-weight:500; font-size:11.5px; color:var(--cinza); letter-spacing:0;}
  .radios.g-radios label.ativo small{color:var(--azul-claro);}
  .comp-barra{display:flex; height:9px; border-radius:5px; overflow:hidden; background:var(--surface-2); width:100%;}
  .comp-barra i{display:block; height:100%;}
  .comp-leg{display:block; font-size:10.5px; color:var(--cinza); margin-top:4px; letter-spacing:.01em;}
  .c-custo{background:var(--azul-claro);}
  .c-desp{background:var(--laranja);}
  .c-lucro{background:var(--verde);}
  .comp-legenda{display:flex; flex-wrap:wrap; gap:14px; font-size:12px; color:var(--cinza); align-items:flex-start;}
  .comp-legenda span{display:flex; align-items:center; gap:6px;}
  .comp-legenda i{width:10px; height:10px; border-radius:3px; flex-shrink:0;}
  .comp-legenda small{display:block; font-size:11px; opacity:.85;}
  details summary{padding:4px 0;}
  details[open] summary{margin-bottom:2px;}

  /* MVA por item */
  .mva-box{border:1px solid var(--borda); border-radius:var(--r-sm); padding:14px 16px; background:var(--surface-2);}
  .mva-linha{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px;}
  .mva-campo{display:flex; gap:6px; align-items:center; margin-top:4px;}
  .mva-campo input{flex:1;}
  .mva-box small.nota{display:block; margin-top:5px; font-size:11.5px;}

  /* DRE do produto */
  .dre-linha{display:grid; grid-template-columns:1fr auto 74px; gap:12px; align-items:center;
    padding:9px 0; border-bottom:1px solid var(--linha); font-size:14px;}
  .dre-linha b{font-variant-numeric:tabular-nums; font-weight:600;}
  .dre-linha b.neg{color:var(--vermelho);}
  .dre-linha i{font-style:normal; text-align:right; font-size:12px; color:var(--cinza); font-variant-numeric:tabular-nums;}
  .dre-linha.topo{border-bottom:2px solid var(--borda);}
  .dre-linha.topo b{color:var(--azul); font-size:16px; font-weight:800;}
  .dre-linha.total{border-bottom:none; border-top:2px solid var(--borda); margin-top:4px; padding-top:12px; font-weight:800;}
  .dre-linha.total b{font-size:19px;}
  .dre-linha.total.ok b, .dre-linha.total.ok span{color:var(--verde);}
  .dre-linha.total.ruim b, .dre-linha.total.ruim span{color:var(--vermelho);}

  /* legenda dos quadrantes das Análises */
  .quad-leg{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:8px 16px; margin-top:12px; font-size:12.5px; color:var(--cinza);}
  .quad-leg span{display:flex; align-items:center; gap:7px;}
  .quad-leg i{width:11px; height:11px; border-radius:50%; flex-shrink:0;}
  .quad-leg b{color:var(--texto);}

  /* ---------- pílulas de status ---------- */
  .pill{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:999px; cursor:pointer; border:none; font-family:inherit; line-height:1.5;}
  .pill .d{width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0;}
  .pill.p-ok{background:var(--good-bg); color:var(--verde);}
  .pill.p-wait{background:var(--warn-bg); color:var(--laranja);}
  .pill.p-late{background:var(--bad-bg); color:var(--vermelho);}

  /* ---------- avisos ---------- */
  .aviso{background:var(--bad-bg); border:1px solid color-mix(in srgb, var(--vermelho) 35%, transparent); color:var(--vermelho); border-radius:var(--r-sm); padding:10px 14px; margin-top:10px; font-size:13.5px; display:none;}
  .ok{background:var(--good-bg); border:1px solid color-mix(in srgb, var(--verde) 35%, transparent); color:var(--verde); border-radius:var(--r-sm); padding:10px 14px; margin-top:10px; font-size:13.5px; display:none;}
  .nota{font-size:12.5px; color:var(--cinza); margin-top:10px; line-height:1.5;}
  details summary{cursor:pointer; font-size:15px; color:var(--azul); font-weight:700;}

  /* ---------- busca catálogo ---------- */
  #resultadosBusca{position:relative;}
  #listaBusca{position:absolute; z-index:10; left:0; right:0; top:100%; background:var(--card); border:1px solid var(--borda);
    border-radius:0 0 var(--r-sm) var(--r-sm); max-height:280px; overflow-y:auto; box-shadow:var(--sombra-lg); display:none;}
  #listaBusca div{padding:9px 12px; font-size:13.5px; cursor:pointer; border-bottom:1px solid var(--linha); display:flex; justify-content:space-between; gap:10px;}
  #listaBusca div:hover{background:var(--hover);}
  #listaBusca .cod{color:var(--cinza); white-space:nowrap;}
  #listaBusca .preco{color:var(--verde); font-weight:600; white-space:nowrap;}

  .chip{display:inline-block; background:var(--chip-bg); color:var(--azul); border-radius:20px; padding:3px 12px; font-size:12.5px; font-weight:600; margin-top:8px;}
  .mva-badge{font-size:13px; background:var(--good-bg); color:var(--verde); border-radius:6px; padding:6px 10px; font-weight:700;}
  .badge{display:inline-block; border-radius:12px; padding:2px 9px; font-size:11.5px; font-weight:700;}
  .b-verde{background:var(--good-bg); color:var(--verde);} .b-verm{background:var(--bad-bg); color:var(--vermelho);}
  .b-cinza{background:var(--chip-bg); color:var(--cinza);} .b-lar{background:var(--warn-bg); color:var(--laranja);}
  .modulo{display:none;} .modulo.ativo{display:block; animation:fadeIn .2s ease;}
  @keyframes fadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}
  @media (prefers-reduced-motion:reduce){.modulo.ativo{animation:none;}}

  /* ---------- KPIs ---------- */
  .cards-kpi{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:18px;}
  .kpi{background:var(--card); border:1px solid var(--borda); border-radius:var(--r); padding:16px 18px 18px; box-shadow:var(--sombra); position:relative; display:flex; flex-direction:column; min-width:0;}
  .kpi::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--azul-claro); border-radius:var(--r) var(--r) 0 0;}
  .kpi .l{font-size:12.5px; color:var(--cinza); font-weight:600; margin-bottom:9px;}
  .kpi .v{font-size:clamp(16px,1.7vw,22px); font-weight:800; color:var(--texto); letter-spacing:-.02em; line-height:1.15; white-space:nowrap; font-variant-numeric:tabular-nums;}
  .kpi .k-sub{font-size:11.5px; color:var(--faint); margin-top:8px; line-height:1.4;}
  .chart-box{position:relative; height:280px;}
  .filtros{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:8px;}
  .filtros>div{min-width:150px; flex:1;}
  .tbl-wrap{overflow-x:auto; max-height:60vh; overflow-y:auto; border-radius:var(--r-sm);}
  .cad-lista{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px;}
  .cad-item{display:flex; align-items:center; gap:8px; background:var(--surface-2); border:1px solid var(--borda); border-radius:var(--r-sm); padding:7px 12px; font-size:13.5px;}
  .cad-item input{width:64px; padding:3px 6px; font-size:13px; text-align:right;}
  .breve-card{text-align:center; padding:60px 20px; color:var(--cinza);}
  .breve-card .icone{font-size:44px; margin-bottom:12px;}
  .breve-card h3{color:var(--azul); font-size:19px; margin-bottom:8px;}
  #finKpis{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));}
  #finKpis .kpi::before{background:var(--azul-claro);}
  #finKpis .kpi:nth-child(2)::before{background:var(--verde);}
  #finKpis .kpi:nth-child(3)::before{background:var(--vermelho);}
  #finKpis .kpi:nth-child(4)::before{background:var(--laranja);}
  #tbFin td:last-child .mini{opacity:.28; transition:opacity .15s;}
  #tbFin tr:hover td:last-child .mini{opacity:1;}
  #tbFin .dia-row td{background:var(--surface-2) !important; border-left:3px solid var(--azul-claro);}
  #thProg th:first-child, #thGrade th:first-child{position:sticky; left:0; z-index:3;}
  #tbProg td:first-child, #tbGrade td:first-child{position:sticky; left:0; background:var(--card); z-index:2;}
  #tbProg tr:nth-child(even) td:first-child{background:var(--surface-2);}
  #toast{position:fixed; bottom:22px; right:22px; background:var(--azul-esc); color:#fff; padding:13px 20px; border-radius:var(--r-sm);
    font-size:14px; box-shadow:var(--sombra-lg); display:none; z-index:100; border:1px solid var(--borda);}
  @media(max-width:640px){ th,td{padding:6px 6px; font-size:12px;} }

  /* ---------- login ---------- */
  #telaLogin{position:fixed; inset:0; background:linear-gradient(150deg,var(--azul-esc),#0b1622); display:flex; align-items:center; justify-content:center; z-index:200; padding:20px;}
  #telaLogin .card{width:390px; max-width:92vw; box-shadow:var(--sombra-lg);}
  #telaLogin .gp{font-size:34px; font-weight:800; color:var(--azul); text-align:center;}
  #telaLogin .gp span{color:#7FB3E0;}

  /* ---------- header direita + tema ---------- */
  .hdr-right{margin-left:auto; display:flex; align-items:center; gap:10px; font-size:12.5px;}
  .hdr-right select{padding:7px 10px; font-size:13px; border-radius:var(--r-sm); border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.12); color:#fff; max-width:190px;}
  .hdr-right select option{color:#16232F;}
  .hdr-right button{background:rgba(255,255,255,.14); border:none; color:#fff; border-radius:var(--r-sm); padding:7px 13px; cursor:pointer; font-size:12.5px; transition:background .12s;}
  .hdr-right button:hover{background:rgba(255,255,255,.24);}
  #btnTema{width:38px; padding:7px 0 !important; font-size:15px; flex-shrink:0;}
  .perm-lista{display:flex; flex-wrap:wrap; gap:8px;}
  .perm-lista label{display:flex; align-items:center; gap:5px; font-size:12.5px; border:1px solid var(--borda); border-radius:6px; padding:5px 9px; margin:0; color:var(--texto); font-weight:600; cursor:pointer;}
  .usr-box{border:1px solid var(--borda); border-radius:var(--r-sm); padding:12px 14px; margin-top:10px; background:var(--card);}
  .usr-box .top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;}

  /* ---------- DRE / fluxo: linhas clicaveis e detalhe dos lancamentos ---------- */
  tr.dre-clic td:first-child{cursor:pointer;}
  tr.dre-clic:hover td:first-child{text-decoration:underline; text-decoration-color:var(--azul-claro);}
  .dre-seta{display:inline-block; width:12px; color:var(--azul); font-size:11px;}
  tr.dre-det>td{padding:0 0 0 22px !important; background:var(--surface-2) !important;}
  .dre-det-box{margin:0; padding:8px 10px 10px;}
  .dre-det-box table{margin:0;}
  .dre-det-box th{position:static; font-size:10px; padding:7px 10px;}
  .dre-det-box td{font-size:12.5px; padding:6px 10px;}
  tr.fl-clic td:first-child, th.fl-clic{cursor:pointer;}
  tr.fl-clic:hover td:first-child, th.fl-clic:hover{text-decoration:underline; text-decoration-color:var(--azul-claro);}
  #fluxoDet:empty{display:none;}
  #fluxoDet{margin-top:10px; border:1px solid var(--borda); border-radius:var(--r-sm); background:var(--surface-2);}

  /* ---------- v1.41: saude financeira, cenarios e Consultoria (gp-saude.js) ---------- */
  .gs-topo{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; align-items:center;}
  .gs-score{display:flex; align-items:center; gap:14px;}
  .gs-n{font-size:54px; font-weight:800; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums;}
  .gs-l{font-size:12.5px; color:var(--cinza); line-height:1.45;}
  .gs-barra{height:10px; border-radius:6px; background:linear-gradient(90deg,var(--vermelho) 0 45%,var(--laranja) 45% 70%,var(--verde) 70% 100%); position:relative; margin-top:10px;}
  .gs-barra i{position:absolute; top:-4px; width:4px; height:18px; border-radius:2px; background:var(--texto); transform:translateX(-2px);}
  .gs-alertas{display:flex; flex-direction:column; gap:7px; font-size:13.5px;}
  .gs-alerta{display:flex; gap:9px; align-items:baseline;}
  .gs-dot{flex:0 0 9px; width:9px; height:9px; border-radius:50%; display:inline-block;}
  .gs-dot.gs-bom{background:var(--verde);} .gs-dot.gs-atencao{background:var(--laranja);} .gs-dot.gs-critico{background:var(--vermelho);}
  .gs-grupos{display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:14px; margin-bottom:14px;}
  .gs-grupos .card{margin:0;}
  .gs-grupo h3{font-size:14px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:baseline;}
  .gs-gnota{font-size:13px; font-weight:800;}
  .gs-ind{display:grid; grid-template-columns:1fr auto auto; gap:3px 10px; align-items:center; font-size:13.5px; padding:7px 0; border-bottom:1px solid var(--linha);}
  .gs-ind:last-child{border-bottom:0; padding-bottom:0;}
  .gs-v{font-weight:700; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;}
  .gs-ex{grid-column:1/-1; font-size:12px; color:var(--cinza);}
  .gs-pill{display:inline-block; font-size:10.5px; font-weight:700; border-radius:10px; padding:2px 8px; white-space:nowrap;}
  .gs-pill.gs-bom{background:var(--good-bg); color:var(--verde);} .gs-pill.gs-atencao{background:var(--warn-bg); color:var(--laranja);}
  .gs-pill.gs-critico{background:var(--bad-bg); color:var(--vermelho);} .gs-pill.gs-nd{background:var(--chip-bg); color:var(--cinza);}
  .gs-pat summary, .gs-bloco summary{cursor:pointer; font-weight:700; color:var(--azul); font-size:14px;}
  .gs-bloco{border:1px solid var(--borda); border-radius:var(--r-sm); padding:10px 12px; margin-top:8px; background:var(--card);}
  .gs-un{font-weight:400; color:var(--faint); text-transform:none;} .gs-per{font-weight:400; text-transform:none; color:var(--azul-claro);}
  .gs-aj{font-size:11.5px; color:var(--cinza); margin-top:3px;}
  .gs-mat{display:grid; grid-template-columns:1fr 130px; gap:10px; align-items:center; font-size:13.5px; padding:6px 0; border-bottom:1px solid var(--linha);}
  .gs-mat select{margin:0;}
  .gs-cen{display:grid; grid-template-columns:minmax(260px,330px) 1fr; gap:14px; align-items:start;}
  .gs-cen .card{margin:0;}
  .gs-chips{display:flex; gap:6px; flex-wrap:wrap;}
  .gs-chips .gs-on{background:var(--brand-bg); color:#fff;}
  .gs-alav{margin-top:12px;}
  .gs-alav label{display:flex; justify-content:space-between; align-items:center; gap:8px;}
  .gs-alav label span{font-weight:400; text-transform:none; white-space:nowrap;}
  .gs-alav-n{width:74px !important; display:inline-block; padding:4px 6px !important; text-align:right;}
  .gs-alav input[type=range]{width:100%; padding:0; border:0; background:transparent; accent-color:var(--azul-claro);}
  .gs-veredito{font-size:14px; padding:12px 14px; border-radius:var(--r-sm); background:var(--amarelo); border:1px solid var(--amarelo-borda);}
  .gs-sub td{font-weight:800; background:var(--surface-2) !important;}
  .gs-duas{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px;}
  .gs-duas .card{margin:0;}
  .gs-diag{display:grid; grid-template-columns:minmax(320px,460px) 1fr; gap:14px; align-items:start;}
  .gs-diag .gs-quest{margin:0; max-height:calc(100vh - 170px); overflow-y:auto;}
  @media(max-width:980px){ .gs-topo,.gs-cen,.gs-diag{grid-template-columns:1fr;} .gs-diag .gs-quest{max-height:none;} }

  /* ---------- v1.43: orcado x realizado ---------- */
  tr.or-clic td:first-child{cursor:pointer;}
  tr.or-clic:hover td:first-child{text-decoration:underline; text-decoration-color:var(--azul-claro);}
  .or-barra{position:relative; height:6px; border-radius:4px; background:var(--surface-2); margin-top:4px; overflow:hidden;}
  .or-barra i{position:absolute; left:0; top:0; bottom:0; border-radius:4px;}
  .or-barra i.gs-bom{background:var(--verde);} .or-barra i.gs-atencao{background:var(--laranja);} .or-barra i.gs-critico{background:var(--vermelho);}
  .or-barra b{position:absolute; top:-2px; bottom:-2px; width:2px; background:var(--texto); opacity:.55;}
  .or-grade th, .or-grade td{padding:6px 6px;}
  .or-in{width:92px !important; padding:5px 6px !important; text-align:right; font-size:12.5px; margin:0;}

  /* ---------- v1.44: capital de giro dinamico ---------- */
  .gr-eq{display:flex; flex-direction:column; gap:6px; font-size:14px;}
  .gr-eq > div:not(.nota){display:flex; justify-content:space-between; gap:12px; align-items:baseline;}
  .gr-eq b{font-variant-numeric:tabular-nums; white-space:nowrap; font-size:16px;}
  .gr-eq-t{border-top:2px solid var(--borda); padding-top:6px;} .gr-eq-t b{font-size:20px;}
  .gr-grade{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin-bottom:14px;}
  .gr-bloco{background:var(--card); border:1px solid var(--borda); border-radius:var(--r); padding:14px 16px; box-shadow:var(--sombra); border-top:3px solid var(--azul-claro);}
  .gr-bloco.gr-fin{border-top-color:var(--laranja);}
  .gr-tit{font-weight:700; font-size:13.5px;} .gr-sub{font-size:12px; color:var(--cinza); margin-bottom:8px;}
  .gr-lin{display:flex; justify-content:space-between; gap:10px; font-size:13.5px; padding:4px 0; font-variant-numeric:tabular-nums;}
  .gr-lin i{color:var(--cinza); font-size:12px;}
  .gr-tot{border-top:1px solid var(--linha); margin-top:4px; padding-top:7px; font-weight:800;}

  /* ---------- v1.46: relatorio com selecao de secoes ---------- */
  .rel-lista{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:8px;}
  .rel-item{display:flex; gap:9px; align-items:flex-start; border:1px solid var(--borda); border-radius:var(--r-sm); padding:9px 11px; margin:0; text-transform:none; font-weight:400; color:var(--texto); cursor:pointer; background:var(--card); font-size:13.5px; letter-spacing:0;}
  .rel-item input{width:17px; height:17px; margin-top:2px; flex:0 0 17px;}
  .rel-item:has(input:checked){border-color:var(--azul-claro); background:var(--hover);}
