/* Trenium — padrão de sistema de gestão: menu lateral, faixa-filtro, tabela; cartões no celular. */
:root{
  --bg:#F7F8F6;--surface:#FFFFFF;--sunken:#EEF1EE;--line:#DFE5E0;--line-strong:#C9D2CB;
  --fg:#16201B;--fg-2:#44534A;--fg-3:#5C6B62;
  --accent:#15803D;--accent-fg:#FFFFFF;--accent-soft:#EAF3EC;
  --rail:#10231A;--rail-fg:#CFE2D4;--rail-active:#FFFFFF;--rail-hi:#1D4732;
  --ok:#15803D;--ok-soft:#DDF1E3;--warn:#B45309;--warn-soft:#FDEFD8;--bad:#B91C1C;--bad-soft:#FBE3E3;--none:#5C6B62;--none-soft:#EEF1EE;
  --font:"Figtree",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:10px;--r-sm:7px;--shadow:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.06);
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0F2018;--surface:#16291F;--sunken:#1B3226;--line:#26402F;--line-strong:#35523F;
  --fg:#E8EBF1;--fg-2:#B3BAC7;--fg-3:#8D95A6;--accent:#5FD38D;--accent-fg:#0F2018;--accent-soft:#1D4732;
  --rail:#0A1812;--rail-fg:#9FBBA8;--rail-hi:#1D4732;
  --ok:#5FD38D;--ok-soft:#173A27;--warn:#F2B451;--warn-soft:#33260F;--bad:#F58A80;--bad-soft:#3A1715;--none:#A3ABBA;--none-soft:#1B3226;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);color-scheme:dark}}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent-soft);color:var(--fg)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* login e páginas avulsas */
.centro{min-height:100vh;display:grid;place-items:center;padding:32px 16px}
.caixa{width:100%;max-width:400px;padding:32px}
.caixa h1{font-size:22px;margin:16px 0 4px;letter-spacing:-.02em}
.dica{color:var(--fg-3);font-size:14px;margin:0 0 20px}
.marca{width:40px;height:40px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px}
.pilha{display:flex;flex-direction:column;gap:8px}
.pilha label{font-size:13px;font-weight:600;color:var(--fg-2);margin-top:6px}
.erro{background:var(--bad-soft);color:var(--bad);padding:10px 12px;border-radius:var(--r-sm);font-size:14px;font-weight:600;margin:0 0 12px}

/* estrutura */
.app{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100%}
.rail{background:var(--rail);color:var(--rail-fg);padding:18px 12px;display:flex;flex-direction:column;gap:4px}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;color:var(--rail-active)}
.mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;flex:none}
.brand b{display:block;font-size:15px;letter-spacing:-.01em}
.brand small{display:block;font-size:12px;color:var(--rail-fg)}
.rail a,.sair button{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:inherit;text-decoration:none;font-weight:500;background:none;border:0;cursor:pointer;width:100%;text-align:left}
.rail a:hover,.sair button:hover{background:var(--rail-hi);color:var(--rail-active)}
.rail a[aria-current="page"]{background:var(--rail-hi);color:var(--rail-active);font-weight:600;border-radius:8px 999px 999px 8px}
.rail a .em{font-size:17px;width:22px;text-align:center;flex:none}
.rail a small{margin-left:auto;font-size:11px;color:#8AA593;text-align:right;font-weight:400}
.sair{margin:0}
.rail .sp{flex:1}
.who{padding:10px;border-top:1px solid var(--rail-hi);margin-top:8px;font-size:13px}
.who b{color:var(--rail-active);font-weight:600}
main{min-width:0;padding:28px 32px 48px}
.head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:20px}
.head h1{font-size:24px;line-height:1.2;margin:0;letter-spacing:-.02em;text-wrap:balance}
.head .sp{flex:1}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--fg-2);text-decoration:none;font-weight:500;margin-bottom:10px}
.back:hover{color:var(--fg)}
.aviso{background:var(--ok-soft);color:var(--ok);font-weight:600;padding:10px 14px;border-radius:var(--r-sm);margin:0 0 16px}

/* botões e campos */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);padding:9px 14px;border-radius:var(--r-sm);cursor:pointer;font-weight:600;font-size:14px;white-space:nowrap;text-decoration:none}
.btn:hover{border-color:var(--fg-3)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.pri:hover{filter:brightness(1.07)}
.pilha .btn.pri{margin-top:12px}
.btn.ghost{border-color:transparent;background:none;color:var(--fg-2)}
.btn.ghost:hover{background:var(--sunken);color:var(--fg)}
.btn.wa{color:var(--ok);border-color:var(--line)}
.in{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-sm);padding:9px 11px;width:100%;min-width:0}
.in:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.in[aria-invalid="true"]{border-color:var(--bad)}
.in::placeholder{color:var(--fg-3)}
.err{color:var(--bad);font-size:13px;margin:4px 0 0}
label{font-size:13px;font-weight:600;color:var(--fg-2)}
label .opt,legend .opt{font-weight:400;color:var(--fg-3)}
.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:0 12px;flex:1 1 260px;max-width:420px;color:var(--fg-3);margin:0}
.search input{border:0;outline:0;background:none;padding:9px 0;width:100%;color:var(--fg)}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* faixa-filtro */
.sum{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.f{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;text-decoration:none;flex:1 1 150px;max-width:220px}
.f:hover{border-color:var(--line-strong)}
.f[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.f .n{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1}
.f .l{display:block;font-size:13px;color:var(--fg-2);line-height:1.25}
.dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--fg-3)}
.dot.em_dia{background:var(--ok)}.dot.vencendo{background:var(--warn)}.dot.vencido{background:var(--bad)}.dot.sem_plano{background:var(--none)}

/* tabelas */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.rolagem{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);padding:11px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--sunken)}
.tbl .nm,.mc .nm{font-weight:600;text-decoration:none}
.tbl .nm:hover,.mc .nm:hover{text-decoration:underline}
.sub{font-size:13px;color:var(--fg-3)}
.r,.tbl th.r,.tbl td.r{text-align:right}
.tfoot{display:flex;justify-content:space-between;gap:12px;padding:11px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--fg-2)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}
.pill .dot{width:7px;height:7px}
.pill.em_dia{background:var(--ok-soft);color:var(--ok)}.pill.em_dia .dot{background:var(--ok)}
.pill.vencendo{background:var(--warn-soft);color:var(--warn)}.pill.vencendo .dot{background:var(--warn)}
.pill.vencido{background:var(--bad-soft);color:var(--bad)}.pill.vencido .dot{background:var(--bad)}
.pill.sem_plano{background:var(--none-soft);color:var(--none)}.pill.sem_plano .dot{background:var(--none)}
.mcards{display:none;list-style:none;margin:0;padding:0}
.empty{padding:40px 16px;text-align:center;color:var(--fg-2);margin:0}
.empty b{display:block;color:var(--fg);font-size:16px;margin-bottom:4px}
.empty div{margin-top:12px}

