/* ========== ADMIN DASHBOARD ========== */

.dashboard-page.admin-page .admin-topbar { background: var(--ca-paper); color: var(--ca-ink); border-bottom-color: var(--ca-line); box-shadow: 0 8px 24px rgba(18,32,51,.05); }
.dashboard-page.admin-page .admin-brand { color: var(--ca-ink); font-family: 'Space Grotesk', sans-serif; }
.dashboard-page.admin-page .admin-brand em { color: var(--ca-blue); }
.dashboard-page.admin-page .admin-toplink { color: var(--ca-ink-soft); }
.dashboard-page.admin-page .admin-toplink:hover { background: #edf3ff; color: var(--ca-blue); }
.dashboard-page.admin-page .admin-toplink-ghost { border-color: var(--ca-line); background: transparent; }
.dashboard-page.admin-page .admin-chip { background: #edf3ff; color: var(--ca-blue); }
.dashboard-page.admin-page .admin-sidebar { background: var(--ca-paper); }
.dashboard-page.admin-page .admin-profile { background: #f7f9fc; box-shadow: none; }
.dashboard-page.admin-page .admin-tabs { gap: 4px; }
.dashboard-page.admin-page .admin-tab { display: flex; flex-direction: column; gap: 2px; padding: 11px 14px; color: var(--ca-ink-soft); }
.dashboard-page.admin-page .admin-tab span { font-size: 14px; font-weight: 700; }
.dashboard-page.admin-page .admin-tab small { color: var(--ca-muted); font-size: 11px; font-weight: 400; }
.dashboard-page.admin-page .admin-tab.active { background: #122033; border-color: transparent; color: #fff; box-shadow: none; }
.dashboard-page.admin-page .admin-tab.active small { color: #a9bbcf; }
.dashboard-page.admin-page .admin-main { background: var(--ca-canvas); }
.dashboard-page.admin-page .admin-panel-head { align-items: flex-end; display: flex; justify-content: space-between; gap: 24px; }
.dashboard-page.admin-page .admin-panel-head h1 { font-family: 'Space Grotesk', sans-serif; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.admin-kicker, .admin-card-label { color: var(--ca-blue); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.admin-card-label-teal { color: var(--ca-cyan); }
.admin-quick-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-quick-action { border: 1px solid var(--ca-line); border-radius: 9px; color: var(--ca-ink-soft); background: var(--ca-paper); padding: 10px 14px; font: 700 13px 'DM Sans', sans-serif; cursor: pointer; }
.admin-quick-action:hover, .admin-text-link:hover { color: var(--ca-blue); border-color: #bfd1f5; }
.admin-access-banner { align-items: center; background: #122033; border: 0; border-radius: 16px; box-shadow: none; }
.admin-access-banner h2 { font-family: 'Space Grotesk', sans-serif; font-size: 22px; letter-spacing: -.02em; }
.admin-access-banner p { margin: 7px 0 0; color: #a9bbcf; font-size: 13px; }
.admin-overview-grid, .admin-queue-grid, .admin-role-grid, .admin-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dashboard-page.admin-page .admin-card { margin-top: 16px; box-shadow: none; }
.admin-card-head { align-items: flex-start; display: flex; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.admin-card-head h2 { margin: 5px 0 0; color: var(--ca-ink); font: 600 21px 'Space Grotesk', sans-serif; letter-spacing: -.02em; }
.admin-text-link { border: 0; padding: 3px 0; background: transparent; color: var(--ca-blue); cursor: pointer; font: 700 12px 'DM Sans', sans-serif; }
.admin-task-list { display: grid; gap: 4px; }
.admin-task { align-items: center; background: transparent; border: 0; border-top: 1px solid var(--ca-line); color: var(--ca-ink); cursor: pointer; display: flex; gap: 12px; padding: 13px 0; text-align: left; }
.admin-task span:nth-child(2) { display: grid; gap: 3px; flex: 1; }
.admin-task strong { font-size: 13px; }
.admin-task small, .admin-empty-copy { color: var(--ca-muted); font-size: 12px; }
.admin-task b { color: var(--ca-blue); font-size: 20px; font-weight: 400; }
.admin-task-icon { align-items: center; background: #edf3ff; border-radius: 9px; color: var(--ca-blue); display: grid; flex: 0 0 34px; font-weight: 700; height: 34px; justify-content: center; }
.admin-task-icon-warm { background: #fff5e9; color: #b7791f; }
.admin-task-icon-teal { background: #eaf9f7; color: var(--ca-cyan); }
.admin-health-card { background: #f8fcfb !important; border-color: #c9ece5 !important; }
.admin-health-dot { background: #10b981; border-radius: 50%; box-shadow: 0 0 0 5px rgba(16,185,129,.12); height: 9px; margin: 6px 5px 0 0; width: 9px; }
.admin-health-row { border-top: 1px solid var(--ca-line); color: var(--ca-muted); display: flex; justify-content: space-between; padding: 12px 0; font-size: 13px; }
.admin-health-row strong { color: #087f68; font-size: 12px; }
.admin-recent-card { min-height: 190px; }
.admin-queue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-queue-card, .admin-role-card { background: var(--ca-paper); border: 1px solid var(--ca-line); border-radius: var(--ca-radius); box-shadow: none; display: grid; gap: 5px; padding: 18px; }
.admin-queue-card > span, .admin-role-card > span { color: var(--ca-muted); font-size: 12px; font-weight: 700; }
.admin-queue-card strong, .admin-role-card strong { color: var(--ca-ink); font: 600 30px 'Space Grotesk', sans-serif; }
.admin-queue-card small, .admin-role-card small { color: var(--ca-muted); font-size: 12px; }
.admin-queue-card .admin-text-link { justify-self: start; margin-top: 10px; }
.admin-role-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-settings-grid { grid-template-columns: 1fr 1fr; }
.admin-settings-grid .admin-quick-action { margin-top: 14px; }

@media (max-width:700px) {
  .dashboard-page.admin-page .admin-panel-head { display: block; }
  .admin-quick-actions { margin-top: 18px; }
  .admin-overview-grid, .admin-queue-grid, .admin-role-grid, .admin-settings-grid { grid-template-columns: 1fr; }
  .admin-access-banner { align-items: flex-start; flex-direction: column; }
}
:root {
  --luxury-bg: #f5f7fb;
  --luxury-panel: #ffffff;
  --luxury-panel-soft: #f8faff;
  --luxury-line: rgba(15, 23, 42, 0.07);
  --luxury-ink: #101828;
  --luxury-muted: #5d6b82;
  --luxury-primary: #1d4ed8;
  --luxury-primary-soft: rgba(29, 78, 216, 0.09);
  --luxury-accent: #c8a86f;
  --luxury-accent-soft: rgba(200, 168, 111, 0.12);
  --dark-panel: linear-gradient(135deg, #101827 0%, #172338 100%);
}

body {
  background: var(--luxury-bg);
}

.admin-topbar{
  position:sticky;
  top:0;
  z-index:1000;
  background: var(--dark-panel);
  color:#fff;
  border-bottom:1px solid rgba(148,163,184,0.12);
  box-shadow:0 16px 36px rgba(15,23,42,0.12);
}
.admin-topbar-inner{
  max-width:1200px;
  margin:0 auto;
  padding:12px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.admin-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:16px;
}
.admin-brand-logo{height:34px;border-radius:8px}
.admin-brand em{font-style:normal;color:#7DD3FC;font-size:12px;font-weight:600;margin-left:4px;opacity:0.85}
.admin-topnav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-toplink{
  color:#fff;
  text-decoration:none;
  font-weight:600;
  font-size:14px;
  padding:8px 14px;
  border-radius:8px;
  transition:background 0.2s ease;
  border:1px solid transparent;
  background:transparent;
  cursor:pointer;
}
.admin-toplink:hover{background:rgba(255,255,255,0.12)}
.admin-toplink-ghost{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
}
.admin-chip{
  font-size:12px;
  background:rgba(255,255,255,0.12);
  padding:6px 12px;
  border-radius:999px;
  color:#CBD5E1;
  white-space:nowrap;
}

.admin-access-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:linear-gradient(135deg, rgba(20,33,61,0.96), rgba(29,49,80,0.96));
  border:1px solid rgba(125,211,252,0.18);
  border-radius:18px;
  padding:18px 20px;
  margin-bottom:24px;
  box-shadow:0 16px 32px rgba(15,23,42,0.08);
}
.admin-access-banner h2{
  margin:8px 0 0;
  font-size:18px;
  color:#f8fafc;
  font-family:'Poppins',sans-serif;
}
.admin-access-label{
  display:inline-block;
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#7dd3fc;
  font-weight:700;
}
.admin-access-actions{display:flex;align-items:center;gap:10px}

/* Layout */
.admin-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:calc(100vh - 58px);
  max-width:1240px;
  margin:0 auto;
}

/* Sidebar */
.admin-sidebar{
  background:linear-gradient(180deg, rgba(255,255,255,0.9), rgba(248,250,255,0.96));
  border-right:1px solid var(--luxury-line);
  padding:20px 14px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:20px;
}
.admin-profile{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(29,78,216,0.08), rgba(200,168,111,0.1));
  border:1px solid rgba(29,78,216,0.1);
  box-shadow:0 10px 24px rgba(15,23,42,0.04);
}
.admin-profile-avatar{
  width:46px;
  height:46px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--luxury-primary),var(--secondary));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:14px;
  flex-shrink:0;
}
.admin-profile-name{font-weight:700;font-size:14px;color:var(--luxury-ink)}
.admin-profile-sub{font-size:12px;color:var(--luxury-muted)}
.admin-tabs{display:flex;flex-direction:column;gap:8px}
.dashboard-nav-toggle{display:none}
.admin-tab{
  display:block;
  width:100%;
  text-align:left;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:var(--luxury-muted);
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:var(--transition);
  font-family:inherit;
}
.admin-tab:hover{background:var(--luxury-primary-soft);color:var(--luxury-primary)}
.admin-tab.active{
  background:linear-gradient(135deg, rgba(29,78,216,0.1), rgba(6,182,212,0.08));
  color:var(--luxury-primary);
  border:1px solid rgba(29,78,216,0.12);
  box-shadow:0 10px 22px rgba(29,78,216,0.08);
}
.admin-sidebar-foot{padding-top:12px;border-top:1px solid var(--luxury-line)}
.btn-block{width:100%}

/* Main */
.admin-main{padding:34px 34px 56px;background:linear-gradient(180deg, #f5f7fb 0%, #edf3fb 100%)}
.admin-panel{display:none}
.admin-panel.active{display:block;animation:fadeIn 0.3s ease both}
.admin-panel-head{margin-bottom:22px}
.admin-panel-head h1{
  margin:0;
  font-family:'Poppins',sans-serif;
  font-size:32px;
  letter-spacing:-.7px;
  color:var(--luxury-ink);
}

.section-subtitle{
  margin:8px 0 0;
  color:var(--luxury-muted);
  font-size:15px;
  line-height:1.6;
}

.luxury-profile {
  position:relative;
  overflow:hidden;
}

.luxury-profile::after {
  content:"";
  position:absolute;
  inset:-30% auto auto 55%;
  width:100px;
  height:100px;
  border-radius:50%;
  background:rgba(200,168,111,0.09);
}

/* Stat cards */
.admin-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:24px;
}
.admin-stat{
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border:1px solid var(--luxury-line);
  border-radius:16px;
  box-shadow:0 14px 30px rgba(17,24,39,0.05);
  padding:18px;
  display:flex;
  align-items:center;
  gap:14px;
}
.admin-stat-icon{
  width:46px;
  height:46px;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(29,78,216,0.09), rgba(200,168,111,0.12));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  flex-shrink:0;
}
.admin-stat-number{display:block;font-size:24px;font-weight:700;color:var(--luxury-primary);line-height:1.1}
.admin-stat-label{font-size:12.5px;color:var(--luxury-muted);font-weight:600}

/* Cards & forms */
.admin-card{
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border:1px solid var(--luxury-line);
  border-radius:18px;
  box-shadow:0 12px 26px rgba(17,24,39,0.04);
  padding:20px;
  margin-top:20px;
}
.admin-card h3{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--luxury-ink)}
.admin-form{
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border:1px solid var(--luxury-line);
  border-radius:18px;
  padding:20px;
  margin-top:20px;
  box-shadow:0 12px 26px rgba(17,24,39,0.04);
}
.admin-form h3{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--luxury-ink)}
.admin-form-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:14px;
}
.admin-span{grid-column:1/-1}
.admin-form-field{display:grid;gap:6px;font-size:12px;color:var(--luxury-muted);font-weight:600}
.admin-form-field span{font-size:12px;color:var(--luxury-muted);font-weight:700;letter-spacing:0.02em}
.admin-form input,
.admin-form select{
  padding:11px 13px;
  border-radius:10px;
  border:1px solid var(--luxury-line);
  font-size:14px;
  font-family:inherit;
  background:#fff;
  transition:var(--transition);
  width:100%;
}
.admin-form input:focus,
.admin-form select:focus{
  outline:0;
  border-color:var(--luxury-primary);
  box-shadow:0 0 0 3px rgba(29,78,216,0.08);
}
.modern-admin-form{padding:22px;border:1px solid rgba(29,78,216,0.08);background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,250,255,0.98));}
.modern-form-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.modern-form-header h3{margin:6px 0 0;font-size:20px}
.admin-form-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:rgba(29,78,216,0.08);color:var(--luxury-primary);font-size:11px;font-weight:800;letter-spacing:0.06em;text-transform:uppercase}
.admin-form-badge-teal{background:rgba(14,165,233,0.08);color:#0f766e}
.admin-form-actions{display:flex;justify-content:flex-start}
.admin-details-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000}
.admin-details-modal.is-open{display:flex}
.admin-details-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,0.6)}
.admin-details-modal-panel{position:relative;z-index:1;width:min(560px,calc(100vw - 32px));background:#fff;border:1px solid var(--luxury-line);border-radius:18px;box-shadow:0 30px 60px rgba(15,23,42,0.18);padding:22px}
.admin-details-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:1px solid var(--luxury-line);border-radius:50%;background:#fff;color:var(--luxury-ink);font-size:24px;cursor:pointer}
.admin-details-header{padding-right:36px}
.admin-details-header h3{margin:10px 0 0;font-size:24px}
.admin-details-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:14px;color:var(--luxury-muted);font-size:13px}
.admin-details-meta strong{color:var(--luxury-ink)}
.admin-details-description{margin:16px 0;color:var(--luxury-muted);line-height:1.7}
.admin-details-footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--luxury-line)}
.admin-details-footer .detail-chip{padding:7px 10px;border-radius:999px;background:#eef4ff;color:var(--luxury-primary);font-size:12px;font-weight:700}

/* Tables */
.admin-table-wrap{overflow-x:auto}
.admin-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.admin-table th{
  text-align:left;
  padding:10px 12px;
  color:var(--luxury-muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.5px;
  border-bottom:1px solid var(--luxury-line);
}
.admin-table td{
  padding:12px;
  border-bottom:1px solid rgba(209,227,255,0.6);
  color:var(--luxury-ink);
}
.admin-table tr:hover td{background:rgba(29,78,216,0.04)}
.admin-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-link-btn{
  background:transparent;
  border:1px solid rgba(29,78,216,0.22);
  color:var(--luxury-primary);
  padding:6px 10px;
  border-radius:8px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  transition:var(--transition);
  font-family:inherit;
}
.admin-link-btn:hover{background:rgba(29,78,216,0.06)}
.admin-approve-btn,.admin-reject-btn{border:1px solid transparent;padding:6px 10px;border-radius:8px;cursor:pointer;font:700 12px inherit}
.admin-approve-btn{background:#eaf9f7;border-color:#bfe9df;color:#087f68}
.admin-reject-btn{background:#fff1f0;border-color:#f4c5c1;color:#b42318}
.status-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;text-transform:capitalize}
.status-pending{background:#fff5e9;color:#b7791f}
.status-approved{background:#eaf9f7;color:#087f68}
.status-rejected{background:#fff1f0;color:#b42318}
.admin-delete{
  background:transparent;
  border:1px solid rgba(239,68,68,0.3);
  color:var(--danger);
  padding:6px 12px;
  border-radius:8px;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  transition:var(--transition);
  font-family:inherit;
}
.admin-delete:hover{background:var(--danger);color:#fff;border-color:var(--danger)}

/* Recent & messages */
.admin-recent{display:flex;flex-direction:column;gap:12px}
.admin-recent-empty{color:var(--luxury-muted);font-size:14px;padding:10px 0;text-align:center}
.admin-message{
  border:1px solid var(--luxury-line);
  border-radius:12px;
  padding:14px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}
.admin-message + .admin-message{margin-top:12px}
.admin-message-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.admin-message-name{font-weight:700;font-size:14px;color:var(--luxury-ink)}
.admin-message-meta{font-size:12px;color:var(--luxury-muted)}
.admin-message-body{color:var(--luxury-muted);font-size:14px;line-height:1.6}

/* Responsive */
@media (max-width:900px){
  .admin-layout{grid-template-columns:1fr}
  .admin-sidebar{border-right:0;border-bottom:1px solid var(--luxury-line)}
  .admin-tabs{flex-direction:row;flex-wrap:wrap;gap:6px}
  .admin-tab{width:auto}
  .admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .admin-form-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:500px){
  .admin-topbar-inner{padding:10px 16px;align-items:flex-start}
  .admin-brand{min-width:0;font-size:14px}
  .admin-brand-logo{height:30px}
  .admin-brand em{font-size:10px}
  .admin-topnav{gap:6px;justify-content:flex-end}
  .admin-toplink{padding:7px 9px;font-size:12px}
  .admin-main{padding:24px 16px 40px}
  .admin-panel-head h1{font-size:26px;line-height:1.15}
  .admin-card,
  .admin-form{padding:16px;border-radius:14px}
  .admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .admin-stat{padding:12px 8px;gap:7px;min-width:0}
  .admin-stat-icon{width:32px;height:32px;font-size:16px;border-radius:8px}
  .admin-stat-number{font-size:18px}
  .admin-stat-label{font-size:10px;line-height:1.25}
  .admin-form-grid{grid-template-columns:1fr}
  .admin-span{grid-column:auto}
  .admin-topnav .admin-chip{display:none}
}
