/* ==========================================================
 * 虎牌新能源管理系统 - 通用样式
 * 命名前缀: zjxc_
 * ========================================================== */

/* 变量定义 */
:root {
    --zjxc-primary: #22c55e;
    --zjxc-primary-dark: #16a34a;
    --zjxc-primary-light: #dcfce7;
    --zjxc-primary-hover: #15803d;
    --zjxc-secondary: #3b82f6;
    --zjxc-secondary-light: #dbeafe;
    --zjxc-warning: #f59e0b;
    --zjxc-warning-light: #fef3c7;
    --zjxc-danger: #ef4444;
    --zjxc-danger-light: #fee2e2;
    --zjxc-success: #10b981;
    --zjxc-success-light: #d1fae5;

    --zjxc-bg: #f8fafc;
    --zjxc-bg-hover: #f1f5f9;
    --zjxc-surface: #ffffff;
    --zjxc-border: #e2e8f0;
    --zjxc-border-light: #f1f5f9;

    --zjxc-text-primary: #0f172a;
    --zjxc-text-secondary: #64748b;
    --zjxc-text-tertiary: #94a3b8;

    --zjxc-radius-sm: 4px;
    --zjxc-radius: 6px;
    --zjxc-radius-lg: 8px;
    --zjxc-radius-xl: 12px;
    --zjxc-radius-full: 9999px;

    --zjxc-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --zjxc-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.05);
    --zjxc-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
    --zjxc-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.06), 0 4px 6px -4px rgba(0, 0, 0, 0.05);

    --zjxc-sidebar-width: 240px;
    --zjxc-sidebar-collapsed: 64px;
    --zjxc-header-height: 60px;

    --zjxc-font-cn: "PingFang SC", "Microsoft YaHei", "微软雅黑", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --zjxc-font-en: "Inter", "Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
    font-family: var(--zjxc-font-cn);
    font-size: 14px;
    line-height: 1.5;
    color: var(--zjxc-text-primary);
    background-color: var(--zjxc-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
    outline: none;
}

input, textarea, select {
    font-family: inherit;
    font-size: inherit;
    outline: none;
}

img {
    display: block;
    max-width: 100%;
}

/* 滚动条 */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* 通用工具类 */
.zjxc_flex {
    display: flex;
}

.zjxc_flex_center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.zjxc_flex_between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.zjxc_flex_1 {
    flex: 1;
}

.zjxc_hidden {
    display: none !important;
}

.zjxc_text_ellipsis {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.zjxc_text_center { text-align: center; }
.zjxc_text_right { text-align: right; }

.zjxc_text_primary { color: var(--zjxc-primary); }
.zjxc_text_danger { color: var(--zjxc-danger); }
.zjxc_text_warning { color: var(--zjxc-warning); }
.zjxc_text_success { color: var(--zjxc-success); }
.zjxc_text_muted { color: var(--zjxc-text-secondary); }

.zjxc_mt_8  { margin-top: 8px; }
.zjxc_mt_16 { margin-top: 16px; }
.zjxc_mt_24 { margin-top: 24px; }
.zjxc_mb_8  { margin-bottom: 8px; }
.zjxc_mb_16 { margin-bottom: 16px; }
.zjxc_mb_24 { margin-bottom: 24px; }
.zjxc_ml_8  { margin-left: 8px; }
.zjxc_ml_16 { margin-left: 16px; }

/* 按钮 */
.zjxc_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    border-radius: var(--zjxc-radius-sm);
    background: var(--zjxc-surface);
    color: var(--zjxc-text-primary);
    border: 1px solid var(--zjxc-border);
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    user-select: none;
}

.zjxc_btn:hover {
    background: var(--zjxc-bg-hover);
    border-color: #cbd5e1;
}

.zjxc_btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.zjxc_btn_primary {
    background: var(--zjxc-primary);
    color: #fff;
    border-color: var(--zjxc-primary);
}

.zjxc_btn_primary:hover {
    background: var(--zjxc-primary-dark);
    border-color: var(--zjxc-primary-dark);
}

.zjxc_btn_danger {
    background: var(--zjxc-danger);
    color: #fff;
    border-color: var(--zjxc-danger);
}

.zjxc_btn_danger:hover {
    background: #dc2626;
    border-color: #dc2626;
}

.zjxc_btn_ghost {
    background: transparent;
    border: 1px solid var(--zjxc-primary);
    color: var(--zjxc-primary);
}

.zjxc_btn_ghost:hover {
    background: var(--zjxc-primary-light);
}

.zjxc_btn_text {
    height: auto;
    padding: 4px 8px;
    background: transparent;
    border: none;
    color: var(--zjxc-primary);
}

.zjxc_btn_text:hover {
    background: var(--zjxc-primary-light);
}

.zjxc_btn_text.zjxc_text_danger { color: var(--zjxc-danger); }
.zjxc_btn_text.zjxc_text_danger:hover { background: var(--zjxc-danger-light); }

.zjxc_btn_sm {
    height: 28px;
    padding: 0 10px;
    font-size: 13px;
}

.zjxc_btn_lg {
    height: 44px;
    padding: 0 24px;
    font-size: 15px;
}

.zjxc_btn_block {
    display: flex;
    width: 100%;
}

/* 表单 */
.zjxc_form_item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.zjxc_form_label {
    font-size: 13px;
    font-weight: 500;
    color: var(--zjxc-text-primary);
}

.zjxc_form_label .zjxc_required::before {
    content: "*";
    color: var(--zjxc-danger);
    margin-right: 4px;
}

.zjxc_input,
.zjxc_textarea,
.zjxc_select {
    display: block;
    width: 100%;
    height: 36px;
    padding: 0 12px;
    font-size: 14px;
    color: var(--zjxc-text-primary);
    background: var(--zjxc-surface);
    border: 1px solid var(--zjxc-border);
    border-radius: var(--zjxc-radius-sm);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.zjxc_textarea {
    height: auto;
    min-height: 88px;
    padding: 10px 12px;
    line-height: 1.5;
    resize: vertical;
}

.zjxc_input:focus,
.zjxc_textarea:focus,
.zjxc_select:focus {
    border-color: var(--zjxc-primary);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.zjxc_input::placeholder,
.zjxc_textarea::placeholder {
    color: var(--zjxc-text-tertiary);
}

.zjxc_input_group {
    position: relative;
}

.zjxc_input_group .zjxc_input {
    padding-left: 36px;
}

.zjxc_input_group .zjxc_input_icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--zjxc-text-tertiary);
    font-size: 14px;
    pointer-events: none;
}

/* 卡片 */
.zjxc_card {
    background: var(--zjxc-surface);
    border: 1px solid var(--zjxc-border);
    border-radius: var(--zjxc-radius-lg);
    overflow: hidden;
}

.zjxc_card_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--zjxc-border-light);
}

.zjxc_card_title {
    font-size: 15px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
}

.zjxc_card_body {
    padding: 20px;
}

/* 徽章 / 状态 */
.zjxc_badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    padding: 0 8px;
    font-size: 12px;
    font-weight: 500;
    border-radius: var(--zjxc-radius-full);
    background: var(--zjxc-bg-hover);
    color: var(--zjxc-text-secondary);
}

.zjxc_badge_success {
    background: var(--zjxc-success-light);
    color: #047857;
}

.zjxc_badge_success::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--zjxc-success);
}

.zjxc_badge_warning {
    background: var(--zjxc-warning-light);
    color: #b45309;
}

.zjxc_badge_warning::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--zjxc-warning);
}

.zjxc_badge_danger {
    background: var(--zjxc-danger-light);
    color: #b91c1c;
}

.zjxc_badge_danger::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--zjxc-danger);
}

.zjxc_badge_info {
    background: var(--zjxc-secondary-light);
    color: #1d4ed8;
}

.zjxc_badge_info::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--zjxc-secondary);
}

/* 空状态 */
.zjxc_empty {
    padding: 60px 20px;
    text-align: center;
    color: var(--zjxc-text-tertiary);
}

.zjxc_empty i {
    font-size: 48px;
    margin-bottom: 12px;
    opacity: 0.6;
}

/* 加载遮罩 */
.zjxc_loading_mask {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.7);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.zjxc_loading_spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--zjxc-border);
    border-top-color: var(--zjxc-primary);
    border-radius: 50%;
    animation: zjxc_spin 0.8s linear infinite;
}

@keyframes zjxc_spin {
    to { transform: rotate(360deg); }
}

/* ==========================================================
 * 页面头 / 通用页面容器
 * ========================================================== */
.zjxc_page_header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 16px;
    flex-wrap: wrap;
}
.zjxc_page_header .zjxc_page_title {
    font-size: 22px;
    font-weight: 700;
    color: var(--zjxc-text-primary);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}
