/* Admin console information architecture: a persistent rail and focused pages. */
.shell.admin-app {
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
}
.shell.admin-app > .topbar { display: none; }
.admin-sidebar {
  position: fixed;
  z-index: 20;
  inset: 0 auto 0 0;
  display: flex;
  flex-direction: column;
  width: 258px;
  padding: 22px 14px 16px;
  border-right: 1px solid rgba(72,88,130,.11);
  background: rgba(255,255,255,.94);
  box-shadow: 8px 0 36px rgba(47,61,99,.035);
  backdrop-filter: blur(18px);
}
.sidebar-brand { display:flex; align-items:center; gap:11px; padding:0 9px 28px; }
.sidebar-brand .brand-mark { width:40px; height:40px; flex:0 0 40px; border-radius:14px; }
.sidebar-brand .brand-copy strong { font-size:15px; }
.sidebar-brand .brand-copy span { font-size:10px; }
.sidebar-kicker { padding:0 11px 9px; color:#9aa3b8; font-size:9px; font-weight:750; letter-spacing:.12em; }
.sidebar-nav { display:grid; gap:20px; }
.nav-group { display:grid; gap:4px; }
.nav-group-label { padding:0 11px 5px; color:#929bb0; font-size:10px; font-weight:650; }
.admin-nav-item {
  position:relative;
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:42px;
  padding:0 11px;
  border:1px solid transparent;
  border-radius:12px;
  color:#69748e;
  background:transparent;
  text-align:left;
  font-size:12px;
  font-weight:600;
  transition:color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}
.admin-nav-item svg { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.admin-nav-item:hover { color:#5449bc; border-color:rgba(105,88,223,.1); background:#f7f6ff; transform:translateX(2px); }
.admin-nav-item.active { color:#5b4fd0; border-color:rgba(105,88,223,.1); background:linear-gradient(100deg,#f1efff,#f8f7ff); box-shadow:inset 3px 0 #7164e7, 0 5px 15px rgba(75,68,158,.045); }
.sidebar-spacer { flex:1; min-height:20px; }
.sidebar-status { display:flex; align-items:center; gap:8px; margin:0 8px 12px; padding:10px 11px; border:1px solid rgba(53,167,127,.14); border-radius:12px; color:#518872; background:#f5fbf8; font-size:10px; }
.sidebar-status i { width:7px; height:7px; border-radius:50%; background:#38ae83; box-shadow:0 0 0 4px rgba(56,174,131,.1); }
.sidebar-profile { display:flex; align-items:center; gap:10px; min-width:0; padding:12px 8px 10px; border-top:1px solid rgba(72,88,130,.1); }
.sidebar-avatar { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:12px; color:#fff; background:linear-gradient(140deg,#7565e6,#55b8cb); font-size:12px; font-weight:750; }
.sidebar-profile-copy { min-width:0; }
.sidebar-profile-copy strong,.sidebar-profile-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-profile-copy strong { color:#35405f; font-size:10px; }
.sidebar-profile-copy span { margin-top:3px; color:#929bb0; font-size:9px; }
.sidebar-utilities { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:4px 2px 0; }
.sidebar-utilities > a,.sidebar-utilities > button { min-width:0; min-height:34px; padding:0 7px; font-size:10px; }
.sidebar-utilities > button { justify-content:center; }
.shell.admin-app #app { min-height:100vh; margin-left:258px; padding:25px clamp(22px,3.2vw,52px) 48px; }
.console-main { width:min(100%,1540px); margin:0 auto; }
.console-topbar { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:42px; padding:0 0 17px; border-bottom:1px solid rgba(72,88,130,.1); }
.console-breadcrumb { display:flex; align-items:center; gap:8px; color:#8b95ad; font-size:10px; }
.console-breadcrumb strong { color:#5d6883; font-weight:650; }
.console-top-actions { display:flex; align-items:center; gap:9px; }
.console-top-actions .status { background:rgba(255,255,255,.8); }
.console-top-actions #refresh { min-height:34px; font-size:11px; }
.console-page-title { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:28px 0 21px; }
.console-page-title h1 { margin:0; color:#202a45; font-size:27px; letter-spacing:-.045em; }
.console-page-title p { margin:7px 0 0; color:#78839d; font-size:12px; line-height:1.6; }
.admin-page[hidden] { display:none !important; }
.admin-page { min-width:0; animation:consolePageIn .24s ease both; }
.admin-page .metrics { margin-bottom:17px; }
.admin-page .chart-grid { margin-bottom:0; }
.recent-generations { margin-top:17px; }
.recent-generations .card-head { min-height:58px; }
.recent-head-action { padding:0; border:0; color:#6758cc; background:transparent; font-size:10px; font-weight:700; }
.recent-head-action:hover { color:#4f43b1; }
.recent-generation-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:13px; }
.recent-generation-item { display:flex; align-items:center; gap:10px; min-width:0; padding:11px 12px; border:1px solid rgba(72,88,130,.09); border-radius:13px; background:rgba(250,251,255,.78); }
.recent-generation-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:11px; color:#6559c7; background:linear-gradient(140deg,#f1efff,#eaf8fa); }
.recent-generation-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.recent-generation-copy { min-width:0; flex:1; }
.recent-generation-copy strong,.recent-generation-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.recent-generation-copy strong { color:#3a4562; font-size:10px; font-weight:700; }
.recent-generation-copy span { margin-top:4px; color:#8a94ab; font-size:9px; }
.recent-generation-meta { display:grid; justify-items:end; gap:5px; flex:0 0 auto; color:#929bb0; font-size:9px; }
.recent-generation-meta .pill { padding:4px 7px; font-size:9px; }
.recent-empty { grid-column:1/-1; padding:16px 10px; color:#909ab0; text-align:center; font-size:11px; }
.console-page-overview .dashboard-head { display:none; }
.console-page-users .users-layout,.console-page-settings .settings-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr); align-items:start; gap:17px; }
.console-page-settings .settings-layout { grid-template-columns:minmax(0,1fr) minmax(320px,.9fr); }
.console-card { min-width:0; display:block; margin:0; }
.console-card .panel-toolbar { min-height:74px; padding:17px 19px; }
.console-card .card-head { padding:16px 19px; }
.console-card .user-table { min-width:1060px !important; }
.table-display-name { margin-bottom:3px; color:#38435f; font-size:11px; font-weight:700; }
.table-email { display:block; max-width:210px; color:#66718b; font-size:10px; }
.email-state.banned-state { color:#c65368; }
.user-actions { flex-wrap:wrap; gap:5px; }
.user-actions .mini-btn { min-height:28px; padding:0 8px; font-size:9px; }
.mini-btn.warning { color:#b9782c; }
.mini-btn.warning:hover { border-color:rgba(201,145,66,.32); background:#fffaf2; }
.user-management-notice { display:flex; align-items:flex-start; gap:10px; margin:0 16px 12px; padding:11px 13px; border:1px solid rgba(217,159,79,.2); border-radius:12px; color:#785f3a; background:#fffbf3; }
.user-management-notice[hidden] { display:none !important; }
.notice-icon { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; border-radius:50%; color:#fff; background:#d6a653; font-size:11px; font-weight:750; }
.user-management-notice strong,.user-management-notice small { display:block; }
.user-management-notice strong { font-size:10px; }
.user-management-notice small { margin-top:4px; color:#927e5e; font-size:9px; line-height:1.5; }
.dialog-help { margin:-4px 0 3px; color:#8791a8; font-size:10px; line-height:1.55; font-weight:450; }
dialog { max-height:calc(100vh - 28px); overflow:auto; }
.dialog-form input:disabled,.dialog-form select:disabled { color:#9aa3b6; background:#f5f6fa; cursor:not-allowed; }
.console-page-generations .console-card,.console-page-redemptions .console-card { width:100%; }
.console-page-settings .config-card { min-width:0; }
.console-page-settings .side-body { padding:19px 21px; }
.console-page-users .side-stack { display:grid; gap:17px; }
.console-page-redemptions .placeholder-panel { min-height:330px; }
.console-page-redemptions .placeholder-panel p { max-width:420px; }
.console-page-redemptions .placeholder-icon { width:58px; height:58px; border-radius:20px; }
@keyframes consolePageIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:1050px) {
  .shell.admin-app #app { padding-right:24px; padding-left:24px; }
  .console-page-users .users-layout,.console-page-settings .settings-layout { grid-template-columns:1fr; }
  .console-page-users .side-stack { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .admin-sidebar { inset:auto 0 0; width:100%; height:auto; min-height:66px; padding:6px 8px calc(6px + env(safe-area-inset-bottom)); border-top:1px solid rgba(72,88,130,.12); border-right:0; background:rgba(255,255,255,.96); box-shadow:0 -8px 30px rgba(47,61,99,.08); }
  .sidebar-brand,.sidebar-kicker,.nav-group-label,.sidebar-spacer,.sidebar-status,.sidebar-profile,.sidebar-utilities { display:none; }
  .sidebar-nav { display:flex; gap:2px; overflow-x:auto; scrollbar-width:none; }
  .sidebar-nav::-webkit-scrollbar { display:none; }
  .nav-group { display:contents; }
  .admin-nav-item { display:flex; flex:1 0 66px; flex-direction:column; justify-content:center; gap:4px; min-width:60px; min-height:53px; padding:5px 3px; border-radius:10px; font-size:9px; }
  .admin-nav-item:hover { transform:none; }
  .admin-nav-item.active { box-shadow:inset 0 2px #7164e7; }
  .admin-nav-item svg { width:17px; height:17px; }
  .shell.admin-app #app { margin-left:0; padding:20px 16px calc(88px + env(safe-area-inset-bottom)); }
  .console-topbar { min-height:35px; padding-bottom:12px; }
  .console-page-title { margin:22px 0 17px; }
  .console-page-title h1 { font-size:24px; }
  .console-top-actions .status { display:none; }
  .recent-generation-list { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .console-page-users .side-stack { grid-template-columns:1fr; }
  .shell.admin-app #app { padding-right:12px; padding-left:12px; }
  .console-page-title { align-items:flex-start; }
  .console-breadcrumb { font-size:9px; }
  .console-top-actions #refresh { min-height:31px; padding:0 9px; }
  .console-page-title p { max-width:320px; }
}
@media (prefers-reduced-motion: reduce) {
  .admin-page { animation:none; }
}