/* ficha */
.grid2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.sec{padding:20px}
.sec h2,.panel h2{font-size:16px;margin:0 0 14px;letter-spacing:-.01em}
.dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0}
.dl dt{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);margin-bottom:2px}
.dl dd{margin:0;overflow-wrap:anywhere}
.dl .wide{grid-column:1/-1}
.ctr{display:flex;flex-direction:column;gap:14px}
.big{font-size:20px;font-weight:700;letter-spacing:-.01em}
.bar{height:8px;border-radius:999px;background:var(--sunken);overflow:hidden}
.bar span{display:block;height:100%;border-radius:inherit}
.bar .em_dia{background:var(--ok)}.bar .vencendo{background:var(--warn)}.bar .vencido{background:var(--bad)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.person{display:flex;align-items:center;gap:14px}
.av{width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:18px;flex:none}
details.acao{border:1px solid var(--line);border-radius:var(--r-sm);padding:0}
details.acao summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:9px 14px;font-weight:600;font-size:14px}
details.acao summary::-webkit-details-marker{display:none}
details.acao[open] summary{border-bottom:1px solid var(--line)}
details.acao form{padding:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:end}
details.acao .fd{flex:1 1 160px}

/* formulários */
.panel{padding:20px;margin-bottom:16px}
.form{padding:24px}
.fs{border:0;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 16px}
.fs legend{grid-column:1/-1;font-weight:700;font-size:15px;padding:0;margin-bottom:12px;color:var(--fg)}
.grade{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:14px 16px}
.fd{display:flex;flex-direction:column;gap:5px;min-width:0;border:0;margin:0;padding:0}
.fd legend{font-size:13px;font-weight:600;color:var(--fg-2);padding:0;margin-bottom:5px}
.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}.c-all{grid-column:1/-1}
.junto{display:flex;gap:8px}
.junto .in:first-child{max-width:90px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;cursor:pointer;font-weight:500;font-size:14px;background:var(--surface);color:var(--fg)}
.chip input{accent-color:var(--accent);margin:0}
.chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);margin-top:4px;padding-top:18px}
.inline-add{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.inline-add .fd{flex:1 1 240px}
.linha-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.linha-form .in{max-width:320px}
.linha-form .err{flex-basis:100%}

@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{position:fixed;left:0;right:0;bottom:0;z-index:5;flex-direction:row;justify-content:space-around;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));gap:0;border-top:1px solid var(--rail-hi)}
  .rail .brand,.rail .sp,.rail .who{display:none}
  .rail a,.sair button{flex-direction:column;gap:3px;font-size:12px;padding:6px 10px;width:auto;text-align:center}
  main{padding:20px 16px 96px}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .tabela-alunos{display:none}
  .mcards{display:block}
  .mc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 16px;border-bottom:1px solid var(--line);align-items:center}
  .mc:last-child{border-bottom:0}
  .mc .sub{grid-column:1/-1}
  .fs,.grade{grid-template-columns:minmax(0,1fr)}
  .fs>*,.grade>*{grid-column:1/-1!important}
  .f{max-width:none;flex:1 1 40%;padding:10px 12px}
  .f .l{font-size:12px}
  .head .btn.pri span{display:none}
  .dl{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:no-preference){main{animation:in .22s cubic-bezier(.16,1,.3,1)}@keyframes in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}}
