/* ==========================================================================
   BAIYE-149 · 首页弹窗与管理员工作台「现代像素」层
   - 只覆盖外观；不改 DOM id、事件、API。dialog 的结构标记由 wl-dialogs.js 打上
   - .pxd        = 已接管的弹窗（不含灯箱 / 基地大图 / 导航抽屉）
   - .pxd-head   = 弹窗标题栏   .pxd-kicker = 英文小标   .pxd-ico = 像素图标框
   - #adminDialog.pxd-ready = 管理员终端（左侧模块栏 + 主区，移动端改横向模块条）
   ========================================================================== */
@font-face {
  font-family: "WhiteLeaf Pixel";
  src: url("/assets/fonts/whiteleaf-pixel-12-149.woff2?v=149") format("woff2");
  font-display: swap;
  font-weight: 400 900;
}

[data-theme="light"] {
  --pxd-danger: #b8322a; --pxd-danger-soft: #fbe7e3;
  --pxd-ok: #3f7a2e; --pxd-ok-soft: #e4f1dc;
  --pxd-warn: #9a6410; --pxd-warn-soft: #fbf0d9;
  --pxd-accent-text: #3f7a2e;
  --pxd-term: #14211b; --pxd-term-ink: #e9efe2; --pxd-term-dim: #8fa48d;
}
[data-theme="dark"] {
  --pxd-danger: #ff7a6b; --pxd-danger-soft: rgba(255, 122, 107, .13);
  --pxd-ok: #8fd06a; --pxd-ok-soft: rgba(143, 208, 106, .13);
  --pxd-warn: #f2b84b; --pxd-warn-soft: rgba(242, 184, 75, .13);
  --pxd-accent-text: #8fd06a;
  --pxd-term: #070e0b; --pxd-term-ink: #e9efe2; --pxd-term-dim: #6f8270;
}

/* ---------- 1. 旧玻璃变量 → 像素色板（内联 style 里的 var() 自动跟随）---------- */
dialog.pxd, dialog.lightbox-dialog, #admBaseLb {
  --bg-card: var(--px-surface);
  --modal-bg: var(--px-surface);
  --subtle-card-bg: var(--px-surface-2);
  --text-main: var(--px-ink);
  --text-muted: var(--px-ink-2);
  --ink-primary: var(--px-ink);
  --ink-secondary: var(--px-ink-2);
  --ink-tertiary: var(--px-ink-3);
  --border-glass: var(--px-line-soft);
  --glass-border: var(--px-line-soft);
  --glass-border-subtle: var(--px-line-soft);
  --line: var(--px-line-soft);
  --glass-surface: var(--px-surface-2);
  --glass-surface-heavy: var(--px-surface);
  --accent-blue: var(--pxd-accent-text);
  --accent-soft: var(--px-leaf-soft);
  --accent-glow: transparent;
  --card-hover: var(--px-surface-2);
  --glass-shadow: none;
  --glass-shadow-lg: none;
  --shadow-modal: none;
  --dlg-c1: var(--px-accent);
  --dlg-c2: var(--px-accent-hi);
}
#accountDialog, #contactDialog { --dlg-c1: var(--px-sky); --dlg-c2: #8fd3ff; }
#eventsDialog, #economyDialog, #editAlbumDialog, #createAlbumDialog { --dlg-c1: var(--px-amber); --dlg-c2: #ffd27a; }
#communityHubDialog { --dlg-c1: #d4a514; --dlg-c2: #f6dc5a; }
#adminDialog { --dlg-c1: #c0392b; --dlg-c2: #ff6b5a; }

/* ---------- 2. 弹窗外框：直角 + 3px 描边 + 硬投影 + 顶部像素色带 ---------- */
dialog.pxd {
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--px-surface) !important;
  color: var(--px-ink) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  box-shadow: 0 0 0 3px var(--px-line), 10px 10px 0 3px var(--px-shadow) !important;
  transform: translateY(16px);
  transition: opacity .2s steps(4, end), transform .2s steps(4, end), overlay .2s allow-discrete, display .2s allow-discrete !important;
}
dialog.pxd[open] { transform: none; }
@starting-style { dialog.pxd[open] { opacity: 0; transform: translateY(16px); } }
dialog.pxd.is-closing { opacity: 0 !important; transform: translateY(12px) !important; }
dialog.pxd::before {
  content: ""; position: absolute; z-index: 30; left: 0; right: 0; top: 0; height: 6px; pointer-events: none;
  background: repeating-linear-gradient(90deg, var(--dlg-c1) 0 12px, var(--dlg-c2) 12px 24px);
}
dialog.pxd::backdrop, dialog.lightbox-dialog::backdrop {
  background-color: rgba(5, 11, 9, .72) !important;
  background-image:
    linear-gradient(rgba(143, 208, 106, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143, 208, 106, .05) 1px, transparent 1px) !important;
  background-size: 24px 24px !important;
  backdrop-filter: blur(3px) !important; -webkit-backdrop-filter: blur(3px) !important;
}
dialog.pxd.is-closing::backdrop { background-color: rgba(5, 11, 9, 0) !important; background-image: none !important; backdrop-filter: none !important; }

