/* ============================================================
   Qilin 后台 · 国际化深色主题 v3(深蓝底 · 白字 · 与数据大屏统一)
   整个后台改成大屏同款深色高端风。覆盖 Bootstrap3 全组件。
   ============================================================ */
:root{
  --pg-bg1:#0b1626; --pg-bg2:#0f2038;            /* 页面深蓝渐变 */
  --pg-panel:rgba(255,255,255,.045);             /* 卡片半透明 */
  --pg-panel-2:rgba(255,255,255,.025);
  --pg-border:rgba(255,255,255,.09);
  --pg-ink:#e7eefb;                              /* 主文字 近白 */
  --pg-ink-2:#9db0d0;                            /* 次文字 */
  --pg-ink-3:#6f83a6;                            /* 弱文字 */
  --pg-blue:#3b82f6; --pg-blue-d:#2563eb; --pg-blue-l:rgba(59,130,246,.16);
  --pg-green:#10b981; --pg-amber:#f59e0b; --pg-red:#ef4444; --pg-cyan:#22d3ee; --pg-violet:#a78bfa;
  --pg-radius:12px; --pg-radius-s:8px;
  --pg-shadow:0 4px 18px rgba(0,0,0,.28);
}

/* ---- 基础 ---- */
html,body{ height:100%; }
body{
  background:linear-gradient(135deg,var(--pg-bg1),var(--pg-bg2)) fixed!important;
  color:var(--pg-ink)!important;
  font-family:"Inter","Segoe UI","PingFang SC","Microsoft YaHei",Roboto,Arial,sans-serif!important;
  font-size:14px!important; line-height:1.6!important; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{ color:#fff!important; font-weight:700!important; letter-spacing:.2px; }
h1{font-size:28px!important} h2{ font-size:23px!important; margin:6px 0 16px!important; } h3{ font-size:18px!important; } h4{font-size:16px!important}
a{ color:var(--pg-blue); text-decoration:none; } a:hover{ color:#60a5fa; }
.text-muted,small{ color:var(--pg-ink-2)!important; }
hr{ border-top:1px solid var(--pg-border)!important; margin:18px 0!important; }
p,span,div,td,th,li,label,strong,b{ color:inherit; }
code,pre{ font-family:"JetBrains Mono",Consolas,Menlo,monospace!important; background:rgba(255,255,255,.06)!important; color:#a9c2e8!important; border-radius:6px; }
.container,.container-fluid{ padding-left:24px!important; padding-right:24px!important; }

/* ---- 顶部品牌区 ---- */
.brand{ background:linear-gradient(160deg,#0e1c30,#0a1322)!important; color:#fff!important; padding:16px!important; border-bottom:3px solid var(--pg-blue); }
.brand a{ color:#fff!important; font-weight:800!important; font-size:18px!important; letter-spacing:.4px; }
.brand .version{ color:#7f9bc4!important; font-size:11px; }

/* ---- 侧栏 ---- */
body, .sidebar, .menu-content, .list-unstyled, .nav{ background-color:transparent; }
.sidebar-group-item-title,.sidebar-page-item-title{ color:var(--pg-ink)!important; font-size:14px!important; }
.nav>li>a,.list-unstyled>li>a,a.list-group-item{ color:var(--pg-ink-2)!important; background:transparent!important; border:none!important; border-radius:var(--pg-radius-s); margin:1px 8px; padding:9px 13px!important; transition:.15s; font-size:13.5px; }
.nav>li>a:hover,.list-unstyled>li>a:hover{ background:rgba(255,255,255,.06)!important; color:#fff!important; }
.nav>li.active>a,.nav>li>a.active{ background:var(--pg-blue)!important; color:#fff!important; }

/* ---- 卡片 / 面板 / well ---- */
.panel,.card,.well,.box,.modal-content{ background:var(--pg-panel)!important; border:1px solid var(--pg-border)!important; border-radius:var(--pg-radius)!important; box-shadow:var(--pg-shadow)!important; color:var(--pg-ink)!important; }
.well{ padding:18px!important; }
.panel-heading,.card-header{ background:var(--pg-panel-2)!important; border-bottom:1px solid var(--pg-border)!important; font-weight:700!important; color:#fff!important; padding:14px 18px!important; border-radius:var(--pg-radius) var(--pg-radius) 0 0!important; }
.panel-body,.card-body{ padding:18px!important; }
.panel-default,.panel-primary,.panel-info{ border-color:var(--pg-border)!important; }

/* ---- 表格(深色) ---- */
.table{ background:rgba(255,255,255,.02)!important; border-radius:var(--pg-radius)!important; overflow:hidden; box-shadow:var(--pg-shadow)!important; border:1px solid var(--pg-border)!important; margin-bottom:18px!important; color:var(--pg-ink)!important; }
.table>thead>tr>th{
  background:rgba(255,255,255,.05)!important; color:#aebfdc!important;
  font-weight:700!important; font-size:12.5px!important; letter-spacing:.3px;
  border-bottom:1px solid var(--pg-border)!important; border-top:none!important; padding:13px 14px!important; white-space:nowrap; vertical-align:middle;
}
.table>tbody>tr>td{ padding:12px 14px!important; border-top:1px solid rgba(255,255,255,.05)!important; color:var(--pg-ink)!important; vertical-align:middle; font-size:13.5px; }
.table>tbody>tr{ transition:background .12s; }
.table>tbody>tr:hover{ background:rgba(59,130,246,.10)!important; }
.table>tbody>tr:nth-of-type(even){ background:rgba(255,255,255,.018); }
.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>thead>tr>th{ border-color:var(--pg-border)!important; }
.table td:last-child{ font-family:"JetBrains Mono",Consolas,monospace; font-size:12px; color:#9fc0ec; }
.table-striped>tbody>tr:nth-of-type(odd){ background:rgba(255,255,255,.018)!important; }

/* ---- 按钮 ---- */
.btn{ border-radius:var(--pg-radius-s)!important; font-weight:600!important; padding:8px 16px!important; border:1px solid transparent!important; transition:.15s; font-size:13.5px; }
.btn:active{ transform:translateY(1px); }
.btn-primary,.btn-info{ background:var(--pg-blue)!important; border-color:var(--pg-blue)!important; color:#fff!important; }
.btn-primary:hover,.btn-info:hover{ background:var(--pg-blue-d)!important; }
.btn-success{ background:var(--pg-green)!important; border-color:var(--pg-green)!important; color:#fff!important; }
.btn-warning{ background:var(--pg-amber)!important; border-color:var(--pg-amber)!important; color:#1b2738!important; }
.btn-danger{ background:var(--pg-red)!important; border-color:var(--pg-red)!important; color:#fff!important; }
.btn-default,.btn-secondary{ background:rgba(255,255,255,.07)!important; border-color:var(--pg-border)!important; color:var(--pg-ink)!important; }
.btn-default:hover{ background:rgba(255,255,255,.13)!important; color:#fff!important; }
.btn-link{ color:var(--pg-blue)!important; }
.btn-xs,.btn-sm{ padding:4px 10px!important; font-size:12px; }

/* ---- 表单 / 下拉 ---- */
.form-control,input[type=text],input[type=number],input[type=password],input[type=email],input[type=search],select,textarea{
  border:1px solid rgba(255,255,255,.14)!important; border-radius:var(--pg-radius-s)!important; color:var(--pg-ink)!important;
  box-shadow:none!important; padding:9px 13px!important; height:auto!important; background:rgba(255,255,255,.06)!important; font-size:13.5px!important;
}
.form-control:focus,input:focus,select:focus,textarea:focus{ border-color:var(--pg-blue)!important; box-shadow:0 0 0 3px rgba(59,130,246,.22)!important; outline:none; background:rgba(255,255,255,.09)!important; }
label,.control-label{ color:#b9c8e4!important; font-weight:600!important; font-size:13px; margin-bottom:6px; }
::placeholder{ color:#7e90b2!important; }
select option{ background:#142239; color:var(--pg-ink); }
.input-group-addon{ background:rgba(255,255,255,.06)!important; border-color:rgba(255,255,255,.14)!important; color:var(--pg-ink-2)!important; }
/* react-select 等 */
.Select-control,.select__control,[class*="-control"]{ background:rgba(255,255,255,.06)!important; border-color:rgba(255,255,255,.14)!important; border-radius:var(--pg-radius-s)!important; color:var(--pg-ink)!important; }
.Select-menu-outer,.select__menu,[class*="-menu"]{ background:#142239!important; border-radius:var(--pg-radius-s)!important; box-shadow:var(--pg-shadow)!important; color:var(--pg-ink)!important; }
.Select-value-label,.select__single-value{ color:var(--pg-ink)!important; }

/* ---- 标签页 ---- */
.nav-tabs{ border-bottom:1px solid var(--pg-border)!important; }
.nav-tabs>li>a{ border:none!important; color:var(--pg-ink-2)!important; font-weight:600; border-radius:0!important; padding:10px 16px!important; margin-bottom:-1px; background:transparent!important; }
.nav-tabs>li.active>a,.nav-tabs>li>a:hover{ color:#fff!important; background:transparent!important; border-bottom:2.5px solid var(--pg-blue)!important; }
.nav-pills>li.active>a{ background:var(--pg-blue)!important; border-radius:var(--pg-radius-s)!important; }

/* ---- 徽章 ---- */
.label,.badge{ border-radius:20px!important; font-weight:700!important; padding:3px 10px!important; font-size:11.5px; }
.label-success,.badge-success{ background:rgba(16,185,129,.20)!important; color:#34d399!important; }
.label-warning,.badge-warning{ background:rgba(245,158,11,.20)!important; color:#fbbf24!important; }
.label-danger,.badge-danger{ background:rgba(239,68,68,.20)!important; color:#f87171!important; }
.label-info,.label-primary,.badge-info{ background:var(--pg-blue-l)!important; color:#60a5fa!important; }
.label-default,.badge-default{ background:rgba(255,255,255,.10)!important; color:var(--pg-ink-2)!important; }

/* ---- 提示框 ---- */
.alert{ border-radius:var(--pg-radius)!important; border:1px solid transparent!important; padding:13px 16px!important; }
.alert-danger{ background:rgba(239,68,68,.12)!important; color:#fca5a5!important; border-color:rgba(239,68,68,.3)!important; }
.alert-info{ background:var(--pg-blue-l)!important; color:#93c5fd!important; border-color:rgba(59,130,246,.3)!important; }
.alert-success{ background:rgba(16,185,129,.12)!important; color:#6ee7b7!important; border-color:rgba(16,185,129,.3)!important; }
.alert-warning{ background:rgba(245,158,11,.12)!important; color:#fcd34d!important; border-color:rgba(245,158,11,.3)!important; }

/* ---- 弹窗 ---- */
.modal-content{ box-shadow:0 24px 70px rgba(0,0,0,.55)!important; }
.modal-header,.modal-footer{ border-color:var(--pg-border)!important; }
.modal-title{ color:#fff!important; font-weight:700!important; }
.modal-backdrop.in{ opacity:.6!important; }
.close{ color:#fff!important; opacity:.6; text-shadow:none; } .close:hover{ opacity:1; }

/* ---- 分页 ---- */
.pagination>li>a{ background:rgba(255,255,255,.05)!important; color:var(--pg-ink)!important; border-color:var(--pg-border)!important; }
.pagination>li.active>a{ background:var(--pg-blue)!important; border-color:var(--pg-blue)!important; }

/* ---- 复选 ---- */
input[type=checkbox],input[type=radio]{ accent-color:var(--pg-blue); width:16px; height:16px; }

/* ---- 滚动条 ---- */
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.16); border-radius:8px; }
::-webkit-scrollbar-thumb:hover{ background:rgba(255,255,255,.26); }

/* 大屏 live 脉冲点动画 */
@keyframes pgpulse{ 0%{box-shadow:0 0 0 0 rgba(52,211,153,.6)} 70%{box-shadow:0 0 0 10px rgba(52,211,153,0)} 100%{box-shadow:0 0 0 0 rgba(52,211,153,0)} }

/* ===== 侧栏激活态浅色块修复(原 dashboard.css 用 #eee / lightyellow,白字看不清)=====
   统一压成深色/蓝高亮 + 白字,与蓝底白字主题一致 */
.nav-side-menu .sidebar-group-item.active{ background-color:rgba(255,255,255,.06)!important; }
.nav-side-menu .sidebar-page-item .active,
.nav-side-menu .sidebar-page-item a.active,
.nav-side-menu .sidebar-page-item.active,
.nav-side-menu .sidebar-group-item-list .sidebar-page-item a.active{
  background-color:var(--pg-blue)!important; color:#fff!important; border-radius:8px;
}
.nav-side-menu .sidebar-page-item .active *,
.nav-side-menu a.active *,
.nav-side-menu .sidebar-page-item.active *{ color:#fff!important; }
/* 侧栏文字统一可读(覆盖低对比) */
.nav-side-menu .sidebar-item a,
.nav-side-menu .sidebar-group-item-name,
.nav-side-menu .sidebar-page-item-name,
.nav-side-menu .sidebar-group-item-title,
.nav-side-menu .sidebar-page-item-title{ color:#dbe5f5!important; }
.nav-side-menu .sidebar-group-item-list{ background-color:transparent!important; }

/* ===== 侧栏聚焦态灰底修复(Bootstrap 默认 a:focus=#eee,点击后残留灰块)===== */
.nav-side-menu a:focus, .nav-side-menu a:active, .nav-side-menu a:hover,
.nav-side-menu .sidebar-item-elem:focus, .nav-side-menu .sidebar-page-item:focus,
.nav>li>a:focus, .nav>li>a:hover, .list-unstyled>li>a:focus,
.nav-side-menu li:focus, .nav-side-menu li:active{
  background-color:rgba(255,255,255,.07)!important; color:#fff!important; outline:none!important;
}
.nav-side-menu .active, .nav-side-menu a.active, .nav-side-menu li.active>a,
.nav-side-menu .sidebar-page-item.active, .nav-side-menu .sidebar-item.active{
  background-color:var(--pg-blue)!important; color:#fff!important; border-radius:8px;
}
.nav-side-menu .active, .nav-side-menu .active *{ color:#fff!important; }

/* ============ 强覆盖兜底 v6:消灭白底/深字看不见 ============ */
/* 所有输入(含无 class/无 type 的裸 input,!important 覆盖内联白底黑字)*/
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),
textarea, select, .form-control{
  background-color:rgba(255,255,255,.07)!important; color:#e7eefb!important; border:1px solid rgba(255,255,255,.16)!important;
}
/* Bootstrap list-group(生成器/预览网格用它)→ 深底白字 */
.list-group, .list-group-item, ul.list-group>li{
  background-color:rgba(255,255,255,.03)!important; color:#e7eefb!important; border-color:var(--pg-border)!important;
}
.list-group-item strong,.list-group-item b,.list-group-item span,.list-group-item label,.list-group-item td,.list-group-item th,.list-group-item div{ color:#e7eefb!important; }
/* react-select(emotion 生成类 css-xxx-singleValue 等)*/
[class*="singleValue"]{ color:#e7eefb!important; }
[class*="-control"]{ background-color:rgba(255,255,255,.07)!important; border-color:rgba(255,255,255,.16)!important; }
[class*="-menu"]{ background-color:#142239!important; color:#e7eefb!important; }
[class*="-option"]{ background-color:transparent!important; color:#e7eefb!important; }
[class*="-option"]:hover, [class*="-option"][class*="focused"]{ background-color:rgba(59,130,246,.22)!important; }
[class*="-placeholder"]{ color:#8194b5!important; }
[class*="-multiValue"]{ background-color:rgba(59,130,246,.28)!important; }
[class*="-multiValue"] [class*="label"], [class*="-input"]{ color:#fff!important; }
/* 兜底:强制深字内联(原白底主题遗留 color:#000/#333)→ 浅字 */
[style*="color: rgb(0, 0, 0)"],[style*="color:#000"],[style*="color: #000"],[style*="color:#333"],[style*="color: #333"],[style*="color:black"]{ color:#e7eefb!important; }
[style*="background-color: rgb(255, 255, 255)"],[style*="background:#fff"],[style*="background: #fff"],[style*="background-color:#fff"],[style*="background-color: #fff"],[style*="background:white"],[style*="background: white"]{ background-color:rgba(255,255,255,.06)!important; }

/* ============ v7:描边按钮/链接/react-select 内层 提亮 ============ */
.btn-outline-primary,.btn-outline-info{ color:#7aa2ff!important; border-color:rgba(122,162,255,.55)!important; background:transparent!important; }
.btn-outline-secondary,.btn-outline-default{ color:#cdd9ec!important; border-color:rgba(255,255,255,.28)!important; background:transparent!important; }
.btn-outline-danger{ color:#f87171!important; border-color:rgba(248,113,113,.55)!important; background:transparent!important; }
.btn-outline-success{ color:#34d399!important; border-color:rgba(52,211,153,.55)!important; background:transparent!important; }
.btn-outline-warning{ color:#fbbf24!important; border-color:rgba(251,191,36,.55)!important; background:transparent!important; }
.btn-outline-primary:hover{ background:rgba(122,162,255,.16)!important; }
.btn-outline-secondary:hover{ background:rgba(255,255,255,.10)!important; color:#fff!important; }
.btn-outline-danger:hover{ background:rgba(248,113,113,.16)!important; }
/* 链接蓝太暗 → 提亮(排除按钮)*/
a:not(.btn):not([class*="btn"]){ color:#6fa8ff!important; }
/* react-select 值/内层文字(含纯哈希 css-xxx 类)→ 浅字 */
[class*="-control"] [class*="css-"], [class*="-control"]>div>div{ color:#e7eefb!important; }
[class*="-control"] svg{ fill:#9db0d0!important; }

/* ============ v9:btn-light / btn-link 深色化 ============ */
.btn-light,.btn-outline-light{ background:rgba(255,255,255,.08)!important; color:#e7eefb!important; border-color:rgba(255,255,255,.18)!important; }
.btn-light:hover,.btn-outline-light:hover{ background:rgba(255,255,255,.16)!important; color:#fff!important; }
.btn-link{ background:transparent!important; color:#6fa8ff!important; }
.btn.active, .btn-group .btn.active{ background:var(--pg-blue)!important; color:#fff!important; }
/* 兜底:大写/无空格内联白底黑字 */
[style*="#F2F2F2"],[style*="#FFFFFF"],[style*="#FFF"],[style*="background:#fafafa" i]{ background-color:rgba(255,255,255,.06)!important; }
[style*="#000000"],[style*="color:#000" i]{ color:#e7eefb!important; }

/* ============ v10:button 基础字色(消灭 UA 默认黑字;彩色变体 !important 仍优先)============ */
button{ color:#e7eefb; }
.btn{ color:#e7eefb; }

/* ============ v11:裸 button(非.btn)补深底+边框,消灭 UA 默认浅灰底 ============ */
button:not(.btn){ background-color:rgba(255,255,255,.08)!important; color:#e7eefb!important; border:1px solid rgba(255,255,255,.18)!important; border-radius:8px; }
button:not(.btn):hover{ background-color:rgba(255,255,255,.15)!important; color:#fff!important; }

/* ============ v14:根治侧栏 hover 灰块(dashboard.css .sidebar-page-item:hover{lightgray} 真凶)============ */
.nav-side-menu .sidebar-page-item:hover,
.nav-side-menu .sidebar-group-item:hover,
.nav-side-menu .sidebar-item:hover,
.nav-side-menu .sidebar-page-item-elem:hover,
.nav-side-menu .sidebar-group-item-elem:hover,
.nav-side-menu li:hover,
.nav-side-menu li > a:hover {
  background-color: rgba(255, 255, 255, 0.07) !important;
  color: #fff !important;
}
.nav-side-menu .sidebar-page-item:hover *,
.nav-side-menu .sidebar-group-item:hover *,
.nav-side-menu li:hover * {
  color: #fff !important;
}
/* 选中态保持蓝底白字,优先级压过 hover */
.nav-side-menu .sidebar-page-item.active,
.nav-side-menu li.active > a,
.nav-side-menu a.active {
  background-color: var(--pg-blue) !important;
  color: #fff !important;
}

/* ============ v15:修复"分组展开时整组染蓝、所有子项都高亮"的bug ============ */
/* 分组容器 li(展开/active)不染蓝——否则蓝底铺满所有子项;只给极淡底表示展开 */
.nav-side-menu li.sidebar-group-item.active,
.nav-side-menu li.sidebar-item.active,
.nav-side-menu .sidebar-group-item.active {
  background-color: transparent !important;
  color: inherit !important;
}
/* 只有真正"当前所在的页面项"才高亮蓝底 */
.nav-side-menu .sidebar-page-item.active,
.nav-side-menu .sidebar-page-item > a.active,
.nav-side-menu a.active {
  background-color: var(--pg-blue) !important;
  color: #fff !important;
  border-radius: 8px;
}
.nav-side-menu a.active * { color: #fff !important; }
