.admin-body{ background:var(--cream-2); }

/* the hidden attribute must always win over display:flex etc. */
[hidden]{ display:none !important; }

/* ---------------- Login ---------------- */
.login-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--indigo) 0%, var(--indigo-deep) 100%);
  padding:24px;
}
.login-card{
  background:var(--white); border-radius:24px; padding:40px 34px;
  width:100%; max-width:400px; text-align:center;
  box-shadow:var(--shadow-deep);
}
.login-logo{ width:64px; height:64px; border-radius:50%; margin:0 auto 14px; object-fit:cover; }
.login-card h1{ font-size:1.5rem; }
.login-card .field{ text-align:left; }

/* ---------------- Header ---------------- */
.admin-header{ background:var(--white); border-bottom:1px solid rgba(22,33,91,.1); position:sticky; top:0; z-index:20; }
.admin-header-inner{
  width:min(1280px,94%); margin-inline:auto; padding:14px 0;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.admin-header .brand img{ height:44px; width:44px; }
.admin-header-right{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.admin-email{ font-size:.85rem; color:#6b6046; font-weight:700; }

/* ---------------- Main layout ---------------- */
.admin-main{ width:min(1280px,94%); margin-inline:auto; padding:30px 0 70px; }

.stat-cards{ display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); margin-bottom:30px; }
.stat-card{
  background:var(--white); border-radius:18px; padding:20px 22px;
  box-shadow:var(--shadow-soft); border-left:6px solid var(--marigold);
}
.stat-card.gold{ border-left-color:var(--gold); }
.stat-card.leaf{ border-left-color:var(--leaf); }
.stat-card.indigo{ border-left-color:var(--indigo); }
.stat-card span{ display:block; font-family:'Baloo 2',cursive; font-size:2rem; color:var(--indigo); }
.stat-card label{ font-size:.85rem; color:#6b6046; font-weight:700; }

.admin-tabs{ display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap; }
.tab-btn{
  border:2px solid var(--indigo); background:transparent; color:var(--indigo);
  padding:9px 20px; border-radius:999px; font-family:'Baloo 2',cursive; font-weight:700;
  cursor:pointer;
}
.tab-btn.active{ background:var(--indigo); color:var(--white); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }

.panel-toolbar{ display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.panel-toolbar input, .panel-toolbar select{
  border:2px solid #E7DCC1; border-radius:10px; padding:9px 14px; font-family:'Nunito',sans-serif;
  background:var(--white);
}
.panel-toolbar input{ flex:1; min-width:220px; }

.table-wrap{ background:var(--white); border-radius:18px; box-shadow:var(--shadow-soft); overflow-x:auto; }
table{ width:100%; border-collapse:collapse; min-width:900px; }
thead th{
  text-align:left; font-family:'Baloo 2',cursive; color:var(--indigo);
  padding:14px 16px; border-bottom:2px solid var(--cream-2); font-size:.85rem; white-space:nowrap;
}
tbody td{ padding:12px 16px; border-bottom:1px solid var(--cream-2); font-size:.88rem; vertical-align:top; }
tbody tr:hover{ background:var(--cream); }
.empty-row{ text-align:center; padding:34px !important; color:#8a8062; }
.msg-cell{ max-width:220px; }

.status-select{
  border:1px solid #E7DCC1; border-radius:8px; padding:5px 8px; font-family:'Nunito',sans-serif; font-size:.82rem;
  background:var(--cream);
}
.row-delete{
  border:none; background:#FBE7E1; color:#B4401B; border-radius:8px; padding:6px 10px; cursor:pointer; font-weight:700;
}
.row-delete:hover{ background:#F6CFC3; }

.status-pill{
  display:inline-block; padding:3px 10px; border-radius:999px; font-size:.75rem; font-weight:800;
  font-family:'Baloo 2',cursive;
}
.status-pill.new{ background:#FBE7E1; color:#B4401B; }
.status-pill.contacted{ background:#FDF1D6; color:#8A5B0A; }
.status-pill.enrolled{ background:#E7F3E8; color:var(--leaf); }
.status-pill.closed, .status-pill.read, .status-pill.replied{ background:#E9E9F2; color:#4b4a63; }

/* ---------------- Gallery upload / Events form ---------------- */
.upload-card{
  background:var(--white); border-radius:18px; box-shadow:var(--shadow-soft);
  padding:22px 24px; margin-bottom:22px;
}
.upload-card h3{ margin-bottom:4px; }
.upload-row{ display:flex; gap:16px; align-items:flex-end; flex-wrap:wrap; margin-top:14px; }
.upload-card .field label{ font-weight:800; color:var(--indigo); font-size:.85rem; font-family:'Baloo 2',cursive; display:block; margin-bottom:6px; }
.upload-card .field input, .upload-card .field select, .upload-card .field textarea{
  width:100%; border:2px solid #E7DCC1; border-radius:10px; padding:9px 12px; font-family:'Nunito',sans-serif; background:var(--cream);
}
.upload-card .field textarea{ min-height:70px; resize:vertical; }
.upload-card .form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.upload-card .field.full{ grid-column:1/-1; }
@media (max-width:640px){ .upload-card .form-grid{ grid-template-columns:1fr; } }

.admin-photo-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:16px;
}
.admin-photo-card{
  background:var(--white); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
}
.admin-photo-card img{ width:100%; height:150px; object-fit:contain; background:var(--cream); display:block; }
.admin-photo-card .admin-photo-body{ padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-photo-card .admin-photo-caption{ font-size:.85rem; color:var(--indigo); font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ---------------- Videos tab ---------------- */
.admin-video-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:16px;
}
.admin-video-card{
  background:var(--white); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
}
.admin-video-card .admin-video-frame{ position:relative; aspect-ratio:16/9; background:var(--indigo-deep); }
.admin-video-card .admin-video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.admin-video-card .admin-video-body{ padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-video-card .admin-video-title{ font-size:.9rem; color:var(--indigo); font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