.zjxc_page_desc {
    font-size: 13px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_page_actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* index / devices 用的复合"页头":标题左 + 主按钮右 */
.zjxc_page_title:not(h1) {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 16px;
    flex-wrap: wrap;
}
.zjxc_page_title:not(h1) > div h1 {
    font-size: 22px;
    font-weight: 700;
    color: var(--zjxc-text-primary);
    margin: 0 0 4px;
    letter-spacing: -0.01em;
}

/* mono 数字 */
.zjxc_mono {
    font-family: "Plus Jakarta Sans", "Inter", "SFMono-Regular", ui-monospace, monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}

/* ==========================================================
 * 顶栏兼容 (index/devices 用的 zjxc_header_btn / zjxc_user_menu)
 * ========================================================== */
.zjxc_header_btn {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    color: var(--zjxc-text-secondary);
    background: transparent;
    border: none;
    cursor: pointer;
    position: relative;
    transition: background 0.15s, color 0.15s;
}
.zjxc_header_btn:hover {
    background: var(--zjxc-bg-hover);
    color: var(--zjxc-primary);
}
.zjxc_header_dot {
    position: absolute;
    top: 6px; right: 6px;
    width: 8px; height: 8px;
    background: var(--zjxc-danger);
    border-radius: 50%;
    border: 2px solid #fff;
}
.zjxc_user_menu {
    position: relative;
    display: flex; align-items: center; gap: 8px;
    padding: 4px 12px 4px 4px;
    border-radius: 20px;
    cursor: pointer;
    transition: background 0.15s;
}
.zjxc_user_menu:hover { background: var(--zjxc-bg-hover); }
.zjxc_user_avatar {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--zjxc-primary), var(--zjxc-secondary));
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 600;
    flex-shrink: 0;
}
.zjxc_user_info { line-height: 1.2; }
.zjxc_user_name { font-size: 13px; font-weight: 500; color: var(--zjxc-text-primary); }
.zjxc_user_role { font-size: 11px; color: var(--zjxc-text-tertiary); }
.zjxc_user_dropdown {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 180px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
    padding: 6px;
    z-index: 200;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: all 0.15s;
}
.zjxc_user_menu.zjxc_open .zjxc_user_dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.zjxc_user_dropdown a {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--zjxc-text-primary);
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s;
}
.zjxc_user_dropdown a:hover { background: var(--zjxc-bg-hover); }
.zjxc_user_dropdown a i { color: var(--zjxc-text-tertiary); width: 14px; text-align: center; }
.zjxc_sidebar_toggle {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    color: var(--zjxc-text-secondary);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
}
.zjxc_sidebar_toggle:hover { background: var(--zjxc-bg-hover); color: var(--zjxc-primary); }
.zjxc_bc_current { color: var(--zjxc-text-primary); font-weight: 500; }
.zjxc_bc_sep { color: var(--zjxc-text-tertiary); font-size: 10px; margin: 0 2px; }

/* ==========================================================
 * 统计卡片 (index / statistics 通用)
 * ========================================================== */
.zjxc_stat_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}
.zjxc_stat_card {
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: var(--zjxc-radius-lg);
    padding: 18px 20px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    transition: box-shadow 0.15s, transform 0.15s;
}
.zjxc_stat_card:hover {
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}
.zjxc_stat_head {
    display: flex; align-items: flex-start; justify-content: space-between;
    width: 100%; margin-bottom: 6px;
}
.zjxc_stat_icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.zjxc_stat_icon_green  { background: rgba(34,197,94,0.12);  color: var(--zjxc-primary-dark); }
.zjxc_stat_icon_blue   { background: rgba(59,130,246,0.12); color: var(--zjxc-secondary); }
.zjxc_stat_icon_orange { background: rgba(245,158,11,0.14); color: var(--zjxc-warning); }
.zjxc_stat_icon_purple { background: rgba(139,92,246,0.14); color: #7c3aed; }
.zjxc_stat_body { flex: 1; min-width: 0; }
.zjxc_stat_label {
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    margin-bottom: 6px;
    font-weight: 500;
}
.zjxc_stat_value {
    font-size: 24px;
    font-weight: 700;
    color: var(--zjxc-text-primary);
    line-height: 1.15;
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", "PingFang SC", sans-serif;
}
.zjxc_stat_sub { font-size: 12px; color: var(--zjxc-text-tertiary); font-weight: 400; margin-left: 2px; }
.zjxc_stat_trend {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 500;
    margin-top: 6px;
}
.zjxc_trend_up   { color: var(--zjxc-success); }
.zjxc_trend_down { color: var(--zjxc-danger); }

/* 数据统计页 stat 卡的另一种布局 (head 在上) */
.zjxc_stat_card > .zjxc_stat_head + .zjxc_stat_value {
    display: block;
}

/* ==========================================================
 * 图表卡片布局
 * ========================================================== */
.zjxc_chart_grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}
.zjxc_chart_card { display: flex; flex-direction: column; }
.zjxc_chart_tabs {
    display: inline-flex;
    background: var(--zjxc-bg);
    padding: 3px;
    border-radius: 6px;
    gap: 2px;
}
.zjxc_chart_tab {
    padding: 4px 12px;
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s;
    border: none;
}
.zjxc_chart_tab.zjxc_active {
    background: #fff;
    color: var(--zjxc-primary-dark);
    font-weight: 500;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
.zjxc_dashboard_row {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px;
}

/* ==========================================================
 * 订单页面统计块
 * ========================================================== */
.zjxc_order_stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 4px;
}
.zjxc_order_stat_card {
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: var(--zjxc-radius-lg);
    padding: 18px 20px;
}
.zjxc_order_stat_label {
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    margin-bottom: 8px;
}
.zjxc_order_stat_value {
    font-size: 24px; font-weight: 700;
    color: var(--zjxc-text-primary);
    line-height: 1.15; letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
}
.zjxc_order_stat_sub {
    font-size: 12px; color: var(--zjxc-success);
    font-weight: 500; margin-top: 6px;
}
.zjxc_order_stat_sub.zjxc_text_muted { color: var(--zjxc-text-tertiary); font-weight: 400; }
.zjxc_order_stat_sub i { margin-right: 3px; }

/* ==========================================================
 * 详情栅格 (设备详情/订单详情/用户详情弹窗)
 * ========================================================== */
.zjxc_detail_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
}
.zjxc_detail_item, .zjxc_detail_row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--zjxc-border-light);
}
.zjxc_detail_row {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
.zjxc_detail_label {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_detail_value {
    font-size: 14px;
    color: var(--zjxc-text-primary);
    font-weight: 500;
    word-break: break-all;
}

/* ==========================================================
 * 分页容器兼容 (devices 用的 zjxc_pager)
 * ========================================================== */
.zjxc_pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    border-top: 1px solid var(--zjxc-border-light);
    flex-wrap: wrap;
    gap: 12px;
}

/* filter-bar 中的重置/查询按钮:向右靠齐 */
.zjxc_filter_bar .zjxc_filter_actions {
    margin-left: auto;
}
.zjxc_filter_item label,
.zjxc_filter_item .zjxc_form_label {
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    white-space: nowrap;
}

/* ==========================================================
 * 轮播卡片 (carousel.html)
 * ========================================================== */
.zjxc_carousel_list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.zjxc_carousel_card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: var(--zjxc-radius-lg);
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.15s;
}
.zjxc_carousel_card:hover {
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    border-color: var(--zjxc-border);
}
.zjxc_carousel_handle {
    color: var(--zjxc-text-tertiary);
    cursor: grab;
    padding: 4px;
    font-size: 16px;
    flex-shrink: 0;
    transition: color 0.15s;
}
.zjxc_carousel_handle:hover {
    color: var(--zjxc-primary);
}
.zjxc_carousel_handle:active {
    cursor: grabbing;
}
.zjxc_carousel_thumb {
    width: 160px;
    height: 90px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--zjxc-bg);
}
.zjxc_carousel_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.zjxc_carousel_info { flex: 1; min-width: 0; }
.zjxc_carousel_title {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    margin-bottom: 6px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.zjxc_carousel_meta {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    flex-wrap: wrap;
}
.zjxc_carousel_meta i { margin-right: 4px; }
.zjxc_carousel_status { flex-shrink: 0; }
.zjxc_carousel_actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

/* Sortable 拖拽状态 */
.zjxc_sortable_ghost {
    opacity: 0.4;
    background: var(--zjxc-bg);
}
.zjxc_sortable_chosen {
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.15);
    border-color: var(--zjxc-primary);
}
.zjxc_sortable_drag {
    opacity: 1;
    transform: rotate(2deg);
}

/* 上传框 */
.zjxc_upload_box {
    position: relative;
    width: 100%;
    min-height: 200px;
    border: 2px dashed var(--zjxc-border-light);
    border-radius: var(--zjxc-radius-lg);
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.zjxc_upload_box:hover {
    border-color: var(--zjxc-primary);
    background: var(--zjxc-bg);
}
.zjxc_upload_box.zjxc_upload_dragover {
    border-color: var(--zjxc-primary);
    background: rgba(34, 197, 94, 0.05);
}
.zjxc_upload_placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    padding: 20px;
    text-align: center;
}
.zjxc_upload_placeholder i {
    font-size: 48px;
    color: var(--zjxc-text-tertiary);
    margin-bottom: 12px;
}
.zjxc_upload_placeholder p {
    font-size: 14px;
    color: var(--zjxc-text-primary);
    margin: 0 0 6px;
    font-weight: 500;
}
.zjxc_upload_placeholder span {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_upload_preview {
    display: block;
    width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: contain;
}
.zjxc_upload_mask {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
}
.zjxc_upload_box:hover .zjxc_upload_mask {
    opacity: 1;
}
.zjxc_form_grid_2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}

/* 小程序预览 */
.zjxc_preview_phone {
    width: 320px;
    margin: 0 auto;
    padding: 20px;
    background: #f8fafc;
    border-radius: 24px;
    border: 8px solid #0f172a;
}
.zjxc_preview_screen {
    background: #fff;
    border-radius: 12px;
    padding: 12px;
    overflow: hidden;
}
.zjxc_preview_swiper {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
}
.zjxc_preview_slide {
    flex: 0 0 100%;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    background: var(--zjxc-bg);
}
.zjxc_preview_slide img { width: 100%; height: 120px; object-fit: cover; display: block; }
.zjxc_preview_slide_title {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 6px 10px;
    background: linear-gradient(transparent, rgba(0,0,0,0.55));
    color: #fff;
    font-size: 12px;
}
.zjxc_preview_hint {
    text-align: center;
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    margin-top: 10px;
}

/* dashboard row col-span helpers already inline; make grid respond */
@media (max-width: 1200px) {
    .zjxc_stat_grid, .zjxc_order_stats { grid-template-columns: repeat(2, 1fr); }
    .zjxc_chart_grid { grid-template-columns: 1fr; }
    .zjxc_dashboard_row > .zjxc_card { grid-column: 1 / -1 !important; }
}
@media (max-width: 720px) {
    .zjxc_stat_grid, .zjxc_order_stats { grid-template-columns: 1fr; }
    .zjxc_detail_grid { grid-template-columns: 1fr; }
    .zjxc_form_grid_2 { grid-template-columns: 1fr; }
    .zjxc_carousel_card { flex-wrap: wrap; }
    .zjxc_carousel_thumb { width: 100%; height: 140px; }
}