/* 全部直角（加载转圈除外）；关闭玻璃模糊，省 GPU */
dialog.pxd *:not([class*="spin"]):not([class*="loader"]):not([class*="ring"]),
dialog.lightbox-dialog button, dialog.lightbox-dialog .lightbox-cat-badge, #admBaseLb button, #admBaseLb .adm-blb-bar { border-radius: 0 !important; }
dialog.pxd * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }

/* ---------- 3. 标题栏 ---------- */
dialog.pxd .pxd-head {
  position: relative;
  padding-top: 20px !important;
  background: var(--px-surface-2) !important;
  border-bottom: 3px solid var(--px-line) !important;
  gap: 12px;
}
dialog.pxd .pxd-head > div:first-child { display: flex; align-items: center; gap: 12px; min-width: 0; }
dialog.pxd .pxd-ico {
  flex: none; width: 40px; height: 40px; display: inline-grid; place-items: center;
  background: var(--px-surface);
  box-shadow: 0 0 0 3px var(--px-line), inset 0 -4px 0 rgba(0, 0, 0, .14), inset 0 0 0 3px var(--dlg-c1);
}
dialog.pxd .pxd-ico svg { width: 24px; height: 24px; display: block; }
dialog.pxd .pxd-kicker, dialog.pxd .dialog-kicker {
  font-family: var(--font-pixel) !important; font-size: 12px !important; font-weight: 400 !important;
  letter-spacing: .08em !important; color: var(--dlg-c1) !important; -webkit-font-smoothing: none;
}
dialog.pxd .pxd-kicker::before, dialog.pxd .dialog-kicker::before {
  content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; vertical-align: 1px; background: currentColor;
}
dialog.pxd .pxd-head h3, dialog.pxd .dialog-title {
  font-family: var(--font-pixel) !important; font-size: 24px !important; font-weight: 400 !important;
  line-height: 1.25 !important; letter-spacing: 0 !important; color: var(--px-ink) !important; -webkit-font-smoothing: none;
}
#editAlbumDialog .pxd-head h3, #createAlbumDialog .pxd-head h3 { font-size: 24px !important; }

/* 关闭按钮：方块 */
dialog.pxd .btn-dialog-close {
  width: 36px !important; height: 36px !important; padding: 0 !important; flex: none;
  background: var(--px-surface) !important; color: var(--px-ink) !important; font-size: 16px; line-height: 1;
  box-shadow: 0 0 0 3px var(--px-line), inset 0 -4px 0 rgba(0, 0, 0, .14) !important;
  transition: transform .1s ease, background .1s !important;
}
dialog.pxd .btn-dialog-close:hover { transform: translateY(-2px) !important; background: var(--pxd-danger) !important; color: #fff !important; }
dialog.pxd .btn-dialog-close:active { transform: translateY(1px) !important; }
dialog.pxd .btn-dialog-close:focus-visible { outline: 3px dashed var(--px-sky); outline-offset: 4px; }
dialog.pxd .btn-dialog-close svg { shape-rendering: crispEdges; }
dialog.pxd .dialog-content > .btn-dialog-close { top: 22px !important; right: 22px !important; }

/* ---------- 4. 标签页 ---------- */
dialog.pxd .modal-tabs {
  gap: 6px !important; padding: 6px !important; margin: 0 !important;
  background: var(--px-bg-2) !important; border: 0 !important;
  box-shadow: inset 0 0 0 2px var(--px-line-soft);
  scrollbar-width: none;
}
dialog.pxd .modal-tabs::-webkit-scrollbar { display: none; }
dialog.pxd .tab-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 8px 14px !important; font-size: 13px !important; font-weight: 700 !important;
  color: var(--px-ink-2) !important; background: transparent !important; box-shadow: none !important;
  transition: background .1s, color .1s !important;
}
dialog.pxd .tab-btn:hover { color: var(--px-ink) !important; background: var(--px-surface) !important; }
dialog.pxd .tab-btn.is-active {
  color: var(--px-accent-ink) !important; background: var(--px-accent) !important;
  box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), inset 0 3px 0 rgba(255, 255, 255, .22) !important;
}
dialog.pxd .tab-btn:focus-visible { outline: 3px dashed var(--px-sky); outline-offset: 2px; }
dialog.pxd .tab-btn .px-ico, dialog.pxd .pxd-tab-ico { width: 16px; height: 16px; flex: none; display: inline-block; }
dialog.pxd .tab-btn .px-ico svg { width: 16px; height: 16px; display: block; }

