/* Painel de Pagamentos — Instituto Fabiana Ferraz
   Paleta dourada sobre grafite, seguindo o logotipo */
:root{
  --ouro:#C9A227; --ouro-claro:#F6E27A; --ouro-escuro:#8C6D14;
  --fundo:#141310; --painel:#1D1B16; --painel-2:#26231C;
  --linha:#37331F; --texto:#EDE8DA; --suave:#A79F8A;
  --ok:#7FC97F; --pend:#E4B34C; --perigo:#D96A5B;
}
*{ box-sizing:border-box; }
body{
  margin:0; background:var(--fundo); color:var(--texto);
  font:15px/1.5 "Segoe UI", system-ui, sans-serif;
}
a{ color:var(--ouro-claro); text-decoration:none; }
a:hover{ text-decoration:underline; }

/* ---------- layout ---------- */
.layout{ display:flex; min-height:100vh; }
.conteudo{ flex:1; padding:28px 32px 48px; max-width:1180px; }

/* ---------- menu lateral ---------- */
.menu{
  width:250px; flex:none; background:linear-gradient(180deg,#191713,#12110D);
  border-right:1px solid var(--linha); display:flex; flex-direction:column;
  padding:22px 14px; position:sticky; top:0; height:100vh;
}
.marca{ padding:0 8px 20px; border-bottom:1px solid var(--linha); }
.menu nav{ display:flex; flex-direction:column; gap:4px; margin-top:16px; flex:1; }
.menu nav a{
  display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:8px;
  color:var(--texto);
}
.menu nav a:hover{ background:var(--painel-2); text-decoration:none; }
.menu nav a.ativo{ background:var(--painel-2); outline:1px solid var(--linha); }
.menu nav a .ico{
  width:34px; height:34px; flex:none; display:grid; place-items:center;
  background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 60%,var(--ouro-escuro));
  color:#171509; border-radius:8px; font-size:16px;
}
.menu nav a b{ display:block; font-size:14px; }
.menu nav a small{ display:block; color:var(--suave); font-size:11px; }
.rodape-menu{ border-top:1px solid var(--linha); padding:12px 8px 0; }
.rodape-menu .usuario{ font-weight:700; font-size:13.5px; }
.rodape-menu .papel{ color:var(--ouro); font-size:11px; letter-spacing:1.5px; text-transform:uppercase; }

/* ---------- logotipo ---------- */
.logo-iff{ display:flex; align-items:center; gap:10px; }
.logo-texto .l1{ display:block; font-size:10px; letter-spacing:4px; color:var(--suave); }
.logo-texto .l2{
  display:block; font-family:Georgia,"Times New Roman",serif; font-style:italic;
  font-size:19px; background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 60%,var(--ouro-escuro));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ---------- títulos, avisos ---------- */
.titulo-pagina{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  font-size:24px; margin:0 0 18px; letter-spacing:-.3px;
}
.rotulo-periodo{ font-size:13px; color:var(--ouro-claro); font-weight:400; }
.aviso{ padding:10px 14px; border-radius:8px; margin:0 0 14px; font-size:14px; }
.aviso.ok{ background:#1E2B1E; border:1px solid #2F4A2F; color:#BFE3BF; }
.aviso.erro{ background:#33201C; border:1px solid #573028; color:#F2C4BC; }

/* ---------- filtros didáticos ---------- */
.filtros{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.filtro{
  padding:9px 18px; border-radius:999px; border:1px solid var(--linha);
  color:var(--texto); font-weight:600; font-size:13.5px; background:var(--painel);
}
.filtro:hover{ text-decoration:none; border-color:var(--ouro-escuro); }
.filtro.ativo{
  background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 60%,var(--ouro-escuro));
  color:#171509; border-color:transparent;
}

/* ---------- cartões de resumo ---------- */
.cartoes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:20px; }
.cartao{
  background:var(--painel); border:1px solid var(--linha); border-radius:12px; padding:14px 16px;
}
.cartao small{ color:var(--suave); font-size:12px; letter-spacing:.5px; text-transform:uppercase; }
.cartao .valor{ font-size:24px; font-weight:800; margin-top:4px; font-variant-numeric:tabular-nums; }
.ok-cor{ color:var(--ok); } .pend-cor{ color:var(--pend); }
.mini-link{ font-size:12px; }

/* ---------- painéis ---------- */
.painel{
  background:var(--painel); border:1px solid var(--linha); border-radius:12px;
  padding:18px 20px; margin-bottom:20px;
}
.painel h2{ margin:0 0 14px; font-size:15px; letter-spacing:1px; text-transform:uppercase; color:var(--ouro-claro); }
.painel.estreito{ max-width:460px; }
.vazio{ color:var(--suave); font-style:italic; }

/* ---------- gráfico de barras ---------- */
.grafico{ display:flex; gap:12px; align-items:flex-end; }
.grafico .col{ flex:1; text-align:center; }
.grafico .haste{ height:120px; display:flex; align-items:flex-end; justify-content:center; }
.grafico .barra{
  width:70%; min-height:2px; border-radius:6px 6px 0 0;
  background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 55%,var(--ouro-escuro));
}
.grafico small{ display:block; color:var(--suave); margin-top:6px; letter-spacing:1px; }
.grafico .tot{ display:block; font-size:11px; color:var(--texto); font-variant-numeric:tabular-nums; }

