/* ============================================================
   ADMIN SHELL — sidebar + topbar + admin-mode pill
   Uses the same base tokens but introduces an admin-specific
   red accent for destructive actions and the ADMIN MODE chrome.
   ============================================================ */

:root {
  --admin-accent: #dc2626;            /* red-600 — destructive actions, ADMIN MODE pill */
  --admin-accent-hover: #b91c1c;      /* red-700 */
  --admin-accent-subtle: rgba(220, 38, 38, 0.10);
  --admin-accent-text: #b91c1c;
}

[data-theme="dark"] {
  --admin-accent: #ef4444;            /* red-500 — slightly brighter on dark bg */
  --admin-accent-hover: #dc2626;
  --admin-accent-subtle: rgba(239, 68, 68, 0.14);
  --admin-accent-text: #fca5a5;       /* red-300 */
}

/* The .admin-app wrapper opts into the admin chrome.
   It re-uses the base .app grid but overrides accent-driven elements. */
.admin-app {
  /* Inherit the same grid as .app — sidebar | topbar | main */
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr;
  grid-template-rows: var(--topbar-height) 1fr;
  grid-template-areas:
    "sidebar topbar"
    "sidebar main";
  min-height: 100vh;
  background: var(--bg-canvas);
}

@media (max-width: 1023px) {
  .admin-app {
    grid-template-columns: var(--sidebar-width-collapsed) 1fr;
  }
}

.admin-app__sidebar { grid-area: sidebar; }
.admin-app__topbar  { grid-area: topbar; }
.admin-app__main    { grid-area: main; padding: var(--space-5) var(--space-6); overflow-x: hidden; }

/* Sidebar — same structure as user app, but admin section-headers */
.admin-sidebar {
  background: var(--bg-surface);
  border-right: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  padding: var(--space-4) var(--space-3);
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

/* Logo block — same as user app but with ADMIN badge alongside */
.admin-sidebar__logo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  text-decoration: none;
  padding: var(--space-2) var(--space-3);
  margin-bottom: var(--space-4);
  height: calc(var(--topbar-height) - var(--space-4) * 2 + var(--space-2));
}

.admin-sidebar__logo-img {
  height: var(--logo-height);
  width: auto;
  display: block;
}

.admin-sidebar__logo-img--full-light { display: block; }
.admin-sidebar__logo-img--full-dark  { display: none; }

[data-theme="dark"] .admin-sidebar__logo-img--full-light { display: none; }
[data-theme="dark"] .admin-sidebar__logo-img--full-dark  { display: block; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .admin-sidebar__logo-img--full-light { display: none; }
  :root:not([data-theme]) .admin-sidebar__logo-img--full-dark  { display: block; }
}

.admin-sidebar__badge {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--space-2);
  background: var(--admin-accent);
  color: white;
  border-radius: var(--radius-sm);
  font-size: 10px;
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  font-family: var(--font-mono);
}

/* Section labels within the sidebar */
.admin-sidebar__section {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: var(--space-3);
}

.admin-sidebar__section-label {
  font-size: 10px;
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-tertiary);
  padding: var(--space-2) var(--space-3) var(--space-1);
}

/* Nav-item — re-uses .nav-item shape from shell.css, but the active state
   uses the red accent instead of brand blue */
.admin-sidebar .nav-item--active {
  background: var(--admin-accent-subtle);
  color: var(--admin-accent-text);
}

.admin-sidebar .nav-item--active .nav-item__icon {
  color: var(--admin-accent);
}

.admin-sidebar .nav-item__badge {
  background: var(--admin-accent);
  color: white;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: var(--weight-semibold);
  padding: 1px 6px;
  border-radius: var(--radius-full);
  margin-left: auto;
}

/* Mute the badge if zero */
.admin-sidebar .nav-item__badge--zero {
  background: var(--bg-subtle);
  color: var(--text-tertiary);
}

/* Topbar — re-uses .topbar from shell.css; just add the ADMIN MODE pill */
.admin-mode-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 4px var(--space-3);
  background: var(--admin-accent-subtle);
  border: 1px solid var(--admin-accent);
  color: var(--admin-accent-text);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  font-family: var(--font-mono);
  text-transform: uppercase;
}

.admin-mode-pill__dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--admin-accent);
  animation: admin-pulse 2s ease-in-out infinite;
}

@keyframes admin-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

/* Reviewer avatar in topbar — slightly different colour to user app */
.admin-reviewer .avatar {
  background: var(--admin-accent-subtle);
  color: var(--admin-accent-text);
}

/* Destructive button override for admin context */
.btn--destructive {
  background: var(--admin-accent);
  color: white;
  border: 1px solid var(--admin-accent);
}

.btn--destructive:hover {
  background: var(--admin-accent-hover);
  border-color: var(--admin-accent-hover);
}

.btn--destructive:focus-visible {
  outline: 2px solid var(--admin-accent);
  outline-offset: 2px;
}

/* "danger" outline variant — less visually aggressive */
.btn--danger-outline {
  background: transparent;
  color: var(--admin-accent-text);
  border: 1px solid var(--admin-accent);
}

.btn--danger-outline:hover {
  background: var(--admin-accent-subtle);
}
