/**
 * LoongStar 管理后台样式
 * 与 index.html / neo_layout.css 保持微软系列布局与配色一致
 */

/* LOGO「NeoABC」：Saira Condensed，使用 www/font 本地 woff2（与站点 /font 一致） */
@font-face {
    font-family: 'Saira Condensed';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/font/SairaCondensed-400.woff2') format('woff2');
}
@font-face {
    font-family: 'Saira Condensed';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('/font/SairaCondensed-600.woff2') format('woff2');
}
@font-face {
    font-family: 'Saira Condensed';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/font/SairaCondensed-700.woff2') format('woff2');
}

/* ===== 变量（与 neo_layout 对齐） ===== */
.admin-body {
    --primary-blue: #0067b8;
    --primary-blue-hover: #005a9e;
    --accent-teal: #00bcf2;
    --text-primary: #262626;
    --text-secondary: #505050;
    --text-light: #737373;
    --bg-primary: #ffffff;
    --bg-secondary: #f5f5f5;
    --bg-hover: #e5e5e5;
    --border-color: #e0e0e0;
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.04);
    --shadow-md: 0 4px 8px rgba(0,0,0,0.08);
    --admin-table-min-scroll-width: 1200px;
    --admin-list-thead-pad-block: 10px;
    --admin-list-thead-line-height: 1.35;
}

.admin-body {
    font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    margin: 0;
    padding: 0;
    height: 100vh;
    overflow: hidden;
    color: var(--text-primary);
    background: var(--bg-primary);
}

/* ===== 权限门与占位 ===== */
.admin-gate {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-secondary);
    z-index: 9999;
}

.admin-gate-loading {
    font-size: 16px;
    color: var(--text-secondary);
}

.admin-gate-boot-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 24px;
}

.admin-gate-hourglass {
    display: flex;
    color: var(--primary-blue, #0067b8);
}

.admin-gate-hourglass svg {
    animation: admin-paper-spin 1.1s linear infinite;
}

.admin-gate-boot-text {
    font-size: 16px;
    color: var(--text-secondary);
}

.admin-busy-overlay {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(2px);
}

.admin-busy-overlay.admin-busy-overlay--on {
    display: flex;
}

.admin-busy-overlay-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 24px;
}

.admin-busy-overlay-hourglass {
    display: flex;
    color: var(--primary-blue, #0067b8);
}

.admin-busy-overlay-hourglass svg {
    animation: admin-paper-spin 1.1s linear infinite;
}

.admin-busy-overlay-text {
    font-size: 16px;
    color: var(--text-secondary);
}

.admin-gate-forbidden,
.admin-gate-nologin {
    text-align: center;
    padding: 24px;
}

.admin-gate-forbidden h2,
.admin-gate-nologin h2 {
    color: var(--text-primary);
    font-size: 20px;
    margin-bottom: 12px;
}

.admin-gate-forbidden p,
.admin-gate-nologin p {
    color: var(--text-secondary);
    margin-bottom: 16px;
}

.admin-gate-forbidden a,
.admin-gate-nologin a {
    color: var(--primary-blue);
    text-decoration: none;
}

.admin-gate-forbidden a:hover,
.admin-gate-nologin a:hover {
    text-decoration: underline;
    color: var(--primary-blue-hover);
}

/* ===== 主布局：左右到边 ===== */
.admin-root {
    display: flex;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
}

.admin-sidebar-shell {
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    align-self: stretch;
    align-items: stretch;
    height: 100%;
    box-sizing: border-box;
    --admin-sidebar-inner: 220px;
    --admin-sidebar-rail: 18px;
    width: calc(var(--admin-sidebar-inner) + var(--admin-sidebar-rail));
    border-right: none;
    background: var(--bg-primary);
}

.admin-sidebar-shell.admin-sidebar-shell--collapsed {
    width: var(--admin-sidebar-rail);
}

.admin-sidebar-shell.admin-sidebar-shell--collapsed .admin-sidebar {
    visibility: hidden;
    width: 0;
    min-width: 0;
    max-width: 0;
    padding: 0;
    margin: 0;
    border: none;
    overflow: hidden;
    flex: 0 0 0;
    opacity: 0;
    pointer-events: none;
}

.admin-sidebar-edge-toggle {
    flex: 0 0 var(--admin-sidebar-rail);
    width: var(--admin-sidebar-rail);
    min-width: var(--admin-sidebar-rail);
    position: sticky;
    top: 0;
    align-self: flex-start;
    height: 100vh;
    max-height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    padding: 0;
    border: none;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fafafa;
    border-left: 1px solid #ececec;
    border-right: 1px solid #ececec;
    cursor: pointer;
    color: #9a9a9a;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

.admin-sidebar-shell:not(.admin-sidebar-shell--collapsed) .admin-sidebar-edge-toggle {
    cursor: ew-resize;
}

.admin-sidebar-shell.admin-sidebar-shell--collapsed .admin-sidebar-edge-toggle {
    cursor: pointer;
}

.admin-sidebar-edge-toggle:hover {
    color: #6e6e6e;
    background: #f3f3f3;
}

.admin-sidebar-edge-toggle:active {
    background: #ececec;
}

.admin-sidebar-edge-toggle:focus-visible {
    outline: 2px solid var(--primary-blue);
    outline-offset: -2px;
    z-index: 1;
}

.admin-sidebar-triangle {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    pointer-events: none;
    user-select: none;
}

.admin-sidebar-triangle svg {
    display: block;
    flex-shrink: 0;
    width: calc(100% - 2px);
    max-width: 100%;
    aspect-ratio: 8 / 12;
    height: auto;
    max-height: 40px;
}

.admin-sidebar-edge-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    pointer-events: none;
}

.admin-sidebar-grip-dots {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.admin-sidebar-grip-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.admin-sidebar-grip-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    flex-shrink: 0;
    background: radial-gradient(circle at 30% 28%, #ffffff 0%, #dadada 42%, #9a9a9a 88%, #7a7a7a 100%);
    box-shadow:
        0 1px 1px rgba(0, 0, 0, 0.2),
        inset 0 0.5px 1px rgba(255, 255, 255, 0.9);
}

.admin-sidebar-edge-toggle:hover .admin-sidebar-grip-dot {
    background: radial-gradient(circle at 30% 28%, #ffffff 0%, #e4e4e4 42%, #a2a2a2 88%, #828282 100%);
    box-shadow:
        0 1px 1px rgba(0, 0, 0, 0.16),
        inset 0 0.5px 1px rgba(255, 255, 255, 0.95);
}

.admin-sidebar-edge-toggle:active .admin-sidebar-grip-dot {
    background: radial-gradient(circle at 32% 32%, #e8e8e8 0%, #c8c8c8 50%, #888888 100%);
    box-shadow:
        0 0.5px 0.5px rgba(0, 0, 0, 0.18),
        inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

.admin-sidebar {
    width: var(--admin-sidebar-inner);
    min-width: 0;
    max-width: 100%;
    flex: 0 0 var(--admin-sidebar-inner);
    height: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100%;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    background: var(--bg-primary);
    border-right: none;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: hidden;
}

/* 上：产品 LOGO */
.admin-sidebar-top {
    padding: 16px;
    flex-shrink: 0;
    overflow-x: hidden;
}

.admin-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    border-radius: 4px;
}

.admin-logo:hover .admin-logo-text {
    color: var(--primary-blue);
}

.admin-logo img {
    height: 40px;
    width: auto;
    flex-shrink: 0;
    object-fit: contain;
}

.admin-logo-text {
    font-size: 16px;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    min-width: 0;
}

.admin-logo-neo {
    font-family: "Saira Condensed", "Segoe UI", sans-serif;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1px;
}

/* LOGO 下划线，菜单紧挨 */
.admin-sidebar-line {
    height: 1px;
    background: var(--border-color);
    margin: 0 12px;
    flex-shrink: 0;
}

/* 中：菜单（支持 2 级） */
.admin-menu {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 0;
    overscroll-behavior: contain;
}

.admin-menu-group {
    margin-bottom: 8px;
}

.admin-menu-group-title {
    padding: 8px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: none;
    white-space: nowrap;
    overflow-x: hidden;
}

.admin-menu-items {
    display: flex;
    flex-direction: column;
}

.admin-menu-item {
    display: block;
    padding: 10px 16px 10px 28px;
    font-size: 14px;
    color: var(--text-primary);
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    white-space: nowrap;
    overflow-x: hidden;
}

.admin-menu-item:hover {
    background: var(--bg-hover);
    color: var(--primary-blue);
}

.admin-menu-item.active {
    background: rgba(0, 103, 184, 0.08);
    color: var(--primary-blue);
    border-left-color: var(--primary-blue);
}

/* 下：用户信息与退出，居底 */
.admin-sidebar-bottom {
    flex-shrink: 0;
    padding: 12px 16px 30px 16px;
    border-top: 1px solid var(--border-color);
    margin-top: auto;
}

.admin-user {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
}

.admin-user-avatar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.admin-user-avatar-link {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: 50%;
    line-height: 0;
}

.admin-user-avatar-link:hover .admin-user-avatar {
    box-shadow: 0 0 0 2px var(--primary-blue);
}

.admin-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bg-secondary);
    flex-shrink: 0;
}

.admin-user-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-user-info {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-user-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-user-roles {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: flex-start;
    justify-content: flex-start;
    gap: 6px;
    width: 100%;
    white-space: normal;
}

.admin-user-role-item {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    max-width: 100%;
    padding: 4px 10px;
    font-size: 10px;
    color: var(--text-secondary);
    background: #f3f4f6;
    border-radius: 9999px;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-user-logout {
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    color: var(--primary-blue);
    text-decoration: none;
    padding: 4px 12px;
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    background: var(--bg-primary);
    cursor: pointer;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

.admin-user-logout:hover {
    color: var(--bg-primary);
    background: var(--primary-blue);
}

/* ===== 右侧业务区 ===== */
.admin-main {
    flex: 1;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* 标签栏（可横卷） */
.admin-tabs-wrap {
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-primary);
    overflow-x: auto;
    overflow-y: hidden;
}

.admin-tabs {
    display: flex;
    align-items: stretch;
    min-width: min-content;
    padding-left: 12px;
    box-sizing: border-box;
}

.admin-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 16px;
    font-size: 14px;
    color: var(--text-secondary);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    font-family: inherit;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}

.admin-tab:hover {
    color: var(--primary-blue);
    background: var(--bg-hover);
}

.admin-tab.active {
    color: var(--primary-blue);
    border-bottom-color: var(--primary-blue);
}

.admin-tab-close {
    width: 16px;
    height: 16px;
    padding: 0;
    border: none;
    background: none;
    color: var(--text-light);
    cursor: pointer;
    border-radius: 2px;
    font-size: 14px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-tab-close:hover {
    color: var(--text-primary);
    background: var(--bg-hover);
}

/* 业务区（可横卷、竖卷，滚动不影响左侧） */
.admin-content {
    flex: 1;
    min-height: 0;
    min-width: 0;
    overflow: auto;
}

.admin-panes {
    padding: 16px;
    box-sizing: border-box;
    max-width: 100%;
}

.admin-pane {
    display: none;
    min-height: 200px;
    padding: 16px;
    background: var(--bg-primary);
    box-sizing: border-box;
}

.admin-pane.active {
    display: block;
}

.admin-pane-placeholder {
    color: var(--text-secondary);
    font-size: 14px;
}

/* ===== 产品分类：行方案，每级相对上一级 padding-left +8px，图标左(▶/▼ 或 ├/└)，悬停加粗+淡灰 ===== */
.admin-category {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 8px 12px;
}

.admin-category-tree {
    font-size: 14px;
    color: var(--text-primary);
    border-collapse: collapse;
    width: 100%;
}

.admin-category-tree .admin-category-td {
    padding: 4px 6px;
    vertical-align: middle;
    border: none;
    white-space: nowrap;
}

.admin-category-node {
    cursor: default;
    line-height: 1.4;
}

.admin-category-node:hover {
    font-weight: 700;
}

.admin-category-node:hover .admin-category-node-inner {
    background: var(--bg-hover);
}

/* 节点内容块，仅此区域悬停/选中时高亮，不做满行反光；左右各多 5px */
.admin-category-node-inner {
    display: inline-block;
    padding: 2px 5px 2px 5px;
    border-radius: 2px;
}

/* 右键菜单弹出时，节点失去 :hover，用类强制保持悬停样式（加粗+背景） */
.admin-category-node.admin-category-node-ctx-active {
    font-weight: 700;
}

.admin-category-node.admin-category-node-ctx-active .admin-category-node-inner {
    background: var(--bg-hover);
}

.admin-category-icon {
    display: inline-block;
    margin-right: 6px;
    color: var(--text-light);
    flex-shrink: 0;
}

.admin-category-icon-expand {
    cursor: pointer;
}

.admin-category-icon-expand:hover {
    color: var(--primary-blue);
}

.admin-category-icon-branch {
    cursor: default;
}

.admin-category-name {
    font-weight: inherit;
}

/* 产品分类 - 树下方 category 原始表 */
.admin-category-raw-wrap {
    margin-top: 16px;
    border-top: 1px solid var(--border-color);
    padding-top: 12px;
}
.admin-category-raw-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
}
.admin-category-raw-table {
    width: 100%;
    font-size: 13px;
    border-collapse: collapse;
    color: var(--text-primary);
}
.admin-category-raw-table th,
.admin-category-raw-table td {
    padding: 6px 8px;
    text-align: left;
    border: 1px solid var(--border-color);
}
.admin-category-raw-table th {
    background: var(--bg-hover);
    font-weight: 600;
}
.admin-category-raw-table td.admin-category-raw-op {
    white-space: nowrap;
}
.admin-category-raw-btn-del {
    padding: 2px 8px;
    font-size: 12px;
    color: var(--text-primary);
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 2px;
    cursor: pointer;
}
.admin-category-raw-btn-del:hover {
    background: var(--bg-hover);
    border-color: var(--text-light);
}

/* 右键菜单 */
.admin-category-ctx {
    display: none;
    position: fixed;
    z-index: 9000;
    min-width: 100px;
    padding: 4px 0;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 2px;
    box-shadow: var(--shadow-md);
}
.admin-category-ctx.admin-category-ctx-open {
    display: block;
}
.admin-category-ctx span {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    font-size: 14px;
    color: var(--text-primary);
    cursor: pointer;
}
.admin-category-ctx-icon {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}
.admin-category-ctx span:hover {
    background: var(--bg-hover);
    color: var(--primary-blue);
}
.admin-category-ctx span.admin-category-ctx-disabled {
    color: var(--text-light);
    cursor: not-allowed;
}
.admin-category-ctx span.admin-category-ctx-disabled:hover {
    background: transparent;
    color: var(--text-light);
}

/* 弹窗 */
.admin-category-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9100;
    background: rgba(0,0,0,0.3);
    align-items: center;
    justify-content: center;
}
.admin-category-modal.admin-category-modal-open {
    display: flex;
}
.admin-category-modal-inner {
    --am-pad-x: 24px;
    background: var(--bg-primary);
    padding: 0 var(--am-pad-x) 20px;
    border-radius: 4px;
    box-shadow: var(--shadow-md);
    min-width: 320px;
    position: relative;
}
.admin-category-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
    cursor: move;
    user-select: none;
}
.admin-category-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: var(--text-primary);
    margin-bottom: 0;
}
.admin-category-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-category-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-category-input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    margin-bottom: 16px;
}
.admin-category-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}
.admin-category-modal-btns {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}
.admin-category-modal-ok,
.admin-category-modal-cancel {
    font-size: 14px;
    padding: 6px 16px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-category-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
}
.admin-category-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-category-modal-cancel {
    color: var(--text-secondary);
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
}
.admin-category-modal-cancel:hover {
    background: var(--bg-hover);
}

