/* SAD REGA — identidade visual: agricultura, água, rigor científico */
:root {
  --sr-green-900: #0f3d26;
  --sr-green-700: #1f6f43;
  --sr-green-500: #2e9b5f;
  --sr-green-100: #e6f3eb;
  --sr-water-600: #1c74b8;
  --sr-water-100: #e3f0fa;
  --sr-soil-600: #8a5a2b;
  --sr-sun-500: #e8a317;
  --sr-ink: #1b2a22;
  --sr-muted: #5c6f64;
  --sr-surface: #ffffff;
  --sr-bg: #f3f6f4;
  --sr-border: #dbe5de;
  --bs-primary: #1f6f43;
  --bs-primary-rgb: 31, 111, 67;
  --bs-link-color: #1f6f43;
  --bs-link-hover-color: #0f3d26;
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body { background: var(--sr-bg); color: var(--sr-ink); }
.btn-primary { --bs-btn-bg: var(--sr-green-700); --bs-btn-border-color: var(--sr-green-700); --bs-btn-hover-bg: var(--sr-green-900); --bs-btn-hover-border-color: var(--sr-green-900); --bs-btn-active-bg: var(--sr-green-900); }
.btn-outline-primary { --bs-btn-color: var(--sr-green-700); --bs-btn-border-color: var(--sr-green-700); --bs-btn-hover-bg: var(--sr-green-700); --bs-btn-hover-border-color: var(--sr-green-700); }
.text-water { color: var(--sr-water-600) !important; }
.bg-water-soft { background: var(--sr-water-100); }
.bg-green-soft { background: var(--sr-green-100); }

/* Layout */
.sr-shell { display: flex; min-height: 100vh; }
.sr-sidebar {
  width: 248px; flex-shrink: 0; background: linear-gradient(180deg, var(--sr-green-900), #12482d 60%, #0d3321);
  color: #d7ecdf; position: sticky; top: 0; height: 100vh; overflow-y: auto; padding-bottom: 1.5rem;
}
.sr-brand { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.2rem; color: #fff; text-decoration: none; }
.sr-brand .logo { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, var(--sr-green-500), var(--sr-water-600));
  display: grid; place-items: center; font-size: 1.2rem; }
.sr-brand small { display: block; font-size: .68rem; color: #9fc9b0; letter-spacing: .02em; }
.sr-nav-section { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: #86b49a; padding: 1rem 1.2rem .35rem; }
.sr-nav a { display: flex; align-items: center; gap: .65rem; padding: .48rem 1.2rem; color: #d7ecdf; text-decoration: none; font-size: .92rem; border-left: 3px solid transparent; }
.sr-nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.sr-nav a.active { background: rgba(255,255,255,.1); border-left-color: var(--sr-sun-500); color: #fff; font-weight: 600; }
.sr-nav i { font-size: 1.05rem; width: 1.2rem; text-align: center; }
.sr-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sr-topbar { background: var(--sr-surface); border-bottom: 1px solid var(--sr-border); padding: .55rem 1.25rem; display: flex; align-items: center; gap: .75rem;
  position: sticky; top: 0; z-index: 1020; }
.sr-content { padding: 1.25rem; flex: 1; }
.sr-footer { padding: .75rem 1.25rem; font-size: .78rem; color: var(--sr-muted); border-top: 1px solid var(--sr-border); background: var(--sr-surface); }

@media (max-width: 991.98px) {
  .sr-sidebar { position: fixed; z-index: 1040; left: -260px; transition: left .2s ease; }
  .sr-sidebar.open { left: 0; box-shadow: 0 0 40px rgba(0,0,0,.35); }
  .sr-content { padding: .85rem; }
}

/* Indicadores de estado */
.sr-dot { width: .6rem; height: .6rem; border-radius: 50%; display: inline-block; background: #9aa; }
.sr-dot.ok { background: var(--sr-green-500); box-shadow: 0 0 0 3px rgba(46,155,95,.2); }
.sr-dot.warn { background: var(--sr-sun-500); }
.sr-dot.err { background: #d64545; }
.sr-conn { font-size: .8rem; color: var(--sr-muted); display: inline-flex; align-items: center; gap: .4rem; }

/* Cartões */
.card { border: 1px solid var(--sr-border); border-radius: .8rem; box-shadow: 0 1px 2px rgba(16,40,25,.04); }
.card-header { background: transparent; border-bottom: 1px solid var(--sr-border); font-weight: 600; }
.kpi { padding: .95rem 1rem; }
.kpi .label { font-size: .76rem; color: var(--sr-muted); text-transform: uppercase; letter-spacing: .04em; }
.kpi .value { font-size: 1.6rem; font-weight: 700; line-height: 1.15; }
.kpi .sub { font-size: .76rem; color: var(--sr-muted); }
.kpi .icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; }
.plot-card .moisture { font-size: 2rem; font-weight: 700; }
.moist-bar { height: 10px; background: #eef2ef; border-radius: 6px; position: relative; overflow: visible; }
.moist-bar .fill { height: 100%; border-radius: 6px; background: linear-gradient(90deg, #c98b3c, var(--sr-water-600)); }
.moist-bar .mark { position: absolute; top: -4px; width: 2px; height: 18px; background: #d64545; }
.moist-bar .mark.fc { background: var(--sr-green-700); }
.badge-source-simulated { background: #fff4d6; color: #7a5300; border: 1px dashed #d6a400; }
.badge-source-physical { background: var(--sr-green-100); color: var(--sr-green-900); border: 1px solid #9fd1b2; }
.estimate { font-style: italic; }
.estimate::after { content: " (estimativa)"; font-size: .72em; color: var(--sr-muted); font-style: normal; }
.flash-update { animation: flash 1.2s ease-out; }
@keyframes flash { from { background: #fff7cc; } to { background: transparent; } }
.chart-box { position: relative; height: 260px; }
.chart-box.tall { height: 320px; }
.table > :not(caption) > * > * { padding: .45rem .6rem; }
.table thead th { font-size: .76rem; text-transform: uppercase; letter-spacing: .03em; color: var(--sr-muted); font-weight: 600; }
.emergency-btn { font-weight: 700; letter-spacing: .02em; }
.sim-banner { background: repeating-linear-gradient(45deg, #fff8e1, #fff8e1 10px, #fff3cc 10px, #fff3cc 20px); border: 1px solid #f0d37a; }
.htmx-request .htmx-indicator { display: inline-block; }
.htmx-indicator { display: none; }
.login-bg { min-height: 100vh; background: radial-gradient(1200px 600px at 10% 10%, #2e9b5f33, transparent), linear-gradient(135deg, #0f3d26, #1c4f7a); }
