:root{
  --bg:#040a1c;--surface:#0a142e;--surface-2:#0d1a3a;--border:rgba(148,180,255,.16);--border-strong:rgba(148,180,255,.32);
  --primary:#2f7bff;--primary-dark:#1b4fd8;--primary-soft:rgba(47,123,255,.12);--accent:#5fd0ff;
  --text:#eaf1ff;--muted:#97a8cc;--muted-2:#6b7ca3;
  --ok:#34d399;--warn:#fbbf24;--bad:#f87171;--roxo:#c4b5fd;
  --grad:linear-gradient(100deg,#2f7bff 0%,#5fd0ff 100%);
  --radius:.75rem;--font-body:'Archivo',system-ui,sans-serif;--font-display:'Anton',Impact,sans-serif;
  --shadow:0 1px 3px rgb(0 0 0/.5),0 10px 30px -12px rgb(47 123 255/.25);
  --shadow-lift:0 18px 50px -12px rgb(47 123 255/.45);
  --sidebar:248px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 40% at 20% -10%,rgba(47,123,255,.22),transparent 60%),radial-gradient(40% 30% at 90% 110%,rgba(95,208,255,.10),transparent 60%)}
a{color:var(--accent);text-decoration:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--text);background:rgba(4,10,28,.7);border:1px solid var(--border-strong);border-radius:.6rem;padding:.65rem .8rem;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
input:disabled,select:disabled{opacity:.55}
select option{background:#0a142e}
textarea{resize:vertical;min-height:90px}
label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.35rem;letter-spacing:.02em;text-transform:uppercase}
[hidden]{display:none!important}
h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border-strong);background:rgba(10,20,46,.8);color:var(--text);font-weight:600;font-size:.9rem;padding:.6rem 1rem;border-radius:.6rem;transition:.15s;white-space:nowrap}
.btn:hover{border-color:var(--accent);background:var(--primary-soft)}
.btn.primary{background:var(--grad);color:#04122e;border:none;box-shadow:0 8px 24px -10px rgba(47,123,255,.7)}
.btn.primary:hover{filter:brightness(1.08);box-shadow:var(--shadow-lift)}
.btn.ok{color:var(--ok);border-color:rgba(52,211,153,.4)}
.btn.ok:hover{background:rgba(52,211,153,.12)}
.btn.danger{color:var(--bad);border-color:rgba(248,113,113,.35)}
.btn.danger:hover{background:rgba(248,113,113,.12);border-color:var(--bad)}
.btn.sm{padding:.4rem .7rem;font-size:.8rem}
.btn.xs{padding:.25rem .5rem;font-size:.75rem}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--text);background:var(--primary-soft);border-color:transparent}
.btn svg{width:16px;height:16px;flex:none}
.btn:disabled{opacity:.5;cursor:wait}
.card{background:linear-gradient(180deg,rgba(13,26,58,.85),rgba(10,20,46,.85));border:1px solid var(--border);border-radius:1rem;padding:1.25rem;box-shadow:var(--shadow)}
.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border-strong);color:var(--muted);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ativo,.badge.assinado,.badge.aprovado,.badge.pago{color:var(--ok);border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.badge.prospecto,.badge.proposta,.badge.pendente,.badge.medio{color:var(--warn);border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.08)}
.badge.fechado_verbal,.badge.documentacao,.badge.enviado{color:#fdba74;border-color:rgba(253,186,116,.4);background:rgba(253,186,116,.08)}
.badge.inativo,.badge.cancelado,.badge.dispensado,.badge.baixo{color:var(--muted);background:rgba(148,180,255,.06)}
.badge.show,.badge.valor_cheio{color:var(--accent);border-color:rgba(95,208,255,.4);background:rgba(95,208,255,.08)}
.badge.servico,.badge.estrutura_prefeitura,.badge.repasse{color:var(--roxo);border-color:rgba(196,181,253,.4);background:rgba(196,181,253,.08)}
.badge.realizado{color:#7dd3fc;border-color:rgba(125,211,252,.4);background:rgba(125,211,252,.08)}
.badge.alto,.badge.vencida{color:var(--bad);border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.08)}
.code{font-family:ui-monospace,Menlo,monospace;font-size:.82rem;color:var(--accent);background:var(--primary-soft);padding:.15rem .45rem;border-radius:.35rem;letter-spacing:.04em}
.muted{color:var(--muted)}
.small{font-size:.82rem}
.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.empty{padding:2.5rem 1rem;text-align:center;color:var(--muted)}
.empty strong{display:block;font-family:var(--font-display);font-size:1.4rem;color:var(--text);letter-spacing:.03em;margin-bottom:.35rem;font-weight:400}
.num{text-align:right;font-variant-numeric:tabular-nums}
.pos{color:var(--ok)}.neg{color:var(--bad)}

/* login */
#login{position:relative;z-index:1;min-height:100%;display:grid;place-items:center;padding:1.5rem}
#login .card{width:100%;max-width:400px;padding:2rem;text-align:center}
#login img{width:150px;margin:0 auto 1.25rem;display:block}
#login h1{font-size:2rem;margin-bottom:.25rem}
#login p{margin:0 0 1.5rem;color:var(--muted)}
#login form{text-align:left;display:grid;gap:1rem}
#login .btn{width:100%;justify-content:center;padding:.8rem;font-size:1rem;margin-top:.25rem}
.msg-erro{color:var(--bad);font-size:.85rem;margin:0;min-height:1.2em}

/* app */
#app{position:relative;z-index:1;display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}
aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:rgba(6,14,36,.85);backdrop-filter:blur(10px);border-right:1px solid var(--border);padding:1.5rem 1rem;overflow-y:auto}
aside .logo{display:block;width:118px;margin:0 auto 1.5rem}
aside nav{display:grid;gap:.25rem}
aside nav .grupo{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700;padding:.9rem .9rem .3rem}
aside nav a{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;border-radius:.7rem;color:var(--muted);font-weight:600;transition:.15s;border:1px solid transparent;font-size:.92rem}
aside nav a svg{width:19px;height:19px;flex:none}
aside nav a:hover{color:var(--text);background:rgba(47,123,255,.08)}
aside nav a.ativo{color:var(--text);background:var(--primary-soft);border-color:rgba(47,123,255,.35)}
aside nav a.ativo svg{color:var(--accent)}
aside nav a .cont{margin-left:auto;background:var(--bad);color:#fff;font-size:.68rem;font-weight:700;padding:.05rem .45rem;border-radius:999px}
aside .rodape{margin-top:auto;border-top:1px solid var(--border);padding-top:1rem}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--grad);color:#04122e;font-family:var(--font-display);font-size:1.1rem;display:grid;place-items:center;flex:none}
aside .rodape .nome{font-weight:600;font-size:.9rem;line-height:1.2}
aside .rodape .cargo{font-size:.75rem;color:var(--muted)}
main{padding:2rem 2.25rem 4rem;min-width:0}
.topo{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}
.topo h1{font-size:2.4rem}
.topo .sub{color:var(--muted);margin:.25rem 0 0}
.acoes{display:flex;gap:.6rem;flex-wrap:wrap}

