/* ==========================================================================
   Sistema de design — tema claro moderno (índigo → violeta)
   Primária índigo #6366f1. Verde reservado a "sucesso".
   As variáveis --green* são a cor primária do sistema.
   ========================================================================== */
:root{
  /* Cor primária: --green e --accent2 são sobrescritos por provedor no base.html.
     Os tons abaixo derivam automaticamente via color-mix. */
  --green:#6366f1; --accent2:#8b5cf6;
  --green-d:color-mix(in srgb, var(--green) 84%, #000);
  --green-l:color-mix(in srgb, var(--green) 90%, #000);
  --green-soft:color-mix(in srgb, var(--green) 11%, transparent);
  --green-ring:color-mix(in srgb, var(--green) 28%, transparent);
  --grad:linear-gradient(135deg, var(--green) 0%, var(--accent2) 100%);
  --grad-soft:linear-gradient(135deg, color-mix(in srgb, var(--green) 12%, transparent), color-mix(in srgb, var(--accent2) 12%, transparent));

  --bg:#f6f7fb; --surface:#ffffff; --surface-2:#f1f3fa; --sidebar:#ffffff;
  --card:#ffffff; --border:#e7e9f2; --border-2:#dfe2ee;
  --text:#141a2b; --text-strong:#0b1020; --muted:#6b7488; --muted-2:#98a0b3;
  --blue:#2563eb; --amber:#d97706; --red:#dc2626; --violet:#7c3aed;
  --sidebar-tx:#475069; --sidebar-brand:#0f1729; --sidebar-sec:#98a0b3;
  --sidebar-hov:rgba(15,23,41,.05); --sidebar-hov-tx:#0f1729;

  --radius:18px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(16,23,41,.05), 0 12px 28px -14px rgba(16,23,41,.16);
  --shadow-lg:0 1px 3px rgba(16,23,41,.08), 0 22px 44px -18px rgba(16,23,41,.24);
  --glow:0 8px 22px -8px rgba(99,102,241,.5);
  --sidebar-w:270px;
  --font:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1000px 520px at 88% -14%, rgba(99,102,241,.08), transparent 60%),
    radial-gradient(760px 440px at -12% 6%, rgba(139,92,246,.07), transparent 55%),
    var(--bg);
  background-attachment:fixed;min-height:100vh}
a{color:var(--green);text-decoration:none;transition:color .15s}
a:hover{color:var(--green-d)}
h1,h2,h3{color:var(--text-strong);margin:0;letter-spacing:-.01em}
.muted{color:var(--muted)}
.small{font-size:.82rem}

/* ---- Botões ---- */
.btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;
  background:var(--grad);color:#fff;border:0;border-radius:var(--radius-sm);
  padding:.7rem 1.2rem;font-size:.94rem;font-weight:650;cursor:pointer;letter-spacing:.01em;
  box-shadow:var(--glow);transition:transform .15s ease, box-shadow .15s ease, filter .15s;font-family:inherit}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -6px rgba(99,102,241,.6);filter:brightness(1.04);color:#fff}