.dot.inativo{background:var(--none)}
.pill.inativo{background:var(--none-soft);color:var(--none)}.pill.inativo .dot{background:var(--none)}
.bar .inativo{background:var(--none)}
.hist{grid-column:1/-1}
.hist-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hist-lista li{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}
.hist-lista li:first-child{border-top:0;padding-top:0}
.hist-lista li.estornado b{text-decoration:line-through;color:var(--fg-3)}
.estorno summary{cursor:pointer;color:var(--fg-2);font-weight:600;display:inline-flex;gap:6px;align-items:center}
.estorno form{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
[hidden]{display:none!important}
.alerta{background:var(--warn-soft);color:var(--warn);font-weight:600;padding:10px 14px;border-radius:var(--r-sm);margin:0 0 16px}
.alerta a{color:inherit}
.suporte{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:8px 16px;background:var(--warn-soft);color:var(--warn);font-weight:600;border-bottom:1px solid currentColor}
.suporte form{margin:0}
.abas{display:flex;gap:4px;margin:0 0 16px;border-bottom:1px solid var(--line)}
.abas a{padding:8px 12px;text-decoration:none;color:var(--fg-2);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.abas a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--accent)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.kpi{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.kpi .l{font-size:13px;color:var(--fg-2)}
.kpi b{font-size:22px;letter-spacing:-.02em}
.kpi.destaque{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.acoes-caixa{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px;align-items:flex-start}
.acoes-caixa .acao{flex:1 1 220px}
.tbl tr.estornado td{color:var(--fg-3)}
.tbl tr.estornado b{text-decoration:line-through}
.dif{color:var(--bad)}
.filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.cat-lista{list-style:none;margin:0;padding:0}
/* Lista com ações: nome à esquerda (quebra se for longo), ações sempre juntas e alinhadas à direita. */
.cat-lista li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 0;border-top:1px solid var(--line);min-height:48px}
.cat-lista li>:nth-child(2){display:flex;flex-wrap:nowrap;gap:2px;justify-content:flex-end}
.cat-lista li>.linha-form{grid-column:1/-1}
.cat-lista .btn{padding:6px 10px}
.cat-lista li form .btn{min-width:96px}
.cat-lista li:first-child{border-top:0}
.cat-lista li.inativa>span:first-child{color:var(--fg-3)}
@media (max-width:860px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mes{display:flex;align-items:center;gap:6px;margin-left:auto}
.mes b{min-width:150px;text-align:center}
.mcards.sempre{display:grid}

/* Etapa 2 — financeiro */
.abas{overflow-x:auto;scrollbar-width:none}
.abas a{white-space:nowrap}
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;vertical-align:middle;background:var(--sunken);color:var(--fg-2)}
.tag.fixo{background:var(--accent-soft);color:var(--accent)}
.tag.variavel{background:var(--warn-soft);color:var(--warn)}
.tag.investimento{background:var(--ok-soft);color:var(--ok)}
.tbl tfoot th{text-align:left;font-size:14px;font-weight:700;color:var(--fg);padding:12px 16px;border-top:1px solid var(--line-strong);text-transform:none;letter-spacing:0}
.tbl tfoot th.r{text-align:right}
.tbl tfoot tr+tr th{border-top:0;padding-top:0}
.tbl tfoot .sub{font-weight:400}
.tbl tr.programado td{color:var(--fg-3)}
.tbl tr.saldo-ant td{color:var(--fg-2);background:var(--sunken)}
.tbl tr.sel td{background:var(--accent-soft)}
.tbl td.entra{color:var(--ok)}
.tbl.lanc td:first-child{width:36px}
.tbl input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
.baixa{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line)}
.baixa label{font-size:13px;font-weight:600;color:var(--fg-2)}
.baixa .in{width:auto}
.chips.faturas{margin:0 0 12px}
.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}
a.chip{text-decoration:none}
.fatura-topo{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:16px 16px 12px}
.fatura-topo h2{font-size:16px;margin:0}
.fatura-topo form{margin-left:auto}
.chip.parc .in{width:64px;padding:4px 8px}
.tipos-lanc{margin:0 0 16px}
.pago{flex-direction:row;align-items:center;gap:10px}
.pago .in{max-width:180px}
.kpi .sub{font-size:12px}
.pad{padding:12px 16px;margin:0}
h2.pad{font-size:16px;padding:16px 16px 4px}
.titulo-sec{font-size:16px;margin:24px 0 12px;letter-spacing:-.01em}
/* Plano de contas: centro (grupo) e as categorias dele, ações alinhadas à direita numa coluna só. */
.pc{list-style:none;margin:0;padding:0}
.pc li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:44px;padding:4px 0;border-top:1px solid var(--line)}
.pc li>.linha-form{grid-column:1/-1}
.pc li.grupo{margin-top:14px;padding-top:10px;border-top:1px solid var(--line-strong)}
.pc li.grupo:first-child{margin-top:0;border-top:0}
.pc li.grupo .tag{margin-left:6px}
.pc li.grupo .sub{margin-left:6px}
.pc li.cat,.pc li.add{padding-left:22px}
.pc li.add{border-top:0;min-height:36px}
.pc li.add a{display:inline-flex;align-items:center;gap:6px;color:var(--fg-2);font-weight:600;font-size:14px;text-decoration:none}
.pc li.add a:hover{color:var(--accent)}
.pc li.add .i{width:16px;height:16px}
.acoes{display:flex;gap:2px;justify-content:flex-end;flex-wrap:nowrap}
.acoes .btn{padding:6px 10px}
.acoes form .btn{min-width:96px}
.pc li.grupo .tag,.pc li.grupo .sub{white-space:nowrap}
.head-acoes{margin-left:auto}
@media (max-width:560px){.acoes .rot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.acoes form .btn{min-width:0}.head-acoes{margin-left:0}}
.desativados>summary{cursor:pointer;font-weight:600;color:var(--fg-2)}
.desativados[open]>summary{margin-bottom:8px}
.centros-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(400px,100%),1fr));gap:12px}
.centro-bloco h2{display:flex;align-items:center;gap:8px;justify-content:space-between}
.mes .vira svg{transform:rotate(180deg)}
.head .big{margin-left:4px}
details.acao .dentro{padding:0 14px 14px}
details.acao .dentro form.card{box-shadow:none;border:0;padding:14px 0 0;margin:0}
@media (max-width:860px){.fatura-topo form{margin-left:0}.mes b{min-width:0}}

/* Etapa 3 — catraca */
.kpis.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpis.kpis5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.kpis.kpis5{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi .linha-form{margin-top:6px}
.kpi .linha-form .in{max-width:80px;padding:5px 8px}
.catraca{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.res{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 9px;border-radius:999px}
.res.liberado{background:var(--ok-soft);color:var(--ok)}
.res.negado{background:var(--bad-soft);color:var(--bad)}
.veredito{display:flex;align-items:center;gap:14px;margin-top:16px;padding:16px;border-radius:var(--r)}
.veredito.liberado{background:var(--ok-soft);color:var(--ok)}
.veredito.negado{background:var(--bad-soft);color:var(--bad)}
.veredito b{display:block;font-size:22px;letter-spacing:.02em}
.veredito span{display:block}
.veredito .sub{color:inherit;opacity:.85}
.v-icone{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface);flex:none}
.v-icone svg.i{width:24px;height:24px;stroke-width:2.6}
.ao-vivo::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);margin-right:6px;vertical-align:middle}
@media (prefers-reduced-motion:no-preference){.ao-vivo::before{animation:pulso 1.6s ease-in-out infinite}@keyframes pulso{50%{opacity:.3}}
  .tbl tr.nova td{animation:chega 1.2s cubic-bezier(.16,1,.3,1)}@keyframes chega{from{background:var(--accent-soft)}to{background:transparent}}}
details.acao.card{padding:0}
details.acao .pilha.dentro{padding:14px;display:flex}
@media (max-width:860px){.catraca{grid-template-columns:minmax(0,1fr)}.kpis.tres{grid-template-columns:minmax(0,1fr)}}

/* Etapa 4 — ativação do Trenium */
.ativar{text-align:center}
.ativar .marca{margin:0 auto}
.valor-pix{font-size:32px;font-weight:700;letter-spacing:-.02em;margin:8px 0 4px}
.qr{width:220px;height:220px;max-width:100%;margin:8px auto 12px;display:block;image-rendering:pixelated;border:1px solid var(--line);border-radius:var(--r-sm)}
.copia{font-family:ui-monospace,monospace;font-size:12px;resize:none;margin-bottom:10px;word-break:break-all}
.ativar .btn.pri{width:100%}
.ativar .espera{margin:14px 0}
.ativar form{margin-top:8px}