/* ===== 产品仓库 / 产品信息 ===== */
.admin-product {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-product-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.admin-product-toolbar select {
    padding: 6px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
}
.admin-product-btn-add {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-product-btn-add:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-product-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-product-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-product-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-product-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
}
.admin-product-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    font-size: 13px;
    border-collapse: collapse;
    box-sizing: border-box;
    table-layout: fixed;
}
.admin-product-table th,
.admin-product-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-product-table td {
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 会员等级 / 产品表：产品编码列等宽仅作用于数据格，表头与其他列同字体 */
.admin-level .admin-level-table td.admin-col-product-code,
.admin-product-table td.admin-col-product-code {
    font-family: Consolas, "Courier New", Courier, "Lucida Console", "Liberation Mono", monospace !important;
    font-size: 12px;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}
/* 产品仓库：11 列百分宽；操作列单行、无格内横向滚动 */
.admin-product-warehouse .admin-product-table th:first-child,
.admin-product-warehouse .admin-product-table td:first-child {
    width: 6%;
    padding-left: 20px;
    text-align: center;
}
.admin-product-warehouse .admin-product-table th:nth-child(2),
.admin-product-warehouse .admin-product-table td:nth-child(2) {
    width: 4%;
    padding: 6px 5px;
    text-align: center;
}
.admin-product-warehouse .admin-product-table th:nth-child(3),
.admin-product-warehouse .admin-product-table td:nth-child(3) { width: 8%; }
.admin-product-warehouse .admin-product-table th:nth-child(4),
.admin-product-warehouse .admin-product-table td:nth-child(4) { width: 18%; }
.admin-product-warehouse .admin-product-table th:nth-child(5),
.admin-product-warehouse .admin-product-table td:nth-child(5) { width: 10%; }
.admin-product-warehouse .admin-product-table th:nth-child(6),
.admin-product-warehouse .admin-product-table td:nth-child(6) { width: 6%; text-align: center; }
.admin-product-warehouse .admin-product-table th:nth-child(7),
.admin-product-warehouse .admin-product-table td:nth-child(7) { width: 6%; }
.admin-product-warehouse .admin-product-table th:nth-child(8),
.admin-product-warehouse .admin-product-table td:nth-child(8) { width: 10%; }
.admin-product-warehouse .admin-product-table th:nth-child(9),
.admin-product-warehouse .admin-product-table td:nth-child(9) { width: 5%; text-align: center; }
.admin-product-warehouse .admin-product-table th:nth-child(10),
.admin-product-warehouse .admin-product-table td:nth-child(10) { width: 6%; text-align: center; }
.admin-product-warehouse .admin-product-table th:nth-child(11),
.admin-product-warehouse .admin-product-table td:nth-child(11) {
    width: 17%;
    min-width: 11rem;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
/* 产品信息：含「产品简介」，无操作列 */
.admin-product-info .admin-product-table th:first-child,
.admin-product-info .admin-product-table td:first-child {
    width: 6%;
    padding-left: 20px;
    text-align: center;
}
.admin-product-info .admin-product-table th:nth-child(2),
.admin-product-info .admin-product-table td:nth-child(2) {
    width: 4%;
    padding: 6px 5px;
    text-align: center;
}
.admin-product-info .admin-product-table th:nth-child(3),
.admin-product-info .admin-product-table td:nth-child(3) { width: 8%; }
.admin-product-info .admin-product-table th:nth-child(4),
.admin-product-info .admin-product-table td:nth-child(4) { width: calc(12% + 16% * 2 / 3); }
.admin-product-info .admin-product-table th:nth-child(5),
.admin-product-info .admin-product-table td:nth-child(5) { width: 10%; }
.admin-product-info .admin-product-table th:nth-child(6),
.admin-product-info .admin-product-table td:nth-child(6) { width: 6%; text-align: center; }
.admin-product-info .admin-product-table th:nth-child(7),
.admin-product-info .admin-product-table td:nth-child(7) { width: 6%; }
.admin-product-info .admin-product-table th:nth-child(8),
.admin-product-info .admin-product-table td:nth-child(8) { width: 14%; }
.admin-product-info .admin-product-table th:nth-child(9),
.admin-product-info .admin-product-table td:nth-child(9) { width: 9%; }
.admin-product-info .admin-product-table th:nth-child(10),
.admin-product-info .admin-product-table td:nth-child(10) { width: 5%; text-align: center; }
.admin-product-info .admin-product-table th:nth-child(11),
.admin-product-info .admin-product-table td:nth-child(11) { width: calc(16% / 3); text-align: center; }
.admin-product-table th:nth-child(6),
.admin-product-table td:nth-child(6) { text-align: center; }
.admin-product-table th:last-child,
.admin-product-table td:last-child {
    padding-right: 20px;
}
.admin-product-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-product-svg-cell {
    width: 48px;
    text-align: center;
    padding: 6px 5px;
    vertical-align: middle;
}
.admin-product-svg-img {
    display: inline-block;
    max-width: 24px;
    max-height: 24px;
    vertical-align: middle;
}
.admin-product-svg-img svg {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.admin-product-ctime {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-product-edit,
.admin-product-del {
    color: var(--primary-blue);
    cursor: pointer;
    margin-right: 8px;
    font-size: 14px;
}
.admin-product-edit:hover,
.admin-product-del:hover { text-decoration: underline; }
.admin-product-pager {
    margin-top: 12px;
    font-size: 13px;
    color: var(--text-secondary);
}
.admin-pager-prev,
.admin-pager-next,
.admin-pager-first,
.admin-pager-last {
    color: var(--primary-blue);
    cursor: pointer;
    margin: 0 4px;
}
.admin-pager-prev:hover,
.admin-pager-next:hover,
.admin-pager-first:hover,
.admin-pager-last:hover { text-decoration: underline; }
.admin-pager-input {
    width: 48px;
    margin: 0 4px;
    padding: 2px 6px;
    font-size: 13px;
    text-align: center;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
}
.admin-pager-go {
    margin-left: 6px;
    padding: 2px 10px;
    font-size: 12px;
    cursor: pointer;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    background: var(--bg-secondary, #f5f5f5);
    color: var(--text-primary, #333);
}
.admin-pager-go:hover {
    background: var(--bg-hover, #eee);
}
.admin-product-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9100;
    background: rgba(0,0,0,0.3);
    align-items: center;
    justify-content: center;
}
.admin-product-modal.admin-product-modal-open { display: flex; }
.admin-product-modal-inner {
    --am-pad-x: 40px;
    background: var(--bg-primary);
    padding: 0 var(--am-pad-x) 20px;
    border-radius: 4px;
    box-shadow: var(--shadow-md);
    min-width: 800px;
    max-width: 800px;
    position: relative;
}
.admin-product-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
    cursor: move;
    user-select: none;
}
.admin-product-modal-inner .admin-product-modal-title { margin-bottom: 0; font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: 0.04em; }
.admin-product-modal-header .admin-product-modal-title { margin-bottom: 0; }
.admin-product-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-product-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-product-field {
    display: flex;
    margin-bottom: 10px;
}
.admin-product-field .admin-product-required {
    color: #ff0000;
    font-size: 14px;
    width: 9px;
    text-align: center;
    margin-right: 4px;
    flex-shrink: 0;
    box-sizing: border-box;
}
.admin-product-field .admin-product-field-content {
    flex: 1;
    width: 0;
    margin-left: 0;
}
.admin-product-field input,
.admin-product-field textarea,
.admin-product-field .admin-product-category-picker {
    width: 100%;
    box-sizing: border-box;
}
.admin-product-modal-inner .admin-product-field-content input,
.admin-product-modal-inner .admin-product-field-content select,
.admin-product-modal-inner .admin-product-field-content textarea {
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
}
.admin-product-category-picker {
    position: relative;
    margin-bottom: 10px;
    z-index: 1;
}
.admin-product-category-input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    cursor: pointer;
    background: var(--bg-primary);
}
.admin-product-category-input:hover {
    border-color: var(--primary-blue);
}
.admin-product-category-tree-popup {
    display: none !important;
    position: fixed !important;
    z-index: 10002 !important;
    background: var(--bg-primary) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 2px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    max-height: 300px;
    overflow-y: auto;
    min-width: 200px;
    max-width: 500px;
    opacity: 1 !important;
    visibility: visible !important;
}
.admin-product-category-tree-popup.admin-product-category-tree-popup-open {
    display: block !important;
}
.admin-product-category-tree-wrap {
    padding: 8px;
}
.admin-product-category-tree-table {
    width: 100%;
    border-collapse: collapse;
}
.admin-product-category-tree-tbody {
    display: table-row-group;
}
.admin-product-category-tree-item {
    cursor: default;
    line-height: 1.4;
}
.admin-product-category-tree-item:hover {
    font-weight: 700;
}
.admin-product-category-tree-item:hover .admin-product-category-tree-inner {
    background: var(--bg-hover);
}
.admin-product-category-tree-item.admin-product-category-tree-leaf {
    cursor: pointer;
}
.admin-product-category-tree-item-selected {
    background: var(--bg-hover);
}
.admin-product-category-tree-item-selected .admin-product-category-tree-inner {
    background: var(--primary-blue);
    color: var(--bg-primary);
    border-radius: 2px;
    padding: 2px 5px;
}
.admin-product-category-tree-item-selected .admin-product-category-tree-name {
    font-weight: 600;
}
.admin-product-category-tree-td {
    padding: 0;
    border: none;
    white-space: nowrap;
}
.admin-product-category-tree-inner {
    display: inline-block;
    padding: 2px 5px 2px 5px;
    border-radius: 2px;
}
.admin-product-category-tree-icon {
    display: inline-block;
    margin-right: 6px;
    color: var(--text-light);
    flex-shrink: 0;
}
.admin-product-category-tree-icon-expand {
    cursor: pointer;
}
.admin-product-category-tree-icon-expand:hover {
    color: var(--primary-blue);
}
.admin-product-category-tree-icon-branch {
    cursor: default;
}
.admin-product-category-tree-name {
    font-weight: inherit;
}
.admin-product-category-tree-children {
    display: table-row-group;
}
.admin-product-category-tree-children-wrapper {
    display: table-row;
}
.admin-product-category-tree-children-wrapper[style*="display: none"] {
    display: none !important;
}
.admin-product-modal-inner textarea { resize: vertical; min-height: 50px; }
.admin-product-modal-inner .admin-product-img { min-height: 60px; }
/* 图片输入框和预览区域布局（与会员等级保持一致） */
.admin-product-img-field-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.admin-product-img-field-wrapper .admin-product-img {
    flex: 1;
    min-width: 0;
}
.admin-product-img-preview {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 4px;
    box-sizing: border-box;
}
.admin-product-img-preview > div {
    max-width: 100%;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.admin-product-img-preview svg {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.admin-product-modal-inner .admin-product-modal-btns {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 16px;
}
.admin-product-modal-ok,
.admin-product-modal-cancel {
    padding: 6px 16px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-product-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
}
.admin-product-modal-ok:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-product-modal-cancel {
    color: var(--text-secondary);
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
}
.admin-product-modal-cancel:hover { background: var(--bg-hover); }

/* ===== 用户/会员列表（仅 pane 内） ===== */
.admin-pane .admin-user {
    display: block;
    background: var(--bg-primary);
    padding: 12px;
}
.admin-user-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 0 10px;
}
.admin-user-btn-batch-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    min-height: 34px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
    font-size: 13px;
    font-family: inherit;
}
.admin-user-btn-batch-delete:hover {
    background: var(--bg-secondary);
}
.admin-user-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-user-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-user-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-user-table-wrap {
    overflow-x: auto;
    padding: 0 10px;
    -webkit-overflow-scrolling: touch;
}
.admin-user-table { width: 100%; font-size: 13px; border-collapse: collapse; min-width: 100%; }
.admin-user-table[data-mode="user-info"],
.admin-user-table[data-mode="member-info"] {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
}
.admin-user-table.admin-neo-sort-table[data-mode="user-info"],
.admin-user-table.admin-neo-sort-table[data-mode="member-info"] {
    table-layout: auto;
    width: max-content;
    min-width: 100%;
}
.admin-user-table th,
.admin-user-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--border-color); white-space: nowrap; }
.admin-user-table th:first-child,
.admin-user-table td:first-child { padding-left: 20px; }
.admin-user-table[data-mode="user-info"] th:first-child,
.admin-user-table[data-mode="user-info"] td:first-child {
    padding-left: 2px;
    padding-right: 0;
}
.admin-user-table[data-mode="user-info"] th:nth-child(2),
.admin-user-table[data-mode="user-info"] td:nth-child(2) {
    text-align: center;
    vertical-align: middle;
    padding: 6px 8px;
}
.admin-user-table th:last-child,
.admin-user-table td:last-child { padding-right: 20px; }
.admin-user-table th { font-weight: 600; color: var(--text-secondary); background: var(--bg-secondary); position: sticky; top: 0; z-index: 1; }
.admin-user-table td { color: var(--text-primary); }
.admin-user-table[data-mode="user-info"] th,
.admin-user-table[data-mode="user-info"] td,
.admin-user-table[data-mode="member-info"] th,
.admin-user-table[data-mode="member-info"] td {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
}
.admin-user-table[data-mode="user-info"] th.admin-user-th-cb,
.admin-user-table[data-mode="user-info"] td.admin-user-td-cb {
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    padding: 6px 0;
    text-align: center;
    vertical-align: middle;
    box-sizing: border-box;
    overflow: visible;
}
.admin-user-th-cb-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    width: 18px;
    height: 18px;
}
.admin-user-master-cb,
.admin-user-row-cb {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
}
.admin-user-table[data-mode="user-info"] th:nth-child(2),
.admin-user-table[data-mode="user-info"] td:nth-child(2) { min-width: 5.5rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(3),
.admin-user-table[data-mode="user-info"] td:nth-child(3) {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    padding: 4px 6px;
    text-align: center;
    box-sizing: border-box;
}
.admin-user-table[data-mode="user-info"] th:nth-child(n+4):nth-child(-n+7),
.admin-user-table[data-mode="user-info"] td:nth-child(n+4):nth-child(-n+7) { min-width: 10rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(n+8):nth-child(-n+12),
.admin-user-table[data-mode="user-info"] td:nth-child(n+8):nth-child(-n+12) { min-width: 22rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(13),
.admin-user-table[data-mode="user-info"] td:nth-child(13),
.admin-user-table[data-mode="user-info"] th:nth-child(14),
.admin-user-table[data-mode="user-info"] td:nth-child(14) { min-width: 10rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(15),
.admin-user-table[data-mode="user-info"] td:nth-child(15) { min-width: 18rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(16),
.admin-user-table[data-mode="user-info"] td:nth-child(16),
.admin-user-table[data-mode="user-info"] th:nth-child(17),
.admin-user-table[data-mode="user-info"] td:nth-child(17) { min-width: 5.5rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(18),
.admin-user-table[data-mode="user-info"] td:nth-child(18) { min-width: 12rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(n+19):nth-child(-n+25),
.admin-user-table[data-mode="user-info"] td:nth-child(n+19):nth-child(-n+25) { min-width: 7.5rem; }
.admin-user-table[data-mode="user-info"] th:nth-child(26),
.admin-user-table[data-mode="user-info"] td:nth-child(26) { min-width: 24rem; }
.admin-user-table[data-mode="user-info"] td:nth-child(3),
.admin-user-table[data-mode="member-info"] td:nth-child(9) { overflow: visible; }
.admin-user-table[data-mode="member-info"] th:nth-child(1),
.admin-user-table[data-mode="member-info"] td:nth-child(1),
.admin-user-table[data-mode="member-info"] th:nth-child(2),
.admin-user-table[data-mode="member-info"] td:nth-child(2) {
    min-width: 5.5rem;
    text-align: center;
}
.admin-user-table[data-mode="member-info"] th:nth-child(n+3):nth-child(-n+7),
.admin-user-table[data-mode="member-info"] td:nth-child(n+3):nth-child(-n+7) { min-width: 11rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(8),
.admin-user-table[data-mode="member-info"] td:nth-child(8) { min-width: 5rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(9),
.admin-user-table[data-mode="member-info"] td:nth-child(9) {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    padding: 4px 6px;
    text-align: center;
    box-sizing: border-box;
}
.admin-user-table[data-mode="member-info"] th:nth-child(10),
.admin-user-table[data-mode="member-info"] td:nth-child(10) { min-width: 11rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(11),
.admin-user-table[data-mode="member-info"] td:nth-child(11) { min-width: 9rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(n+12):nth-child(-n+16),
.admin-user-table[data-mode="member-info"] td:nth-child(n+12):nth-child(-n+16) { min-width: 22rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(17),
.admin-user-table[data-mode="member-info"] td:nth-child(17),
.admin-user-table[data-mode="member-info"] th:nth-child(18),
.admin-user-table[data-mode="member-info"] td:nth-child(18) { min-width: 10rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(19),
.admin-user-table[data-mode="member-info"] td:nth-child(19) { min-width: 18rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(20),
.admin-user-table[data-mode="member-info"] td:nth-child(20),
.admin-user-table[data-mode="member-info"] th:nth-child(21),
.admin-user-table[data-mode="member-info"] td:nth-child(21) { min-width: 5.5rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(22),
.admin-user-table[data-mode="member-info"] td:nth-child(22) { min-width: 11rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(23),
.admin-user-table[data-mode="member-info"] td:nth-child(23) { min-width: 12rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(n+24):nth-child(-n+31),
.admin-user-table[data-mode="member-info"] td:nth-child(n+24):nth-child(-n+31) { min-width: 7.5rem; }
.admin-user-table[data-mode="member-info"] th:nth-child(32),
.admin-user-table[data-mode="member-info"] td:nth-child(32) { min-width: 24rem; }
.admin-user-table[data-mode="member-info"] .admin-user-avatar-img {
    width: 24px;
    height: 24px;
    --row-height: 24px;
}
.admin-user-avatar-img {
    --row-height: 28px;
    width: var(--row-height);
    height: var(--row-height);
    border-radius: 50%;
    object-fit: contain;
    vertical-align: middle;
    display: inline-block;
    background: var(--bg-secondary);
}
.admin-user-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }
.admin-user-batch-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10002;
    align-items: center;
    justify-content: center;
}
.admin-user-batch-delete-modal.admin-user-batch-delete-modal-open {
    display: flex;
}
.admin-user-batch-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 420px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-user-batch-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-user-batch-delete-modal-message {
    margin: 0 0 12px;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-user-batch-delete-input {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 20px;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-family: inherit;
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-user-batch-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-user-batch-delete-modal-ok,
.admin-user-batch-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-user-batch-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-user-batch-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-user-batch-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-user-batch-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
.admin-user-batch-error-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10003;
    align-items: center;
    justify-content: center;
}
.admin-user-batch-error-modal.admin-user-batch-error-modal-open {
    display: flex;
}
.admin-user-batch-error-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 480px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-user-batch-error-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-user-batch-error-modal-body {
    margin: 0 0 20px;
    padding: 12px;
    background: var(--bg-secondary);
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.55;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--text-primary);
    font-family: inherit;
    max-height: 50vh;
    overflow-y: auto;
    border: 1px solid var(--border-color);
}
.admin-user-batch-error-modal-btns {
    display: flex;
    justify-content: flex-end;
}
.admin-user-batch-error-modal-ok {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--primary-blue);
    color: var(--bg-primary);
    background: var(--primary-blue);
}
.admin-user-batch-error-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}

/* ===== 用户授权 ===== */
.admin-user-auth {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
}
.admin-user-auth-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.admin-user-auth-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
}
.admin-user-auth-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-user-auth-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-user-auth-btn-add {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-user-auth-btn-add:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-user-auth-table-wrap { overflow-x: auto; padding: 0 10px; }
.admin-user-auth-table { width: 100%; font-size: 14px; border-collapse: collapse; }
.admin-user-auth-table th,
.admin-user-auth-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border-color); }
.admin-user-auth-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-user-auth-table th:first-child,
.admin-user-auth-table td:first-child { padding-left: 20px; }
.admin-user-auth-table th:last-child,
.admin-user-auth-table td:last-child { padding-right: 20px; }
.admin-user-auth-edit,
.admin-user-auth-del {
    color: var(--primary-blue);
    cursor: pointer;
    margin-right: 8px;
    font-size: 14px;
}
.admin-user-auth-edit:hover,
.admin-user-auth-del:hover { text-decoration: underline; }
.admin-user-auth-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }

.admin-user-auth-modal {
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-user-auth-modal.admin-user-auth-modal-open { display: flex; }
.admin-user-auth-modal-inner {
    --am-pad-x: 40px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 480px;
    padding: 0 var(--am-pad-x) 24px;
    position: relative;
}
.admin-user-auth-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
    cursor: move;
    user-select: none;
}
.admin-user-auth-modal-title { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: 0.04em; margin-bottom: 0; color: var(--text-primary); }
.admin-user-auth-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-user-auth-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-user-auth-field { display: flex; align-items: flex-start; margin-bottom: 16px; }
.admin-user-auth-required { color: #f00; width: 9px; text-align: center; margin-right: 4px; margin-top: 8px; flex-shrink: 0; }
.admin-user-auth-field-content { 
    flex: 1; 
    min-width: 0; 
    width: 0; /* 强制 flex 子元素使用 flex-basis 而不是内容宽度 */
}
.admin-user-auth-field-content input,
.admin-user-auth-field-content select,
.admin-user-auth-field-content textarea {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
    display: block; /* 确保都是块级元素 */
}
/* 确保描述输入框宽度与角色名称输入框完全一致 */
.admin-user-auth-field-content .admin-user-auth-remark {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    resize: vertical !important;
    display: block !important;
    /* 移除 textarea 的所有默认宽度限制 */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
/* 确保所有 field-content 都有相同的宽度（包括包含 textarea 的） */
.admin-user-auth-field .admin-user-auth-field-content {
    flex: 1 !important;
    min-width: 0 !important;
    width: 0 !important;
}
.admin-user-auth-user-picker { position: relative; }
.admin-user-auth-user-input { cursor: pointer; background: var(--bg-primary); }
.admin-user-auth-user-input:hover { border-color: var(--primary-blue); }
.admin-user-auth-user-popup {
    display: none;
    position: fixed !important;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10002 !important;
    max-height: 280px;
    overflow-y: auto;
}
.admin-user-auth-user-popup.admin-user-auth-user-popup-open { display: block; }
.admin-user-auth-user-list { padding: 8px; }
.admin-user-auth-user-list table { width: 100%; font-size: 14px; border-collapse: collapse; }
.admin-user-auth-user-list th,
.admin-user-auth-user-list td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--border-color); }
.admin-user-auth-user-list th { font-weight: 600; color: var(--text-secondary); background: var(--bg-secondary); }
.admin-user-auth-user-row { cursor: pointer; }
.admin-user-auth-user-row:hover { background: var(--bg-secondary); }
.admin-user-auth-modal-btns { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }
.admin-user-auth-modal-ok,
.admin-user-auth-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-user-auth-modal-ok { color: var(--bg-primary); background: var(--primary-blue); border-color: var(--primary-blue); }
.admin-user-auth-modal-ok:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-user-auth-modal-cancel { color: var(--text-primary); background: var(--bg-primary); }
.admin-user-auth-modal-cancel:hover { background: var(--bg-secondary); }

/* 角色管理 - 删除确认模态框 */
.admin-user-auth-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.admin-user-auth-delete-modal.admin-user-auth-delete-modal-open {
    display: flex;
}
.admin-user-auth-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 480px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-user-auth-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-user-auth-delete-modal-message {
    margin-bottom: 16px;
    color: var(--text-primary);
    line-height: 1.5;
}
.admin-user-auth-delete-modal-field {
    margin-bottom: 20px;
}
.admin-user-auth-delete-modal-label {
    margin-bottom: 8px;
    color: var(--text-secondary);
    font-size: 14px;
}
.admin-user-auth-delete-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
}
.admin-user-auth-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}
.admin-user-auth-delete-modal-ok,
.admin-user-auth-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-user-auth-delete-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.admin-user-auth-delete-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-user-auth-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-user-auth-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}

/* ===== 用户角色 ===== */
.admin-user-role {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
}
.admin-user-role-table-wrap { overflow-x: auto; padding: 0 10px; }
.admin-user-role-table { width: 100%; font-size: 14px; border-collapse: collapse; }
.admin-user-role-table th,
.admin-user-role-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border-color); }
.admin-user-role-table th {
    font-weight: 600;
    color: var(--text-secondary);
    white-space: nowrap;
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-user-role-table th:first-child,
.admin-user-role-table td:first-child { padding-left: 20px; }
.admin-user-role-table th:last-child,
.admin-user-role-table td:last-child { padding-right: 20px; }
/* 头像列固定宽度 */
.admin-user-role-table th:nth-child(2),
.admin-user-role-table td:nth-child(2) {
    width: 54px; min-width: 54px; max-width: 54px;
    padding: 4px 6px; text-align: center; box-sizing: border-box;
}
/* 各列最小宽度，确保标题不折行 */
.admin-user-role-table th:nth-child(1) { min-width: 80px; } /* 用户ID */
.admin-user-role-table th:nth-child(3) { min-width: 100px; } /* 姓名 */
.admin-user-role-table th:nth-child(4) { min-width: 60px; max-width: 120px; } /* 昵称 */
.admin-user-role-table td:nth-child(4) { min-width: 60px; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 昵称 */
.admin-user-role-table th:nth-child(5) { min-width: 100px; } /* 角色 */
.admin-user-role-table th:nth-child(6) { min-width: 100px; } /* 角色关键字 */
.admin-user-role-table th:nth-child(7) { min-width: 120px; } /* 微信号 */
.admin-user-role-table th:nth-child(8),
.admin-user-role-table td:nth-child(8) { min-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-role-table th:nth-child(9),
.admin-user-role-table td:nth-child(9) { min-width: 120px; width: 120px; }
.admin-user-role-avatar-img {
    width: 36px; height: 36px; border-radius: 50%;
    object-fit: contain; vertical-align: middle; display: inline-block;
    background: var(--bg-secondary);
}
.admin-user-role-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }
/* 用户角色工具栏和按钮 */
.admin-user-role-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.admin-user-role-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
}
.admin-user-role-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-user-role-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-user-role-btn-add {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-user-role-btn-add:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
/* 操作列链接 */
.admin-user-role-edit,
.admin-user-role-del {
    color: var(--primary-blue);
    text-decoration: none;
    margin-right: 12px;
    font-size: 14px;
}
.admin-user-role-edit:hover,
.admin-user-role-del:hover { text-decoration: underline; }
.admin-user-role-del { color: #e74c3c; }
/* 角色授权弹窗 */
.admin-user-role-auth-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-user-role-auth-modal-inner {
    --am-pad-x: 20px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 1000px;
    max-height: calc(90vh + 40px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}
.admin-user-role-auth-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: move;
    user-select: none;
}
.admin-user-role-auth-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-user-role-auth-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-user-role-auth-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-user-role-auth-modal-content {
    display: flex;
    flex: 1;
    overflow: hidden;
    min-height: 440px;
}
.admin-user-role-auth-modal-left {
    flex: 1.5;
    padding: 20px;
    overflow-y: auto;
    border-right: 1px solid var(--border-color);
}
.admin-user-role-auth-modal-right {
    flex: 1;
    padding: 20px;
    overflow-y: auto;
    border-right: none;
}
.admin-user-role-auth-modal-search {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}
.admin-user-role-auth-modal-search-input {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-size: 14px;
}
.admin-user-role-auth-modal-search-btn {
    padding: 8px 12px;
    background: var(--primary-blue);
    color: var(--bg-primary);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.admin-user-role-auth-modal-search-btn:hover { background: var(--primary-blue-hover); }
.admin-user-role-auth-modal-search-btn svg { width: 16px; height: 16px; }
.admin-user-role-auth-modal-user-list-title,
.admin-user-role-auth-modal-role-list-title {
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--text-primary);
}
/* 用户列表表格样式 */
.admin-user-role-auth-modal-user-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.admin-user-role-auth-modal-user-table thead th {
    background: var(--bg-secondary);
    padding: 8px;
    text-align: left;
    font-weight: 600;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-color);
    white-space: nowrap;
}
.admin-user-role-auth-modal-user-table tbody td {
    padding: 8px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}
/* 姓名列 */
.admin-user-role-auth-modal-user-table th:nth-child(3),
.admin-user-role-auth-modal-user-table td:nth-child(3) {
    width: 90px;
    min-width: 90px;
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 昵称列 */
.admin-user-role-auth-modal-user-table th:nth-child(4),
.admin-user-role-auth-modal-user-table td:nth-child(4) {
    width: 60px;
    min-width: 60px;
    max-width: 60px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 手机号列 */
.admin-user-role-auth-modal-user-table th:nth-child(5),
.admin-user-role-auth-modal-user-table td:nth-child(5) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 邮箱列 */
.admin-user-role-auth-modal-user-table th:nth-child(6),
.admin-user-role-auth-modal-user-table td:nth-child(6) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 微信号列 */
.admin-user-role-auth-modal-user-table th:nth-child(7),
.admin-user-role-auth-modal-user-table td:nth-child(7) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-user-role-auth-modal-user-row {
    cursor: pointer;
}
.admin-user-role-auth-modal-user-row:hover {
    background: var(--bg-hover);
}
.admin-user-role-auth-modal-user-row input[type="radio"] {
    cursor: pointer;
}
.admin-user-role-auth-modal-user-item {
    display: flex;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-bottom: 8px;
    cursor: pointer;
}
.admin-user-role-auth-modal-user-item:hover { background: var(--bg-hover); }
.admin-user-role-auth-modal-user-item input[type="radio"] { margin-right: 12px; }
.admin-user-role-auth-modal-user-info {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}
.admin-user-role-auth-modal-user-avatar-wrap {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}
.admin-user-role-auth-modal-user-avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: contain;
    background: var(--bg-secondary);
}
.admin-user-role-auth-modal-user-avatar-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--text-secondary);
}
.admin-user-role-auth-modal-user-details {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
}
.admin-user-role-auth-modal-user-name { font-weight: 600; color: var(--text-primary); }
.admin-user-role-auth-modal-user-nickname,
.admin-user-role-auth-modal-user-phone,
.admin-user-role-auth-modal-user-email,
.admin-user-role-auth-modal-user-wxid { color: var(--text-secondary); }
.admin-user-role-auth-modal-role-item {
    display: flex;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-bottom: 8px;
    cursor: pointer;
}
.admin-user-role-auth-modal-role-item:hover { background: var(--bg-hover); }
.admin-user-role-auth-modal-role-item input[type="checkbox"] { margin-right: 12px; }
.admin-user-role-auth-modal-role-name {
    flex: 1;
    font-weight: 500;
    color: var(--text-primary);
}
.admin-user-role-auth-modal-role-keyword {
    color: var(--text-secondary);
    font-size: 12px;
}
.admin-user-role-auth-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 20px;
    border-top: 1px solid var(--border-color);
}
.admin-user-role-auth-modal-ok,
.admin-user-role-auth-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid;
}
.admin-user-role-auth-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.admin-user-role-auth-modal-ok:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-user-role-auth-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
    border-color: var(--border-color);
}
.admin-user-role-auth-modal-cancel:hover { background: var(--bg-secondary); }
/* 修改角色弹窗 */
.admin-user-role-edit-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-user-role-edit-modal-inner {
    --am-pad-x: 20px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 500px;
    max-height: calc(80vh + 40px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}
.admin-user-role-edit-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: move;
    user-select: none;
}
.admin-user-role-edit-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-user-role-edit-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-user-role-edit-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-user-role-edit-modal-content {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
    min-height: 340px;
}
.admin-user-role-edit-modal-role-list-title {
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--text-primary);
}
.admin-user-role-edit-modal-role-item {
    display: flex;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-bottom: 8px;
    cursor: pointer;
}
.admin-user-role-edit-modal-role-item:hover { background: var(--bg-hover); }
.admin-user-role-edit-modal-role-item input[type="radio"] { margin-right: 12px; }
.admin-user-role-edit-modal-role-name {
    flex: 1;
    font-weight: 500;
    color: var(--text-primary);
}
.admin-user-role-edit-modal-role-keyword {
    color: var(--text-secondary);
    font-size: 12px;
}
.admin-user-role-edit-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 20px;
    border-top: 1px solid var(--border-color);
}
.admin-user-role-edit-modal-ok,
.admin-user-role-edit-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid;
}
.admin-user-role-edit-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.admin-user-role-edit-modal-ok:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-user-role-edit-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
    border-color: var(--border-color);
}
.admin-user-role-edit-modal-cancel:hover { background: var(--bg-secondary); }
/* 删除确认弹窗 */
.admin-user-role-delete-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-user-role-delete-modal-inner {
    --am-pad-x: 24px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 400px;
    padding: 0 var(--am-pad-x) 24px;
    position: relative;
}
.admin-user-role-delete-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
}
.admin-user-role-delete-modal-header .admin-user-role-delete-modal-title {
    margin-bottom: 0;
}
.admin-user-role-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-user-role-delete-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-user-role-delete-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-user-role-delete-modal-message {
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-user-role-delete-modal-field {
    margin-bottom: 20px;
}
.admin-user-role-delete-modal-label {
    margin-bottom: 8px;
    color: var(--text-primary);
    font-size: 14px;
}
.admin-user-role-delete-modal-label strong { color: #e74c3c; }
.admin-user-role-delete-modal-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-size: 14px;
    box-sizing: border-box;
}
.admin-user-role-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-user-role-delete-modal-ok,
.admin-user-role-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid;
}
.admin-user-role-delete-modal-ok {
    color: var(--bg-primary);
    background: #e74c3c;
    border-color: #e74c3c;
}
.admin-user-role-delete-modal-ok:hover { background: #c0392b; border-color: #c0392b; }
.admin-user-role-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
    border-color: var(--border-color);
}
.admin-user-role-delete-modal-cancel:hover { background: var(--bg-secondary); }