/* ---------- 5. 表单 ---------- */
dialog.pxd .form-input, dialog.pxd .adm-leaf-search, dialog.pxd .adm-ban-form input, dialog.pxd .adm-ban-form select,
dialog.pxd .adm-bug-form select, dialog.pxd .adm-bug-form input, dialog.pxd .adm-bug-form textarea,
dialog.pxd input[type="text"]:not(.btn-glass), dialog.pxd input[type="search"], dialog.pxd input[type="password"],
dialog.pxd input[type="number"], dialog.pxd input[type="email"], dialog.pxd input:not([type]), dialog.pxd textarea, dialog.pxd select {
  border: 0 !important;
  background: var(--px-surface) !important;
  color: var(--px-ink) !important;
  box-shadow: inset 0 0 0 2px var(--px-line-soft), inset 3px 3px 0 rgba(0, 0, 0, .06) !important;
  transition: box-shadow .1s !important;
}
dialog.pxd input:focus, dialog.pxd textarea:focus, dialog.pxd select:focus, dialog.pxd .form-input:focus {
  outline: none !important;
  box-shadow: inset 0 0 0 2px var(--px-accent), 0 0 0 3px var(--px-leaf-soft) !important;
}
dialog.pxd input::placeholder, dialog.pxd textarea::placeholder { color: var(--px-ink-3); }
dialog.pxd input[type="checkbox"], dialog.pxd input[type="radio"] { box-shadow: none !important; accent-color: var(--px-accent); }
dialog.pxd input[type="file"] { box-shadow: none !important; background: transparent !important; }
dialog.pxd .form-label, dialog.pxd label { color: var(--px-ink-2); }

