/* ============================================
   精品牙科网 — 后台统一样式
   四主题：品牌橙(默认·深海军蓝) / 冷色(深海蓝) / 暖色(赭石棕) / 护眼夜(深色)
   表面变量（内容区/顶栏/卡片/表格）由主题定义，夜间主题全套换深色
   ============================================ */

/* ====== 内容区字号体系（2026-09-01 统一 token）======
   所有内容区字号一律引用 --admin-font-* token；
   顶栏「字号倍率」按钮通过修改 --admin-font-scale（1 / 1.1 / 1.2 / 1.3）整体缩放内容区字号，
   侧栏/顶栏/固定选项卡等框架元素不缩放。 */
:root {
    --admin-font-scale: 1;                                    /* 内容区字号倍率（顶栏按钮切换） */
    --admin-font-2xl: calc(var(--admin-font-scale) * 1.5rem); /* 页面标题 page-title */
    --admin-font-xl: calc(var(--admin-font-scale) * 1.05rem); /* 卡片标题 card-title */
    --admin-font-modal: calc(var(--admin-font-scale) * 1.1rem); /* 模态框标题 */
    --admin-font-lg: calc(var(--admin-font-scale) * 1rem);    /* 大表格正文 table-lg / 弹窗正文 */
    --admin-font-base: calc(var(--admin-font-scale) * 0.92rem); /* 表格正文（默认） */
    --admin-font-th: calc(var(--admin-font-scale) * 0.9rem);  /* 表头 / 分页 */
    --admin-font-md: calc(var(--admin-font-scale) * 0.875rem); /* 表单控件 / 按钮 / 标签 */
    --admin-font-sm: calc(var(--admin-font-scale) * 0.8rem);  /* 小按钮 btn-sm / 徽章 / 次要文字 */
    --admin-font-xs: calc(var(--admin-font-scale) * 0.72rem); /* 极小：批次子行 / 角标 */
    --admin-font-icon: calc(var(--admin-font-scale) * 1.125rem); /* 操作图标（胶囊按钮内） */
    --admin-font-stat: calc(var(--admin-font-scale) * 1.6rem); /* 统计卡数值 */
}