/* ==========================================================
 * 商品管理页
 * ========================================================== */

/* 左右两栏布局:左侧分类,右侧商品 */
.zjxc_products_wrap {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 16px;
    align-items: flex-start;
}

/* 分类侧栏 */
.zjxc_category_panel {
    background: #fff;
    border: 1px solid var(--zjxc-border);
    border-radius: var(--zjxc-radius-lg);
    overflow: hidden;
    position: sticky;
    top: 88px;
}
.zjxc_category_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--zjxc-border-light);
}
.zjxc_category_title {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
}
.zjxc_category_add {
    width: 26px;
    height: 26px;
    border-radius: 4px;
    background: var(--zjxc-primary-light);
    color: var(--zjxc-primary-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 12px;
    border: none;
}
.zjxc_category_add:hover {
    background: var(--zjxc-primary);
    color: #fff;
}
.zjxc_category_list {
    max-height: calc(100vh - 240px);
    overflow-y: auto;
    padding: 8px;
}
.zjxc_category_item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
    color: var(--zjxc-text-secondary);
    font-size: 13px;
    margin-bottom: 2px;
    position: relative;
}
.zjxc_category_item:hover {
    background: var(--zjxc-bg-hover);
    color: var(--zjxc-text-primary);
}
.zjxc_category_item.zjxc_active {
    background: var(--zjxc-primary-light);
    color: var(--zjxc-primary-dark);
    font-weight: 500;
}
.zjxc_category_item_name {
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.zjxc_category_item_count {
    padding: 1px 8px;
    background: var(--zjxc-bg);
    border-radius: 10px;
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
    flex-shrink: 0;
}
.zjxc_category_item.zjxc_active .zjxc_category_item_count {
    background: rgba(255,255,255,0.7);
    color: var(--zjxc-primary-dark);
}
.zjxc_category_item_actions {
    display: none;
    gap: 4px;
    flex-shrink: 0;
}
.zjxc_category_item:hover .zjxc_category_item_actions {
    display: flex;
}
.zjxc_category_item.zjxc_active .zjxc_category_item_actions {
    display: flex;
}
.zjxc_category_item_actions button {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background: transparent;
    color: var(--zjxc-text-tertiary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    cursor: pointer;
    border: none;
}
.zjxc_category_item_actions button:hover {
    background: #fff;
    color: var(--zjxc-primary-dark);
}
.zjxc_category_item_actions .zjxc_del_btn:hover {
    color: var(--zjxc-danger);
}

/* 商品卡片网格 */
.zjxc_products_main {
    min-width: 0;
}
.zjxc_products_grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
    padding: 16px;
}
.zjxc_product_card {
    background: #fff;
    border: 1px solid var(--zjxc-border);
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
}
.zjxc_product_card:hover {
    border-color: var(--zjxc-primary);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06);
    transform: translateY(-2px);
}
.zjxc_product_cover {
    width: 100%;
    height: 180px;
    background: #f8fafc;
    position: relative;
    overflow: hidden;
}
.zjxc_product_cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.zjxc_product_cover_empty {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--zjxc-text-tertiary);
    font-size: 32px;
}
.zjxc_product_status {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    background: rgba(15, 23, 42, 0.6);
    color: #fff;
    backdrop-filter: blur(4px);
}
.zjxc_product_status.zjxc_on {
    background: rgba(34, 197, 94, 0.9);
}
.zjxc_product_body {
    padding: 12px 14px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.zjxc_product_name {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.zjxc_product_price {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_product_price_main {
    font-size: 18px;
    font-weight: 700;
    color: var(--zjxc-danger);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_product_price_vip {
    color: #b45309;
    background: var(--zjxc-warning-light);
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11px;
}
.zjxc_product_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    display: flex;
    justify-content: space-between;
    margin-top: 2px;
}
.zjxc_product_actions {
    display: flex;
    gap: 4px;
    padding: 10px 14px;
    border-top: 1px solid var(--zjxc-border-light);
    background: #fafbfc;
}
.zjxc_product_actions button {
    flex: 1;
}

/* 商品编辑弹窗内 - 8 项分成 & 返钱表格 */
.zjxc_share_table {
    width: 100%;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 6px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
}
.zjxc_share_table th {
    background: #f8fafc;
    color: var(--zjxc-text-secondary);
    font-weight: 600;
    text-align: left;
    padding: 10px 12px;
    font-size: 12px;
    border-bottom: 1px solid var(--zjxc-border-light);
}
.zjxc_share_table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--zjxc-border-light);
    vertical-align: middle;
}
.zjxc_share_table tr:last-child td {
    border-bottom: none;
}
.zjxc_share_table .zjxc_share_role {
    color: var(--zjxc-text-primary);
    font-weight: 500;
    white-space: nowrap;
}
.zjxc_share_table .zjxc_input_addon {
    position: relative;
    display: block;
}
.zjxc_share_table .zjxc_input_addon input {
    padding-right: 32px !important;
    height: 32px !important;
    font-size: 13px !important;
}
.zjxc_share_table .zjxc_input_addon .zjxc_addon_text {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--zjxc-text-tertiary);
    font-size: 12px;
    pointer-events: none;
}
.zjxc_share_summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    margin-top: 10px;
    background: var(--zjxc-bg);
    border-radius: 6px;
    font-size: 13px;
}
.zjxc_share_summary_label { color: var(--zjxc-text-secondary); }
.zjxc_share_summary_value {
    font-weight: 700;
    font-size: 15px;
    color: var(--zjxc-primary-dark);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_share_summary_value.zjxc_over {
    color: var(--zjxc-danger);
}

/* 空状态 - 商品栅格 */
.zjxc_products_empty {
    grid-column: 1 / -1;
    padding: 80px 20px;
    text-align: center;
    color: var(--zjxc-text-tertiary);
}
.zjxc_products_empty i {
    font-size: 48px;
    margin-bottom: 12px;
    opacity: 0.5;
}

@media (max-width: 960px) {
    .zjxc_products_wrap { grid-template-columns: 1fr; }
    .zjxc_category_panel { position: static; }
    .zjxc_category_list { max-height: 260px; }
}

/* ==========================================================
 * 商品编辑弹窗
 * ========================================================== */
.zjxc_prod_form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 顶部: 图片 + 基础信息 */
.zjxc_prod_top {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 24px;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--zjxc-border-light);
}

.zjxc_prod_upload_wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.zjxc_prod_upload {
    position: relative;
    width: 200px;
    height: 200px;
    border-radius: 10px;
    background: var(--zjxc-bg);
    border: 1.5px dashed var(--zjxc-border);
    cursor: pointer;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}
.zjxc_prod_upload:hover {
    border-color: var(--zjxc-primary);
    background: var(--zjxc-primary-light);
}
.zjxc_prod_upload img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.zjxc_prod_upload_placeholder {
    text-align: center;
    color: var(--zjxc-text-tertiary);
    padding: 12px;
}
.zjxc_prod_upload_placeholder i {
    font-size: 36px;
    margin-bottom: 10px;
    color: var(--zjxc-text-tertiary);
    display: block;
}
.zjxc_prod_upload_txt {
    font-size: 13px;
    color: var(--zjxc-text-secondary);
    margin-bottom: 4px;
    font-weight: 500;
}
.zjxc_prod_upload_hint {
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_prod_upload_mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 13px;
    opacity: 0;
    transition: opacity 0.2s;
}
.zjxc_prod_upload_mask i { font-size: 24px; }
.zjxc_prod_upload:hover .zjxc_prod_upload_mask { opacity: 1; }
.zjxc_prod_upload_tip {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    text-align: center;
}

.zjxc_prod_fields {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}
.zjxc_prod_fields .zjxc_form_item { margin-bottom: 0; }
.zjxc_prod_price_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* 通用 addon 输入(¥/元/%) - 在弹窗里 */
.zjxc_input_addon {
    position: relative;
    display: block;
}
.zjxc_input_addon > input.zjxc_input {
    padding-right: 40px;
    width: 100%;
}
.zjxc_input_addon > .zjxc_addon_text {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--zjxc-text-tertiary);
    font-size: 13px;
    pointer-events: none;
}

/* 分成 / 返现 区块 */
.zjxc_share_section {
    background: #fbfcfd;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    padding: 16px 18px;
}
.zjxc_share_section_head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 12px;
}
.zjxc_share_section_title {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
}
.zjxc_share_section_title::before {
    content: "";
    width: 3px;
    height: 14px;
    background: var(--zjxc-primary);
    border-radius: 2px;
}
.zjxc_share_section_desc {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_share_two_col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

@media (max-width: 720px) {
    .zjxc_prod_top { grid-template-columns: 1fr; }
    .zjxc_prod_upload, .zjxc_prod_upload_wrap { width: 100%; }
    .zjxc_prod_upload { height: 220px; }
    .zjxc_share_two_col { grid-template-columns: 1fr; }
    .zjxc_prod_price_row { grid-template-columns: 1fr; }
}

/* ==========================================================
 * 上下级关系弹窗 v2
 * ========================================================== */
.zjxc_rl {
    padding: 4px 2px 8px;
}

/* 通用分区 */
.zjxc_rl_sec {
    margin-bottom: 8px;
}
.zjxc_rl_sec_head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 2px 10px;
    font-size: 13px;
    color: var(--zjxc-text-secondary);
    font-weight: 600;
}
.zjxc_rl_sec_head .zjxc_rl_sec_icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--zjxc-bg);
    color: var(--zjxc-text-tertiary);
    font-size: 13px;
}
.zjxc_rl_sec_head .zjxc_rl_sec_title { color: var(--zjxc-text-primary); }
.zjxc_rl_sec_head .zjxc_rl_sec_count {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--zjxc-primary-light);
    color: var(--zjxc-primary-dark);
    font-size: 12px;
    font-weight: 600;
}
.zjxc_rl_sec_head .zjxc_rl_sec_extra {
    margin-left: auto;
    font-size: 12px;
    font-weight: 400;
    color: var(--zjxc-text-tertiary);
}

