/* ============================================
   PULSEBOARD — ADMIN PANEL STYLESHEET
   Loaded IN ADDITION to style.css on every /admin page
   ============================================ */

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

.sidebar {
  width: 230px;
  background: #14101f;
  color: #d1d5db;
  flex-shrink: 0;
  padding: 20px 0;
}

.sidebar .brand {
  color: #fff;
  font-weight: 800;
  font-size: 18px;
  padding: 0 22px 20px;
  display: block;
}
.sidebar .brand span { color: #a78bfa; }

.sidebar a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 22px;
  color: #cbd5e1;
  font-size: 14px;
  text-decoration: none;
  border-left: 3px solid transparent;
}

.sidebar a:hover { background: #1f1a30; text-decoration: none; }
.sidebar a.active { background: #1f1a30; border-left-color: #a78bfa; color: #fff; font-weight: 600; }

.sidebar .section-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #6b7280;
  padding: 18px 22px 6px;
}

.admin-main { flex: 1; background: var(--bg); }

.admin-topbar {
  background: #fff;
  border-bottom: 1px solid var(--border);
  padding: 16px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.admin-topbar h1 { font-size: 20px; }

.admin-content { padding: 28px; max-width: 1200px; }

.stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
}
.stat-card .num { font-size: 28px; font-weight: 800; color: var(--primary); }
.stat-card .label { font-size: 13px; color: var(--muted); margin-top: 4px; }

.admin-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 22px;
  margin-bottom: 20px;
}
.admin-card h2 { font-size: 17px; margin-bottom: 14px; }

.toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 10px; flex-wrap: wrap; }
.toolbar form { display: flex; gap: 8px; }
.toolbar input[type=text] { margin-bottom: 0; width: 220px; }

.action-links a { margin-right: 10px; font-size: 13px; font-weight: 600; }

