:root{
  --fn-green:#1f8a53;
  --fn-green-dark:#166a40;
  --fn-bg:#f4f7f5;
  --fn-sidebar-bg:#0f2e1f;
  --fn-sidebar-text:#cfe8db;
}

body{ background:var(--fn-bg); font-family:'Segoe UI',system-ui,-apple-system,sans-serif; }

/* ---------- AUTH ---------- */
.auth-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#0f2e1f 0%, #1f8a53 100%);
  padding:20px;
}
.auth-card{ background:#fff; border-radius:16px; padding:32px; width:100%; max-width:420px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.auth-brand{ display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.auth-brand i{ font-size:2.2rem; color:var(--fn-green); }
.auth-brand-name{ font-size:1.4rem; font-weight:700; color:var(--fn-green-dark); }
.auth-brand-tag{ font-size:.75rem; color:#6b7280; }

/* ---------- APP SHELL ---------- */
#app{ display:flex; min-height:100vh; }
.fn-sidebar{
  width:240px; flex-shrink:0; background:var(--fn-sidebar-bg); color:var(--fn-sidebar-text);
  min-height:100vh; padding:16px 0; position:sticky; top:0; align-self:flex-start;
}
.fn-sidebar-brand{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:1.15rem; color:#fff; padding:0 20px 18px; }
.fn-nav-group{ font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:#7fae95; padding:14px 20px 6px; }
.fn-nav-link{
  display:flex; align-items:center; gap:10px; padding:9px 20px; color:var(--fn-sidebar-text);
  text-decoration:none; font-size:.9rem; border-left:3px solid transparent;
}
.fn-nav-link i{ width:18px; text-align:center; }
.fn-nav-link:hover{ background:rgba(255,255,255,.06); color:#fff; }
.fn-nav-link.active{ background:rgba(255,255,255,.1); color:#fff; border-left-color:#4ade80; font-weight:600; }

.fn-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.fn-topbar{
  height:60px; background:#fff; border-bottom:1px solid #e5e7eb; display:flex; align-items:center;
  justify-content:space-between; padding:0 24px; position:sticky; top:0; z-index:10;
}
.fn-topbar-title{ font-weight:700; font-size:1.1rem; color:#111827; }
.fn-content{ padding:24px; }
.fn-section{ }

.fn-card{ border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.fn-card .card-header{ background:#fff; font-weight:600; border-bottom:1px solid #eee; }

.kpi-card{
  background:#fff; border-radius:10px; padding:18px; border:1px solid #e5e7eb;
  display:flex; flex-direction:column; gap:4px;
}
.kpi-card .kpi-value{ font-size:1.6rem; font-weight:700; color:var(--fn-green-dark); }
.kpi-card .kpi-label{ font-size:.8rem; color:#6b7280; }
.kpi-card i{ font-size:1.4rem; color:var(--fn-green); }

.badge-stage{ font-size:.72rem; padding:.35em .6em; }

table.table thead th{ font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; color:#6b7280; border-top:none; }

@media (max-width: 768px){
  .fn-sidebar{ width:64px; }
  .fn-sidebar-brand span, .fn-nav-group, .fn-nav-link span{ display:none; }
  .fn-nav-link{ justify-content:center; padding:10px; }
}
