/* Painel local de áreas de arrendamento — sempre preto: as cores do tema escuro do app Gestão de Licenças
   (public/app.css), mesmo com o aparelho no tema claro. Fontes Archivo e Source Sans 3.
   Gráficos: --s1/--s2 = azul e laranja do app (arrendada × própria); --f-* = fases do canavial. */
:root {
  color-scheme: dark;
  --pagina: #0e1218; --superficie: #161b23; --superficie-2: #1b212b;
  --tinta: #e8ebf0; --tinta-2: #c2c8d2; --apagado: #8b94a3;
  --linha: #262d38; --eixo: #37404d; --anel: rgba(255, 255, 255, .10);
  --acento: #6f93ff; --acento-tinta: #0b1430; --acento-suave: #1a2442;
  --ok: #3cc073; --ruim: #f0645a;
  --s1: #3987e5; --s2: #d95926; --s1-claro: #184f95;
  --f-soca: #3987e5; --f-planta: #d95926; --f-plantio: #199e70;
  --herdado: #7d8696;
  --sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(0, 0, 0, .25);
  --fonte-titulo: "Archivo", "Arial Narrow", system-ui, sans-serif;
  --fonte-texto: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fonte-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--pagina); color: var(--tinta); font-family: var(--fonte-texto); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, p { margin: 0; }
h1, h2 { font-family: var(--fonte-titulo); text-wrap: balance; }
.pagina { max-width: 1480px; margin: 0 auto; padding: 24px 20px 48px; display: flex; flex-direction: column; gap: 18px; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid color-mix(in srgb, var(--acento) 55%, transparent); outline-offset: 2px; }

/* cabeçalho igual ao do app: logo num cartão branco + título */
.topo { display: flex; align-items: center; gap: 14px; min-width: 0; }
.logo-marca { display: block; flex: none; height: 52px; width: auto; background: #fff; border-radius: 10px; padding: 4px 8px; box-shadow: var(--sombra); }
.topo h1 { font-size: 1.75rem; font-weight: 800; font-stretch: 85%; letter-spacing: -.01em; line-height: 1.05; }
.sobre { display: inline-block; font-family: var(--fonte-mono); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--acento); background: var(--acento-suave); padding: 2px 8px; border-radius: 6px; margin-bottom: 4px; }
.fonte { color: var(--apagado); font-size: .88rem; margin-top: 2px; }
/* versão online (Gestão Contratos): botão de voltar ao início do app e aviso enquanto os dados chegam */
.voltar { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--eixo); border-radius: 8px;
  background: var(--superficie); color: var(--tinta); font-weight: 600; font-size: .92rem; text-decoration: none; white-space: nowrap; transition: background .15s, border-color .15s; }
.voltar:hover { background: var(--superficie-2); border-color: var(--apagado); }
.voltar svg { width: 16px; height: 16px; }
/* embaixo do título: Início e (para admin) Importar Excel */
.topo-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.topo-acoes .voltar { padding: 6px 12px; font-size: .88rem; cursor: pointer; }
.importar { border-color: var(--acento); color: var(--acento); }
.importar:hover { background: var(--acento-suave); border-color: var(--acento); }
.importar.ocupado { opacity: .6; pointer-events: none; }
.importar input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.importar-msg { font-size: .85rem; color: var(--apagado); }
.importar-msg.erro { color: var(--ruim); font-weight: 600; }
.importar-msg.ok { color: var(--ok); font-weight: 600; }
.carregando { text-align: center; color: var(--apagado); padding: 48px 16px; }

/* botões das abas: como as abas Licenças Rural / Seguros Frota do app */
.abas { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px; background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; box-shadow: var(--sombra); }
.abas button { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1px solid var(--eixo); border-radius: 8px; background: var(--superficie); color: var(--tinta); font: inherit; font-weight: 700; cursor: pointer; transition: background .15s, border-color .15s; }
.abas button:hover { background: var(--superficie-2); border-color: var(--apagado); }
.abas button[aria-pressed="true"] { background: var(--acento); border-color: var(--acento); color: var(--acento-tinta); }
.abas small { font-weight: 500; opacity: .75; font-variant-numeric: tabular-nums; }
.abas .oculta { font-size: .68rem; font-weight: 700; padding: 1px 6px; border-radius: 999px; border: 1px dashed currentColor; opacity: .8; }
.abas .bi { gap: 6px; }
.abas .bi svg { width: 16px; height: 16px; }