/* ---------- 6. 按钮：弹窗内统一紧凑尺寸 + 语义色 ---------- */
dialog.pxd .btn-glass:not(.btn-account), dialog.pxd .btn-primary-glow {
  min-height: 34px !important; padding: 6px 14px !important; font-size: 13px !important;
}
dialog.pxd .adm-leaf-filter, dialog.pxd .adm-ban-filter, dialog.pxd .adm-bug-filter, dialog.pxd .adm-filter-btn,
dialog.pxd .adm-photo-filter, dialog.pxd .adm-base-filter, dialog.pxd .adm-leaf-row .btn-glass, dialog.pxd .adm-ban-row .btn-glass {
  min-height: 30px !important; padding: 4px 10px !important; font-size: 12px !important;
}
/* 选中的筛选：反色，像终端选区 */
dialog.pxd .btn-glass.is-active:not(.btn-account) {
  --bf: color-mix(in srgb, var(--pxd-accent-text) 15%, var(--px-surface)); --bt: var(--pxd-accent-text); --bl: var(--pxd-accent-text);
  background: var(--bf) !important; border-color: var(--pxd-accent-text) !important;
}
/* 申请通道卡：浅底 + 左侧强调条，标题保持可读 */
dialog.pxd .path-select-card.is-active { box-shadow: inset 0 0 0 2px var(--pxd-accent-text), inset 6px 0 0 var(--pxd-accent-text) !important; }
dialog.pxd .path-select-card:not(.is-active) strong { color: var(--text-main) !important; }
dialog.pxd .path-select-card.is-active strong { color: var(--pxd-accent-text) !important; }
dialog.pxd .path-select-card.is-active > span { color: var(--text-main) !important; opacity: .78; }
/* 通过 / 恢复 */
dialog.pxd .btn-adm-approve, dialog.pxd .btn-wl-unfreeze, dialog.pxd .btn-review-photo[data-action="approve"],
dialog.pxd [data-base-review="approve"], dialog.pxd [data-rev-review="approve"] { --bf: var(--px-accent); --bt: var(--px-accent-ink); }
/* 需补充 / 调整 */
dialog.pxd .btn-adm-needinfo, dialog.pxd .btn-wl-mod { --bf: var(--pxd-warn-soft); --bt: var(--pxd-warn); }
/* 危险：驳回 / 冻结 / 删除 / 作废 / 撤销 */
dialog.pxd .btn-adm-reject, dialog.pxd .btn-wl-frz, dialog.pxd .btn-delete-photo, dialog.pxd .btn-delete-album,
dialog.pxd .adm-leaf-cancel, dialog.pxd .btn-review-photo[data-action="reject"], dialog.pxd [data-ban-op="withdraw"],
dialog.pxd [data-base-review="reject"], dialog.pxd [data-rev-review="reject"] {
  --bf: var(--pxd-danger-soft); --bt: var(--pxd-danger); --bl: var(--pxd-danger);
}
dialog.pxd .adm-ban-form button[type="submit"] { --bf: var(--pxd-danger); --bt: #fff; --bl: var(--px-line); }
/* 没有像素按钮类的散装按钮（删除报告 / 基地审核提交）*/
dialog.pxd [data-bug-del] {
  background: var(--pxd-danger-soft) !important; color: var(--pxd-danger) !important; border: 0 !important;
  box-shadow: 0 0 0 2px var(--pxd-danger), inset 0 -3px 0 rgba(0, 0, 0, .12) !important; font-weight: 700;
}
dialog.pxd .btn-brand-submit {
  border: 0 !important; background: var(--px-accent) !important; color: var(--px-accent-ink) !important; font-weight: 700;
  box-shadow: 0 0 0 3px var(--px-line), inset 0 -4px 0 rgba(0, 0, 0, .18), inset 0 3px 0 rgba(255, 255, 255, .22) !important;
  margin: 3px; cursor: pointer;
}
dialog.pxd .btn-brand-submit:hover, dialog.pxd [data-bug-del]:hover { filter: brightness(1.06); transform: translateY(-1px); }

/* 状态徽章 / 职务 → 方块标签 */
dialog.pxd .staff-badge, dialog.pxd .adm-leaf-badge, dialog.pxd .adm-ban-badge, dialog.pxd .adm-bug-badge {
  border-radius: 0 !important; border-width: 2px !important; font-weight: 700;
}

/* ---------- 7. 卡片 / 列表行：像素描边 + 硬阴影 ---------- */
dialog.pxd .adm-leaf-stat, dialog.pxd .adm-leaf-row, dialog.pxd .adm-ban-row, dialog.pxd .adm-bug-row, dialog.pxd .adm-album-row,
dialog.pxd .info-card,
#adminAppsListContainer > div:not([style*="text-align"]), #adminRolesContainer > div:not([style*="text-align"]),
#admAlbumsContainer > div:not([style*="text-align"]), #admPhotosContainer > div:not([style*="text-align"]),
#admBasesContainer > div:not([style*="text-align"]), #adminLogsContainer > div:not([style*="text-align"]) {
  border: 0 !important;
  background: var(--px-surface) !important;
  box-shadow: 0 0 0 2px var(--px-line-soft), 4px 4px 0 2px var(--px-shadow) !important;
}
dialog.pxd .adm-leaf-row:hover, dialog.pxd .adm-ban-row:hover, dialog.pxd .adm-bug-row:hover,
#adminAppsListContainer > div:not([style*="text-align"]):hover, #adminRolesContainer > div:not([style*="text-align"]):hover {
  box-shadow: 0 0 0 2px var(--px-accent), 4px 4px 0 2px var(--px-shadow) !important;
}
dialog.pxd .adm-ban-row.is-active, dialog.pxd .adm-bug-row.is-exploit { box-shadow: 0 0 0 2px var(--pxd-danger), 4px 4px 0 2px var(--px-shadow) !important; }
dialog.pxd .adm-leaf-row.is-stuck, dialog.pxd .adm-bug-row.is-stuck { box-shadow: 0 0 0 2px var(--pxd-warn), 4px 4px 0 2px var(--px-shadow) !important; }
dialog.pxd .adm-leaf-stat b { font-family: var(--font-pixel); font-weight: 400; font-size: 24px; -webkit-font-smoothing: none; }
dialog.pxd .adm-leaf-stat { position: relative; padding-left: 18px !important; }
dialog.pxd .adm-leaf-stat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--px-accent); }
dialog.pxd .adm-leaf-stat.is-warn::before { background: var(--pxd-warn); }
dialog.pxd .adm-leaf-tip {
  padding: 10px 12px 10px 14px; background: var(--px-bg-2); border-left: 4px solid var(--px-sky);
}
dialog.pxd code { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; background: var(--px-bg-2); padding: 1px 5px; }
dialog.pxd .info-card { padding: 14px 16px !important; }

/* 滚动条：方块 */
dialog.pxd ::-webkit-scrollbar { width: 10px; height: 10px; }
dialog.pxd ::-webkit-scrollbar-thumb { background: var(--px-line-soft) !important; border: 2px solid var(--px-surface); border-radius: 0 !important; }
dialog.pxd ::-webkit-scrollbar-thumb:hover { background: var(--px-accent) !important; }