/* 上级区 */
.zjxc_rl_up_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.zjxc_rl_up_card {
    position: relative;
    padding: 14px 14px 14px 14px;
    border: 1px solid var(--zjxc-border);
    border-radius: 10px;
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 60%);
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: all 0.18s;
    overflow: hidden;
}
.zjxc_rl_up_card::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--zjxc-primary);
}
.zjxc_rl_up_card:hover {
    box-shadow: 0 6px 16px rgba(34, 197, 94, 0.15);
    transform: translateY(-2px);
    border-color: var(--zjxc-primary);
}
.zjxc_rl_up_card .zjxc_avatar { flex-shrink: 0; }
.zjxc_rl_up_card_body { flex: 1; min-width: 0; }
.zjxc_rl_up_card_tag {
    display: inline-block;
    font-size: 11px;
    color: var(--zjxc-primary-dark);
    background: rgba(34, 197, 94, 0.12);
    padding: 1px 6px;
    border-radius: 4px;
    margin-bottom: 4px;
    font-weight: 600;
}
.zjxc_rl_up_card_name {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_rl_up_card_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    display: flex;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_rl_up_slot_empty {
    padding: 14px;
    border: 1.5px dashed var(--zjxc-border);
    border-radius: 10px;
    background: var(--zjxc-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--zjxc-text-tertiary);
    font-size: 13px;
    min-height: 72px;
}
.zjxc_rl_up_slot_empty i { font-size: 14px; opacity: 0.7; }

/* 连接线 */
.zjxc_rl_connector {
    height: 26px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
.zjxc_rl_connector::before {
    content: "";
    width: 2px;
    height: 100%;
    background: repeating-linear-gradient(
        180deg,
        var(--zjxc-primary) 0 4px,
        transparent 4px 8px
    );
}
.zjxc_rl_connector_arrow {
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 22px;
    height: 22px;
    background: var(--zjxc-primary);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    box-shadow: 0 3px 8px rgba(34, 197, 94, 0.4);
    z-index: 1;
}

/* 中心 hero 卡 */
.zjxc_rl_hero {
    position: relative;
    padding: 20px 22px;
    border-radius: 14px;
    background: linear-gradient(135deg, #16a34a 0%, #22c55e 50%, #3b82f6 130%);
    color: #fff;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(34, 197, 94, 0.22);
    margin: 4px 0;
}
.zjxc_rl_hero::before,
.zjxc_rl_hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(30px);
    pointer-events: none;
}
.zjxc_rl_hero::before {
    width: 160px; height: 160px;
    top: -60px; right: -40px;
    background: rgba(255,255,255,0.22);
}
.zjxc_rl_hero::after {
    width: 200px; height: 200px;
    bottom: -100px; left: -60px;
    background: rgba(59,130,246,0.35);
}
.zjxc_rl_hero_body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 16px;
}
.zjxc_rl_hero_avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(255,255,255,0.22);
    backdrop-filter: blur(6px);
    border: 2px solid rgba(255,255,255,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    flex-shrink: 0;
}
.zjxc_rl_hero_info { flex: 1; min-width: 0; }
.zjxc_rl_hero_tag {
    display: inline-block;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(255,255,255,0.22);
    color: #fff;
    margin-bottom: 6px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.zjxc_rl_hero_name {
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}
.zjxc_rl_hero_level {
    display: inline-block;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.28);
    font-weight: 600;
    letter-spacing: 0.02em;
}
.zjxc_rl_hero_meta {
    font-size: 12.5px;
    opacity: 0.9;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    flex-wrap: wrap;
}
.zjxc_rl_hero_meta i { opacity: 0.7; margin-right: 2px; }
.zjxc_rl_hero_stats {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,0.25);
}
.zjxc_rl_hero_stat { text-align: center; }
.zjxc_rl_hero_stat_val {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_rl_hero_stat_label {
    font-size: 12px;
    opacity: 0.85;
    margin-top: 2px;
}

/* 下级/团队区 */
.zjxc_rl_team_search {
    position: relative;
    min-width: 200px;
}
.zjxc_rl_team_search input {
    height: 30px;
    padding: 0 10px 0 28px;
    border: 1px solid var(--zjxc-border);
    border-radius: 6px;
    background: #fff;
    font-size: 12.5px;
    outline: none;
    width: 200px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.zjxc_rl_team_search input:focus {
    border-color: var(--zjxc-primary);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}
.zjxc_rl_team_search i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--zjxc-text-tertiary);
    font-size: 12px;
    pointer-events: none;
}

.zjxc_rl_team_list {
    max-height: 320px;
    overflow-y: auto;
    padding: 2px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.zjxc_rl_team_item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: all 0.18s;
}
.zjxc_rl_team_item:hover {
    border-color: var(--zjxc-secondary);
    box-shadow: 0 4px 10px rgba(59, 130, 246, 0.10);
    transform: translateY(-1px);
}
.zjxc_rl_team_item .zjxc_avatar { flex-shrink: 0; }
.zjxc_rl_team_item_body { flex: 1; min-width: 0; }
.zjxc_rl_team_item_top {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
}
.zjxc_rl_team_item_name {
    font-size: 13px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.zjxc_rl_team_item_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_rl_team_item_arrow {
    color: var(--zjxc-text-tertiary);
    font-size: 12px;
    opacity: 0;
    transition: all 0.18s;
    flex-shrink: 0;
}
.zjxc_rl_team_item:hover .zjxc_rl_team_item_arrow {
    opacity: 1;
    transform: translateX(2px);
    color: var(--zjxc-secondary);
}

/* 空状态 */
.zjxc_rl_empty {
    grid-column: 1 / -1;
    padding: 30px 20px;
    text-align: center;
    color: var(--zjxc-text-tertiary);
    font-size: 13px;
    background: var(--zjxc-bg);
    border-radius: 8px;
    border: 1px dashed var(--zjxc-border);
}
.zjxc_rl_empty i {
    font-size: 26px;
    display: block;
    margin-bottom: 6px;
    opacity: 0.5;
}

/* 状态圆点 */
.zjxc_rl_dot_ok, .zjxc_rl_dot_ban {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.zjxc_rl_dot_ok  { background: var(--zjxc-success); box-shadow: 0 0 0 2px rgba(16,185,129,0.18); }
.zjxc_rl_dot_ban { background: var(--zjxc-danger);  box-shadow: 0 0 0 2px rgba(239,68,68,0.18); }

/* 窄屏适配 */
@media (max-width: 640px) {
    .zjxc_rl_up_grid { grid-template-columns: 1fr; }
    .zjxc_rl_team_list { grid-template-columns: 1fr; }
    .zjxc_rl_hero_stats { grid-template-columns: 1fr 1fr; }
    .zjxc_rl_team_search input { width: 100%; }
}

/* ============= 用户上下级关系弹窗 ============= */
.zjxc_rel_section {
    margin-bottom: 20px;
}
.zjxc_rel_section_title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    margin-bottom: 12px;
    padding-left: 10px;
    border-left: 3px solid var(--zjxc-primary);
    line-height: 1.2;
}
.zjxc_rel_section_title .zjxc_rel_count {
    font-size: 12px;
    font-weight: 500;
    color: var(--zjxc-text-tertiary);
    background: var(--zjxc-bg);
    padding: 2px 8px;
    border-radius: 10px;
}
.zjxc_rel_current {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: linear-gradient(135deg, rgba(34,197,94,0.08), rgba(59,130,246,0.05));
    border: 1px solid rgba(34,197,94,0.2);
    border-radius: 8px;
    margin-bottom: 20px;
}
.zjxc_rel_current .zjxc_avatar {
    width: 44px;
    height: 44px;
    font-size: 16px;
}
.zjxc_rel_current_info { flex: 1; min-width: 0; }
.zjxc_rel_current_name {
    font-size: 15px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    margin-bottom: 4px;
}
.zjxc_rel_current_meta {
    display: flex;
    gap: 14px;
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    flex-wrap: wrap;
}
.zjxc_rel_current_meta i {
    margin-right: 4px;
    color: var(--zjxc-text-tertiary);
}

.zjxc_rel_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}
.zjxc_rel_card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 6px;
    background: #fff;
    transition: border-color 0.15s;
}
.zjxc_rel_card:hover {
    border-color: var(--zjxc-primary);
}
.zjxc_rel_card .zjxc_avatar {
    width: 36px;
    height: 36px;
    font-size: 13px;
}
.zjxc_rel_card_info { flex: 1; min-width: 0; }
.zjxc_rel_card_name {
    font-size: 13px;
    font-weight: 500;
    color: var(--zjxc-text-primary);
    margin-bottom: 2px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.zjxc_rel_card_phone {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    font-variant-numeric: tabular-nums;
}
.zjxc_rel_card_badge {
    font-size: 11px;
    padding: 1px 6px;
    border-radius: 8px;
    background: var(--zjxc-bg);
    color: var(--zjxc-text-secondary);
    font-weight: 500;
}

.zjxc_rel_empty {
    padding: 22px 12px;
    text-align: center;
    color: var(--zjxc-text-tertiary);
    background: var(--zjxc-bg);
    border: 1px dashed var(--zjxc-border);
    border-radius: 6px;
    font-size: 13px;
}
.zjxc_rel_empty i {
    display: block;
    font-size: 22px;
    margin-bottom: 6px;
    color: #cbd5e1;
}

.zjxc_rel_team_list {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 6px;
    background: #fff;
}
.zjxc_rel_team_item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--zjxc-border-light);
}
.zjxc_rel_team_item:last-child { border-bottom: none; }
.zjxc_rel_team_item .zjxc_avatar {
    width: 32px;
    height: 32px;
    font-size: 12px;
}
.zjxc_rel_team_info { flex: 1; min-width: 0; }
.zjxc_rel_team_name {
    font-size: 13px;
    font-weight: 500;
    color: var(--zjxc-text-primary);
    line-height: 1.4;
}
.zjxc_rel_team_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
}