/* ---------- tabelas ---------- */
.rolagem{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; font-size:14px; }
th{ text-align:left; color:var(--suave); font-size:11.5px; letter-spacing:1px; text-transform:uppercase;
    padding:8px 10px; border-bottom:1px solid var(--linha); }
td{ padding:10px; border-bottom:1px solid #2A2720; vertical-align:middle; }
td.num, th.num{ text-align:right; font-variant-numeric:tabular-nums; }
td .obs{ color:var(--suave); }
.pill{ padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.pill.pago{ background:#1E2B1E; color:var(--ok); border:1px solid #2F4A2F; }
.pill.pendente{ background:#332B18; color:var(--pend); border:1px solid #57492A; }
td.acoes{ white-space:nowrap; }
td.acoes form{ display:inline-block; margin-left:4px; }

/* ---------- botões ---------- */
.botao{
  display:inline-block; padding:9px 16px; border-radius:8px; border:1px solid var(--linha);
  background:var(--painel-2); color:var(--texto); font-weight:600; font-size:13.5px;
  cursor:pointer; font-family:inherit;
}
.botao:hover{ border-color:var(--ouro-escuro); text-decoration:none; }
.botao.ouro{
  background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 60%,var(--ouro-escuro));
  color:#171509; border-color:transparent;
}
.botao.ouro:hover{ filter:brightness(1.08); }
.botao.perigo{ color:var(--perigo); }
.botao.perigo:hover{ border-color:var(--perigo); }
.botao.mini{ padding:4px 9px; font-size:12px; }
.botao.largo{ width:100%; }
button.botao{ line-height:1.4; }

/* ---------- formulários ---------- */
.formulario fieldset{
  border:1px solid var(--linha); border-radius:10px; padding:14px 16px 16px; margin:0 0 16px;
}
.formulario legend{ padding:0 8px; color:var(--ouro-claro); font-size:13px; letter-spacing:1px; text-transform:uppercase; }
.linha{ display:flex; gap:12px; flex-wrap:wrap; }
label{ display:block; font-size:13px; color:var(--suave); margin-bottom:10px; flex:1; min-width:140px; }
label.grande{ flex:2.5; } label.curto{ flex:0 0 70px; min-width:70px; }
input, select, textarea{
  width:100%; margin-top:4px; padding:9px 11px; border-radius:8px;
  border:1px solid var(--linha); background:var(--painel-2); color:var(--texto);
  font:inherit; font-size:14px;
}
input:focus, select:focus, textarea:focus{ outline:2px solid var(--ouro); border-color:transparent; }
input[type=file]{ padding:7px; }
.acoes-form{ display:flex; gap:10px; margin-top:6px; }
.dica{ color:var(--suave); font-size:13px; }
.busca{ display:flex; gap:10px; margin-bottom:18px; max-width:520px; }
.form-pagamento{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.form-pagamento label{ margin-bottom:0; }
.form-pagamento .botao{ margin-bottom:2px; }

/* ---------- profissionais ---------- */
.lista-prof{ display:flex; flex-direction:column; gap:10px; }
.prof-cartao{
  display:flex; align-items:center; gap:16px; background:var(--painel);
  border:1px solid var(--linha); border-radius:12px; padding:12px 16px; color:var(--texto);
}
.prof-cartao:hover{ border-color:var(--ouro-escuro); text-decoration:none; }
.prof-info{ flex:1; } .prof-info small{ display:block; color:var(--suave); }
.prof-tot{ text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
.prof-tot small{ display:block; color:var(--suave); font-weight:400; }
.avatar{
  width:52px; height:52px; border-radius:50%; object-fit:cover; flex:none;
  border:2px solid var(--ouro-escuro);
}
.avatar.iniciais{
  display:grid; place-items:center; font-weight:800; color:#171509;
  background:linear-gradient(180deg,var(--ouro-claro),var(--ouro) 60%,var(--ouro-escuro));
}
.avatar.grande{ width:110px; height:110px; font-size:32px; }
.foto-atual{ display:flex; align-items:center; gap:10px; color:var(--suave); }

/* ---------- detalhe ---------- */
.detalhe-grade{ display:grid; grid-template-columns:300px 1fr; gap:20px; align-items:start; }
.ficha{ text-align:center; }
.ficha dl{ text-align:left; margin:16px 0 0; }
.ficha dt{ color:var(--suave); font-size:11px; letter-spacing:1px; text-transform:uppercase; margin-top:10px; }
.ficha dd{ margin:2px 0 0; }

/* ---------- login ---------- */
.tela-login{
  min-height:100vh; display:grid; place-items:center; padding:24px;
  background:radial-gradient(90% 70% at 50% 0%, #23201A 0%, var(--fundo) 65%);
}
.cartao-login{
  width:100%; max-width:400px; background:var(--painel); border:1px solid var(--linha);
  border-radius:16px; padding:34px 34px 30px;
}
.cartao-login .logo-iff{ justify-content:center; margin-bottom:18px; }
.cartao-login h1{ margin:0; font-size:21px; text-align:center; }
.cartao-login .sub{ margin:4px 0 22px; text-align:center; color:var(--suave); font-size:13.5px; }

/* ---------- responsivo ---------- */
@media (max-width: 900px){
  .layout{ flex-direction:column; }
  .menu{ width:100%; height:auto; position:static; flex-direction:column; }
  .detalhe-grade{ grid-template-columns:1fr; }
  .conteudo{ padding:20px 16px 40px; }
}
