/* Reserva do Vale · refinamento visual 2026-10-14
   Sem mudanças nas fórmulas, nos dados, nos indicadores ou nos PDFs.
   Logo oficial reaproveitado da classe .logo existente em style.css. */
:root {
  --rv-green:#086b3a;
  --rv-green-soft:#ebf6ed;
  --rv-line:#e1e9e3;
  --rv-muted:#65746a;
}
body {background:#f5f8f5}
.robust-app {grid-template-columns:232px minmax(0,1fr)}
.robust-side {
  padding:27px 15px 18px;
  border-right:1px solid #e1e9e4;
  box-shadow:2px 0 18px rgba(16,54,31,.018);
}
.rv-side-heading {
  display:block;
  padding:0 14px 13px;
  color:#86938a;
  font-size:10px;
  letter-spacing:.14em;
  font-weight:800;
  text-transform:uppercase;
}
.robust-side nav{gap:5px}
.robust-nav {
  display:flex;
  align-items:center;
  gap:11px;
  padding:12px 13px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.005em;
  border-radius:11px;
  transition:background-color .16s ease,color .16s ease;
}
.rv-nav-icon{
  width:18px;
  height:18px;
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#75847a;
}
.rv-nav-icon svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
}
.robust-nav.active {background:#e9f5ec;color:#076b39}
.robust-nav:hover {background:#f0f8f2;color:#075f34}
.robust-nav.active .rv-nav-icon,.robust-nav:hover .rv-nav-icon{color:#076b39}
.robust-header{
  height:94px;
  min-height:94px;
  justify-content:flex-start;
  gap:20px;
  padding:0 34px;
  background:#fff;
  border-bottom:1px solid #e5ece7;
}
.rv-brand{
  display:flex;
  align-items:center;
  gap:19px;
  min-width:0;
  margin-right:auto;
}
.rv-header-logo{
  width:210px;
  height:82px;
  flex:0 0 210px;
  background-position:center;
  background-size:contain;
}
.rv-brand-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-width:0;
  border-left:1px solid #e2eae4;
  padding-left:19px;
  gap:5px;
}
.robust-header .rv-brand-copy strong{
  font-size:15px;
  font-weight:750;
  letter-spacing:-.015em;
  line-height:1.2;
  color:#243d2b;
}
.robust-header .rv-brand-copy span{
  font-size:11px;
  line-height:1.35;
  color:#7a897e;
  margin:0;
}
.robust-content{max-width:1500px;padding:30px 34px 46px}
.section-title{margin-bottom:21px}
.section-title small{font-size:10px;letter-spacing:.16em}
.section-title h1{font-size:29px;letter-spacing:-.03em;margin:6px 0 5px}
.section-title p{color:#708075}
.hero-kpis{gap:15px;margin-bottom:19px}
.hero-kpi{
  border-radius:16px;
  border-color:#e2eae4;
  box-shadow:0 5px 20px rgba(24,54,29,.025);
  padding:18px;
}
.hero-kpi strong{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.robust-panel{
  border-color:#e1e9e3;
  border-radius:16px;
  box-shadow:0 5px 20px rgba(24,54,29,.025);
}
.home-grid{gap:15px}
.data-table th,.data-table td{font-variant-numeric:tabular-nums}
.mobile-bottom{box-shadow:0 10px 34px rgba(15,47,28,.1)}
/* Diagnósticos continuam calculados pelo motor, sem poluir a interface pública.
   Controle de acesso definitivo será implementado na etapa de autenticação. */
.base-status,#engineBadge,#validationPanel,#adminAccess,.admin-access{
  display:none !important;
}
@media (max-width:1120px){
  .robust-app{grid-template-columns:211px minmax(0,1fr)}
  .robust-header{padding:0 24px;height:84px;min-height:84px}
  .rv-header-logo{width:180px;flex-basis:180px;height:73px}
  .robust-content{padding:24px}
  .hero-kpis{gap:10px}
}
@media (max-width:780px){
  .robust-app{display:block}
  .robust-header{height:72px;min-height:72px;padding:0 16px;justify-content:flex-start}
  .rv-brand{gap:13px}
  .rv-header-logo{width:160px;height:65px;flex-basis:160px}
  .rv-brand-copy{padding-left:13px;gap:4px}
  .robust-header .rv-brand-copy strong{font-size:13px}
  .robust-header .rv-brand-copy span{font-size:10px}
  .robust-content{padding:19px 14px 90px}
  .hero-kpis{gap:10px}
  .hero-kpi{padding:14px}
  .home-grid{gap:12px}
  .mobile-bottom{border-radius:16px}
}
@media (max-width:460px){
  .rv-header-logo{width:140px;height:62px;flex-basis:140px}
  .rv-brand-copy{padding-left:11px}
  .robust-header .rv-brand-copy strong{font-size:12px}
  .robust-header .rv-brand-copy span{display:none}
  .robust-header{padding:0 12px}
  .section-title h1{font-size:25px}
}