/* ---------- 8. 加载 / 空状态（列表容器里的占位）---------- */
dialog.pxd .pxd-body [style*="text-align:center"][style*="padding:"], dialog.pxd .pxd-body [style*="text-align: center"][style*="padding:"] {
  font-family: var(--font-body);
}
dialog.pxd .pxd-empty {
  display: grid; justify-items: center; gap: 10px; padding: 40px 12px !important; color: var(--px-ink-2) !important; text-align: center;
}
dialog.pxd .pxd-empty .px-ico svg { width: 36px; height: 36px; }
dialog.pxd .pxd-loading::after {
  content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 6px; vertical-align: 1px;
  background: currentColor; box-shadow: 10px 0 0 currentColor, 20px 0 0 currentColor;
  animation: pxd-dots 1s steps(3, end) infinite;
}
@keyframes pxd-dots { 0% { opacity: .25; } 50% { opacity: 1; } 100% { opacity: .25; } }

/* ---------- 9. 地图 / 文本类弹窗 ---------- */
#mapDialog .map-viewport-frame { box-shadow: 0 0 0 3px var(--px-line), inset 0 0 0 2px rgba(255, 255, 255, .06) !important; border: 0 !important; }
dialog.pxd .dialog-notice { border: 0 !important; border-left: 4px solid var(--dlg-c1) !important; background: var(--px-bg-2) !important; color: var(--px-ink-2) !important; }
dialog.pxd .dialog-list li::marker { content: "■  "; color: var(--dlg-c1); font-size: 10px; }

/* ---------- 10. 灯箱 / 基地大图：方块控件 ---------- */
.lightbox-close-btn, .lightbox-nav-btn, .adm-blb-btn, .adm-blb-close {
  border: 0 !important; background: rgba(10, 18, 14, .78) !important; color: #e9efe2 !important;
  box-shadow: 0 0 0 3px #04090a, inset 0 -4px 0 rgba(0, 0, 0, .35), inset 0 3px 0 rgba(255, 255, 255, .08) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.lightbox-close-btn:hover, .adm-blb-close:hover { background: #c0392b !important; }
.lightbox-nav-btn:hover, .adm-blb-btn:hover { background: #4f8a3c !important; }
.lightbox-info-bar, .adm-blb-bar {
  border-radius: 0 !important; border: 0 !important; background: rgba(10, 18, 14, .86) !important;
  box-shadow: 0 0 0 3px #04090a !important; backdrop-filter: none !important;
}
.lightbox-cat-badge { font-family: var(--font-pixel) !important; font-weight: 400 !important; font-size: 12px !important; }
.lightbox-img, .adm-blb-stage img { image-rendering: auto; box-shadow: 0 0 0 3px #04090a, 10px 10px 0 3px rgba(0, 0, 0, .45); border-radius: 0 !important; }

/* ==========================================================================
   11. 管理员终端（#adminDialog）
   ========================================================================== */
#adminDialog.pxd { width: min(1200px, calc(100vw - 32px)) !important; height: min(820px, 90vh) !important; }
#adminDialog.pxd-ready > .adm-shell {
  display: grid !important;
  grid-template-columns: 236px minmax(0, 1fr);
  grid-template-rows: auto auto minmax(0, 1fr);
  height: 100%;
}
#adminDialog.pxd-ready .adm-head { grid-column: 1 / -1; }
#adminDialog.pxd-ready #adminIdentityBar { grid-column: 1 / -1; }
#adminDialog.pxd-ready #adminTabsBar { grid-column: 1; grid-row: 3; }
#adminDialog.pxd-ready .adm-main { grid-column: 2; grid-row: 3; min-height: 0; }
#adminDialog.pxd-ready #adminTabsBar.is-single ~ .adm-main { grid-column: 1 / -1; }

/* 终端标题栏：两种主题都用深色，像控制台窗口 */
#adminDialog .adm-head {
  background: var(--pxd-term) !important; color: var(--pxd-term-ink);
  border-bottom: 3px solid #04090a !important;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .025) 0 2px, transparent 2px 4px) !important;
}
#adminDialog .adm-head h3 { color: var(--pxd-term-ink) !important; }
#adminDialog .adm-head .pxd-kicker { color: #ff7a6b !important; }
#adminDialog .adm-head .pxd-ico { background: #0b1511; box-shadow: 0 0 0 3px #04090a, inset 0 0 0 3px #c0392b; }
#adminDialog .adm-head .btn-dialog-close { background: #1d2c25 !important; color: var(--pxd-term-ink) !important; box-shadow: 0 0 0 3px #04090a, inset 0 -4px 0 rgba(0, 0, 0, .3) !important; }
#adminDialog .adm-head .btn-dialog-close:hover { background: #c0392b !important; }
.adm-term-status {
  margin-left: auto; display: flex; align-items: center; gap: 14px;
  font-family: var(--font-pixel); font-size: 12px; color: var(--pxd-term-dim); -webkit-font-smoothing: none; white-space: nowrap;
}
.adm-term-status b { color: var(--pxd-term-ink); font-weight: 400; }
.adm-led { display: inline-block; width: 8px; height: 8px; margin-right: 6px; background: #8fd06a; box-shadow: 0 0 0 2px #04090a; animation: adm-blink 1.6s steps(2, end) infinite; }
.adm-led.is-off { background: #ff7a6b; animation: none; }
@keyframes adm-blink { 50% { opacity: .35; } }

/* 身份栏 */
#adminDialog #adminIdentityBar {
  padding: 10px 20px !important; background: var(--px-bg-2) !important; border-bottom: 2px solid var(--px-line-soft) !important;
}
#adminDialog .admin-identity-label { font-family: var(--font-pixel); font-weight: 400; font-size: 12px; color: var(--px-ink-3); -webkit-font-smoothing: none; }
#adminDialog .admin-identity-label::before { content: "> "; color: var(--px-accent); }
#adminDialog .admin-identity-scope { color: var(--px-ink-2); }
#adminDialog .staff-badge { padding: 3px 10px; }

/* 左侧模块栏 */
#adminDialog.pxd-ready #adminTabsBar {
  padding: 14px 12px !important; overflow-y: auto; min-height: 0;
  background: var(--px-bg-2) !important; border-bottom: 0 !important; border-right: 3px solid var(--px-line-soft);
}
#adminDialog.pxd-ready #adminTabsBar::before {
  content: "MODULES · 管理模块"; display: block; margin: 2px 6px 12px;
  font-family: var(--font-pixel); font-size: 12px; color: var(--px-ink-3); letter-spacing: .06em; -webkit-font-smoothing: none;
}
#adminDialog.pxd-ready #adminTabsBar .modal-tabs {
  flex-direction: column; gap: 4px !important; padding: 0 !important; background: transparent !important; box-shadow: none; overflow: visible;
}
#adminDialog.pxd-ready #adminTabsBar .tab-btn {
  flex: none; justify-content: flex-start; text-align: left; width: 100%;
  padding: 10px 12px !important; font-size: 13px !important; position: relative;
}
#adminDialog.pxd-ready #adminTabsBar .tab-btn .adm-tab-no {
  margin-left: auto; font-family: var(--font-pixel); font-size: 12px; font-weight: 400; opacity: .55; -webkit-font-smoothing: none;
}
#adminDialog.pxd-ready #adminTabsBar .tab-btn.is-active::before {
  content: ""; position: absolute; left: -12px; top: 6px; bottom: 6px; width: 5px; background: var(--px-accent);
}

