/* =====================================================================
   FAZENDA BOA VISTA - identidade visual
   Paleta: verde-folha do café, terra do cerrado mineiro, papel claro.
   ===================================================================== */
:root {
  --verde-900: #17301f;
  --verde-700: #26523a;
  --verde-500: #3a7a52;
  --verde-100: #e3efe7;
  --terra-600: #a4552b;
  --terra-100: #f6e8de;
  --palha-500: #d9a441;
  --papel: #f4f6f1;
  --tinta: #1d2721;
  --cinza-500: #6b7a70;
  --borda: #d9e2da;
  --erro: #b3372f;
}

body {
  background: var(--papel);
  color: var(--tinta);
  font-family: "Inter", system-ui, -apple-system, sans-serif;
}
h1, h2, h3, h4, h5, .display-font, .navbar-brand {
  font-family: "Sora", "Inter", sans-serif;
  letter-spacing: -0.01em;
}

/* ---------- login ---------- */
.tela-login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background:
    linear-gradient(160deg, var(--verde-900) 0%, var(--verde-700) 55%, var(--verde-500) 100%);
}
.cartao-login {
  width: min(420px, 92vw);
  background: #fff;
  border-radius: 18px;
  padding: 2.2rem;
  box-shadow: 0 24px 60px rgba(10, 30, 18, 0.35);
}
.marca-fazenda {
  display: flex; align-items: center; gap: .7rem; margin-bottom: 1.4rem;
}
.marca-fazenda .selo {
  width: 46px; height: 46px; border-radius: 12px;
  background: var(--verde-700); color: #fff;
  display: grid; place-items: center; font-size: 1.4rem;
}
.faixa-atividades {
  display: flex; gap: .4rem; margin-top: 1.2rem; font-size: .78rem; color: var(--cinza-500);
}
.faixa-atividades span { background: var(--verde-100); border-radius: 99px; padding: .15rem .6rem; }

/* ---------- layout administrativo ---------- */
.layout-admin { display: flex; min-height: 100vh; }
.sidebar {
  width: 240px; flex-shrink: 0;
  background: var(--verde-900); color: #cfe0d5;
  padding: 1rem .8rem; position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.sidebar .navbar-brand { color: #fff; font-size: 1.05rem; }
.sidebar .grupo { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em;
  color: #7fa08c; margin: 1rem .5rem .3rem; }
.sidebar a.item {
  display: block; color: #cfe0d5; text-decoration: none;
  padding: .42rem .6rem; border-radius: 8px; font-size: .9rem;
}
.sidebar a.item:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar a.item.ativo { background: var(--verde-500); color: #fff; }
.conteudo { flex: 1; padding: 1.4rem 1.8rem; min-width: 0; }

.cartao {
  background: #fff; border: 1px solid var(--borda); border-radius: 14px;
  padding: 1.1rem 1.3rem;
}
.indicador { border-left: 4px solid var(--verde-500); }
.indicador.alerta { border-left-color: var(--erro); }
.indicador.atencao { border-left-color: var(--palha-500); }
.indicador .rotulo { font-size: .78rem; color: var(--cinza-500); }
.indicador .numero { font-size: 1.45rem; font-weight: 700; font-family: "Sora", sans-serif; }

.table thead th { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em;
  color: var(--cinza-500); border-bottom: 2px solid var(--borda); }
.table td { vertical-align: middle; font-size: .9rem; }

.badge-status { font-weight: 600; font-size: .72rem; border-radius: 99px; padding: .3em .7em; }
.st-verde  { background: var(--verde-100); color: var(--verde-700); }
.st-amarelo{ background: #faf0da; color: #8a6512; }
.st-verm   { background: #f9e4e2; color: var(--erro); }
.st-cinza  { background: #e9ede9; color: var(--cinza-500); }
.st-terra  { background: var(--terra-100); color: var(--terra-600); }

.btn-fazenda { background: var(--verde-700); border-color: var(--verde-700); color: #fff; }
.btn-fazenda:hover { background: var(--verde-900); border-color: var(--verde-900); color: #fff; }
.btn-terra { background: var(--terra-600); border-color: var(--terra-600); color: #fff; }
.btn-terra:hover { filter: brightness(.9); color: #fff; }

/* ---------- interface do operador (mobile) ---------- */
.topo-operador {
  background: var(--verde-900); color: #fff;
  padding: 1rem 1.1rem; border-radius: 0 0 18px 18px;
}
.grade-acoes {
  display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; padding: 1rem;
}
.botao-acao {
  background: #fff; border: 1px solid var(--borda); border-radius: 16px;
  padding: 1.1rem .8rem; text-align: center; text-decoration: none; color: var(--tinta);
  display: flex; flex-direction: column; align-items: center; gap: .45rem;
  box-shadow: 0 2px 6px rgba(20,40,28,.06);
  min-height: 104px; justify-content: center;
}
.botao-acao:active { transform: scale(.97); }
.botao-acao .icone {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: var(--verde-100); color: var(--verde-700); font-size: 1.35rem;
}
.botao-acao.terra .icone { background: var(--terra-100); color: var(--terra-600); }
.botao-acao span { font-size: .86rem; font-weight: 600; }

.tela-operador { max-width: 560px; margin: 0 auto; padding-bottom: 4rem; }
.form-operador .form-label { font-weight: 600; font-size: .88rem; }
.form-operador .form-control, .form-operador .form-select {
  font-size: 1.02rem; padding: .65rem .8rem; border-radius: 12px;
}
.item-checklist {
  background: #fff; border: 1px solid var(--borda); border-radius: 12px;
  padding: .8rem .9rem; margin-bottom: .6rem;
}
.item-checklist .btn-group .btn { font-size: .8rem; }
.btn-check:checked + .btn.op-conforme   { background: var(--verde-500); border-color: var(--verde-500); color:#fff; }
.btn-check:checked + .btn.op-nao        { background: var(--erro); border-color: var(--erro); color:#fff; }
.btn-check:checked + .btn.op-na         { background: var(--cinza-500); border-color: var(--cinza-500); color:#fff; }

.lista-registro {
  background:#fff; border:1px solid var(--borda); border-radius:12px;
  padding:.75rem .9rem; margin-bottom:.55rem; font-size:.9rem;
}
.voltar { color: var(--verde-700); text-decoration: none; font-weight: 600; }

@media (max-width: 900px) {
  .layout-admin { flex-direction: column; }
  .sidebar { width: 100%; height: auto; position: static; }
  .conteudo { padding: 1rem; }
}