/* tiles / grids */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1rem;margin-bottom:1.25rem}
.tile{padding:1.1rem 1.25rem}
.tile .rotulo{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tile .valor{font-family:var(--font-display);font-size:2.3rem;line-height:1.05;margin:.35rem 0 .15rem}
.tile .valor.moeda{font-size:1.8rem}
.tile .extra{font-size:.8rem;color:var(--muted)}
.tile.alerta{border-color:rgba(248,113,113,.45)}
.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.card h3{font-size:1.15rem;letter-spacing:.04em;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.card h3 .muted,.card h3 a.small{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:500}
.chart-wrap{position:relative;height:260px}
.chart-wrap.donut{height:220px}
.lista{display:grid;gap:.5rem}
.lista .item{display:flex;align-items:center;gap:.75rem;padding:.6rem .7rem;border-radius:.6rem;background:rgba(4,10,28,.45);border:1px solid var(--border);color:inherit}
.lista .item .info{flex:1;min-width:0}
.lista .item .info .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista .item .info .s{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista .item .v{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.02em;color:var(--accent)}
.rank{width:26px;height:26px;border-radius:.4rem;background:var(--primary-soft);color:var(--accent);font-family:var(--font-display);display:grid;place-items:center;font-size:.9rem;flex:none}

/* tabelas */
.tabela-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:1rem;background:rgba(10,20,46,.6);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;min-width:720px}
table.compacta{min-width:0}
th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap;font-weight:700}
td{padding:.8rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
tbody tr{transition:background .12s}
tbody tr.clicavel{cursor:pointer}
tbody tr.clicavel:hover{background:rgba(47,123,255,.08)}
tbody tr:last-child td{border-bottom:none}
tbody tr.pago td{opacity:.7}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td .nome{font-weight:600}
td .sub{font-size:.78rem;color:var(--muted)}
tfoot td{font-weight:700;border-top:1px solid var(--border-strong);background:rgba(4,10,28,.4)}
.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}
.toolbar input,.toolbar select{width:auto;min-width:180px}
.toolbar .busca{flex:1;min-width:220px;position:relative}
.toolbar .busca input{width:100%;padding-left:2.3rem}
.toolbar .busca svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted)}
.chips{display:flex;gap:.4rem;flex-wrap:wrap}
.chip{border:1px solid var(--border-strong);background:transparent;color:var(--muted);border-radius:999px;padding:.35rem .8rem;font-size:.8rem;font-weight:600;transition:.15s}
.chip:hover{color:var(--text);border-color:var(--accent)}
.chip.ativo{background:var(--primary-soft);border-color:var(--primary);color:var(--text)}