/* 主区 */
#adminDialog .adm-main {
  padding: 0 24px 30px !important;
  background-color: var(--px-surface);
  background-image:
    linear-gradient(var(--px-line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--px-line-soft) 1px, transparent 1px);
  background-size: 48px 48px; background-position: -1px -1px;
  background-attachment: local;
}
#adminDialog .adm-crumb {
  position: sticky; top: 0; z-index: 4; margin: 0 -24px 18px; padding: 12px 24px;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: var(--px-surface); border-bottom: 2px solid var(--px-line-soft);
}
#adminDialog .adm-crumb .px-ico svg { width: 20px; height: 20px; display: block; }
#adminDialog .adm-crumb-code { font-family: var(--font-pixel); font-size: 12px; color: var(--px-ink-3); -webkit-font-smoothing: none; }
#adminDialog .adm-crumb-title { font-weight: 800; font-size: 15px; color: var(--px-ink); }
#adminDialog .adm-crumb-hint { margin-left: auto; font-size: 12px; color: var(--px-ink-3); }
#adminDialog .adm-crumb-hint b { color: var(--pxd-danger); font-weight: 700; }
#adminDialog .admin-tab-pane { animation: adm-pane-in .18s steps(3, end); }
@keyframes adm-pane-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
#adminDialog #adminLockedPane > div { margin-top: 24px; background: var(--px-surface); box-shadow: 0 0 0 2px var(--px-line-soft), 6px 6px 0 2px var(--px-shadow); }

/* 封禁表单：红石警戒条 */
#adminDialog .adm-ban-form {
  padding: 14px; margin-bottom: 14px; background: var(--pxd-danger-soft);
  box-shadow: 0 0 0 2px var(--pxd-danger); position: relative;
}
#adminDialog .adm-ban-form::before {
  content: "DANGER ZONE · 全服生效"; position: absolute; right: 10px; top: -9px; padding: 0 8px; line-height: 16px;
  font-family: var(--font-pixel); font-size: 12px; color: #fff; background: var(--pxd-danger); -webkit-font-smoothing: none;
}
/* 职务授予条 */
#admTabRoles > div:nth-child(2) { border: 0 !important; background: var(--px-bg-2) !important; box-shadow: 0 0 0 2px var(--px-line-soft) !important; }