/* Etapa 5 — posição, gestão, painel */
.kpis.seis{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi.alerta-kpi b{color:var(--bad)}
.grafico{width:100%;height:auto;display:block}
.grafico .b-entra,.legenda i.b-entra{fill:var(--ok);background:var(--ok)}
.grafico .b-sai,.legenda i.b-sai{fill:var(--bad);background:var(--bad);opacity:.85}
.grafico .l-saldo{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}
.legenda i.l-saldo{background:var(--accent);height:3px}
.grafico .zero{stroke:var(--line-strong)}
.grafico .alvo{fill:transparent}
.grafico a:hover .alvo{fill:var(--accent-soft);opacity:.5}
.grafico .eixo{font:11px var(--font);fill:var(--fg-3);text-anchor:middle}
.grafico .eixo.topo{font-size:10px;fill:var(--fg-2)}
.legenda{display:inline-flex;align-items:center;gap:6px 12px;font-size:13px;color:var(--fg-2);flex-wrap:wrap}
.legenda i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:2px;vertical-align:middle}
.tbl.faixas tr.vazio td{color:var(--fg-3)}
.formas{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.formas li{display:grid;grid-template-columns:150px minmax(0,1fr) 56px;align-items:center;gap:10px}
.formas b{text-align:right}
.barra-h{height:10px;border-radius:999px;background:var(--sunken);overflow:hidden}
.barra-h span{display:block;height:100%;background:var(--accent);border-radius:inherit}
@media (max-width:860px){.kpis.seis{grid-template-columns:repeat(2,minmax(0,1fr))}.formas li{grid-template-columns:110px minmax(0,1fr) 48px}}

/* Etapa 6 — equipamentos */
.eq{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.eq span{display:flex;flex-direction:column}
.thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:none;background:var(--sunken)}
.sem-foto{display:grid;place-items:center;color:var(--fg-3)}
.ficha-eq{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:24px;padding:20px;margin-bottom:16px}
.ficha-eq h1{font-size:24px;margin:0 0 8px;letter-spacing:-.02em}
.ficha-eq .dl{margin:16px 0}
.foto-grande .foto{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);display:grid;place-items:center;background:var(--sunken)}
.foto-grande .foto svg.i{width:48px;height:48px}
.foto-form{margin-top:8px}
.foto-form label{cursor:pointer}
.mini-barras{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;height:110px;align-items:end}
.mini-barras span{display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:4px;text-align:center}
.mini-barras i{display:block;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}
.mini-barras b{font-size:11px;font-weight:500;color:var(--fg-3)}
.tend{font-size:13px;font-weight:600;white-space:nowrap}
.tend.sobe{color:var(--ok)}.tend.cai{color:var(--bad)}.tend.estavel{color:var(--fg-3)}
@media (max-width:860px){.ficha-eq{grid-template-columns:minmax(0,1fr)}}

/* Etapa 7 — treino (equipe) */
.divisao{margin-bottom:16px}
.ajuste{display:inline-flex;align-items:center;gap:4px}
.ajuste form{margin:0}
.ajuste .btn{padding:5px 8px;font-variant-numeric:tabular-nums}
.ajuste b{min-width:64px;text-align:center}
.linha-add{border-top:1px solid var(--line);grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}

/* Etapa 7 — apps de celular (aluno e professor) */
.m-app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.m-topo{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--rail);color:var(--rail-active);position:sticky;top:0;z-index:4}
.m-topo b{display:block;font-size:15px}.m-topo small{display:block;font-size:12px;color:var(--rail-fg)}
.m-sair{margin-left:auto}.m-sair button{background:none;border:0;color:var(--rail-fg);padding:8px;cursor:pointer}
.m-corpo{flex:1;padding:16px 16px 96px}
.m-h1{font-size:22px;letter-spacing:-.02em;margin:4px 0 14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.m-h1 span{font-size:14px;font-weight:500;color:var(--fg-3)}
.m-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));z-index:5}
.m-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--fg-3);text-decoration:none;padding:6px 10px;border-radius:8px;min-width:64px}
.m-nav a[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
.m-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;text-decoration:none;color:inherit;box-shadow:var(--shadow)}
.m-card b{display:block;font-size:16px}.m-card span{color:var(--fg-2);font-size:14px}
.m-card.alerta-m{border-color:var(--warn);background:var(--warn-soft)}
.m-sec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.m-sec h2{font-size:15px;margin:0 0 10px}
.m-tarefa{display:grid;gap:8px;padding:10px 0;border-top:1px solid var(--line)}
.m-tarefa:first-of-type{border-top:0}
.m-tarefa b{display:block}
.m-lista,.m-carteira{list-style:none;margin:0;padding:0}
.m-lista li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 0;border-top:1px solid var(--line)}
.m-lista li:first-child{border-top:0}
.m-carteira li a{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;margin-bottom:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:inherit}
.m-carteira .av{width:44px;height:44px;font-size:15px}
.m-carteira b{display:block}
.m-filtros{margin-bottom:12px}
.m-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.m-item:first-of-type{border-top:0}
.m-item b{display:block}
.m-add{display:grid;grid-template-columns:minmax(0,1fr) 52px 70px 56px auto;gap:6px;margin-top:10px}
.m-aval{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.m-aval label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--fg-2)}
.m-aval h2,.m-aval .btn,.m-aval .err{grid-column:1/-1}
.m-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.m-kpis div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.m-kpis b{display:block;font-size:26px;letter-spacing:-.02em}.m-kpis span{font-size:13px;color:var(--fg-2)}
.mini-barras.seis{grid-template-columns:repeat(6,minmax(0,1fr))}

/* Etapa 7 — retenção e mapa */
.f.rfm .dot{width:12px;height:12px}
.f.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.aviso-txt{color:var(--warn)}
.mapa{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;padding:24px;margin-bottom:16px;min-height:200px}
.bolha{border-radius:50%;background:var(--ok-soft);color:var(--ok);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px;border:2px solid var(--ok)}
.bolha b{font-size:22px;line-height:1}.bolha span{font-size:12px;font-weight:600;line-height:1.2}.bolha small{font-size:10px;opacity:.85}
.bolha.oport{background:var(--warn-soft);color:var(--warn);border:2px dashed var(--warn)}
.m-situacao{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--r);margin-bottom:12px}
.m-situacao b{display:flex;align-items:center;gap:8px;font-size:18px}
.m-situacao.em-dia{background:var(--ok-soft);color:var(--ok)}
.m-situacao.vencendo{background:var(--warn-soft);color:var(--warn)}
.m-situacao.vencido{background:var(--bad-soft);color:var(--bad)}
.m-situacao span{color:var(--fg-2)}
.m-situacao .btn{align-self:flex-start;margin-top:6px}
.m-card svg.i{color:var(--accent)}
.m-ex-topo{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center}
.m-ex-topo b{display:block;font-size:16px}
.m-ex-topo .sub{display:flex;align-items:center;gap:4px}
.thumb.grande{width:72px;height:72px;border-radius:10px}
.m-ex details{margin:8px 0 0}
.m-series{display:flex;gap:8px;margin:12px 0}
.m-series span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line-strong);font-weight:700;font-size:14px;color:var(--fg-3)}
.m-series span.feita{background:var(--ok);border-color:var(--ok);color:#fff}
.m-series span.feita svg.i{width:16px;height:16px;stroke-width:3}
.m-registrar{display:grid;grid-template-columns:90px 80px minmax(0,1fr);gap:8px;align-items:end}
.m-registrar label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--fg-2)}
.m-registrar .btn{height:42px}

