:root{
  --green-900:#1B5E20;
  --green-700:#2E7D32;
  --green-100:#E8F5E9;
  --gold:#C9A227;
  --gold-light:#E7C766;
  --gray-50:#F6F8F6;
  --gray-100:#EEF2EF;
  --gray-300:#DDE5E1;
  --text-900:#1A241B;
  --text-600:#5B6B60;
  --radius:14px;
  --shadow-sm:0 4px 14px rgba(27,94,32,0.07);
  --shadow-md:0 12px 28px rgba(27,94,32,0.12);
}
*{box-sizing:border-box;}
body{
  font-family:'Poppins',sans-serif;background:var(--gray-50);color:var(--text-900);
  margin:0;
}
a{text-decoration:none;color:inherit;}

/* LOGIN PAGE */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--green-900),var(--green-700));padding:20px;
}
.login-card{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);
  padding:44px;width:100%;max-width:400px;
}
.login-logo{
  width:64px;height:64px;border-radius:50%;background:linear-gradient(145deg,var(--green-700),var(--green-900));
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  margin:0 auto 16px;border:2px solid var(--gold-light);
}
.login-card h4{text-align:center;margin-bottom:4px;font-weight:700;}
.login-card p.sub{text-align:center;color:var(--text-600);font-size:.85rem;margin-bottom:28px;}
.login-card label{font-size:.82rem;font-weight:600;margin-bottom:6px;display:block;}
.login-card .form-control{
  border-radius:10px;border:1px solid var(--gray-300);padding:11px 14px;margin-bottom:16px;font-size:.9rem;
}
.login-card .form-control:focus{border-color:var(--green-700);box-shadow:0 0 0 3px rgba(46,125,50,.15);}
.btn-login{
  width:100%;background:var(--green-700);color:#fff;border:none;padding:12px;border-radius:10px;
  font-weight:600;transition:.25s;
}
.btn-login:hover{background:var(--green-900);}
.back-site{display:block;text-align:center;margin-top:20px;font-size:.82rem;color:var(--text-600);}
.back-site:hover{color:var(--green-700);}

/* ADMIN LAYOUT */
.admin-wrap{display:flex;min-height:100vh;}
.sidebar{
  width:260px;flex-shrink:0;background:linear-gradient(180deg,var(--green-900),#16481a);color:#fff;
  padding:24px 0;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 24px 24px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:16px;}
.sidebar-brand .logo{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;border:2px solid var(--gold-light);}
.sidebar-brand strong{display:block;font-size:.95rem;}
.sidebar-brand span{font-size:.7rem;color:rgba(255,255,255,.6);}
.sidebar-nav{padding:0 14px;}
.sidebar-nav .nav-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.45);padding:14px 12px 6px;}
.sidebar-nav a{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;font-size:.87rem;
  color:rgba(255,255,255,.85);margin-bottom:2px;transition:.2s;
}
.sidebar-nav a i{width:18px;text-align:center;}
.sidebar-nav a:hover{background:rgba(255,255,255,.08);color:#fff;}
.sidebar-nav a.active{background:var(--gold);color:#2b2408;font-weight:600;}

.main-content{flex:1;min-width:0;}
.topbar{
  background:#fff;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--gray-300);position:sticky;top:0;z-index:10;
}
.topbar h5{margin:0;font-weight:700;font-size:1.05rem;}
.topbar .user-chip{display:flex;align-items:center;gap:10px;font-size:.85rem;}
.topbar .user-chip .avatar{width:36px;height:36px;border-radius:50%;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;font-weight:700;}
.page-body{padding:28px;}

.card-panel{background:#fff;border-radius:var(--radius);border:1px solid var(--gray-300);box-shadow:var(--shadow-sm);padding:24px;margin-bottom:24px;}
.stat-box{
  background:#fff;border-radius:var(--radius);border:1px solid var(--gray-300);box-shadow:var(--shadow-sm);
  padding:22px;display:flex;align-items:center;gap:16px;
}
.stat-box .ic{width:52px;height:52px;border-radius:12px;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.stat-box h3{margin:0;font-size:1.5rem;font-weight:800;}
.stat-box span{font-size:.78rem;color:var(--text-600);}

.table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-600);border-bottom:2px solid var(--gray-300);}
.table td{vertical-align:middle;font-size:.88rem;}
.table img.thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;}
.badge-status{padding:5px 12px;border-radius:50px;font-size:.72rem;font-weight:600;}
.badge-aktif,.badge-terbit,.badge-tersedia,.badge-akan_datang{background:var(--green-100);color:var(--green-700);}
.badge-nonaktif,.badge-draft,.badge-habis,.badge-sembunyi,.badge-selesai{background:var(--gray-100);color:var(--text-600);}

.btn-brand{background:var(--green-700);border-color:var(--green-700);color:#fff;}
.btn-brand:hover{background:var(--green-900);border-color:var(--green-900);color:#fff;}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#2b2408;font-weight:600;}
.btn-gold:hover{background:var(--gold-light);border-color:var(--gold-light);color:#2b2408;}
.btn-icon{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;}

.page-title-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:22px;}
.page-title-row h4{margin:0;font-weight:700;}
.page-title-row p{margin:2px 0 0;color:var(--text-600);font-size:.85rem;}

@media (max-width:900px){
  .sidebar{position:fixed;left:-260px;z-index:1000;transition:left .3s;}
  .sidebar.open{left:0;}
  .admin-wrap{display:block;}
}