/* ---------- 12. 响应式 ---------- */
@media (max-width: 900px) {
  #adminDialog.pxd { width: calc(100vw - 16px) !important; height: calc(100dvh - 24px) !important; max-height: none !important; }
  #adminDialog.pxd-ready > .adm-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto minmax(0, 1fr); }
  #adminDialog.pxd-ready #adminTabsBar { grid-column: 1; grid-row: 3; padding: 8px 10px !important; border-right: 0; border-bottom: 2px solid var(--px-line-soft) !important; overflow: hidden; }
  #adminDialog.pxd-ready #adminTabsBar::before { display: none; }
  #adminDialog.pxd-ready #adminTabsBar .modal-tabs { flex-direction: row; overflow-x: auto; overscroll-behavior-x: contain; }
  #adminDialog.pxd-ready #adminTabsBar .tab-btn { width: auto; padding: 8px 12px !important; }
  #adminDialog.pxd-ready #adminTabsBar .tab-btn .adm-tab-no { display: none; }
  #adminDialog.pxd-ready #adminTabsBar .tab-btn.is-active::before { display: none; }
  #adminDialog.pxd-ready .adm-main { grid-column: 1; grid-row: 4; }
  .adm-term-status .adm-term-clock { display: none; }
}
@media (max-width: 560px) {
  dialog.pxd { box-shadow: 0 0 0 3px var(--px-line), 6px 6px 0 2px var(--px-shadow) !important; }
  dialog.pxd .pxd-head { padding-left: 14px !important; padding-right: 14px !important; }
  dialog.pxd .pxd-head h3, dialog.pxd .dialog-title { font-family: var(--font-body) !important; font-size: 17px !important; font-weight: 800 !important; -webkit-font-smoothing: auto; }
  dialog.pxd .pxd-ico { width: 34px; height: 34px; }
  dialog.pxd .pxd-ico svg { width: 20px; height: 20px; }
  dialog.pxd .pxd-kicker { font-size: 12px !important; letter-spacing: .02em !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 56vw; }
  .adm-term-status { display: none; }
  #adminDialog .adm-main { padding: 0 14px 24px !important; }
  #adminDialog .adm-crumb { margin: 0 -14px 14px; padding: 10px 14px; }
  #adminDialog .adm-crumb-hint { display: none; }
  #adminDialog #adminIdentityBar { padding: 8px 14px !important; }
  dialog.pxd .adm-leaf-toolbar > div:last-child { width: 100%; }
  dialog.pxd .adm-leaf-search { flex: 1; min-width: 0; width: auto !important; }
  #admPhotosContainer, #admBasesContainer { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (prefers-reduced-motion: reduce) {
  dialog.pxd, dialog.pxd::backdrop { transition: none !important; transform: none !important; }
  .adm-led, dialog.pxd .pxd-loading::after, #adminDialog .admin-tab-pane { animation: none !important; }
}

/* ---------- 13. wl-dialogs.js 注入节点 ---------- */
dialog.pxd .pxd-title-wrap { display: flex; align-items: center; gap: 12px; min-width: 0; }
dialog.pxd .pxd-head .pxd-title-wrap h3 { overflow-wrap: anywhere; }
dialog.pxd .pxd-tab-ico { width: 16px; height: 16px; flex: none; display: inline-block; }
dialog.pxd .pxd-tab-ico svg { width: 16px; height: 16px; display: block; }
#adminDialog .adm-tab-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#adminDialog .pxd-lock-ico { display: inline-block; width: 48px; height: 48px; }
#adminDialog .pxd-lock-ico svg { width: 48px; height: 48px; display: block; }
#adminDialog .adm-head .pxd-kicker { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- 14. 窄屏修正（筛选按钮不折字 / 联系卡 / 准入通道）---------- */
dialog.pxd .adm-filter-btn, dialog.pxd .adm-leaf-filter, dialog.pxd .adm-ban-filter, dialog.pxd .adm-bug-filter,
dialog.pxd .adm-photo-filter, dialog.pxd .adm-base-filter, dialog.pxd .btn-copy-trigger, #adminDialog .admin-tab-pane .btn-glass[id^="btnRefresh"] { white-space: nowrap; }
#adminDialog .admin-tab-pane > div:first-child > div { flex-wrap: wrap; }
@media (max-width: 560px) {
  #joinDialog [style*="repeat(3, 1fr)"] { grid-template-columns: minmax(0, 1fr) !important; }
  #contactDialog .channel-card { flex-wrap: wrap; gap: 12px; }
  #contactDialog .channel-card-left { flex: 1 1 100%; min-width: 0; }
  #contactDialog .channel-card-right { flex: 1 1 100%; display: flex; gap: 8px; }
  #contactDialog .channel-card-right > * { flex: 1; justify-content: center; }
}
#adminDialog .admin-tab-pane div[style*="display: flex"]:has(> .btn-glass),
#adminDialog .admin-tab-pane div[style*="display: flex"]:has(> div > .btn-glass),
#admBaseFilterPills { flex-wrap: wrap; }

