:root{
  --brand:#0f6e4f;
  --brand-dark:#0a4f38;
  --brand-soft:#e6f4ee;
  --accent:#f5b400;
  --ink:#1f2937;
}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--ink);background:#fafafa;}
a{color:var(--brand);}
a:hover{color:var(--brand-dark);}

/* ===== Public nav ===== */
.site-nav{background:linear-gradient(90deg,var(--brand-dark),var(--brand));}
.site-nav .nav-link{color:rgba(255,255,255,.85);font-weight:500;}
.site-nav .nav-link.active,.site-nav .nav-link:hover{color:#fff;}
.site-nav .navbar-brand{color:#fff!important;letter-spacing:.3px;}

/* ===== Hero ===== */
.hero{
  background:linear-gradient(135deg,#0a4f38 0%,#0f6e4f 60%,#1a8b66 100%);
  color:#fff;border-radius:18px;padding:60px 40px;margin-bottom:30px;
  position:relative;overflow:hidden;
}
.hero h1{font-weight:700;font-size:2.4rem;}
.hero p{opacity:.92;font-size:1.1rem;max-width:680px;}
.hero::after{
  content:"";position:absolute;right:-60px;bottom:-60px;width:280px;height:280px;
  background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);border-radius:50%;
}
.hero .stat{background:rgba(255,255,255,.12);border-radius:12px;padding:18px;text-align:center;}
.hero .stat .num{font-size:1.9rem;font-weight:700;}

/* ===== Cards ===== */
.card{border:0;border-radius:14px;box-shadow:0 2px 14px rgba(0,0,0,.05);}
.card-header{background:#fff;border-bottom:1px solid #eee;font-weight:600;}
.section-title{font-weight:700;color:var(--brand-dark);margin:30px 0 18px;display:flex;align-items:center;gap:10px;}
.section-title::before{content:"";width:6px;height:24px;background:var(--accent);border-radius:3px;}

.feature-card{background:#fff;border-radius:14px;padding:24px;height:100%;transition:.2s;border:1px solid #eee;}
.feature-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(0,0,0,.08);}
.feature-card .icon{
  width:54px;height:54px;border-radius:14px;background:var(--brand-soft);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--brand);margin-bottom:14px;
}

.badge-soft{background:var(--brand-soft);color:var(--brand-dark);font-weight:500;}
.btn-brand{background:var(--brand);color:#fff;}
.btn-brand:hover{background:var(--brand-dark);color:#fff;}

/* ===== Tables ===== */
.table thead th{background:var(--brand-soft);color:var(--brand-dark);font-weight:600;border:0;}
.table-hover tbody tr:hover{background:#f7fbf9;}

/* ===== Footer ===== */
.site-footer{background:#0a2f23;color:rgba(255,255,255,.88);}
.site-footer a{color:#ffffff;text-decoration:none;opacity:.92;}
.site-footer a:hover{color:#ffd166;opacity:1;text-decoration:underline;}
.site-footer h5,.site-footer h6{color:#ffffff !important;font-weight:700;margin-bottom:12px;letter-spacing:.3px;}
.site-footer ul li{padding:3px 0;}
.site-footer hr{border-color:rgba(255,255,255,.18)!important;opacity:1;}
.site-footer .small{color:rgba(255,255,255,.9);}

/* ===== Admin ===== */
.admin-wrap{display:flex;min-height:100vh;}
.admin-sidebar{
  width:250px;background:#0a2f23;color:#dfeee6;flex-shrink:0;
  display:flex;flex-direction:column;
}
.admin-sidebar .brand{padding:22px 20px;font-size:1.2rem;font-weight:700;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;}
.admin-sidebar a{
  color:#dfeee6;padding:11px 22px;display:flex;align-items:center;gap:10px;
  text-decoration:none;border-left:3px solid transparent;font-size:.95rem;
}
.admin-sidebar a:hover{background:rgba(255,255,255,.06);}
.admin-sidebar a.active{background:rgba(255,255,255,.09);border-left-color:var(--accent);color:#fff;}
.admin-sidebar .sub-label{padding:18px 22px 6px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);}

.admin-main{flex:1;background:#f3f5f7;min-width:0;}
.admin-topbar{background:#fff;padding:12px 24px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;}
.admin-body{padding:24px;}
.stat-card{background:#fff;border-radius:14px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 10px rgba(0,0,0,.04);}
.stat-card .icon{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;}
.stat-card .num{font-size:1.6rem;font-weight:700;line-height:1;}
.stat-card .lbl{color:#6b7280;font-size:.9rem;}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a4f38,#1a8b66);}
.login-card{background:#fff;border-radius:18px;padding:34px;width:380px;box-shadow:0 14px 40px rgba(0,0,0,.18);}
.login-card h3{color:var(--brand-dark);font-weight:700;}