/* filtros */
.filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px; background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; }
.filtros-sel { display: contents; }
.filtros select, .filtros input[type="search"] { font: inherit; font-size: .88rem; color: var(--tinta); background: var(--superficie); border: 1px solid var(--eixo); border-radius: 8px; padding: 7px 9px; min-width: 0; flex: 1 1 170px; max-width: 280px; }
.filtros input[type="search"] { flex-basis: 240px; max-width: 340px; }
.filtros select.ativo { border-color: var(--acento); box-shadow: 0 0 0 2px var(--acento-suave); }
.alternar { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--tinta-2); white-space: nowrap; }
.limpar { border: 0; background: none; color: var(--acento); font: inherit; font-weight: 700; font-size: .88rem; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; padding: 4px; }
.nota-filtro { font-size: .82rem; color: var(--apagado); min-height: 1.2em; }
/* botão principal do app (azul da marca) */
.botao { font: inherit; font-size: .92rem; font-weight: 700; padding: 9px 16px; border-radius: 8px; border: 1px solid var(--acento); background: var(--acento); color: var(--acento-tinta); cursor: pointer; white-space: nowrap;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--acento) 30%, transparent); }
.botao:hover { background: color-mix(in srgb, var(--acento) 88%, #000); }
.botao.mais { background: var(--superficie); color: var(--tinta); border-color: var(--eixo); box-shadow: none; }
.botao.mais:hover { background: var(--superficie-2); }

/* indicadores */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.kpi { background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; box-shadow: var(--sombra); }
.kpi span { display: block; font-family: var(--fonte-mono); font-size: .66rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--apagado); }
.kpi strong { display: block; font-family: var(--fonte-titulo); font-size: 1.7rem; font-weight: 800; font-stretch: 85%; letter-spacing: -.01em; line-height: 1.15; margin-top: 4px; }
.kpi small { display: block; font-size: .78rem; color: var(--tinta-2); margin-top: 2px; }
.kpis.pequenos .kpi strong { font-size: 1.2rem; }

.leitura { background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--acento); border-radius: 12px; padding: 12px 16px; }
.leitura h2 { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px; }
.leitura ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; font-size: .9rem; color: var(--tinta-2); }
.leitura b { color: var(--tinta); }

/* gráficos */
.grade-graficos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cartao { background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; padding: 14px 16px; box-shadow: var(--sombra); min-width: 0; }
.cartao.largo { grid-column: 1 / -1; }
.cartao header h2 { font-size: 1.12rem; font-weight: 700; font-stretch: 95%; }
.cartao header p { font-size: .8rem; color: var(--apagado); margin-top: 1px; }
.grafico { margin-top: 10px; position: relative; }
.grafico svg { display: block; width: 100%; height: auto; overflow: visible; }
.grafico text { font: 12px var(--fonte-texto); fill: var(--tinta-2); }
.grafico .rot { fill: var(--tinta); }
.grafico .val { fill: var(--tinta-2); font-variant-numeric: tabular-nums; }
.grafico .eixo-t { fill: var(--apagado); font-size: 11px; }
.grafico .grade { stroke: var(--linha); stroke-width: 1; }
.grafico .base { stroke: var(--eixo); stroke-width: 1; }
.grafico .marca { cursor: pointer; }
.grafico .marca:hover, .grafico .marca.sel { filter: brightness(.88); }
.grafico .alvo { fill: transparent; cursor: pointer; }
.grafico .vazio { fill: var(--apagado); }
.legenda { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: .8rem; color: var(--tinta-2); }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.rodape-nota { font-size: .8rem; color: var(--apagado); margin-top: 8px; }

.dica { position: fixed; z-index: 10; pointer-events: none; background: var(--superficie); color: var(--tinta); border: 1px solid var(--anel); border-radius: 8px; padding: 7px 10px; font-size: .82rem; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); max-width: 300px; }
.dica b { display: block; margin-bottom: 2px; }
.dica .lin { display: flex; justify-content: space-between; gap: 14px; font-variant-numeric: tabular-nums; }
.dica i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 5px; }

/* tabela da aba */
.aba-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px; }
.aba-cab h2 { font-size: 1.5rem; font-weight: 800; font-stretch: 85%; }
.aba-titulo { font-size: .85rem; color: var(--tinta-2); margin-top: 4px; }
.tabela-rolagem { overflow: auto; background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px; }
.tabela-rolagem.alta { max-height: calc(100vh - 210px); min-height: 320px; }
.tabela { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: .83rem; }
.tabela th, .tabela td { padding: 6px 10px; border-bottom: 1px solid var(--linha); text-align: left; white-space: nowrap; }
.tabela thead th { position: sticky; top: 0; z-index: 1; background: var(--superficie-2); font-weight: 700; color: var(--tinta); cursor: pointer; user-select: none; }
.tabela thead th small { display: block; font-weight: 500; color: var(--apagado); font-size: .7rem; }
.tabela thead th[aria-sort="ascending"]::after { content: " ▲"; font-size: .65rem; color: var(--acento); }
.tabela thead th[aria-sort="descending"]::after { content: " ▼"; font-size: .65rem; color: var(--acento); }
.tabela td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela th.num { text-align: right; }
.tabela td.lin, .tabela th.lin { color: var(--apagado); font-variant-numeric: tabular-nums; position: sticky; left: 0; background: var(--superficie); }
.tabela thead th.lin { background: var(--superficie-2); z-index: 2; }
.tabela td.herdado { color: var(--herdado); font-style: italic; }
.tabela tr.inicio-grupo td { border-top: 2px solid var(--eixo); }
.tabela tbody tr:hover td { background: var(--acento-suave); }
.tabela tfoot td { position: sticky; bottom: 0; background: var(--superficie-2); font-weight: 700; border-top: 1px solid var(--eixo); }
.tabela tfoot tr.planilha td { font-weight: 600; color: var(--tinta-2); }
.tabela.compacta { width: 100%; }
.tabela.compacta td, .tabela.compacta th { cursor: default; }
.dif-ok { color: var(--ok); font-weight: 700; }
.dif-alerta { color: var(--ruim); font-weight: 700; }
.mais { display: block; margin: 10px auto; }

@media (max-width: 900px) {
  .grade-graficos { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pagina { padding: 14px 12px 30px; }
  .topo { flex-wrap: wrap; }
  .topo h1 { font-size: 1.35rem; }
  .filtros select, .filtros input[type="search"] { max-width: none; flex-basis: calc(50% - 4px); }
  .filtros input[type="search"] { flex-basis: 100%; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi strong { font-size: 1.2rem; }
}
