/* ── Variables ─────────────────────────────────────────────────── */
:root {
  --foret: #1a3a2a;
  --foret-light: #2a5a3e;
  --erable: #b5451b;
  --or: #c8922a;
  --creme: #faf6ef;
  --creme-dark: #f0ebe0;
  --text: #1e1e1e;
  --muted: #6c757d;
}

/* ── Base ──────────────────────────────────────────────────────── */
body {
  background: #f4f1eb;
  color: var(--text);
  font-family: 'Segoe UI', system-ui, sans-serif;
  font-size: 0.9rem;
}

/* ── Navbar ────────────────────────────────────────────────────── */
.navbar-foret {
  background: var(--foret) !important;
  border-bottom: 3px solid var(--or);
}
.navbar-foret .navbar-brand { color: var(--or) !important; letter-spacing: 0.5px; }
.navbar-foret .nav-link { color: rgba(255,255,255,0.8) !important; }
.navbar-foret .nav-link:hover { color: var(--or) !important; }

/* ── Footer ────────────────────────────────────────────────────── */
.footer-bar {
  background: var(--foret);
  color: rgba(255,255,255,0.5);
  font-size: 0.78rem;
  margin-top: 40px;
}

/* ── Cards ─────────────────────────────────────────────────────── */
.card-foret {
  background: white;
  border: 1px solid #ddd;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.07);
}
.card-foret .card-header {
  background: var(--foret);
  color: white;
  font-weight: 600;
  font-size: 0.88rem;
  padding: 8px 14px;
  border-bottom: none;
}
.card-foret .card-footer {
  background: var(--creme-dark);
  border-top: 1px solid #e0dbd0;
  font-size: 0.82rem;
}

/* ── Stat cards (dashboard) ────────────────────────────────────── */
.stat-card {
  background: white;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 14px 16px;
  text-align: center;
  border-top: 3px solid var(--or);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.stat-val { font-size: 1.4rem; font-weight: 700; color: var(--foret); }
.stat-lbl { font-size: 0.75rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.4px; }

/* ── Financial grid ────────────────────────────────────────────── */
.fin-cell {
  padding: 10px 6px;
  border-right: 1px solid #eee;
}
.fin-cell:last-child { border-right: none; }
.fin-label { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 2px; }
.fin-val { font-size: 1.05rem; font-weight: 600; color: var(--foret); }
.fin-cell.highlighted { background: var(--creme); }
.fin-cell.highlighted .fin-val { color: var(--erable); font-size: 1.1rem; }

/* ── Buttons ───────────────────────────────────────────────────── */
.btn-erable { background: var(--erable); color: white; border: none; }
.btn-erable:hover { background: #9a3a15; color: white; }
.btn-or { background: var(--or); color: #1a1a00; border: none; }
.btn-or:hover { background: #b07a20; color: #1a1a00; }
.btn-xs { padding: 2px 7px; font-size: 0.75rem; border-radius: 4px; }

/* ── Activity cards ────────────────────────────────────────────── */
.activity-card {
  border: 1px solid #e0dbd0;
  border-radius: 10px;
  background: white;
  transition: box-shadow 0.15s;
}
.activity-card:hover { box-shadow: 0 3px 10px rgba(0,0,0,0.1); }

.cost-badge { font-size: 0.78rem; }
.cost-lbl { color: var(--muted); font-size: 0.7rem; text-transform: uppercase; }
.cost-val { font-weight: 600; color: var(--foret); }

.revenue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.rev-item { background: var(--creme); border-radius: 6px; padding: 4px 6px; text-align: center; }
.rev-lbl { font-size: 0.68rem; color: var(--muted); text-transform: uppercase; }
.rev-val { font-size: 0.82rem; font-weight: 600; color: var(--foret); }

.badge-season {
  background: var(--foret-light);
  color: white;
  font-size: 0.72rem;
  border-radius: 10px;
}

/* ── Category section ──────────────────────────────────────────── */
.cat-section-header {
  color: var(--foret);
  font-weight: 700;
  border-left: 4px solid var(--or);
  padding-left: 10px;
  margin-bottom: 12px;
}
.cat-pill {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--foret);
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.activity-micro {
  padding: 4px 6px;
  border-bottom: 1px solid #f0ebe0;
  font-size: 0.82rem;
}
.activity-micro:last-child { border-bottom: none; }

/* ── AI sections ───────────────────────────────────────────────── */
.ai-section {
  border-left: 3px solid var(--or);
  padding: 8px 12px;
  margin-bottom: 10px;
  background: var(--creme);
  border-radius: 0 6px 6px 0;
}
.ai-section-title {
  font-weight: 700;
  font-size: 0.84rem;
  margin-bottom: 4px;
  color: var(--foret);
}
.preserve-nl { white-space: pre-wrap; font-size: 0.88rem; }

/* ── Misc helpers ──────────────────────────────────────────────── */
.text-foret { color: var(--foret) !important; }
.text-erable { color: var(--erable) !important; }
.text-or { color: var(--or) !important; }
.bg-foret { background: var(--foret) !important; }
.bg-cream { background: var(--creme) !important; }
.bg-foret-light { background: var(--foret-light) !important; color: white !important; }
.link-or { color: var(--or) !important; }
.font-mono { font-family: 'Consolas', monospace; font-size: 0.82rem !important; }
.border-bottom-light { border-bottom: 1px solid #f0ebe0; }
.text-inherit { color: inherit !important; }

/* ── Empty state ───────────────────────────────────────────────── */
.empty-state {
  text-align: center;
  padding: 60px 20px;
  color: var(--muted);
}

/* ── Table ─────────────────────────────────────────────────────── */
.table-header th { background: var(--creme-dark); color: var(--foret); font-size: 0.78rem; }
.table-hover > tbody > tr:hover td { background: #fdf9f2; }

/* Activity toggle button */
.activity-toggle {
  min-width: 28px;
  min-height: 28px;
  font-size: 0.8rem;
}

/* Nav tabs matching theme */
.nav-tabs .nav-link { color: var(--foret); border-radius: 6px 6px 0 0; }
.nav-tabs .nav-link.active { background: var(--foret); color: white !important; border-color: var(--foret); }
.nav-tabs .nav-link:hover:not(.active) { background: var(--creme-dark); }

/* Form label smaller */
.form-label { font-size: 0.82rem; font-weight: 600; margin-bottom: 3px; color: var(--foret); }
.form-control, .form-select {
  font-size: 0.88rem;
  border-color: #ccc;
}
.form-control:focus, .form-select:focus {
  border-color: var(--or);
  box-shadow: 0 0 0 0.2rem rgba(200,146,42,0.2);
}

/* ── Financial calculator rows ─────────────────────────────── */
.fin-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fin-row-label { min-width: 150px; font-size: 0.82rem; }
.fin-row-unit { font-size: 0.82rem; color: #888; white-space: nowrap; }
.fin-row-result { font-size: 0.88rem; min-width: 80px; font-family: monospace; }
.fin-input { max-width: 88px !important; font-size: 0.82rem !important; }
.fin-calc-total {
  border-top: 2px solid var(--foret);
  padding-top: 8px; margin-top: 8px;
}

/* ── Project selector cards ─────────────────────────────────── */
.project-select-card {
  border: 2px solid #ddd; border-radius: 8px;
  padding: 10px 14px; background: white; cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.project-select-card:hover { background: var(--creme); border-color: #bbb; }
.project-select-card.has-ai { border-color: var(--foret); }
.project-select-card:has(input:checked) {
  background: var(--creme); border-color: var(--or);
}
