/* ===== Plataforma de Campo ===== */
:root {
  --verde: #2F6B4F; --verde-esc: #1F4A37; --verde-claro: #E3EFE7;
  --areia: #F6F4EE; --tinta: #1E2B23; --cinza: #6B7A70;
  --ambar: #D99A2B; --azul: #3B7EA1; --terra: #C2523C;
  --sombra: 0 1px 2px rgba(30,43,35,.06), 0 4px 16px rgba(30,43,35,.06);
}
body { background: #FBFAF7; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { letter-spacing: -0.01em; }

/* ----- Login ----- */
.login-wrap { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 100vh; }
.login-hero {
  position: relative; overflow: hidden; color: #F4F1E8;
  background:
    radial-gradient(1200px 600px at -10% 110%, rgba(217,154,43,.35), transparent 60%),
    radial-gradient(900px 500px at 110% -10%, rgba(59,126,161,.35), transparent 55%),
    linear-gradient(160deg, #1F4A37 0%, #2F6B4F 55%, #3E7D5C 100%);
  display: flex; align-items: center; padding: 64px;
}
.login-hero::after {
  content: ""; position: absolute; inset: 0; opacity: .10; pointer-events: none;
  background-image:
    repeating-radial-gradient(circle at 70% 60%, transparent 0 22px, rgba(255,255,255,.9) 23px 24px);
  mask-image: linear-gradient(to left, black, transparent 80%);
}
.login-hero-inner { position: relative; z-index: 1; max-width: 520px; }
.marca-grande { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-size: 1.05rem;
  letter-spacing: .02em; opacity: .95; margin-bottom: 2.5rem; }
.marca-grande .fa-leaf { color: #F2C66D; font-size: 1.4rem; }
.login-hero h1 { font-size: clamp(2.2rem, 3.6vw, 3.4rem); line-height: 1.08; font-weight: 600; margin-bottom: 1.2rem; }
.login-hero .lead { font-size: 1.1rem; opacity: .88; max-width: 440px; }
.login-pontos { margin-top: 2.5rem; display: grid; gap: .8rem; }
.login-pontos div { display: flex; align-items: center; gap: .75rem; font-weight: 500; opacity: .95; }
.login-pontos .ic { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px;
  background: rgba(255,255,255,.12); }
.login-form-lado { display: flex; align-items: center; justify-content: center; padding: 32px; background: var(--areia); }
.login-card { width: 100%; max-width: 400px; background: #fff; border-radius: 20px; padding: 40px 36px;
  box-shadow: 0 10px 40px rgba(30,43,35,.10); border: 1px solid #ECE9DF; }
.login-card h2 { font-weight: 600; margin-bottom: .2rem; }
.login-card .form-control { padding: .7rem .9rem; border-radius: 12px; }
.login-card .btn-lg { border-radius: 12px; padding: .75rem; font-weight: 600; }
.login-rodape { margin-top: 1.5rem; font-size: .8rem; color: var(--cinza); text-align: center; }
@media (max-width: 900px) {
  .login-wrap { grid-template-columns: 1fr; }
  .login-hero { padding: 40px 28px; min-height: auto; }
  .login-hero h1 { font-size: 2rem; }
  .login-pontos { display: none; }
}

/* ----- Barra superior ----- */
.navbar { box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.navbar .marca { display: flex; align-items: center; gap: .5rem; font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.1rem; white-space: nowrap; }
.navbar .marca .fa-leaf { color: #F2C66D; }
.navbar .nav-link { font-weight: 500; font-size: .9rem; border-radius: 10px; padding: .45rem .65rem !important; margin: 0 .05rem; opacity: .85; white-space: nowrap; }
.navbar .navbar-collapse { flex-wrap: nowrap; }
.navbar .navbar-brand { margin-right: 1rem; }
.navbar .navbar-nav { flex-wrap: nowrap; align-items: center; }
@media (max-width: 1560px) { .navbar .nav-link .ic { display: none; } .navbar .nav-link { padding: .45rem .55rem !important; } }
@media (max-width: 1250px) { .navbar .marca span { display: none; } }
.navbar .nav-link:hover { opacity: 1; background: rgba(255,255,255,.08); }
.navbar .nav-link.active { opacity: 1; background: rgba(255,255,255,.16); }
.menu-usuario { display: inline-flex; align-items: center; gap: .5rem; }
.avatar { width: 28px; height: 28px; border-radius: 50%; background: #F2C66D; color: var(--verde-esc);
  display: inline-grid; place-items: center; font-weight: 700; font-size: .85rem; }

/* ----- Filtros (barra lateral) ----- */
.bslib-sidebar-layout > .sidebar { background: #F3F1EA; border-right: 1px solid #E7E3D8; }
.filtros-titulo { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; color: var(--cinza); font-weight: 700; }
.atalhos-periodo { display: flex; gap: .35rem; margin: -.4rem 0 .8rem; }
.atalhos-periodo .btn { border-radius: 999px; font-size: .75rem; padding: .15rem .6rem; }
.sidebar .form-label, .sidebar label { font-weight: 600; font-size: .85rem; }

/* ----- Cartões ----- */
.card { border: 1px solid #ECE9DF; box-shadow: var(--sombra); }
.card-header { background: transparent; border-bottom: 1px solid #F0EDE4; font-weight: 600; padding: .85rem 1.1rem; }
.card-header .ic { color: var(--verde); }
.card-mapa { min-height: calc(100vh - 120px); overflow: hidden; }

/* ----- Indicadores (KPIs) ----- */
.kpis { margin-bottom: .25rem; }
.kpi-card { display: flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid #ECE9DF;
  border-radius: 1rem; box-shadow: var(--sombra); padding: 1.1rem 1.2rem; min-height: 96px; position: relative; overflow: hidden; }
.kpi-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--kpi-cor, var(--verde)); }
.kpi-ic { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
  background: var(--kpi-fundo, var(--verde-claro)); color: var(--kpi-cor, var(--verde)); font-size: 1.25rem; }
.kpi-txt { min-width: 0; }
.kpi-tit { font-size: .74rem; color: var(--cinza); font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
  font-family: Inter, system-ui, sans-serif; line-height: 1.2; }
.kpi-val { font-family: Fraunces, Georgia, serif; font-weight: 600; font-size: 1.75rem; line-height: 1.15; color: var(--tinta);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-verde { --kpi-cor: var(--verde); --kpi-fundo: var(--verde-claro); }
.kpi-azul  { --kpi-cor: var(--azul);  --kpi-fundo: #E1EEF5; }
.kpi-ambar { --kpi-cor: #B87C14;      --kpi-fundo: #FBF0DB; }
.kpi-terra { --kpi-cor: var(--terra); --kpi-fundo: #F7E4DF; }
.kpi-cinza { --kpi-cor: var(--cinza); --kpi-fundo: #ECEEEC; }
.kpi-cinza .kpi-val { font-size: 1.3rem; }

/* ----- Tabelas ----- */
table.dataTable thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--cinza); border-bottom: 1px solid #E7E3D8 !important; }
table.dataTable tbody tr { cursor: pointer; }
table.dataTable tbody tr.selected > * { box-shadow: inset 0 0 0 9999px rgba(47,107,79,.14) !important; color: var(--tinta) !important; }
.dataTables_wrapper .dataTables_filter input { border-radius: 999px; border: 1px solid #DDD8CB; padding: .2rem .8rem; }
.shiny-table { font-size: .9rem; }

/* ----- Estatística ----- */
.est-info { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 .8rem; }
.est-info span { background: #fff; border: 1px solid #E7E3D8; border-radius: 999px; padding: .2rem .6rem; font-size: .78rem; color: var(--cinza); }
.est-info .ic { color: var(--verde); margin-right: .2rem; }
.interpretacao { background: var(--verde-claro); border-left: 4px solid var(--verde); border-radius: 10px;
  padding: .8rem 1rem; margin: .6rem 0 1rem; font-weight: 500; }
.interpretacao .ic { color: #B87C14; margin-right: .4rem; }
.nav-pills .nav-link.active { background: var(--verde); }

/* ----- Sincronização ----- */
.sync-card { display: flex; gap: 1.1rem; align-items: center; padding: 1.4rem 1.6rem; border-radius: 16px; box-shadow: var(--sombra); height: 100%; }
.sync-card > .ic { font-size: 2.2rem; }
.sync-card h4 { margin: 0 0 .2rem; font-weight: 600; }
.sync-card p { margin: 0; }
.sync-card.ok { background: var(--verde-claro); color: var(--verde-esc); }
.sync-card.erro { background: #F7E4DF; color: #7E2E1E; }
.sync-card.rodando, .sync-card.neutro { background: #FBF0DB; color: #6E4A0C; }

/* ----- Detalhes do registro ----- */
.badge-tipo { background: var(--verde-claro); color: var(--verde-esc); font-size: .75rem; padding: .25rem .6rem; border-radius: 999px; font-family: Inter, sans-serif; vertical-align: middle; }
.evento-meta { display: flex; flex-wrap: wrap; gap: 1rem; color: var(--cinza); font-size: .88rem; margin-bottom: 1rem; }
.evento-meta .ic { margin-right: .3rem; color: var(--verde); }
.detalhes-lista { display: grid; grid-template-columns: minmax(140px, 35%) 1fr; gap: .35rem 1rem; margin: 0; }
.detalhes-lista dt { color: var(--cinza); font-weight: 500; }
.detalhes-lista dd { margin: 0; font-weight: 500; }
.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .8rem; }
.anexo { margin: 0; }
.anexo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; border: 1px solid #ECE9DF; }
.anexo figcaption { font-size: .78rem; color: var(--cinza); margin-top: .25rem; }
.anexo-arquivo { padding: .6rem .8rem; border: 1px dashed #DDD8CB; border-radius: 10px; }
.modal-content { border-radius: 18px; border: 0; }
.senha-prov { font-size: 1.6rem; text-align: center; padding: 1rem; background: var(--areia); border-radius: 12px; margin: 1rem 0; letter-spacing: .08em; }

.estado-vazio { text-align: center; color: var(--cinza); padding: 2rem; }
.estado-vazio .ic { font-size: 2rem; color: #C9D5CC; margin-bottom: .5rem; }
.shiny-output-error-validation { color: var(--cinza); font-style: italic; padding: 1.5rem; text-align: center; }

/* notificações */
#shiny-notification-panel { top: 70px; bottom: auto; right: 16px; }
.shiny-notification { border-radius: 12px; box-shadow: var(--sombra); border: 0; }
.shiny-notification-message { background: var(--verde-claro); color: var(--verde-esc); }
.shiny-notification-error { background: #F7E4DF; color: #7E2E1E; }

/* sliders */
.irs--shiny .irs-bar { background: var(--verde); border-color: var(--verde); }
.irs--shiny .irs-handle { border-color: var(--verde); }
.irs--shiny .irs-single { background: var(--verde); }
.navbar > .container-fluid { align-items: center; }
.navbar .navbar-brand { display: flex; align-items: center; padding-top: 0; padding-bottom: 0; }