.btn:active{transform:translateY(0)}
.btn-bloco{width:100%}
.btn-sec{background:#eef0f7;color:var(--text);box-shadow:none;border:1px solid var(--border-2)}
.btn-sec:hover{background:#e5e8f2;color:var(--text-strong);box-shadow:none}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border-2);box-shadow:none}
.btn-ghost:hover{color:var(--text-strong);border-color:var(--green);box-shadow:none;transform:translateY(-1px)}
.btn-sm{padding:.42rem .75rem;font-size:.82rem;box-shadow:none}

/* ---- Cartões ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}
.card + .card{margin-top:1rem}

/* ---- Formulários ---- */
label{display:block;font-size:.8rem;font-weight:600;color:#3f465b;margin:.9rem 0 .4rem}
input,select,textarea{width:100%;padding:.72rem .85rem;background:var(--surface-2);color:var(--text);
  border:1px solid var(--border-2);border-radius:var(--radius-sm);font-size:.94rem;font-family:inherit;
  transition:border-color .15s, box-shadow .15s}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);background:#fff;
  box-shadow:0 0 0 4px var(--green-ring)}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7488' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.1rem}
.campo{margin-bottom:.2rem}
.help{font-size:.76rem;color:var(--muted-2);margin-top:.28rem}
.erro{color:#dc2626;font-size:.8rem;margin-top:.25rem}
.input-icone{position:relative}
.input-icone svg{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none}
.input-icone input{padding-left:2.5rem}

/* ---- Badges de status ---- */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.24rem .65rem;border-radius:999px;
  font-size:.7rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase;line-height:1.4;border:1px solid transparent}
.b-verde{background:rgba(16,185,129,.12);color:#059669;border-color:rgba(16,185,129,.22)}
.b-amarelo{background:rgba(217,119,6,.12);color:#b45309;border-color:rgba(217,119,6,.22)}
.b-vermelho{background:rgba(220,38,38,.10);color:#dc2626;border-color:rgba(220,38,38,.2)}
.b-azul{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.24)}
.b-cinza{background:rgba(100,116,139,.12);color:#475569;border-color:rgba(100,116,139,.2)}

/* ---- Mensagens ---- */
.msg{padding:.8rem 1.1rem;border-radius:var(--radius-sm);margin-bottom:.9rem;font-size:.9rem;border:1px solid transparent}
.msg-success{background:rgba(16,185,129,.1);color:#047857;border-color:rgba(16,185,129,.3)}
.msg-error{background:rgba(220,38,38,.08);color:#b91c1c;border-color:rgba(220,38,38,.25)}
.msg-info{background:rgba(99,102,241,.1);color:#4338ca;border-color:rgba(99,102,241,.28)}
.msg-warning{background:rgba(217,119,6,.1);color:#b45309;border-color:rgba(217,119,6,.28)}

/* ---- Tabelas ---- */
.tabela{width:100%;border-collapse:collapse}
.tabela th,.tabela td{text-align:left;padding:.78rem .65rem;border-bottom:1px solid var(--border)}
.tabela th{color:var(--muted);font-size:.72rem;text-transform:uppercase;font-weight:600;letter-spacing:.5px}
.tabela td{font-size:.9rem}
.tabela tbody tr{transition:background .12s}
.tabela tr:hover td{background:rgba(99,102,241,.04)}

/* ==========================================================================
   Layout do painel (sidebar + topo)
   ========================================================================== */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid var(--border);
  display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:30;
  transform:translateX(-100%);transition:transform .24s cubic-bezier(.4,0,.2,1)}
.layout.menu-aberto .sidebar{transform:translateX(0)}
.overlay-menu{display:none;position:fixed;inset:0;background:rgba(15,23,41,.35);backdrop-filter:blur(2px);z-index:25}
.layout.menu-aberto .overlay-menu{display:block}
@media(min-width:901px){.layout.menu-aberto .overlay-menu{display:none}}
.sidebar-marca{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:1.25rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--sidebar);z-index:2}
.sidebar-marca .nome{font-weight:800;font-size:1.1rem;line-height:1.15;letter-spacing:-.01em;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sidebar-nav{padding:.7rem .7rem 2rem}
.nav-item{display:flex;align-items:center;gap:.75rem;padding:.62rem .8rem;border-radius:var(--radius-sm);
  color:var(--sidebar-tx);font-weight:600;font-size:.9rem;cursor:pointer;transition:background .14s,color .14s;
  width:100%;background:none;border:0;text-align:left;font-family:inherit;position:relative}
.nav-item:hover{background:var(--sidebar-hov);color:var(--sidebar-hov-tx)}
.nav-item.ativo{background:var(--grad);color:#fff;box-shadow:var(--glow)}
.nav-item svg{flex:0 0 18px;width:18px;height:18px}
.nav-grupo > .nav-item .chevron{margin-left:auto;transition:transform .18s}
.nav-grupo.aberto > .nav-item .chevron{transform:rotate(180deg)}
.nav-sub{display:none;flex-direction:column;margin:.15rem 0 .4rem 1rem;padding-left:.65rem;border-left:1px solid var(--border-2);gap:.05rem}
.nav-grupo.aberto .nav-sub{display:flex}
.nav-sub a{padding:.5rem .72rem;border-radius:9px;color:var(--muted);font-size:.85rem;font-weight:500;transition:background .12s,color .12s}
.nav-sub a:hover{background:var(--sidebar-hov);color:var(--sidebar-hov-tx)}
.nav-sub a.ativo{color:var(--green-d);background:var(--grad-soft);font-weight:600}
.nav-secao{font-size:.66rem;text-transform:uppercase;letter-spacing:1px;color:var(--sidebar-sec);padding:1.1rem .9rem .4rem;font-weight:700}

.conteudo{flex:1;margin-left:0;display:flex;flex-direction:column;min-width:0;transition:margin-left .24s cubic-bezier(.4,0,.2,1)}
@media(min-width:901px){.layout.menu-aberto .conteudo{margin-left:var(--sidebar-w)}}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 1.6rem;border-bottom:1px solid var(--border);background:rgba(255,255,255,.8);
  backdrop-filter:blur(14px) saturate(140%);position:sticky;top:0;z-index:20}
.topbar .usuario{display:flex;align-items:center;gap:.7rem;font-size:.88rem}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem;box-shadow:var(--glow)}
.pagina{padding:1.8rem 1.6rem 3rem;max-width:1440px;width:100%}
.pagina-titulo{font-size:1.65rem;font-weight:800;letter-spacing:-.02em}
.pagina-sub{color:var(--muted);margin-top:.2rem}

/* ---- Cartões de indicadores ---- */
.stats{display:grid;gap:1.1rem;grid-template-columns:repeat(4,1fr);margin:1.3rem 0}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.stats{grid-template-columns:1fr}}
.stat{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.3rem;box-shadow:var(--shadow);transition:transform .18s ease, box-shadow .18s ease, border-color .18s}
.stat::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad)}
.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-2)}
.stat .cab{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.86rem;font-weight:600}
.stat .valor{font-size:clamp(1.4rem,1.8vw,1.8rem);font-weight:800;color:var(--text-strong);margin-top:.55rem;line-height:1.15;white-space:nowrap;letter-spacing:-.02em}
.stat .rodape{font-size:.76rem;color:var(--muted-2);margin-top:.25rem}
.stat .ico{width:20px;height:20px;color:var(--green)}
.valor.verde{color:#059669} .valor.azul{color:#4f46e5}
.valor.ambar{color:#b45309} .valor.vermelho{color:#dc2626}
.grid2{display:grid;gap:1.1rem;grid-template-columns:1fr 1.6fr}
.grid3{display:grid;gap:1.1rem;grid-template-columns:1fr 1fr 1.4fr}
@media(max-width:1100px){.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.grid3{grid-template-columns:1fr}}
/* Pendências (cockpit) */
.pend{display:flex;align-items:center;gap:.8rem;padding:.78rem .2rem;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;transition:padding-left .15s}
.pend:last-child{border-bottom:0}
.pend:hover{color:var(--text-strong);padding-left:.35rem}
.pend .num{min-width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:1rem;background:var(--surface-2);color:var(--muted)}
.pend.alerta .num{background:var(--grad);color:#fff;box-shadow:var(--glow)}
.pend .txt{flex:1;font-size:.9rem}
.pend .seta{color:var(--muted-2)}
/* Avatares e ações em listas */
.av-img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 36px}
.cel-nome{display:flex;align-items:center;gap:.6rem}
.acoes-ico{display:inline-flex;gap:.5rem;align-items:center}
.acoes-ico a{color:var(--muted-2);display:inline-flex;padding:.25rem;border-radius:8px;transition:color .12s,background .12s}
.acoes-ico a:hover{color:var(--green-d);background:rgba(99,102,241,.1)}
.acoes-ico .perigo:hover{color:#dc2626;background:rgba(220,38,38,.1)}
.tabs-simples{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.28rem}
.tabs-simples a{padding:.48rem 1.05rem;border-radius:9px;color:var(--muted);font-weight:600;font-size:.88rem;transition:background .12s,color .12s}
.tabs-simples a.ativo{background:var(--grad);color:#fff}
.secao-titulo{font-size:1.2rem;font-weight:700;margin:1.7rem 0 .3rem;letter-spacing:-.01em}

/* ---- Layouts centrados (login / público) ---- */
.centro{min-height:100vh;display:grid;place-items:center;padding:1.5rem}
.centro .card{width:100%;max-width:440px;box-shadow:var(--shadow-lg)}
.login-ico{width:60px;height:60px;border-radius:18px;background:var(--grad);color:#fff;display:grid;place-items:center;margin:0 auto 1rem;box-shadow:var(--glow)}
.login-ico svg{width:28px;height:28px}
.marca-verde{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.check{display:flex;align-items:center;gap:.5rem;margin:.9rem 0;color:#3f465b;font-size:.88rem}
.check input{width:auto}

/* ---- Utilidades ---- */
.linha{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.flex{display:flex;gap:.5rem;align-items:center}
.dl{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.2rem}
.dl dt{color:var(--muted);font-size:.78rem} .dl dd{margin:0;font-weight:600}
.vazio{color:var(--muted-2);text-align:center;padding:2rem}

/* Portal do prestador — progresso, abas e cards de mês */
.barra{height:9px;background:var(--surface-2);border-radius:999px;overflow:hidden;min-width:220px}
.barra > i{display:block;height:100%;background:var(--grad);border-radius:999px}
.tabs{display:inline-flex;gap:.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.28rem;flex-wrap:wrap}
.tab{background:none;border:0;color:var(--muted);font-weight:600;font-size:.85rem;padding:.48rem .85rem;border-radius:9px;cursor:pointer;font-family:inherit;transition:background .12s,color .12s}
.tab:hover{color:var(--text-strong)}
.tab.ativo{background:var(--grad);color:#fff}
.cards-mes{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:1.3rem}
.card-mes{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.3rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--shadow);transition:transform .18s ease, box-shadow .18s ease}
.card-mes:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.card-mes.aprovada{border-color:rgba(16,185,129,.4)}
.card-mes .mes{font-size:1.18rem;font-weight:800;color:var(--text-strong)}
.card-mes .ano{color:var(--muted);font-weight:500;font-size:.95rem}
.card-mes .valor{color:var(--muted);font-size:.9rem}
.card-mes .valor b{color:var(--text-strong)}
.card-mes .aguardando{color:var(--muted-2);font-size:.9rem;text-align:center;padding:.6rem 0}
.seletor-ano{display:inline-flex;align-items:center;gap:.5rem}
.seletor-ano select{width:auto;padding:.5rem 2rem .5rem .8rem}

/* Formulários em grade (CRUD nativo) */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 1.4rem}
.form-grid .campo-full{grid-column:1 / -1}
.form-acoes{display:flex;gap:.6rem;align-items:center;margin-top:1.3rem;flex-wrap:wrap}
.form-acoes .dir{margin-left:auto}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

.menu-toggle{display:inline-flex;align-items:center;background:none;border:0;color:var(--text);cursor:pointer;padding:.4rem;border-radius:9px;transition:background .12s}
.menu-toggle:hover{background:var(--surface-2)}
@media(max-width:900px){
  .grid2{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr}
  .pagina{padding:1.2rem 1rem 2.5rem}
}
@media(max-width:640px){
  .pagina{padding:1.1rem .9rem 2.5rem}
  .topbar{padding:.75rem 1rem}
  .pagina-titulo{font-size:1.35rem}
  .card{padding:1.2rem}
}

/* ==========================================================================
   Compatibilidade — classes usadas pelos templates do portal do prestador
   ========================================================================== */
.container{max-width:1000px;margin:0 auto;padding:1rem}
.container-estreito{max-width:440px;margin:0 auto;padding:1rem}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.stat .n{font-size:1.8rem;font-weight:800;color:var(--green-d)}
.stat .l{font-size:.8rem;color:var(--muted)}
.comp{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:var(--card)}
.comp .mes{font-weight:700;font-size:1.05rem;color:var(--text-strong)}
dl{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1rem;margin:0}
dl dt{color:var(--muted);font-size:.78rem}
dl dd{margin:0;font-weight:600;color:var(--text)}
table{width:100%;border-collapse:collapse}
table th,table td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--border);font-size:.9rem}
table th{color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}
@media(max-width:560px){dl{grid-template-columns:1fr}}