@media (max-width: 800px) {
  .admin-wrap { flex-direction: column; }
  .sidebar { width: 100%; display: flex; overflow-x: auto; padding: 10px; }
  .sidebar .brand { display: none; }
  .sidebar a { border-left: none; border-bottom: 3px solid transparent; white-space: nowrap; }
  .sidebar a.active { border-bottom-color: #a78bfa; }
  .sidebar .section-label { display: none; }
}

/* ============================================
   RESPONSIVE — ADMIN PANEL
   ============================================ */

/* Laptops / smaller desktops */
@media (max-width: 1100px) {
  .admin-content { padding: 22px; }
  .stat-card .num { font-size: 24px; }
}

/* Tablets */
@media (max-width: 900px) {
  .sidebar { width: 190px; }
}

/* Phones — sidebar becomes a horizontal scroll strip (rules already flip it
   in the media query inside style.css's admin-wrap section below) */
@media (max-width: 800px) {
  .admin-topbar { padding: 12px 16px; flex-direction: column; align-items: flex-start; gap: 8px; }
  .admin-content { padding: 16px; }
  .toolbar { flex-direction: column; align-items: stretch; }
  .toolbar form { flex-direction: column; }
  .toolbar input[type=text] { width: 100%; margin-bottom: 8px; }
  .grid-4, .grid-2 { grid-template-columns: 1fr; }
}


/* 2026 admin responsive polish */
.admin-main { min-width:0; }
.admin-topbar { background:var(--card); }
.admin-card, .stat-card { background:var(--card); box-shadow:0 10px 30px rgba(0,0,0,.06); }
.sidebar { background:linear-gradient(180deg,#120d20,#0d0a15); }
.admin-content { width:100%; }
.admin-card { overflow:hidden; }
@media (max-width: 800px) {
  .admin-wrap { min-height:100svh; }
  .sidebar { position:sticky; top:0; z-index:200; flex-wrap:nowrap; gap:4px; scrollbar-width:none; }
  .sidebar::-webkit-scrollbar { display:none; }
  .sidebar a { padding:10px 13px; border-radius:10px; border-bottom:0; }
  .sidebar a.active { background:rgba(139,92,246,.15); border-bottom:0; }
  .admin-topbar { position:sticky; top:0; z-index:150; padding:13px 15px; }
  .admin-topbar h1 { font-size:18px; }
  .admin-content { padding:12px; }
  .admin-card { padding:15px; border-radius:14px; }
  .toolbar form { width:100%; }
  .toolbar input[type=text] { min-height:44px; }
  .admin-content table { display:block; width:100%; overflow-x:auto; white-space:nowrap; }
}
@media (max-width: 480px) {
  .sidebar { padding:7px; }
  .sidebar a { font-size:12px; padding:9px 10px; }
  .admin-topbar .muted { font-size:12px; }
  .admin-content { padding:9px; }
  .stat-card { padding:15px; }
}

/* =========================================================
   PULSEBOARD ADMIN — DARK/LIGHT THEME + MOBILE-FIRST POLISH
   ========================================================= */
.admin-wrap { min-width: 0; }
.admin-main { min-width: 0; }
.admin-topbar { gap: 12px; }
.admin-topbar-actions { display:flex; align-items:center; gap:8px; margin-left:auto; }
.admin-theme-toggle { width:42px; height:42px; border-radius:12px; padding:0; background:var(--card); color:var(--text); border:1px solid var(--border); display:grid; place-items:center; }
.admin-theme-toggle:hover { background:var(--card-hover); }
html[data-theme="light"] .admin-topbar { background:rgba(255,255,255,.86); }
html[data-theme="dark"] .admin-topbar { background:rgba(15,11,27,.86); }
html[data-theme="dark"] .admin-card, html[data-theme="dark"] .stat-card { background:var(--card); color:var(--text); }
html[data-theme="dark"] .admin-card input, html[data-theme="dark"] .admin-card textarea, html[data-theme="dark"] .admin-card select { background:var(--input-bg); color:var(--text); border-color:var(--border); }
@media (max-width:800px) {
  .admin-wrap { min-width:0; }
  .sidebar { width:100%; overflow-x:auto; overflow-y:hidden; }
  .admin-main { width:100%; }
  .admin-topbar { flex-wrap:wrap; padding:11px 12px; }
  .admin-topbar-actions { margin-left:0; width:100%; justify-content:flex-end; }
  .admin-content { overflow-x:hidden; }
  .admin-card { overflow-x:auto; }
  .admin-content table { min-width:680px; }
}
@media (max-width:480px) {
  .admin-content { padding:8px; }
  .admin-card { padding:14px; }
  .admin-topbar h1 { font-size:17px; }
}

.admin-title-row { display:flex; align-items:center; gap:10px; min-width:0; }
.admin-menu-toggle, .admin-close { display:none; }
.admin-overlay { display:none; }
.admin-login-tools { position:fixed; top:18px; right:18px; z-index:3000; }
@media (max-width:800px) {
  .admin-menu-toggle { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid var(--border); background:var(--card); color:var(--text); border-radius:12px; }
  .admin-close { display:grid; place-items:center; position:absolute; top:12px; right:12px; width:40px; height:40px; padding:0; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:#fff; border-radius:12px; font-size:24px; }
  .sidebar { position:fixed; left:0; top:0; bottom:0; width:min(86vw,310px); height:100vh; z-index:2200; transform:translateX(-105%); transition:transform .28s ease; display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; padding:20px 10px; }
  .sidebar.mobile-open { transform:translateX(0); }
  .sidebar .brand { display:block; padding:8px 12px 20px; }
  .sidebar a { flex-shrink:0; }
  .admin-overlay { display:block; position:fixed; inset:0; z-index:2100; background:rgba(2,6,23,.58); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .25s; }
  .admin-overlay.show { opacity:1; pointer-events:auto; }
  .admin-topbar-actions .muted { max-width:42vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
@media (max-width:480px) {
  .admin-login-tools { top:12px; right:12px; }
  .admin-topbar-actions { gap:5px; }
}

.admin-title-row { display:flex; align-items:center; gap:10px; min-width:0; }
.admin-menu-toggle, .admin-close { display:none; }
.admin-overlay { display:none; }
.admin-login-tools { position:fixed; top:18px; right:18px; z-index:3000; }
@media (max-width:800px) {
  .admin-menu-toggle { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid var(--border); background:var(--card); color:var(--text); border-radius:12px; }
  .admin-close { display:grid; place-items:center; position:absolute; top:12px; right:12px; width:40px; height:40px; padding:0; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:#fff; border-radius:12px; font-size:24px; }
  .sidebar { position:fixed; left:0; top:0; bottom:0; width:min(86vw,310px); height:100vh; z-index:2200; transform:translateX(-105%); transition:transform .28s ease; display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; padding:20px 10px; }
  .sidebar.mobile-open { transform:translateX(0); }
  .sidebar .brand { display:block; padding:8px 12px 20px; }
  .sidebar a { flex-shrink:0; }
  .admin-overlay { display:block; position:fixed; inset:0; z-index:2100; background:rgba(2,6,23,.58); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .25s; }
  .admin-overlay.show { opacity:1; pointer-events:auto; }
  .admin-topbar-actions .muted { max-width:42vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
@media (max-width:480px) {
  .admin-login-tools { top:12px; right:12px; }
  .admin-topbar-actions { gap:5px; }
}
