/* ============================================================
   NatureFarms Admin Panel – CSS
   ============================================================ */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

:root {
  --green-dark:  #1a5c38;
  --green-mid:   #2d7a4f;
  --green-light: #6db33f;
  --green-lime:  #8bc34a;
  --orange:      #e8750a;
  --amber:       #f59e0b;
  --cream:       #fdf8f0;
  --sidebar-w:   260px;
  --topbar-h:    64px;
  --border:      #e5e7eb;
  --text-dark:   #1a1a2e;
  --text-mid:    #4a5568;
  --text-light:  #718096;
  --shadow:      0 1px 4px rgba(0,0,0,.08);
  --shadow-md:   0 4px 16px rgba(0,0,0,.12);
  --radius:      10px;
}

body {
  font-family:'Poppins',sans-serif;
  background:#f4f6f9;
  color:var(--text-dark);
  font-size:14px;
  line-height:1.5;
}

/* ---- Layout ---- */
.admin-wrap { display:flex; min-height:100vh; }

/* ---- Sidebar ---- */
.admin-sidebar {
  width:var(--sidebar-w);
  background:var(--green-dark);
  position:fixed;
  top:0; left:0; bottom:0;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  z-index:100;
  transition:transform .3s;
}
.admin-sidebar .sidebar-logo {
  padding:20px;
  border-bottom:1px solid rgba(255,255,255,.1);
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}
.admin-sidebar .sidebar-logo img { height:40px; border-radius:8px; }
.admin-sidebar .sidebar-logo span { font-family:'Playfair Display',serif; color:white; font-size:1.1rem; font-weight:700; }
.admin-sidebar .sidebar-logo small { color:rgba(255,255,255,.6); font-size:.65rem; display:block; }

.admin-sidebar nav { flex:1; padding:16px 0; }
.admin-sidebar nav a {
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 20px;
  color:rgba(255,255,255,.75);
  text-decoration:none;
  font-size:.85rem;
  font-weight:500;
  transition:all .2s;
  border-left:3px solid transparent;
}
.admin-sidebar nav a:hover,
.admin-sidebar nav a.active {
  background:rgba(255,255,255,.1);
  color:white;
  border-left-color:var(--green-lime);
}
.admin-sidebar nav a i { width:18px; text-align:center; font-size:.95rem; }
.admin-sidebar .nav-label {
  padding:16px 20px 6px;
  font-size:.65rem;
  color:rgba(255,255,255,.4);
  text-transform:uppercase;
  letter-spacing:1.5px;
}
.admin-sidebar .sidebar-footer {
  padding:16px 20px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:.75rem;
  color:rgba(255,255,255,.5);
}
.admin-sidebar .sidebar-footer a { color:rgba(255,255,255,.7); }

