/* ─── ADMIN LAYOUT ─── */
.admin-body { background:#F0F4F0; min-height:100vh; display:flex; flex-direction:column; }
.login-body { background:#F0F4F0; min-height:100vh; display:flex; align-items:center; justify-content:center; }

.admin-header { background:#004D2C; }
.admin-nav {
  max-width:1400px; margin:0 auto; padding:.9rem 1.5rem;
  display:flex; align-items:center; gap:1rem;
}
.admin-brand { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.admin-title { color:#FCD116; font-weight:800; font-size:1rem; }
.logo-mark-sm { width:30px; height:30px; background:#FCD116; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }

.admin-nav-links { display:flex; gap:.25rem; flex:1; justify-content:center; }
.admin-nav-link {
  display:flex; align-items:center; gap:.4rem;
  color:rgba(255,255,255,.65); font-size:.82rem; font-weight:600;
  padding:.4rem .9rem; border-radius:7px; text-decoration:none;
  transition:background .15s, color .15s;
}
.admin-nav-link:hover { background:rgba(255,255,255,.1); color:#fff; }
.admin-nav-link.active { background:rgba(255,255,255,.15); color:#fff; }

.admin-user { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.admin-avatar { width:28px; height:28px; background:rgba(252,209,22,.2); border:1px solid #FCD116; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:800; color:#FCD116; }
.admin-username { color:#FCD116; font-size:.82rem; font-weight:600; }
.admin-logout { color:rgba(255,255,255,.4); font-size:.78rem; text-decoration:none; transition:color .15s; }
.admin-logout:hover { color:rgba(255,255,255,.8); }

.admin-main { max-width:1400px; margin:0 auto; padding:1.5rem; flex:1; width:100%; }
.admin-footer { background:#004D2C; padding:.75rem 1.5rem; margin-top:auto; }

/* ─── STATS ─── */
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.9rem; margin-bottom:1.25rem; }
.stat-card { background:#fff; border:1px solid #E8E8E8; border-radius:10px; padding:1rem 1.1rem; display:flex; align-items:center; gap:.85rem; }
.stat-icon { width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.stat-label { font-size:.72rem; color:#888; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.2rem; }
.stat-num { font-size:1.6rem; font-weight:800; color:#004D2C; line-height:1; }

/* ─── DASH GRID ─── */
.dash-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:1.1rem; }

/* ─── ADMIN CARD ─── */
.admin-card { background:#fff; border:1px solid #E8E8E8; border-radius:12px; overflow:hidden; }
.admin-card-header {
  padding:.85rem 1.1rem; border-bottom:1px solid #F0F0F0; background:#F9FBF9;
  display:flex; align-items:center; justify-content:space-between;
}
.admin-card-title { display:flex; align-items:center; gap:.5rem; font-size:.82rem; font-weight:800; color:#004D2C; text-transform:uppercase; letter-spacing:.05em; }
.admin-card-body { padding:1.1rem; }
.admin-link { font-size:.8rem; color:#006B3C; font-weight:700; text-decoration:none; }
.admin-link:hover { text-decoration:underline; }
.date-badge-sm { font-size:.75rem; color:#006B3C; font-weight:700; background:#E8F5ED; padding:.25rem .65rem; border-radius:999px; }

/* ─── FORMS ─── */
.form-group { margin-bottom:.85rem; }
.form-label { display:flex; align-items:center; gap:.35rem; font-size:.8rem; font-weight:700; color:#444; margin-bottom:.35rem; }
.form-control {
  width:100%; border:1px solid #E0E0E0; border-radius:8px;
  padding:.6rem .85rem; font-size:.88rem; font-family:inherit;
  background:#FAFAFA; color:#1A1A1A;
  transition:border-color .15s, background .15s;
}
.form-control:focus { outline:none; border-color:#006B3C; background:#fff; }
select.form-control { cursor:pointer; }

/* ─── BUTTONS ─── */
.btn-primary {
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%; background:#006B3C; color:#fff;
  border:none; border-radius:8px; padding:.8rem 1.2rem;
  font-size:.9rem; font-weight:700; cursor:pointer;
  transition:background .15s; font-family:inherit;
}
.btn-primary:hover { background:#004D2C; }
.btn-primary:disabled { opacity:.5; cursor:not-allowed; }

.btn-sm-green {
  display:inline-flex; align-items:center; gap:.35rem;
  background:#006B3C; color:#fff; border:none; border-radius:7px;
  padding:.4rem .9rem; font-size:.78rem; font-weight:700; cursor:pointer;
  transition:background .15s; font-family:inherit;
}
.btn-sm-green:hover { background:#004D2C; }

.btn-back {
  display:inline-flex; align-items:center; gap:.4rem;
  background:none; border:1px solid #E0E0E0; border-radius:8px;
  padding:.5rem 1rem; font-size:.82rem; font-weight:600; color:#555;
  cursor:pointer; text-decoration:none; transition:border-color .15s;
  font-family:inherit;
}
.btn-back:hover { border-color:#006B3C; color:#006B3C; }

/* ─── FILE DROP ─── */
.file-drop {
  border:2px dashed #E0E0E0; border-radius:10px; padding:1.5rem;
  text-align:center; cursor:pointer; transition:border-color .2s, background .2s;
  position:relative; margin-bottom:.5rem;
}
.file-drop:hover, .file-drop.active { border-color:#006B3C; background:#F0FFF4; }
.file-drop input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.file-drop-icon { margin-bottom:.4rem; }
.file-drop-label { font-size:.85rem; color:#555; font-weight:600; }
.file-drop-hint { font-size:.73rem; color:#9E9E9E; margin-top:.2rem; }
.file-name-display { font-size:.8rem; color:#006B3C; font-weight:700; margin-top:.4rem; display:none; }

/* ─── TABLE ─── */
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th { padding:.65rem 1rem; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:#888; background:#FAFAFA; text-align:left; border-bottom:1px solid #EEEEEE; }
.admin-table td { padding:.65rem 1rem; font-size:.85rem; border-bottom:1px solid #F5F5F5; color:#1A1A1A; }
.admin-table tr:last-child td { border-bottom:none; }
.admin-table tr:hover td { background:#FAFAFA; }

/* ─── BADGES ─── */
.badge { display:inline-block; padding:.2rem .65rem; border-radius:999px; font-size:.72rem; font-weight:700; }
.badge-success { background:#E8F5ED; color:#1B5E20; }
.badge-danger { background:#FFEBEE; color:#B71C1C; }

/* ─── ACTION BUTTONS ─── */
.action-btns { display:flex; gap:.4rem; }
.action-btn { width:28px; height:28px; border-radius:6px; display:flex; align-items:center; justify-content:center; text-decoration:none; transition:background .15s; }
.action-view { background:#E8F5ED; color:#006B3C; }
.action-view:hover { background:#C8E6C9; }
.action-toggle { background:#FFFDE7; color:#7B5E00; }
.action-toggle:hover { background:#FFF9C4; }
.action-delete { background:#FFEBEE; color:#B71C1C; }
.action-delete:hover { background:#FFCDD2; }

/* ─── ADMINS GRID ─── */
.admins-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:.75rem; }
.admin-user-card { border:1px solid #E8E8E8; border-radius:9px; padding:.85rem; display:flex; align-items:center; gap:.6rem; }
.add-card { border:1px dashed #E0E0E0; cursor:pointer; justify-content:center; flex-direction:column; gap:.3rem; color:#9E9E9E; font-size:.8rem; font-weight:600; text-align:center; }
.add-card:hover { border-color:#006B3C; color:#006B3C; background:#F0FFF4; }
.admin-avatar-lg { width:36px; height:36px; background:#E8F5ED; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; font-weight:800; color:#004D2C; flex-shrink:0; }
.admin-user-info { flex:1; }
.admin-user-name { font-size:.85rem; font-weight:700; color:#1A1A1A; }
.admin-user-role { font-size:.73rem; color:#888; }
.admin-user-actions { flex-shrink:0; }

/* ─── MODAL ─── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; z-index:1000; }
.modal-box { background:#fff; border-radius:16px; padding:1.5rem; width:100%; max-width:420px; box-shadow:0 20px 60px rgba(0,0,0,.2); }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.modal-title { font-size:1.1rem; font-weight:800; color:#004D2C; }
.modal-close { background:none; border:none; cursor:pointer; color:#888; padding:.25rem; border-radius:6px; }
.modal-close:hover { background:#F5F5F5; color:#1A1A1A; }

/* ─── LOGIN ─── */
.login-wrapper { width:100%; max-width:400px; padding:1rem; }
.login-card { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,.12); }
.login-header { background:#004D2C; padding:1.75rem; text-align:center; }
.login-logo { width:52px; height:52px; background:rgba(252,209,22,.15); border:2px solid #FCD116; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px; margin:0 auto .75rem; }
.login-title { color:#fff; font-size:1.1rem; font-weight:800; margin-bottom:.25rem; }
.login-sub { color:rgba(255,255,255,.45); font-size:.82rem; }
.login-body-inner { padding:1.5rem; }

/* ─── ALERTS ─── */
.messages-container { margin-bottom:1.25rem; }
.alert { padding:.75rem 1.1rem; border-radius:9px; font-size:.88rem; margin-bottom:.5rem; display:flex; align-items:center; gap:.5rem; }
.alert-success, .alert-messages-success { background:#E8F5ED; border:1px solid #A5D6A7; color:#1B5E20; }
.alert-error, .alert-messages-error, .alert-danger { background:#FFEBEE; border:1px solid #EF9A9A; color:#B71C1C; }
.alert-warning { background:#FFFDE7; border:1px solid #FCD116; color:#7B5E00; }

/* ─── DATE HEADER (public) ─── */
.date-header { background:#F7FAF7; border:1px solid #E0EDE0; border-radius:12px; padding:1rem 1.5rem; display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.date-label { display:flex; align-items:center; gap:.4rem; font-size:.72rem; font-weight:700; color:#888; text-transform:uppercase; letter-spacing:.07em; margin-bottom:.3rem; }
.date-value { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:800; color:#004D2C; }
.date-badge { background:#E8F5ED; border:1px solid #A5D6A7; border-radius:9px; padding:.5rem .9rem; text-align:center; }
.date-badge-label { font-size:.7rem; color:#2E7D32; font-weight:700; }
.date-badge-time { font-size:1rem; font-weight:800; color:#004D2C; }

/* ─── EMPTY STATE ─── */
.empty-state { text-align:center; padding:3rem 2rem; }
.empty-icon { width:64px; height:64px; background:#E8F5ED; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; }
.empty-title { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:800; color:#004D2C; margin-bottom:.6rem; }
.empty-desc { font-size:.95rem; color:#666; max-width:420px; margin:0 auto; line-height:1.65; }
.empty-hint { margin-top:.9rem; font-size:.82rem; color:#9E9E9E; }

@media(max-width:768px){
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .dash-grid { grid-template-columns:1fr; }
  .admin-nav { flex-wrap:wrap; gap:.5rem; }
  .admin-nav-links { order:3; width:100%; justify-content:flex-start; }
}