/* logs */
.log-lista{display:grid;gap:.6rem}
.log{display:flex;gap:.9rem;padding:.9rem 1rem;align-items:flex-start}
.log .ico{width:38px;height:38px;border-radius:.6rem;display:grid;place-items:center;flex:none;background:var(--primary-soft);color:var(--accent)}
.log .ico svg{width:18px;height:18px}
.log .ico.contrato{background:rgba(52,211,153,.12);color:var(--ok)}
.log .ico.mensagem{background:rgba(95,208,255,.12);color:var(--accent)}
.log .ico.informacao{background:rgba(251,191,36,.12);color:var(--warn)}
.log .ico.atendimento{background:rgba(196,181,253,.12);color:var(--roxo)}
.log .ico.cliente{background:rgba(47,123,255,.15);color:#8fb5ff}
.log .ico.sistema{background:rgba(148,180,255,.1);color:var(--muted)}
.log .ico.financeiro{background:rgba(52,211,153,.12);color:var(--ok)}
.log .ico.documento{background:rgba(253,186,116,.12);color:#fdba74}
.log .ico.agenda{background:rgba(125,211,252,.12);color:#7dd3fc}
.log .corpo{flex:1;min-width:0}
.log .texto{white-space:pre-wrap;word-break:break-word}
.log .meta{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-top:.3rem;align-items:center}
.log .meta a{font-weight:600}
.log .del{opacity:0;transition:.15s}
.log:hover .del{opacity:1}
.cadeado{color:var(--muted-2);display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem}
.cadeado svg{width:12px;height:12px}

/* detalhe */
.voltar{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-weight:600;font-size:.85rem;margin-bottom:.75rem}
.voltar:hover{color:var(--accent)}
.voltar svg{width:16px;height:16px}
.cabecalho{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:flex-start;margin-bottom:1.5rem}
.cabecalho h1{font-size:2.2rem;margin:.35rem 0}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.info-grid .campo .k{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.info-grid .campo .v{font-weight:500;margin-top:.15rem;word-break:break-word}
.contrato{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1rem;align-items:start}
.contrato .titulo{font-weight:700;font-size:1.02rem}
.contrato .linha{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:.35rem;font-size:.85rem;color:var(--muted)}
.contrato .valor{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);text-align:right;letter-spacing:.02em}
.contrato .pdf{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end;margin-top:.5rem}
.pdf-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--ok);background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.35);padding:.35rem .6rem;border-radius:.5rem;max-width:260px}
.pdf-tag span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdf-tag svg{width:14px;height:14px;flex:none}

