/* ============================================================
   admin.css — extra styles for the admin panel, layered on top
   of the main site's css/style.css (same theme/colors).
   ============================================================ */

body[data-page^="admin"], body[data-page="events-manager"], body[data-page="challenges-manager"] {
  visibility: hidden; /* toggled visible by admin-config.js's guard */
}

.admin-shell{
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

.admin-topbar{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px; margin-bottom:28px;
}

.admin-topbar .who{ color:var(--text-dim); font-size:.85rem; }

.admin-nav{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; }
.admin-nav a{
  padding:8px 14px; border:1px solid var(--border); border-radius:var(--radius);
  color:var(--text-dim); font-size:.85rem;
}
.admin-nav a.active, .admin-nav a:hover{ color:var(--red-bright); border-color:var(--red-dark); }

.admin-card{
  background:var(--bg-card); border:1px solid var(--border-soft);
  border-radius:var(--radius); padding:24px; margin-bottom:24px;
}

.admin-card h3{ margin-bottom:14px; color:var(--gold); font-size:1rem; letter-spacing:.03em; }

.admin-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:700px){ .admin-grid-2{ grid-template-columns:1fr; } }

.admin-field{ margin-bottom:14px; }
.admin-field label{ display:block; font-size:.78rem; color:var(--text-dim); margin-bottom:6px; }
.admin-field input, .admin-field select, .admin-field textarea{
  width:100%; background:var(--bg-card-alt); border:1px solid var(--border-soft);
  border-radius:var(--radius); padding:10px 12px; color:var(--text); font-family:var(--font); font-size:.9rem;
}
.admin-field textarea{ min-height:90px; resize:vertical; }
.admin-field .hint-text{ font-size:.72rem; color:var(--text-faint); margin-top:4px; }

.admin-table{ width:100%; border-collapse:collapse; font-size:.85rem; }
.admin-table th, .admin-table td{
  text-align:left; padding:10px 8px; border-bottom:1px solid var(--border-soft); vertical-align:top;
}
.admin-table th{ color:var(--text-dim); font-weight:600; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; }
.admin-table tr:hover td{ background:rgba(255,255,255,0.02); }

.admin-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.btn-sm{ padding:6px 12px; font-size:.78rem; }
.btn-danger{ background:transparent; border:1px solid var(--red-dark); color:var(--red-bright); }
.btn-danger:hover{ background:var(--red-dark); color:#fff; }
.btn-ghost{ background:transparent; border:1px solid var(--border); color:var(--text-dim); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

.poster-preview{ max-width:160px; border-radius:var(--radius); border:1px solid var(--border-soft); margin-top:8px; display:block; }

.admin-empty{ color:var(--text-faint); font-size:.85rem; padding:20px 0; text-align:center; }

.status-pill{
  display:inline-block; padding:2px 10px; border-radius:100px; font-size:.7rem;
  border:1px solid var(--border); color:var(--text-dim);
}
.status-pill.upcoming{ border-color:var(--gold); color:var(--gold); }
.status-pill.past{ border-color:var(--text-faint); color:var(--text-faint); }

/* ---------- registration option chips (colleges / departments) ---------- */
.opt-chip-wrap{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; min-height:30px; }
.opt-chip{
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border-soft);
  border-radius:16px; padding:5px 8px 5px 12px; font-size:.78rem; color:var(--text);
  background:var(--bg-card-alt);
}
.opt-chip button{
  background:transparent; border:none; color:var(--text-faint); cursor:pointer;
  font-size:.85rem; line-height:1; padding:2px 4px;
}
.opt-chip button:hover{ color:var(--red-bright); }
.opt-add-row{ display:flex; gap:8px; }
.opt-add-row input{
  flex:1; background:var(--bg-card-alt); border:1px solid var(--border-soft);
  border-radius:var(--radius); padding:8px 10px; color:var(--text); font-family:var(--font); font-size:.85rem;
}

/* ---------- dashboard bar charts (v3.2) ---------- */
.bar-chart{ display:flex; flex-direction:column; gap:12px; }
.bar-row{ display:grid; grid-template-columns:110px 1fr 50px; align-items:center; gap:10px; }
.bar-row .bar-name{ font-size:.78rem; color:var(--text-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bar-track{ height:14px; border-radius:8px; background:var(--bg-card-alt); border:1px solid var(--border-soft); overflow:hidden; }
.bar-fill{ height:100%; border-radius:8px 0 0 8px; background:linear-gradient(90deg, var(--red-dark), var(--gold)); transition:width .4s ease; }
.bar-row .bar-value{ font-size:.78rem; color:var(--gold); text-align:right; font-weight:700; }
.dash-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:900px){ .dash-two-col{ grid-template-columns:1fr; } }
