/* Fregu — painéis do dono. Mesmo mundo do painel: tokens, botões, abas, campos, tabelas e diálogos vêm de base.css. */
body { font-size: 15px; }

/* ---------- topo: marca, título e as áreas numa linha de abas ---------- */
header { position: sticky; top: 0; z-index: 5; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px 18px; padding: 14px clamp(16px, 4vw, 32px) 12px; border-bottom: 1px solid var(--linha); background: rgba(9, 9, 11, .88); backdrop-filter: blur(12px); }
header .marca { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
header h1 { font-size: .95rem; font-weight: 500; color: var(--texto-2); letter-spacing: 0; }
header h1::before { content: "/"; margin-right: 10px; color: var(--linha-2); }
header nav { grid-column: 1 / -1; display: flex; gap: 2px; width: fit-content; max-width: 100%; padding: 3px; border: 1px solid var(--linha); border-radius: 100vw; background: var(--fundo-2); overflow-x: auto; scrollbar-width: none; }
header nav::-webkit-scrollbar { display: none; }
header nav .botao { min-height: 34px; padding: 0 14px; border: 0; background: none; color: var(--texto-2); font-size: .86rem; }
header nav .botao:hover { background: rgba(255, 255, 255, .05); color: var(--texto); }
header nav .botao.ativo { background: var(--texto); color: var(--fundo); }
header > .botao { justify-self: end; }

main { width: min(1200px, 100% - 2 * clamp(16px, 4vw, 32px)); margin: 24px auto 72px; display: grid; gap: 16px; }
main > * { min-width: 0; }

/* ---------- blocos ---------- */
/* páginas antigas ainda chamam a faixa de números de .kpis/.kpi */
.kpis { display: flex; border: 1px solid var(--linha); border-radius: var(--r-card); background: var(--fundo-2); overflow-x: auto; scrollbar-width: none; }
.kpi { flex: 1 1 0; min-width: 124px; display: grid; align-content: start; gap: 3px; padding: 14px 18px; border-left: 1px solid var(--linha); }
.kpi:first-child { border-left: 0; }
.kpi > span { color: var(--texto-3); font-size: .78rem; font-weight: 500; }
.kpi strong { font-size: 1.35rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.kpi small { color: var(--texto-3); font-size: .78rem; }
.aviso { padding: 22px; border-radius: var(--r-card); background: var(--fundo-2); border: 1px solid var(--linha); }
.aviso h2 { margin: 0 0 6px; font-size: 1.15rem; }
.aviso p { margin: 0; color: var(--texto-2); }
.resumo { margin: 6px 0 2px; font-size: clamp(1.25rem, 2.2vw, 1.7rem); line-height: 1.3; font-weight: 500; letter-spacing: -.02em; text-wrap: balance; max-width: 40ch; }
.resumo b { font-weight: 500; color: var(--marca-clara); font-variant-numeric: tabular-nums; }
.painel { background: var(--fundo-2); border: 1px solid var(--linha); border-radius: var(--r-card); padding: 20px 22px; }
.painel h2 { margin: 0 0 4px; font-size: 1rem; color: var(--texto); }
.painel .sub { margin: 0 0 16px; color: var(--texto-3); font-size: .85rem; }
.cabeca { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cabeca h2 { margin: 0; font-size: 1.45rem; letter-spacing: -.025em; }
.cabeca p { margin: 4px 0 0; color: var(--texto-3); font-size: .9rem; }
.graficos { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.graficos > * { min-width: 0; }

/* ---------- atenção hoje ---------- */
.atencao ul { list-style: none; margin: 0; padding: 0; }
.atencao li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); flex-wrap: wrap; }
.atencao li:last-child { border-bottom: 0; }
.motivo { font-size: .76rem; font-weight: 500; padding: 3px 10px; border: 1px solid var(--linha-2); border-radius: 100vw; color: var(--texto-2); white-space: nowrap; }
.motivo.urgente { border-color: rgba(245, 184, 74, .4); color: var(--aviso); }
.quem { flex: 1 1 220px; min-width: 0; }
.quem strong { display: block; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.quem small { color: var(--texto-3); }
.vazio { display: block; text-align: left; padding: 0; border: 0; color: var(--texto-3); font-size: .9rem; margin: 0; }
.vazio-grande { display: grid; justify-items: center; gap: 6px; text-align: center; color: var(--texto-2); padding: 36px 20px; border: 1px dashed var(--linha-2); border-radius: var(--r-card); }
.vazio-grande h3 { font-size: 1.05rem; color: var(--texto); }
.vazio-grande p { margin: 0; max-width: 44ch; font-size: .9rem; }
.vazio-grande .acoes { justify-content: center; margin-top: 8px; }

/* ---------- gráficos ---------- */
.barras { position: relative; height: 170px; display: flex; align-items: flex-end; gap: 2px; border-bottom: 1px solid var(--linha); padding-top: 18px; }
.barras .b { flex: 1; min-width: 3px; height: 100%; display: flex; align-items: flex-end; outline: none; }
.barras .b i { display: block; width: 100%; background: var(--marca); border-radius: 3px 3px 0 0; }
.barras .b:hover i, .barras .b:focus-visible i { opacity: .7; }
.barras.claro .b i { background: var(--marca-clara); }
.barras .b.zero i { background: transparent; }
.grade { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--linha-2); font-size: .68rem; color: var(--texto-3); }
.grade span { position: absolute; top: -16px; left: 0; }
.eixo { display: flex; justify-content: space-between; font-size: .72rem; color: var(--texto-3); margin-top: 6px; }
.tip { position: fixed; pointer-events: none; background: var(--texto); color: var(--fundo); padding: 6px 10px; border-radius: 8px; font-size: .8rem; line-height: 1.3; z-index: 50; display: none; }
.tip strong { display: block; font-size: .95rem; }
.usos { display: grid; gap: 10px; }
.uso { display: grid; grid-template-columns: 100px 1fr 36px; align-items: center; gap: 10px; font-size: .88rem; }
.uso .t { height: 8px; background: rgba(255, 255, 255, .08); border-radius: 100vw; overflow: hidden; }
.uso .t i { display: block; height: 100%; background: var(--marca); border-radius: 100vw; }
.uso b { text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; }

/* ---------- busca e tabela ---------- */
.busca { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.busca input { flex: 1; min-width: 200px; }
.busca select, .plano-sel { width: auto; }
.plano-sel { min-height: 34px; padding: 0 32px 0 12px !important; border: 1px solid var(--linha-2); border-radius: 100vw; background-color: var(--fundo-3); color: var(--texto); font-weight: 500; font-size: .84rem; }
.plano-sel[data-p="pro"] { border-color: rgba(255, 109, 41, .5); color: var(--marca-clara); }
.plano-sel[data-p="familia"] { border-color: rgba(74, 222, 128, .4); color: var(--ok); }
.pendente { font-size: .7rem; font-weight: 500; border: 1px solid rgba(245, 184, 74, .4); color: var(--aviso); padding: 1px 8px; border-radius: 100vw; margin-left: 6px; white-space: nowrap; }
td .vazio { padding: 16px 0; }

/* ---------- formulários ---------- */
.grade-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.grade-campos .largo { grid-column: 1 / -1; }
.campo.linha-check { display: flex; gap: 10px; align-items: center; font-weight: 400; }
.campo.linha-check input { width: 18px !important; min-height: 0; }
dialog { width: min(620px, 100% - 24px); }
dialog form { padding: 22px; }

@media (max-width: 900px) { .graficos { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .grade-campos { grid-template-columns: 1fr; }
  header { grid-template-columns: auto minmax(0, 1fr); }
  header h1 { font-size: .9rem; }
  header > .botao { grid-column: 2; }
}