/* ---- Main content ---- */
.admin-main {
  margin-left:var(--sidebar-w);
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

/* ---- Top bar ---- */
.admin-topbar {
  height:var(--topbar-h);
  background:white;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 28px;
  position:sticky;
  top:0;
  z-index:50;
  box-shadow:var(--shadow);
}
.admin-topbar .page-title { font-size:1.1rem; font-weight:700; color:var(--text-dark); }
.admin-topbar .topbar-right { display:flex; align-items:center; gap:16px; }
.admin-topbar .admin-badge {
  display:flex; align-items:center; gap:8px;
  background:var(--cream); border-radius:50px; padding:6px 14px;
  font-size:.8rem; font-weight:600; color:var(--green-dark);
}
.admin-topbar .admin-badge img { width:30px; height:30px; border-radius:50%; }

/* ---- Page body ---- */
.admin-body { padding:28px; flex:1; }

/* ---- Stat cards ---- */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-bottom:28px; }
.stat-card {
  background:white;
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow);
  display:flex;
  align-items:center;
  gap:16px;
  border-left:4px solid var(--green-mid);
}
.stat-card .stat-icon {
  width:52px; height:52px; border-radius:12px;
  background:linear-gradient(135deg,var(--green-dark),var(--green-mid));
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.stat-card .stat-icon i { color:white; font-size:1.3rem; }
.stat-card .stat-val { font-size:1.6rem; font-weight:800; color:var(--text-dark); line-height:1; }
.stat-card .stat-label { font-size:.75rem; color:var(--text-light); margin-top:3px; }
.stat-card.orange { border-left-color:var(--orange); }
.stat-card.orange .stat-icon { background:linear-gradient(135deg,var(--orange),#f5a623); }
.stat-card.amber { border-left-color:var(--amber); }
.stat-card.amber .stat-icon { background:linear-gradient(135deg,var(--amber),#f59e0b); }
.stat-card.red { border-left-color:#e53e3e; }
.stat-card.red .stat-icon { background:linear-gradient(135deg,#e53e3e,#fc8181); }

/* ---- Card / Panel ---- */
.admin-card {
  background:white;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  margin-bottom:24px;
}
.admin-card-header {
  padding:16px 22px;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.admin-card-header h2 { font-size:.95rem; font-weight:700; color:var(--text-dark); }
.admin-card-body { padding:22px; }

/* ---- Tables ---- */
.admin-table { width:100%; border-collapse:collapse; font-size:.84rem; }
.admin-table thead th {
  padding:10px 14px;
  background:#f8f9fa;
  font-weight:700;
  color:var(--text-mid);
  text-align:left;
  border-bottom:2px solid var(--border);
  white-space:nowrap;
}
.admin-table tbody td {
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  color:var(--text-dark);
  vertical-align:middle;
}
.admin-table tbody tr:hover { background:#f9fafb; }
.admin-table tbody tr:last-child td { border-bottom:none; }

/* ---- Badges ---- */
.badge {
  display:inline-block;
  padding:3px 10px;
  border-radius:50px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.3px;
}
.badge-success  { background:#d1fae5; color:#065f46; }
.badge-warning  { background:#fef3c7; color:#92400e; }
.badge-danger   { background:#fee2e2; color:#991b1b; }
.badge-info     { background:#dbeafe; color:#1e40af; }
.badge-gray     { background:#f3f4f6; color:#6b7280; }

/* ---- Buttons ---- */
.btn-admin { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:8px; border:none; cursor:pointer; font-size:.82rem; font-weight:600; text-decoration:none; transition:all .2s; }
.btn-admin-primary { background:var(--green-dark); color:white; }
.btn-admin-primary:hover { background:var(--green-mid); }
.btn-admin-danger { background:#e53e3e; color:white; }
.btn-admin-danger:hover { background:#c53030; }
.btn-admin-outline { background:white; color:var(--text-mid); border:1px solid var(--border); }
.btn-admin-outline:hover { background:#f9fafb; }
.btn-admin-sm { padding:5px 12px; font-size:.76rem; }

/* ---- Forms ---- */
.admin-form-group { margin-bottom:18px; }
.admin-form-group label { display:block; font-size:.8rem; font-weight:600; color:var(--text-mid); margin-bottom:5px; }
.admin-input {
  width:100%; padding:9px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  font-size:.85rem;
  font-family:inherit;
  color:var(--text-dark);
  transition:border-color .2s;
}
.admin-input:focus { outline:none; border-color:var(--green-mid); box-shadow:0 0 0 3px rgba(45,122,79,.1); }
.admin-select { background-color:white; }

/* ---- Filters bar ---- */
.filter-bar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.filter-bar .admin-input { max-width:240px; }

/* ---- Pagination ---- */
.pagination { display:flex; gap:6px; align-items:center; margin-top:16px; }
.pagination a, .pagination span {
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  border-radius:8px; font-size:.82rem; text-decoration:none; font-weight:600;
  border:1px solid var(--border); color:var(--text-mid);
}
.pagination .current { background:var(--green-dark); color:white; border-color:var(--green-dark); }
.pagination a:hover { background:var(--cream); }

/* ---- Alert ---- */
.admin-alert { padding:12px 16px; border-radius:8px; font-size:.84rem; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.admin-alert-success { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.admin-alert-error   { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
.admin-alert-info    { background:#dbeafe; color:#1e40af; border:1px solid #93c5fd; }

/* ---- Dashboard grid ---- */
.dash-grid { display:grid; grid-template-columns:2fr 1fr; gap:24px; }
@media(max-width:960px) { .dash-grid { grid-template-columns:1fr; } }

/* ---- Responsive ---- */
@media(max-width:768px) {
  .admin-sidebar { transform:translateX(-100%); }
  .admin-sidebar.open { transform:translateX(0); }
  .admin-main { margin-left:0; }
  .admin-body { padding:16px; }
  .stat-grid { grid-template-columns:repeat(2,1fr); }
}