.outra-acao{margin:18px 0 0;text-align:center;font-size:14px}
.outra-acao a{color:var(--fg-2);font-weight:600}
.outra-acao a:hover{color:var(--accent)}
/* Consulta de alunos (apresentação): busca + filtros numa linha, cabeçalhos ordenáveis. */
.consulta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.consulta .search{max-width:none;flex:2 1 260px}
.consulta select.in{flex:1 1 190px;width:auto;min-width:190px}
th a.ord{color:inherit;text-decoration:none;white-space:nowrap}
th a.ord:hover{color:var(--accent)}
.mc .acoes{justify-content:flex-start;margin-top:4px}
/* Ordenação de tabela pelo título (public/ordenar.js) */
th button.ord{all:unset;cursor:pointer;white-space:nowrap}
th button.ord:hover,th button.ord:focus-visible{color:var(--accent)}
th button.ord:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
th[aria-sort="ascending"] button.ord::after{content:" ▲";font-size:.8em}
th[aria-sort="descending"] button.ord::after{content:" ▼";font-size:.8em}
.tbl td.nw{white-space:nowrap}
.tel-wa{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums}
.tel-wa .i{width:16px;height:16px}
.tel-wa:hover{text-decoration:underline}
.tabela-alunos .tbl td,.tabela-alunos .tbl th{padding-left:10px;padding-right:10px}
.tabela-alunos .acoes .btn{padding:6px 8px}
/* caixa da apresentação: extrato com saldo corrido + fechamento ao lado */
.caixa-grade{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}
.caixa-lado{display:flex;flex-direction:column;gap:12px;min-width:0}
.caixa-lado .kpis.dois{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.tbl .fora{color:var(--fg-3)}
.tbl td.saldo{font-weight:600}.tbl td.saldo.fora{font-weight:400}
.tbl tfoot td{background:var(--sunken);border-top:1px solid var(--line-strong)}
.fecha{margin:0 0 12px}.fecha div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.fecha dt{color:var(--fg-2)}.fecha dd{margin:0;font-weight:700}
@media (max-width:1100px){.caixa-grade{grid-template-columns:minmax(0,1fr)}}

/* botão + e janela de lançamento da apresentação */
.mais{position:relative;margin:0 0 10px 10px}
.mais summary{list-style:none;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:22px;line-height:1;cursor:pointer;font-weight:600}
.mais summary::-webkit-details-marker{display:none}
.mais[open] summary{background:var(--rail-hi)}
.mais-menu{position:absolute;z-index:20;left:0;top:42px;min-width:210px;background:var(--surface);color:var(--fg);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}
.rail .mais-menu a{color:var(--fg);padding:11px 14px;border-radius:0;width:100%;font-weight:500}
.rail .mais-menu a:hover{background:var(--sunken);color:var(--fg)}
.mais-menu b{width:18px;text-align:center;color:var(--fg-3)}
@media (max-width:860px){.mais{display:none}}
.janela{max-width:560px;margin:0 auto 20px;padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.janela h2{margin:0;font-size:18px}
.valor-grande{display:flex;align-items:baseline;gap:8px;border-bottom:3px solid var(--bad);padding-bottom:6px}
.valor-grande span{font-size:24px;font-weight:700;color:var(--bad)}
.valor-grande input{border:0;background:none;font-size:34px;font-weight:700;color:var(--bad);padding:0;width:100%;outline:none;box-shadow:none}
.jan-receita .valor-grande{border-color:var(--ok)}.jan-receita .valor-grande span,.jan-receita .valor-grande input{color:var(--ok)}
.jan-cartao .valor-grande{border-color:var(--warn)}.jan-cartao .valor-grande span,.jan-cartao .valor-grande input{color:var(--warn)}
.jan-transferencia .valor-grande{border-color:#2563eb}.jan-transferencia .valor-grande span,.jan-transferencia .valor-grande input{color:#2563eb}
.jan-receita .cor-tipo{background:var(--ok)}.jan-cartao .cor-tipo{background:var(--warn)}.jan-transferencia .cor-tipo{background:#2563eb}.jan-despesa .cor-tipo{background:var(--bad)}
.janela .linha{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.janela .linha .in{flex:1 1 180px}
.janela .rotulo-linha{min-width:120px;color:var(--fg-2);font-size:14px;font-weight:600}
.chip-dia{border:1px solid var(--line-strong);background:var(--sunken);border-radius:999px;padding:5px 12px;cursor:pointer;font-weight:600}
.chip-dia[aria-pressed=true]{background:var(--bad);color:#fff;border-color:var(--bad)}
.toggle{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.mais-detalhes{border-top:1px dashed var(--line-strong);padding-top:8px}.mais-detalhes summary{cursor:pointer;font-weight:600;color:var(--fg-2);margin-bottom:8px}
.centro-auto{margin:-6px 0 0;padding:6px 10px;background:var(--accent-soft);border-radius:var(--r-sm)}
.janela .actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:4px}

/* cadastro do aluno: foto e anamnese */
.foto-campo{display:flex;align-items:center;gap:14px}
.foto-caixa{cursor:pointer;display:block}
.foto-previa{width:84px;height:84px;border-radius:12px;background:var(--sunken);border:1px dashed var(--line-strong);display:grid;place-items:center;color:var(--fg-3);overflow:hidden}
.foto-previa img{width:100%;height:100%;object-fit:cover}
.av img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.chip-marca{cursor:pointer}
.chip-marca:has(input:checked){background:var(--warn);color:#fff;border-color:var(--warn)}
.anamnese{border-color:var(--warn)}
.anamnese>legend{color:var(--warn)}
.rotulo{display:block;font-size:13px;font-weight:600;color:var(--fg-2);margin-bottom:6px}
.grupo-condicao{margin:6px 0;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px}.grupo-condicao summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--warn);text-transform:uppercase;letter-spacing:.03em}
.cond-lista{margin:0;padding-left:18px}
.chip.on{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}
.desc-ciclos{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:12px}.desc-ciclos .pct{display:flex;align-items:center;gap:6px}.desc-ciclos .in{width:90px}

/* categorias de despesa: mestre-detalhe da apresentação */
.md-grade{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}
.md-esq,.md-dir{display:flex;flex-direction:column;gap:12px;min-width:0}
.md-lista{display:flex;flex-direction:column;margin:0 0 8px;padding:0;list-style:none}
.md-lista .item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--fg)}
.md-lista a.item:hover{background:var(--sunken)}
.md-lista .item.on{background:var(--rail-hi);color:#fff;font-weight:600;border-radius:var(--r-sm)}
.md-lista .item .n{color:inherit;opacity:.75;font-variant-numeric:tabular-nums}
.md-lista .desat{color:var(--fg-3)}
.md-lista .sem-link{color:var(--fg-2)}
.card .add{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600;text-decoration:none;padding:4px 2px}
.md-notas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;color:var(--fg-3);font-size:13px}.md-notas p{margin:0}
@media (max-width:900px){.md-grade{grid-template-columns:minmax(0,1fr)}.md-notas{grid-template-columns:minmax(0,1fr)}}

.matriz.pagar{border-top:3px solid var(--bad)}.matriz.receber{border-top:3px solid var(--ok)}.faixas tr.hoje td{background:var(--warn-soft);font-weight:600}.faixas thead th{font-weight:600}

/* gestão e posição da apresentação */
.kpis.kpis7{grid-template-columns:repeat(7,minmax(0,1fr))}.kpis7 .kpi b{font-size:18px}
.gestao-linha{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;margin-bottom:12px}.gestao-linha .sec{min-width:0}
.pizza{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pizza svg{width:120px;height:120px;transform:rotate(0deg);flex:none}
.pizza ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;flex:1 1 140px}.pizza li{display:flex;align-items:center;gap:8px}.pizza li i{width:10px;height:10px;border-radius:2px;flex:none}.pizza li span{flex:1}
@media (max-width:1100px){.kpis.kpis7{grid-template-columns:repeat(2,minmax(0,1fr))}.gestao-linha{grid-template-columns:minmax(0,1fr)}}

/* retenção da apresentação */
.kpis.rfm6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi.rfm{text-decoration:none;color:inherit;border-top:4px solid var(--line-strong)}.kpi.rfm.em_dia{border-top-color:var(--ok)}.kpi.rfm.vencendo{border-top-color:var(--warn)}.kpi.rfm.vencido{border-top-color:var(--bad)}.kpi.rfm.sem_plano{border-top-color:var(--none)}.kpi.rfm.on{outline:2px solid var(--warn)}
@media (max-width:1100px){.kpis.rfm6{grid-template-columns:repeat(3,minmax(0,1fr))}}
.risco-ficha{border:2px solid var(--warn)}.risco-ficha.vencido{border-color:var(--bad)}.risco-ficha.em_dia{border-color:var(--ok)}
.porque{background:var(--warn-soft);padding:10px 12px;border-radius:var(--r-sm);margin:10px 0}
.fbarras{display:flex;align-items:flex-end;gap:10px;height:110px;padding-top:8px}.fb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;flex:1}.fb-b{width:100%;max-width:56px;background:var(--ok);opacity:.55;border-radius:4px 4px 0 0}.fb-b.cai{background:var(--warn);opacity:1}.fb-n,.fb-m{font-size:12px;color:var(--fg-3)}
.acoes-risco{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.acoes-risco .linha-form{display:flex;gap:8px;flex-wrap:wrap}.acoes-risco .linha-form .in{min-width:240px}

.regua{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.num-passo{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;margin-right:8px}@media (max-width:900px){.regua{grid-template-columns:minmax(0,1fr)}}

.mapa{background:repeating-linear-gradient(135deg,transparent 0 38px,rgba(21,128,61,.05) 38px 40px),var(--accent-soft);border-radius:var(--r)}
.bolha{overflow:hidden;opacity:.92;background:rgba(21,128,61,.28);border:0;color:var(--fg)}.bolha b{color:var(--ok)}.bolha span{max-width:100%;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.bolha.oport{background:rgba(180,83,9,.08);border:2px dashed var(--warn)}.bolha.oport b{color:var(--warn)}
.mapa-legenda{display:flex;gap:16px;flex-wrap:wrap;color:var(--fg-3);font-size:13px;margin:-6px 0 16px}.mapa-legenda i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}

.centros-md{display:grid;grid-template-columns:minmax(280px,350px) minmax(0,1fr);gap:16px;align-items:start}.centros-md .md-esq,.centros-md .md-dir{display:flex;flex-direction:column;gap:12px;min-width:0}
.kpi.fixo{background:#eaf0fb;border-left:4px solid #2563eb}.kpi.variavel{background:var(--warn-soft);border-left:4px solid var(--warn)}
.tbl tr.sel td{background:var(--accent-soft);font-weight:600}.nota-verde{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:12px;color:var(--fg-2);margin:10px 0 0}
@media (max-width:1100px){.centros-md{grid-template-columns:minmax(0,1fr)}}

/* cadastro do aluno em duas colunas e ajustes de leitura */
.form-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.form-col{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (max-width:1100px){.form-2col{grid-template-columns:minmax(0,1fr)}}
.foto-campo{justify-content:flex-start;grid-column:1/-1}
.num{white-space:nowrap}
.tabela-alunos .tbl td:first-child{min-width:190px}.tabela-alunos .tbl td:nth-child(4){min-width:130px}
.caixa-lado .tbl td,.caixa-lado .tbl th{padding-left:8px;padding-right:8px;font-size:13px}

.faixas td:first-child{white-space:nowrap}.faixas td,.faixas th{font-size:13px;padding-left:8px;padding-right:8px}
.centros-md .md-esq .tbl td,.centros-md .md-esq .tbl th{padding-left:8px;padding-right:8px}

/* montagem do treino da apresentação */
.treino-md{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:16px;align-items:start}.treino-md .md-esq,.treino-md .md-dir{display:flex;flex-direction:column;gap:10px;min-width:0}
.divisao-item{display:block;padding:12px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--fg)}.divisao-item b{display:block}.divisao-item small{color:var(--fg-3)}
.divisao-item.on{background:var(--rail-hi);border-color:var(--rail-hi);color:#fff}.divisao-item.on small{color:#cfe2d4}
.divisao-item.nova{border-style:dashed;color:var(--accent);background:transparent}.divisao-item.nova summary{cursor:pointer;font-weight:600}.divisao-item.nova form{margin-top:8px}
.barra-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px}.barra-add select{flex:1 1 240px}.barra-add .num{width:110px}
.professor-form{display:flex;flex-direction:column;gap:6px}
@media (max-width:900px){.treino-md{grid-template-columns:minmax(0,1fr)}}

.ex-form{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px}.ex-foto .foto-ex{width:170px;height:170px;border-radius:var(--r);object-fit:cover;background:var(--sunken);display:grid;place-items:center;color:var(--fg-3);text-align:center;border:1px dashed var(--line-strong)}.ex-foto img.foto-ex{border-style:solid}.add-grupo{margin-top:8px}.add-grupo summary{cursor:pointer;list-style:none}
@media (max-width:900px){.ex-form{grid-template-columns:minmax(0,1fr)}}

.kpis.kpis4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis.kpis4 .kpi b{font-size:22px}.kpis4 .kpi.ok b{color:var(--ok)}.kpis4 .kpi.bad b{color:var(--bad)}
@media (max-width:860px){.kpis.kpis4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.info-caixa{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--fg-2)}.info-caixa p{margin:0}

.acoes-risco{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;align-items:start}.acoes-risco .linha-form{display:flex;gap:8px;flex-wrap:nowrap}.acoes-risco .linha-form .in{flex:1;min-width:0}.acoes-risco>.row{grid-column:1/-1}
@media (max-width:900px){.acoes-risco{grid-template-columns:minmax(0,1fr)}}

.jan-receita .chip-dia[aria-pressed=true]{background:var(--ok);border-color:var(--ok)}.jan-cartao .chip-dia[aria-pressed=true]{background:var(--warn);border-color:var(--warn)}.jan-transferencia .chip-dia[aria-pressed=true]{background:#2563eb;border-color:#2563eb}
.mapa-real{padding:0;overflow:hidden;margin-bottom:12px}#mapa-regiao{height:460px;background:var(--accent-soft)}
.mapa-aviso{margin:-4px 0 12px}
@media (max-width:640px){#mapa-regiao{height:340px}}
.mapa-num{font:700 13px/20px Figtree,system-ui,sans-serif;text-align:center;color:#10231A;text-shadow:0 0 3px #fff,0 0 3px #fff}
.mapa-rot{background:rgba(255,255,255,.85);border:0;box-shadow:none;padding:1px 5px;font:600 11px/1.2 Figtree,system-ui,sans-serif;color:#10231A;text-align:center;white-space:nowrap}
.mapa-rot small{font-weight:500;color:#5b6b61;font-size:10px}.mapa-rot:before{display:none}
.zoom-longe .mapa-rot.menor{display:none}
.dica-desc{margin:-6px 0 6px}
/* Posição: matriz que abre em níveis e fluxo de caixa — visual da referência do dono (fonte do sistema, linhas densas, filete colorido) */
.mx-par,.fluxo-card{font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif}
#matriz{grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:1560px){#matriz{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.matriz{padding:0;overflow:hidden;border-top:0;border-radius:8px}
.mx-tit{margin:0;padding:12px 16px 10px;font-size:16px;font-weight:700;border-bottom:3px solid var(--bad);color:var(--bad)}
.matriz.receber .mx-tit{color:var(--ok);border-bottom-color:var(--ok)}
.arvore{font-size:15px;color:#111827}
.arvore .lin{display:grid;grid-template-columns:minmax(0,1fr) 96px 96px 96px;column-gap:8px;align-items:center;padding:3px 14px;min-height:27px;line-height:1.25}
.arvore .lin .r{text-align:right;font-variant-numeric:tabular-nums}
.arvore .lin.cab{min-height:30px;color:#6b7280;font-size:14.5px;font-weight:500;border:0;background:#fff}
.arvore .mx-corpo{max-height:372px;overflow:auto;scrollbar-width:thin}
.arvore .lin.tot{border-top:2px solid var(--bad);min-height:40px;font-size:16px;font-weight:700;background:#fff}
.matriz.receber .arvore .lin.tot{border-top-color:var(--ok)}
.arvore .c1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arvore .nv1>summary,.arvore .nv1.vazio{min-height:28px;font-size:16px;font-weight:500}
.arvore .nv1 .forte{font-weight:700}
.arvore .qtd{color:#6b7280;font-size:.82em;font-weight:400}
.arvore .sub{color:#6b7280}
.arvore .alarme{font-size:.95em}
.arvore .nv1.hoje>summary,.arvore .nv1.hoje.vazio{background:#fdf3e1}.arvore .nv1.hoje b{font-weight:700}
.arvore summary{cursor:pointer;list-style:none}.arvore summary::-webkit-details-marker{display:none}
.arvore summary:hover{background:#f4f6f8}.arvore .nv1.hoje>summary:hover{background:#fbebcc}
.arvore .sinal{display:inline-block;width:20px;color:#6b7280;font-style:normal;font-weight:400}
.arvore .sinal:before{content:'+'}.arvore details[open]>summary .sinal:before{content:'−'}
.arvore .nv1.vazio .sinal:before{content:'+'}
.arvore .mx-sub{background:#edf0f5;border-top:1px solid #e3e7ee;border-bottom:1px solid #e3e7ee}
.arvore .nv2>summary{padding-left:34px;font-weight:400}
.arvore .nv3>summary{padding-left:54px;color:#6b7785;text-transform:uppercase;font-size:15px}
.arvore .nv3>summary:hover,.arvore .nv2>summary:hover{background:#e6eaf1}
.arvore .nv2 .r{font-weight:400}
.arvore .nv3 .r,.arvore .folha .r{color:#6b7785}
.arvore ul{list-style:none;margin:0;padding:0}
.arvore .folha{padding-left:94px;color:#6b7785;text-transform:none}
.mx-doc{width:16px;height:16px;vertical-align:-3px;margin-right:6px}
.arvore .lin.vazio{color:#6b7280}
.dica-matriz{margin:8px 2px 14px}
/* Fluxo de caixa por dia */
.fluxo-card{padding:14px 16px 10px;border-radius:8px}
.fx-topo{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:6px}
.fx-topo h2{margin:0;font-size:15px;font-weight:700}
.fx-topo .legenda{display:flex;align-items:center;gap:14px;color:#6b7280;font-size:14.5px}
.fx-topo .q{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px}.q.sai{background:#d62828}.q.entra{background:#1a9a6c}
.fx-topo .l-saldo{display:inline-block;width:18px;height:2px;background:#2f64e8;margin-right:6px;vertical-align:3px}
.seg{margin-left:auto;display:flex;gap:2px;background:#f1f2f4;border-radius:8px;padding:2px}
.seg a{padding:4px 12px;border-radius:6px;font-size:14px;color:#6b7280;text-decoration:none}
.seg a.on{background:#111;color:#fff;font-weight:600}
.g-fluxo{width:100%;height:auto;display:block}
.g-fluxo .b-sai{fill:#d62828}.g-fluxo .b-entra{fill:#1a9a6c}
.g-fluxo .g-zebra{fill:#f6f6f6}.g-fluxo .g-hoje{fill:#e8eefc;stroke:#2f64e8;stroke-width:1.4;stroke-dasharray:5 4}
.g-fluxo .l-saldo{fill:none;stroke:#2f64e8;stroke-width:2.2}.g-fluxo .p-saldo{fill:#2f64e8}
.g-fluxo .g-val{font:600 10.5px "Segoe UI",system-ui,sans-serif;text-anchor:middle}.g-val.sai{fill:#d62828}.g-val.entra{fill:#1a9a6c}
.g-fluxo .g-eixo{font:10.5px "Segoe UI",system-ui,sans-serif;fill:#6b7280;text-anchor:middle}.g-eixo.hoje{fill:#2f64e8;font-weight:700;font-size:12px}
.g-fluxo .alvo{fill:transparent}.g-fluxo a:hover .alvo{fill:rgba(47,100,232,.06)}
.fx-nota{margin:4px 0 0;color:#6b7280;font-size:14px}
@media (max-width:640px){.arvore{font-size:14px}.arvore .lin{grid-template-columns:minmax(0,1fr) 96px;padding:3px 10px}.arvore .lin>:nth-child(2),.arvore .lin>:nth-child(3){display:none}
  .arvore .nv2>summary{padding-left:22px}.arvore .nv3>summary{padding-left:34px}.arvore .folha{padding-left:52px}.fx-topo{gap:8px}.seg{margin-left:0}}
.mapa-leg{background:rgba(255,255,255,.94);padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.35;max-width:270px;box-shadow:0 1px 6px rgba(0,0,0,.2);color:#1f2937}
.mapa-leg div+div{margin-top:5px}.mapa-leg i{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-2px}
.mapa-leg .leg-ok{background:rgba(21,128,61,.4);border:2px solid #15803D}.mapa-leg .leg-op{background:rgba(180,83,9,.12);border:2px dashed #B45309}
@media (max-width:640px){.mapa-leg{max-width:200px;font-size:11px}}
.pronto{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}.pronto li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff)}.pronto li b{font-size:13px;color:var(--ok)}.pronto li span{font-size:15px}
.app-acesso h3{margin:14px 0 6px;font-size:15px}.link-novo{background:var(--ok-soft,#e8f5ec);border:1px solid var(--ok);border-radius:10px;padding:12px;margin-bottom:10px}
.m-sugestao{display:flex;flex-direction:column;gap:6px;padding:12px;margin:12px 0;border:1px dashed var(--ok);border-radius:12px;background:var(--ok-soft,#e8f5ec)}.m-sugestao span{font-size:14px;color:var(--fg-2)}.m-sugestao div{display:flex;gap:8px;align-items:center;margin-top:4px}
.m-fs{border:0;padding:0;margin:8px 0}.m-fs legend{font-weight:600;margin-bottom:6px}.m-dois{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mapa-modo{background:#fff;border-radius:8px;box-shadow:0 1px 6px rgba(0,0,0,.25);display:flex;padding:2px;gap:2px}.mapa-modo button{border:0;background:transparent;padding:6px 12px;border-radius:6px;font:600 13px Figtree,system-ui,sans-serif;color:#4b5563;cursor:pointer}.mapa-modo button[aria-pressed=true]{background:#10231A;color:#fff}
.mapa-spot i{display:block;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45)}.mapa-spot.ok i{background:#15803D}.mapa-spot.venc i{background:#B91C1C}
.mapa-spot i:after{content:'';position:absolute;left:7px;top:7px;width:6px;height:6px;border-radius:50%;background:#fff}
.mapa-leg .leg-pin{display:inline-block;width:11px;height:11px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);margin-right:5px}.mapa-leg .leg-pin.ok{background:#15803D}.mapa-leg .leg-pin.venc{background:#B91C1C}.mapa-leg .sub{color:#6b7280;font-size:11px}
.modo-spots .mapa-rot,.modo-spots .mapa-num{display:none}
.kpis.cinco{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1100px){.kpis.cinco{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mapa-spot.sem i{background:#6b7280}
.lembrar{display:flex;gap:10px;align-items:flex-start;margin:4px 0 12px;font-size:14px;line-height:1.35;cursor:pointer}.lembrar input{margin-top:3px;width:18px;height:18px;accent-color:var(--ok)}.lembrar small{display:block;color:var(--fg-3);font-size:12px;margin-top:2px}
/* Cadastros: página com os quatro grupos e abas em dois níveis */
.abas.grupos{margin-bottom:0;border-bottom:0}.abas.grupos a{font-weight:600}
.abas.grupos+.abas{margin-top:-4px;font-size:14px}
.grupo-cad{margin:0 0 22px}.grupo-cad h2{font-size:15px;margin:0 0 10px;color:var(--fg-2);letter-spacing:.02em}
.cartoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cartao{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none}
.cartao:hover{border-color:var(--ok);box-shadow:0 2px 10px rgba(21,128,61,.12)}.cartao b{font-size:15px}.cartao span{font-size:13px;color:var(--fg-3);line-height:1.35}
/* Menu da esquerda: Cadastros como ramo que abre os grupos e as telas */
.so-cel{display:none}
.rail details.ramo{display:flex;flex-direction:column}
.rail details.ramo>summary{list-style:none;display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:500;color:inherit}
.rail details.ramo>summary::-webkit-details-marker{display:none}
.rail details.ramo>summary:hover{background:var(--rail-hi);color:var(--rail-active)}
.rail details.ramo>summary[data-aqui]{background:var(--rail-hi);color:var(--rail-active);font-weight:600;border-radius:8px 999px 999px 8px}
.rail details.ramo>summary b{font-weight:inherit}.rail details.ramo>summary .em{font-size:17px;width:22px;text-align:center;flex:none}
.rail .seta{margin-left:auto;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s;opacity:.7}
.rail details.ramo[open]>summary .seta{transform:rotate(45deg)}
.rail a.sub{padding:6px 10px 6px 55px;font-size:13.5px;font-weight:500;border-radius:8px;color:inherit}
.rail a.sub[aria-current="page"]{background:var(--rail-hi);color:var(--rail-active);font-weight:600}
@media (max-width:860px){.so-cel{display:contents}.so-pc{display:none!important}}
/* Ramos do menu: grupos recolhíveis dentro de Cadastros e link "Ver todos" */
.rail .ramo-g{display:flex;flex-direction:column}
.rail .ramo-g>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:7px 10px 7px 43px;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:#8AA593;font-weight:600;border-radius:8px}
.rail .ramo-g>summary::-webkit-details-marker{display:none}.rail .ramo-g>summary:hover{color:var(--rail-active);background:var(--rail-hi)}
.rail .ramo-g[open]>summary{color:#CFE3D6}
.rail .seta2{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.7;margin-left:6px}.rail .ramo-g[open]>summary .seta2{transform:rotate(45deg)}
.rail a.todos{padding:7px 10px 7px 43px;font-size:12.5px;color:#8AA593;font-weight:500;border-radius:8px}.rail a.todos:hover{color:var(--rail-active);background:var(--rail-hi)}
.busca-cad{padding:10px 14px;margin-bottom:12px}