/* ==========================================================================
   10b. BAIYE-151e 首页相册预览灯箱 / 管理员基地大图：随深浅主题切换
   浅色 = 米白相纸台 + 深绿描边；深色 = 原深色终端感
   ========================================================================== */
[data-theme="light"] {
  --hlb-backdrop: rgba(236, 241, 232, .9);
  --hlb-grid: rgba(63, 122, 46, .08);
  --hlb-btn: #ffffff;
  --hlb-btn-ink: #1f2b22;
  --hlb-ring: #24321f;
  --hlb-bar: #ffffff;
  --hlb-ink: #1f2b22;
  --hlb-dim: #536253;
  --hlb-badge: #3f7a2e;
  --hlb-stage: #e9efe6;
  --hlb-shadow: rgba(36, 50, 31, .22);
  --hlb-bevel-lo: rgba(36, 50, 31, .12);
  --hlb-bevel-hi: rgba(255, 255, 255, .9);
}
[data-theme="dark"] {
  --hlb-backdrop: rgba(5, 11, 9, .8);
  --hlb-grid: rgba(143, 208, 106, .05);
  --hlb-btn: rgba(10, 18, 14, .86);
  --hlb-btn-ink: #e9efe2;
  --hlb-ring: #04090a;
  --hlb-bar: rgba(10, 18, 14, .9);
  --hlb-ink: #e9efe2;
  --hlb-dim: #a9b8a6;
  --hlb-badge: #8fd06a;
  --hlb-stage: #050a08;
  --hlb-shadow: rgba(0, 0, 0, .45);
  --hlb-bevel-lo: rgba(0, 0, 0, .35);
  --hlb-bevel-hi: rgba(255, 255, 255, .08);
}
html dialog.lightbox-dialog::backdrop, html #admBaseLb::backdrop {
  background-color: var(--hlb-backdrop) !important;
  background-image:
    linear-gradient(var(--hlb-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--hlb-grid) 1px, transparent 1px) !important;
  background-size: 24px 24px !important;
}
html :is(.lightbox-close-btn, .lightbox-nav-btn, .adm-blb-btn, .adm-blb-close) {
  background: var(--hlb-btn) !important; color: var(--hlb-btn-ink) !important;
  box-shadow: 0 0 0 3px var(--hlb-ring), inset 0 -4px 0 var(--hlb-bevel-lo), inset 0 3px 0 var(--hlb-bevel-hi), 4px 4px 0 3px var(--hlb-shadow) !important;
}
html :is(.lightbox-close-btn, .adm-blb-close):hover { background: #c0392b !important; color: #fff !important; }
html :is(.lightbox-nav-btn, .adm-blb-btn):hover { background: #4f8a3c !important; color: #fff !important; }
html :is(.lightbox-close-btn, .lightbox-nav-btn, .adm-blb-btn, .adm-blb-close):focus-visible { outline: 3px solid var(--hlb-badge) !important; outline-offset: 4px; }
html .lightbox-img-box { background: var(--hlb-stage) !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
html :is(.lightbox-img, .adm-blb-stage img) { box-shadow: 0 0 0 3px var(--hlb-ring), 10px 10px 0 3px var(--hlb-shadow) !important; }
html :is(.lightbox-info-bar, .adm-blb-bar) {
  background: var(--hlb-bar) !important; color: var(--hlb-ink) !important;
  box-shadow: 0 0 0 3px var(--hlb-ring), 6px 6px 0 3px var(--hlb-shadow) !important;
}
html .lightbox-title { color: var(--hlb-ink) !important; }
html .lightbox-cat-badge { color: var(--hlb-badge) !important; }
html :is(.lightbox-desc, .lightbox-info-right) { color: var(--hlb-dim) !important; }
html .adm-blb-bar a { color: var(--hlb-badge) !important; opacity: 1 !important; }
/* 主题切换时平滑过渡（减少动效时关闭） */
html :is(.lightbox-info-bar, .lightbox-close-btn, .lightbox-nav-btn, .lightbox-img-box) { transition: background-color .2s steps(4, end), color .2s steps(4, end) !important; }
@media (prefers-reduced-motion: reduce) {
  html :is(.lightbox-info-bar, .lightbox-close-btn, .lightbox-nav-btn, .lightbox-img-box) { transition: none !important; }
  html .lightbox-stage { animation: none !important; }
}