/* ===== 财务信息（订单） ===== */
.admin-order {
    box-sizing: border-box;
    width: 100%;
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
}
.admin-order-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}
.admin-neo-date-range {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.admin-neo-date-input {
    padding: 6px 8px;
    font-size: 13px;
    line-height: 1.35;
    border: 1px solid var(--border-color, #dcdfe6);
    border-radius: 2px;
    font-family: inherit;
    background: var(--bg-primary, #fff);
    color: var(--text-primary, #262626);
    box-sizing: border-box;
    min-width: 9.5em;
}
.admin-neo-date-input::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.85;
}
.admin-order-toolbar input[type="text"],
.admin-order-toolbar select,
.admin-paper-click-toolbar select {
    padding: 6px 8px;
    font-size: 13px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
}
.admin-order-query {
    padding: 6px 12px;
    font-size: 13px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-paper-click-toolbar .admin-order-query {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-order-query:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-paper-click-toolbar .admin-order-query:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-paper-click-toolbar .admin-order-query:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.admin-order-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    margin-left: 4px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-order-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-order-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-order-table-wrap {
    box-sizing: border-box;
    width: 100%;
    overflow-x: auto;
    padding: 0 10px;
}
.admin-order-table { width: 100%; min-width: 0; font-size: 13px; border-collapse: collapse; table-layout: fixed; }
.admin-order-table th,
.admin-order-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--border-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-order-table td { color: var(--text-primary); }
.admin-order-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-order-table th:last-child,
.admin-order-table td:last-child { padding-right: 20px; }
.admin-order-table th:first-child,
.admin-order-table td:first-child { width: 6.01%; text-align: center; padding-left: 20px; }
.admin-order-table th:nth-child(2),
.admin-order-table td:nth-child(2) { width: 10.02%; }
.admin-order-table th:nth-child(3),
.admin-order-table td:nth-child(3) { width: 10.02%; }
.admin-order-table th:nth-child(4),
.admin-order-table td:nth-child(4) { width: 9.77%; }
.admin-order-table th:nth-child(5),
.admin-order-table td:nth-child(5) { width: 20.03%; }
.admin-order-table th:nth-child(6),
.admin-order-table td:nth-child(6) { width: 16.53%; }
.admin-order-table th:nth-child(7),
.admin-order-table td:nth-child(7) { width: 8.01%; }
.admin-order-table th:nth-child(8),
.admin-order-table td:nth-child(8) { width: 6.68%; padding-left: 4px; padding-right: 4px; }
.admin-order-table th:nth-child(9),
.admin-order-table td:nth-child(9) { width: 12.93%; }
.admin-order-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }

/* ===== 创客支付（author_stl） ===== */
.admin-author-pay {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
}
.admin-author-pay-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 0 10px;
}
.admin-author-pay-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-author-pay-btn-refresh:hover { background: var(--bg-secondary); }
.admin-author-pay-table-wrap {
    overflow-x: auto;
    padding: 0 10px;
}
.admin-author-pay-table {
    width: 100%;
    min-width: 1263px;
    font-size: 13px;
    border-collapse: collapse;
}
.admin-author-pay-table th:nth-child(4) {
    max-width: 220px;
}
.admin-author-pay-table td.admin-author-pay-openid {
    max-width: 220px;
    word-break: break-all;
    white-space: normal;
}
.admin-author-pay-table th,
.admin-author-pay-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    white-space: nowrap;
}
.admin-author-pay-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-author-pay-table td { color: var(--text-primary); max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
/* 第 7 列商户单号 192px；第 8 列微信付款单号在 192px 上再 +10% → 211px */
.admin-author-pay-table th:nth-child(7) {
    min-width: 192px;
    max-width: 192px;
    box-sizing: border-box;
}
.admin-author-pay-table th:nth-child(8) {
    min-width: 211px;
    max-width: 211px;
    box-sizing: border-box;
}
.admin-author-pay-table td.admin-author-pay-bill {
    min-width: 192px;
    max-width: 192px;
    white-space: normal;
    word-break: break-all;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    box-sizing: border-box;
}
.admin-author-pay-table td:nth-child(8).admin-author-pay-bill {
    min-width: 211px;
    max-width: 211px;
}
.admin-author-pay-muted { color: var(--text-secondary); }
.admin-author-pay-err { color: #c22; text-align: center; padding: 20px; }
.admin-author-pay-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); padding: 0 10px; }
.admin-author-pay-pager .admin-pager-prev,
.admin-author-pay-pager .admin-pager-next { cursor: pointer; color: var(--link-color, #06c); margin: 0 4px; }

@media (min-width: 768px) and (max-width: 1024px) {
    .admin-author-pay-table {
        table-layout: fixed;
        min-width: 1728px;
    }
    .admin-author-pay-table th:first-child.admin-doc-task-sort-th {
        width: 65px;
        max-width: 65px;
        min-width: 65px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:first-child {
        width: 65px;
        max-width: 65px;
        min-width: 65px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(2),
    .admin-author-pay-table td:nth-child(2) {
        width: 192px;
        min-width: 192px;
        max-width: 192px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(3) {
        width: 140px;
        min-width: 140px;
        max-width: 140px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(3) {
        width: 140px;
        min-width: 140px;
        max-width: 140px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(4) {
        width: 254px;
        min-width: 254px;
        max-width: 254px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td.admin-author-pay-openid {
        width: 254px;
        min-width: 254px;
        max-width: 254px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(5) {
        width: 130px;
        min-width: 130px;
        max-width: 130px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(5) {
        width: 130px;
        min-width: 130px;
        max-width: 130px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(6) {
        width: 138px;
        min-width: 138px;
        max-width: 138px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(6) {
        width: 138px;
        min-width: 138px;
        max-width: 138px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(7) {
        width: 316px;
        min-width: 316px;
        max-width: 316px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(8) {
        width: 343px;
        min-width: 343px;
        max-width: 343px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td:nth-child(7).admin-author-pay-bill {
        width: 316px;
        min-width: 316px;
        max-width: 316px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td:nth-child(8).admin-author-pay-bill {
        width: 343px;
        min-width: 343px;
        max-width: 343px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(9),
    .admin-author-pay-table td:nth-child(9) {
        width: 150px;
        min-width: 150px;
        max-width: 150px;
        box-sizing: border-box;
        white-space: normal;
    }
}

@media (min-width: 1025px) {
    .admin-author-pay-table {
        table-layout: fixed;
        min-width: 1629px;
    }
    .admin-author-pay-table th:nth-child(1).admin-doc-task-sort-th {
        width: 72px;
        min-width: 72px;
        max-width: 72px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(1) {
        width: 72px;
        min-width: 72px;
        max-width: 72px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(2),
    .admin-author-pay-table td:nth-child(2) {
        width: 170px;
        min-width: 170px;
        max-width: 170px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(3) {
        width: 120px;
        min-width: 120px;
        max-width: 120px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(3) {
        width: 120px;
        min-width: 120px;
        max-width: 120px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(4) {
        width: 243px;
        min-width: 243px;
        max-width: 243px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td.admin-author-pay-openid {
        width: 243px;
        min-width: 243px;
        max-width: 243px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(5) {
        width: 111px;
        min-width: 111px;
        max-width: 111px;
        box-sizing: border-box;
        overflow: hidden;
        white-space: normal;
        vertical-align: bottom;
    }
    .admin-author-pay-table td:nth-child(5) {
        width: 111px;
        min-width: 111px;
        max-width: 111px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(6),
    .admin-author-pay-table td:nth-child(6) {
        width: 118px;
        min-width: 118px;
        max-width: 118px;
        box-sizing: border-box;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-author-pay-table th:nth-child(7) {
        width: 243px;
        min-width: 243px;
        max-width: 243px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(8) {
        width: 262px;
        min-width: 262px;
        max-width: 262px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td:nth-child(7).admin-author-pay-bill {
        width: 243px;
        min-width: 243px;
        max-width: 243px;
        box-sizing: border-box;
    }
    .admin-author-pay-table td:nth-child(8).admin-author-pay-bill {
        width: 262px;
        min-width: 262px;
        max-width: 262px;
        box-sizing: border-box;
    }
    .admin-author-pay-table th:nth-child(9),
    .admin-author-pay-table td:nth-child(9) {
        width: 190px;
        min-width: 190px;
        max-width: 190px;
        box-sizing: border-box;
        white-space: normal;
    }
}

.admin-author-pay-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
}
.admin-author-pay-modal[hidden] {
    display: none !important;
}
.admin-author-pay-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}
.admin-author-pay-modal-panel {
    position: relative;
    z-index: 1;
    max-width: min(96vw, 920px);
    margin: 8vh auto;
    background: var(--bg-primary);
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    --am-pad-x: 18px;
    padding: 0 var(--am-pad-x) 14px;
    max-height: 78vh;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    border: 1px solid var(--border-color);
}
.admin-author-pay-modal-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 0 -18px 16px -18px;
    padding: 18px 10px 10px 18px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
    box-sizing: border-box;
    font-size: 13px;
    color: var(--text-primary);
}
.admin-author-pay-modal-openid {
    text-align: left;
    flex: 1;
    min-width: 0;
    word-break: break-all;
}
.admin-author-pay-modal-total-wrap {
    text-align: right;
    flex-shrink: 0;
    white-space: nowrap;
    color: var(--text-secondary);
}
.admin-author-pay-modal-total-yuan {
    font-weight: 700;
    font-size: 15px;
    color: var(--text-primary);
}
.admin-author-pay-modal-table-wrap {
    overflow: auto;
    flex: 1;
    min-height: 0;
    border: 1px solid var(--border-color);
    border-radius: 4px;
}
.admin-author-pay-modal-table {
    width: 100%;
    font-size: 13px;
    border-collapse: collapse;
}
.admin-author-pay-modal-table th,
.admin-author-pay-modal-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    vertical-align: top;
}
.admin-author-pay-modal-table th {
    background: var(--bg-secondary);
    font-weight: 600;
    color: var(--text-secondary);
}
.admin-author-pay-modal-doc {
    word-break: break-all;
    max-width: 280px;
}
/* 流水弹窗第 4 列：微信付款单号，在 280px 上再 +10% */
.admin-author-pay-modal-table th:nth-child(4),
.admin-author-pay-modal-table td:nth-child(4).admin-author-pay-modal-doc {
    max-width: 308px;
}
.admin-author-pay-modal-foot {
    margin-top: 12px;
    text-align: right;
}
.admin-author-pay-modal-close {
    padding: 6px 16px;
    border-radius: 4px;
    border: 1px solid var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-primary);
    cursor: pointer;
    font-size: 13px;
}
.admin-author-pay-modal-close:hover {
    background: var(--bg-primary);
}
.admin-author-pay-op .admin-author-pay-query {
    margin-right: 6px;
}

/* ===== 会员等级管理 ===== */
.admin-level {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-app {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-app-table { width: 100%; min-width: 0; }
.admin-app-table thead th { text-align: center !important; }
.admin-app-table thead th:nth-child(5) { text-align: center !important; }
.admin-app-table td.admin-app-status-on-shelf { color: #107C10; }
.admin-app-table td.admin-app-status-off-shelf { color: #F7630C; }
/* 软件产品弹框：宽度比通用 level 弹框多 150px（700+150=850） */
.admin-app-modal .admin-level-modal-inner {
    max-width: 850px;
}
/* 软件产品弹框：两列布局，第一列 * 约 6px 居中，第二列输入/挂载点左对齐 */
.admin-app-modal .admin-level-field {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
}
.admin-app-modal .admin-level-required {
    width: 6px;
    min-width: 6px;
    flex-shrink: 0;
    color: #f00;
    text-align: center;
    margin-right: 8px;
    margin-top: 8px;
    line-height: 1.2;
}
.admin-app-modal .admin-level-field-label {
    width: 100px;
    min-width: 100px;
    flex-shrink: 0;
    margin-right: 12px;
    margin-top: 8px;
    line-height: 1.2;
    font-size: 14px;
    color: var(--text-primary, #262626);
}
.admin-app-modal .admin-level-field-content {
    flex: 1;
    min-width: 0;
    text-align: left;
}
/* 软件产品弹框：三个 SVG 行，第二列 80% 输入 + 20% 展现 */
.admin-app-modal .admin-level-svg-wrap {
    display: flex;
    align-items: stretch;
    gap: 8px;
    width: 100%;
}
.admin-app-modal .admin-level-svg-wrap .admin-level-img-svg {
    flex: 0 0 80%;
    width: 80%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-app-modal .admin-level-svg-wrap .admin-level-svg-preview {
    flex: 0 0 20%;
    width: 20%;
    min-width: 0;
    height: auto;
    min-height: 60px;
}
/* 软件产品弹框：下拉框与输入框字体一致 */
.admin-app-modal .admin-level-field-content select {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
}
/* 允许的会员等级：多列布局，每列上方标题、下方选项 */
.admin-app-access-mount .admin-level-field-content {
    flex: 1;
    min-width: 0;
}
.admin-app-price-hint {
    width: 100%;
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 4px;
}
.admin-app-level-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
}
.admin-app-level-col {
    min-width: 160px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 10px 12px;
    background: var(--bg-secondary);
}
.admin-app-level-col-title-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-color);
}
.admin-app-level-col-title-wrap .admin-app-level-col-cb {
    flex-shrink: 0;
}
.admin-app-level-col-title {
    font-weight: 600;
    font-size: 14px;
    color: var(--text-primary);
}
.admin-app-level-col-items label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    cursor: pointer;
}
.admin-app-level-col-items input[type="checkbox"],
.admin-app-level-col-items input[type="radio"] {
    margin-right: 8px;
}
.admin-level-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.admin-doc-task-q {
    min-width: 220px;
    max-width: 360px;
    padding: 6px 10px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
}
.admin-doc-task-cat-filter {
    min-width: 7.5rem;
    max-width: 12rem;
    padding: 6px 8px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    background: var(--bg-primary, #fff);
}
.admin-doc-task-ai-meta-control > .admin-doc-task-select-field {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field {
    box-sizing: border-box;
    width: 100%;
    border-radius: 16px;
    background-color: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    position: relative;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.admin-doc-task-new-modal-inner .admin-doc-task-ai-row.admin-doc-task-select-open {
    position: relative;
    z-index: 60;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field.admin-doc-task-select-custom {
    overflow: visible;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-trigger {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    min-height: 48px;
    padding: 12px 36px 8px 12px;
    border: none;
    border-radius: 16px;
    font-size: calc(14px + 1pt);
    font-family: inherit;
    letter-spacing: 1px;
    line-height: 1.65;
    text-align: left;
    background: transparent;
    color: rgba(210, 230, 250, 0.88);
    cursor: pointer;
    outline: none;
    box-shadow: none;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-label {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 100;
    margin-top: 6px;
    max-height: min(40vh, 304px);
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    padding: 6px 0 8px 0;
    border-radius: 14px;
    background-color: rgba(10, 25, 47, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-option {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 10px 14px;
    border: none;
    border-radius: 0;
    font-size: calc(14px + 1pt);
    font-family: inherit;
    letter-spacing: 0.5px;
    line-height: 1.5;
    text-align: left;
    background: transparent;
    color: rgba(210, 230, 250, 0.92);
    cursor: pointer;
    outline: none;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-option:hover,
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-option:focus-visible {
    background-color: rgba(120, 200, 255, 0.12);
    color: rgba(240, 248, 255, 0.98);
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom .admin-doc-task-select-option[aria-selected="true"] {
    background-color: rgba(120, 200, 255, 0.18);
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom select.admin-doc-task-new-category,
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom select.admin-doc-task-new-category-2,
.admin-doc-task-new-modal-inner .admin-doc-task-select-custom select.admin-doc-task-new-category-3 {
    display: none !important;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394b8d8' d='M1.4 0L6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 12px 8px;
    pointer-events: none;
    z-index: 2;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category,
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category-2,
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category-3 {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    min-height: 48px;
    padding: 12px 36px 12px 12px;
    border: none;
    border-radius: 16px;
    font-size: calc(14px + 1pt);
    font-family: inherit;
    letter-spacing: 1px;
    line-height: 1.65;
    background-color: transparent;
    background-image: none;
    color: rgba(210, 230, 250, 0.88);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    color-scheme: dark;
    forced-color-adjust: none;
    box-shadow: none;
    outline: none;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category option,
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category-2 option,
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:not(.admin-doc-task-select-custom) select.admin-doc-task-new-category-3 option {
    background-color: rgba(10, 25, 47, 0.95);
    color: rgba(210, 230, 250, 0.88);
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:hover:not(:focus-within) {
    border-color: rgba(120, 200, 255, 0.34);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.18);
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field:focus-within {
    outline: none;
    border-color: rgba(120, 200, 255, 0.45);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.28);
}
.admin-doc-task-import-input {
    position: fixed;
    left: -9999px;
    top: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.admin-doc-task-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10005;
    align-items: center;
    justify-content: center;
}
.admin-doc-task-delete-modal.admin-doc-task-delete-modal-open {
    display: flex;
}
.admin-doc-task-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 420px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-doc-task-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-doc-task-delete-modal-message {
    margin: 0 0 12px;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-doc-task-delete-input {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 20px;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-family: inherit;
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-doc-task-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-doc-task-delete-modal-ok,
.admin-doc-task-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-doc-task-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-doc-task-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-doc-task-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-doc-task-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
.admin-level-modal.admin-doc-task-title-dup-modal {
    z-index: 10009;
    background: rgba(0, 0, 0, 0.42);
    box-sizing: border-box;
    padding: 24px 16px;
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}
.admin-level-modal.admin-doc-task-discard-modal {
    z-index: 10010;
    background: rgba(0, 0, 0, 0.42);
    box-sizing: border-box;
    padding: 24px 16px;
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}
.admin-doc-task-title-dup-modal-inner.admin-level-modal-inner,
.admin-doc-task-discard-modal-inner.admin-level-modal-inner {
    --am-pad-x: 24px;
    max-width: 420px;
    max-height: none;
    overflow: visible;
    width: 100%;
    border-radius: 16px;
    padding: 0 24px 20px;
    background-color: rgba(12, 28, 48, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
    color: rgba(220, 238, 252, 0.94);
    color-scheme: dark;
}
.admin-doc-task-title-dup-modal-inner .admin-doc-task-warn-title-row .admin-level-modal-title,
.admin-doc-task-discard-modal-inner .admin-doc-task-warn-title-row .admin-level-modal-title {
    color: #ffffff;
    font-size: calc(17px + 1pt);
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.3;
}
.admin-doc-task-title-dup-modal-inner .admin-level-modal-close.admin-doc-task-title-dup-modal-close,
.admin-doc-task-discard-modal-inner .admin-level-modal-close.admin-doc-task-discard-modal-close {
    color: rgba(255, 255, 255, 0.92);
}
.admin-doc-task-title-dup-modal-inner .admin-level-modal-close.admin-doc-task-title-dup-modal-close:hover,
.admin-doc-task-discard-modal-inner .admin-level-modal-close.admin-doc-task-discard-modal-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}
.admin-doc-task-warn-title-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}
.admin-doc-task-warn-title-row .admin-doc-task-warn-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: block;
}
.admin-doc-task-warn-title-row .admin-level-modal-title {
    flex: 1;
    min-width: 0;
    margin: 0;
}
.admin-doc-task-title-dup-modal-message,
.admin-doc-task-discard-modal-message {
    margin: 0 0 20px;
    line-height: 1.65;
    font-size: calc(14px + 1pt);
    letter-spacing: 0.04em;
    color: rgba(230, 242, 255, 0.88);
}
.admin-doc-task-title-dup-modal-btns,
.admin-doc-task-discard-modal-btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px;
    margin: 0;
    padding: 0;
    border: none;
    margin-top: 0;
}
.admin-doc-task-title-dup-modal-inner .admin-doc-task-title-dup-modal-ok,
.admin-doc-task-discard-modal-inner .admin-doc-task-discard-modal-ok {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    color: var(--bg-primary, #ffffff);
    background: var(--primary-blue, #1677ff);
    border: 1px solid var(--primary-blue, #1677ff);
}
.admin-doc-task-title-dup-modal-inner .admin-doc-task-title-dup-modal-ok:hover,
.admin-doc-task-discard-modal-inner .admin-doc-task-discard-modal-ok:hover {
    background: var(--primary-blue-hover, #4096ff);
    border-color: var(--primary-blue-hover, #4096ff);
}
.admin-doc-task-title-dup-modal-inner .admin-doc-task-title-dup-modal-cancel,
.admin-doc-task-discard-modal-inner .admin-doc-task-discard-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    color: #1a2332;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.35);
}
.admin-doc-task-title-dup-modal-inner .admin-doc-task-title-dup-modal-cancel:hover,
.admin-doc-task-discard-modal-inner .admin-doc-task-discard-modal-cancel:hover {
    background: #ffffff;
    border-color: rgba(255, 255, 255, 0.5);
}
.admin-doc-task-new-modal-inner.admin-level-modal-inner {
    --am-pad-x: 72px;
    display: flex;
    flex-direction: column;
    max-width: 920px;
    max-height: 90vh;
    overflow: hidden;
    padding: 0 var(--am-pad-x) 24px;
    background-color: #0a192f;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen {
    align-items: stretch;
    justify-content: stretch;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner.admin-level-modal-inner {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    border-radius: 0;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    color-scheme: dark;
    background-color: #0a192f;
    background-image:
        radial-gradient(ellipse 70% 55% at 15% 18%, rgba(0, 140, 220, 0.12), transparent 52%),
        radial-gradient(ellipse 65% 50% at 88% 78%, rgba(120, 80, 200, 0.08), transparent 48%);
    color: #e8f4ff;
    padding: 0 72px 24px 72px;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner.admin-level-modal-inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Crect width='72' height='72' fill='%230a192f'/%3E%3Cpath fill='%230d2138' d='M0 0h36v36H0zm36 36h36v36H36z'/%3E%3C/svg%3E");
    background-size: 72px 72px;
    opacity: 1;
    pointer-events: none;
    z-index: 0;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner.admin-level-modal-inner > * {
    position: relative;
    z-index: 1;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner > .admin-level-modal-header {
    z-index: 4;
    position: static;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner > .admin-doc-task-new-body {
    z-index: 1;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner > .admin-level-modal-btns {
    z-index: 3;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner .admin-level-modal-header {
    cursor: default;
    border-bottom-color: rgba(255, 255, 255, 0.12);
    position: static;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner > .admin-level-modal-header.admin-doc-task-modal-header-row {
    position: relative;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-modal-title {
    cursor: default;
    user-select: text;
    color: #e8f4ff;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.admin-doc-task-new-modal-inner .admin-doc-task-modal-title-ver {
    margin-left: 16px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.15;
    vertical-align: baseline;
    color: rgba(92, 98, 112, 0.94);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-modal-title-ver {
    color: rgba(236, 238, 245, 0.96);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner .admin-doc-task-new-close {
    color: rgba(232, 244, 255, 0.85);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner .admin-doc-task-new-close:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-modal-inner .admin-level-modal-btns {
    border-top-color: rgba(255, 255, 255, 0.12);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-cancel {
    background: rgba(255, 255, 255, 0.08);
    color: #e8f4ff;
    border: 1px solid rgba(255, 255, 255, 0.22);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-cancel:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(120, 200, 255, 0.45);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-submit {
    color: #0a1628;
    border: none;
    background: linear-gradient(135deg, #fde047 0%, #facc15 40%, #eab308 100%);
    box-shadow:
        0 4px 20px rgba(250, 204, 21, 0.4),
        0 0 0 1px rgba(255, 255, 255, 0.25) inset;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-submit:hover {
    filter: brightness(1.05);
    box-shadow:
        0 6px 28px rgba(250, 204, 21, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.35) inset;
}
.admin-doc-task-new-modal-inner .admin-level-modal-header {
    cursor: default;
}
.admin-doc-task-new-modal-inner .admin-doc-task-modal-title {
    cursor: move;
    user-select: none;
    flex: 1 1 auto;
    min-width: 8em;
    overflow: visible;
    color: var(--text-primary, #0f172a);
}
@keyframes admin-doc-task-pearl-glow {
    0%,
    100% {
        box-shadow:
            0 0 10px rgba(255, 235, 200, 0.55),
            0 0 22px rgba(100, 190, 255, 0.22),
            inset 0 1px 2px rgba(255, 255, 255, 0.88);
    }
    50% {
        box-shadow:
            0 0 15px rgba(255, 242, 215, 0.82),
            0 0 30px rgba(120, 200, 255, 0.38),
            inset 0 1px 2px rgba(255, 255, 255, 0.95);
    }
}
.admin-doc-task-new-modal-inner > .admin-level-modal-header.admin-doc-task-modal-header-row {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding-bottom: 4px;
    box-sizing: border-box;
}
.admin-doc-task-modal-head-left {
    position: relative;
    z-index: 2;
    flex: 0 1 auto;
    min-width: 0;
}
.admin-doc-task-modal-head-progress {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(calc(-50% + 8px));
    padding-left: 72px;
    padding-right: 64px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    z-index: 1;
}
.admin-doc-task-new-modal-inner > .admin-level-modal-header.admin-doc-task-modal-header-row .admin-doc-task-progress-pearl-line {
    transform: translateX(30px);
}
.admin-doc-task-modal-head-right {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}
.admin-doc-task-new-modal-inner .admin-level-modal-header.admin-doc-task-modal-header-row .admin-doc-task-modal-title {
    flex: none;
}
.admin-doc-task-progress-pearl-line {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-wrap: nowrap;
}
.admin-doc-task-progress-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}
.admin-doc-task-progress-pearl {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    box-sizing: border-box;
    transition:
        box-shadow 0.35s ease,
        transform 0.35s ease,
        background 0.35s ease,
        opacity 0.35s ease,
        width 0.35s ease,
        height 0.35s ease,
        margin 0.35s ease;
}
.admin-doc-task-progress-label {
    font-family: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.06em;
    -webkit-font-smoothing: antialiased;
    white-space: nowrap;
    transition:
        color 0.35s ease,
        opacity 0.35s ease,
        font-weight 0.35s ease;
}
.admin-doc-task-progress-thread {
    flex: 1 1 128px;
    min-width: 80px;
    max-width: 208px;
    height: 4px;
    align-self: flex-start;
    margin-top: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(120, 108, 92, 0.42), rgba(165, 152, 132, 0.38), rgba(110, 100, 88, 0.4));
    opacity: 0.78;
    transition:
        background 0.35s ease,
        box-shadow 0.35s ease,
        opacity 0.35s ease;
}
.admin-doc-task-progress-item.is-todo .admin-doc-task-progress-pearl {
    background: radial-gradient(circle at 28% 22%, rgba(255, 252, 245, 0.72) 0%, rgba(232, 218, 198, 0.65) 32%, rgba(176, 152, 118, 0.7) 68%, rgba(130, 105, 78, 0.78) 100%);
    box-shadow:
        0 0 5px rgba(255, 210, 170, 0.22),
        inset 0 1px 2px rgba(255, 255, 255, 0.35),
        inset 0 -1px 3px rgba(80, 55, 35, 0.18);
    opacity: 0.88;
}
.admin-doc-task-progress-item.is-todo .admin-doc-task-progress-label {
    color: rgba(88, 82, 74, 0.78);
    font-weight: 500;
}
.admin-doc-task-progress-item.is-done .admin-doc-task-progress-pearl {
    background: radial-gradient(circle at 28% 22%, #fffef9 0%, #f3e6d4 28%, #d4b896 62%, #9a7b52 100%);
    box-shadow:
        0 0 8px rgba(255, 228, 190, 0.52),
        0 1px 2px rgba(0, 0, 0, 0.18) inset,
        inset 0 -1px 2px rgba(120, 80, 40, 0.14);
    opacity: 1;
}
.admin-doc-task-progress-item.is-done .admin-doc-task-progress-label {
    color: rgba(55, 52, 48, 0.88);
}
.admin-doc-task-progress-item.is-current .admin-doc-task-progress-pearl {
    width: 16px;
    height: 16px;
    margin-top: -1px;
    background: radial-gradient(circle at 28% 22%, #ffffff 0%, #fff6e8 22%, #f0d4a8 55%, #c49a62 92%);
    box-shadow:
        0 0 12px rgba(255, 235, 200, 0.78),
        0 0 24px rgba(96, 180, 255, 0.38),
        inset 0 1px 2px rgba(255, 255, 255, 0.95);
    animation: admin-doc-task-pearl-glow 2.4s ease-in-out infinite;
    opacity: 1;
}
.admin-doc-task-progress-item.is-current .admin-doc-task-progress-label {
    color: rgba(38, 35, 30, 0.94);
    font-weight: 600;
}
.admin-doc-task-progress-thread.is-lit {
    background: linear-gradient(90deg, rgba(180, 150, 110, 0.48), rgba(255, 236, 205, 0.94), rgba(200, 168, 125, 0.58));
    opacity: 1;
    box-shadow: 0 0 10px rgba(255, 220, 170, 0.38);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-item.is-todo .admin-doc-task-progress-pearl {
    background: radial-gradient(circle at 28% 22%, rgba(255, 248, 238, 0.42) 0%, rgba(210, 188, 158, 0.48) 30%, rgba(150, 125, 95, 0.55) 65%, rgba(95, 78, 58, 0.62) 100%);
    box-shadow:
        0 0 8px rgba(255, 215, 175, 0.2),
        inset 0 1px 2px rgba(255, 255, 255, 0.12),
        inset 0 -2px 4px rgba(15, 25, 45, 0.35);
    opacity: 0.92;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-item.is-todo .admin-doc-task-progress-label {
    color: rgba(198, 210, 228, 0.82);
    font-weight: 500;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-item.is-done .admin-doc-task-progress-label {
    color: rgba(230, 238, 252, 0.9);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-item.is-current .admin-doc-task-progress-label {
    color: rgba(255, 248, 235, 0.96);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-thread:not(.is-lit) {
    background: linear-gradient(90deg, rgba(130, 112, 92, 0.5), rgba(175, 158, 138, 0.42), rgba(115, 102, 88, 0.48));
    opacity: 0.72;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-progress-thread.is-lit {
    background: linear-gradient(90deg, rgba(210, 175, 125, 0.55), rgba(255, 245, 225, 0.98), rgba(220, 185, 138, 0.62));
    box-shadow: 0 0 14px rgba(255, 205, 150, 0.42);
}
.admin-doc-task-new-body {
    display: flex;
    flex-direction: column;
    gap: 18px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 18px 72px 18px 0;
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
}
.admin-doc-task-category-dup-msg {
    margin: 0;
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.45;
    color: #b71c1c;
    background: rgba(183, 28, 28, 0.08);
    border: 1px solid rgba(183, 28, 28, 0.35);
    border-radius: 6px;
    box-sizing: border-box;
    flex-shrink: 0;
}
.admin-doc-task-category-dup-msg[hidden] {
    display: none !important;
}
.admin-doc-task-new-modal-inner .admin-doc-task-select-field.admin-doc-task-category-dup {
    outline: 2px solid rgba(183, 28, 28, 0.9);
    outline-offset: 2px;
    border-radius: 6px;
}
.admin-doc-task-edit-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 28px;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    align-items: stretch;
}
.admin-doc-task-edit-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    min-height: 0;
}
.admin-doc-task-edit-col .admin-doc-task-ai-cell {
    flex: 1 1 0;
    min-height: 166px;
}
.admin-doc-task-ai-row,
.admin-doc-task-ai-cell {
    display: flex;
    flex-direction: row;
    gap: 28px;
    min-width: 0;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.admin-doc-task-ai-row {
    align-items: center;
    min-height: 64px;
    flex-shrink: 0;
    flex-wrap: wrap;
    row-gap: 10px;
}
.admin-doc-task-ai-cell {
    align-items: stretch;
}
.admin-doc-task-ai-cell .admin-doc-task-ai-label-col {
    display: flex;
    align-items: center;
    align-self: center;
}
.admin-doc-task-ai-row-title .admin-doc-task-ai-meta-control {
    display: flex;
    align-items: stretch;
}
.admin-doc-task-ai-row-title .admin-doc-task-new-title {
    min-height: 44px;
}
.admin-doc-task-ai-label {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 1px;
    color: rgba(51, 65, 85, 0.92);
}
.admin-doc-task-ai-meta-control {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: center;
    margin: 0;
}
.admin-doc-task-ai-label-col .admin-doc-task-ai-label .admin-doc-task-ke {
    letter-spacing: 1px;
}
.admin-doc-task-ai-label-col .admin-doc-task-ai-label .admin-doc-task-disc-badge {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
    color: rgba(71, 85, 105, 0.92);
    white-space: nowrap;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-ai-label-col .admin-doc-task-ai-label .admin-doc-task-disc-badge {
    color: rgba(120, 152, 188, 0.82);
}
.admin-doc-task-ke-tr {
    position: relative;
    display: inline-block;
    vertical-align: baseline;
}
.admin-doc-task-ke-tr .admin-doc-task-ke-char {
    display: inline-block;
}
.admin-doc-task-disc-badge-tr {
    position: absolute;
    left: 100%;
    top: -0.2em;
    margin-left: 2px;
}
.admin-doc-task-ai-label-col {
    flex-shrink: 0;
    width: 8em;
    min-width: 8em;
    max-width: 10em;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 4px 6px;
    padding-top: 0;
}
.admin-doc-task-ai-label-col .admin-level-required {
    margin: 0;
    line-height: 1;
    flex-shrink: 0;
}
.admin-doc-task-ai-label-col .admin-doc-task-ai-label {
    text-align: right;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 1.25;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-ai-label {
    color: rgba(148, 176, 210, 0.88);
    letter-spacing: 1px;
    text-shadow: none;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-ai-label-col {
    width: 6.75em;
    min-width: 6.75em;
    max-width: 8em;
    justify-content: flex-start;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-ai-label-col .admin-doc-task-ai-label {
    text-align: left;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-ai-label-col .admin-level-required {
    color: #fb923c;
    flex-shrink: 0;
}
.admin-doc-task-ai-editor {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}
.admin-doc-task-new-body .admin-doc-task-ai-editor textarea {
    flex: 1 1 auto;
    width: 100%;
    min-height: 84px;
    box-sizing: border-box;
    margin: 0;
    padding: 12px;
    border-radius: 16px;
    font-size: calc(14px + 1pt);
    letter-spacing: 1px;
    line-height: 1.65;
    font-family: inherit;
    resize: none;
    background-color: rgba(15, 23, 42, 0.05);
    border: 1px solid rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #0f172a;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.admin-doc-task-new-body .admin-doc-task-ai-editor textarea::placeholder {
    color: rgba(71, 85, 105, 0.65);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-ai-editor textarea {
    background-color: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 16px;
    color: rgba(210, 230, 250, 0.88);
    caret-color: rgba(180, 215, 245, 0.9);
    -webkit-appearance: none;
    appearance: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    margin: 0;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-ai-editor textarea::placeholder {
    color: rgba(210, 230, 250, 0.42);
}
.admin-doc-task-new-body .admin-doc-task-ai-editor textarea:hover:not(:focus) {
    border-color: rgba(120, 200, 255, 0.36);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.16);
}
.admin-doc-task-new-body .admin-doc-task-ai-editor textarea:focus {
    outline: none;
    border-color: rgba(120, 200, 255, 0.45);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.22);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-ai-editor textarea:hover:not(:focus) {
    border-color: rgba(120, 200, 255, 0.36);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.2);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-ai-editor textarea:focus {
    outline: none;
    border-color: rgba(120, 200, 255, 0.45);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.28);
    color: rgba(220, 238, 252, 0.94);
}
.admin-doc-task-new-modal-inner .admin-level-modal-btns {
    flex-shrink: 0;
    margin-top: 0;
    margin-left: -72px;
    margin-right: -72px;
    padding: 16px 72px 0 72px;
    box-sizing: border-box;
    border-top: 1px solid var(--border-color, #e8e8e8);
}
.admin-doc-task-new-body .admin-doc-task-new-title {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    min-height: 48px;
    padding: 12px;
    border-radius: 16px;
    font-size: calc(15px + 1pt);
    font-family: inherit;
    letter-spacing: 1px;
    line-height: 1.45;
    background-color: rgba(15, 23, 42, 0.05);
    border: 1px solid rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #0f172a;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.admin-doc-task-new-body .admin-doc-task-new-title::placeholder {
    color: rgba(71, 85, 105, 0.55);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title {
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: rgba(210, 230, 250, 0.88);
    caret-color: rgba(180, 215, 245, 0.9);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    accent-color: rgba(120, 200, 255, 0.55);
    color-scheme: dark;
    font-size: calc(15px + 1pt);
    letter-spacing: 1px;
    line-height: 1.45;
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title::placeholder {
    color: rgba(210, 230, 250, 0.42);
}
.admin-doc-task-new-body .admin-doc-task-new-title:hover:not(:focus) {
    border-color: rgba(120, 200, 255, 0.36);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.16);
}
.admin-doc-task-new-body .admin-doc-task-new-title:focus {
    outline: none;
    border-color: rgba(120, 200, 255, 0.45);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.22);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title:hover:not(:focus) {
    border-color: rgba(120, 200, 255, 0.38);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.2);
}
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title:focus {
    border-color: rgba(120, 200, 255, 0.45);
    box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.28);
    color: rgba(220, 238, 252, 0.94);
}
.admin-doc-task-new-body .admin-doc-task-new-title.doc-task-title-dup,
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title.doc-task-title-dup {
    background-color: rgba(255, 80, 80, 0.14) !important;
    border-color: rgba(255, 120, 120, 0.35) !important;
}
.admin-doc-task-new-body .admin-doc-task-new-title.doc-task-title-dup:focus,
.admin-doc-task-new-modal.admin-doc-task-modal-edit-fullscreen .admin-doc-task-new-body .admin-doc-task-new-title.doc-task-title-dup:focus {
    border-color: rgba(255, 140, 120, 0.45) !important;
    box-shadow: 0 0 0 1px rgba(255, 100, 90, 0.22) !important;
}
@media (max-width: 900px) {
    .admin-doc-task-edit-cols {
        grid-template-columns: 1fr;
    }
    .admin-doc-task-edit-col .admin-doc-task-ai-cell {
        min-height: 108px;
    }
}
@media (max-width: 640px) {
    .admin-doc-task-new-body .admin-doc-task-ai-row {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }
    .admin-doc-task-new-body .admin-doc-task-ai-row .admin-doc-task-ai-label-col {
        width: 100%;
        max-width: none;
        min-width: 0;
    }
    .admin-doc-task-new-body .admin-doc-task-ai-row .admin-doc-task-ai-meta-control {
        width: 100%;
        flex: none;
        min-width: 0;
    }
    .admin-doc-task-new-body .admin-doc-task-ai-label-col .admin-doc-task-ai-label,
    .admin-doc-task-new-body .admin-doc-task-ai-label-col .admin-level-required {
        order: unset;
    }
}
.admin-doc-task-col-cb {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    text-align: center;
    vertical-align: middle;
    box-sizing: border-box;
}

.admin-doc-task-table th.admin-doc-task-sort-th {
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

.admin-level-table.admin-doc-task-table thead th {
    position: relative;
    border-right: none;
    vertical-align: middle;
    line-height: 1.35;
}

.admin-level-table.admin-doc-task-table thead th:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 16.6667%;
    bottom: 16.6667%;
    right: 0;
    width: 5px;
    margin-right: -2px;
    pointer-events: none;
    z-index: 1;
    border-radius: 2px;
    background: transparent;
    box-shadow:
        inset 1px 0 0 #c0c0c0,
        inset -1px 0 0 #ffffff;
}

.admin-level-table.admin-doc-task-table thead th:first-child::before,
.admin-level-table.admin-doc-task-table thead th:last-child::after {
    content: none;
    display: none;
}

.admin-doc-task-col-resize {
    position: absolute;
    top: 0;
    right: -5px;
    width: 10px;
    height: 100%;
    cursor: col-resize;
    z-index: 6;
    user-select: none;
    -webkit-user-select: none;
    box-sizing: border-box;
}

.admin-doc-task-col-resize:hover {
    background: rgba(25, 118, 210, 0.16);
}

.admin-doc-task-sort-head-inner {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    max-width: 100%;
    min-height: 1.35em;
    box-sizing: border-box;
    white-space: nowrap;
}

.admin-doc-task-table thead th.admin-doc-task-col-id .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-col-pub .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-col-impl .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-w150.admin-doc-task-sort-th .admin-doc-task-sort-head-inner {
    justify-content: center;
}

.admin-doc-task-table thead th.admin-doc-task-col-root .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-col-root2 .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-col-root3 .admin-doc-task-sort-head-inner,
.admin-doc-task-table thead th.admin-doc-task-col-title .admin-doc-task-sort-head-inner {
    justify-content: flex-start;
}

.admin-doc-task-sort-arrows {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 0;
    gap: 1px;
}

.admin-doc-task-sort-tri {
    display: block;
    flex-shrink: 0;
    width: 11px;
    height: 7px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 7px;
}

.admin-doc-task-sort-up.admin-doc-task-sort-hollow {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M6 1.2 L10.2 6.3 H1.8 Z' fill='%23b0b0b0'/%3E%3C/svg%3E");
}

.admin-doc-task-sort-up.admin-doc-task-sort-solid {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M6 1.2 L10.2 6.3 H1.8 Z' fill='%23222'/%3E%3C/svg%3E");
}

.admin-doc-task-sort-down.admin-doc-task-sort-hollow {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M6 6.8 L1.8 1.7 H10.2 Z' fill='%23b0b0b0'/%3E%3C/svg%3E");
}

.admin-doc-task-sort-down.admin-doc-task-sort-solid {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M6 6.8 L1.8 1.7 H10.2 Z' fill='%23222'/%3E%3C/svg%3E");
}

.admin-neo-sort-table {
    table-layout: fixed;
    width: 100%;
}

.admin-neo-col-resize-handle {
    position: absolute;
    top: 0;
    right: 0;
    width: 10px;
    height: 100%;
    margin-right: -4px;
    cursor: col-resize;
    z-index: 4;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none;
    box-sizing: border-box;
}

.admin-neo-col-resize-handle:hover {
    background: rgba(25, 118, 210, 0.14);
}

.admin-neo-sort-table thead th {
    position: relative;
    border-right: none;
    vertical-align: middle;
    line-height: 1.35;
}
.admin-neo-sort-table thead th:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 16.6667%;
    bottom: 16.6667%;
    right: 0;
    width: 5px;
    margin-right: -2px;
    pointer-events: none;
    z-index: 1;
    border-radius: 2px;
    background: transparent;
    box-shadow:
        inset 1px 0 0 #c0c0c0,
        inset -1px 0 0 #ffffff;
}
.admin-neo-sort-table thead th:first-child::before,
.admin-neo-sort-table thead th:last-child::after {
    content: none;
    display: none;
}
.admin-neo-sort-table th.admin-doc-task-sort-th {
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}
.admin-level-table.admin-neo-sort-table thead th.admin-doc-task-col-id .admin-doc-task-sort-head-inner,
.admin-level-table.admin-neo-sort-table thead th.admin-doc-task-w150.admin-doc-task-sort-th .admin-doc-task-sort-head-inner {
    justify-content: center;
}
.admin-author-pay-pager.admin-pager-like {
    text-align: left;
}

.admin-doc-task-table th.admin-doc-task-col-title,
.admin-doc-task-table td.admin-doc-task-col-title {
    text-align: left !important;
    vertical-align: middle;
    width: auto;
    min-width: 0;
    max-width: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-doc-task-table th.admin-doc-task-col-id,
.admin-doc-task-table td.admin-doc-task-col-id {
    width: calc(3.75rem * 1.3);
    min-width: calc(3.75rem * 1.3);
    max-width: calc(3.75rem * 1.3);
    box-sizing: border-box;
    text-align: center !important;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-doc-task-table th.admin-doc-task-col-root,
.admin-doc-task-table td.admin-doc-task-col-root,
.admin-doc-task-table th.admin-doc-task-col-root2,
.admin-doc-task-table td.admin-doc-task-col-root2,
.admin-doc-task-table th.admin-doc-task-col-root3,
.admin-doc-task-table td.admin-doc-task-col-root3 {
    max-width: calc(9.75rem * 0.8);
    width: calc(9.75rem * 0.8);
    min-width: calc(9.75rem * 0.8);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
    box-sizing: border-box;
    text-align: left !important;
}

.admin-doc-task-table th.admin-doc-task-col-pub,
.admin-doc-task-table td.admin-doc-task-col-pub,
.admin-doc-task-table th.admin-doc-task-col-impl,
.admin-doc-task-table td.admin-doc-task-col-impl {
    width: calc(9.6rem / 2);
    min-width: calc(9.6rem / 2);
    max-width: calc(9.6rem / 2);
    text-align: center !important;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    box-sizing: border-box;
}

.admin-doc-task-table tbody tr.admin-doc-task-row-claimed {
    background-color: #e8f4fc;
}

.admin-doc-task-table {
    table-layout: fixed;
    width: 100%;
}

.admin-doc-task-table thead th,
.admin-doc-task-table tbody td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.admin-doc-task-table th.admin-doc-task-col-cb,
.admin-doc-task-table td.admin-doc-task-col-cb {
    text-overflow: clip;
}

.admin-doc-task-table .admin-doc-task-w150 {
    width: 135px;
    min-width: 135px;
    max-width: 135px;
    box-sizing: border-box;
    vertical-align: middle;
}

.admin-doc-task-table th.admin-doc-task-w150,
.admin-doc-task-table td.admin-doc-task-w150 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-doc-task-table th.admin-doc-task-col-ver,
.admin-doc-task-table td.admin-doc-task-col-ver {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    box-sizing: border-box;
    text-align: center !important;
    font-variant-numeric: tabular-nums;
}

.admin-doc-task-table th.admin-doc-task-col-actions,
.admin-doc-task-table td.admin-doc-task-col-actions {
    width: 118px;
    min-width: 118px;
    max-width: 118px;
    box-sizing: border-box;
}

.admin-doc-task-actions {
    white-space: nowrap;
    text-align: center;
}

.admin-doc-task-actions .admin-doc-task-row-edit,
.admin-doc-task-actions .admin-doc-task-row-del {
    background: none;
    border: none;
    padding: 0;
    margin-right: 4px;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: inherit;
    font-style: inherit;
    line-height: inherit;
    color: #1565c0;
    text-decoration: none;
}

.admin-doc-task-actions .admin-doc-task-row-del {
    color: #c62828;
    margin-right: 0;
}

.admin-doc-task-actions .admin-doc-task-row-edit:hover:not(:disabled),
.admin-doc-task-actions .admin-doc-task-row-del:hover:not(:disabled) {
    text-decoration: underline;
}

.admin-doc-task-actions .admin-doc-task-row-edit:disabled,
.admin-doc-task-actions .admin-doc-task-row-del:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    color: #888;
}

.admin-level-table.admin-doc-task-table tbody tr.admin-doc-task-row-claimed:hover td {
    background-color: #dceef9;
}

.admin-doc-task-table .admin-doc-task-time {
    white-space: nowrap;
}

.admin-doc-task .admin-level-table-wrap {
    -webkit-overflow-scrolling: touch;
}

.admin-doc-task .admin-level-pager.admin-doc-task-pager {
    text-align: left;
}
.admin-level-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-level-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-level-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
    pointer-events: none;
}
.admin-level-btn-add {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-level-btn-add:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-paper .admin-level-toolbar .admin-paper-btn-static-publish {
    margin-left: auto;
}
.admin-paper-btn-static-publish {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-paper-btn-static-publish:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-paper-status-filter {
    margin-left: 0;
    margin-right: 8px;
    padding: 6px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-family: inherit;
}
.admin-paper-btn-static-publish-pending {
    position: relative;
}
.admin-paper-btn-static-publish-pending::after {
    content: '';
    position: absolute;
    top: -5px;
    right: -5px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #d13438;
    box-shadow: 0 0 0 2px #fff;
}
.admin-paper-author-link {
    color: var(--text-primary);
    cursor: pointer;
    text-decoration: none;
}
.admin-paper-author-link:hover {
    color: var(--primary-blue);
    text-decoration: none;
}
.admin-paper-col-category {
    text-align: center;
}
.admin-paper-category-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    color: #fff;
    line-height: 1.2;
    font-size: 12px;
    font-weight: 400;
}
.admin-paper-category-badge-patent {
    background: #fff4ce;
    color: #5c4400;
}
.admin-paper-category-badge-solution {
    background: #dff6dd;
    color: #0f4a00;
}
.admin-paper-table td:nth-child(4),
.admin-paper-table td:nth-child(5) {
    font-family: inherit !important;
    font-size: inherit;
    font-variant-numeric: normal;
}

/* 静态页面发布弹窗 */
.admin-paper-static-publish-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
}
.admin-paper-static-publish-modal[style*="display: none"] { display: none !important; }
.admin-paper-static-publish-inner {
    --am-pad-x: 16px;
    position: relative;
    background: var(--bg-primary);
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    width: 90%;
    max-width: 640px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    padding: 0 var(--am-pad-x) 0;
}
.admin-paper-static-publish-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    position: static;
    box-sizing: border-box;
}
.admin-paper-static-publish-title { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: 0.04em; }
.admin-paper-static-publish-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0 16px;
}
.admin-paper-static-publish-count-row {
    flex-shrink: 0;
    padding: 10px 0;
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-primary);
    border-bottom: 1px solid var(--border-color);
}
.admin-paper-static-publish-table-wrap {
    flex: 1;
    min-height: 0;
    overflow: auto;
    margin-bottom: 12px;
}
.admin-paper-static-publish-table {
    width: 100%;
    font-size: 14px;
    border-collapse: collapse;
}
.admin-paper-static-publish-table thead th {
    position: sticky;
    top: 0;
    background: var(--bg-primary);
    z-index: 1;
    box-shadow: 0 1px 0 var(--border-color);
}
.admin-paper-static-publish-table th,
.admin-paper-static-publish-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-paper-static-publish-table th:first-child,
.admin-paper-static-publish-table td:first-child { width: 44px; text-align: center; }
.admin-paper-static-publish-table th:nth-child(3),
.admin-paper-static-publish-table td:nth-child(3) { text-align: center; }
.admin-paper-static-publish-table th:nth-child(4),
.admin-paper-static-publish-table td:nth-child(4),
.admin-paper-static-publish-table td:nth-child(5) { width: 48px; text-align: center; }
.admin-paper-static-publish-table thead th[colspan="2"] { text-align: center; }
.admin-paper-static-publish-table td:nth-child(4) button,
.admin-paper-static-publish-table td:nth-child(5) button {
    padding: 4px 8px;
    font-size: 14px;
    cursor: pointer;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 2px;
}
.admin-paper-static-publish-table td:nth-child(4) button:hover,
.admin-paper-static-publish-table td:nth-child(5) button:hover { background: var(--bg-secondary); }
.admin-paper-static-publish-table tr.disabled-qty .admin-paper-static-publish-row-cb { cursor: not-allowed; opacity: 0.6; }
.admin-paper-static-publish-btns {
    flex-shrink: 0;
    padding: 12px 16px;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.admin-paper-static-publish-do,
.admin-paper-static-publish-cancel {
    padding: 6px 16px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-paper-static-publish-do { background: var(--primary-blue); color: var(--bg-primary); border: 1px solid var(--primary-blue); }
.admin-paper-static-publish-do:hover { background: var(--primary-blue-hover); border-color: var(--primary-blue-hover); }
.admin-paper-static-publish-cancel { background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--border-color); }
.admin-paper-static-publish-cancel:hover { background: var(--bg-secondary); }
.admin-paper-static-publish-progress-bar-wrap {
    height: 24px; background: var(--bg-secondary, #f0f0f0); border-radius: 4px; overflow: hidden; margin-bottom: 10px;
}
.admin-paper-static-publish-progress-bar {
    height: 100%; background: var(--primary-blue, #1890ff); transition: width 0.2s ease;
}
.admin-paper-static-publish-progress-text { font-size: 14px; color: var(--text-secondary); margin-bottom: 8px; }
.admin-paper-static-publish-log-wrap {
    max-height: 200px; overflow-y: auto; border: 1px solid var(--border-color); border-radius: 4px; padding: 8px; margin-bottom: 12px; background: var(--bg-primary);
}
.admin-paper-static-publish-log { width: 100%; border-collapse: collapse; padding: 0; margin: 0; font-size: 13px; font-family: "Segoe UI", "Helvetica Neue", system-ui, sans-serif; table-layout: fixed; }
.admin-paper-static-publish-log thead th { text-align: left; padding: 6px 10px; white-space: nowrap; background: var(--bg-secondary, #f5f5f5); color: var(--text-secondary); font-weight: 600; border-bottom: 1px solid var(--border-color); }
.admin-paper-static-publish-log tbody td { padding: 4px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-secondary); border-bottom: 1px solid var(--border-color); }
.admin-paper-static-publish-log .admin-paper-publish-log-title { width: 32%; }
.admin-paper-static-publish-log .admin-paper-publish-log-name { width: 42%; }
.admin-paper-static-publish-log .admin-paper-publish-log-pid { width: 18%; }
.admin-paper-static-publish-progress-modal {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10003;
    display: flex; align-items: center; justify-content: center;
    background: rgba(0, 0, 0, 0.5);
}
.admin-paper-static-publish-progress-modal[style*="display: none"] { display: none !important; }
.admin-paper-static-publish-progress-inner {
    background: var(--bg-primary); border-radius: 4px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    max-width: 520px; width: 90%; max-height: 85vh;
    display: flex; flex-direction: column;
    padding: 0 16px 16px;
    box-sizing: border-box;
}
.admin-paper-static-publish-progress-header {
    display: flex; align-items: center; padding: 18px 8px 10px 16px;
    margin-left: -16px; margin-right: -16px;
    background: var(--bg-secondary, #f5f5f5); box-sizing: border-box;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-paper-static-publish-progress-body { padding: 16px; overflow-y: auto; flex: 1; min-height: 0; }
.admin-paper-static-publish-progress-header .admin-level-modal-title { flex: 1; }
.admin-paper-static-publish-progress-btns {
    display: flex; justify-content: flex-end; align-items: center; gap: 16px; margin-top: 16px;
}
.admin-paper-static-publish-progress-close,
.admin-paper-static-publish-progress-abort {
    padding: 8px 24px; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;
}
.admin-paper-static-publish-progress-close { background: var(--primary-blue); color: #fff; }
.admin-paper-static-publish-progress-close:hover:not(:disabled) { background: var(--primary-blue-hover); }
.admin-paper-static-publish-progress-close:disabled { opacity: 0.6; cursor: not-allowed; }
.admin-paper-static-publish-progress-abort { background: var(--bg-primary); color: var(--text-primary); border: 1px solid var(--border-color); }
.admin-paper-static-publish-progress-abort:hover:not(:disabled) { background: var(--bg-secondary); }
.admin-paper-static-publish-progress-abort:disabled { opacity: 0.6; cursor: not-allowed; }

/* 列表区：不超出业务区；其它列表仍可横向滚动查看超宽内容 */
.admin-level-table-wrap {
    overflow-x: auto;
    padding: 0 10px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.admin-level-table {
    width: 100%;
    min-width: 100%;
    font-size: 13px;
    border-collapse: collapse;
    table-layout: auto;
}
/* 创客 / 文档产品：固定布局 + 百分列宽，表宽不超过容器，避免页面出现横向滚动条 */
.admin-author-manage,
.admin-paper {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-author-manage .admin-level-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
}
.admin-paper > .admin-level-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
}
.admin-author-table.admin-level-table,
.admin-paper-table.admin-level-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    box-sizing: border-box;
}
/* 会员等级：表格外不横向滚动，百分列宽 + 操作列（与创客/文档一致） */
.admin-level > .admin-level-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
    box-sizing: border-box;
}
.admin-level > .admin-level-table-wrap > .admin-level-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    box-sizing: border-box;
}
.admin-level > .admin-level-table-wrap > .admin-level-table th:first-child,
.admin-level > .admin-level-table-wrap > .admin-level-table td:first-child {
    width: 4%;
    box-sizing: border-box;
}
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(2),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(2) { width: 7%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(3),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(3) { width: 9%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(4),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(4) { width: 8%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(5),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(5) { width: 6%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(6),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(6) { width: 5%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(7),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(7) { width: 8%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(8),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(8) { width: 5%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(9),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(9) { width: 9%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(10),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(10) { width: 10%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(11),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(11) { width: 5%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(12),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(12) { width: 6%; }
.admin-level > .admin-level-table-wrap > .admin-level-table th:nth-child(13),
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(13) {
    width: 18%;
    min-width: 11rem;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-level > .admin-level-table-wrap > .admin-level-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-level > .admin-level-table-wrap > .admin-level-table td:nth-child(13) {
    overflow: visible;
}
/* 软件产品：同上策略 */
.admin-app > .admin-level-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
    box-sizing: border-box;
}
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    box-sizing: border-box;
}
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:first-child,
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:first-child { width: 4%; box-sizing: border-box; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(2),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(2) { width: 7%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(3),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(3) { width: 9%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(4),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(4) { width: 9%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(5),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(5) { width: 11%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(6),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(6) { width: 8%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(7),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(7) { width: 7%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(8),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(8) { width: 6%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(9),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(9) { width: 8%; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(10),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(10) { width: 4%; text-align: center; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(11),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(11) { width: 5%; text-align: center; }
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(12),
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(12) {
    width: 22%;
    min-width: 12rem;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(12) {
    overflow: visible;
}
@media (min-width: 768px) and (max-width: 1024px) {
    .admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(3),
    .admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(3) {
        width: 18%;
    }
    .admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table th:nth-child(12),
    .admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table td:nth-child(12) {
        width: calc(22% * 2 / 3);
        min-width: 8rem;
    }
}
/* 支付通道：9 列（含单笔/日累计/单用户日限额），与会员等级同套 table-wrap / toolbar */
.admin-stl-channel > .admin-level-table-wrap {
    overflow-x: auto;
    max-width: 100%;
    box-sizing: border-box;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    box-sizing: border-box;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:first-child,
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:first-child { width: 5%; box-sizing: border-box; }
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(2),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(2) { width: 11%; }
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(3),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(3) { width: 11%; }
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(4),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(4),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(5),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(5),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(6),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(6) { width: 9%; }
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(7),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(7) { width: 15%; }
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(8),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(8) { width: 8%; }
.admin-stl-channel .admin-stl-channel-status--on {
    color: #16a34a;
    font-weight: 700;
}
.admin-stl-channel .admin-stl-channel-status--off {
    color: #595959;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table th:nth-child(9),
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(9) {
    width: 22%;
    min-width: 9rem;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td:nth-child(9) {
    overflow: visible;
}
.admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table td.admin-stl-channel-lim {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.admin-stl-channel .admin-stl-channel-single-limit,
.admin-stl-channel .admin-stl-channel-daily-limit,
.admin-stl-channel .admin-stl-channel-daily-user-limit {
    max-width: 100%;
    box-sizing: border-box;
}
.admin-stl-channel-del-disabled {
    color: #999 !important;
    cursor: not-allowed !important;
    text-decoration: none !important;
}
.admin-stl-channel-del-disabled:hover {
    text-decoration: none !important;
}
.admin-level-table th,
.admin-level-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-level-table td { color: var(--text-primary); }
.admin-level-table tbody tr:hover td,
.admin-product-table tbody tr:hover td,
.admin-user-table tbody tr:hover td,
.admin-order-table tbody tr:hover td,
.admin-orderpre-table tbody tr:hover td,
.admin-permission-table tbody tr:hover td,
.admin-user-auth-table tbody tr:hover td,
.admin-user-role-table tbody tr:hover td,
.admin-author-pay-table tbody tr:hover td,
.admin-author-pay-modal-table tbody tr:hover td,
.admin-table-data-table tbody tr:hover td,
.admin-paper-preview-table tbody tr:hover td,
.admin-user-role-auth-modal-user-table tbody tr:hover td,
.admin-category-tree tbody tr:hover td,
.admin-product-category-tree-table tbody tr:hover td,
.admin-level-category-tree-table tbody tr:hover td {
    background-color: #fafafa;
}
/* 创客表（manage/notify）首列由 .admin-author-table--* 自行定义，勿套会员等级首列 48px */
.admin-level-table:not(.admin-author-table):not(.admin-paper-table) thead th:first-child {
    width: 48px;
    padding: var(--admin-list-thead-pad-block) 6px;
    text-align: center;
    line-height: var(--admin-list-thead-line-height);
    vertical-align: middle;
    box-sizing: border-box;
}
.admin-level-table:not(.admin-author-table):not(.admin-paper-table) tbody td:first-child {
    width: 48px;
    padding: 4px 6px;
    text-align: center;
}
.admin-level-table th:last-child,
.admin-level-table td:last-child { padding-right: 20px; }
/* 等级价格列居右：表头第5列，数据列用 admin-level.js 的 admin-level-col-price */
.admin-level-table th:nth-child(5),
.admin-level-table td.admin-level-col-price { text-align: right !important; }
/* 等级序号列居中：表头第6列 */
.admin-level-table th:nth-child(6),
.admin-level-table td.admin-level-col-seq { text-align: center !important; }
/* 单品会员折扣率列居中：表头第8列 */
.admin-level-table th:nth-child(8),
.admin-level-table td.admin-level-col-discount { text-align: center !important; }
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-id,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-id,
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-pub,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-pub,
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-impl,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-impl {
    text-align: center !important;
    vertical-align: middle;
}
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-root,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-root,
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-root2,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-root2,
.admin-level-table.admin-doc-task-table th.admin-doc-task-col-root3,
.admin-level-table.admin-doc-task-table td.admin-doc-task-col-root3 {
    text-align: left !important;
    vertical-align: middle;
}
.admin-level-table th {
    font-weight: 600;
    color: var(--text-secondary);
    text-align: center;
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-level-svg-cell {
    width: 48px;
    text-align: center;
    padding: 4px 6px;
}
.admin-level-svg-img {
    display: inline-block;
    max-width: 24px;
    max-height: 24px;
    vertical-align: middle;
}
.admin-level-svg-img svg {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.admin-level-edit,
.admin-level-del,
.admin-stl-channel-toggle,
.admin-app-publish,
.admin-paper-edit,
.admin-paper-publish,
.admin-paper-action-query,
.admin-paper-action-publish,
.admin-paper-action-unpublish,
.admin-paper-action-audit,
.admin-paper-action-audit-pass,
.admin-paper-action-audit-reject,
.admin-paper-action-force-off,
.admin-paper-delete {
    color: var(--primary-blue);
    cursor: pointer;
    margin-right: 8px;
    font-size: 14px;
}
.admin-level-edit:hover,
.admin-level-del:hover,
.admin-stl-channel-toggle:hover,
.admin-app-publish:hover,
.admin-paper-edit:hover,
.admin-paper-publish:hover,
.admin-paper-action-query:hover,
.admin-paper-action-publish:hover,
.admin-paper-action-unpublish:hover,
.admin-paper-action-audit:hover,
.admin-paper-action-audit-pass:hover,
.admin-paper-action-audit-reject:hover,
.admin-paper-action-force-off:hover,
.admin-paper-delete:hover { text-decoration: underline; }
.admin-paper-publish-muted {
    color: #888 !important;
    cursor: default !important;
    text-decoration: none !important;
}
.admin-paper-publish-muted:hover { text-decoration: none !important; }
.admin-paper-edit-disabled,
.admin-paper-edit-disabled:hover {
    color: #999;
    cursor: not-allowed;
    text-decoration: none;
}
.admin-paper-delete-disabled,
.admin-paper-delete-disabled:hover {
    color: #999;
    cursor: not-allowed;
    text-decoration: none;
}
.admin-paper-action-audit-disabled,
.admin-paper-action-audit-disabled:hover,
.admin-paper-action-force-off-disabled,
.admin-paper-action-force-off-disabled:hover {
    color: #999;
    cursor: not-allowed;
    text-decoration: none;
}
.admin-paper-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 6px;
    align-items: center;
    justify-content: center;
}
.admin-paper-actions .admin-paper-action-query,
.admin-paper-actions .admin-paper-action-audit,
.admin-paper-actions .admin-paper-action-force-off,
.admin-paper-actions .admin-paper-delete {
    margin-right: 0;
}
.admin-level-pager { margin-top: 12px; font-size: 13px; color: var(--text-secondary); }

.admin-level-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-level-modal.admin-level-modal-open { display: flex; }
.admin-level-modal-inner {
    --am-pad-x: 40px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 700px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 0 var(--am-pad-x) 24px;
    position: relative;
}
.admin-level-modal-inner > .admin-level-modal-header,
.admin-product-modal-inner > .admin-product-modal-header,
.admin-user-auth-modal-inner > .admin-user-auth-modal-header,
.admin-paper-upload-inner > .admin-paper-upload-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 32px 10px 40px;
    margin-left: -40px;
    margin-right: -40px;
    box-sizing: border-box;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-level-modal.admin-doc-task-discard-modal .admin-doc-task-discard-modal-inner > .admin-level-modal-header,
.admin-level-modal.admin-doc-task-title-dup-modal .admin-doc-task-title-dup-modal-inner > .admin-level-modal-header {
    display: flex;
    flex-shrink: 0;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    margin: 0 -24px 12px;
    padding: calc(14px + env(safe-area-inset-top, 0px)) 16px 12px 24px;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    cursor: move;
    user-select: none;
    -webkit-user-select: none;
}
.admin-category-modal-inner > .admin-category-modal-header,
.admin-level-category-modal-inner > .admin-level-category-modal-header,
.admin-permission-modal-inner > .admin-permission-modal-header,
.admin-user-role-delete-modal-inner > .admin-user-role-delete-modal-header,
.admin-ad-audit-inner > .admin-level-modal-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 16px 10px 24px;
    margin-left: -24px;
    margin-right: -24px;
    box-sizing: border-box;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-doc-task-new-modal-inner > .admin-level-modal-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 64px 10px 72px;
    margin-left: -72px;
    margin-right: -72px;
    box-sizing: border-box;
    margin-bottom: 0;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-paper-static-publish-inner > .admin-paper-static-publish-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 8px 10px 16px;
    margin-left: -16px;
    margin-right: -16px;
    box-sizing: border-box;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-author-reject-modal-inner > .admin-level-modal-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 20px 10px 28px;
    margin-left: -28px;
    margin-right: -28px;
    box-sizing: border-box;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-user-role-auth-modal-inner > .admin-user-role-auth-modal-header,
.admin-user-role-edit-modal-inner > .admin-user-role-edit-modal-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: static;
    padding: 18px 12px 10px 20px;
    margin: 0;
    box-sizing: border-box;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
}
.admin-level-modal-header .admin-level-modal-title,
.admin-category-modal-header .admin-category-modal-title,
.admin-product-modal-header .admin-product-modal-title,
.admin-level-category-modal-header .admin-level-category-modal-title,
.admin-permission-modal-header .admin-permission-modal-title,
.admin-user-auth-modal-header .admin-user-auth-modal-title,
.admin-user-role-delete-modal-header .admin-user-role-delete-modal-title,
.admin-user-role-auth-modal-header .admin-user-role-auth-modal-title,
.admin-user-role-edit-modal-header .admin-user-role-edit-modal-title,
.admin-ad-audit-inner .admin-level-modal-header .admin-level-modal-title,
.admin-author-reject-modal-inner .admin-level-modal-header .admin-level-modal-title,
.admin-doc-task-new-modal-inner .admin-level-modal-header .admin-doc-task-modal-title,
.admin-paper-static-publish-header .admin-paper-static-publish-title,
.admin-paper-upload-inner .admin-paper-upload-title {
    flex: 1;
    min-width: 0;
}
.admin-level-modal-header .admin-level-modal-close,
.admin-category-modal-header .admin-category-modal-close,
.admin-product-modal-header .admin-product-modal-close,
.admin-level-category-modal-header .admin-level-category-modal-close,
.admin-permission-modal-header .admin-permission-modal-close,
.admin-user-auth-modal-header .admin-user-auth-modal-close,
.admin-user-role-auth-modal-header .admin-user-role-auth-modal-close,
.admin-user-role-edit-modal-header .admin-user-role-edit-modal-close,
.admin-user-role-delete-modal-header .admin-user-role-delete-modal-close,
.admin-ad-audit-inner .admin-level-modal-header .admin-level-modal-close,
.admin-author-reject-modal-inner .admin-level-modal-header .admin-level-modal-close,
.admin-doc-task-new-modal-inner .admin-level-modal-header .admin-doc-task-new-close,
.admin-paper-upload-inner .admin-paper-upload-header .admin-level-modal-close,
.admin-paper-static-publish-header .admin-level-modal-close,
.admin-wxoap-json-modal-header .admin-wxoap-json-modal-close,
.admin-wxoap-prompt-modal-head .admin-wxoap-prompt-modal-close,
.admin-author-notify-card-head .admin-author-notify-close,
.admin-table-data-cell-modal-head .admin-table-data-cell-modal-x {
    position: static;
    top: auto;
    right: auto;
    flex-shrink: 0;
    margin: 0;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    line-height: 0;
    font-size: 0;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    cursor: pointer;
    border-radius: 50%;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-ad-img-modal-inner .admin-ad-img-modal-close {
    position: absolute;
    top: 12.5px;
    right: 12px;
    z-index: 10;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    margin: 0;
    padding: 0;
    line-height: 0;
    font-size: 0;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    cursor: pointer;
    border-radius: 50%;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-paper-author-info-inner .admin-paper-author-info-close {
    position: absolute;
    top: 12.5px;
    right: 10px;
    z-index: 10;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    margin: 0;
    padding: 0;
    line-height: 0;
    font-size: 0;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    cursor: pointer;
    border-radius: 50%;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-level-modal-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-category-modal-inner .admin-category-modal-close .admin-modal-close-icon,
.admin-product-modal-inner .admin-product-modal-close .admin-modal-close-icon,
.admin-level-category-modal-inner .admin-level-category-modal-close .admin-modal-close-icon,
.admin-permission-modal-inner .admin-permission-modal-close .admin-modal-close-icon,
.admin-user-auth-modal-inner .admin-user-auth-modal-close .admin-modal-close-icon,
.admin-user-role-auth-modal-inner .admin-user-role-auth-modal-close .admin-modal-close-icon,
.admin-user-role-edit-modal-inner .admin-user-role-edit-modal-close .admin-modal-close-icon,
.admin-user-role-delete-modal-inner .admin-user-role-delete-modal-close .admin-modal-close-icon,
.admin-ad-audit-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-author-reject-modal-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-doc-task-new-modal-inner .admin-doc-task-new-close .admin-modal-close-icon,
.admin-paper-modal-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-paper-upload-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-paper-static-publish-inner .admin-level-modal-close .admin-modal-close-icon,
.admin-ad-img-modal-inner .admin-ad-img-modal-close .admin-modal-close-icon,
.admin-wxoap-json-modal-panel .admin-wxoap-json-modal-close .admin-modal-close-icon,
.admin-wxoap-prompt-modal-panel .admin-wxoap-prompt-modal-close .admin-modal-close-icon,
.admin-author-notify-card .admin-author-notify-close .admin-modal-close-icon,
.admin-table-data-cell-modal-box .admin-table-data-cell-modal-x .admin-modal-close-icon,
.admin-paper-author-info-inner .admin-paper-author-info-close .admin-modal-close-icon {
    display: block;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}
.admin-paper-author-info-inner .admin-paper-author-info-close:hover {
    background: var(--bg-hover, #f0f0f0);
}
.admin-paper-author-info-inner {
    --am-pad-x: 18px;
    position: relative;
}
.admin-paper-author-info-head {
    display: flex;
    align-items: center;
    margin-left: -18px;
    margin-right: -18px;
    padding: 18px 10px 10px 18px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
    margin-bottom: 16px;
    box-sizing: border-box;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: var(--text-primary, #262626);
}
.admin-level-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    box-sizing: border-box;
    cursor: move;
    user-select: none;
}
.admin-level-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-level-modal-close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-level-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-level-field {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
}
/* 会员等级弹框（新增/修改）：三列布局 — 第1列 *，第2列 输入框名称，第3列 输入框 */
.admin-level-modal .admin-level-field-col1 {
    width: 20px;
    min-width: 20px;
    flex-shrink: 0;
    text-align: center;
}
.admin-level-modal .admin-level-field-col1 .admin-level-required {
    margin-right: 0;
    margin-top: 8px;
}
.admin-level-modal .admin-level-field-label {
    width: 110px;
    min-width: 110px;
    flex-shrink: 0;
    padding-top: 8px;
    margin-right: 12px;
    font-size: 14px;
    color: var(--text-secondary, #666);
}
.admin-level-modal .admin-level-field-content {
    flex: 1;
    min-width: 0;
}
.admin-level-required {
    color: #f00;
    width: 9px;
    text-align: center;
    margin-right: 4px;
    margin-top: 8px;
    flex-shrink: 0;
}
.admin-level-field-content {
    flex: 1;
    min-width: 0;
}
.admin-level-field-content input[type="text"],
.admin-level-field-content input[type="number"],
.admin-level-field-content textarea {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
}
.admin-level-field-content input[readonly] {
    background: var(--bg-secondary);
    color: var(--text-secondary);
    cursor: not-allowed;
}
.admin-level-field-content textarea {
    resize: vertical;
    min-height: 60px;
}
/* 会员等级弹框（新增/修改）：等级价格输入框居左显示 */
.admin-level-modal .admin-level-field-content input.admin-level-price,
.admin-level-field-content input.admin-level-price {
    text-align: left;
    padding-right: 2px;
}
.admin-level-svg-wrap {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.admin-level-svg-wrap .admin-level-img-svg {
    flex: 1;
    min-width: 0;
}
.admin-level-svg-preview {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 4px;
    box-sizing: border-box;
}
.admin-level-svg-preview > div {
    max-width: 100%;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.admin-level-svg-preview svg {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.admin-level-field-content label {
    display: flex;
    align-items: center;
    cursor: pointer;
}
.admin-level-field-content input[type="checkbox"] {
    margin-right: 6px;
}
.admin-level-sp-cto-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.admin-level-sp-cto-wrap .admin-level-sp-cto {
    flex: 1;
    min-width: 0;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
}
.admin-level-date-btn {
    flex-shrink: 0;
    padding: 8px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-level-date-btn:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-level-product-picker {
    position: relative;
}
.admin-level-product-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
    cursor: pointer;
    background: var(--bg-primary);
}
.admin-level-product-input:hover {
    border-color: var(--primary-blue);
}
.admin-level-product-list-popup {
    display: none;
    position: fixed !important;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 10002 !important;
    max-height: 300px;
    overflow-y: auto;
}
.admin-level-product-list-popup.admin-level-product-list-popup-open {
    display: block;
}
.admin-level-product-list-wrap {
    padding: 8px;
}
.admin-level-product-list-table {
    width: 100%;
    font-size: 14px;
    border-collapse: collapse;
}
.admin-level-product-list-table th,
.admin-level-product-list-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-level-product-list-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
}
.admin-level-product-list-item {
    cursor: pointer;
}
.admin-level-product-list-item:hover {
    background: var(--bg-secondary);
}
.admin-level-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}
.admin-level-modal-ok,
.admin-level-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-level-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.admin-level-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-level-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-level-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* 会员等级 - 删除确认模态框 */
.admin-level-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.admin-level-delete-modal.admin-level-delete-modal-open {
    display: flex;
}
.admin-level-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 500px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-level-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-level-delete-modal-content {
    margin-bottom: 20px;
}
.admin-level-delete-modal-content p {
    margin: 0;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-level-delete-modal-content strong {
    color: #f00;
    font-weight: 600;
}
.admin-level-delete-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-top: 8px;
    font-family: inherit;
}
.admin-level-delete-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}
.admin-level-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-level-delete-modal-ok,
.admin-level-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-level-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-level-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-level-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-level-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* 产品分类 - 删除确认模态框 */
.admin-category-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.admin-category-delete-modal.admin-category-delete-modal-open {
    display: flex;
}
.admin-category-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 500px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-category-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-category-delete-modal-content {
    margin-bottom: 20px;
}
.admin-category-delete-modal-content p {
    margin: 0;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-category-delete-modal-content strong {
    color: #f00;
    font-weight: 600;
}
.admin-category-delete-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-top: 8px;
    font-family: inherit;
}
.admin-category-delete-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}
.admin-category-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-category-delete-modal-ok,
.admin-category-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-category-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-category-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-category-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-category-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* 产品仓库 - 删除确认模态框 */
.admin-product-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.admin-product-delete-modal.admin-product-delete-modal-open {
    display: flex;
}
.admin-product-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 500px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-product-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-product-delete-modal-content {
    margin-bottom: 20px;
}
.admin-product-delete-modal-content p {
    margin: 0;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-product-delete-modal-content strong {
    color: #f00;
    font-weight: 600;
}
.admin-paper-delete-modal-message .admin-paper-delete-title {
    color: #000;
    font-weight: 700;
}
.admin-product-delete-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-top: 8px;
    font-family: inherit;
}
.admin-product-delete-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}
.admin-product-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-product-delete-modal-ok,
.admin-product-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-product-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-product-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-product-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-product-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* 会员等级 - 分类选择器模态框 */
.admin-level-category-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-level-category-modal.admin-level-category-modal-open {
    display: flex;
}
.admin-level-category-modal-inner {
    --am-pad-x: 24px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    padding: 0 var(--am-pad-x) 24px;
    overflow-y: auto;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    position: relative;
}
.admin-level-category-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
}
.admin-level-category-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-level-category-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-level-category-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-level-category-tree-wrap {
    padding: 8px;
    max-height: 400px;
    overflow-y: auto;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    background: var(--bg-primary);
}
.admin-level-category-tree-table {
    width: 100%;
    border-collapse: collapse;
}
.admin-level-category-tree-tbody {
    display: table-row-group;
}
.admin-level-category-tree-item {
    cursor: default;
    line-height: 1.4;
}
.admin-level-category-tree-item:hover {
    font-weight: 700;
}
.admin-level-category-tree-item:hover .admin-level-category-tree-inner {
    background: var(--bg-hover);
}
.admin-level-category-tree-item.admin-level-category-tree-leaf {
    cursor: pointer;
}
.admin-level-category-tree-td {
    padding: 0;
    border: none;
    white-space: nowrap;
}
.admin-level-category-tree-inner {
    display: inline-block;
    padding: 2px 5px 2px 5px;
    border-radius: 2px;
}
.admin-level-category-tree-icon {
    display: inline-block;
    margin-right: 6px;
    color: var(--text-light);
    flex-shrink: 0;
}
.admin-level-category-tree-icon-expand {
    cursor: pointer;
}
.admin-level-category-tree-icon-expand:hover {
    color: var(--primary-blue);
}
.admin-level-category-tree-icon-branch {
    cursor: default;
}
.admin-level-category-tree-name {
    font-weight: inherit;
}
.admin-level-category-tree-children {
    display: table-row-group;
}
.admin-level-category-tree-children-wrapper {
    display: table-row;
}
.admin-level-category-tree-children-wrapper[style*="display: none"] {
    display: none !important;
}
.admin-level-category-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 16px;
}
.admin-level-category-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    color: var(--text-primary);
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    font-family: inherit;
}
.admin-level-category-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* ===== 财务预支付管理 ===== */
.admin-orderpre {
    min-height: 200px;
    background: var(--bg-primary);
    padding: 12px;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.admin-orderpre-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 0 10px;
}
.admin-orderpre-btn-batch-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    min-height: 34px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
    font-size: 13px;
    font-family: inherit;
}
.admin-orderpre-btn-batch-delete:hover {
    background: var(--bg-secondary);
}
.admin-orderpre-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-orderpre-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-orderpre-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-orderpre-table-wrap {
    overflow-x: hidden;
    max-width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
}
.admin-orderpre-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    font-size: 13px;
    border-collapse: collapse;
    table-layout: fixed;
    box-sizing: border-box;
}
.admin-orderpre-table th,
.admin-orderpre-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-orderpre-table td { color: var(--text-primary); }
.admin-orderpre-table th:last-child,
.admin-orderpre-table td:last-child { padding-right: 20px; }
.admin-orderpre-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-orderpre-table th,
.admin-orderpre-table td.admin-orderpre-cell {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-orderpre-table thead th.admin-orderpre-th-cb,
.admin-orderpre-table tbody td.admin-orderpre-td-cb {
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    padding: 6px 0;
    text-align: center;
    vertical-align: middle;
    box-sizing: border-box;
    overflow: visible;
}
.admin-orderpre-th-cb-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    width: 18px;
    height: 18px;
}
.admin-orderpre-master-cb,
.admin-orderpre-row-cb {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
}
.admin-orderpre-table thead th:nth-child(2),
.admin-orderpre-table tbody td.admin-orderpre-cell:nth-child(2) {
    width: 5%;
    text-align: center;
    vertical-align: middle;
    text-overflow: clip;
    overflow: visible;
}
.admin-orderpre-table th:nth-child(3),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(3),
.admin-orderpre-table th:nth-child(4),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(4) { width: 9%; }
.admin-orderpre-table th:nth-child(5),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(5) { width: 7%; }
.admin-orderpre-table th:nth-child(6),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(6) { width: 10%; }
.admin-orderpre-table th:nth-child(7),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(7) { width: 11%; }
.admin-orderpre-table th:nth-child(8),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(8),
.admin-orderpre-table th:nth-child(9),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(9) { width: 6%; }
.admin-orderpre-table th:nth-child(10),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(10) { width: 10%; }
.admin-orderpre-table th:nth-child(11),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(11) { width: 7%; }
.admin-orderpre-table th:nth-child(12),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(12) { width: 9%; }
.admin-orderpre-table th:nth-child(13),
.admin-orderpre-table td.admin-orderpre-cell:nth-child(13) {
    width: 11%;
    min-width: 11rem;
    max-width: none;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-orderpre-table td.admin-orderpre-cell.admin-orderpre-time {
    white-space: nowrap;
}
/* 过期行背景色：微软淡灰色 */
.admin-orderpre-row-expired {
    background-color: #f3f3f3;
}
.admin-orderpre-op {
    text-align: center;
}
.admin-orderpre-del {
    color: var(--primary-blue);
    cursor: pointer;
    font-size: 14px;
}
.admin-orderpre-del:hover {
    color: var(--primary-blue-hover);
}
.admin-orderpre-pager {
    margin-top: 12px;
    font-size: 13px;
    color: var(--text-secondary);
}
.admin-orderpre-batch-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10002;
    align-items: center;
    justify-content: center;
}
.admin-orderpre-batch-delete-modal.admin-orderpre-batch-delete-modal-open {
    display: flex;
}
.admin-orderpre-batch-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 420px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-orderpre-batch-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-orderpre-batch-delete-modal-message {
    margin: 0 0 12px;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-orderpre-batch-delete-input {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 20px;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-family: inherit;
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-orderpre-batch-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-orderpre-batch-delete-modal-ok,
.admin-orderpre-batch-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-orderpre-batch-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-orderpre-batch-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-orderpre-batch-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-orderpre-batch-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}
.admin-orderpre-batch-error-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10003;
    align-items: center;
    justify-content: center;
}
.admin-orderpre-batch-error-modal.admin-orderpre-batch-error-modal-open {
    display: flex;
}
.admin-orderpre-batch-error-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 480px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-orderpre-batch-error-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-orderpre-batch-error-modal-body {
    margin: 0 0 20px;
    padding: 12px;
    background: var(--bg-secondary);
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.55;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--text-primary);
    font-family: inherit;
    max-height: 50vh;
    overflow-y: auto;
    border: 1px solid var(--border-color);
}
.admin-orderpre-batch-error-modal-btns {
    display: flex;
    justify-content: flex-end;
}
.admin-orderpre-batch-error-modal-ok {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--primary-blue);
    color: var(--bg-primary);
    background: var(--primary-blue);
}
.admin-orderpre-batch-error-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
/* ===== 权限管理 ===== */
.admin-permission {
    min-height: 200px;
    padding: 16px;
}
.admin-permission-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.admin-permission-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
}
.admin-permission-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-permission-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-permission-btn-add {
    padding: 6px 14px;
    font-size: 14px;
    color: var(--bg-primary);
    background: var(--primary-blue);
    border: 1px solid var(--primary-blue);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-permission-btn-add:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-permission-table-wrap {
    overflow-x: auto;
    padding: 0 10px;
}
.admin-permission-table {
    width: 100%;
    font-size: 14px;
    border-collapse: collapse;
}
.admin-permission-table th,
.admin-permission-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-permission-table th:first-child,
.admin-permission-table td:first-child {
    padding-left: 20px;
}
.admin-permission-table th:last-child,
.admin-permission-table td:last-child {
    padding-right: 20px;
}
.admin-permission-table th {
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-permission-edit,
.admin-permission-del {
    color: var(--primary-blue);
    cursor: pointer;
    margin-right: 8px;
    font-size: 14px;
}
.admin-permission-edit:hover,
.admin-permission-del:hover {
    text-decoration: underline;
}
.admin-permission-pager {
    margin-top: 12px;
    font-size: 13px;
    color: var(--text-secondary);
}
.admin-permission-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.admin-permission-modal.admin-permission-modal-open {
    display: flex;
}
.admin-permission-modal-inner {
    --am-pad-x: 24px;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 500px;
    padding: 0 var(--am-pad-x) 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    position: relative;
}
.admin-permission-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    box-sizing: border-box;
    cursor: move;
    user-select: none;
}
.admin-permission-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    margin-bottom: 0;
    color: var(--text-primary);
}
.admin-permission-modal-close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    margin: 0 0 0 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
}
.admin-permission-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #333);
}
.admin-permission-field {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
}
.admin-permission-required {
    color: #f00;
    width: 9px;
    text-align: center;
    margin-right: 4px;
    margin-top: 8px;
    flex-shrink: 0;
}
.admin-permission-field-content {
    flex: 1;
    min-width: 0;
}
.admin-permission-field-content input[type="text"],
.admin-permission-field-content textarea {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
}
.admin-permission-field-content textarea {
    resize: vertical;
    min-height: 60px;
}
.admin-permission-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}
.admin-permission-modal-ok,
.admin-permission-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-permission-modal-ok {
    color: var(--bg-primary);
    background: var(--primary-blue);
    border-color: var(--primary-blue);
}
.admin-permission-modal-ok:hover {
    background: var(--primary-blue-hover);
    border-color: var(--primary-blue-hover);
}
.admin-permission-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-permission-modal-cancel:hover {
    background: var(--bg-secondary);
}
/* 权限管理 - 删除确认模态框 */
.admin-permission-delete-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: center;
    justify-content: center;
}
.admin-permission-delete-modal.admin-permission-delete-modal-open {
    display: flex;
}
.admin-permission-delete-modal-inner {
    background: var(--bg-primary);
    border-radius: 4px;
    width: 90%;
    max-width: 500px;
    padding: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.admin-permission-delete-modal-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    min-height: 48px;
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    color: var(--text-primary);
}
.admin-permission-delete-modal-content {
    margin-bottom: 20px;
}
.admin-permission-delete-modal-content p {
    margin: 0;
    line-height: 1.6;
    color: var(--text-primary);
}
.admin-permission-delete-modal-content strong {
    color: #f00;
    font-weight: 600;
}
.admin-permission-delete-input {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    margin-top: 8px;
    font-family: inherit;
}
.admin-permission-delete-input:focus {
    outline: none;
    border-color: var(--primary-blue);
}
.admin-permission-delete-modal-btns {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.admin-permission-delete-modal-ok,
.admin-permission-delete-modal-cancel {
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid var(--border-color);
}
.admin-permission-delete-modal-ok {
    color: var(--bg-primary);
    background: #f00;
    border-color: #f00;
}
.admin-permission-delete-modal-ok:hover {
    background: #d00;
    border-color: #d00;
}
.admin-permission-delete-modal-cancel {
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-permission-delete-modal-cancel:hover {
    background: var(--bg-secondary);
}

/* ===== 表结构管理 ===== */
.admin-table-structure {
    height: 100%;
    padding: 16px;
}
.admin-table-structure-tables {
    height: 100%;
    background: var(--bg-primary);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.admin-table-structure-tables-title {
    padding: 12px 16px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-secondary);
}
.admin-table-structure-tables-list {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
}
.admin-table-structure-table-item {
    padding: 8px 12px;
    font-size: 14px;
    color: var(--text-primary);
    cursor: pointer;
    border-radius: 2px;
    margin-bottom: 4px;
    word-break: break-all;
}
.admin-table-structure-table-item:hover {
    background: var(--bg-hover);
}
.admin-table-structure-table-item.active {
    background: var(--primary-blue);
    color: var(--bg-primary);
}
.admin-table-structure-empty {
    padding: 20px;
    text-align: center;
    color: var(--text-light);
    font-size: 14px;
}

/* ===== 表数据展示（标签页中） ===== */
.admin-table-data {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 16px;
}
.admin-table-data-toolbar {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}
.admin-table-data-btn-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
}
.admin-table-data-btn-refresh:hover {
    background: var(--bg-secondary);
}
.admin-table-data-btn-refresh .admin-refresh-icon {
    flex-shrink: 0;
}
.admin-table-data-table-wrap {
    flex: 1;
    overflow: auto;
    background: var(--bg-primary);
}
.admin-table-data-table {
    width: 100%;
    font-size: 13px;
    border-collapse: collapse;
    min-width: 100%;
}
.admin-table-data-table th,
.admin-table-data-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    white-space: nowrap;
}
.admin-table-data-table th {
    font-weight: 700;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    position: sticky;
    top: 0;
    z-index: 1;
}
.admin-table-data-table td {
    color: var(--text-primary);
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-table-data-table td.admin-table-data-td-longtext {
    white-space: normal;
    vertical-align: middle;
    text-align: center;
    max-width: 120px;
    word-break: break-word;
    overflow: visible;
    text-overflow: clip;
}
.admin-table-data-longtext-unavail {
    font-size: 12px;
    color: var(--text-secondary, #888);
}
.admin-table-data-view-full {
    display: inline-block;
    margin-top: 0;
    padding: 2px 8px;
    font-size: 12px;
    cursor: pointer;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    background: var(--bg-secondary, #f5f5f5);
    color: var(--link-color, #1a73e8);
    font-family: inherit;
}
.admin-table-data-view-full:hover {
    background: var(--bg-hover, #ebebeb);
}
.admin-table-data-view-full:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.admin-table-data-cell-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10060;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.45);
}
.admin-table-data-cell-modal.admin-table-data-cell-modal-open {
    display: block;
}
.admin-table-data-cell-modal-box {
    --am-pad-x: 16px;
    display: flex;
    flex-direction: column;
    position: fixed;
    width: 85vw;
    height: 85vh;
    max-width: none;
    max-height: none;
    left: 7.5vw;
    top: 7.5vh;
    background: var(--bg-primary, #fff);
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    box-sizing: border-box;
    padding: 0 var(--am-pad-x);
}
.admin-table-data-cell-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 8px 10px 16px;
    margin-left: -16px;
    margin-right: -16px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    color: var(--text-primary);
    flex-shrink: 0;
    cursor: move;
    user-select: none;
    -webkit-user-select: none;
    position: static;
    box-sizing: border-box;
}
.admin-table-data-cell-modal-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-right: 8px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
}
.admin-table-data-cell-modal-x:hover {
    background: var(--bg-hover, #ebebeb);
    color: var(--text-primary, #333);
}
.admin-table-data-cell-modal-body {
    position: relative;
    padding: 12px 16px 16px;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.admin-table-data-cell-modal-loading-overlay {
    display: none;
    position: absolute;
    left: 16px;
    right: 16px;
    top: 12px;
    bottom: 16px;
    z-index: 2;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 4px;
    color: var(--text-secondary, #605e5c);
    font-size: 15px;
}
.admin-table-data-cell-modal-hourglass {
    display: flex;
    color: var(--primary-blue, #0067b8);
}
.admin-table-data-cell-modal-hourglass svg {
    animation: admin-paper-spin 1.1s linear infinite;
}
.admin-table-data-cell-modal-textarea {
    flex: 1;
    min-height: 200px;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    font-size: 13px;
    font-family: Consolas, "Liberation Mono", Menlo, "Microsoft YaHei", monospace;
    line-height: 1.5;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    resize: vertical;
    color: var(--text-primary);
    background: var(--bg-primary, #fff);
}
.admin-table-data-cell-modal-textarea:focus {
    outline: 2px solid #c8c8c8;
    outline-offset: 1px;
    border-color: #c0c0c0;
}
.admin-table-data-cell-modal-textarea:focus-visible {
    outline: 2px solid #c8c8c8;
    outline-offset: 1px;
}
.admin-table-data-cell-modal-textarea::selection {
    background: #d8d8d8;
    color: var(--text-primary, #262626);
}
.admin-table-data-cell-modal-textarea::-moz-selection {
    background: #d8d8d8;
    color: var(--text-primary, #262626);
}
.admin-table-data-cell-modal-note {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-secondary, #666);
}
.admin-table-data-pager {
    padding: 12px 16px;
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 12px;
}
.admin-table-data-pager .admin-pager-first,
.admin-table-data-pager .admin-pager-prev,
.admin-table-data-pager .admin-pager-next,
.admin-table-data-pager .admin-pager-last {
    cursor: pointer;
    margin: 0 4px;
    color: var(--link-color, #1a73e8);
}
.admin-table-data-pager .admin-pager-first:hover,
.admin-table-data-pager .admin-pager-prev:hover,
.admin-table-data-pager .admin-pager-next:hover,
.admin-table-data-pager .admin-pager-last:hover {
    text-decoration: underline;
}
.admin-table-data-pager .admin-pager-input {
    width: 48px;
    margin: 0 4px;
    padding: 2px 6px;
    font-size: 13px;
    text-align: center;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
}
.admin-table-data-pager .admin-pager-go {
    margin-left: 6px;
    padding: 2px 10px;
    font-size: 12px;
    cursor: pointer;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    background: var(--bg-secondary, #f5f5f5);
    color: var(--text-primary, #333);
}
.admin-table-data-pager .admin-pager-go:hover {
    background: var(--bg-hover, #eee);
}
/* 广告管理 */
.admin-ad-toolbar { display: flex; gap: 12px; margin-bottom: 16px; align-items: center; }
.admin-ad-toolbar select { padding: 6px 10px; border: 1px solid var(--border-color); border-radius: 4px; }
.admin-ad-btn-refresh { padding: 6px 12px; background: var(--primary-blue); color: #fff; border: none; border-radius: 4px; cursor: pointer; }
.admin-ad-btn-refresh:hover { background: var(--primary-blue-hover); }
/* 广告位/公司审核/广告审核表格：表头全部左对齐 */
.admin-ad-slot-table th,
.admin-ad-apply-table th,
.admin-ad-item-table th { text-align: left !important; }
.admin-ad-slot-table th:first-child,
.admin-ad-slot-table td:first-child,
.admin-ad-slot-table th:nth-child(5),
.admin-ad-slot-table th:nth-child(6),
.admin-ad-slot-table th:nth-child(7),
.admin-ad-slot-table th:nth-child(8),
.admin-ad-apply-table th:first-child,
.admin-ad-apply-table td:first-child,
.admin-ad-item-table th:first-child,
.admin-ad-item-table td:first-child { text-align: left !important; }
/* 广告位表格：复用软件产品 admin-level-table 风格 */
.admin-ad-slot-table { width: 100%; min-width: 900px; }
/* 公司审核表格：与广告位一致，用户昵称/姓名/联系人列最小 30px */
.admin-ad-apply-table { width: 100%; min-width: 900px; }
/* 广告审核表格：与公司审核一致，广告位列增加80px */
.admin-ad-item-table { width: 100%; min-width: 800px; }
.admin-ad-item-table th:nth-child(1),
.admin-ad-item-table td:nth-child(1) { min-width: 100px; width: 100px; }
.admin-ad-item-table th:nth-child(2),
.admin-ad-item-table td:nth-child(2) { min-width: 140px; width: 140px; }
.admin-ad-item-table th:nth-child(3),
.admin-ad-item-table td:nth-child(3) { min-width: 110px; width: 110px; }
.admin-ad-item-table th:nth-child(4),
.admin-ad-item-table td:nth-child(4) { min-width: 130px; width: 130px; }
.admin-ad-item-table th:nth-child(5),
.admin-ad-item-table td:nth-child(5) { min-width: 200px; width: 200px; text-align: left !important; }
.admin-ad-item-table th:nth-child(6),
.admin-ad-item-table td:nth-child(6) { min-width: 230px; width: 230px; text-align: left !important; }
.admin-ad-item-table th:nth-child(7),
.admin-ad-item-table td:nth-child(7) { min-width: 80px; width: 80px; }
.admin-ad-item-table th:nth-child(8),
.admin-ad-item-table td:nth-child(8) { min-width: 180px; width: 180px; text-align: left !important; }
.admin-ad-item-table th:nth-child(9),
.admin-ad-item-table td:nth-child(9) { min-width: 80px; width: 80px; text-align: center !important; }
.admin-ad-item-table th:nth-child(10),
.admin-ad-item-table td:nth-child(10) { min-width: 80px; width: 80px; text-align: center !important; }
.admin-ad-apply-table th:first-child,
.admin-ad-apply-table td:first-child { width: auto; min-width: 30px; text-align: left; }
.admin-ad-apply-table th:nth-child(2),
.admin-ad-apply-table td:nth-child(2),
.admin-ad-apply-table th:nth-child(7),
.admin-ad-apply-table td:nth-child(7) { min-width: 30px; }
.admin-ad-apply-thumb { background: none; }
.admin-ad-item-thumb { background: none; }
.admin-ad-slot-edit, .admin-ad-slot-delete, .admin-ad-slot-freeze, .admin-ad-audit-btn {
    color: var(--primary-blue);
    cursor: pointer;
    margin-right: 8px;
    font-size: 14px;
}
.admin-ad-slot-edit:hover, .admin-ad-slot-delete:hover, .admin-ad-slot-freeze:hover, .admin-ad-audit-btn:hover { text-decoration: underline; }
.admin-ad-loading-cell { color: var(--text-light); text-align: center; padding: 24px; }
.admin-ad-table-wrap { overflow-x: auto; }
.admin-ad-table { width: 100%; border-collapse: collapse; }
.admin-ad-table th, .admin-ad-table td { padding: 8px 12px; border: 1px solid var(--border-color); text-align: left; font-size: 13px; }
.admin-ad-table th { background: var(--bg-secondary); }
.admin-ad-status.pending { color: #d46b08; }
.admin-ad-status.approved { color: #107c10; }
.admin-ad-status.rejected { color: #d13438; }
.admin-ad-status-reason-click { cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
/* 公司审核 - 营业执照/授权书预览弹框（与 ad-console 一致） */
.admin-ad-img-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; }
.admin-ad-img-modal-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); }
.admin-ad-img-modal-inner { --am-pad-x: 20px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); max-width: 100%; max-height: 100%; overflow: auto; background: #fff; border-radius: 8px; padding: 0 var(--am-pad-x) 20px; box-shadow: 0 4px 24px rgba(0,0,0,0.3); }
.admin-ad-img-modal-header { position: static; display: flex; flex-shrink: 0; align-items: center; justify-content: flex-end; margin-left: -20px; margin-right: -20px; padding: 18px 12px 10px 20px; background: #fff; cursor: move; z-index: 1; border-bottom: 1px solid #eee; user-select: none; box-sizing: border-box; }
.admin-ad-img-modal-inner > .admin-ad-img-modal-header:empty { min-height: 48px; border-bottom: 1px solid #eee; }
.admin-ad-img-modal-drag-hint { font-size: 12px; color: var(--text-light); }
.admin-ad-img-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary);
}
.admin-ad-img-modal-body { min-height: 120px; min-width: 200px; padding: 20px; }
.admin-ad-img-modal-loading { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px; }
.admin-ad-img-modal-loading-text { font-size: 14px; color: var(--text-secondary); }
.admin-ad-img-modal-progress-wrap { width: 200px; height: 6px; background: var(--bg-secondary); border-radius: 3px; overflow: hidden; }
.admin-ad-img-modal-progress-bar { height: 100%; width: 0%; background: var(--primary-blue); border-radius: 3px; transition: width 0.2s ease; }
.admin-ad-img-modal-progress-bar.admin-ad-img-modal-progress-indeterminate { width: 30% !important; animation: admin-ad-img-progress-indeterminate 1.2s ease-in-out infinite; }
@keyframes admin-ad-img-progress-indeterminate { 0% { transform: translateX(-100%); } 100% { transform: translateX(400%); } }
.admin-ad-img-modal-progress-pct { font-size: 12px; color: var(--text-light); }
.admin-ad-img-modal-img { display: block; }
/* 驳回理由弹窗：标题布局与 ad-console 一致 */
.admin-ad-reason-modal .admin-ad-img-modal-inner { min-width: 400px; }
.admin-ad-reason-modal .admin-ad-img-modal-header { justify-content: flex-start; }
.admin-ad-reason-modal-title { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: 0.04em; color: var(--text-primary); }
.admin-ad-reason-text { margin: 0; font-size: 14px; line-height: 1.6; color: var(--text-secondary); white-space: pre-wrap; word-break: break-word; }
.admin-ad-audit-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 10000; align-items: center; justify-content: center; font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-size: 14px; }
.admin-ad-audit-modal .admin-ad-audit-inner { --am-pad-x: 24px; background: #fff; padding: 0 var(--am-pad-x) 24px; border-radius: 8px; min-width: 420px; position: relative; }
.admin-ad-audit-btns { justify-content: flex-end; gap: 12px; }
.admin-ad-audit-btns .admin-ad-audit-ok { margin-right: 0; }
.admin-ad-audit-btns .admin-ad-audit-ok { min-width: 96px; }
.admin-ad-audit-ok[data-status="2"] { background: #107c10; }
.admin-ad-audit-ok[data-status="2"]:hover { background: #0d6b0d; }
.admin-ad-audit-ok[data-status="1"] { background: #d13438; }
.admin-ad-audit-ok[data-status="1"]:hover { background: #b02d30; }
/* 广告位弹窗复用 admin-level-modal 规范，见 NEO网站页面与响应式设计规范.md 6.1.1 */
.admin-ad-slot-modal .admin-level-field-label { width: 100px; min-width: 100px; margin-right: 12px; padding-top: 8px; font-size: 14px; color: var(--text-secondary); }
.admin-ad-slot-modal .admin-level-field-content select { width: 100%; padding: 8px 10px; font-size: 14px; border: 1px solid var(--border-color); border-radius: 2px; font-family: inherit; box-sizing: border-box; }
.admin-ad-audit-reason { width: 100%; min-height: 80px; padding: 8px; margin: 12px 0; box-sizing: border-box; font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-size: 16px; }
.admin-ad-audit-inner button { margin-right: 8px; padding: 8px 16px; cursor: pointer; border-radius: 4px; }
.admin-ad-audit-ok { background: var(--primary-blue); color: #fff; border: none; }
.admin-ad-audit-cancel { background: #f0f0f0; border: 1px solid #ddd; }
.admin-ad-pager { margin-top: 12px; font-size: 13px; }
.admin-ad-page-prev, .admin-ad-page-next { margin: 0 4px; padding: 4px 8px; cursor: pointer; }
.admin-ad-page-jump-input { width: 48px; margin: 0 4px; padding: 4px 6px; text-align: center; border: 1px solid var(--border-color); border-radius: 4px; font-size: 13px; }
.admin-ad-page-jump-btn { margin-left: 4px; padding: 4px 10px; cursor: pointer; font-size: 13px; }

/* 文档产品列表：百分列宽随容器变宽；单元格单行，超出 … */
.admin-level-table.admin-paper-table col.admin-paper-list-col-id {
    width: 60px;
}
.admin-paper-table.admin-neo-sort-table thead th:first-child,
.admin-paper-table.admin-neo-sort-table tbody td:first-child {
    width: 60px !important;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.admin-paper-table.admin-neo-sort-table thead th:first-child .admin-doc-task-sort-head-inner {
    min-width: 0;
    justify-content: center;
    gap: 0;
}
.admin-paper-table.admin-neo-sort-table thead th:first-child .admin-doc-task-sort-arrows {
    transform: scale(0.7);
    transform-origin: center center;
    flex-shrink: 1;
}
.admin-paper-table.admin-neo-sort-table thead th:first-child .admin-doc-task-sort-label {
    font-size: 11px;
    flex-shrink: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: clip;
}
.admin-paper-table {
    width: 100%;
    font-size: 13px;
}
.admin-paper-table thead th { text-align: center; white-space: nowrap; }
.admin-paper-table th,
.admin-paper-table td { padding: 6px 8px; vertical-align: middle; }
.admin-paper-table td {
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-paper-table thead th:first-child {
    width: 60px;
    padding: var(--admin-list-thead-pad-block) 0;
    text-align: center;
    box-sizing: border-box;
    line-height: var(--admin-list-thead-line-height);
    vertical-align: middle;
}
.admin-paper-table tbody td:first-child {
    width: 60px;
    padding: 6px 0;
    text-align: center;
    box-sizing: border-box;
}
.admin-body .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > thead > tr > th:first-child,
.admin-body .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > tbody > tr > td:first-child {
    width: 60px !important;
    box-sizing: border-box;
}
#pane-author-club-think .admin-level-table.admin-paper-table col.admin-paper-list-col-id {
    width: 5%;
}
#pane-author-club-think .admin-paper-table.admin-neo-sort-table thead th:first-child,
#pane-author-club-think .admin-paper-table.admin-neo-sort-table tbody td:first-child {
    width: 5% !important;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
#pane-author-club-think .admin-paper-table thead th:first-child {
    width: 5%;
    padding: var(--admin-list-thead-pad-block) 0;
    text-align: center;
    box-sizing: border-box;
    line-height: var(--admin-list-thead-line-height);
    vertical-align: middle;
}
#pane-author-club-think .admin-paper-table tbody td:first-child {
    width: 5%;
    padding: 6px 0;
    text-align: center;
    box-sizing: border-box;
}
.admin-body #pane-author-club-think .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > thead > tr > th:first-child,
.admin-body #pane-author-club-think .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > tbody > tr > td:first-child {
    width: 5% !important;
    box-sizing: border-box;
}
#pane-author-club-think .admin-paper-table th:nth-child(3),
#pane-author-club-think .admin-paper-table td:nth-child(3) {
    width: calc(19% + 30px);
    box-sizing: border-box;
}
.admin-paper-table th:nth-child(2),
.admin-paper-table td:nth-child(2) {
    width: 7.8%;
    padding: 6px 8px;
    text-align: center;
}
.admin-paper-table th:nth-child(3),
.admin-paper-table td:nth-child(3) { width: 19%; }
.admin-paper-table th:nth-child(4),
.admin-paper-table td:nth-child(4) {
    width: 6.48%;
    text-align: center !important;
}
.admin-paper-table th:nth-child(5),
.admin-paper-table td:nth-child(5) {
    width: 9%;
    text-align: center !important;
}
.admin-paper-table td:nth-child(4),
.admin-paper-table td:nth-child(5) {
    font-family: inherit !important;
    font-size: inherit;
    letter-spacing: normal;
    font-variant-numeric: normal;
}
.admin-paper-table th:nth-child(6),
.admin-paper-table td:nth-child(6) { width: 14.4%; }
.admin-paper-table th:nth-child(6) { text-align: center !important; }
.admin-paper-table th:nth-child(7),
.admin-paper-table td:nth-child(7) {
    width: 5%;
    text-align: center !important;
}
.admin-paper-table th:nth-child(8),
.admin-paper-table td:nth-child(8) {
    width: 6%;
    text-align: center !important;
}
.admin-paper-table th:nth-child(9),
.admin-paper-table td:nth-child(9) {
    width: 4%;
    text-align: center !important;
}
.admin-paper-table th:nth-child(10),
.admin-paper-table td:nth-child(10) {
    width: 5.67%;
    text-align: center !important;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}
.admin-paper-table th:nth-child(11),
.admin-paper-table td:nth-child(11) {
    width: 12.65%;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
/* 操作列：三链接单行、无格内滚动；宽度贴合内容，避免挤占题目/学科列 */
.admin-paper-table th:last-child,
.admin-paper-table td:last-child { padding-right: 12px; }
.admin-paper-table th:nth-child(8),
.admin-paper-table td:nth-child(8) { text-align: center !important; }
.admin-paper-table th.admin-paper-col-price,
.admin-paper-table td.admin-paper-col-price { text-align: center !important; }
.admin-paper-table td.admin-paper-status-on-shelf { color: #107C10; }
.admin-paper-table td.admin-paper-status-off-shelf { color: #F7630C; }
.admin-paper-table td.admin-paper-status-deleted-soft { color: #888; }
.admin-paper-table td.admin-paper-status-force-off-shelf { color: #A4262C; }
.admin-product-table td.admin-product-status-off-shelf { color: #F7630C; }
@media (min-width: 768px) and (max-width: 1366px) {
    .admin-body .admin-level-table-wrap > .admin-level-table.admin-paper-table {
        min-width: 1650px;
    }
    .admin-paper-table th:first-child,
    .admin-paper-table td:first-child {
        width: 60px;
        box-sizing: border-box;
    }
    .admin-body .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > thead > tr > th:first-child,
    .admin-body .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > tbody > tr > td:first-child {
        width: 60px !important;
        box-sizing: border-box;
    }
    #pane-author-club-think .admin-paper-table th:first-child,
    #pane-author-club-think .admin-paper-table td:first-child {
        width: 5%;
        box-sizing: border-box;
    }
    .admin-body #pane-author-club-think .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > thead > tr > th:first-child,
    .admin-body #pane-author-club-think .admin-paper > .admin-level-table-wrap > .admin-level-table.admin-paper-table > tbody > tr > td:first-child {
        width: 5% !important;
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(2),
    .admin-paper-table td:nth-child(2) {
        width: calc(7.8% + 80px);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(3),
    .admin-paper-table td:nth-child(3) {
        width: calc(30.4% - 60px);
        box-sizing: border-box;
    }
    #pane-author-club-think .admin-paper-table th:nth-child(3),
    #pane-author-club-think .admin-paper-table td:nth-child(3) {
        width: calc(30.4% - 5%);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(5),
    .admin-paper-table td:nth-child(5) {
        width: calc(9% + 30px);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(7),
    .admin-paper-table td:nth-child(7) {
        width: calc(5% + 30px);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(8),
    .admin-paper-table td:nth-child(8) {
        width: calc(6% + 30px);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(9),
    .admin-paper-table td:nth-child(9) {
        width: calc(4% + 30px);
        box-sizing: border-box;
    }
    .admin-paper-table th:nth-child(11),
    .admin-paper-table td:nth-child(11) {
        width: calc(10.92% + 250px);
        box-sizing: border-box;
    }
}
.admin-paper-list-title {
    cursor: pointer;
    color: var(--primary-blue);
}
.admin-paper-list-title:hover { text-decoration: underline; }

/* 阅读版弹框已移至 neo_markdown.js / neo_markdown.css，管理端与用户端共用 */

/* 文档产品 Paper 弹框：上标题 + 下业务区（左目录 | 中内容 | 右操作），符合 NEO 规范 */
.admin-paper-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    align-items: stretch;
    justify-content: stretch;
    font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 13px;
}
.admin-paper-modal.admin-paper-modal-open { display: flex; }
.admin-paper-modal-overlay { position: absolute; inset: 0; }
.admin-paper-modal-inner {
    --am-pad-x: 24px;
    position: relative;
    z-index: 1;
    background: var(--bg-primary);
    border-radius: 4px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    box-shadow: var(--shadow-md);
}
.admin-paper-modal-inner > .admin-paper-modal-header {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
    padding: 18px 16px 10px 24px;
    margin: 0;
    border-bottom: 1px solid var(--border-color);
    border-radius: 4px 4px 0 0;
    background: #fafafa;
    box-sizing: border-box;
}
.admin-paper-modal-header .admin-level-modal-close {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    z-index: 10;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    margin: 0;
    padding: 0;
    line-height: 0;
    font-size: 0;
    border: none;
    background: transparent;
    color: var(--text-secondary, #666);
    cursor: pointer;
    border-radius: 50%;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-paper-modal-header .admin-paper-modal-title-mount {
    flex: none;
}
.admin-paper-modal-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    padding: 0;
    color: var(--text-primary);
    line-height: 1.25;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
}
/* 下：业务区（左目录 | 中内容 | 右操作），与弹框下边框留 20px */
.admin-paper-modal-body.admin-paper-modal-business {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    min-height: 0;
    margin-bottom: 20px;
}
/* 下左：neo_markdown 目录区挂载点 */
.admin-paper-modal-toc-mount {
    width: 270px;
    min-width: 270px;
    overflow-y: auto;
    border-right: 1px solid var(--border-color);
}
/* 下中：neo_markdown 内容区；min-width:0 参与 flex 分配；禁止横向滚动条，正文随列宽换行（管理端不与用户端同用 210mm×scale） */
.admin-paper-modal-content-mount {
    flex: 1;
    min-width: 0;
    overflow-x: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
}
/* 查询分阶段加载：底部「后续章节」提示条 + 百分比与进度条 */
.admin-paper-preview-subsequent-loading {
    display: none;
    flex-shrink: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px 16px 14px;
    font-size: 12px;
    color: var(--text-secondary, #605e5c);
    background: linear-gradient(180deg, #fafafa 0%, #f0f0f0 100%);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.admin-paper-preview-subsequent-loading-row1 {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 22px;
}
.admin-paper-preview-subsequent-loading-text {
    flex: 1;
    min-width: 0;
    letter-spacing: 0.01em;
}
.admin-paper-preview-subsequent-loading-progress {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: var(--primary-blue, #0067b8);
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(0, 103, 184, 0.08);
    border: 1px solid rgba(0, 103, 184, 0.12);
}
.admin-paper-preview-subsequent-loading-track {
    position: relative;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.07) 0%, rgba(0, 0, 0, 0.04) 100%);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08), 0 1px 0 rgba(255, 255, 255, 0.6);
    overflow: hidden;
}
.admin-paper-preview-subsequent-loading-fill {
    position: relative;
    height: 100%;
    width: 0%;
    min-width: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #005a9e 0%, #0078d4 42%, #2b9de8 100%);
    box-shadow: 0 0 12px rgba(0, 120, 212, 0.35), 0 1px 0 rgba(255, 255, 255, 0.25) inset;
    transition: width 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.admin-paper-preview-subsequent-loading-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(255, 255, 255, 0.35) 45%,
        rgba(255, 255, 255, 0.12) 55%,
        transparent 100%
    );
    background-size: 200% 100%;
    animation: neo-paper-progress-gloss 2.2s ease-in-out infinite;
    pointer-events: none;
}
@keyframes neo-paper-progress-gloss {
    0%,
    100% {
        background-position: 130% 0;
    }
    50% {
        background-position: -30% 0;
    }
}
@media (max-width: 1024px) {
    .admin-body .admin-product-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-product-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-order-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-orderpre-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-orderpre-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-author-manage .admin-level-table-wrap,
    .admin-body .admin-paper > .admin-level-table-wrap,
    .admin-body .admin-level > .admin-level-table-wrap,
    .admin-body .admin-doc-task > .admin-level-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-app > .admin-level-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-stl-channel > .admin-level-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-level-table-wrap > .admin-level-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-stl-channel > .admin-level-table-wrap > .admin-level-table.admin-stl-channel-table {
        min-width: var(--admin-table-min-scroll-width);
        max-width: none;
    }
    .admin-body .admin-app > .admin-level-table-wrap > .admin-level-table.admin-app-table {
        min-width: var(--admin-table-min-scroll-width);
        max-width: none;
    }
    .admin-body .admin-table-data-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-permission-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-ad-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-paper-static-publish-table {
        min-width: var(--admin-table-min-scroll-width);
    }
    .admin-body .admin-user-auth-table-wrap,
    .admin-body .admin-user-role-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-user-auth-table-wrap {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .admin-body .admin-user-auth-table {
        width: max-content;
        min-width: var(--admin-table-min-scroll-width);
        max-width: none;
        table-layout: auto;
    }
    .admin-body .admin-user-role-table-wrap {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .admin-body .admin-user-role-table.admin-neo-sort-table {
        width: max-content;
        min-width: var(--admin-table-min-scroll-width);
        max-width: none;
        table-layout: auto;
    }
    .admin-body .admin-level-table-wrap {
        -webkit-overflow-scrolling: touch;
    }
    .admin-body .admin-doc-task > .admin-level-table-wrap {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        padding-left: 0;
        padding-right: 0;
        margin-left: 0;
        margin-right: 0;
    }
}
@media (max-width: 767px) {
    .admin-body #pane-author-club-think .admin-level-table-wrap > .admin-level-table.admin-paper-table {
        min-width: 1320px;
    }
    .admin-body .admin-doc-task .admin-level-toolbar.admin-doc-task-toolbar {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        align-items: center;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-btn-new {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-refresh {
        grid-column: 2;
        grid-row: 1;
        justify-self: start;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-btn-import {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-btn-batch-del {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-q {
        grid-column: 1;
        grid-row: 3;
        width: calc(100% + 20px);
        max-width: calc(100% + 20px);
        min-width: 0;
        box-sizing: border-box;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-search {
        grid-column: 2;
        grid-row: 3;
        justify-self: end;
    }
    .admin-body .admin-doc-task-toolbar .admin-doc-task-cat-filter {
        grid-column: 1 / -1;
        grid-row: 4;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        white-space: nowrap;
    }
    .admin-body .admin-doc-task-toolbar .admin-level-btn-add,
    .admin-body .admin-doc-task-toolbar .admin-level-modal-ok.admin-doc-task-search,
    .admin-body .admin-doc-task-toolbar .admin-level-btn-refresh {
        white-space: nowrap;
    }
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar {
        flex-wrap: wrap;
        align-items: center;
        align-content: flex-start;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        row-gap: 10px;
        column-gap: 10px;
    }
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar .admin-paper-btn-static-publish {
        margin-left: 0;
    }
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar .admin-level-btn-add,
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar .admin-level-btn-refresh,
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar .admin-paper-btn-static-publish {
        flex-shrink: 0;
        white-space: nowrap;
    }
    .admin-body #pane-author-club-think .admin-paper > .admin-level-toolbar .admin-paper-status-filter {
        flex-shrink: 0;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
}
.admin-order .admin-order-table {
    min-width: 1300px;
    width: 100%;
    box-sizing: border-box;
}
.admin-order .admin-order-table th:nth-child(5),
.admin-order .admin-order-table td:nth-child(5) {
    width: calc(20.03% + 50px);
    min-width: calc(20.03% + 50px);
    max-width: none;
    box-sizing: border-box;
}
.admin-order .admin-order-table th:nth-child(6),
.admin-order .admin-order-table td:nth-child(6) {
    width: calc(16.53% + 50px);
    min-width: calc(16.53% + 50px);
    max-width: none;
    box-sizing: border-box;
}
@media (min-width: 768px) and (max-width: 1366px) {
    .admin-order .admin-order-table {
        min-width: 1350px;
    }
    .admin-order .admin-order-table th:nth-child(6),
    .admin-order .admin-order-table td:nth-child(6) {
        width: calc(16.53% + 100px);
        min-width: calc(16.53% + 100px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .admin-paper-preview-subsequent-loading-fill::after {
        animation: none;
    }
    .admin-paper-preview-subsequent-loading-fill {
        transition-duration: 0.12s;
    }
}
.admin-paper-preview-subsequent-loading-spin {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(0, 103, 184, 0.2);
    border-top-color: var(--primary-blue, #0067b8);
    border-right-color: rgba(0, 103, 184, 0.45);
    border-radius: 50%;
    animation: admin-paper-spin 0.72s linear infinite;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9) inset;
}
@keyframes admin-paper-spin {
    to { transform: rotate(360deg); }
}
/* 列表页：查询加载时灰透明遮罩（弹窗在其之上 z-index 更高） */
.admin-paper-query-page-mask {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(120, 120, 120, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
}
.admin-paper-query-page-mask-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #323130;
    font-size: 15px;
    text-shadow: 0 0 6px #fff;
}
.admin-paper-query-hourglass {
    display: flex;
    color: var(--primary-blue, #0067b8);
}
.admin-paper-query-hourglass svg {
    animation: admin-paper-spin 1.1s linear infinite;
}
/* 弹窗内：等待首批章节正文 */
.admin-paper-preview-modal-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    gap: 14px;
    color: var(--text-secondary, #605e5c);
    font-size: 14px;
}
.admin-paper-preview-modal-loading-icon {
    display: flex;
    color: var(--primary-blue, #0067b8);
}
.admin-paper-preview-modal-loading-icon svg {
    animation: admin-paper-spin 1.1s linear infinite;
}
.admin-paper-modal-content-mount > .neo-md-content-area.admin-paper-md-content {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
}
.admin-paper-modal .neo-md-content-area {
    flex: 0 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: visible;
}
/* 管理端弹窗内正文：字号/字体见 neo_markdown.css（与左侧目录二级同大，标题雅黑、正文宋体） */
.admin-paper-modal .neo-md-content-area.admin-paper-md-content {
    min-height: 200px;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body {
    line-height: 1.65;
    word-break: break-word;
    overflow-wrap: anywhere;
}
/*
 * 文档弹窗中间 Markdown 字体：必须用具体 font-family + !important。
 * 若仅用 var(--neo-md-*)，变量未继承到 .neo-md-content-body 时整行声明无效，会回落为 .admin-paper-modal 的 Segoe/雅黑，看起来像「字体没改」。
 */
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content {
    font-family: SimSun, "宋体", "NSimSun", "STSong", "Songti SC", serif !important;
    font-size: 15px !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body {
    font-family: SimSun, "宋体", "NSimSun", "STSong", "Songti SC", serif !important;
    font-size: 15px !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-doc-title {
    font-family: "Microsoft YaHei", "微软雅黑", SimHei, "黑体", "STHeiti", "PingFang SC", sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h1 {
    font-family: "Microsoft YaHei", "微软雅黑", SimHei, "黑体", "STHeiti", "PingFang SC", sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h2 {
    font-family: "Microsoft YaHei", "微软雅黑", SimHei, "黑体", "STHeiti", "PingFang SC", sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h3 {
    font-family: "Microsoft YaHei", "微软雅黑", SimHei, "黑体", "STHeiti", "PingFang SC", sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h4,
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h5,
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h6 {
    font-family: SimSun, "宋体", "NSimSun", "STSong", "Songti SC", serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body p,
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body li,
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body td,
.admin-paper-modal .admin-paper-modal-body.neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body th {
    font-family: SimSun, "宋体", "NSimSun", "STSong", "Songti SC", serif !important;
    font-size: 15px !important;
}
/* 中间内容区右侧：收起/展开图标，可左右拖动调整中间与右侧区域宽度 */
.admin-paper-toggle-wrap {
    width: 24px;
    min-width: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-secondary, #f5f5f5);
    border-left: 1px solid var(--border-color);
    cursor: col-resize;
}
.admin-paper-toggle-content-btn {
    width: 24px;
    height: 40px;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
    font-size: 18px;
    line-height: 1;
    color: var(--text-secondary, #666);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
}
.admin-paper-toggle-content-btn:hover {
    color: var(--text-primary, #333);
    background: rgba(0, 0, 0, 0.06);
}
/* 收起时：隐藏目录与内容区，仅显示折叠条与操作区；右侧操作区占满剩余可用区域 */
.admin-paper-modal-body.admin-paper-content-collapsed .admin-paper-modal-toc-mount,
.admin-paper-modal-body.admin-paper-content-collapsed .admin-paper-modal-content-mount {
    display: none !important;
}
.admin-paper-modal-body.admin-paper-content-collapsed .admin-paper-ops-mount {
    flex: 1;
    min-width: 0;
    width: auto;
}
/* 下右：admin-paper 操作区域挂载点（可被拖动折叠条调整宽度；默认宽约减 30%；智库创研社等 +20%） */
.admin-paper-ops-mount {
    box-sizing: border-box;
    flex-shrink: 0;
    width: 353px;
    min-width: 319px;
    overflow-y: auto;
    padding: 16px;
    border-left: 1px solid var(--border-color);
    font-size: 13px;
    display: flex;
    flex-direction: column;
}
.admin-paper-ops-mount .admin-level-modal-btns {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: auto;
    padding-top: 1px;
    border-top: 1px solid var(--border-color);
    flex-shrink: 0;
    box-sizing: border-box;
}
.admin-paper-ops-mount .admin-level-modal-btns .admin-level-modal-ok {
    min-width: 160px;
}
/* 右侧操作区：三列布局（第一列必选*右对齐，第二列标题，第三列输入框） */
.admin-paper-ops-mount .admin-level-field {
    display: grid;
    grid-template-columns: 24px 100px 1fr;
    gap: 8px 12px;
    align-items: start;
    margin-bottom: 16px;
}
.admin-paper-ops-mount .admin-level-field-col1 {
    text-align: right;
    padding-top: 8px;
    line-height: 1.2;
}
.admin-paper-ops-mount .admin-level-required {
    color: #f00;
    font-size: 14px;
}
.admin-paper-ops-mount .admin-level-field-label {
    padding-top: 8px;
    line-height: 1.2;
    font-size: 14px;
    color: var(--text-primary, #262626);
}
.admin-paper-ops-mount .admin-level-field-content {
    min-width: 0;
    text-align: left;
    position: relative;
}
.admin-paper-ops-mount .admin-paper-preview-value {
    display: block;
    max-width: 100%;
    line-height: 1.7;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    color: #1f1f1f;
    font-weight: 500;
}
.admin-paper-ops-mount.admin-paper-ops-preview {
    box-sizing: border-box;
    /* 右侧略大于左侧：避免 overlay 滚动条与 flex 子项溢出时文字贴弹窗右缘 */
    padding: 16px 22px 16px 15px;
    /* 勿 hidden：父级 flex 裁切已消除后，hidden 仍可能裁掉末几个字；必要时横向微滚 */
    overflow-x: auto;
    scrollbar-gutter: stable;
}
/* 预览信息：flex 子项默认可按内容撑开超出父级，用包裹层 + min-width:0 把表格约束在内容区内 */
.admin-paper-ops-mount.admin-paper-ops-preview .admin-paper-preview-ops-body {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.admin-paper-ops-mount .admin-paper-preview-table {
    width: 100%;
    max-width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
}
.admin-paper-ops-mount .admin-paper-preview-table td {
    padding: 8px 0;
    vertical-align: top;
}
.admin-paper-ops-mount .admin-paper-preview-label {
    width: 108px;
    color: var(--text-secondary, #666);
    font-size: 14px;
    line-height: 1.7;
    padding-right: 12px;
    font-weight: 400;
}
.admin-paper-ops-mount .admin-paper-preview-value-cell {
    min-width: 0;
}
.admin-paper-ops-mount.admin-paper-ops-preview .admin-paper-preview-value-cell {
    padding-right: 12px;
}
.admin-paper-ops-mount .admin-paper-preview-multiline {
    white-space: pre-line;
}
/* 学科分类：选择按钮 + 下方展示 + 树形弹框 */
.admin-paper-ops-mount .admin-paper-subject-btn {
    padding: 6px 12px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    background: var(--bg-primary);
    color: var(--text-primary);
    cursor: pointer;
}
.admin-paper-ops-mount .admin-paper-subject-btn:hover {
    border-color: var(--primary-blue, #1890ff);
    color: var(--primary-blue, #1890ff);
}
.admin-paper-ops-mount .admin-paper-subject-display {
    margin-top: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
    min-height: 20px;
}
.admin-paper-ops-mount .admin-paper-subject-tree-popup {
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 4px;
    z-index: 1000;
    min-width: 330px;
    max-width: 450px;
    max-height: 520px;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    display: flex;
    flex-direction: column;
    padding: 20px 20px 20px 20px;
    box-sizing: border-box;
}
.admin-paper-ops-mount .admin-paper-subject-tree-body {
    overflow: auto;
    margin: 0;
    padding: 0;
    max-height: 400px;
}
.admin-paper-ops-mount .admin-paper-subject-tree-footer {
    margin: 0;
    margin-top: 12px;
    padding: 0;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
}
.admin-paper-ops-mount .admin-paper-subject-tree-node--level0 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 4px 0;
    gap: 4px 0;
}
.admin-paper-ops-mount .admin-paper-subject-tree-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-secondary);
    border-radius: 2px;
}
.admin-paper-ops-mount .admin-paper-subject-tree-toggle:hover {
    color: var(--text-primary);
    background: rgba(0, 0, 0, 0.06);
}
.admin-paper-ops-mount .admin-paper-subject-tree-chevron {
    flex-shrink: 0;
}
.admin-paper-ops-mount .admin-paper-subject-tree-node-label {
    font-size: 14px;
    font-weight: bold;
    flex: 1;
    min-width: 0;
}
.admin-paper-ops-mount .admin-paper-subject-tree-children {
    width: 100%;
    padding-left: 0;
}
.admin-paper-ops-mount .admin-paper-subject-tree-item {
    padding: 4px 0;
}
.admin-paper-ops-mount .admin-paper-subject-tree-item label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 14px;
}
.admin-paper-ops-mount .admin-paper-subject-tree-item--level0 label {
    font-weight: bold;
}
.admin-paper-ops-mount .admin-paper-subject-tree-item--level1 label {
    font-weight: normal;
}
.admin-paper-ops-mount .admin-paper-subject-tree-cancel,
.admin-paper-ops-mount .admin-paper-subject-tree-ok {
    padding: 6px 16px;
    font-size: 14px;
    border-radius: 2px;
    cursor: pointer;
}
.admin-paper-ops-mount .admin-paper-subject-tree-cancel {
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-paper-ops-mount .admin-paper-subject-tree-ok {
    border: none;
    background: var(--primary-blue, #1890ff);
    color: #fff;
}
.admin-paper-ops-mount .admin-level-field-content select,
.admin-paper-ops-mount .admin-level-field-content input[type="text"] {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-paper-ops-mount .admin-level-field-content textarea {
    width: 100%;
    min-height: 80px;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    font-family: inherit;
    box-sizing: border-box;
    background: var(--bg-primary);
    color: var(--text-primary);
    resize: vertical;
}
/* 封面图片：选择按钮 + 小图预览区 */
.admin-paper-ops-mount .admin-paper-cover-image-btn {
    display: inline-block;
    padding: 8px 16px;
    font-size: 14px;
    color: var(--text-secondary);
    background: #e8e8e8;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    cursor: pointer;
    font-family: inherit;
}
.admin-paper-ops-mount .admin-paper-cover-image-btn:hover {
    background: #ddd;
    color: var(--text-primary);
}
.admin-paper-ops-mount .admin-paper-cover-svg-preview-wrap {
    margin-top: 8px;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb {
    position: relative;
    width: 80px;
    height: 80px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: var(--bg-secondary);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb:hover {
    border-color: var(--primary-blue);
    box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.25);
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb .admin-paper-cover-thumb-remove {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 24px;
    height: 24px;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1;
    background: transparent;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb:hover .admin-paper-cover-thumb-remove {
    display: flex;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb .admin-paper-cover-thumb-remove:hover {
    background: transparent;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb .admin-paper-cover-thumb-remove svg {
    width: 20px;
    height: 20px;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.admin-paper-ops-mount .admin-paper-cover-svg-thumb:empty::after {
    content: "预览";
    font-size: 12px;
    color: var(--text-secondary);
}
/* 封面图片大图预览遮罩 */
.admin-paper-cover-svg-large-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 10010;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.admin-paper-cover-svg-large-overlay .admin-paper-cover-svg-large-inner {
    max-width: 90vw;
    max-height: 90vh;
    padding: 16px;
    background: var(--bg-primary);
    border-radius: 8px;
    cursor: default;
}
.admin-paper-cover-svg-large-overlay .admin-paper-cover-svg-large-inner svg,
.admin-paper-cover-svg-large-overlay .admin-paper-cover-svg-large-inner img {
    max-width: 85vw;
    max-height: 85vh;
    display: block;
}
/* 文档产品：仅限会员 + 会员级别（未勾选仅限会员时整块置灰不可点） */
.admin-paper-field-members-only .admin-paper-members-only-wrap {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
}
.admin-paper-level-list-wrap.admin-paper-level-list-disabled {
    opacity: 0.55;
    pointer-events: none;
}
/* 会员级别：复用软件产品允许的会员等级多列样式 */
.admin-paper-ops-mount .admin-paper-level-list.admin-app-level-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 0;
}
.admin-paper-ops-mount .admin-app-level-col-items label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    cursor: pointer;
}
.admin-paper-ops-mount .admin-app-level-col-items input[type="checkbox"],
.admin-paper-ops-mount .admin-app-level-col-items input[type="radio"] {
    margin-right: 8px;
}
/* 试读章节：宽度不够时一列，宽度够时多列 */
.admin-paper-trial-chapters {
    max-height: 120px;
    overflow-y: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    align-content: flex-start;
}
.admin-paper-trial-chapters label {
    display: flex;
    align-items: center;
    min-width: 120px;
    max-width: 100%;
    cursor: pointer;
    font-size: 14px;
}

/* 学科分类 / 标签：统一芯片行（灰底圆角、悬停X、右侧+） */
.admin-paper-ops-mount .admin-paper-chips-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    min-height: 36px;
}
.admin-paper-ops-mount .admin-paper-chips-slot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.admin-paper-ops-mount .admin-paper-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px 6px 12px;
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-secondary, #f5f5f5);
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 6px;
    line-height: 1.3;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-paper-ops-mount .admin-paper-chip:hover {
    border-color: var(--primary-blue, #1890ff);
    box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.25);
}
.admin-paper-ops-mount .admin-paper-chip .admin-paper-chip-remove {
    display: none;
    position: absolute;
    top: -5px;
    right: -5px;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    z-index: 1;
}
.admin-paper-ops-mount .admin-paper-chip:hover .admin-paper-chip-remove {
    display: flex;
}
.admin-paper-ops-mount .admin-paper-chip .admin-paper-chip-remove:hover {
    background: transparent;
}
.admin-paper-ops-mount .admin-paper-chip .admin-paper-chip-remove svg {
    width: 20px;
    height: 20px;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.admin-paper-ops-mount .admin-paper-add-btn {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px dashed var(--border-color);
    border-radius: 6px;
    background: var(--bg-primary);
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-paper-ops-mount .admin-paper-add-btn:hover {
    border-color: var(--primary-blue, #1890ff);
    color: var(--primary-blue, #1890ff);
}
.admin-paper-ops-mount .admin-paper-add-btn svg {
    width: 20px;
    height: 20px;
}
/* 标签添加：输入浮层（上输入框，下确认/取消） */
.admin-paper-ops-mount .admin-paper-tag-input-popover {
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 4px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 20px 20px 20px 20px;
    box-sizing: border-box;
    min-width: 240px;
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-body {
    padding: 0;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-inner {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 10px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    outline: none;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-inner:focus {
    border-color: #a0a0a0;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    padding: 0;
    border-top: 1px solid var(--border-color);
    padding-top: 12px;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-ok,
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-cancel {
    padding: 6px 14px;
    font-size: 14px;
    border-radius: 4px;
    cursor: pointer;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-ok {
    border: none;
    background: var(--primary-blue, #1890ff);
    color: #fff;
}
.admin-paper-ops-mount .admin-paper-tag-input-popover .admin-paper-tag-input-cancel {
    border: 1px solid var(--border-color);
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-paper-ops-mount .admin-paper-tag-chips {
    position: relative;
}

/* 上传 MD 弹框：可拖动，NEO 规范，与软件产品弹框 X 对齐 */
.admin-paper-upload-step {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10002;
    align-items: center;
    justify-content: center;
    font-family: "Microsoft YaHei", 微软雅黑, "PingFang SC", sans-serif;
    font-size: 14px;
}
.admin-paper-upload-step.admin-paper-upload-open { display: flex; }
.admin-paper-upload-overlay { position: absolute; inset: 0; }

/* 新增文档：选中文件后的等待弹窗（上 SVG / 中 进度条两阶段 / 下 请稍候） */
.admin-paper-add-progress-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10002;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    font-family: "Microsoft YaHei", 微软雅黑, "PingFang SC", sans-serif;
    font-size: 18px;
}
.admin-paper-add-progress-overlay { position: absolute; inset: 0; }
.admin-paper-add-progress-inner {
    position: relative;
    background: var(--bg-primary);
    border-radius: 8px;
    padding: 38px 48px 29px;
    min-width: 484px;
    min-height: 220px;
    box-sizing: border-box;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.admin-paper-add-progress-top {
    display: flex;
    justify-content: center;
    margin-bottom: 28px;
    color: var(--text-secondary);
}
.admin-paper-add-progress-svg { color: #555; }
.admin-paper-add-progress-middle { margin-bottom: 24px; }
.admin-paper-add-progress-bar {
    display: flex;
    height: 16px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--border-color);
}
.admin-paper-add-progress-seg {
    flex: 1;
    background: var(--border-color);
    transition: background 0.2s ease;
}
.admin-paper-add-progress-seg.admin-paper-add-progress-done {
    background: #107C10;
}
.admin-paper-add-progress-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 17px;
    color: var(--text-secondary);
}
.admin-paper-add-progress-label { flex: 1; text-align: center; }
.admin-paper-add-progress-bottom {
    text-align: center;
    font-size: 17px;
    color: var(--text-secondary);
}

.admin-paper-upload-overlay { position: absolute; inset: 0; }
.admin-paper-upload-inner {
    --am-pad-x: 40px;
    position: relative;
    background: var(--bg-primary);
    border-radius: 4px;
    width: 1100px;
    max-width: 1100px;
    height: 600px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-md);
    padding: 0 var(--am-pad-x) 24px;
}
.admin-paper-upload-inner .admin-paper-upload-header {
    background: #fafafa;
    border-radius: 4px 4px 0 0;
    cursor: move;
    user-select: none;
}
.admin-paper-upload-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    padding: 0;
    color: var(--text-primary);
    line-height: 1.25;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
}
.admin-paper-upload-body {
    padding: 10px 0 5px 0;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.admin-paper-file-input { display: none; }
.admin-paper-upload-body .admin-paper-md-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    font-size: 16px;
    font-family: Consolas, "Courier New", monospace;
    border: 1px solid var(--border-color);
    border-radius: 2px;
    min-height: 200px;
    flex: 1;
    resize: vertical;
}
.admin-paper-upload-body .admin-paper-md-textarea:focus {
    outline: none;
    border-color: #b8b8b8;
}
.admin-paper-upload-inner .admin-level-modal-btns {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0;
    padding: 8px 0 16px 0;
    border-top: none;
    flex-shrink: 0;
}
.admin-paper-upload-inner .admin-level-modal-btns .admin-paper-upload-file-btn,
.admin-paper-upload-inner .admin-level-modal-btns .admin-paper-parse-btn {
    width: 110px;
    min-width: 110px;
    box-sizing: border-box;
    font-size: 14px;
}
.admin-paper-upload-inner .admin-level-modal-btns .admin-paper-upload-file-btn { margin-right: 0; }

/* ========== 仅「文档产品」弹窗（修改 + 列表解析预览）：表注/表格/代码字号等，正文与三级标题由 neo_markdown.css 统一 ========== */
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-figcaption {
    font-size: 11.75pt !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-table thead th {
    font-size: var(--neo-paper-modal-body-size, 15px) !important;
    text-align: center !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-table {
    width: 80% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: var(--neo-paper-modal-body-size, 15px) !important;
    font-family: SimSun, 宋体, NSimSun, STSong, serif;
}
/* 文档产品弹窗：伪代码 12px；换行避免出现整块横向滚动条 */
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-pre {
    font-size: 12px !important;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
    white-space: pre-wrap;
    word-break: break-all;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body img {
    max-width: 100%;
    height: auto;
}
/* 点击列表标题打开的阅读弹框：伪代码 12px */
.neo-md-read-popup .neo-md-read-flow .neo-md-pre {
    font-size: 12px !important;
}
.neo-md-read-popup .neo-md-read-flow .neo-md-read-chapter-block:last-child .neo-md-pre {
    font-size: 12px !important;
}

/* 会员等级 - 分类选择器模态框 */

/* ========== 天选创客 · 创客管理列表 ========== */
.admin-author-table {
    --admin-author-manage-thead-pad-block: 10px;
    --admin-author-manage-thead-pad-inline: 12px;
    --admin-author-manage-thead-line-height: 1.35;
}
.admin-author-toolbar {
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.admin-author-toolbar--notify {
    margin-left: 16px;
}
/* 消息管理：表头全选与首列行内复选框同一套尺寸（含 max，避免 th/td 上下文下渲染不一致） */
.admin-author-table--notify .admin-author-row-cb,
.admin-author-table--notify .admin-author-notify-master-cb {
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    max-width: 16px;
    max-height: 16px;
    margin: 0;
    margin-left: 0;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #0067b8;
    vertical-align: middle;
}
.admin-author-toolbar .admin-author-status-filter {
    padding: 6px 12px;
    font-size: 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-primary);
    color: var(--text-primary);
}
.admin-author-footer-pager {
    margin-top: 12px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.admin-author-footer-pager .admin-author-manage-pager {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.admin-author-pager-info {
    font-size: 13px;
    color: var(--text-secondary);
    margin-right: 4px;
}
.admin-author-page-prev,
.admin-author-page-next {
    padding: 5px 14px;
    font-size: 13px;
    border-radius: 4px;
}
.admin-author-table th,
.admin-author-table td {
    padding: var(--admin-author-manage-thead-pad-block) var(--admin-author-manage-thead-pad-inline);
    vertical-align: middle;
}
.admin-author-table th {
    white-space: nowrap;
}
/* 数据格：单行省略（表头保持不换行） */
.admin-author-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}
/* 消息管理首列：勿对 th-inner/row-cb 用 width:100%（会贴左或撑满格）；首列用 colgroup 固定 64px（与创客端消息通知一致） */
.admin-author-table--notify .admin-author-th-cb-inner {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    cursor: pointer;
}
/* 仅用表自身类名锚定，避免依赖外层 data-author-pane（与创客管理页结构一致即可命中） */
.admin-author-table.admin-author-table--notify {
    table-layout: fixed !important;
    width: 100% !important;
}
.admin-author-table.admin-author-table--notify col.admin-author-notify-col-cb {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
}
.admin-author-table.admin-author-table--notify th.admin-author-th-cb,
.admin-author-table.admin-author-table--notify td.admin-author-col-cb {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 6px 8px !important;
    white-space: nowrap !important;
}
.admin-author-table.admin-author-table--notify th.admin-author-th-cb {
    overflow: visible;
}
.admin-author-table.admin-author-table--notify td.admin-author-col-cb {
    overflow: hidden;
}
.admin-author-table.admin-author-table--notify input.admin-author-row-cb,
.admin-author-table.admin-author-table--notify input.admin-author-notify-master-cb {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #0067b8;
    vertical-align: middle;
}

.admin-author-table--manage th:nth-child(1),
.admin-author-table--manage td:nth-child(1) {
    width: 5%;
    text-align: center !important;
    font-weight: 600;
    color: var(--text-secondary);
}
.admin-author-table--manage th:nth-child(2),
.admin-author-table--manage td:nth-child(2) { width: 10%; }
.admin-author-table--manage th:nth-child(3),
.admin-author-table--manage td:nth-child(3) { width: 8%; }
.admin-author-table--manage th:nth-child(4),
.admin-author-table--manage td:nth-child(4),
.admin-author-table--manage th:nth-child(5),
.admin-author-table--manage td:nth-child(5) { width: 10%; }
.admin-author-table--manage th:nth-child(6),
.admin-author-table--manage td:nth-child(6),
.admin-author-table--manage th:nth-child(7),
.admin-author-table--manage td:nth-child(7) { width: 13%; }
.admin-author-table--manage th:nth-child(8),
.admin-author-table--manage td:nth-child(8) {
    width: 7%;
    text-align: center !important;
}
.admin-author-table--manage th:nth-child(9),
.admin-author-table--manage td:nth-child(9) { width: 11%; }
.admin-author-table--manage th:nth-child(10),
.admin-author-table--manage td:nth-child(10) {
    width: 13%;
    min-width: 7rem;
    text-align: center !important;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-author-table--manage td:nth-child(10) .admin-author-btn {
    margin: 0 4px;
    vertical-align: middle;
    white-space: nowrap;
}
/* ID 列：勿用 5px（与内容最小宽度冲突会破坏整表固定列宽分配，导致首列 64px 失效）；用百分比 + 最小宽度 */
.admin-author-table--notify th:nth-child(2),
.admin-author-table--notify td:nth-child(2) {
    width: 4.5%;
    min-width: 3rem;
    max-width: 5.5rem;
    box-sizing: border-box;
    text-align: center !important;
    vertical-align: middle !important;
    padding: 8px 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-author-table--notify th:nth-child(2) {
    font-weight: 600;
    color: var(--text-secondary);
}
.admin-author-table--notify td:nth-child(2) {
    font-weight: normal;
    color: var(--text-primary);
}
.admin-author-table--notify th:nth-child(3),
.admin-author-table--notify td:nth-child(3) { width: 11%; }
.admin-author-table--notify th:nth-child(4),
.admin-author-table--notify td:nth-child(4) { width: 8%; }
.admin-author-table--notify th:nth-child(5),
.admin-author-table--notify td:nth-child(5),
.admin-author-table--notify th:nth-child(6),
.admin-author-table--notify td:nth-child(6) { width: 10%; }
.admin-author-table--notify th:nth-child(7),
.admin-author-table--notify td:nth-child(7) { width: 13%; }
/* 第8列 +20%（21.4→25.68），从第9列减 4.28% 保持总百分比不变 */
.admin-author-table--notify th:nth-child(8),
.admin-author-table--notify td:nth-child(8) { width: 25.68%; }
.admin-author-table--notify th:nth-child(9),
.admin-author-table--notify td:nth-child(9) {
    width: 9.82%;
    min-width: 7rem;
    text-align: center !important;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
}
.admin-author-table--notify td:nth-child(9) .admin-author-btn {
    margin: 0 4px;
    vertical-align: middle;
    white-space: nowrap;
}
/* 首列 64px 最后再声明一次（级联末尾），避免与其它列宽规则组合时被浏览器重算覆盖 */
.admin-author-table.admin-author-table--notify col.admin-author-notify-col-cb {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
}
.admin-author-table.admin-author-table--notify th.admin-author-th-cb,
.admin-author-table.admin-author-table--notify td.admin-author-col-cb {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
}
.admin-author-col-time { font-size: 12px; color: var(--text-secondary); }
.admin-author-col-status { text-align: center !important; }
.admin-author-col-remark { font-size: 12px; line-height: 1.4; }
.admin-author-cell-text,
.admin-author-text-join,
.admin-author-remark-cell {
    display: inline;
    color: var(--text-primary);
}
.admin-author-col-actions { vertical-align: middle !important; }
/* 驳回弹窗（复用 admin-level-modal） */
.admin-author-reject-modal .admin-author-reject-modal-inner {
    --am-pad-x: 28px;
    max-width: 520px;
    width: 92%;
    padding: 0 var(--am-pad-x) 24px;
}
.admin-author-reject-modal .admin-level-modal-header {
    margin-bottom: 16px;
    cursor: default;
}
.admin-author-reject-tip {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 0 12px;
    line-height: 1.55;
}
.admin-author-reject-textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 132px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.5;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    resize: vertical;
    font-family: inherit;
    color: var(--text-primary);
    background: var(--bg-primary);
}
.admin-author-reject-textarea:focus {
    outline: none;
    border-color: var(--primary-blue, #0067b8);
    box-shadow: 0 0 0 1px rgba(0, 103, 184, 0.2);
}
.admin-author-reject-count {
    font-size: 12px;
    color: var(--text-secondary);
    text-align: right;
    margin-top: 6px;
}
.admin-author-reject-modal-inner .admin-level-modal-btns {
    margin-top: 18px;
    justify-content: flex-end;
}
.admin-author-empty,
.admin-author-empty-row,
.admin-author-op-muted {
    color: var(--text-secondary);
}
.admin-author-loading,
.admin-author-error {
    text-align: center;
    padding: 24px !important;
    color: var(--text-secondary);
}
.admin-author-error { color: #c42b1c; }
.admin-author-status {
    display: inline-block;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 4px;
}
.admin-author-status--pending {
    background: #fff7e6;
    color: #ad6800;
    border: 1px solid #ffd591;
}
.admin-author-status--ok {
    background: #f6ffed;
    color: #237804;
    border: 1px solid #b7eb8f;
}
.admin-author-status--reject {
    background: #fff2f0;
    color: #a8071a;
    border: 1px solid #ffccc7;
}
.admin-author-btn {
    margin: 0 4px;
    padding: 6px 16px;
    font-size: 14px;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid transparent;
}
.admin-author-btn-pass {
    background: var(--primary-blue, #0067b8);
    color: #fff;
    border-color: var(--primary-blue, #0067b8);
}
.admin-author-btn-pass:hover {
    filter: brightness(1.05);
}
.admin-author-btn-reject {
    background: var(--bg-primary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
.admin-author-btn-reject:hover {
    background: var(--bg-secondary);
}
.admin-author-btn-msg {
    background: #fff;
    color: var(--primary-blue, #0067b8);
    border: 1px solid var(--primary-blue, #0067b8);
    margin-right: 6px;
}
.admin-author-btn-msg:hover {
    background: rgba(0, 103, 184, 0.08);
}
.admin-author-notify-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10050;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
}
.admin-author-notify-modal--open {
    display: flex;
}
.admin-author-notify-card {
    --am-pad-x: 22px;
    position: relative;
    width: 100%;
    max-width: 820px;
    max-height: min(90vh, 720px);
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #fafcff 0%, #ffffff 28%);
    border-radius: 12px;
    box-shadow: 0 24px 48px rgba(0, 40, 80, 0.18), 0 0 0 1px rgba(0, 103, 184, 0.08);
    overflow: hidden;
}
.admin-author-notify-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 14px 10px 22px;
    border-bottom: 1px solid rgba(0, 103, 184, 0.12);
    background: linear-gradient(90deg, rgba(0, 103, 184, 0.07), transparent);
    position: static;
    box-sizing: border-box;
}
.admin-author-notify-card-title {
    flex: 1;
    min-width: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text-primary, #1a1a1a);
    letter-spacing: 0.04em;
}
.admin-author-notify-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: var(--text-primary, #262626);
}
.admin-author-notify-card-body {
    padding: 16px 22px 8px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}
.admin-author-notify-recipient {
    font-size: 13px;
    color: var(--text-secondary, #505050);
    margin-bottom: 12px;
    line-height: 1.5;
}
.admin-author-notify-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary, #262626);
    margin-bottom: 8px;
}
.admin-author-notify-textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 160px;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.55;
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 8px;
    resize: vertical;
    font-family: inherit;
    color: var(--text-primary, #262626);
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-author-notify-textarea:focus {
    outline: none;
    border-color: var(--primary-blue, #0067b8);
    box-shadow: 0 0 0 3px rgba(0, 103, 184, 0.15);
}
.admin-author-notify-counter {
    font-size: 12px;
    color: var(--text-secondary, #737373);
    text-align: right;
    margin-top: 8px;
}
.admin-author-notify-card-foot {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 22px 20px;
    border-top: 1px solid var(--border-color, #e8e8e8);
    background: #fafafa;
}

/* 微信服务号菜单查询：JSON 结果弹窗（admin.js showWxoapResultModal） */
.admin-wxoap-json-modal {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.45);
}
.admin-wxoap-json-modal-panel {
    --am-pad-x: 16px;
    position: relative;
    width: min(920px, 100%);
    max-height: min(88vh, 900px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    overflow: hidden;
}
.admin-wxoap-json-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 8px 10px 16px;
    border-bottom: 1px solid var(--border-color, #e8e8e8);
    background: #fafafa;
    flex-shrink: 0;
    position: static;
    box-sizing: border-box;
}
.admin-wxoap-json-modal-hint {
    margin: 0;
    padding: 10px 16px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary, #5c5c5c);
    background: #fffbeb;
    border-bottom: 1px solid #f5e6b3;
    white-space: pre-wrap;
    word-break: break-word;
    flex-shrink: 0;
}
.admin-wxoap-json-modal-title {
    flex: 1;
    min-width: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: var(--text-primary, #262626);
    margin: 0;
    padding-right: 8px;
}
.admin-wxoap-json-modal-close {
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-secondary, #737373);
    border-radius: 50%;
}
.admin-wxoap-json-modal-close:hover {
    background: #eee;
    color: var(--text-primary, #262626);
}
.admin-wxoap-json-modal-pre {
    margin: 0;
    padding: 14px 16px;
    flex: 1;
    min-height: 120px;
    max-height: 60vh;
    overflow: auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12px;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
    color: #1a1a1a;
    background: #fff;
    border: none;
}
.admin-wxoap-json-modal-foot {
    flex-shrink: 0;
    padding: 12px 16px 16px;
    border-top: 1px solid var(--border-color, #e8e8e8);
    display: flex;
    justify-content: flex-end;
    background: #fafafa;
}
.admin-wxoap-json-modal-btn {
    padding: 8px 18px;
    font-size: 14px;
    border-radius: 4px;
    border: 1px solid var(--border-color, #c8c8c8);
    background: #fff;
    cursor: pointer;
    color: var(--text-primary, #262626);
}
.admin-wxoap-json-modal-btn:hover {
    background: #f3f3f3;
}

/* ===== 微信自定义菜单编辑器（wxoap-menu-editor） ===== */
.admin-wxoap-menu-mount {
    position: relative;
    min-height: 0;
    overflow: visible;
    margin-left: 20px;
    margin-right: 0;
    padding: 16px 24px 24px 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1300px;
}
.admin-wxoap-menu-loading {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 10050;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(250, 250, 250, 0.82);
    backdrop-filter: blur(2px);
    pointer-events: all;
}
.admin-wxoap-menu-loading[hidden] {
    display: none !important;
}
.admin-wxoap-menu-loading-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 32px 40px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.14);
    border: 1px solid #e8e8e8;
    max-width: 90%;
    box-sizing: border-box;
}
.admin-wxoap-menu-loading-text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--text-secondary, #505050);
    text-align: center;
}
.admin-wxoap-menu-loading-hourglass {
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    animation: admin-wxoap-hourglass-flip 1.4s ease-in-out infinite;
}
.admin-wxoap-menu-loading-hourglass path {
    fill: none;
    stroke: #07c160;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}
@keyframes admin-wxoap-hourglass-flip {
    0% {
        transform: rotate(0deg);
    }
    35% {
        transform: rotate(0deg);
    }
    50% {
        transform: rotate(180deg);
    }
    85% {
        transform: rotate(180deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
.admin-wxoap-prompt-modal {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 10100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
}
.admin-wxoap-prompt-modal[hidden] {
    display: none !important;
}
.admin-wxoap-prompt-modal-backdrop {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.45);
}
.admin-wxoap-prompt-modal-panel {
    --am-pad-x: 20px;
    position: relative;
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
    overflow: hidden;
    box-sizing: border-box;
}
.admin-wxoap-prompt-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 12px 10px 20px;
    border-bottom: 1px solid #f0f0f0;
    position: static;
    box-sizing: border-box;
}
.admin-wxoap-prompt-modal-title {
    flex: 1;
    min-width: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: var(--text-primary, #262626);
}
.admin-wxoap-prompt-modal-close {
    border: none;
    background: transparent;
    color: #8c8c8c;
    cursor: pointer;
    border-radius: 50%;
}
.admin-wxoap-prompt-modal-close:hover {
    background: var(--bg-hover, #f0f0f0);
    color: #262626;
}
.admin-wxoap-prompt-modal-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 24px 20px;
    gap: 18px;
}
.admin-wxoap-prompt-modal-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #1890ff;
    color: #fff;
    font-size: 26px;
    font-weight: 700;
    font-style: italic;
    font-family: Georgia, "Times New Roman", serif;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
}
.admin-wxoap-prompt-modal-msg {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--text-primary, #262626);
    text-align: center;
}
.admin-wxoap-prompt-modal-foot {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 12px 24px 22px;
    box-sizing: border-box;
}
.admin-wxoap-prompt-modal-ok {
    min-width: 88px;
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 4px;
    border: none;
    background: #07c160;
    color: #fff;
    cursor: pointer;
}
.admin-wxoap-prompt-modal-ok:hover {
    background: #06ad56;
}
.admin-wxoap-prompt-modal-cancel {
    min-width: 88px;
    padding: 8px 20px;
    font-size: 14px;
    border-radius: 4px;
    border: 1px solid #d9d9d9;
    background: #fff;
    color: var(--text-primary, #262626);
    cursor: pointer;
}
.admin-wxoap-prompt-modal-cancel:hover {
    border-color: #07c160;
    color: #07c160;
}
.admin-wxoap-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    flex: 1;
    min-height: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
    font-size: 16px;
    box-sizing: border-box;
}
.admin-wxoap-menu-page-title {
    margin: 0;
    padding: 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary, #262626);
    line-height: 1.35;
    flex-shrink: 0;
}
.admin-wxoap-menu-banner {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.55;
    color: #353535;
    background: #f7f7f7;
    border: 1px solid #e7e7eb;
    border-radius: 4px;
    padding: 10px 16px;
    margin: 0;
}
.admin-wxoap-menu-banner-mark {
    flex-shrink: 0;
    color: #07c160;
    font-weight: 700;
    font-size: 15px;
    line-height: 1.45;
}
.admin-wxoap-menu-banner-body {
    flex: 1;
    min-width: 0;
}
.admin-wxoap-menu-banner code {
    font-size: 13px;
    word-break: break-all;
}
.admin-wxoap-menu-bottom {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 28px;
    flex: 1;
    min-height: 0;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    margin-right: 0;
    padding-right: 0;
}
.admin-wxoap-menu-preview {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    margin: 0;
    align-self: flex-start;
}
.admin-wxoap-menu-editor-panel {
    flex: 1 1 320px;
    min-width: 0;
    width: auto;
    max-width: none;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e7e7eb;
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    padding: 20px 22px 18px;
    box-sizing: border-box;
    min-height: 320px;
}
.admin-wxoap-menu-editor-inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    width: 100%;
    gap: 0;
}
.admin-wxoap-menu-editor-main {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.admin-wxoap-menu-empty-hint {
    margin: 0 0 16px 0;
    padding: 0;
    font-size: 15px;
    line-height: 1.65;
    color: #8a8a8a;
}
.admin-wxoap-menu-empty-hint[hidden] {
    display: none !important;
}
.admin-wxoap-menu-editor-main .admin-wxoap-menu-form {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}
.admin-wxoap-menu-editor-main.is-config-empty .admin-wxoap-menu-empty-hint {
    flex: 1;
    min-height: 48px;
}
.admin-wxoap-menu-preview-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 10px;
}
.admin-wxoap-phone-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: fit-content;
    max-width: 100%;
}
.admin-wxoap-primary-add-sub-wrap {
    position: absolute;
    left: 0;
    right: 0;
    width: 100%;
    bottom: 100%;
    margin-bottom: 6px;
    z-index: 5;
    display: block;
    pointer-events: auto;
    box-sizing: border-box;
}
.admin-wxoap-primary-add-sub-bubble {
    position: relative;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    font-size: 16px;
    line-height: 1.25;
    color: #333;
    background: #fff;
    border: 1px solid #dcdcdc;
    border-radius: 4px;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    text-align: center;
    font-family: inherit;
}
.admin-wxoap-primary-add-sub-bubble::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -6px;
    margin-left: -5px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #fff;
    filter: drop-shadow(0 1px 0 #dcdcdc);
}
.admin-wxoap-primary-add-sub-bubble:hover {
    background: #fafafa;
}
.admin-wxoap-primary-del-round {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-top: 4px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    cursor: pointer;
}
.admin-wxoap-primary-del-round:hover {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.16);
}
.admin-wxoap-primary-del-round svg {
    display: block;
}
.admin-wxoap-phone {
    --wxoap-inner-w: 406px;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #d0d0d0;
    border-radius: 28px;
    padding: 10px 10px 12px;
    background: linear-gradient(180deg, #fafafa 0%, #eee 100%);
    box-shadow: var(--shadow-md);
    width: calc(var(--wxoap-inner-w) + 20px);
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}
.admin-wxoap-phone-bar-float-layer {
    position: relative;
    z-index: 1;
    width: var(--wxoap-inner-w, 406px);
    max-width: 100%;
    flex-shrink: 0;
    box-sizing: border-box;
    padding: 8px 0 0;
}
.admin-wxoap-phone-bar-float-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}
.admin-wxoap-phone-bar-float-key {
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    flex-shrink: 0;
}
.admin-wxoap-phone-bar-float-strip {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    padding: 0 4px 0 0;
    box-sizing: border-box;
}
.admin-wxoap-phone-bar-float-col {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
}
.admin-wxoap-phone-bar-float-layer .admin-wxoap-float--bar {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0;
}
.admin-wxoap-phone-ear {
    height: 22px;
    margin: 0 auto 8px;
    width: 88px;
    border-radius: 12px;
    background: #ddd;
}
.admin-wxoap-phone-screen {
    display: flex;
    flex-direction: column;
    width: var(--wxoap-inner-w, 406px);
    height: 520px;
    min-height: 0;
    flex-shrink: 0;
    border-radius: 12px;
    overflow: visible;
    background: #ededed;
    border: 1px solid #ccc;
    position: relative;
    box-sizing: border-box;
}
.admin-wxoap-phone-body {
    flex: 1;
    min-height: 48px;
    pointer-events: none;
}
.admin-wxoap-phone-subdock {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    background: #e8e8e8;
    border-top: 1px solid #d5d5d5;
    position: relative;
    overflow: visible;
}
.admin-wxoap-phone-subdock.is-open {
    display: flex;
    position: relative;
    z-index: 20;
    pointer-events: none;
}
.admin-wxoap-subdock-align {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
    pointer-events: none;
}
.admin-wxoap-subdock-key-spacer {
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    flex-shrink: 0;
    border-right: 1px solid #e8e8e8;
    box-sizing: border-box;
    pointer-events: none;
}
.admin-wxoap-subdock-strip {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 0;
    padding: 4px 4px 6px 0;
    box-sizing: border-box;
    pointer-events: none;
}
.admin-wxoap-subdock-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    gap: 0;
    pointer-events: none;
}
.admin-wxoap-subdock-col--active {
    pointer-events: auto;
}
.admin-wxoap-subdock-strip > .admin-wxoap-subdock-col + .admin-wxoap-subdock-col {
    margin-left: -1px;
}
.admin-wxoap-sub-row + .admin-wxoap-sub-row,
.admin-wxoap-sub-row + .admin-wxoap-sub-add {
    margin-top: -1px;
}
.admin-wxoap-sub-row {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    height: 44px;
    padding: 0 8px;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    border-width: 1px;
    border-style: solid;
    border-color: #c8c8c8;
    border-radius: 0;
    font-size: 16px;
    line-height: 1.25;
    cursor: pointer;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    text-overflow: ellipsis;
    color: #333;
}
.admin-wxoap-sub-row.is-selected {
    border-width: 1px;
    border-style: solid;
    border-color: #07c160;
    box-shadow: none;
    background: #f0fff4;
    color: #07c160;
    font-weight: 500;
    z-index: 1;
}
.admin-wxoap-sub-row.is-invalid {
    border-width: 1px;
    border-style: solid;
    border-color: #ff4d4f;
    color: #ff4d4f;
    background: #fff;
    box-shadow: none;
}
.admin-wxoap-sub-row.is-selected.is-invalid {
    border-width: 1px;
    border-style: solid;
    border-color: #ff4d4f;
    box-shadow: none;
    background: #fff;
    color: #ff4d4f;
    z-index: 1;
}
.admin-wxoap-sub-row.is-name-empty:not(.is-selected) {
    color: #a0a0a0;
}
.admin-wxoap-sub-row.is-selected.is-name-empty:not(.is-invalid) {
    color: #52c27a;
}
.admin-wxoap-sub-add {
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border: 1px dashed #b0b0b0;
    border-radius: 0;
    background: #fafafa;
    color: #07c160;
    font-size: 16px;
    line-height: 1.25;
    cursor: pointer;
    text-align: center;
    font-family: inherit;
}
.admin-wxoap-sub-add:hover {
    background: #f0fff4;
}
.admin-wxoap-sub-text {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-wxoap-phone-bar {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    flex-shrink: 0;
    margin-top: auto;
    border-top: 1px solid #d0d0d0;
    background: #fcfcfc;
    min-height: 0;
    padding-bottom: 0;
    box-sizing: border-box;
    position: relative;
    z-index: 10;
    overflow: visible;
    pointer-events: auto;
}
.admin-wxoap-phone-menu-area {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-width: 0;
    padding: 4px 4px 4px 0;
    box-sizing: border-box;
    gap: 0;
    pointer-events: auto;
    overflow: visible;
}
.admin-wxoap-phone-menu-area > * + * {
    margin-left: -1px;
}
.admin-wxoap-phone-col {
    flex: 1;
    min-width: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
}
.admin-wxoap-phone-keyboard-wrap {
    flex: 0 0 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    border-right: 1px solid #e8e8e8;
    background: #f7f7f7;
    user-select: none;
    pointer-events: none;
}
.admin-wxoap-phone-keyboard {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}
.admin-wxoap-phone-keyboard-svg {
    display: block;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}
.admin-wxoap-phone-cell {
    flex: 1;
    min-width: 0;
    background: transparent;
    font-size: 15px;
    padding: 8px 4px;
    cursor: pointer;
    color: #333;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 0;
    border: none;
    border-left: 1px solid #c8c8c8;
    border-right: 1px solid #c8c8c8;
    box-sizing: border-box;
    position: relative;
    z-index: 0;
}
.admin-wxoap-phone-cell.is-invalid {
    border: 1px solid #ff4d4f;
    color: #ff4d4f;
    background: #fff;
    box-shadow: none;
}
.admin-wxoap-phone-cell.is-selected {
    box-shadow: none;
    border: 1px solid #07c160;
    background: #f0fff4;
    color: #07c160;
    font-weight: 500;
    z-index: 1;
}
.admin-wxoap-phone-cell.is-selected.is-invalid {
    box-shadow: none;
    border: 1px solid #ff4d4f;
    background: #fff;
    color: #ff4d4f;
}
.admin-wxoap-phone-cell.is-selected.is-name-empty {
    color: #52c27a;
}
.admin-wxoap-phone-cell.is-name-empty:not(.is-selected) {
    color: #a0a0a0;
    font-weight: normal;
}
.admin-wxoap-form-empty {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--text-secondary, #505050);
    max-width: 420px;
}
.admin-wxoap-form-empty strong {
    color: var(--text-primary, #262626);
    font-weight: 600;
}
.admin-wxoap-phone-add--initial.admin-wxoap-phone-add {
    flex: 1;
    width: 100%;
    min-width: 0;
    min-height: 46px;
    margin: 0;
    border-width: 1px;
    border-style: dashed;
    border-color: #07c160;
    border-radius: 4px;
    background: #fafafa;
    color: #07c160;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box;
    padding: 0 8px;
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
.admin-wxoap-phone-add--initial.admin-wxoap-phone-add:hover {
    background: #fafafa;
    border-color: #07c160;
    color: #07c160;
}
.admin-wxoap-phone-add-slot {
    flex: 1;
    min-width: 0;
    min-height: 46px;
    margin: 0;
    border-width: 1px;
    border-style: dashed;
    border-color: #c4c4c4;
    border-radius: 4px;
    background: #fafafa;
    color: #8a8a8a;
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}
.admin-wxoap-phone-add-slot:hover {
    background: #f5f5f5;
    border-color: #b0b0b0;
    color: #666;
}
.admin-wxoap-phone-add-plus {
    font-size: 20px;
    line-height: 1;
    font-weight: 600;
    color: inherit;
    flex-shrink: 0;
}
.admin-wxoap-phone-add-txt {
    font-size: 14px;
    line-height: 1.25;
    color: inherit;
    white-space: nowrap;
}
.admin-wxoap-float {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px 4px;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 6px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    z-index: 3;
}
.admin-wxoap-float--bar {
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    margin-top: 8px;
    flex-direction: row;
    flex-wrap: nowrap;
    padding: 6px 8px;
    gap: 6px;
}
.admin-wxoap-float--sub {
    position: absolute;
    left: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    flex-direction: column;
    z-index: 5;
}
.admin-wxoap-float--bar .admin-wxoap-float-btn {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
}
.admin-wxoap-float-btn {
    box-sizing: border-box;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    color: #333;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.admin-wxoap-float-btn:hover:not(:disabled) {
    background: #e0e0e0;
}
.admin-wxoap-float-btn:disabled {
    opacity: 0.38;
    cursor: not-allowed;
}
.admin-wxoap-float-btn-svg {
    display: block;
    flex-shrink: 0;
    pointer-events: none;
}
.admin-wxoap-menu-editor-title {
    font-size: 17px;
    font-weight: 600;
    margin-bottom: 14px;
    color: var(--text-primary);
}
.admin-wxoap-menu-form .admin-wxoap-field-row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
    font-size: 15px;
    color: var(--text-secondary);
}
.admin-wxoap-menu-form .admin-wxoap-field-label {
    flex: 0 0 110px;
    font-weight: normal;
    color: var(--text-primary);
    text-align: left;
    padding-top: 8px;
    align-self: flex-start;
}
.admin-wxoap-menu-form .admin-wxoap-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 24px;
}
.admin-wxoap-menu-form .admin-wxoap-inline {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: normal;
    cursor: pointer;
    color: var(--text-primary);
}
.admin-wxoap-menu-form .admin-wxoap-inline input {
    margin: 0;
}
.admin-wxoap-menu-form .admin-wxoap-inline {
    display: block;
    margin: 6px 0 0 2px;
    cursor: pointer;
    color: var(--text-primary);
    font-weight: normal;
}
.admin-wxoap-menu-form .admin-wxoap-inline input {
    margin-right: 8px;
    vertical-align: middle;
}
.admin-wxoap-input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 16px;
    transition: border-color 0.2s ease;
}
.admin-wxoap-input:focus {
    border: 1px solid #07c160;
    outline: none;
}
.admin-wxoap-input.is-invalid {
    border-color: #ff4d4f;
    background: #fff;
}
.admin-wxoap-input.is-invalid:focus {
    border-color: #ff4d4f;
    outline: none;
    box-shadow: none;
}
.admin-wxoap-field-value {
    flex: 1;
    min-width: 0;
}
.admin-wxoap-field-err {
    margin: 6px 0 0 0;
    font-size: 14px;
    line-height: 1.4;
    color: #ff4d4f;
}
.admin-wxoap-field-err[hidden] {
    display: none !important;
}
.admin-wxoap-menu-form .admin-wxoap-field-err--limit {
    color: #d92e2e;
    font-weight: 500;
}
.admin-wxoap-menu-form .wxoap-only-mini label {
    display: block;
    margin-bottom: 10px;
}
.admin-wxoap-menu-form .wxoap-only-mini label span {
    display: block;
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 4px;
}
.admin-wxoap-hint {
    font-size: 14px;
    color: var(--text-light);
    margin: -6px 0 12px;
    line-height: 1.45;
}
.admin-wxoap-hint-folder {
    margin-top: 4px;
}
.admin-wxoap-menu-form .admin-wxoap-field-row--hint {
    margin-bottom: 8px;
}
.admin-wxoap-menu-form .admin-wxoap-field-row--hint .admin-wxoap-hint--col2 {
    margin: 0 0 4px 0;
    padding: 0;
}
.admin-wxoap-del {
    margin: 16px 0 0;
}
.admin-wxoap-link-del,
.admin-wxoap-link-del-sub {
    border: none;
    background: none;
    padding: 0;
    color: var(--primary-blue);
    cursor: pointer;
    font-size: 15px;
    text-decoration: none;
}
.admin-wxoap-link-del:hover,
.admin-wxoap-link-del-sub:hover {
    color: var(--primary-blue-hover);
    text-decoration: none;
}
.admin-wxoap-menu-editor-inner .admin-wxoap-menu-foot {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: auto;
    padding-top: 16px;
    flex-shrink: 0;
    border-top: 1px solid #ececec;
}
/* 微信自定义菜单页：预览 / 保存并发布（浅底描边 + 绿色主按钮） */
.admin-wxoap-menu-foot .admin-btn {
    box-sizing: border-box;
    min-width: 0;
    margin: 0;
    padding: 7px 22px;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 400;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid #e7e7eb;
    background: #f8f8f8;
    color: #353535;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.admin-wxoap-menu-foot .admin-btn:hover {
    background: #f0f0f0;
    border-color: #dadada;
    color: #353535;
}
.admin-wxoap-menu-foot .admin-btn:active {
    background: #e8e8e8;
}
.admin-wxoap-menu-foot .admin-btn-primary,
.admin-wxoap-menu-foot .admin-wxoap-menu-btn-publish.admin-btn-primary {
    border-color: #07c160;
    background: #07c160;
    color: #fff;
}
.admin-wxoap-menu-foot .admin-btn-primary:hover,
.admin-wxoap-menu-foot .admin-wxoap-menu-btn-publish.admin-btn-primary:hover {
    background: #06ad56;
    border-color: #06ad56;
    color: #fff;
}
.admin-wxoap-menu-foot .admin-btn-primary:active,
.admin-wxoap-menu-foot .admin-wxoap-menu-btn-publish.admin-btn-primary:active {
    background: #059c4d;
    border-color: #059c4d;
}

.admin-pane-scope {
    position: relative;
    box-sizing: border-box;
}

.admin-pane-scope .admin-level-table,
.admin-pane-scope .admin-product-table,
.admin-pane-scope .admin-order-table {
    font-variant-numeric: tabular-nums;
}

.admin-paper-click .admin-paper-click-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.admin-paper-click .admin-paper-click-toolbar-right {
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
}
.admin-paper-click .admin-paper-click-filter-label {
    font-size: 13px;
    font-family: inherit;
    color: var(--text-secondary, #505050);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.admin-paper-click .admin-paper-click-preset {
    font-family: inherit;
    font-size: 13px;
}
.admin-paper-click .admin-paper-click-custom-range {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.admin-paper-click .admin-paper-click-list {
    margin-top: 12px;
    -webkit-overflow-scrolling: touch;
}
.admin-paper-click .admin-paper-click-table {
    width: 100%;
    max-width: 100%;
    min-width: 1400px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 13px;
    box-sizing: border-box;
}
.admin-paper-click .admin-paper-click-table.admin-neo-sort-table {
    width: max(100%, 1400px);
}
.admin-paper-click .admin-paper-click-table thead th {
    font-weight: 600;
    color: var(--text-secondary, #505050);
    background: var(--bg-secondary, #f5f5f5);
    padding: 6px 8px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    vertical-align: middle;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
    box-sizing: border-box;
    line-height: 1.35;
}
.admin-paper-click .admin-paper-click-table thead th:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 16.6667%;
    bottom: 16.6667%;
    right: 0;
    width: 5px;
    margin-right: -2px;
    pointer-events: none;
    z-index: 2;
    border-radius: 2px;
    background: transparent;
    box-shadow:
        inset 1px 0 0 #c0c0c0,
        inset -1px 0 0 #ffffff;
}
.admin-paper-click .admin-paper-click-table thead th:first-child::before,
.admin-paper-click .admin-paper-click-table thead th:last-child::after {
    content: none;
    display: none;
}
.admin-paper-click .admin-paper-click-table tbody td {
    padding: 6px 8px;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    vertical-align: middle;
    box-sizing: border-box;
    color: var(--text-primary, #262626);
    background: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 0;
}
.admin-paper-click .admin-paper-click-table tbody td.admin-paper-click-col-num {
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(1) {
    text-align: center;
}
.admin-paper-click .admin-paper-click-table tbody td:nth-child(1).admin-paper-click-col-num {
    text-align: center;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(4),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(4) {
    text-align: left;
}
.admin-paper-click .admin-paper-click-table tbody td.admin-paper-click-col-doc {
    font-variant-numeric: tabular-nums;
    text-align: center;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(1),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(1) {
    width: 11.7%;
    padding-left: 6px;
    padding-right: 6px;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(2),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(2) {
    width: 9.9%;
    font-variant-numeric: tabular-nums;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(3),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(3) {
    width: 6%;
    text-align: center;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(4),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(4) {
    width: 13.4%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(5),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(5) {
    width: 10%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(6),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(6) {
    width: 5%;
    text-align: center;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(7),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(7) {
    width: 8%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(8),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(8) {
    width: 8%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(9),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(9) {
    width: 7%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(10),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(10) {
    width: 7%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(11),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(11) {
    width: 11%;
}
.admin-paper-click .admin-paper-click-table thead th:nth-child(12),
.admin-paper-click .admin-paper-click-table tbody td:nth-child(12) {
    width: 10%;
}
.admin-paper-click .admin-paper-click-table td[colspan] {
    width: 100%;
    max-width: none;
    text-align: center;
    white-space: normal;
}
.admin-paper-click .admin-paper-click-muted {
    color: var(--text-secondary, #505050);
    font-size: 13px;
}
#pane-author-club-paper-click .admin-paper-click-table tbody tr:not(:has(td.admin-paper-click-muted)):hover td {
    background-color: #fafafa;
}

.admin-body #admin-root .admin-pane .admin-level-table thead th,
.admin-body #admin-root .admin-pane .admin-product-table thead th,
.admin-body #admin-root .admin-pane .admin-user-table thead th,
.admin-body #admin-root .admin-pane .admin-order-table thead th,
.admin-body #admin-root .admin-pane .admin-author-pay-table thead th,
.admin-body #admin-root .admin-pane .admin-author-pay-modal-table thead th,
.admin-body #admin-root .admin-pane .admin-permission-table thead th,
.admin-body #admin-root .admin-pane .admin-user-auth-table thead th,
.admin-body #admin-root .admin-pane .admin-user-role-table thead th,
.admin-body #admin-root .admin-pane .admin-table-data-table thead th,
.admin-body #admin-root .admin-pane .admin-orderpre-table thead th,
.admin-body #admin-root .admin-pane .admin-paper-table thead th,
.admin-body #admin-root .admin-pane .admin-paper-click-table thead th,
.admin-body #admin-root .admin-pane .admin-app-table thead th,
.admin-body #admin-root .admin-pane .admin-stl-channel-table thead th,
.admin-body #admin-root .admin-pane .admin-ad-slot-table thead th,
.admin-body #admin-root .admin-pane .admin-ad-apply-table thead th,
.admin-body #admin-root .admin-pane .admin-ad-item-table thead th,
.admin-body #admin-root .admin-pane .admin-ad-table thead th,
.admin-body #admin-root .admin-pane .admin-level-product-list-table thead th,
.admin-body #admin-root .admin-pane .admin-paper-static-publish-table thead th,
.admin-body #admin-root .admin-pane .admin-paper-preview-table thead th,
.admin-body #admin-root .admin-pane .admin-category-raw-table thead th {
    padding-top: var(--admin-list-thead-pad-block);
    padding-bottom: var(--admin-list-thead-pad-block);
    line-height: var(--admin-list-thead-line-height);
    vertical-align: middle;
    box-sizing: border-box;
}

.admin-body #admin-root .admin-pane .admin-author-table thead th {
    padding-top: var(--admin-author-manage-thead-pad-block);
    padding-bottom: var(--admin-author-manage-thead-pad-block);
    line-height: var(--admin-author-manage-thead-line-height);
    vertical-align: middle;
    box-sizing: border-box;
}

.admin-body #admin-root .admin-pane .admin-author-table.admin-author-table--notify thead th.admin-author-th-cb {
    padding-top: var(--admin-author-manage-thead-pad-block) !important;
    padding-bottom: var(--admin-author-manage-thead-pad-block) !important;
}
.admin-body #admin-root .admin-pane .admin-orderpre-table thead th.admin-orderpre-th-cb {
    padding-top: var(--admin-list-thead-pad-block) !important;
    padding-bottom: var(--admin-list-thead-pad-block) !important;
}
.admin-body #admin-root .admin-pane .admin-user-table thead th.admin-user-th-cb {
    padding-top: var(--admin-list-thead-pad-block) !important;
    padding-bottom: var(--admin-list-thead-pad-block) !important;
}

.admin-body #admin-root button,
.admin-body #admin-root input[type="button"],
.admin-body #admin-root input[type="submit"],
.admin-body #admin-root input[type="reset"],
.admin-body #admin-root .admin-pager-first,
.admin-body #admin-root .admin-pager-prev,
.admin-body #admin-root .admin-pager-next,
.admin-body #admin-root .admin-pager-last {
    font-size: 14px;
}