/* ====== 亮橙（默认：白侧栏 + 灰字 + 亮橙点缀 + 浅暖灰内容） ====== */
:root, [data-theme="brand"] {
    --admin-primary: #FF6B00;
    --admin-primary-light: #FFEFE2;   /* 前台 orange c-100 */
    --admin-primary-dark: #E85400;    /* 前台 orange c-600 */
    --admin-sidebar-bg: #FFFFFF;      /* 白底侧栏 */
    --admin-sidebar-hover: #FFF3EA;   /* 浅橙 hover/active */
    --admin-sidebar-active: #FFF3EA;
    --admin-sidebar-text: #4A4A4A;    /* 灰字 */
    --admin-sidebar-text-muted: #9CA3AF;
    --admin-text: #111827;
    --admin-text-muted: #6B7280;
    --admin-ink: #1F2937;             /* 数据/标题主文字（比 --admin-text 更深） */
    --admin-content-bg: #FFFFFF;      /* 页面底：白色（活力橙/医疗青/科技蓝 共用）；夜晚灰单独用灰 */
    --admin-topbar-bg: #FFFFFF;
    --admin-topbar-text: #111827;
    --admin-hover-bg: #F3F4F6;
    --admin-card-bg: #FFFFFF;
    --admin-card-border: #E5E7EB;
    --admin-border: #E5E7EB;
    --admin-table-header-bg: #F5F5F6;
    --admin-table-stripe: #F8F9FB;
    --admin-table-hover: #EEF0F3;
    /* 徽章功能色（shadcn 浅底深字，全主题一致，不随主题切换） */
    --admin-badge-success-bg: #DCFCE7; --admin-badge-success-color: #166534;
    --admin-badge-danger-bg: #FEE2E2; --admin-badge-danger-color: #991B1B;
    --admin-badge-warning-bg: #FEF3C7; --admin-badge-warning-color: #92400E;
    --admin-badge-info-bg: #DBEAFE; --admin-badge-info-color: #1E40AF;
    --admin-badge-gray-bg: #E5E7EB; --admin-badge-gray-color: #374151;
    /* 留言回复块（浅蓝底 + 蓝色左条） */
    --admin-reply-bg: #EFF6FF; --admin-reply-border: #93C5FD;
    /* 状态功能色（√/× 图标） */
    --admin-success: #2fb344; --admin-danger: #d63939;
    /* 用户类型 badge — 品牌橙主题 */
    --admin-badge-type1-bg: #E85400; --admin-badge-type1-color: #ffffff; /* 医疗器械 → 深橙白字 */
    --admin-badge-type3-bg: #E85400; --admin-badge-type3-color: #ffffff; /* 未知类型 → 同医疗器械 */
    --admin-badge-type2-bg: #FFF3EA; --admin-badge-type2-color: #B84A00; /* 个人用户 → 奶油橙 */
    --admin-badge-type4-bg: #FFE9D9; --admin-badge-type4-color: #B84A00; /* 医院诊所 → 浅橙 */
    /* 主题切换按钮色 */
    --admin-theme-toggle-bg: #FFF3EA; --admin-theme-toggle-color: #C74000;
}
[data-theme="brand"] .app-sidebar .nav-link.active { background: var(--admin-sidebar-hover); color: var(--admin-primary-dark); font-weight: 600; }
[data-theme="brand"] .app-sidebar .menu-group .menu-header { color: #6B7280; }
[data-theme="brand"] .app-sidebar .menu-group .menu-header:hover { color: #111827; }
[data-theme="brand"] .app-sidebar .menu-group .menu-body { background: rgba(255,107,0,.04); border-radius: 0 0 6px 6px; }

/* ====== 医疗青 teal（白侧栏 · 医疗青点缀，对齐前台 teal 主题） ====== */
[data-theme="teal"] {
    --admin-primary: #37A794;
    --admin-primary-light: #D2F0E9;
    --admin-primary-dark: #23736A;
    --admin-sidebar-bg: #FFFFFF;
    --admin-sidebar-hover: #EFFAF7;
    --admin-sidebar-active: #EFFAF7;
    --admin-sidebar-text: #4A4A4A;
    --admin-sidebar-text-muted: #9CA3AF;
    --admin-badge-type1-bg: #23736A; --admin-badge-type1-color: #ffffff;
    --admin-badge-type3-bg: #23736A; --admin-badge-type3-color: #ffffff;
    --admin-badge-type2-bg: #EFFAF7; --admin-badge-type2-color: #23736A;
    --admin-badge-type4-bg: #E0F2EE; --admin-badge-type4-color: #23736A;
    --admin-theme-toggle-bg: #EFFAF7; --admin-theme-toggle-color: #23736A;
}
[data-theme="teal"] .app-sidebar .nav-link.active { background: var(--admin-sidebar-hover); color: var(--admin-primary-dark); font-weight: 600; }
[data-theme="teal"] .app-sidebar .menu-group .menu-header { color: #6B7280; }
[data-theme="teal"] .app-sidebar .menu-group .menu-header:hover { color: #111827; }
[data-theme="teal"] .app-sidebar .menu-group .menu-body { background: rgba(55,167,148,.04); border-radius: 0 0 6px 6px; }

/* ====== 科技蓝 blue（白侧栏 · 科技蓝点缀，对齐前台 blue 主题） ====== */
[data-theme="blue"] {
    --admin-primary: #2563EB;
    --admin-primary-light: #DCE7FE;
    --admin-primary-dark: #1E40AF;
    --admin-sidebar-bg: #FFFFFF;
    --admin-sidebar-hover: #EFF4FF;
    --admin-sidebar-active: #EFF4FF;
    --admin-sidebar-text: #4A4A4A;
    --admin-sidebar-text-muted: #9CA3AF;
    --admin-badge-type1-bg: #1E40AF; --admin-badge-type1-color: #ffffff;
    --admin-badge-type3-bg: #1E40AF; --admin-badge-type3-color: #ffffff;
    --admin-badge-type2-bg: #EFF4FF; --admin-badge-type2-color: #1E40AF;
    --admin-badge-type4-bg: #E4EDFF; --admin-badge-type4-color: #1E40AF;
    --admin-theme-toggle-bg: #EFF4FF; --admin-theme-toggle-color: #1E40AF;
}
[data-theme="blue"] .app-sidebar .nav-link.active { background: var(--admin-sidebar-hover); color: var(--admin-primary-dark); font-weight: 600; }
[data-theme="blue"] .app-sidebar .menu-group .menu-header { color: #6B7280; }
[data-theme="blue"] .app-sidebar .menu-group .menu-header:hover { color: #111827; }
[data-theme="blue"] .app-sidebar .menu-group .menu-body { background: rgba(37,99,235,.04); border-radius: 0 0 6px 6px; }

/* ====== 夜晚灰（浅灰护眼底 · 石墨灰主色 · 大量灰色，不用黑/深灰避免乌漆嘛黑） ====== */
[data-theme="night"] {
    --admin-primary: #4A4A4A;        /* 石墨灰主色（前台 night c-500） */
    --admin-primary-light: #E4E4E4;
    --admin-primary-dark: #333333;
    --admin-sidebar-bg: #FFFFFF;
    --admin-sidebar-hover: #F0F0F0;
    --admin-sidebar-active: #F0F0F0;
    --admin-sidebar-text: #3F3F3F;
    --admin-sidebar-text-muted: #9CA3AF;
    --admin-text: #3F3F3F;
    --admin-text-muted: #8A8A8A;
    --admin-ink: #232323;
    --admin-content-bg: #F4F4F4;      /* 浅灰护眼底（前台 night 页面底） */
    --admin-topbar-bg: #FFFFFF;
    --admin-topbar-text: #3F3F3F;
    --admin-hover-bg: #ECECEC;
    --admin-card-bg: #FFFFFF;
    --admin-card-border: #E4E4E4;
    --admin-border: #E4E4E4;
    --admin-table-header-bg: #EEEEEE;
    --admin-table-stripe: #F7F7F7;
    --admin-table-hover: #ECECEC;
    --admin-badge-success: #16A34A;
    --admin-badge-danger: #DC2626;
    --admin-badge-warning: #D97706;
    --admin-badge-type1-bg: #4A4A4A; --admin-badge-type1-color: #ffffff;
    --admin-badge-type3-bg: #4A4A4A; --admin-badge-type3-color: #ffffff;
    --admin-badge-type2-bg: #F0F0F0; --admin-badge-type2-color: #3F3F3F;
    --admin-badge-type4-bg: #E8E8E8; --admin-badge-type4-color: #3F3F3F;
    --admin-theme-toggle-bg: #F0F0F0; --admin-theme-toggle-color: #4A4A4A;
}
[data-theme="night"] .app-sidebar .nav-link.active { background: var(--admin-sidebar-hover); color: var(--admin-primary-dark); font-weight: 600; }
[data-theme="night"] .app-sidebar .menu-group .menu-header { color: #6B7280; }
[data-theme="night"] .app-sidebar .menu-group .menu-header:hover { color: #111827; }
[data-theme="night"] .app-sidebar .menu-group .menu-body { background: rgba(0,0,0,.03); border-radius: 0 0 6px 6px; }

/* ====== 全屏布局（所有主题共用 — 大字号高对比度骨架） ======
   系统字体栈，零 CDN 零下载；跨平台：Win=Segoe UI+微软雅黑 / macOS=苹方 / Linux=Roboto+Noto Sans CJK SC */
html, body { height: 100%; margin: 0; overflow: hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif; }
a { text-decoration: none; }

.app {
    display: flex; height: 100vh;
    background: var(--admin-content-bg); color: var(--admin-text);
}

/* ====== 侧边栏（通顶） ====== */
.app-sidebar {
    width: 240px; min-width: 240px; height: 100vh;
    background: var(--admin-sidebar-bg);
    border-right: 1px solid rgba(0,0,0,0.08);
    display: flex; flex-direction: column;
    /* width/min-width 不做 transition — 避免大表格页（如产品销售记录 1405 行）每帧全页 reflow 导致 2~3 秒卡顿 */
    overflow: hidden; z-index: 100;
}
.app-sidebar.collapsed { width: 64px; min-width: 64px; }

/* 品牌区 */
.app-sidebar .sidebar-brand {
    height: 57px; padding: 0 1.15rem; font-weight: 700; font-size: 1.2rem;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    display: flex; align-items: center; gap: 0.6rem;
    white-space: nowrap; color: var(--admin-primary);
}
.app-sidebar .sidebar-brand i { font-size: 1.6rem; }
.app-sidebar.collapsed .sidebar-brand span { display: none; }
.app-sidebar.collapsed .sidebar-brand { padding: 0.85rem 0.5rem; justify-content: center; }

/* 导航区 */
.app-sidebar .sidebar-nav { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 0.5rem 0; }
.app-sidebar .sidebar-nav::-webkit-scrollbar { width: 4px; }
.app-sidebar .sidebar-nav::-webkit-scrollbar-thumb { background: var(--admin-sidebar-text-muted); border-radius: 2px; }

/* 底部版本 */
.sidebar-footer {
    padding: 0.8rem 1rem 0.6rem; font-size: 0.8rem; color: var(--admin-sidebar-text-muted);
    text-align: center; position: relative;
}
.sidebar-footer::before {
    content: ''; position: absolute; top: 0; left: 20%; width: 60%; height: 1px;
    background: rgba(0,0,0,0.1);
}
.app-sidebar.collapsed .sidebar-footer span { display: none; }

/* 菜单链接（二级） */
.app-sidebar .nav-link {
    display: flex; align-items: center; gap: 0.6rem;
    padding: 0.55rem 1rem; margin: 1px 0.6rem; border-radius: 6px;
    color: var(--admin-sidebar-text); font-size: 0.95rem;
    white-space: nowrap; overflow: hidden; transition: background 0.1s, color 0.1s;
}
.app-sidebar .nav-link:hover { background: var(--admin-sidebar-hover); }
.app-sidebar .nav-link.active {
    background: var(--admin-sidebar-hover); color: var(--admin-sidebar-text); font-weight: 600;
    border-left: 3px solid var(--admin-primary); border-radius: 0 6px 6px 0;
}
.app-sidebar .nav-link i { width: 24px; text-align: center; font-size: 1.15rem; flex-shrink: 0; }
.app-sidebar.collapsed .nav-link span { display: none; }
.app-sidebar.collapsed .nav-link { padding: 0.5rem; margin: 1px; justify-content: center; }

/* 一级菜单组 */
.app-sidebar .menu-group .menu-header {
    display: flex; align-items: center; gap: 0.6rem;
    padding: 0.7rem 1rem; margin: 2px 0.6rem;
    font-size: 0.95rem; font-weight: 600; letter-spacing: 0.3px;
    color: var(--admin-sidebar-text);
    cursor: pointer; user-select: none; white-space: nowrap; transition: color 0.1s;
}
.app-sidebar .menu-group .menu-header:hover { color: var(--admin-sidebar-text-muted); }
.app-sidebar .menu-group .menu-header .header-icon { width: 26px; text-align: center; font-size: 1.35rem; flex-shrink: 0; }
.app-sidebar .menu-group .menu-header .header-text { flex: 1; }
.app-sidebar .menu-group .menu-header .chevron {
    font-size: 1rem; transition: transform 0.2s; flex-shrink: 0;
    transform: rotate(0deg);
}
.app-sidebar .menu-group.collapsed .menu-header .chevron { transform: rotate(-90deg); }
.app-sidebar .menu-group.collapsed .menu-body { display: none; }
.app-sidebar.collapsed .menu-group .menu-header span,
.app-sidebar.collapsed .menu-group .menu-header .chevron { display: none; }
.app-sidebar.collapsed .menu-group .menu-body { display: none; }
.app-sidebar.collapsed .menu-group .menu-header { justify-content: center; padding: 0.7rem 0; }
.app-sidebar.collapsed .nav-item > .nav-link { justify-content: center; }
.app-sidebar .menu-group .menu-body .nav-link { padding-left: 2.5rem; }

/* 无子菜单的独立项（如控制台） — 使用一级菜单样式 */
.app-sidebar .nav-item > .nav-link {
    font-size: 0.95rem; font-weight: 600; color: var(--admin-sidebar-text); padding: 0.7rem 1rem;
}
.app-sidebar .nav-item > .nav-link:hover { color: var(--admin-sidebar-text-muted); }
.app-sidebar .nav-item > .nav-link i { font-size: 1.35rem; width: 26px; }
.app-sidebar .nav-item > .nav-link.active { background: var(--admin-sidebar-hover); color: var(--admin-sidebar-text); border-left: 3px solid var(--admin-primary); border-radius: 0 6px 6px 0; }

/* ====== 主区域 ====== */
.app-main { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; height: 100vh; }

/* 固定顶栏 */
.app-topbar {
    height: 57px; min-height: 57px;
    display: flex; align-items: center; padding: 0 1.5rem; gap: 1rem;
    background: var(--admin-topbar-bg);
    border-bottom: 1px solid var(--admin-border);
    z-index: 50; position: relative;
}
.app-topbar .hamburger { cursor: pointer; color: var(--admin-topbar-text); padding: 0.4rem; border-radius: 8px; font-size: 1.4rem; background: #F1F5F9; transition: all .15s; } /* 2026-08-14：折叠按钮浅灰底 */
.app-topbar .hamburger:hover { background: var(--admin-hover-bg); }
.app-topbar .breadcrumb-area { flex: 1; display: flex; align-items: center; gap: 0.5rem; }
.app-topbar .action-area { display: flex; align-items: center; gap: 0.25rem; }
.app-topbar .user-area { display: flex; align-items: center; gap: 0.75rem; }
.app-topbar .user-area a { color: var(--admin-topbar-text) !important; font-weight: 500; }

/* 快捷链接图标 */
.quick-link { color: var(--admin-topbar-text); padding: 0.45rem 0.55rem; border-radius: 8px; font-size: 1.3rem; display: flex; align-items: center; background: #F1F5F9; transition: all .15s; } /* 2026-08-14：顶栏快捷按钮（home/资料图谱/促销）浅灰底 */
.quick-link:hover { background: var(--admin-hover-bg); }

/* 主题切换按钮 */
.theme-toggle {
    cursor: pointer; color: var(--admin-text-muted); padding: 0.45rem 0.75rem; border-radius: 10px;
    border: 1px solid var(--admin-border); background: var(--admin-topbar-bg);
    font-size: .9rem; display: flex; align-items: center; gap: 0.35rem;
    transition: all .15s;
}
.theme-toggle i { font-size: 1.3rem; }
.theme-toggle span { font-size: 0.9rem; font-weight: 600; }
.theme-toggle:hover { border-color: var(--admin-text-muted); color: var(--admin-topbar-text); }
.theme-toggle[data-active-theme="brand"] { background: var(--admin-theme-toggle-bg, #FFF3EA); border-color: var(--admin-primary-light); color: var(--admin-theme-toggle-color, #C74000); }
.theme-toggle[data-active-theme="teal"] { background: var(--admin-theme-toggle-bg, #EFFAF7); border-color: #D2F0E9; color: var(--admin-theme-toggle-color, #23736A); }
.theme-toggle[data-active-theme="blue"] { background: var(--admin-theme-toggle-bg, #EFF4FF); border-color: #DCE7FE; color: var(--admin-theme-toggle-color, #1E40AF); }
.theme-toggle[data-active-theme="night"] { background: var(--admin-theme-toggle-bg, #F0F0F0); border-color: #E4E4E4; color: var(--admin-theme-toggle-color, #4A4A4A); }

/* 滚动内容区 */
.app-content {
    flex: 1; overflow-y: auto; padding: 1.5rem 0;
    background: var(--admin-content-bg);
}
.app-content > * {
    max-width: 90%; margin-left: auto; margin-right: auto;
}

/* ====== 页面组件 ====== */
.page-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin-bottom: 1rem; flex-wrap: wrap; gap: 0.75rem;
}
.page-title { font-size: var(--admin-font-2xl); font-weight: 600; margin: 0; color: var(--admin-text); }
.page-back { color: var(--admin-text-muted); font-size: calc(var(--admin-font-scale) * 1.35rem); text-decoration:none; margin-right:0.5rem; line-height:1; vertical-align:middle; }
.page-back:hover { color: var(--admin-text); }

/* 卡片 */
.card {
    border: 1px solid var(--admin-card-border); border-radius: 16px;
    background: var(--admin-card-bg); margin-bottom: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.card-header {
    background: transparent; border-bottom: 1px solid var(--admin-border);
    padding: 1rem 1.5rem; display: flex; align-items: center; min-height: 56px;
}
.card-header .card-title { font-size: var(--admin-font-xl); font-weight: 600; margin: 0; color: var(--admin-text); }
.card-body { padding: 1.5rem; }
.card-sm .card-body { padding: 1rem 1.25rem; }

/* 表格容器 — 布局隔离，侧边栏折叠时避免大表格全量重排 */
.table-responsive { contain: layout; }

/* 表格 */
.table-vcenter th, .table-vcenter td { vertical-align: middle; }
.table {
    border-radius: 10px; overflow: hidden;
    border: 1px solid var(--admin-border);
    table-layout: fixed; width: 100%;
}
.table thead th {
    font-weight: 600; font-size: var(--admin-font-th); color: var(--admin-text-muted); letter-spacing: 0.02em;
    background: var(--admin-table-header-bg); border-bottom: 1px solid var(--admin-border); vertical-align: middle;
    padding: 0.85rem 0.75rem;
}
.table thead th:first-child { border-radius: 9px 0 0 0; min-width: 54px; }
.table thead th:last-child  { border-radius: 0 9px 0 0; }
.table td { padding: 0.7rem 0.75rem; font-size: var(--admin-font-base); color: var(--admin-ink); border: none; font-weight: 400; }
.table td strong, .table td b, .table td .fw-bold { font-weight: 400; }
.table tbody tr { background: var(--admin-card-bg); }
.table tbody tr:nth-child(even) { background: var(--admin-table-stripe); }
.table tbody tr:hover { background: var(--admin-table-hover); }
.actions-col { width: 100px; white-space: nowrap; text-align: right; }

/* ===== 日期选择框（起始/截止）— input-group-text 背景色 = 表头背景色 ===== */
.date-input-group .input-group-text {
    background: var(--admin-table-header-bg);
    border-color: var(--admin-border);
    color: var(--admin-text-muted);
    font-weight: 600;
}

/* 可编辑文本 */
.editable-price {
    cursor: pointer; color: var(--admin-text); font-weight: 600;
    border-bottom: 1.5px dashed var(--admin-text-muted); padding-bottom: 1px;
    transition: border-color .15s, background .15s;
}
.editable-price:hover { background: var(--admin-hover-bg); border-radius: 4px; border-bottom-color: var(--admin-text-muted); }

/* 空状态 */
.empty-state { text-align: center; padding: 4rem 1rem; color: var(--admin-text-muted); }
.empty-state i { font-size: calc(var(--admin-font-scale) * 2.5rem); display: block; margin-bottom: .75rem; opacity: .2; }
.empty-state p { margin: 0; font-size: var(--admin-font-lg); }

/* 徽章 — shadcn 浅底深字 pill 风格 */
.badge { font-size: var(--admin-font-sm); font-weight: 500; padding: 0.25em 0.75em; border-radius: 999px; letter-spacing: 0.01em; }
.bg-success { background: var(--admin-badge-success-bg) !important; color: var(--admin-badge-success-color) !important; }
.bg-danger { background: var(--admin-badge-danger-bg) !important; color: var(--admin-badge-danger-color) !important; }
.bg-warning { background: var(--admin-badge-warning-bg) !important; color: var(--admin-badge-warning-color) !important; }
.bg-gray { background: var(--admin-badge-gray-bg) !important; color: var(--admin-badge-gray-color) !important; }

/* 表单 */
.form-control, .form-select {
    font-size: var(--admin-font-md); padding: 0.4rem 0.85rem; border: 1px solid #E5E7EB; line-height: 1.5;
    border-radius: 10px; background-color: #F9FAFB; transition: border .15s, box-shadow .15s;
}
.form-select { padding-right: 2.25rem; }
.form-control:focus, .form-select:focus {
    border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,.1); background-color: #fff; outline: none;
}
.form-label { font-weight: 500; font-size: var(--admin-font-md); color: var(--admin-text-muted); margin-bottom: .35rem; }

/* 表单验证 — 失败红框 */
.form-control.is-invalid, .form-select.is-invalid {
    border-color: #DC2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .1) !important;
    background: #FEF2F2 !important;
}
.invalid-feedback { display: none; font-size: var(--admin-font-sm); color: #DC2626; margin-top: .25rem; }
.is-invalid ~ .invalid-feedback { display: block; }

/* 复选框统一样式 — 选中背景为网站主色（--admin-primary），增大尺寸 */
input[type="checkbox"] { width: 1.15rem; height: 1.15rem; cursor: pointer; }
.form-check-input:checked, input[type="checkbox"]:checked {
    background-color: var(--admin-primary) !important;
    border-color: var(--admin-primary) !important;
    accent-color: var(--admin-primary);
}

/* ====== 分类多选标签（Product/Add、Product/Edit）— Tag Input 风格 ===== */
/* 容器：高度锁定为单行 form-control（价格框/品牌筛选框）一致，多行标签内部滚动不撑高 */
#category_tags {
    height: calc(var(--admin-font-scale) * 2.1125rem + 2px); /* 0.4rem×2 padding + 0.875rem×1.5 line-height + 边框2px，与 .form-control 同高；随字号倍率缩放 */
    min-height: 0; overflow-y: auto; cursor: pointer;
    padding: .4rem .85rem; align-content: flex-start; /* 内边距与 form-control 完全一致 */
}
/* 标签：主色背景白字，胶囊圆角；字号/内边距适度增大（容器高度固定不撑高） */
.cat-tag {
    display: inline-flex; align-items: center; gap: 0.35rem;
    background: var(--admin-primary); color: #fff;
    font-size: var(--admin-font-md); font-weight: 500; line-height: 1;
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
}
.cat-tag .cat-tag-close {
    color: #fff !important; line-height: 1;
    text-decoration: none;
    /* 2026-08-14：覆盖全局「图标按钮胶囊」规则（a:has(>i.ti) 会加背景+内边距+主色文字）——
       取消背景/内边距/圆角，仅保留小 ×；全部 !important 防被胶囊规则覆盖 */
    background: transparent !important; padding: 0 !important; border-radius: 0 !important;
    display: inline-flex; align-items: center; justify-content: center;
}
/* 缩小关闭图标 + 白色（覆盖 tabler .ti 默认 1.25rem 与胶囊 color:inherit） */
.cat-tag .cat-tag-close i { font-size: var(--admin-font-xs) !important; color: #fff !important; }
.cat-tag .cat-tag-close:hover { background: transparent !important; }
.cat-tag .cat-tag-close:hover i { color: #E5E7EB !important; }

/* 按钮 */
.btn { font-size: var(--admin-font-md); font-weight: 500; padding: 0.4rem 0.9rem; border-radius: 10px; letter-spacing: 0.01em; transition: all .15s; }
.btn-sm { font-size: var(--admin-font-sm); padding: 0.3rem 0.65rem; border-radius: 8px; }
.btn-lg { font-size: var(--admin-font-lg); padding: 0.55rem 1.3rem; border-radius: 12px; }
.btn-primary { background: var(--admin-primary); border-color: var(--admin-primary); color: #fff; }
.btn-primary:hover { background: var(--admin-primary-dark); border-color: var(--admin-primary-dark); filter: brightness(1.05); }
.btn-outline-primary { color: var(--admin-primary); border-color: #E5E7EB; background: #fff; }
.btn-outline-primary:hover { background: var(--admin-primary-light); border-color: var(--admin-primary); color: var(--admin-primary); }
.btn:focus-visible { outline: 2px solid var(--admin-primary); outline-offset: 2px; }

/* 无边框按钮 — 清除/重置等辅助操作 */
.btn-ghost { border-color: transparent !important; background: #F3F4F6 !important; color: var(--admin-text-muted); }
.btn-ghost:hover { background: #E5E7EB !important; color: var(--admin-text); }

/* ====== 添加/编辑表单卡片 — 半宽 ====== */
.form-card-half {
    max-width: 50% !important;
}

/* 模态框 */
/* 【修复】.app-content > * { max-width:90%; margin:auto } 会作用于 .modal（它是 .app-content 的直接子元素）。
   对 position:fixed 且 left:0 的元素，margin:auto 失效 → .modal 缩到90vw且贴左 → 内部 dialog 偏离视口中心。
   解法：.app-content > .modal 取消 max-width 约束，恢复全屏。 */
.app-content > .modal { max-width: none; margin: 0; }
.modal .modal-dialog { margin-left: auto !important; margin-right: auto !important; }
.modal-content { border-radius: 14px; border: 1px solid #E5E7EB; box-shadow: 0 10px 40px rgba(0,0,0,.08); }
.modal-header { border-bottom: 1px solid #E5E7EB; padding: 1.15rem 1.5rem; }
.modal-footer { border-top: 1px solid #E5E7EB; padding: 1rem 1.5rem; }
.modal-title { font-weight: 600; font-size: var(--admin-font-modal); }

/* ====== 删除确认弹窗（扁平化设计） ====== */
/* 扁平卡片：细边框 + 小圆角 + 去重阴影；浅灰标题栏（红色图标/文字）+ 紧凑 footer
   overflow:hidden 让浅灰 header 填满顶部圆角，消除深色标题四周的白描边 */
.confirm-modal-dialog {
    max-width: 360px;
}
.confirm-modal-content {
    border-radius: 8px;               /* 原 14px，扁平小圆角 */
    overflow: hidden;                 /* 关键：标题栏背景贴满圆角，消除白色描边 */
    box-shadow: 0 1px 3px rgba(16,24,40,.06);  /* 原 0 10px 40px，去大阴影 */
}
.confirm-modal-header {
    padding: 0.5rem 1rem;
    background: #F1F5F9;              /* 原 #374151 深灰 → 浅灰 */
    border-bottom: 1px solid #E5E7EB;
}
.confirm-modal-title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: #DC2626;                    /* 红色标题/图标保留 */
    font-size: var(--admin-font-modal);    /* 原 1.25rem，小 1 号 */
    font-weight: 600;
}
.confirm-modal-title .ti {
    font-size: calc(var(--admin-font-scale) * 1.25rem);   /* 图标同步缩小（原 1.5rem） */
}
.confirm-modal-body {
    padding: 1.25rem 1.5rem;
    font-size: var(--admin-font-lg);   /* 原 1.25rem，小 2 号 */
    line-height: 1.6;
    background: #FAFBFC;               /* 适当增加背景色，扁平分层 */
    min-height: 4rem;                  /* 原 8.5rem 太高，随字号收窄 */
}
.confirm-modal-footer {
    padding: 0.5rem 0.75rem;           /* 原 1rem 1.5rem，footer 高度约减半 */
    border-top: 1px solid #F1F3F5;
}

/* 批次子行 — 比母表小一号 */
.batch-sub td { font-size: var(--admin-font-sm); color:#9CA3AF; }
.batch-sm { font-size: var(--admin-font-xs); }

/* 库存搜索 — 可排序列头 + 排序指示（2026-09-16） */
.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.sortable:hover { color: var(--admin-primary); }
.sort-ind { font-size: var(--admin-font-xs); margin-left: 2px; color: var(--admin-text-muted); }
.sort-ind.active { color: var(--admin-primary); font-weight: 700; }

/* 统计卡片 */
.stat-card {
    border: 1px solid #E5E7EB; border-radius: 12px;
    background: var(--admin-card-bg); transition: box-shadow .15s;
    box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);
}
.stat-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.stat-card .fs-2 { font-size: var(--admin-font-stat) !important; }
.stat-card .small { font-size: var(--admin-font-th); }

/* 宽卡片 — 覆盖默认 90% 最大宽度，用于高频数据表格页 */
.app-content .wide-card { max-width: 94%; }

/* 大字号表格 — 今天/昨天/明天订单等高频页 */
.table-lg thead th { font-size: var(--admin-font-lg); }
.table-lg tbody td { font-size: var(--admin-font-lg); vertical-align: middle; }
.table-lg tfoot td { font-size: var(--admin-font-lg); font-weight: 700; border-top: 1px solid #D1D5DB; }

/* ====== 订单表格 打印链接列（今天/昨天/明天/全部/未付款 共用） ====== */
/* 2 行 × 3 个链接；a+a 间隔替代 &nbsp;&nbsp;，行高 1.5 比旧 1.8 更紧凑 */
.print-links { line-height: 1.5; white-space: nowrap; }
.print-links a + a { margin-left: 0.6rem; }

/* ====== 订单表格 收件人列 — 字号缩小 1 号（1.0rem → 0.875rem） ====== */
.table-lg tbody td.col-recipient { font-size: var(--admin-font-md); }

/* ====== 订单表格 收件人列 — 自/审图标与收件人姓名间距 ====== */
.table-lg tbody td.col-recipient i { margin-left: 0.4rem; }

/* ====== 订单表格 快递单号列 — 字号缩小 1 号（1.0rem → 0.875rem） ====== */
.table-lg tbody td.col-emsnumber { font-size: var(--admin-font-md); }

/* ====== 订单表格 后台备注列 — 直接显示全部内容（2026-09-01：去截断/弹窗，去掉 max-width 上限） ====== */
.table-lg .col-remark { min-width: 210px; white-space: normal; word-break: break-all; }

/* ====== 订单表格 底部合计行 — 2px 上边框（浅灰 #eaeaea）、居中、行高加高 20px、灰色字体 ====== */
/* !important: 防止被 .table-lg tfoot td 的 1px 边框 / Bootstrap 单元格 padding 覆盖 */
.table-lg tfoot .total-row {
    border-top: 2px solid #eaeaea !important;  /* 浅灰，与表格边框一致 */
    color: var(--admin-text-muted);           /* 灰色字体，与 muted 文本一致 */
    padding-top: 22px !important;   /* 默认 12px + 10px → 整行 +20px */
    padding-bottom: 22px !important;
}
.total-row span { margin: 0 1.5rem; }

/* ====== 订单表格 出单/下单列 — 字号略小 1 号（1.0rem → 0.875rem） ====== */
.table-lg tbody td.col-datetime { font-size: var(--admin-font-md); }

/* ====== 产品销售记录（Stock/PDetail）— 收件人/批号/注册证号列 ====== */
.table-lg tbody td.col-pd-recipient { font-size: var(--admin-font-md); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-lg tbody td.col-pd-lot { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-lg tbody td.col-pd-zcz { font-size: var(--admin-font-md); }

/* ====== 库存警告（Stock/StockWarning）— 品牌名列字号缩小 1 号 ====== */
.table-lg tbody td.col-sw-brand { font-size: var(--admin-font-md); }

/* ====== 公司进货记录（Company/Details）— 公司名称列截断 ====== */
.table-lg tbody td.col-cd-cname { max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ====== 入库记录（Jinhuo/RukuRecords）— 注册证/公司名称/操作人字号缩小 1 号 ====== */
.table-lg tbody td.col-rk-zcz { font-size: var(--admin-font-md); }
.table-lg tbody td.col-rk-cname { font-size: var(--admin-font-md); }
.table-lg tbody td.col-rk-operator { font-size: var(--admin-font-md); }

/* ====== 富文本备注（Company/Details 记录表）— 表格单元格内紧凑显示，去除 <p> 默认边距 ====== */
.table-lg tbody td.cell-rich p { margin: 0 0 4px; }
.table-lg tbody td.cell-rich p:last-child { margin-bottom: 0; }

/* 分页 */
.page-link { font-size: var(--admin-font-th); padding: 0.5rem 0.85rem; color: var(--admin-text-muted); border-radius: 8px; border-color: #E5E7EB; margin: 0 1px; }
.page-link:hover { background: var(--admin-primary-light); color: var(--admin-primary); }
.page-item.active .page-link { background: var(--admin-primary); border-color: var(--admin-primary); color: #fff; }

/* AJAX 加载动画 */
@keyframes spin { to { transform: rotate(360deg); } }

/* ====== 实验性：浅色边框表格（User/List 专用） ====== */
.table-bordered-light { border-collapse: separate; border-spacing: 0; }
.table-bordered-light thead th {
    border: 1px solid #F0F1F3;
    border-top: none;
}
.table-bordered-light thead th:first-child { border-left: none; }
.table-bordered-light thead th:last-child { border-right: none; }
.table-bordered-light tbody td {
    border: 1px solid #F0F1F3;
}
.table-bordered-light tbody td:first-child { border-left: none; }
.table-bordered-light tbody td:last-child { border-right: none; }
.table-bordered-light tbody tr:last-child td { border-bottom: none; }
/* 地址列内各条地址不分隔边框 */
.table-bordered-light .addr-item { border-bottom: none !important; }

/* ====== 用户详情弹窗表格 ====== */
#infoContent table th,
#infoContent table td { border: 1px solid #E5E7EB; padding: 0.4rem 0.6rem; }
#infoContent table th { background: #F5F5F6; font-weight: 600; }

/* ====== 订单添加页 ====== */
/* Tab1 基本信息表格 — 不隔行变色 */
#table001 td { border: none; vertical-align: middle; padding: 0.5rem 0.75rem; }
#table001 .tit { font-weight: 600; white-space: nowrap; }
#table001 tbody tr { background: transparent !important; }
#table001 tbody tr:nth-child(even) { background: transparent !important; }
/* Tab2 产品选择 */
.cursor-pointer { cursor: pointer; }
#tbody01 tr { transition: background .1s; }
#table02 tr.tr { transition: background .1s; }
/* 订单产品表 — 数量/单价输入框 */
#table03 .shuliang, #table03 .pprice { text-align: center; color: #111827; }
#table03 .shifujine { text-align: right; }
/* tfoot03 — 去掉多余边框 */
#tfoot03 td { border: none; }

/* Tab 选项卡 — 激活态使用主题色，底部横线也跟随主题 */
.nav-tabs { border-bottom-color: var(--admin-primary) !important; }
.nav-tabs .nav-link.active {
    background: var(--admin-primary) !important;
    color: #fff !important;
    border-color: var(--admin-primary) !important;
}
.nav-tabs .nav-link { color: var(--admin-text-muted); }

/* ====== 品牌管理 ====== */
/* Logo 上传预览 */
#brandimgdiv img { object-fit: contain; border: 1px solid var(--tblr-border-color, #dadcde); }

/* 表单验证错误 — 红框 */
.is-invalid { border-color: #DC2626 !important; box-shadow: 0 0 0 1px #DC2626 !important; }

/* 品牌表格行高对齐 */
.brand-table td { vertical-align: middle; }

/* 返回上一页 — hover 显示文字 */
.back-link small { opacity: 0; transition: opacity 0.15s; }
.back-link:hover small { opacity: 1; }

/* 简介编辑器 — 添加页面 */
#container1 { min-height: 200px; }

/* ====== 分类管理树形布局 ====== */
.category .lv1 { font-size: calc(var(--admin-font-scale) * 1.25rem); line-height: 40px; width: 100%; border-bottom: 1px solid var(--tblr-border-color, #dadcde); margin: 8px auto; color: var(--admin-text, #111827); display: block; }
.category .lv1 a { font-size: var(--admin-font-md); margin-left: 8px; }
.category .lv2 { font-size: calc(var(--admin-font-scale) * 0.9375rem); color: var(--admin-text-muted, #6B7280); line-height: 30px; }
.category .lv2 a { font-size: calc(var(--admin-font-scale) * 0.8125rem); }
.lv3-wrap { display: flex; flex-wrap: wrap; align-items: center; }
.lv3-item { line-height: 30px; margin-right: 12px; font-size: var(--admin-font-md); white-space: nowrap; }

/* ====== 响应式 ====== */
@media (max-width: 768px) {
    .app-sidebar {
        position: fixed; left: 0; top: 0; bottom: 0; z-index: 200;
        transform: translateX(-100%); transition: transform 0.2s;
    }
    .app-sidebar.mobile-open { transform: translateX(0); }
    .app-sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 199; }
    .app-sidebar-overlay.show { display: block; }
    .page-header { flex-direction: column; }
    .actions-col { width: auto; }
}

/* ====== 可搜索下拉框 ====== */
.searchable-dropdown { position: relative; }
.searchable-dropdown .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1050; width: 100%; max-height: 220px; overflow-y: auto; display: none; }
.searchable-dropdown .dropdown-menu.show { display: block; }
.searchable-dropdown .dropdown-item { cursor: pointer; }
.searchable-dropdown .dropdown-item:hover { background: var(--bs-dropdown-link-hover-bg, #f0f0f0); }

/* ====== 留言/咨询 列表 — 内容列里的管理员回复块（淡蓝底 + 蓝色左条，区分客户留言） ====== */
.reply-block { background: var(--admin-reply-bg); border-left: 3px solid var(--admin-reply-border); }

/* ====== 仪表盘统计卡（5 卡，美观大气） ====== */
.stat-card { transition: transform .15s ease, box-shadow .15s ease; }
.stat-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.10); }
.stat-icon {
    width: 44px; height: 44px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.stat-icon i { font-size: calc(var(--admin-font-scale) * 1.5rem); }

/* ====== 付款方式页 ====== */
.table-payment td, .table-payment th { text-decoration: line-through; }
.table-payment .account-number { font-family: monospace; letter-spacing: 1px; }

/* ====== 添加/编辑订单、入库/编辑入库 — 产品选择行高亮（2026-08-25：统一为风格配色浅色，替代原 #FEF3C7 / lightyellow / yellow） ====== */
tr.row-selected { background: var(--admin-primary-light) !important; }

/* ====== 库存搜索 — 库存分级配色（2026-08-25：绿/橙/红 → 风格配色 浅/中浅/中） ====== */
/* 中浅档色阶（主色 c-300，介于 primary-light(c-100) 与 primary(c-500) 之间），各主题独立定义；
   供 Stock/Search.cshtml JS 内联 style="background:var(--admin-primary-mid)" 引用（与 primary-light / primary 一并使用） */
:root, [data-theme="brand"] { --admin-primary-mid: #FFA86E; }
[data-theme="teal"]  { --admin-primary-mid: #6FC8B5; }
[data-theme="blue"]  { --admin-primary-mid: #8AAAF8; }
[data-theme="night"] { --admin-primary-mid: #D0D0D0; }

/* ====== 添加订单 — 表格 td padding（批次详情表与左侧产品列表保持一致） ====== */
#table01 td { padding: 0.4rem 0.3rem !important; }
#table02 td { padding: 0.4rem 0.3rem !important; }
#table03 td { padding-top: 0.3rem !important; padding-bottom: 0.3rem !important; }
/* 批次详情表隔行换色（与左侧产品列表一致） */
#table02 tbody tr:nth-child(even) { background: #F4F5F7; }
/* 订单表合计行：上边框加粗 + 行高增加 20px */
#table03 tfoot td {
    border-top: 2px solid #D1D5DB !important;
    padding-top: calc(0.3rem + 10px) !important;
    padding-bottom: calc(0.3rem + 10px) !important;
}

/* ====== 产品管理 — 内联编辑售价输入框 ====== */
/* 售价列（点击进入编辑的文本框）价格左对齐 */
.price3_input { text-align: left; }

/* ====== wangEditor 全屏修复（News/Add 等页面） ====== */
/* 覆盖 .app-content > * 的 max-width:90% 限制，并提升 z-index 盖过 sidebar(100)/topbar(50)，保证全屏编辑区铺满视口 */
.w-e-full-screen-container {
    max-width: none !important;
    margin: 0 !important;
    z-index: 9999 !important;
}

/* ====== 模态框内 wangEditor 全屏修复（GuestB/Comment/Question 回复/编辑弹窗） ====== */
/* 弹窗里 toolbar+编辑区若是 .modal-body 的直接子元素，全屏类会落在 .modal-body 上；
   Tabler 的 .modal-body{position:relative} 与 wangEditor 的 position:fixed（无 !important）冲突，
   导致全屏区定位在模态框内部、顶部出现缺口。强制 fixed + inset:0 + 100vw/100vh 铺满整个视口。 */
.modal .w-e-full-screen-container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    z-index: 9999 !important;
}

/* ====== 可编辑列表头提示（状态切换列 / 行内编辑列） ====== */
/* 上架/促销/清仓（可点击切换）、产品名/生产厂家/售价（可点击行内编辑）等列的列名
   用主题蓝 + 编辑图标标注，让用户一眼看出这些列可以点击修改。 */
.th-editable { color: var(--admin-primary); white-space: nowrap; cursor: default; }
.th-editable i { font-size: var(--admin-font-sm); margin-right: .25rem; vertical-align: -.05rem; }

/* ============================================
   后台登录页（2026-08-13 重设计：大气 · 优雅 · 高级 · 简洁）
   深海军蓝氛围背景 + 白色浮卡 + 品牌橙点缀；左品牌栏 / 右表单分栏
   校验一律内联（输入框红框 + 下方提示 + 表单级横幅），无弹层
   ============================================ */
.login-page {
    --lp-bg-1: #0d1b2e;
    --lp-bg-2: #1b3a5c;
    --lp-bg-3: #0a1524;
    --lp-accent: #ff6b00;        /* 品牌橙 */
    --lp-accent-deep: #e85400;
    --lp-ink: #111827;
    --lp-body: #374151;
    --lp-muted: #94a3b8;
    --lp-line: #e6eaf0;
    --lp-danger: #dc2626;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 1.25rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
    background:
        radial-gradient(1100px 560px at 88% -12%, rgba(255,107,0,.14), transparent 60%),
        radial-gradient(900px 520px at -8% 112%, rgba(96,165,250,.10), transparent 60%),
        linear-gradient(150deg, var(--lp-bg-1) 0%, var(--lp-bg-2) 55%, var(--lp-bg-3) 100%);
    -webkit-font-smoothing: antialiased;
}
.login-shell { width: 100%; max-width: 900px; }
.login-card {
    display: flex;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(2, 12, 27, .45);
}
/* —— 左：品牌栏 —— */
.login-brand {
    position: relative;
    flex: 0 0 42%;
    display: flex;
    align-items: flex-end;
    padding: 2.6rem 2.3rem;
    color: #fff;
    background:
        radial-gradient(480px 300px at 18% -6%, rgba(255,107,0,.28), transparent 55%),
        linear-gradient(155deg, #13294b 0%, #0d1b2e 70%, #0a1524 100%);
    overflow: hidden;
}
.login-brand::before { /* 柔光环装饰（牙科钻头/口腔意象，极简同轴圆环） */
    content: "";
    position: absolute;
    right: -95px; bottom: -95px;
    width: 300px; height: 300px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 0 0 42px rgba(255,255,255,.03), 0 0 0 86px rgba(255,255,255,.022);
}
/* 【修改说明】2026-08-13：品牌栏右上角橙色小点（原 ::after）已按要求移除 */
.login-brand-inner { position: relative; z-index: 1; }
.login-logo { display: flex; align-items: center; gap: .75rem; margin-bottom: 2rem; }
.login-logo-ico {
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--lp-accent), #ff9a4d);
    color: #fff; font-size: 1.45rem;
    box-shadow: 0 8px 20px rgba(255,107,0,.35);
}
.login-logo-word { font-size: 1.3rem; font-weight: 700; color: #fff; letter-spacing: .02em; line-height: 1; }
.login-logo-word em { font-style: normal; color: var(--lp-accent); }
.login-logo-sub { display: block; font-size: .74rem; font-weight: 400; color: rgba(255,255,255,.6); letter-spacing: .1em; margin-top: 6px; } /* 2026-08-13：副标为域名 jingpinyake.cn，字距 .3em→.1em（域名带 .cn，原间距会太散） */
.login-brand-title { font-size: 1.5rem; font-weight: 700; color: #fff; line-height: 1.45; margin: 0 0 .7rem; }
.login-brand-sub { font-size: .88rem; color: rgba(255,255,255,.6); line-height: 1.8; margin: 0 0 2rem; }
.login-brand-points { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.login-brand-points li { display: flex; align-items: center; gap: .65rem; font-size: .82rem; color: rgba(255,255,255,.8); }
.login-brand-points i { color: var(--lp-accent); font-size: 1.05rem; }
/* —— 右：表单 —— */
.login-form-panel { flex: 1; display: flex; align-items: center; padding: 2.9rem 3rem; }
.login-form-inner { width: 100%; }
.login-form-title { font-size: 1.4rem; font-weight: 700; color: var(--lp-ink); margin: 0 0 .35rem; }
.login-form-sub { font-size: .85rem; color: var(--lp-muted); margin: 0 0 2rem; }
.login-field { margin-bottom: 1.15rem; }
.login-field label { display: block; font-size: .78rem; font-weight: 600; color: var(--lp-body); margin-bottom: .42rem; letter-spacing: .04em; }
.login-field .form-control {
    height: 46px;
    border: 1px solid var(--lp-line);
    border-radius: 10px;
    font-size: .92rem;
    padding: .55rem .9rem;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.login-field .form-control::placeholder { color: #b6bec8; }
.login-field .form-control:focus { border-color: var(--lp-accent); box-shadow: 0 0 0 3px rgba(255,107,0,.12); }
/* 内联校验：输入框红框 + 下方提示（2026-08-13 用户要求内联） */
.login-field .form-control.is-invalid { border-color: var(--lp-danger); }
.login-field .form-control.is-invalid:focus { box-shadow: 0 0 0 3px rgba(220,38,38,.10); }
.login-field .invalid-feedback { display: none; margin-top: .4rem; font-size: .78rem; color: var(--lp-danger); }
.login-field .invalid-feedback.show { display: block; }
/* 验证码行 */
.login-captcha { display: flex; gap: .6rem; align-items: flex-start; }
.login-captcha .form-control { flex: 1; letter-spacing: .3em; text-align: center; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.login-captcha-img {
    height: 46px; width: 108px; flex-shrink: 0;
    border: 1px solid var(--lp-line); border-radius: 10px;
    object-fit: cover; cursor: pointer;
}
.login-captcha-img:hover { border-color: var(--lp-accent); }
.login-captcha-refresh { display: inline-flex; align-items: center; gap: .3rem; margin-top: .45rem; font-size: .75rem; color: var(--lp-muted); cursor: pointer; text-decoration: none; }
.login-captcha-refresh:hover { color: var(--lp-accent); }
/* 2026-08-16：记住登录（一周免登录）复选框 */
.login-remember { margin: -.15rem 0 1rem; }
.login-check { display: inline-flex; align-items: center; gap: .4rem; font-size: .78rem; color: var(--lp-body); cursor: pointer; }
.login-check input { width: 15px; height: 15px; accent-color: var(--lp-accent); cursor: pointer; }
/* 表单级错误横幅（内联，非弹层） */
.login-form-err {
    display: none;
    margin: 0 0 1rem;
    padding: .6rem .85rem;
    border-radius: 10px;
    font-size: .82rem;
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
}
.login-form-err.show { display: block; }
/* 提交按钮 */
.login-submit {
    width: 100%; height: 48px;
    border: 0; border-radius: 10px;
    background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-deep));
    color: #fff; font-size: .95rem; font-weight: 600; letter-spacing: .1em;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(255,107,0,.30);
    transition: transform .12s, box-shadow .12s, filter .12s;
}
.login-submit:hover { filter: brightness(1.05); box-shadow: 0 14px 32px rgba(255,107,0,.38); }
.login-submit:active { transform: translateY(1px); }
.login-submit:disabled { opacity: .6; cursor: not-allowed; }
.login-submit i { margin-right: .4rem; }
/* 页脚版权 */
.login-copyright { margin-top: 1.15rem; text-align: center; font-size: .75rem; color: rgba(255,255,255,.42); letter-spacing: .05em; }
/* —— 响应式：<1024 隐藏品牌栏，表单卡片居中 —— */
@media (max-width: 1023.98px) {
    .login-brand { display: none; }
    .login-card { max-width: 420px; margin: 0 auto; }
    .login-form-panel { padding: 2.6rem 1.9rem; }
}

/* ====== 仪表盘统计卡：卡片背景固定白色（2026-08-14），不随主题切换；图标/数值仍主题色 ====== */
.stat-card { background: #fff; }
.stat-card .card-footer { background: transparent; }
.stat-card .stat-icon { background: var(--admin-primary); color: #fff; border-radius: 8px; }
.stat-card .stat-value { color: var(--admin-primary-dark); }

/* ====== 后台 UI 风格统一（2026-08-13 用户重新定义：主题色聚焦 + 图标按钮主题色圆角底 + 表格无hover + 链接下划线） ====== */

/* 1a. 表单控件聚焦高亮 = 当前主题色 */
.form-control:focus, .form-select:focus, .form-check-input:focus,
textarea.form-control:focus, .form-control:focus-visible {
    border-color: var(--admin-primary);
    box-shadow: 0 0 0 3px var(--admin-primary-light);
}
/* 1b. 主题色文字/图标跟随主题 */
.text-primary { color: var(--admin-primary) !important; }

/* 1c. 图标操作按钮（纯图标链接，如 编辑/删除/审核/恢复/查看详情）：主题色 + 浅主题圆角底，hover 反相 */
.app-content a:not(.btn):not(.page-link):not(.dropdown-item):not(.nav-link):has(> i.ti:only-child, > i.bi:only-child) {
    display: inline-flex; align-items: center; justify-content: center;
    padding: .15rem .225rem; border-radius: 8px;   /* 2026-08-25：padding 缩小一半 */
    color: var(--admin-primary); background: var(--admin-primary-light);
    text-decoration: none; vertical-align: middle;
    transition: background .15s, color .15s;
}
.app-content a:not(.btn):not(.page-link):not(.dropdown-item):not(.nav-link):has(> i.ti:only-child, > i.bi:only-child):hover {
    background: color-mix(in srgb, var(--admin-primary) 26%, white);
    color: var(--admin-primary-dark);
}

/* 2. 表格去掉 hover 背景变化：悬停保持各行自身底色（斑马仍斑马），不出现白色 */
.table-hover tbody tr:hover, .table tbody tr:hover { background: var(--admin-card-bg); }
.table-hover tbody tr:nth-child(even):hover, .table tbody tr:nth-child(even):hover { background: var(--admin-table-stripe); }

/* 3. 可点击链接加下划线（按钮/分页/下拉项除外；纯图标按钮被 1c 去下划线） */
.app-content a:not(.btn):not(.page-link):not(.dropdown-item):not(.nav-link):not(.theme-option) {
    text-decoration: underline; text-underline-offset: 2px;
}

/* ====== 可操作状态切换图标（2026-08-14）：浅主题色底胶囊（与其它操作图标同底），前景绿√/红× ====== */
td.isonsale i, td.iscuxiao i, td.isshuaimai i, td.state-cell i,
.check-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    padding: .15rem .225rem; border-radius: 8px; vertical-align: middle;  /* 2026-08-25：padding 缩小一半 */
    background: var(--admin-primary-light); font-size: var(--admin-font-icon);
    cursor: pointer; transition: background .15s;
}
td.isonsale i:hover, td.iscuxiao i:hover, td.isshuaimai i:hover, td.state-cell i:hover,
.check-toggle:hover { background: color-mix(in srgb, var(--admin-primary) 26%, white); }
td.state-cell { text-align: center; }

/* 只读状态图标（2026-08-14）：√绿 ×红 无背景，统一 18px */
i.ti-check.text-success, i.ti-x.text-danger { font-size: var(--admin-font-icon); }

/* 可编辑单元格（Product/List 产品名/生产厂家/售价）：浅主题底胶囊，提示可点击内联编辑（2026-08-14） */
.editable-cell { display: inline-block; background: var(--admin-primary-light); border-radius: 8px; padding: 1px .25rem; cursor: pointer; } /* 2026-08-25：padding 缩小一半 */
.editable-cell:hover { background: color-mix(in srgb, var(--admin-primary) 26%, white); }

/* 公司名称链接（进货管理各页）：灰色下划线，hover 颜色加重（2026-08-14） */
.company-link { color: var(--admin-text-muted); text-decoration: underline; }
.company-link:hover { color: var(--admin-text); }

/* 图标按钮内 <i> 继承胶囊主题色（覆盖 text-success/text-danger 等）+ 统一 18px */
.app-content a:not(.btn):not(.page-link):not(.dropdown-item):not(.nav-link):has(> i.ti:only-child, > i.bi:only-child) i {
    color: inherit; font-size: var(--admin-font-icon);
}

/* ====== 在线留言/产品咨询 卡片格式（2026-08-13）：内容 + 时间/IP斜体带图标 + 回复左竖条 ====== */
.gb-card { border: 1px solid var(--admin-border); border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: .9rem; background: var(--admin-card-bg); }
.gb-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .45rem; flex-wrap: wrap; }
.gb-user { font-weight: 600; color: var(--admin-text); font-size: var(--admin-font-md); }
.gb-user a { color: var(--admin-text); }
.gb-user a:hover { color: var(--admin-primary); }
/* 【修改说明】2026-08-14：产品咨询-产品链接灰色 + 下划线、不粗体，不随主题切换（覆盖 .gb-user a 及 hover 主题色） */
.gb-user a.gb-product { color: var(--admin-text-muted) !important; text-decoration: underline !important; font-weight: normal; background: transparent !important; display: inline !important; padding: 0 !important; border-radius: 0 !important; } /* 2026-08-14：产品名灰色下划线、无背景、不随主题色（!important 压过图标胶囊规则） */
.gb-user a.gb-product:hover { color: var(--admin-text) !important; background: transparent !important; }
.gb-product i { color: var(--admin-text-muted) !important; margin-right: .25rem; background: transparent !important; }
.gb-actions { display: flex; align-items: center; gap: .4rem; }
.gb-content { font-size: var(--admin-font-base); color: var(--admin-text); line-height: 1.7; }
.gb-meta { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: .5rem; font-size: var(--admin-font-sm); color: var(--admin-text-muted); }
.gb-meta em { font-style: italic; }
.gb-meta i { color: var(--admin-text-muted); margin-right: .25rem; }
.gb-meta a { color: var(--admin-text); }
.gb-reply { margin-top: .8rem; padding-left: .85rem; border-left: 3px solid var(--admin-border); }
.gb-reply-body { color: var(--admin-text); line-height: 1.7; font-size: var(--admin-font-md); }
.gb-reply-time { margin-top: .3rem; font-size: var(--admin-font-sm); color: var(--admin-text-muted); }
.gb-reply-time em { font-style: italic; }
.gb-reply-time i { margin-right: .25rem; }

/* ====== 按钮点击/聚焦跟随主题色（2026-08-13：修点击闪蓝色 → 主题深色） ====== */
.btn-primary:focus, .btn-primary:focus-visible,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active {
    background-color: var(--admin-primary-dark) !important;
    border-color: var(--admin-primary-dark) !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px var(--admin-primary-light) !important;
}
.btn-outline-primary:focus, .btn-outline-primary:focus-visible,
.btn-outline-primary:not(:disabled):not(.disabled):active {
    color: var(--admin-primary-dark) !important;
    border-color: var(--admin-primary-dark) !important;
    background-color: var(--admin-primary-light) !important;
    box-shadow: 0 0 0 3px var(--admin-primary-light) !important;
}
/* 通用按钮焦点环：主题浅色（防蓝色焦点环） */
.btn:focus-visible, .btn:focus { box-shadow: 0 0 0 3px var(--admin-primary-light); outline: none; }

/* ═══ 固定选项卡条（2026-08-23）：顶栏下方横条，最多 5 个，可关闭 ═══ */
.app-tabs {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .75rem;
    background: var(--admin-card-bg);
    border-bottom: 1px solid var(--admin-border);
    overflow-x: auto;
    flex-wrap: nowrap;
}
.app-tab {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .6rem;
    background: var(--admin-card-bg);
    border: 1px solid var(--admin-border);
    border-radius: 6px;
    font-size: .8rem;
    white-space: nowrap;
}
.app-tab.active {
    background: var(--admin-primary);
    border-color: var(--admin-primary);
}
.app-tab.active .app-tab-link { color: #fff; }
.app-tab-link { color: var(--admin-text); text-decoration: none; }
.app-tab-close {
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    opacity: .7;
    margin-left: .4rem; /* 2026-08-23：与标题留间距，避免误触关闭 */
}
.app-tab-close:hover { opacity: 1; }
