/* ============================================================
   SeaScribe Admin — Layout (shell, topbar, nav, main)
   ============================================================ */

.admin-app {
  display: flex; flex-direction: column; height: 100vh; overflow: hidden;
}

/* ---- Topbar ---- */
.admin-topbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 28px;
  border-bottom: 1px solid var(--glass-border);
  background: var(--glass-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-sat));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-sat));
  flex-shrink: 0;
}
.admin-topbar-brand {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.3rem; font-weight: 700;
  letter-spacing: -0.02em;
  text-decoration: none; color: inherit;
  cursor: pointer;
  user-select: none;
  transition: opacity 0.15s;
}
.admin-topbar-brand:hover { opacity: 0.7; }
.admin-topbar-logo {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}
.admin-topbar-version {
  font-size: 0.65rem;
  font-weight: 400;
  color: var(--muted);
  position: relative;
  top: 0.4em;
  margin-left: -4px;
  pointer-events: none;
  user-select: none;
}
.admin-topbar-spacer { flex: 1; }

/* ---- Nav ---- */
.admin-nav {
  display: flex; gap: 2px;
}
.admin-nav a {
  display: flex; align-items: center; gap: 6px;
  padding: 9px 14px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.88rem;
  border-radius: 8px;
  transition: all 0.2s var(--spring);
  cursor: pointer;
}
.admin-nav a:hover { background: var(--hover); transform: translateY(-1px); }
.admin-nav a.active { background: var(--dark); color: var(--bg); font-weight: 600; transform: none; }

/* ---- User info ---- */
.admin-user-info {
  font-size: 0.85rem; color: var(--muted);
}
.admin-user-info .nickname { font-weight: 600; color: var(--text); }
.admin-user-info .role-tag {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--muted);
  background: var(--hover);
  padding: 1px 6px;
  border-radius: 4px;
}

/* ---- Toast ---- */
#admin-toast-area {
  position: fixed; top: 64px; right: 16px; z-index: 9999;
  display: flex; flex-direction: column; gap: 8px;
  pointer-events: none;
}
.admin-toast {
  padding: 12px 36px 12px 16px;
  border-radius: 10px;
  font-size: 0.85rem; min-width: 200px; max-width: 360px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  position: relative; pointer-events: auto;
  animation: toastIn 0.35s var(--spring);
  border-left: 4px solid transparent;
  background: var(--surface);
  color: var(--text);
}
@keyframes toastIn { from { opacity:0; transform:translateX(30px) scale(0.95); } to { opacity:1; transform:translateX(0) scale(1); } }
.admin-toast-normal { border-left-color: #27ae60; }
.admin-toast-warn   { border-left-color: #e74c3c; background: #fef2f2; color: #991b1b; }
[data-theme="dark"] .admin-toast-warn { background: #3b1111; color: #fca5a5; }
.admin-toast-close {
  position: absolute; top: 6px; right: 8px;
  background: none; border: none; cursor: pointer;
  font-size: 0.85rem; color: inherit; opacity: 0.5;
  padding: 0; line-height: 1;
}
.admin-toast-close:hover { opacity: 1; }

/* ---- Main ---- */
.admin-main {
  flex: 1; overflow-y: auto;
}
.admin-content {
  padding: 24px 28px 40px; max-width: 900px; margin: 0 auto;
}