/* pipeline stepper */
.stepper{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1.25rem}
.step{flex:1;min-width:120px;padding:.6rem .8rem;border-radius:.6rem;border:1px solid var(--border);background:rgba(4,10,28,.4);color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}
.step .n{width:22px;height:22px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font-size:.72rem;flex:none}
.step.feito{color:var(--ok);border-color:rgba(52,211,153,.35)}
.step.feito .n{background:var(--ok);color:#04122e;border-color:var(--ok)}
.step.atual{color:var(--text);border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px rgba(47,123,255,.15)}
.step.atual .n{background:var(--grad);color:#04122e;border:none}
.step.cancelado{color:var(--bad);border-color:rgba(248,113,113,.4)}

/* agenda */
.cal-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.cal-nav h2{font-size:1.6rem;min-width:220px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}
.cal .dow{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;padding:.3rem 0;font-weight:700}
.cal .dia{min-height:96px;border:1px solid var(--border);border-radius:.6rem;background:rgba(4,10,28,.4);padding:.35rem .4rem;display:flex;flex-direction:column;gap:.25rem}
.cal .dia.fora{opacity:.35}
.cal .dia.hoje{border-color:var(--accent)}
.cal .dia .d{font-size:.78rem;color:var(--muted);font-weight:700}
.cal .ev{display:block;font-size:.72rem;line-height:1.25;padding:.25rem .4rem;border-radius:.35rem;color:#04122e;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid transparent}
.cal .ev.proposta{background:rgba(148,180,255,.25);color:var(--text);border-left-color:var(--muted)}
.cal .ev.fechado_verbal,.cal .ev.documentacao{background:rgba(251,191,36,.85)}
.cal .ev.assinado{background:rgba(52,211,153,.9)}
.cal .ev.realizado{background:rgba(125,211,252,.85)}
.cal .ev.conflito{outline:2px solid var(--bad)}
.legenda{display:flex;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-top:.75rem}
.legenda span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.legenda .l-pre::before{background:rgba(251,191,36,.85)}.legenda .l-fech::before{background:rgba(52,211,153,.9)}.legenda .l-real::before{background:rgba(125,211,252,.85)}.legenda .l-prop::before{background:rgba(148,180,255,.35)}

/* alertas */
.alerta{display:flex;gap:.9rem;align-items:flex-start;padding:.9rem 1rem;border-left:3px solid var(--muted)}
.alerta.alto{border-left-color:var(--bad)}.alerta.medio{border-left-color:var(--warn)}.alerta.baixo{border-left-color:var(--accent)}
.alerta .t{font-weight:700}.alerta .s{font-size:.82rem;color:var(--muted);margin-top:.15rem}

/* modal */
.overlay{position:fixed;inset:0;z-index:50;background:rgba(2,6,18,.7);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;overflow-y:auto}
.modal{width:100%;max-width:680px;background:linear-gradient(180deg,#0e1b3f,#0a142e);border:1px solid var(--border-strong);border-radius:1.1rem;box-shadow:var(--shadow-lift);padding:1.5rem;max-height:calc(100vh - 2rem);overflow-y:auto}
.modal.pequeno{max-width:440px}
.modal h2{font-size:1.6rem;margin-bottom:1.1rem}
.modal .campos{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}
.modal .campos .full{grid-column:1/-1}
.modal .pe{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.4rem}
.modal .secao{grid-column:1/-1;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;border-top:1px solid var(--border);padding-top:.8rem;margin-top:.2rem}
.arquivo{border:1px dashed var(--border-strong);border-radius:.6rem;padding:.9rem;text-align:center;color:var(--muted);font-size:.85rem;cursor:pointer;transition:.15s;display:block}
.arquivo:hover{border-color:var(--accent);color:var(--text)}
.arquivo input{display:none}
.linhas{display:grid;gap:.5rem}
.linhas .l{display:grid;grid-template-columns:1fr 2fr 1fr auto;gap:.5rem;align-items:center}
.linhas .l.p{grid-template-columns:90px 1fr 1fr auto}

/* toast */
#toasts{position:fixed;right:1.25rem;bottom:1.25rem;z-index:100;display:grid;gap:.5rem}
.toast{background:#0e1b3f;border:1px solid var(--border-strong);border-left:3px solid var(--accent);padding:.75rem 1rem;border-radius:.6rem;box-shadow:var(--shadow-lift);font-size:.9rem;animation:sobe .2s ease-out;max-width:340px}
.toast.erro{border-left-color:var(--bad)}
.toast.ok{border-left-color:var(--ok)}
@keyframes sobe{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.carregando{opacity:.5;pointer-events:none}

@media (max-width:1100px){.grid-2,.grid-2b,.grid-3{grid-template-columns:1fr}}
@media (max-width:820px){
  #app{grid-template-columns:1fr}
  aside{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;align-items:center;padding:.4rem .5rem;border-right:none;border-top:1px solid var(--border);z-index:40;background:rgba(6,14,36,.96);overflow-x:auto}
  aside .logo{display:none}
  aside nav{display:flex;flex:1;gap:.15rem}
  aside nav .grupo{display:none}
  aside nav a{flex:1;flex-direction:column;gap:.15rem;font-size:.62rem;padding:.4rem .2rem;text-align:center;min-width:56px}
  aside nav a .cont{margin:0;position:absolute;transform:translate(14px,-8px)}
  aside .rodape{margin:0;border:none;padding:0 0 0 .4rem}
  aside .rodape .nome,aside .rodape .cargo{display:none}
  main{padding:1.25rem 1rem 6rem}
  .topo h1{font-size:1.9rem}
  .modal .campos{grid-template-columns:1fr}
  .contrato{grid-template-columns:1fr}
  .contrato .valor,.contrato .pdf{text-align:left;justify-content:flex-start}
  .cal .dia{min-height:60px}
  .cal .ev{font-size:.6rem;padding:.15rem .25rem}
  .linhas .l,.linhas .l.p{grid-template-columns:1fr 1fr}
}

/* visão geral (estilo Conta Azul) */
.grid-2>*,.grid-2b>*,.grid-3>*,.ca-grid>*,.ca-bloco>*{min-width:0}
.ca-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.ca-cab{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}
.ca-cab h3{font-size:1.15rem;letter-spacing:.04em}
.ca-cartoes{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.6rem}
.card.venc{padding:.8rem .9rem;text-align:center}
.card.venc .rot{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.card.venc .val{font-family:var(--font-display);font-size:1.45rem;margin:.25rem 0 .1rem;letter-spacing:.02em}
.card.venc .qtd{font-size:.72rem;color:var(--muted-2)}
.card.venc.ruim{border-color:rgba(248,113,113,.45)}.card.venc.ruim .val{color:var(--bad)}
.card.venc.atencao{border-color:rgba(251,191,36,.45)}.card.venc.atencao .val{color:var(--warn)}
.card.venc.bom .val{color:var(--ok)}
table.aberto td{padding:.55rem .5rem}
.warn{color:var(--warn)}
.prov{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;font-size:.8rem;color:var(--muted);border-top:1px solid var(--border);margin-top:.5rem;padding:.6rem .5rem 0}
.prov strong{color:var(--text);text-align:right}
.saldo{background:rgba(4,10,28,.45);border:1px solid var(--border);border-radius:.7rem;padding:.8rem 1rem}
.saldo .rot{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.saldo .val{font-family:var(--font-display);font-size:2rem;color:var(--accent);margin:.2rem 0}
body.ocultar .moeda,body.ocultar .valor,body.ocultar .v,body.ocultar td.num,body.ocultar .val{filter:blur(7px);user-select:none}
@media (max-width:1100px){.ca-grid{grid-template-columns:1fr}.grid-3[style]{grid-template-columns:1fr!important}}
@media (max-width:820px){.ca-cartoes{grid-template-columns:1fr 1fr 1fr;gap:.4rem}.card.venc .val{font-size:1.1rem}}

.card.alerta{align-items:center}

.custos-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1rem 0}.custos-resumo .card{padding:1.2rem}.audit-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}#filtros-custos{align-items:end;gap:1rem}#filtros-custos>div{flex:1;min-width:160px}

/* Planejamento do evento: hierarquia e espaçamento locais. */
.event-plan{margin:1rem 0;padding:1.5rem;min-width:0}
.event-plan h2,.event-plan h3{font-family:var(--font-body, 'Archivo',sans-serif);text-transform:none;letter-spacing:-.02em}
.event-plan>h2{font-size:1.2rem;font-weight:700;margin-bottom:.6rem}
.event-plan>p{line-height:1.65;font-size:.85rem}
.event-plan .custos-resumo{gap:.75rem;margin:1.25rem 0}
.event-plan .custos-resumo>div{padding:1rem;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018)}
.event-plan .custos-resumo h3{margin:.55rem 0 0;font-size:1.15rem;font-weight:600;line-height:1.3}
.forecast-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.forecast-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.forecast-eyebrow{display:block;color:var(--muted);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-bottom:.45rem}
.event-plan .forecast-heading h3{display:flex;justify-content:flex-start;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:600;margin:0}
.forecast-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:7px;background:rgba(73,168,255,.1);color:#82caff;font-size:.75rem;letter-spacing:0}
.forecast-heading p{margin:.4rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.5}
.event-plan .forecast-settings{font-size:.78rem;font-weight:500;padding:.55rem .8rem;background:transparent;border-color:var(--border);color:var(--muted);box-shadow:none}
.forecast-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1.15rem 0}
.forecast-actions .btn{font-size:.8rem;font-weight:600;padding:.65rem .9rem;border-radius:9px;min-height:40px}
.forecast-actions .btn.primary{background:#3698f5;color:#061326;box-shadow:none}
.forecast-actions .btn.primary:hover{background:#65b4ff}
.forecast-actions .btn svg{width:16px;height:16px}
.forecast-hint{margin-left:auto;font-size:.73rem;color:var(--muted)}
.forecast-empty{display:flex;align-items:center;gap:1rem;padding:1.3rem;border:1px dashed #2d4163;border-radius:12px;background:rgba(13,27,50,.35)}
.forecast-empty-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:11px;background:rgba(68,151,238,.09);color:#85b7e8}
.forecast-empty-icon svg{width:21px;height:21px}
.forecast-empty strong{font-size:.85rem;font-weight:600}
.forecast-empty p{margin:.35rem 0 0;color:var(--muted);font-size:.79rem;line-height:1.6}
.forecast-note{display:flex;align-items:flex-start;gap:.55rem;margin-top:1rem;color:var(--muted);font-size:.72rem;line-height:1.6}
.forecast-note p{margin:0}
.forecast-note-dot{width:5px;height:5px;flex-shrink:0;margin-top:.45rem;border-radius:50%;background:#7591ad}
@media(max-width:640px){.event-plan{padding:1rem}.forecast-heading{align-items:flex-start}.forecast-hint{margin-left:0;width:100%}.forecast-actions .btn{flex:1 1 100%;justify-content:center}.forecast-empty{padding:1rem;align-items:flex-start}.event-plan .custos-resumo{grid-template-columns:repeat(2,minmax(0,1fr))}.event-plan .custos-resumo>div{padding:.75rem}.event-plan .custos-resumo h3{font-size:1rem}}
/* Operação financeira: linguagem simples e ações por compromisso. */
.overview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}
.overview-metric{display:flex;flex-direction:column;gap:.7rem;padding:1.35rem}
.overview-metric>span{font-size:.85rem;color:var(--muted)}.overview-metric>strong{font-size:1.9rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.overview-metric small{font-size:.73rem;color:var(--muted);line-height:1.5}
.overview-metric.income>strong{color:#68deb4}.overview-metric.balance{background:linear-gradient(135deg,#122c50,#101b37);border-color:#2e527d}
.overview-attention{display:flex;flex-wrap:wrap;gap:1.3rem;align-items:center;padding:1rem 1.2rem;border:1px solid var(--border);border-radius:12px;font-size:.8rem;color:var(--muted);margin-bottom:1.25rem}.overview-attention a{margin-left:auto}
.overview-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}.overview-columns>*{min-width:0}
.overview-section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.6rem}.overview-section-heading h2{font-family:Archivo,sans-serif;font-size:1.05rem;letter-spacing:0;text-transform:none;margin:0}.overview-section-heading>strong{font-size:1.25rem}
.overview-list,.overview-events{padding:1.3rem}.bill-row{display:flex;gap:.8rem;align-items:center;padding:1rem 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text)}.bill-row:first-of-type{margin-top:1rem}.bill-row>div:first-child{flex:1;min-width:0}.bill-row strong{font-size:.85rem;display:block}.bill-row span{display:block;font-size:.72rem;color:var(--muted);margin-top:.3rem;line-height:1.5}.bill-amount{text-align:right;flex-shrink:0}.bill-row:hover,.overview-event:hover{background:rgba(83,161,249,.04)}
.overview-empty{padding:1.8rem .5rem;color:var(--muted);font-size:.82rem;text-align:center}.overview-events{margin-bottom:1.3rem}.overview-event{display:flex;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text);font-size:.8rem}.overview-event>div{flex:1}.overview-event>div strong{display:block;font-size:.9rem}.overview-event>div span{display:block;color:var(--muted);margin-top:.35rem}.overview-event>span strong{display:block;margin-top:.35rem}.payment-balance{display:flex;flex-wrap:wrap;gap:1.25rem;background:rgba(90,166,251,.06);padding:1rem;border-radius:10px;margin:1rem 0}.payment-balance span{font-size:.8rem;color:var(--muted)}.payment-balance strong{display:block;color:var(--text);margin-top:.3rem}.existing-docs{padding:1rem;border:1px solid var(--border);border-radius:10px;margin-top:1rem}.existing-docs label{display:flex;gap:.5rem;align-items:center;margin:.5rem 0}.existing-docs input{width:auto}.payment-entry{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}#save-template{margin-top:1.5rem}
@media(max-width:850px){.overview-columns{grid-template-columns:1fr}.overview-metric>strong{font-size:1.5rem}.overview-event{flex-wrap:wrap}.overview-event>div{flex-basis:65%}}
@media(max-width:600px){.overview-metrics{grid-template-columns:1fr}.overview-metric{padding:1rem}.overview-attention{gap:.7rem}.overview-attention a{margin-left:0}.overview-section-heading{flex-wrap:wrap}.bill-row{flex-wrap:wrap}.bill-amount{max-width:45%}.payment-entry{flex-wrap:wrap}}
.detail-filters{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}.detail-filters>div{min-width:180px;flex:1}.detail-filters label{display:block;margin-bottom:.4rem}
.closing-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem;margin:1rem 0;border-color:#304c70}.closing-panel h2{font-family:Archivo,sans-serif;font-size:1.05rem;letter-spacing:0;text-transform:none;margin:.3rem 0}.closing-panel p{font-size:.8rem;line-height:1.6;color:var(--muted);margin:.4rem 0 0}.closing-panel.is-closed{border-color:#307865;background:rgba(33,112,85,.1)}.closing-panel .acoes{flex-shrink:0}.closing-issues{padding:1rem;background:rgba(251,191,36,.06);border:1px solid rgba(251,191,36,.2);border-radius:10px;margin:1rem 0;font-size:.85rem}.closing-issues ul{padding-left:1.25rem;line-height:1.8;margin:.7rem 0 0}.closure-confirm{display:flex;align-items:flex-start;gap:.65rem;text-transform:none!important;line-height:1.6;margin-top:1rem;font-size:.8rem!important;letter-spacing:0!important}.closure-confirm input{width:auto;margin-top:.25rem}.closing-version{padding:1rem 0;border-bottom:1px solid var(--border)}@media(max-width:850px){.closing-panel{flex-direction:column;align-items:flex-start}.closing-panel .acoes{flex-wrap:wrap}}

/* Identificação discreta do ambiente financeiro; não intercepta interações. */
.test-watermark{position:fixed;right:1.5rem;bottom:1rem;z-index:2;pointer-events:none;user-select:none;color:rgba(155,180,211,.55);font-family:Archivo,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.08em;line-height:1.5;white-space:nowrap}
@media(max-width:820px){.test-watermark{right:1rem;bottom:calc(5.5rem + env(safe-area-inset-bottom,0px));font-size:.65rem}}
@media print{.test-watermark{display:none}}

/* Modelos e integração da empresa */
.model-form{padding:1.4rem;margin-bottom:1rem;min-width:0}.model-form h3{margin:0 0 .75rem}.model-form input:not([type=checkbox]),.model-form select,.model-form textarea{width:100%;box-sizing:border-box}.model-form label{display:block;margin:.75rem 0 .35rem}.model-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.model-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.model-check{display:flex!important;align-items:flex-start;gap:.6rem}.model-check input{width:auto!important;margin-top:.25rem}.model-extra{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;padding:.75rem 0;border-bottom:1px solid #253453}.model-notice{padding:1rem;background:#102542;border-radius:12px}.model-notice pre{white-space:pre-wrap;max-height:320px;overflow:auto;font:inherit}.model-tokens{display:grid;gap:.5rem;padding:.75rem 0}.model-settings li{margin:.7rem 0}.model-list article{display:flex;justify-content:space-between;align-items:center;gap:1rem}.model-form details{margin-top:.75rem}.model-form summary{cursor:pointer;color:#54c8f3}@media(max-width:800px){.model-settings{grid-template-columns:1fr}.model-extra{grid-template-columns:1fr}.model-list article{align-items:flex-start;flex-direction:column}}

.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem}.catalog-image{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:1rem}.artist-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;min-width:640px}.calendar-day{min-height:100px;padding:.5rem;border:1px solid #263958;border-radius:9px;background:#0b1529}.calendar-today{border-color:#4bbcff}.calendar-event,.calendar-block{display:block;font-size:.75rem;background:#163556;color:#c5e7ff;padding:.35rem;border-radius:6px;margin-top:.3rem;overflow-wrap:anywhere}.calendar-block{background:#443024;color:#ffce9a}.calendar-event small,.calendar-block small{display:block;margin-top:.3rem;color:inherit}.calendar-weekday{text-align:center;font-size:.8rem}.model-form:has(.artist-calendar){overflow:auto}.task-board{display:flex;align-items:flex-start;overflow-x:auto;gap:1rem;max-width:100%;padding-bottom:1rem}.task-column{flex:0 0 280px;max-width:280px;min-height:220px}.task-column.drag-over{outline:2px solid #52c9f9}.task-card.dragging{opacity:.4}.task-card{cursor:grab}.task-card:active{cursor:grabbing}

/* Monthly artist filters remain readable on narrow screens. */
#agenda-filter .campos{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:1rem}#agenda-filter input[type=month]{color-scheme:dark}#agenda-filter .acoes{flex-wrap:wrap}@media(max-width:640px){#agenda-filter .campos{grid-template-columns:minmax(0,1fr)}}

/* Status de análise de contratos. */
.model-loading{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:16px 0;background:rgba(47,123,255,.1);border:1px solid var(--border);border-radius:12px}.model-loading strong{display:block;font-size:.9rem}.model-loading div>span{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}.model-spinner{width:22px;height:22px;flex:0 0 22px;border:2px solid rgba(95,208,255,.2);border-top-color:var(--accent);border-radius:50%;animation:model-spin .8s linear infinite}@keyframes model-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.model-spinner{animation:none;border-style:dotted}}
