/* ==========================================================================
   圆梦鸿途 · Admin Console  ·  深色模式（darktheme 插件适配）
   仅在 body.darktheme 下生效；加载于 console CSS 之后、插件 darktheme.css 之前，
   统一用 html body.darktheme 提高优先级，覆盖控制台自定义组件。
   ========================================================================== */

html body.darktheme {
    --bg: #0D1219;
    --panel: #141B25;
    --line: #242E3C;
    --line-2: #1C2532;
    --ink: #E8EDF4;
    --ink-2: #AEB9C9;
    --ink-3: #7F8BA0;
    --pri: #5B8DEF;
    --pri-2: #182A47;
    --pri-ink: #9CC0FF;
    --ok: #3ED598;
    --ok-bg: #12261E;
    --warn: #E9B05A;
    --warn-bg: #2B2113;
    --err: #F0797F;
    --err-bg: #2C171A;
    background: var(--bg);
    color: var(--ink-2);
    color-scheme: dark;
}

/* ==========================================================================
   通用组件
   ========================================================================== */
html body.darktheme .seg > .active,
html body.darktheme .seg > .on,
html body.darktheme .seg > button.on { background: #1B2635; color: var(--ink); }
html body.darktheme .seg { background: #101722; }

html body.darktheme .btn {
    background: #182230;
    border-color: var(--line);
    color: var(--ink-2);
}
html body.darktheme .btn:hover,
html body.darktheme .btn:focus { background: #1E2A3A; border-color: #344054; color: var(--ink); }
html body.darktheme .btn-default,
html body.darktheme .btn-success,
html body.darktheme .btn-info,
html body.darktheme .btn-warning,
html body.darktheme .btn-danger { background: #182230; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .btn-default:hover,
html body.darktheme .btn-success:hover,
html body.darktheme .btn-info:hover,
html body.darktheme .btn-warning:hover,
html body.darktheme .btn-danger:hover { background: #1E2A3A; border-color: #344054; color: var(--ink); }
html body.darktheme .btn-primary,
html body.darktheme .btn-add,
html body.darktheme .btn-primary.btn-add { background: var(--pri); border-color: var(--pri); color: #fff; }
html body.darktheme .btn-primary:hover,
html body.darktheme .btn-add:hover { background: var(--pri-ink); border-color: var(--pri-ink); color: #fff; }
html body.darktheme .btn.disabled,
html body.darktheme .btn[disabled] { background: #1A2230; border-color: var(--line); color: #5E6B80; }

html body.darktheme .form-control {
    background: #0F1621;
    border-color: var(--line);
    color: var(--ink);
}
html body.darktheme .form-control::placeholder { color: #6C798E; }
html body.darktheme .form-control:focus { border-color: var(--pri); background: #0D141D; box-shadow: none; }
html body.darktheme .form-control[disabled],
html body.darktheme .form-control[readonly],
html body.darktheme fieldset[disabled] .form-control { background: #1A2230; color: #7F8BA0; }
html body.darktheme .input-group-addon { background: #1A2230; border-color: var(--line); color: var(--ink-3); }

html body.darktheme .table > thead > tr > th {
    background: #1A2230;
    color: var(--ink-2);
    border-color: var(--line-2);
}
html body.darktheme .table > tbody > tr > td { color: var(--ink-2); border-color: var(--line-2); }
html body.darktheme .table-striped > tbody > tr:nth-of-type(odd) { background: rgba(255, 255, 255, .02); }
html body.darktheme .table-striped > tbody > tr:nth-of-type(odd):hover { background: rgba(255, 255, 255, .03); }
html body.darktheme .table-hover > tbody > tr:hover > td,
html body.darktheme .table > tbody > tr:hover > td { background: #1B2432; }

html body.darktheme .panel { background: var(--panel); border-color: var(--line); }
html body.darktheme .panel-heading { background: transparent; border-color: var(--line-2); color: var(--ink); }
html body.darktheme .panel-title { color: var(--ink); }
html body.darktheme .panel-body { background: transparent; }
html body.darktheme .panel-footer { background: #182230; border-color: var(--line-2); }
html body.darktheme .panel-default > .panel-heading { background: transparent; border-color: var(--line-2); }
html body.darktheme .box { background: var(--panel); border-color: var(--line); }
html body.darktheme .box-header { border-color: var(--line-2); }

html body.darktheme .modal-content { background: var(--panel); border-color: var(--line); color: var(--ink-2); }
html body.darktheme .modal-header,
html body.darktheme .modal-footer { border-color: var(--line); }
html body.darktheme .modal-title { color: var(--ink); }
html body.darktheme .close { color: var(--ink); opacity: .65; text-shadow: none; }
html body.darktheme .close:hover { opacity: 1; }

html body.darktheme .dropdown-menu {
    background: var(--panel);
    border-color: var(--line);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
}
html body.darktheme .dropdown-menu > li > a { color: var(--ink-2); }
html body.darktheme .dropdown-menu > li > a:hover,
html body.darktheme .dropdown-menu > li > a:focus { background: #1E2A3A; color: var(--ink); }
html body.darktheme .dropdown-menu .divider { background-color: var(--line); }

html body.darktheme .pagination > li > a,
html body.darktheme .pagination > li > span {
    background: var(--panel);
    border-color: var(--line);
    color: var(--ink-2);
}
html body.darktheme .pagination > li > a:hover { background: #1B2432; border-color: #344054; color: var(--ink); }
html body.darktheme .pagination > .active > a,
html body.darktheme .pagination > .active > span,
html body.darktheme .pagination > .active > a:hover {
    background: var(--pri);
    border-color: var(--pri);
    color: #fff;
}
html body.darktheme .pagination > .disabled > a,
html body.darktheme .pagination > .disabled > span { background: #1A2230; border-color: var(--line-2); color: #5E6B80; }

html body.darktheme .nav-tabs { border-color: var(--line); }
html body.darktheme .nav-tabs > li > a { color: var(--ink-3); }
html body.darktheme .nav-tabs > li.active > a,
html body.darktheme .nav-tabs > li.active > a:hover,
html body.darktheme .nav-tabs > li.active > a:focus {
    background: var(--panel);
    border-color: var(--line) var(--line) transparent;
    color: var(--ink);
}
html body.darktheme .nav > li > a:hover { background: #1B2432; }
html body.darktheme hr { border-color: var(--line); }
html body.darktheme .text-muted { color: var(--ink-3) !important; }
html body.darktheme ::-webkit-scrollbar-thumb { background: #344054; border-color: transparent; }
html body.darktheme ::-webkit-scrollbar-thumb:hover { background: #43536B; }

/* ==========================================================================
   Shell（侧栏 / 顶栏）
   ========================================================================== */
html body.darktheme #app .main-sidebar { background: var(--panel); border-color: var(--line); }
html body.darktheme #app .sb-search .form-control { background: #101722; border-color: var(--line); color: var(--ink); }
html body.darktheme #app .sb-search .form-control:focus { background: #0D141D; border-color: var(--pri); }
html body.darktheme #app .sb-search kbd { background: #1A2230; border-color: var(--line); color: var(--ink-3); }
html body.darktheme #app .sb-search .menuresult { background: var(--panel); border-color: var(--line); }
html body.darktheme #app .sb-search .menuresult a { color: var(--ink-2); }
html body.darktheme #app .sb-search .menuresult a:hover,
html body.darktheme #app .sb-search .menuresult a.active { background: #1B2432; color: var(--ink); }

html body.darktheme #app .sidebar-menu .treeview-menu { background: transparent; }
html body.darktheme #app .sidebar-menu li > a { color: var(--ink-2); }
html body.darktheme #app .sidebar-menu li > a:hover { background: #1B2432; color: var(--ink); }
html body.darktheme #app .sidebar-menu li.active > a,
html body.darktheme #app .sidebar-menu > li.active > a { background: var(--pri-2); color: var(--pri-ink); }
html body.darktheme #app .sidebar-menu .nav-cap { color: var(--ink-3); }
html body.darktheme #app .sidebar-menu .pull-right-container .label { color: #fff; }

html body.darktheme #app .main-header { background: var(--panel); border-color: var(--line); }
html body.darktheme #app .main-header .nav > li > a { color: var(--ink-2); }
html body.darktheme #app .main-header .nav > li > a:hover { background: #1B2432; color: var(--ink); }
html body.darktheme #app .breadcrumb-nav,
html body.darktheme #app .crumb { color: var(--ink-3); }
html body.darktheme #app .topbar-user,
html body.darktheme #app .dropdown-user { color: var(--ink-2); }

html body.darktheme #app .content-wrapper,
html body.darktheme #app iframe { background: var(--bg); }

/* ==========================================================================
   列表页 / 表单页
   ========================================================================== */
html body.darktheme .list-page,
html body.darktheme .form-page,
html body.darktheme .dash-page { color: var(--ink-2); }

html body.darktheme .list-card { background: var(--panel); border-color: var(--line); box-shadow: none; }
html body.darktheme .list-card .fixed-table-header { background: #1A2230; }
html body.darktheme .list-card .table > thead > tr > th { background: #1A2230; color: var(--ink-2); border-color: var(--line-2); }
html body.darktheme .list-card .table > tbody > tr > td { border-color: var(--line-2); }
html body.darktheme .list-card .table > tbody > tr:hover > td { background: #1B2432; }
html body.darktheme .list-card .table-striped > tbody > tr:nth-of-type(odd):hover > td { background: #1B2432; }

html body.darktheme .list-filters .form-control,
html body.darktheme .list-filters .btn-apply { background: #101722; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .list-filters .btn-apply:hover { background: #1E2A3A; border-color: #344054; }
html body.darktheme .list-card .fixed-table-pagination .pagination > .disabled > a,
html body.darktheme .list-card .fixed-table-pagination .pagination > .disabled > span { background: #1A2230; border-color: var(--line-2); color: #5E6B80; }

html body.darktheme .layui-layer.list-detail-layer .layui-layer-content,
html body.darktheme .layui-layer.list-detail-layer .layui-layer-title,
html body.darktheme .layui-layer .layui-layer-title { background: var(--panel) !important; color: var(--ink); }
html body.darktheme .user-detail { background: var(--panel); }

html body.darktheme .fctl .form-control,
html body.darktheme .form-horizontal .form-control { background: #0F1621; border-color: var(--line); color: var(--ink); }
html body.darktheme .fctl .input-group-addon { background: #1A2230; border-color: var(--line); }
html body.darktheme .form-page .form-group > label { color: var(--ink-2); }
html body.darktheme .form-page .help-block { color: var(--ink-3); }
html body.darktheme .layui-layer.layui-layer-fast.layui-layer-iframe .layui-layer-title { background: var(--panel) !important; color: var(--ink); }
html body.darktheme .layui-layer-fast .layui-layer-footer.layui-layer-btn { background: var(--panel) !important; border-color: var(--line); }
html body.darktheme .layui-layer-footer.layui-layer-btn .btn-default { background: #182230 !important; border-color: var(--line) !important; color: var(--ink-2) !important; }
html body.darktheme .layui-layer-footer.layui-layer-btn .btn-default:hover { background: #1E2A3A !important; }
html body.is-dialog.inside-header { background: var(--bg); }

/* 富文本 / 上传等 */
html body.darktheme .faupload,
html body.darktheme .fachoose { background: #182230; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .faupload:hover,
html body.darktheme .fachoose:hover { background: #1E2A3A; }
html body.darktheme .upload-btn { background: #182230 !important; border-color: var(--line) !important; }

/* ==========================================================================
   登录页
   ========================================================================== */
html body.darktheme.console-login::before {
    background:
        radial-gradient(1100px 560px at 12% -10%, rgba(37, 99, 235, .16) 0%, rgba(37, 99, 235, 0) 62%),
        radial-gradient(900px 520px at 108% 112%, rgba(18, 160, 92, .12) 0%, rgba(18, 160, 92, 0) 58%);
}
html body.darktheme.console-login::after {
    background-image:
        linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
    opacity: .6;
}
html body.darktheme .lg-card {
    background: var(--panel);
    border-color: var(--line);
    box-shadow: 0 24px 64px rgba(0, 0, 0, .45);
}
html body.darktheme .lg-field > .form-control { background: #0F1621; border-color: var(--line); color: var(--ink); }
html body.darktheme .lg-field > .form-control::placeholder { color: #6C798E; }
html body.darktheme .lg-field .input-group-addon img { background: #0F1621; border-color: var(--line); }
html body.darktheme .lg-field.has-error > .form-control { border-color: var(--err); }
html body.darktheme .lg-keep,
html body.darktheme .lg-sub,
html body.darktheme .lg-foot { color: var(--ink-3); }
html body.darktheme .lg-btn.ghost { background: #182230; border-color: var(--line); color: var(--ink-2); }

/* ==========================================================================
   CRM 控制台
   ========================================================================== */
html body.darktheme .crm-scope { background: #1B2432; }
html body.darktheme .crm-scope button { color: var(--ink-2); }
html body.darktheme .crm-scope button.active { background: var(--panel); color: var(--ink); box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
html body.darktheme .crm-card { background: var(--panel); border-color: var(--line); box-shadow: none; }
html body.darktheme .crm-work-item:hover { background: #1B2432; }
html body.darktheme .crm-ico-blue { background: #14253D; color: #7FA9F5; }
html body.darktheme .crm-ico-orange { background: #2A2113; color: #E9B05A; }
html body.darktheme .crm-ico-red { background: #2C171A; color: #F0797F; }
html body.darktheme .crm-select {
    background-color: #101722;
    border-color: var(--line);
    color: var(--ink-2);
}
html body.darktheme .crm-range { background: #101722; border-color: var(--line); }
html body.darktheme .crm-range > button { background: transparent; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .crm-range > button:hover { color: var(--ink); }
html body.darktheme .crm-range > button.active { background: #1B2635; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
html body.darktheme .crm-date-pop { background: var(--panel); border-color: var(--line); box-shadow: 0 12px 32px rgba(0, 0, 0, .5); }
html body.darktheme .crm-date-pop input { background: #0F1621; border-color: var(--line); color: var(--ink); }
html body.darktheme .crm-date-pop button { background: #182230; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .crm-date-pop button.crm-date-ok { background: var(--pri); border-color: var(--pri); color: #fff; }
html body.darktheme .crm-goal-stats > div { border-color: var(--line-2); }
html body.darktheme .crm-metrics b { color: var(--ink); }
html body.darktheme .crm-legend { color: var(--ink-2); }


/* ---------- 头像 / 用户下拉 ---------- */
html body.darktheme .av { background: #1E2A3A; color: var(--ink-2); }
html body.darktheme .list-card .u .av { background: #1E2A3A; color: var(--ink-2); }
html body.darktheme #app .main-header .user-dd-menu .user-dd-head { background: #1B2432; border-color: var(--line); }
html body.darktheme #app .main-header .crumb svg.i { color: var(--ink-3); }

/* ---------- 列表筛选 / 行操作 ---------- */
html body.darktheme .list-filters .filter-date > .form-control[readonly],
html body.darktheme .list-filters .form-control[readonly],
html body.darktheme .list-filters .date-range-btn { background: #101722; border-color: var(--line); color: var(--ink-2); }
html body.darktheme .list-filters .filter-date .fa-calendar { color: var(--ink-3); }
html body.darktheme .bootstrap-table .fixed-table-container .btn {
    background: transparent;
    border-color: transparent;
    color: var(--pri-ink);
}
html body.darktheme .bootstrap-table .fixed-table-container .btn:hover {
    background: #1B2432;
    border-color: var(--line);
    color: var(--ink);
}
html body.darktheme .bootstrap-table .fixed-table-container .btn.btn-delone,
html body.darktheme .bootstrap-table .fixed-table-container .btn.btn-del,
html body.darktheme .bootstrap-table .fixed-table-container .btn.btn-delete { color: var(--err); }
html body.darktheme .list-card .acts a { color: var(--pri-ink); }
html body.darktheme .list-card .acts a.danger,
html body.darktheme .list-card .acts a.d { color: var(--err); }
html body.darktheme .list-card .acts a.disabled { color: var(--ink-3); }

/* ---------- CRM 图表图例 ---------- */
html body.darktheme .crm-legend .line { background: var(--ink); }
html body.darktheme .crm-legend .line.orange { background: #E9B05A; }
html body.darktheme .crm-legend .line.blue { background: #5B8DEF; }