@media (max-width: 640px) {
    .zjxc_rel_grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * 用户上下级关系弹窗 v2 (zjxc_rl_*)
 * ============================================================ */
.zjxc_rl {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ---- Hero (中心用户) ---- */
.zjxc_rl_hero {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 55%, #0ea5e9 100%);
    border-radius: 12px;
    color: #fff;
    box-shadow: 0 8px 24px rgba(34,197,94,0.20);
}
.zjxc_rl_hero_avatar {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: rgba(255,255,255,0.22);
    border: 2px solid rgba(255,255,255,0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
    backdrop-filter: blur(4px);
}
.zjxc_rl_hero_info { min-width: 0; }
.zjxc_rl_hero_name {
    font-size: 18px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.zjxc_rl_hero_name .zjxc_badge {
    background: rgba(255,255,255,0.22) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.35);
    font-weight: 600;
}
.zjxc_rl_hero_meta {
    display: flex;
    gap: 18px;
    font-size: 12.5px;
    color: rgba(255,255,255,0.9);
    flex-wrap: wrap;
}
.zjxc_rl_hero_meta i { margin-right: 4px; opacity: 0.85; }

.zjxc_rl_hero_stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(72px, auto));
    gap: 18px;
    padding-left: 18px;
    border-left: 1px solid rgba(255,255,255,0.35);
}
.zjxc_rl_stat { text-align: center; }
.zjxc_rl_stat_v {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.1;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    letter-spacing: -0.02em;
    color: #fff;
}
.zjxc_rl_stat_v span {
    font-size: 12px;
    font-weight: 500;
    opacity: 0.75;
    margin-left: 1px;
}
.zjxc_rl_stat_l {
    font-size: 11.5px;
    opacity: 0.88;
    margin-top: 4px;
    letter-spacing: 0.02em;
}

/* ---- Block (上级/下级板块) ---- */
.zjxc_rl_block { }
.zjxc_rl_block_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 12px;
}
.zjxc_rl_block_title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}
.zjxc_rl_block_title i {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
}
.zjxc_rl_up   { background: rgba(34,197,94,0.14); color: #16a34a; }
.zjxc_rl_down { background: rgba(59,130,246,0.14); color: #2563eb; }
.zjxc_rl_count {
    font-size: 12px;
    font-weight: 500;
    color: #64748b;
    background: #f1f5f9;
    padding: 2px 10px;
    border-radius: 10px;
    margin-left: 4px;
}

/* ---- 上级卡片 (2 个槽位) ---- */
.zjxc_rl_parents {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.zjxc_rl_pcard {
    position: relative;
    padding: 14px 14px 12px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    transition: all 0.18s;
    cursor: pointer;
}
.zjxc_rl_pcard:hover:not(.zjxc_rl_pcard_empty) {
    border-color: #22c55e;
    box-shadow: 0 6px 18px rgba(34,197,94,0.12);
    transform: translateY(-1px);
}
.zjxc_rl_pcard_tag {
    position: absolute;
    top: 10px;
    right: 12px;
    font-size: 10.5px;
    color: #64748b;
    background: #f1f5f9;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
}
.zjxc_rl_pcard_body {
    display: flex;
    gap: 12px;
    align-items: center;
}
.zjxc_rl_pcard_info { min-width: 0; flex: 1; }
.zjxc_rl_pcard_name {
    font-size: 14px;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_rl_pcard_meta { margin-bottom: 4px; }
.zjxc_rl_pcard_phone {
    font-size: 12px;
    color: #64748b;
}
.zjxc_rl_pcard_empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 22px 12px;
    border: 1.5px dashed #cbd5e1;
    background: #f8fafc;
    color: #94a3b8;
    cursor: default;
}
.zjxc_rl_pcard_empty i { font-size: 22px; margin-bottom: 6px; }
.zjxc_rl_pcard_empty_txt { font-size: 12.5px; }
.zjxc_rl_pcard_empty:hover { transform: none; box-shadow: none; }

/* ---- Avatar 带状态圆点 ---- */
.zjxc_rl_avatar {
    position: relative;
    width: 42px !important;
    height: 42px !important;
    font-size: 15px !important;
    flex-shrink: 0;
}
.zjxc_rl_st {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid #fff;
}
.zjxc_rl_st_ok  { background: #22c55e; }
.zjxc_rl_st_ban { background: #ef4444; }

/* ---- 团队搜索 ---- */
.zjxc_rl_search {
    position: relative;
    min-width: 220px;
}
.zjxc_rl_search input {
    width: 100%;
    height: 30px;
    padding: 0 10px 0 30px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    font-size: 12.5px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.zjxc_rl_search input:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34,197,94,0.15);
}
.zjxc_rl_search i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 12px;
    pointer-events: none;
}

/* ---- 团队/下级列表 ---- */
.zjxc_rl_children {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    max-height: 340px;
    overflow-y: auto;
    padding: 2px;
}
.zjxc_rl_ccard {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.18s;
    position: relative;
}
.zjxc_rl_ccard:hover {
    border-color: #3b82f6;
    border-left-width: 3px;
    padding-left: 12px;
    box-shadow: 0 4px 12px rgba(59,130,246,0.10);
    transform: translateY(-1px);
}
.zjxc_rl_ccard_body { flex: 1; min-width: 0; }
.zjxc_rl_ccard_head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}
.zjxc_rl_ccard_name {
    font-size: 13.5px;
    font-weight: 600;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 120px;
}
.zjxc_rl_ccard_meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: #64748b;
    flex-wrap: wrap;
}
.zjxc_rl_ccard_sub {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: #16a34a;
}
.zjxc_rl_ccard_sub.zjxc_text_muted { color: #94a3b8; }
.zjxc_rl_ccard_arrow {
    color: #cbd5e1;
    font-size: 12px;
    transition: all 0.18s;
    flex-shrink: 0;
}
.zjxc_rl_ccard:hover .zjxc_rl_ccard_arrow {
    color: #3b82f6;
    transform: translateX(3px);
}

/* ---- 空状态 ---- */
.zjxc_rl_empty {
    grid-column: 1 / -1;
    padding: 34px 20px;
    text-align: center;
    color: #94a3b8;
    background: #f8fafc;
    border: 1px dashed #e2e8f0;
    border-radius: 10px;
}
.zjxc_rl_empty i {
    display: block;
    font-size: 32px;
    margin-bottom: 10px;
    color: #cbd5e1;
}
.zjxc_rl_empty_sub {
    font-size: 12px;
    margin-top: 6px;
    color: #cbd5e1;
}

/* ---- 响应式 ---- */
@media (max-width: 720px) {
    .zjxc_rl_hero {
        grid-template-columns: auto 1fr;
    }
    .zjxc_rl_hero_stats {
        grid-column: 1 / -1;
        padding-left: 0;
        border-left: none;
        border-top: 1px solid rgba(255,255,255,0.30);
        padding-top: 14px;
    }
    .zjxc_rl_parents,
    .zjxc_rl_children { grid-template-columns: 1fr; }
    .zjxc_rl_search { min-width: 100%; }
    .zjxc_rl_block_head { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================
 * 财务中心
 * ========================================================== */
/* 顶部统计卡 */
.zjxc_fin_stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 16px;
}
.zjxc_fin_stat {
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: box-shadow 0.15s;
}
.zjxc_fin_stat:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.06); }
.zjxc_fin_stat_icon {
    width: 44px; height: 44px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    font-size: 18px;
    flex-shrink: 0;
}
.zjxc_fin_stat_icon.zjxc_fin_gm  { background: linear-gradient(135deg, #22c55e, #10b981); }
.zjxc_fin_stat_icon.zjxc_fin_bl  { background: linear-gradient(135deg, #3b82f6, #06b6d4); }
.zjxc_fin_stat_icon.zjxc_fin_or  { background: linear-gradient(135deg, #f59e0b, #f97316); }
.zjxc_fin_stat_icon.zjxc_fin_pk  { background: linear-gradient(135deg, #ec4899, #a855f7); }
.zjxc_fin_stat_body { flex: 1; min-width: 0; }
.zjxc_fin_stat_label {
    font-size: 12.5px;
    color: var(--zjxc-text-tertiary);
    margin-bottom: 4px;
}
.zjxc_fin_stat_value {
    font-size: 22px;
    font-weight: 700;
    color: var(--zjxc-text-primary);
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}

/* Tabs */
.zjxc_tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--zjxc-border-light);
    margin-bottom: 16px;
}
.zjxc_tab {
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 500;
    color: var(--zjxc-text-secondary);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.15s;
    margin-bottom: -1px;
}
.zjxc_tab:hover { color: var(--zjxc-primary); }
.zjxc_tab.zjxc_active {
    color: var(--zjxc-primary);
    border-bottom-color: var(--zjxc-primary);
    font-weight: 600;
}

/* 订单详情弹窗 - 头部 */
.zjxc_fd_head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    padding: 16px;
    background: linear-gradient(135deg, rgba(34,197,94,0.06), rgba(59,130,246,0.04));
    border: 1px solid rgba(34,197,94,0.15);
    border-radius: 10px;
    margin-bottom: 16px;
}
.zjxc_fd_head_item { display: flex; flex-direction: column; gap: 4px; }
.zjxc_fd_head_label {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}
.zjxc_fd_head_value {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_fd_head_value.zjxc_fd_amount {
    font-size: 20px;
    color: var(--zjxc-primary);
}

/* 分账总览 */
.zjxc_fd_summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}
.zjxc_fd_sum_card {
    padding: 14px 16px;
    border-radius: 8px;
    border: 1px solid var(--zjxc-border-light);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.zjxc_fd_sum_card_left { min-width: 0; }
.zjxc_fd_sum_label {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    margin-bottom: 3px;
}
.zjxc_fd_sum_value {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_fd_sum_value.zjxc_c_share  { color: var(--zjxc-secondary); }
.zjxc_fd_sum_value.zjxc_c_rebate { color: #f59e0b; }
.zjxc_fd_sum_value.zjxc_c_profit { color: var(--zjxc-primary); }
.zjxc_fd_sum_pct {
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
    background: var(--zjxc-bg);
    padding: 3px 8px;
    border-radius: 10px;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}

/* 分账表格 */
.zjxc_fd_section_title {
    font-size: 13px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    margin: 4px 0 10px;
    padding-left: 10px;
    border-left: 3px solid var(--zjxc-primary);
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.zjxc_fd_section_title .zjxc_fd_section_total {
    font-size: 13px;
    color: var(--zjxc-primary);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    border-left: none;
    padding-left: 0;
}
.zjxc_fd_table {
    width: 100%;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    margin-bottom: 18px;
}
.zjxc_fd_table th {
    background: #f8fafc;
    color: var(--zjxc-text-secondary);
    font-weight: 600;
    text-align: left;
    padding: 10px 12px;
    font-size: 12px;
    border-bottom: 1px solid var(--zjxc-border-light);
}
.zjxc_fd_table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--zjxc-border-light);
    vertical-align: middle;
}
.zjxc_fd_table tr:last-child td { border-bottom: none; }
.zjxc_fd_table tr:hover td { background: rgba(34,197,94,0.03); }
.zjxc_fd_role {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
}
.zjxc_fd_role_dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.zjxc_fd_amt {
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    font-weight: 600;
    color: var(--zjxc-primary);
    white-space: nowrap;
}
.zjxc_fd_amt_zero {
    color: var(--zjxc-text-tertiary);
    font-weight: 400;
}
.zjxc_fd_pct {
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    color: var(--zjxc-text-secondary);
    font-size: 12.5px;
}
.zjxc_fd_recv {
    color: var(--zjxc-text-primary);
    font-size: 12.5px;
}
.zjxc_fd_recv_sub {
    color: var(--zjxc-text-tertiary);
    font-size: 11.5px;
    margin-top: 2px;
}
.zjxc_fd_footer_row td {
    background: #f8fafc;
    font-weight: 700;
    color: var(--zjxc-text-primary);
    border-top: 2px solid var(--zjxc-border);
}

/* 提现列表 */
.zjxc_wd_item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    background: #fff;
    margin-bottom: 10px;
}
.zjxc_wd_item_body { flex: 1; min-width: 0; }
.zjxc_wd_user {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.zjxc_wd_meta {
    display: flex;
    gap: 14px;
    font-size: 12.5px;
    color: var(--zjxc-text-tertiary);
    flex-wrap: wrap;
}
.zjxc_wd_meta i { margin-right: 4px; }
.zjxc_wd_amt {
    text-align: right;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--zjxc-warning);
    min-width: 120px;
}
.zjxc_wd_amt_label {
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
    font-weight: 400;
    margin-top: 2px;
}
.zjxc_wd_actions {
    display: flex;
    gap: 8px;
    min-width: 180px;
    justify-content: flex-end;
}

@media (max-width: 960px) {
    .zjxc_fin_stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .zjxc_fin_stats { grid-template-columns: 1fr; }
    .zjxc_fd_head, .zjxc_fd_summary { grid-template-columns: 1fr; }
    .zjxc_wd_item { flex-direction: column; align-items: flex-start; }
    .zjxc_wd_amt, .zjxc_wd_actions { text-align: left; min-width: auto; width: 100%; justify-content: flex-start; }
}

/* ============================================================
 * 财务分账详情弹窗 - 极简版 (无图标)
 * ============================================================ */

/* ---------- 头部订单卡 ---------- */
.zjxc_fd_head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    padding: 18px 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    margin-bottom: 18px;
}
.zjxc_fd_head_left { min-width: 0; }
.zjxc_fd_head_line {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    font-size: 13px;
    color: var(--zjxc-text-secondary);
    margin-bottom: 10px;
    line-height: 1.6;
}
.zjxc_fd_head_line:last-child { margin-bottom: 0; }
.zjxc_fd_head_line span:first-child {
    color: var(--zjxc-text-tertiary);
    font-size: 12px;
    margin-right: 4px;
}
.zjxc_fd_head_line .zjxc_mono {
    color: var(--zjxc-text-primary);
    font-weight: 500;
}
.zjxc_fd_head_prod {
    color: var(--zjxc-text-primary);
    font-weight: 600;
    font-size: 14px;
}
.zjxc_fd_head_right {
    text-align: right;
    padding-left: 20px;
    border-left: 1px solid var(--zjxc-border-light);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 160px;
}
.zjxc_fd_head_right_label {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    margin-bottom: 4px;
}
.zjxc_fd_head_right_val {
    font-size: 28px;
    font-weight: 700;
    color: var(--zjxc-primary-dark);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

/* ---------- 汇总 4 卡片 ---------- */
.zjxc_fd_summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}
.zjxc_fd_scard {
    position: relative;
    padding: 14px 16px 14px 18px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    overflow: hidden;
}
.zjxc_fd_scard::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
}
.zjxc_fd_scard_pri::before   { background: #0f172a; }
.zjxc_fd_scard_blue::before  { background: #3b82f6; }
.zjxc_fd_scard_orange::before{ background: #f59e0b; }
.zjxc_fd_scard_green::before { background: #22c55e; }

.zjxc_fd_scard_label {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    margin-bottom: 6px;
    letter-spacing: 0.02em;
}
.zjxc_fd_scard_val {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--zjxc-text-primary);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}
.zjxc_fd_scard_pct {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    font-variant-numeric: tabular-nums;
}
.zjxc_fd_scard_pri   .zjxc_fd_scard_val { color: #0f172a; }
.zjxc_fd_scard_blue  .zjxc_fd_scard_val { color: #2563eb; }
.zjxc_fd_scard_orange.zjxc_fd_scard      .zjxc_fd_scard_val { color: #d97706; }
.zjxc_fd_scard_green .zjxc_fd_scard_val { color: var(--zjxc-primary-dark); }

/* ---------- 分节 ---------- */
.zjxc_fd_section { margin-bottom: 22px; }
.zjxc_fd_section:last-child { margin-bottom: 4px; }
.zjxc_fd_sec_head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--zjxc-border-light);
}
.zjxc_fd_sec_title {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    letter-spacing: 0.02em;
}
.zjxc_fd_sec_title_sub {
    color: var(--zjxc-text-tertiary);
    font-weight: 500;
    font-size: 12px;
    margin-left: 8px;
}
.zjxc_fd_sec_total {
    font-size: 12px;
    color: var(--zjxc-text-secondary);
}
.zjxc_fd_sec_total b {
    color: var(--zjxc-text-primary);
    font-weight: 700;
    font-size: 14px;
    margin-left: 4px;
    font-variant-numeric: tabular-nums;
}

/* ---------- 表格 ---------- */
.zjxc_fd_tbl {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    overflow: hidden;
}
.zjxc_fd_tbl th {
    background: #f8fafc;
    color: var(--zjxc-text-secondary);
    font-weight: 500;
    font-size: 12px;
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid var(--zjxc-border-light);
    letter-spacing: 0.02em;
}
.zjxc_fd_tbl td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--zjxc-border-light);
    vertical-align: middle;
    color: var(--zjxc-text-primary);
}
.zjxc_fd_tbl tbody tr:last-child td { border-bottom: none; }
.zjxc_fd_tbl tbody tr:hover td { background: #fafbfc; }

.zjxc_fd_tbl tfoot td {
    background: #f8fafc;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    border-top: 1px solid var(--zjxc-border-light);
    border-bottom: none;
    font-size: 13px;
}

/* 空值行淡化 */
.zjxc_fd_row_dim td { color: #cbd5e1; }
.zjxc_fd_row_dim .zjxc_fd_role_txt { color: #94a3b8; }

/* 角色列 */
.zjxc_fd_role {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}
.zjxc_fd_role_bar {
    width: 3px;
    height: 14px;
    border-radius: 2px;
    flex-shrink: 0;
}
.zjxc_fd_role_txt {
    font-weight: 500;
    color: var(--zjxc-text-primary);
    font-size: 13px;
}

/* 收款人 */
.zjxc_fd_rcv {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.zjxc_fd_rcv .zjxc_avatar_sm {
    width: 28px; height: 28px; font-size: 11px;
    flex-shrink: 0;
}
.zjxc_fd_rcv_placeholder {
    width: 28px; height: 28px;
    border-radius: 6px;
    background: #f1f5f9;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.zjxc_fd_rcv_info { min-width: 0; }
.zjxc_fd_rcv_nick {
    font-size: 13px;
    font-weight: 500;
    color: var(--zjxc-text-primary);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 220px;
}
.zjxc_fd_rcv_meta {
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
    line-height: 1.4;
    margin-top: 2px;
}

/* 收款人类型标签 */
.zjxc_fd_tag {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.6;
}
.zjxc_fd_tag_sys   { background: #eff6ff; color: #2563eb; }
.zjxc_fd_tag_corp  { background: #f0fdf4; color: #16a34a; }
.zjxc_fd_tag_staff { background: #fef3c7; color: #b45309; }
.zjxc_fd_tag_none  { background: #f1f5f9; color: #94a3b8; }

/* 金额单元格 */
.zjxc_fd_amt {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 500;
    color: var(--zjxc-text-primary);
    white-space: nowrap;
}
.zjxc_fd_amt_pos   { color: var(--zjxc-primary-dark); font-weight: 600; }
.zjxc_fd_amt_zero  { color: #cbd5e1; font-weight: 400; }

/* 响应式 */
@media (max-width: 720px) {
    .zjxc_fd_head { grid-template-columns: 1fr; }
    .zjxc_fd_head_right {
        border-left: none;
        border-top: 1px solid var(--zjxc-border-light);
        padding-left: 0;
        padding-top: 12px;
        text-align: left;
    }
    .zjxc_fd_summary { grid-template-columns: repeat(2, 1fr); }
    .zjxc_fd_rcv_nick { max-width: 140px; }
}

/* ==========================================================
 * 分账详情弹窗 v3 - 无图标简洁版
 * 类名与 zjxc_finance.js 保持一致
 * ========================================================== */

/* ---- 头部订单卡 ---- */
.zjxc_fd_head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: stretch;
    padding: 18px 22px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    margin-bottom: 18px;
}
.zjxc_fd_head_main { min-width: 0; }
.zjxc_fd_head_label {
    font-size: 12px;
    color: #94a3b8;
    letter-spacing: 0.3px;
    margin-bottom: 4px;
}
.zjxc_fd_head_no {
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: 0.5px;
    margin-bottom: 14px;
}
.zjxc_fd_head_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 24px;
    font-size: 13px;
}
.zjxc_fd_head_grid > div {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}
.zjxc_fd_head_k {
    color: #94a3b8;
    font-size: 12px;
    flex-shrink: 0;
    min-width: 52px;
}
.zjxc_fd_head_v {
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_fd_head_amount {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding-left: 22px;
    border-left: 1px solid #cbd5e1;
}
.zjxc_fd_head_amount_l {
    font-size: 12px;
    color: #94a3b8;
    margin-bottom: 4px;
}
.zjxc_fd_head_amount_v {
    font-size: 28px;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}

/* ---- 4 张汇总卡 ---- */
.zjxc_fd_stat {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}
.zjxc_fd_stat_card {
    position: relative;
    padding: 14px 16px 14px 18px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}
.zjxc_fd_stat_bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}
.zjxc_fd_stat_label {
    font-size: 12px;
    color: #64748b;
    margin-bottom: 6px;
    letter-spacing: 0.3px;
}
.zjxc_fd_stat_val {
    font-size: 22px;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.02em;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    line-height: 1.15;
    margin-bottom: 4px;
}
.zjxc_fd_stat_sub {
    font-size: 12px;
    color: #94a3b8;
}
.zjxc_fd_stat_blue   .zjxc_fd_stat_bar { background: #3b82f6; }
.zjxc_fd_stat_orange .zjxc_fd_stat_bar { background: #f59e0b; }
.zjxc_fd_stat_gray   .zjxc_fd_stat_bar { background: #94a3b8; }
.zjxc_fd_stat_green  .zjxc_fd_stat_bar { background: #22c55e; }

/* ---- 明细区 ---- */
.zjxc_fd_sec { margin-bottom: 22px; }
.zjxc_fd_sec:last-child { margin-bottom: 4px; }
.zjxc_fd_sec_head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding-left: 4px;
}
.zjxc_fd_sec_title {
    font-size: 14px;
    font-weight: 600;
    color: #0f172a;
    letter-spacing: 0.2px;
}
.zjxc_fd_sec_hint {
    font-size: 12px;
    color: #94a3b8;
}

/* ---- 明细表 ---- */
.zjxc_fd_tbl {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    font-size: 13px;
    table-layout: fixed;
}
.zjxc_fd_tbl thead th {
    background: #f8fafc;
    color: #64748b;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.3px;
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
}
.zjxc_fd_tbl tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #334155;
}
.zjxc_fd_tbl tbody tr:last-child td { border-bottom: none; }
.zjxc_fd_tbl tbody tr:hover td { background: #fafbfc; }
.zjxc_fd_tbl tfoot td {
    padding: 12px 14px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    color: #0f172a;
}

/* 角色列 */
.zjxc_fd_role {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
    color: #334155;
}
.zjxc_fd_role_dot {
    display: inline-block;
    width: 4px;
    height: 16px;
    border-radius: 2px;
    flex-shrink: 0;
}

/* 收款人 */
.zjxc_fd_rcv { line-height: 1.35; min-width: 0; }
.zjxc_fd_rcv_name {
    font-size: 13px;
    font-weight: 500;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_fd_rcv_meta {
    margin-top: 2px;
    font-size: 12px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* 类型标签 */
.zjxc_fd_tag {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.3px;
}
.zjxc_fd_tag_sys   { background: #dbeafe; color: #1d4ed8; }
.zjxc_fd_tag_corp  { background: #dcfce7; color: #15803d; }
.zjxc_fd_tag_staff { background: #fef3c7; color: #a16207; }

/* 数字列 */
.zjxc_fd_num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: #64748b;
}
.zjxc_fd_num_strong {
    color: #0f172a;
    font-weight: 700;
}

/* 无效行 */
.zjxc_fd_dim td { color: #cbd5e1 !important; }
.zjxc_fd_dim .zjxc_fd_num_strong { color: #cbd5e1 !important; font-weight: 500; }
.zjxc_fd_dim .zjxc_fd_role_dot { opacity: 0.35; }
.zjxc_fd_dim .zjxc_fd_role { color: #94a3b8; }

/* 表尾合计 */
.zjxc_fd_sum_label {
    text-align: right;
    font-weight: 600;
    color: #64748b;
}
.zjxc_fd_sum_val {
    font-weight: 700;
    color: #16a34a;
    font-size: 14px;
}

/* 响应式 */
@media (max-width: 860px) {
    .zjxc_fd_stat { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .zjxc_fd_head { grid-template-columns: 1fr; }
    .zjxc_fd_head_amount {
        padding-left: 0;
        border-left: none;
        border-top: 1px solid #cbd5e1;
        padding-top: 12px;
        align-items: flex-start;
    }
    .zjxc_fd_head_grid { grid-template-columns: 1fr; }
    .zjxc_fd_stat { grid-template-columns: 1fr; }
}

/* ============================================================
 * 管理员管理面板
 * ============================================================ */

/* 顶部头图区(标题 + 描述 + 新增按钮) */
.zjxc_admin_head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 24px;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    margin-bottom: 16px;
}
.zjxc_admin_head_l h2 {
    font-size: 18px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    margin: 0 0 4px;
}
.zjxc_admin_head_l p {
    font-size: 13px;
    color: var(--zjxc-text-secondary);
    margin: 0;
}

/* 顶部工具栏(搜索 + 4 卡统计) */
.zjxc_admin_toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    margin-bottom: 16px;
}
.zjxc_admin_toolbar .zjxc_admin_search {
    position: relative;
    width: 260px;
    flex-shrink: 0;
}
.zjxc_admin_toolbar .zjxc_admin_search input {
    width: 100%;
    height: 34px;
    padding: 0 12px 0 32px;
    border: 1px solid var(--zjxc-border);
    border-radius: 6px;
    font-size: 13px;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.zjxc_admin_toolbar .zjxc_admin_search input:focus {
    border-color: var(--zjxc-primary);
    box-shadow: 0 0 0 3px rgba(34,197,94,.15);
}
.zjxc_admin_toolbar .zjxc_admin_search i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--zjxc-text-tertiary);
    font-size: 12px;
}

/* 4 张统计卡 */
.zjxc_admin_stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    flex: 1;
}
.zjxc_admin_stat {
    padding: 12px 14px;
    background: linear-gradient(135deg, #f8fafc, #ffffff);
    border: 1px solid var(--zjxc-border-light);
    border-left: 3px solid var(--zjxc-primary);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.zjxc_admin_stat:nth-child(2) { border-left-color: var(--zjxc-success); }
.zjxc_admin_stat:nth-child(3) { border-left-color: var(--zjxc-danger); }
.zjxc_admin_stat:nth-child(4) { border-left-color: #f59e0b; }
.zjxc_admin_stat_v {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--zjxc-text-primary);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    letter-spacing: -0.02em;
}
.zjxc_admin_stat_l {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}

/* 管理员表格容器 */
.zjxc_admin_card {
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    overflow: hidden;
}
.zjxc_admin_card .zjxc_table {
    margin: 0;
    width: 100%;
}
.zjxc_admin_card .zjxc_table th {
    background: #f8fafc;
    color: var(--zjxc-text-secondary);
    font-weight: 600;
    font-size: 12px;
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--zjxc-border-light);
    letter-spacing: 0.02em;
}
.zjxc_admin_card .zjxc_table td {
    padding: 14px;
    border-bottom: 1px solid var(--zjxc-border-light);
    vertical-align: middle;
    font-size: 13px;
}
.zjxc_admin_card .zjxc_table tr:last-child td {
    border-bottom: none;
}
.zjxc_admin_card .zjxc_table tbody tr:hover {
    background: #f8fafc;
}

/* 权限胶囊组 (表格中显示) */
.zjxc_perm_chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.zjxc_perm_chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    font-size: 11.5px;
    line-height: 1.4;
    border-radius: 10px;
    background: #f1f5f9;
    color: #94a3b8;
    border: 1px solid #e2e8f0;
    text-decoration: line-through;
    text-decoration-color: rgba(148,163,184,0.6);
    font-weight: 500;
}
.zjxc_perm_chip.zjxc_perm_on {
    background: rgba(34,197,94,0.08);
    color: var(--zjxc-primary-dark);
    border-color: rgba(34,197,94,0.30);
    text-decoration: none;
}
.zjxc_perm_all {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 10px;
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    color: #92400e;
    border: 1px solid #fcd34d;
}

/* ============================================================
 * 编辑管理员弹窗 - 权限区
 * ============================================================ */
.zjxc_perm_section {
    margin-top: 6px;
    padding: 14px 16px;
    background: #f8fafc;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
}
.zjxc_perm_section_title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 10px;
    flex-wrap: wrap;
}
.zjxc_perm_section_title > span:first-child,
.zjxc_perm_section_title strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
}
.zjxc_perm_section_hint {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    font-weight: 400;
}

.zjxc_perm_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.zjxc_perm_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 8px;
    transition: border-color .15s, background .15s, opacity .15s;
}
.zjxc_perm_row:hover {
    border-color: #cbd5e1;
}
.zjxc_perm_row_dim {
    opacity: 0.55;
    pointer-events: none;
}
.zjxc_perm_row_l {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex: 1;
    min-width: 0;
}
.zjxc_perm_row_dot {
    display: block;
    width: 4px;
    align-self: stretch;
    border-radius: 2px;
    background: var(--zjxc-primary);
    flex-shrink: 0;
    min-height: 32px;
}
.zjxc_perm_row_name {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    line-height: 1.3;
    margin-bottom: 3px;
}
.zjxc_perm_row_desc {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    line-height: 1.4;
}

/* 表单 2 列栅格 (弹窗内) */
.zjxc_form_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.zjxc_form_row .zjxc_form_item {
    margin-bottom: 14px;
}

/* 响应式 */
@media (max-width: 960px) {
    .zjxc_admin_toolbar { flex-direction: column; align-items: stretch; }
    .zjxc_admin_toolbar .zjxc_admin_search { width: 100%; }
    .zjxc_admin_stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .zjxc_perm_list { grid-template-columns: 1fr; }
    .zjxc_form_row { grid-template-columns: 1fr; }
    .zjxc_admin_head { flex-direction: column; gap: 12px; }
}

/* 商品编辑 - 分成/复购金额提示条 */
.zjxc_prod_amt_summary {
    margin-top: 6px;
    padding: 8px 12px;
    background: #f8fafc;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 6px;
    font-size: 12.5px;
    line-height: 1.5;
}

/* ============================================================
 * 商品编辑弹窗 - 类型切换 + 极差/固定标签 + 复购档提示
 * ============================================================ */

/* 商品类型切换器 (radio pill) */
.zjxc_prod_type_switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 4px;
}
.zjxc_prod_type_opt {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px 12px 40px;
    background: #fff;
    border: 1px solid var(--zjxc-border);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.18s;
}
.zjxc_prod_type_opt::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid #cbd5e1;
    background: #fff;
    transition: all 0.18s;
}
.zjxc_prod_type_opt input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.zjxc_prod_type_opt:hover {
    border-color: #94a3b8;
}
.zjxc_prod_type_opt.zjxc_active {
    border-color: var(--zjxc-primary);
    background: linear-gradient(135deg, rgba(34,197,94,0.06), rgba(59,130,246,0.04));
    box-shadow: 0 0 0 3px rgba(34,197,94,0.10);
}
.zjxc_prod_type_opt.zjxc_active::before {
    border-color: var(--zjxc-primary);
    background: radial-gradient(circle, var(--zjxc-primary) 40%, #fff 45%);
}
.zjxc_prod_type_name {
    font-size: 14px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
}
.zjxc_prod_type_desc {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}

/* 实际商品价 - 差价提示 */
.zjxc_prod_actual_wrap {
    margin-top: 4px;
}
.zjxc_prod_actual_hint {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 8px;
    background: rgba(245,158,11,0.10);
    color: #b45309;
    border: 1px solid rgba(245,158,11,0.25);
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 500;
    vertical-align: middle;
}

/* 三列 (分成 / 绩效) 和 (总代档 / 代理档) */
.zjxc_prod_price_row.zjxc_prod_row_3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
}

/* 极差 / 固定 标签 (8 角色分成表格里) */
.zjxc_role_tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.4;
    border-radius: 6px;
    vertical-align: middle;
    letter-spacing: 0.02em;
}
.zjxc_role_tag_diff {
    background: rgba(59,130,246,0.10);
    color: #1d4ed8;
    border: 1px solid rgba(59,130,246,0.25);
}
.zjxc_role_tag_fixed {
    background: rgba(148,163,184,0.14);
    color: #475569;
    border: 1px solid rgba(148,163,184,0.30);
}

/* 复购档提示条 */
.zjxc_prod_rebuy_tip {
    padding: 8px 12px;
    background: #f8fafc;
    border: 1px dashed var(--zjxc-border);
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.5;
    margin-top: 2px;
}

@media (max-width: 720px) {
    .zjxc_prod_type_switch { grid-template-columns: 1fr; }
    .zjxc_prod_price_row.zjxc_prod_row_3 { grid-template-columns: 1fr; }
}

/* ==========================================================
 * 仪表盘 - 商城场景
 * ========================================================== */

/* 两列图表区 */
.zjxc_dash_grid_2 {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
    margin-top: 16px;
}

/* 热销商品 + 分账构成 */
.zjxc_dash_grid_row {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
    margin-top: 16px;
}

/* 热销商品列表 */
.zjxc_hot_list {
    display: flex;
    flex-direction: column;
}
.zjxc_hot_item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--zjxc-border-light);
    transition: background 0.15s;
}
.zjxc_hot_item:last-child { border-bottom: none; }
.zjxc_hot_item:hover { background: var(--zjxc-bg); }

.zjxc_hot_rank {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    background: #f1f5f9;
    flex-shrink: 0;
}
.zjxc_hot_item:nth-child(1) .zjxc_hot_rank {
    background: linear-gradient(135deg, #f59e0b, #ef4444);
    color: #fff;
}
.zjxc_hot_item:nth-child(2) .zjxc_hot_rank {
    background: linear-gradient(135deg, #94a3b8, #64748b);
    color: #fff;
}
.zjxc_hot_item:nth-child(3) .zjxc_hot_rank {
    background: linear-gradient(135deg, #c084fc, #a855f7);
    color: #fff;
}

.zjxc_hot_thumb {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--zjxc-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid var(--zjxc-border-light);
}
.zjxc_hot_thumb img {
    width: 100%; height: 100%; object-fit: cover;
}
.zjxc_hot_thumb i {
    color: #cbd5e1;
    font-size: 18px;
}

.zjxc_hot_body { flex: 1; min-width: 0; }
.zjxc_hot_name {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--zjxc-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.zjxc_hot_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}

.zjxc_hot_amt {
    font-size: 14px;
    font-weight: 700;
    color: var(--zjxc-primary-dark);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    text-align: right;
    flex-shrink: 0;
}
.zjxc_hot_amt_sub {
    font-size: 11px;
    color: var(--zjxc-text-tertiary);
    margin-top: 2px;
    font-weight: 400;
}

/* 分账构成卡 */
.zjxc_split_list {
    padding: 4px 0;
}
.zjxc_split_row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 13px;
}
.zjxc_split_bar_wrap {
    flex: 1;
    height: 6px;
    background: #f1f5f9;
    border-radius: 3px;
    overflow: hidden;
    min-width: 60px;
}
.zjxc_split_bar {
    height: 100%;
    border-radius: 3px;
    transition: width 0.4s;
}
.zjxc_split_label {
    width: 62px;
    color: var(--zjxc-text-secondary);
    font-weight: 500;
    flex-shrink: 0;
}
.zjxc_split_val {
    width: 78px;
    text-align: right;
    color: var(--zjxc-text-primary);
    font-weight: 600;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}
.zjxc_split_pct {
    width: 46px;
    text-align: right;
    color: var(--zjxc-text-tertiary);
    font-size: 11.5px;
    flex-shrink: 0;
}

.zjxc_split_footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: linear-gradient(135deg, rgba(34,197,94,0.06), rgba(59,130,246,0.04));
    border-top: 1px solid var(--zjxc-border-light);
    font-size: 12.5px;
    color: var(--zjxc-text-secondary);
}
.zjxc_split_footer_v {
    font-size: 15px;
    font-weight: 700;
    color: var(--zjxc-primary-dark);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}

/* 卡片 header 中的 tab 按钮 */
.zjxc_chart_tabs {
    display: inline-flex;
    background: var(--zjxc-bg);
    border-radius: 6px;
    padding: 3px;
    gap: 2px;
}
.zjxc_chart_tab {
    padding: 5px 12px;
    font-size: 12px;
    color: var(--zjxc-text-secondary);
    border-radius: 4px;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.15s;
}
.zjxc_chart_tab:hover { color: var(--zjxc-text-primary); }
.zjxc_chart_tab.zjxc_active {
    background: #fff;
    color: var(--zjxc-primary-dark);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

/* 响应式 */
@media (max-width: 960px) {
    .zjxc_dash_grid_2,
    .zjxc_dash_grid_row { grid-template-columns: 1fr; }
}

/* ==========================================================
 * 仪表盘 - 热销商品 Top 5
 * ========================================================== */
.zjxc_top_list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.zjxc_top_item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--zjxc-border-light);
    border-radius: 10px;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.zjxc_top_item:hover {
    border-color: rgba(34,197,94,0.30);
    box-shadow: 0 4px 12px rgba(15,23,42,0.05);
    transform: translateY(-1px);
}
.zjxc_top_rank {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    font-family: "Plus Jakarta Sans", "Inter", monospace;
}
.zjxc_top_rank_gold {
    background: linear-gradient(135deg, #fde68a, #f59e0b);
    color: #78350f;
    border-color: #fcd34d;
    box-shadow: 0 2px 6px rgba(245,158,11,0.25);
}
.zjxc_top_rank_silver {
    background: linear-gradient(135deg, #e2e8f0, #94a3b8);
    color: #334155;
    border-color: #cbd5e1;
    box-shadow: 0 2px 6px rgba(148,163,184,0.25);
}
.zjxc_top_rank_bronze {
    background: linear-gradient(135deg, #fed7aa, #c2410c);
    color: #7c2d12;
    border-color: #fdba74;
    box-shadow: 0 2px 6px rgba(194,65,12,0.25);
}
.zjxc_top_body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.zjxc_top_row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.zjxc_top_name {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--zjxc-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1;
}
.zjxc_top_gmv {
    font-size: 14px;
    font-weight: 700;
    color: var(--zjxc-primary-dark);
    font-family: "Plus Jakarta Sans", "Inter", monospace;
    letter-spacing: -0.01em;
    flex-shrink: 0;
}
.zjxc_top_bar_wrap {
    height: 6px;
    background: #f1f5f9;
    border-radius: 3px;
    overflow: hidden;
}
.zjxc_top_bar {
    height: 100%;
    background: linear-gradient(90deg, #22c55e, #16a34a);
    border-radius: 3px;
    transition: width .3s ease;
}
.zjxc_top_meta {
    font-size: 12px;
    color: var(--zjxc-text-tertiary);
}

/* 让 zjxc_chart_grid_full 无论如何单列撑满 */
.zjxc_chart_grid_full {
    grid-template-columns: 1fr !important;
}

