/* ============================================================
   方案B「深蓝侧栏经典风」全局换肤
   深藏蓝侧栏 #12294d + 白顶栏 + #f3f5f7 内容区 / 主蓝 #2563eb
   说明：通过高优先级选择器覆盖 Tailwind CDN 生成的工具类，
   不改动 app.js / agent.js 的 DOM 结构。
   ============================================================ */
:root {
  --sb-bg: #12294d;        /* 侧边栏深藏蓝 */
  --sb-logo: #0f2340;      /* LOGO 区更深 */
  --sb-active: #2563eb;    /* 侧栏激活=实心蓝块 */
  --sb-text: #a9bcd8;      /* 侧栏文字 */
  --sb-group: #5f789c;     /* 侧栏分组标题 */
  --blue: #2563eb;         /* 主蓝 */
  --blue-hover: #1d4ed8;   /* 主蓝 hover */
  --blue-soft: #e3ecfb;    /* 浅蓝底 */
  --bg: #f3f5f7;           /* 内容区底 */
  --card: #ffffff;         /* 卡片纯白 */
  --line: #e4e7ec;         /* 边框 */
  --line-2: #d3d8de;
  --ink: #1f2329;          /* 主文字 */
  --ink-2: #646a73;        /* 次要文字 */
  --ink-3: #8f959e;        /* 弱文字 */
  --zebra: #f7f8f9;        /* 表格斑马纹 */
  --danger: #cf3a30;       /* 危险红（仅描边红按钮/驳回） */
  --danger-soft: #fdecea;  /* 浅红底 */
  --badge-gray: #eff0f1;   /* 灰徽章底 */
  --green: #16a34a;        /* 仅金额盈亏等语义数字保留 */
  --red: #dc2626;
  --yellow: #d97706;
  --card-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .05);
}

/* ---------- 全局基底 ---------- */
html, body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif !important;
}
body {
  background-color: var(--bg) !important;
  color: var(--ink) !important;
}

/* ---------- 灰阶语义重映射（内容区深色系 -> 白卡片体系） ---------- */
body .bg-gray-900 { background-color: var(--bg) !important; }
body .bg-gray-800 { background-color: var(--card) !important; }
body .bg-gray-700 { background-color: #f3f4f6 !important; }
body .bg-gray-700\/50 { background-color: rgba(243, 244, 246, .6) !important; }
body .bg-gray-600 { background-color: #e5e7eb !important; }
body .bg-gray-500 { background-color: #9ca3af !important; }

body .border-gray-700 { border-color: var(--line) !important; }
body .border-gray-600 { border-color: var(--line-2) !important; }
body .border-gray-500 { border-color: var(--line-2) !important; }
body .divide-gray-700 > * + * { border-color: var(--line) !important; }

/* 文字颜色翻转 */
body .text-gray-100, body .text-gray-200, body .text-gray-300 { color: var(--ink) !important; }
body .text-gray-400, body .text-gray-500 { color: var(--ink-2) !important; }

/* 元素自身同时带灰底+白字（如验证码框） -> 白底深字 */
body :is(.bg-gray-800, .bg-gray-700).text-white:not(button):not(.adm-sidebar):not(aside *) {
  color: var(--ink) !important;
}

/* 卡片内的纯白文字转深色（标题、段落、单元格等） */
body .bg-gray-800 :is(h1, h2, h3, h4, h5, p, td, th, div, span, a, label).text-white,
body .card-stat :is(h1, h2, h3, h4, h5, p, td, th, div, span, a, label).text-white,
body .bg-gray-700 :is(h1, h2, h3, h4, h5, p, td, th, div, span, a, label).text-white {
  color: var(--ink) !important;
}

/* ---------- 主色语义类重映射（tailwind.config 的 primary/secondary/gold） ---------- */
body .bg-primary { background-color: var(--blue) !important; }
body .bg-secondary, body .bg-gold { background-color: var(--blue) !important; }
body .text-primary, body .text-secondary, body .text-gold { color: var(--blue) !important; }
body .border-primary, body .border-secondary { border-color: var(--blue) !important; }
body .hover\:border-primary:hover { border-color: var(--blue) !important; }
body .focus\:border-primary:focus { border-color: var(--blue) !important; }
body .bg-primary\/10 { background-color: var(--blue-soft) !important; }
/* 卡片头部深色渐变条 -> 浅灰头 */
body [class*="from-gray-750"] {
  background: #f5f6f7 !important;
  background-image: none !important;
  border-bottom: 1px solid var(--line) !important;
}
body [class*="from-gray-750"] :is(h1, h2, h3, h4, p, span, div, a) { color: var(--ink) !important; }
body [class*="from-gray-750"] .text-gray-400 { color: var(--ink-2) !important; }

/* 品牌渐变 logo -> 实心蓝 */
body [class*="from-primary"], body [class*="to-secondary"] {
  background-image: none !important;
  background-color: var(--blue) !important;
}

/* ============================================================
   统一按钮体系（替换多彩按钮，禁止渐变）
   主要=实心蓝白字 / 次要=白底灰边灰字 / 危险=白底红边红字 / 禁用=浅灰
   ============================================================ */
body :is(button, a[class*="bg-"][class*="rounded"]):not(.adm-hamburger):not(.rounded-full) {
  border-radius: 5px !important;
}

/* 主要按钮：原 蓝/绿/青/靛/渐变/primary 实心按钮 -> 实心蓝 */
body :is(button, a[class*="rounded"]):is(.bg-primary, .bg-success,
  [class*="bg-blue"], [class*="bg-green"], [class*="bg-teal"],
  [class*="bg-cyan"], [class*="bg-indigo"], [class*="bg-gradient"], [class*="from-"]) {
  background: var(--blue) !important;
  background-image: none !important;
  border: 1px solid var(--blue) !important;
  color: #ffffff !important;
}
body :is(button, a[class*="rounded"]):is(.bg-primary, .bg-success,
  [class*="bg-blue"], [class*="bg-green"], [class*="bg-teal"],
  [class*="bg-cyan"], [class*="bg-indigo"], [class*="bg-gradient"], [class*="from-"])
  :is(span, i, p, div, strong, em) {
  color: #ffffff !important;
}
body :is(button, a[class*="rounded"]):is(.bg-primary, .bg-success,
  [class*="bg-blue"], [class*="bg-green"], [class*="bg-teal"],
  [class*="bg-cyan"], [class*="bg-indigo"], [class*="bg-gradient"], [class*="from-"]):hover {
  background: var(--blue-hover) !important;
  border-color: var(--blue-hover) !important;
}

/* 次要按钮：原 黄/橙/紫/粉 按钮 -> 白底灰边灰字 */
body :is(button, a[class*="rounded"]):is(
  [class*="bg-yellow"], [class*="bg-amber"], [class*="bg-orange"],
  [class*="bg-purple"], [class*="bg-pink"]) {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--line-2) !important;
  color: #4e5560 !important;
}
body :is(button, a[class*="rounded"]):is(
  [class*="bg-yellow"], [class*="bg-amber"], [class*="bg-orange"],
  [class*="bg-purple"], [class*="bg-pink"]) :is(span, i, p, div, strong, em) {
  color: #4e5560 !important;
}
body :is(button, a[class*="rounded"]):is(
  [class*="bg-yellow"], [class*="bg-amber"], [class*="bg-orange"],
  [class*="bg-purple"], [class*="bg-pink"]):hover {
  background: #f5f6f7 !important;
}

/* 危险按钮：原红色按钮 -> 白底红边红字（描边红） */
body :is(button, a[class*="rounded"]):is(.bg-danger, [class*="bg-red"]) {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid var(--danger) !important;
  color: var(--danger) !important;
}
body :is(button, a[class*="rounded"]):is(.bg-danger, [class*="bg-red"])
  :is(span, i, p, div, strong, em) {
  color: var(--danger) !important;
}
body :is(button, a[class*="rounded"]):is(.bg-danger, [class*="bg-red"]):hover {
  background: var(--danger-soft) !important;
}

/* 禁用按钮：浅灰底灰字 */
body button:disabled, body button[disabled],
body button:is(.opacity-50, .cursor-not-allowed) {
  background: #eff0f1 !important;
  background-image: none !important;
  border: 1px solid #eff0f1 !important;
  color: #a9aeb6 !important;
  cursor: not-allowed !important;
}
body button:disabled :is(span, i, p, div, strong),
body button:is(.opacity-50, .cursor-not-allowed) :is(span, i, p, div, strong) {
  color: #a9aeb6 !important;
}

/* ---------- 卡片：纯白 + 6px 圆角 + 轻阴影 ---------- */
body .bg-gray-800:is(.rounded-xl, .rounded-lg, .rounded-2xl) {
  border-radius: 6px !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--card-shadow) !important;
}
/* 仪表盘统计卡（原深色渐变） -> 白卡 */
body .card-stat {
  background: var(--card) !important;
  border: 1px solid var(--line) !important;
  border-radius: 6px !important;
  box-shadow: var(--card-shadow) !important;
}
body .card-stat i, body .card-stat .fa, body .card-stat [class*="fa-"] { color: var(--blue) !important; }
body .glow-effect { box-shadow: var(--card-shadow) !important; }

/* 代理门户统计卡（原彩色渐变） -> 白卡 + 蓝色图标 */
body [class*="from-blue-600"]:not(button):not(a):not(input):not(select),
body [class*="from-green-600"]:not(button):not(a):not(input):not(select),
body [class*="from-purple-600"]:not(button):not(a):not(input):not(select),
body [class*="from-orange-600"]:not(button):not(a):not(input):not(select),
body [class*="from-blue-600"].text-white:not(button):not(a),
body [class*="from-green-600"].text-white:not(button):not(a),
body [class*="from-purple-600"].text-white:not(button):not(a),
body [class*="from-orange-600"].text-white:not(button):not(a) {
  background: var(--card) !important;
  background-image: none !important;
  border: 1px solid var(--line) !important;
  border-radius: 6px !important;
  box-shadow: var(--card-shadow) !important;
  color: var(--ink) !important;
}
body [class*="from-blue-600"]:not(button):not(a) i,
body [class*="from-green-600"]:not(button):not(a) i,
body [class*="from-purple-600"]:not(button):not(a) i,
body [class*="from-orange-600"]:not(button):not(a) i {
  color: var(--blue) !important;
}

/* ============================================================
   状态徽章（克制浅色底 + 同色文字：蓝 / 灰 / 浅红）
   匹配 .status-badge 与 span 彩色小徽章（px-* + bg-*）
   ============================================================ */
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(
  [class*="bg-blue"], [class*="bg-green"], [class*="bg-teal"],
  [class*="bg-cyan"], [class*="bg-indigo"], .bg-primary, .bg-success) {
  background-color: var(--blue-soft) !important;
  background-image: none !important;
  color: var(--blue) !important;
  border: none !important;
}
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(
  [class*="bg-red"], .bg-danger) {
  background-color: var(--danger-soft) !important;
  background-image: none !important;
  color: var(--danger) !important;
  border: none !important;
}
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(
  [class*="bg-yellow"], [class*="bg-amber"], [class*="bg-orange"],
  [class*="bg-purple"], [class*="bg-pink"],
  [class*="bg-gray"], .bg-secondary, .bg-gold) {
  background-color: var(--badge-gray) !important;
  background-image: none !important;
  color: var(--ink-2) !important;
  border: none !important;
}
/* 徽章内子元素文字随徽章色 */
body :is(.status-badge, span[class*="px-"][class*="bg-"]) :is(i, span, strong, em) {
  color: inherit !important;
}
/* 徽章上的 text-black / text-white 一律跟随徽章色 */
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(.text-white, .text-black) {
  color: inherit;
}

/* 小圆点状态指示（w-3 h-3 rounded-full）：彩点 -> 蓝 / 灰 */
body span.w-3.h-3.rounded-full[class*="bg-green"],
body span.w-3.h-3.rounded-full[class*="bg-blue"] { background-color: var(--blue) !important; }
body span.w-3.h-3.rounded-full[class*="bg-red"] { background-color: var(--danger) !important; }
body span.w-3.h-3.rounded-full[class*="bg-gray"] { background-color: #c2c8cf !important; }

/* 排行榜名次圆徽（w-8 h-8 rounded-full bg-*） -> 蓝/灰 */
body span.w-8.h-8.rounded-full[class*="bg-"]:not([class*="bg-gray"]) {
  background-color: var(--blue) !important;
  color: #ffffff !important;
}

/* 开关（toggle）：选中态绿色 -> 主蓝 */
body .peer:checked ~ .peer-checked\:bg-green-600,
body .peer:checked ~ [class*="peer-checked:bg-green"] {
  background-color: var(--blue) !important;
}

/* 甘特排班条：统一蓝色系（app.js 已改为蓝阶，这里兜底白字） */
body .gantt-bar { color: #ffffff !important; }

/* ---------- 表单控件：白底浅灰边 ---------- */
body input:is(.bg-gray-700, .bg-gray-800, .bg-gray-900),
body select:is(.bg-gray-700, .bg-gray-800, .bg-gray-900),
body textarea:is(.bg-gray-700, .bg-gray-800, .bg-gray-900) {
  background-color: #ffffff !important;
  border-color: var(--line-2) !important;
  color: var(--ink) !important;
}
body input::placeholder, body textarea::placeholder { color: var(--ink-3) !important; }
body input:focus, body select:focus, body textarea:focus {
  border-color: var(--blue) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .18) !important;
}

/* ---------- 表格：白底 / 浅灰线 / 斑马纹 / 表头浅灰 ---------- */
body table { background-color: transparent; }
body thead.bg-gray-700, body .data-table thead, body table thead {
  background-color: #f5f6f7 !important;
}
body thead th { color: var(--ink-2) !important; font-weight: 600; }
body .data-table tbody tr:nth-child(even),
body table tbody tr:nth-child(even) { background-color: var(--zebra); }
body .data-table tr:hover,
body table tbody tr:hover { background-color: #eef3fb !important; }
body .hover\:bg-gray-750:hover { background-color: var(--zebra) !important; }
body td, body th { font-variant-numeric: tabular-nums; }

/* 金额 / 数字等宽 */
.num, .amount, .money, [class*="amount"], [class*="balance"] {
  font-variant-numeric: tabular-nums !important;
}

/* ---------- 弹窗：统一遮罩 + 白卡 ---------- */
body .modal-overlay:not(.login-hero) { background: rgba(18, 41, 77, .5) !important; }
body .bg-opacity-75, body .bg-opacity-50 { --tw-bg-opacity: .55 !important; }
body .fixed.inset-0 > .bg-gray-800 {
  border-radius: 6px !important;
  box-shadow: 0 10px 30px rgba(16, 24, 40, .18) !important;
}

/* ---------- 侧边栏（深藏蓝 #12294d + 实心蓝激活块） ---------- */
.adm-sidebar {
  width: 220px !important;
  background-color: var(--sb-bg) !important;
  border-right: none !important;
}
.adm-sidebar-logo {
  background-color: var(--sb-logo);
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}
.adm-sidebar-logo h1 { color: #ffffff !important; }
.adm-sidebar-logo p { color: var(--sb-group) !important; }
.adm-group {
  color: var(--sb-group) !important;
  font-size: 11px !important;
  letter-spacing: .1em;
  font-weight: 600;
}
.adm-sidebar .sidebar-item {
  color: var(--sb-text) !important;
  border-left: 3px solid transparent !important;
  border-radius: 6px !important;
  background: transparent !important;
}
.adm-sidebar .sidebar-item i { color: var(--sb-text) !important; }
.adm-sidebar .sidebar-item:hover {
  background: rgba(255, 255, 255, .07) !important;
  color: #dbe6f5 !important;
}
.adm-sidebar .sidebar-item:hover i { color: #dbe6f5 !important; }
.adm-sidebar .sidebar-item.active {
  background: var(--sb-active) !important;
  border-left: 3px solid var(--sb-active) !important;
  color: #ffffff !important;
}
.adm-sidebar .sidebar-item.active i { color: #ffffff !important; }
/* 侧栏内徽章颜色保持 */
.adm-sidebar .sidebar-item span[class*="bg-"] { color: #fff !important; }

/* ---------- 顶栏（白底） ---------- */
.adm-topbar {
  background-color: #ffffff !important;
  border-bottom: 1px solid var(--line) !important;
}
.adm-topbar h2, .adm-topbar h1 { color: var(--ink) !important; }
.adm-topbar .text-gray-400 { color: var(--ink-2) !important; }

/* ---------- 主内容区间距（220px 侧栏） ---------- */
.adm-main { margin-left: 220px !important; }

/* ---------- 登录页（白蓝风：深藏蓝底 + 白卡片 + 蓝主按钮） ---------- */
.login-hero {
  background: var(--sb-bg) !important;
}
.login-card {
  background: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  border-radius: 8px !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .35) !important;
}
.login-card h1 { color: var(--ink) !important; }
.login-card label { color: var(--ink-2) !important; }
.login-card .text-gray-400 { color: var(--ink-2) !important; }
.login-card .text-gray-500 { color: var(--ink-3) !important; }
.login-card .bg-primary { background-color: var(--blue) !important; }
.login-card .text-yellow-300 { color: var(--blue) !important; }

/* ---------- 滚动条（浅色） ---------- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #f1f2f3; }
::-webkit-scrollbar-thumb { background: #c9cfd6; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #aab3bd; }

/* ---------- 全局 Toast 提示（白卡 + 蓝点缀） ---------- */
.app-toast {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--card);
  color: var(--ink) !important;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, .15);
  padding: 12px 18px;
  font-size: 14px;
  max-width: 420px;
  animation: toast-slide-in .25s ease-out;
}
.app-toast i { font-size: 16px; }
.app-toast.toast-success i { color: var(--green); }
.app-toast.toast-error i { color: var(--red); }
.app-toast.toast-warning i { color: var(--yellow); }
.app-toast.toast-info i { color: var(--blue); }
.app-toast.toast-out {
  opacity: 0;
  transform: translateX(100%);
  transition: all .3s ease-in-out;
}
@keyframes toast-slide-in {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ---------- 全局确认弹窗（白卡 + 蓝主按钮） ---------- */
.app-confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(18, 41, 77, .5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.app-confirm-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 3px solid var(--blue);
  border-radius: 6px;
  box-shadow: 0 20px 50px rgba(16, 24, 40, .25);
  width: 100%;
  max-width: 400px;
  padding: 24px;
  animation: toast-slide-in .2s ease-out;
}
.app-confirm-card h3 {
  color: var(--ink);
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.app-confirm-card h3 i { color: var(--blue); }
.app-confirm-msg {
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.6;
  white-space: pre-line;
  margin-bottom: 20px;
}
.app-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.app-confirm-actions .btn-cancel {
  background: #ffffff;
  color: #4e5560 !important;
  border: 1px solid var(--line-2);
  border-radius: 5px;
  padding: 8px 18px;
  font-size: 14px;
  cursor: pointer;
}
.app-confirm-actions .btn-cancel:hover { background: #f5f6f7; }
.app-confirm-actions .btn-ok {
  background: var(--blue);
  color: #ffffff !important;
  border: none;
  border-radius: 5px;
  padding: 8px 18px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.app-confirm-actions .btn-ok:hover { background: var(--blue-hover); }

/* ==================================================
   响应式适配（手机版 + 电脑版自适应）
   断点：>=1024px 桌面（原布局）/ 768~1023px 平板（图标栏）/ <768px 手机（抽屉侧栏）
   ================================================== */

/* 汉堡按钮（默认隐藏，仅 <768px 显示） */
.adm-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-right: 8px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  font-size: 18px;
  cursor: pointer;
  flex: 0 0 auto;
}
.adm-hamburger:hover { background: #f3f4f6; }

/* 抽屉遮罩（默认隐藏） */
.adm-drawer-mask {
  position: fixed;
  inset: 0;
  z-index: 55;
  background: rgba(18, 41, 77, .5);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

/* ---------- 平板 768~1023px：侧栏折叠为图标栏 ---------- */
@media (min-width: 768px) and (max-width: 1023px) {
  aside.adm-sidebar { width: 64px !important; overflow-x: hidden; }
  aside.adm-sidebar .adm-sidebar-logo { padding: 14px 10px !important; }
  aside.adm-sidebar .adm-sidebar-logo h1,
  aside.adm-sidebar .adm-sidebar-logo p,
  aside.adm-sidebar .adm-sidebar-logo .ml-3,
  aside.adm-sidebar .adm-group,
  aside.adm-sidebar .sidebar-item span,
  aside.adm-sidebar .sidebar-item .ml-auto { display: none !important; }
  aside.adm-sidebar .sidebar-item {
    justify-content: center;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 3px solid transparent !important;
  }
  aside.adm-sidebar .sidebar-item i { margin: 0 !important; width: auto !important; font-size: 16px; }
  .adm-main { margin-left: 64px !important; }
}

/* ---------- 手机 <768px：抽屉式侧栏 + 精简布局 ---------- */
@media (max-width: 767px) {
  .adm-hamburger { display: flex; }

  /* 侧栏改抽屉 */
  aside.adm-sidebar {
    position: fixed !important;
    left: 0;
    top: 0;
    height: 100vh;
    height: 100dvh;
    width: 240px !important;
    z-index: 60;
    transform: translateX(-100%);
    transition: transform .25s ease;
    overflow-y: auto;
    min-height: 0 !important;
  }
  body.adm-sidebar-open aside.adm-sidebar {
    transform: translateX(0);
    box-shadow: 4px 0 24px rgba(0, 0, 0, .35);
  }
  body.adm-sidebar-open .adm-drawer-mask { opacity: 1; pointer-events: auto; }

  /* 主内容区不再留侧栏间距 */
  .adm-main { margin-left: 0 !important; }
  main.flex-1, #content-container, .adm-main > #content-container { padding: 12px !important; }

  /* 顶栏精简 */
  .adm-topbar { padding: 8px 12px !important; flex-wrap: wrap; row-gap: 6px; }
  .adm-topbar h2, .adm-topbar h1 { font-size: 16px !important; }
  #page-subtitle, #current-time,
  .adm-topbar .text-sm:has(> #current-username),
  .adm-topbar .text-sm:has(> #current-role) { display: none !important; }
  #notify-deposit span.text-xs, #notify-withdraw span.text-xs, #notify-risk span.text-xs { display: none; }

  /* 统计卡片/表单栅格：多列强制单列 */
  .grid.grid-cols-2, .grid.grid-cols-3, .grid.grid-cols-4,
  .grid.grid-cols-5, .grid.grid-cols-6 {
    grid-template-columns: 1fr !important;
  }

  /* 宽表横向滚动：卡片容器可滑动，表格保持最小宽度不挤压 */
  .overflow-hidden:has(> table),
  .rounded-xl:has(> table),
  .rounded-lg:has(> table),
  .bg-gray-800:has(> table),
  .bg-white:has(> table) { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  table.data-table, #main-content table, #content-container table, .adm-main table {
    min-width: 640px;
  }
  table th, table td { white-space: nowrap; }

  /* 弹窗全宽 */
  .fixed.inset-0 > div, .modal-overlay > div {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
  .app-confirm-card { max-width: calc(100vw - 24px); }
  .app-toast { max-width: calc(100vw - 32px); right: 12px; top: 12px; }

  /* 字号/间距缩小 */
  body { font-size: 14px; }
  h1 { font-size: 20px !important; }
  h2 { font-size: 17px !important; }
  h3 { font-size: 15px !important; }
  .p-6 { padding: 14px !important; }
  .mb-6 { margin-bottom: 14px !important; }
  .gap-6 { gap: 14px !important; }

  /* 触控目标 >= 44px */
  button, .sidebar-item, select, input[type="submit"] {
    min-height: 44px;
  }
  .adm-topbar button.p-2 { min-width: 44px; }

  /* 登录页卡片自适应 */
  .login-card {
    margin: 0 12px;
    padding: 24px !important;
    max-width: calc(100vw - 24px) !important;
  }
  .login-hero, #login-modal { padding: 12px; }
}

/* ---------- 手机端溢出修正（补充） ---------- */
@media (max-width: 767px) {
  /* 内容区任何子元素不得撑破视口 */
  #main-content, #content-container { overflow-x: hidden; max-width: 100vw; }
  #main-content > *, #content-container > * { max-width: 100%; }
  /* 弹性行允许换行，避免按钮组/筛选项撑宽 */
  #main-content .flex, #content-container .flex { flex-wrap: wrap; }
  .grid > * { min-width: 0; }
  /* 表格卡片自身可横滑，不参与页面级溢出 */
  #main-content div:has(> table), #content-container div:has(> table) {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
}

/* flex item 默认 min-width:auto 导致内容撑破 —— 手机端允许收缩 */
@media (max-width: 767px) {
  main.flex-1, .adm-main, #main-page > .flex, #main-app { min-width: 0 !important; }
  #main-page > .flex, #main-app { max-width: 100vw; overflow-x: hidden; }
}

/* 手机端顶栏：隐藏管理员名称/角色文字，避免竖向换行 */
@media (max-width: 767px) {
  .adm-topbar .ml-2.text-right { display: none !important; }
}

/* 平板端顶栏同样隐藏管理员名称/角色文字，避免换行重叠 */
@media (min-width: 768px) and (max-width: 1023px) {
  .adm-topbar .ml-2.text-right { display: none !important; }
}

/* ============================================================
   Phase19 残留彩色修正（白蓝主题收口）
   ============================================================ */
/* 仪表盘统计卡：图标方块统一浅蓝底蓝图标，多彩数值转中性 */
body .card-stat .w-12.h-12[class*="bg-"] { background-color: var(--blue-soft) !important; }
body .card-stat .w-12.h-12 i { color: var(--blue) !important; }
body .card-stat .text-cyan-400, body .card-stat .text-purple-400,
body .card-stat .text-blue-400 { color: var(--ink) !important; }
body .card-stat .text-yellow-400 { color: var(--ink-2) !important; }

/* 自定义语义色徽章兜底（tailwind.config 的 warning/success） */
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(.bg-warning, .bg-secondary, .bg-gold) {
  background-color: var(--badge-gray) !important;
  color: var(--ink-2) !important;
}
body :is(.status-badge, span[class*="px-"][class*="bg-"]):is(.bg-success) {
  background-color: var(--blue-soft) !important;
  color: var(--blue) !important;
}

/* 卡片内浅灰行/快捷操作块中的彩色图标 -> 主蓝 */
body .bg-gray-700.rounded-lg i[class*="text-"],
body button.bg-gray-700 i[class*="text-"] { color: var(--blue) !important; }

/* 区块标题彩色图标 -> 主蓝 */
body h3 i:is(.text-warning, .text-danger, .text-yellow-400, .text-green-400, .text-purple-400, .text-cyan-400),
body h4 i:is(.text-warning, .text-danger) { color: var(--blue) !important; }

/* 顶栏通知按钮（存款/取款/预警）：中性化，计数徽章走浅红体系 */
body .adm-topbar :is(#notify-deposit, #notify-withdraw, #notify-risk) {
  background: transparent !important;
  color: var(--ink-2) !important;
}
body .adm-topbar :is(#notify-deposit, #notify-withdraw, #notify-risk):hover { background: #f5f6f7 !important; }
body .adm-topbar :is(#notify-deposit, #notify-withdraw, #notify-risk) i { color: var(--blue) !important; }
body .adm-topbar :is(#notify-deposit, #notify-withdraw, #notify-risk) span[class*="bg-"] {
  background-color: var(--blue-soft) !important;
  color: var(--blue) !important;
}
body .adm-topbar #notify-risk span[class*="bg-"] {
  background-color: var(--danger-soft) !important;
  color: var(--danger) !important;
}

/* 表格/内容区残余青色、紫色文字链接类 -> 主蓝 */
body .text-cyan-400, body .text-purple-400 { color: var(--blue) !important; }

/* 卡片内彩色图标方块（在线玩家等统计块） -> 浅蓝底蓝图标 */
body .bg-gray-800 .w-12.h-12[class*="bg-"]:not([class*="bg-gray"]):not(.status-badge) {
  background-color: var(--blue-soft) !important;
}
body .bg-gray-800 .w-12.h-12[class*="bg-"]:not([class*="bg-gray"]):not(.status-badge) i {
  color: var(--blue) !important;
}
/* 在线/离线统计块数值转中性 */
body [onclick*="filterPlayersByOnline"] .text-green-400 { color: var(--ink) !important; }


/* ============================================================
   Phase20 按钮/徽章/标题栏「配色净化层」
   原则：主操作=蓝，次操作=白底灰边，语义仅红/琥珀/绿。
   注意：选择器严格限定 button / a / span（徽章），
   绝不使用裸 [class*="bg-"]，避免误伤卡片 div。
   ============================================================ */

/* ---------- 1) 花哨色按钮 -> 主蓝（紫/靛/紫罗兰/品红/粉/青/蓝绿/橙/黄） ---------- */
body button:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"],
  [class*="bg-teal"], [class*="bg-orange"], [class*="bg-yellow"]),
body a:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"],
  [class*="bg-teal"], [class*="bg-orange"], [class*="bg-yellow"]) {
  background-color: var(--blue) !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: var(--blue) !important;
}
body button:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"],
  [class*="bg-teal"], [class*="bg-orange"], [class*="bg-yellow"]):hover,
body a:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"],
  [class*="bg-teal"], [class*="bg-orange"], [class*="bg-yellow"]):hover {
  background-color: var(--blue-hover) !important;
  color: #ffffff !important;
}
/* 按钮内图标/文字同步白 */
body button:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"],
  [class*="bg-teal"], [class*="bg-orange"], [class*="bg-yellow"]) :is(i, span) {
  color: #ffffff !important;
}

/* ---------- 2) 黑底/深灰实底按钮 -> 中性次按钮（白底灰边深灰字） ---------- */
body button:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]),
body a:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]) {
  background-color: #ffffff !important;
  background-image: none !important;
  color: #374151 !important;
  border: 1px solid var(--line-2) !important;
}
body button:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]):hover,
body a:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]):hover {
  background-color: #f3f4f6 !important;
  color: #1f2937 !important;
}
body button:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]) :is(i, span),
body a:is([class*="bg-black"], [class*="bg-gray-900"], [class*="bg-gray-800"]) :is(i, span) {
  color: #374151 !important;
}
/* 例外：模态遮罩等容器上的 bg-black（bg-opacity）非按钮，不受上条影响（仅 button/a 命中） */

/* ---------- 3) 徽章/状态标签（span）花哨实底 -> 浅色底+语义深字 ---------- */
/* 紫/靛/青/蓝绿/粉 -> 浅蓝底蓝字（信息类） */
body span:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"], [class*="bg-teal"]) {
  background-color: var(--blue-soft) !important;
  background-image: none !important;
  color: var(--blue-hover) !important;
}
/* 橙/黄徽章 -> 浅琥珀底深琥珀字（警告/待审语义保留色系但净化实底） */
body span:is([class*="bg-orange"], [class*="bg-yellow"], [class*="bg-amber"]) {
  background-color: #fef3c7 !important;
  background-image: none !important;
  color: #92400e !important;
}
/* 深色底浅字徽章（bg-yellow-900/bg-purple-900 等暗夜遗留）同样净化 */
body span:is([class*="bg-yellow-900"], [class*="bg-orange-900"], [class*="bg-amber-900"]) {
  background-color: #fef3c7 !important;
  color: #92400e !important;
}
body span:is([class*="bg-purple-900"], [class*="bg-indigo-900"], [class*="bg-cyan-900"]) {
  background-color: var(--blue-soft) !important;
  color: var(--blue-hover) !important;
}
/* 徽章内文字颜色强制同步（覆盖 text-yellow-300/text-purple-200 等） */
body span:is([class*="bg-purple"], [class*="bg-indigo"], [class*="bg-violet"],
  [class*="bg-fuchsia"], [class*="bg-pink"], [class*="bg-cyan"], [class*="bg-teal"]) * {
  color: var(--blue-hover) !important;
}
body span:is([class*="bg-orange"], [class*="bg-yellow"], [class*="bg-amber"]) * {
  color: #92400e !important;
}

/* ---------- 4) 花哨渐变标题栏/横幅 -> 主蓝渐变（白字对比安全） ---------- */
/* 黄->橙渐变横幅/弹窗标题栏（app.js 961 / 15733） */
body [class*="from-yellow-600"][class*="to-orange-600"] {
  background-image: linear-gradient(to right, var(--blue), var(--blue-hover)) !important;
}
body [class*="from-yellow-600"][class*="to-orange-600"] :is(h1,h2,h3,h4,span,i,div) {
  color: #ffffff !important;
}
/* 仪表盘紫/橙渐变统计卡 -> 主蓝渐变 */
body div[class*="from-purple-600"], body div[class*="from-orange-600"] {
  background-image: linear-gradient(to bottom right, var(--blue), var(--blue-hover)) !important;
}
body div[class*="from-purple-900/30"], body div[class*="from-purple-900"] {
  background-image: none !important;
  background-color: var(--blue-soft) !important;
  border-color: var(--line) !important;
}

/* ---------- 5) 保留区（不做覆盖，仅注释说明） ----------
   bg-blue-* / bg-red-* / bg-green-* 按钮（白字）保持原样；
   冻结=红、解冻=绿 语义按钮保持原样；
   白底 outline 次按钮保持原样。
   ------------------------------------------------------- */

/* ============================================================
   玩家详情弹窗 · 版本A（标签页式 用户360°）
   白 + 主蓝 #2563eb；语义色仅 红/琥珀/绿；1px 浅边框卡片
   ============================================================ */
.pdm-overlay {
  position: fixed; inset: 0; background: rgba(15, 23, 42, .45);
  display: flex; align-items: center; justify-content: center; z-index: 50; padding: 16px;
}
.pdm-modal {
  width: 100%; max-width: 1150px; max-height: 92vh; background: #fff; border-radius: 12px;
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 20px 50px rgba(15, 23, 42, .25); color: #1f2937; font-size: 13px;
}
/* ---- 常驻摘要条 ---- */
.pdm-summary {
  display: flex; align-items: center; gap: 16px; padding: 16px 24px;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
  border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.pdm-avatar {
  width: 52px; height: 52px; border-radius: 50%; background: var(--blue); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 600; flex-shrink: 0;
}
.pdm-sum-id { min-width: 0; }
.pdm-sum-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pdm-sum-name .acc { font-size: 16px; font-weight: 700; color: #1e3a8a; }
.pdm-sum-name .nick { font-size: 12px; color: #64748b; }
.pdm-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 1;
  padding: 4px 8px; border-radius: 999px; font-weight: 500;
}
.pdm-badge-vip { background: #eff6ff; color: var(--blue); border: 1px solid #bfdbfe; }
.pdm-badge-red { background: #fef2f2; color: var(--red); border: 1px solid #fecaca; }
.pdm-badge-amber { background: #fffbeb; color: var(--yellow); border: 1px solid #fde68a; }
.pdm-badge-green { background: #f0fdf4; color: var(--green); border: 1px solid #bbf7d0; }
.pdm-badge-gray { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.pdm-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.pdm-dot-green { background: var(--green); }
.pdm-dot-red { background: var(--red); }
.pdm-sum-sub { margin-top: 5px; font-size: 12px; color: #64748b; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pdm-sum-balance { margin-left: auto; text-align: right; flex-shrink: 0; }
.pdm-sum-balance .lbl { font-size: 12px; color: #64748b; }
.pdm-sum-balance .val { font-size: 28px; font-weight: 700; color: #1e3a8a; line-height: 1.15; }
.pdm-close-x {
  width: 32px; height: 32px; border-radius: 8px; border: 1px solid #e5e7eb; background: #fff; color: #64748b;
  display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 16px; flex-shrink: 0;
}
.pdm-close-x:hover { background: #f8fafc; color: #1f2937; }
/* ---- 快捷操作条 ---- */
.pdm-quick {
  display: flex; align-items: center; gap: 8px; padding: 10px 24px;
  border-bottom: 1px solid #e5e7eb; background: #fff; flex-shrink: 0; flex-wrap: wrap;
}
.pdm-quick .q-label { font-size: 12px; color: #94a3b8; margin-right: 4px; }
.pdm-btn {
  display: inline-flex; align-items: center; gap: 6px; border-radius: 6px; cursor: pointer;
  font-weight: 500; border: 1px solid transparent; font-size: 13px; padding: 6px 12px; background: #fff;
}
.pdm-btn i { font-size: 12px; }
.pdm-btn-primary { background: var(--blue); color: #fff; }
.pdm-btn-primary:hover { background: var(--blue-hover); }
.pdm-btn-neutral { background: #fff; color: #374151; border-color: #d1d5db; }
.pdm-btn-neutral:hover { background: #f8fafc; border-color: #9ca3af; }
.pdm-btn-danger { background: #fff; color: var(--red); border-color: #fecaca; }
.pdm-btn-danger:hover { background: #fef2f2; }
/* ---- 标签页 ---- */
.pdm-tabs {
  display: flex; gap: 4px; padding: 0 24px; border-bottom: 1px solid #e5e7eb;
  background: #fff; flex-shrink: 0; overflow-x: auto; white-space: nowrap;
}
.pdm-tab { padding: 12px 20px; font-size: 14px; color: #64748b; cursor: pointer; position: relative; font-weight: 500; }
.pdm-tab.active { color: var(--blue); font-weight: 600; }
.pdm-tab.active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--blue); border-radius: 2px; }
/* ---- 内容区 ---- */
.pdm-body { padding: 20px 24px; overflow-y: auto; background: #f8fafc; flex: 1; }
.pdm-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pdm-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; }
.pdm-card-hd {
  display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid #f1f5f9;
  font-size: 14px; font-weight: 600; color: #1e3a8a;
}
.pdm-card-hd i { color: var(--blue); font-size: 14px; }
.pdm-card-hd .extra { margin-left: auto; font-size: 12px; font-weight: 400; color: #94a3b8; }
.pdm-info-grid { padding: 8px 16px 14px; }
.pdm-info-row { display: flex; align-items: center; padding: 8px 0; border-bottom: 1px dashed #f1f5f9; font-size: 13px; }
.pdm-info-row:last-child { border-bottom: none; }
.pdm-info-row .k { width: 88px; color: #94a3b8; flex-shrink: 0; }
.pdm-info-row .v { color: #1f2937; font-weight: 500; display: flex; align-items: center; gap: 6px; min-width: 0; }
.pdm-v-green { color: var(--green) !important; }
.pdm-v-red { color: var(--red) !important; }
.pdm-v-amber { color: var(--yellow) !important; }
.pdm-vip-src { margin: 0 16px 12px; background: #f8fafc; border: 1px solid #f1f5f9; border-radius: 8px; padding: 8px 12px; font-size: 12px; color: #64748b; }
.pdm-vip-src b { color: #475569; font-weight: 500; }
/* 限红 */
.pdm-limit-main { margin: 14px 16px 0; border: 1px solid #bfdbfe; background: #eff6ff; border-radius: 8px; padding: 14px 16px; }
.pdm-limit-main .top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.pdm-limit-main .coin { font-size: 14px; font-weight: 700; color: #1e3a8a; }
.pdm-limit-main .range { font-size: 20px; font-weight: 700; color: var(--blue); }
.pdm-limit-main .range.blocked { color: var(--red); font-size: 15px; }
.pdm-limit-main .src { font-size: 12px; color: #64748b; margin-top: 6px; }
.pdm-limit-main .src b { color: #475569; font-weight: 500; }
.pdm-limit-fold {
  margin: 10px 16px 14px; border: 1px solid #e5e7eb; border-radius: 8px; padding: 11px 14px;
  display: flex; align-items: center; gap: 8px; font-size: 13px; color: #475569; background: #fff; cursor: pointer;
}
.pdm-limit-fold i { color: #94a3b8; font-size: 12px; }
.pdm-limit-fold .link { margin-left: auto; color: var(--blue); font-size: 12px; flex-shrink: 0; }
.pdm-limit-list { margin: 0 16px 14px; border: 1px solid #e5e7eb; border-radius: 8px; overflow-x: auto; }
.pdm-limit-list table { width: 100%; border-collapse: collapse; font-size: 12px; }
.pdm-limit-list th { text-align: left; color: #94a3b8; font-weight: 500; padding: 8px 12px; border-bottom: 1px solid #f1f5f9; background: #f8fafc; }
.pdm-limit-list td { padding: 8px 12px; border-bottom: 1px solid #f8fafc; color: #374151; }
.pdm-limit-list tr:last-child td { border-bottom: none; }
.pdm-note { padding: 0 16px 14px; font-size: 12px; color: #94a3b8; }
/* 数据统计卡 */
.pdm-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }
.pdm-stat-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 16px; }
.pdm-stat-card .k { font-size: 12px; color: #64748b; display: flex; align-items: center; gap: 6px; }
.pdm-stat-card .k i { color: #94a3b8; font-size: 12px; }
.pdm-stat-card .v { font-size: 20px; font-weight: 700; color: #1f2937; margin-top: 8px; }
.pdm-stat-card .v.blue { color: var(--blue); }
.pdm-stat-card .v.red { color: var(--red); }
.pdm-stat-card .v.green { color: var(--green); }
/* 表格 */
.pdm-table-wrap { overflow-x: auto; }
.pdm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pdm-table th { text-align: left; color: #94a3b8; font-weight: 500; padding: 10px 16px; border-bottom: 1px solid #f1f5f9; background: #f8fafc; font-size: 12px; }
.pdm-table td { padding: 11px 16px; border-bottom: 1px solid #f8fafc; color: #374151; }
.pdm-table tr:last-child td { border-bottom: none; }
.pdm-num-pos { color: var(--green); font-weight: 600; }
.pdm-num-neg { color: var(--red); font-weight: 600; }
/* 操作网格 */
.pdm-ops-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pdm-op-btn {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 18px 16px;
  display: flex; align-items: center; gap: 12px; cursor: pointer; text-align: left;
}
.pdm-op-btn:hover { border-color: #bfdbfe; background: #f8fafc; }
.pdm-op-btn.danger:hover { border-color: #fecaca; background: #fef2f2; }
.pdm-op-ic {
  width: 38px; height: 38px; border-radius: 8px; background: #eff6ff; color: var(--blue);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 15px;
}
.pdm-op-btn.danger .pdm-op-ic { background: #fef2f2; color: var(--red); }
.pdm-op-btn.gray .pdm-op-ic { background: #f1f5f9; color: #64748b; }
.pdm-op-txt .t { font-size: 14px; font-weight: 600; color: #1f2937; }
.pdm-op-btn.danger .pdm-op-txt .t { color: var(--red); }
.pdm-op-txt .d { font-size: 12px; color: #94a3b8; margin-top: 3px; }
/* 手机端响应式 */
@media (max-width: 768px) {
  .pdm-overlay { padding: 8px; }
  .pdm-modal { max-height: 96vh; }
  .pdm-summary { padding: 12px 14px; gap: 10px; flex-wrap: wrap; }
  .pdm-avatar { width: 42px; height: 42px; font-size: 16px; }
  .pdm-sum-balance { width: 100%; text-align: left; margin-left: 0; }
  .pdm-sum-balance .val { font-size: 22px; }
  .pdm-quick { padding: 8px 14px; }
  .pdm-tabs { padding: 0 8px; }
  .pdm-tab { padding: 10px 14px; }
  .pdm-body { padding: 14px; }
  .pdm-cols { grid-template-columns: 1fr; }
  .pdm-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .pdm-ops-grid { grid-template-columns: 1fr; }
  /* 快捷操作条：按钮等宽换行，踢线不再因 margin-left:auto 孤立到最右 */
  .pdm-quick .q-label { width: 100%; }
  .pdm-quick .pdm-btn { flex: 1 1 calc(33.333% - 8px); justify-content: center; }
  .pdm-quick .pdm-btn-danger { margin-left: 0 !important; }
}

/* ============================================================
   手机端同步审计补充修复（mobile-audit）
   ============================================================ */
@media (max-width: 767px) {
  /* 开局记录：美术牌组禁止换行（全局 .flex{flex-wrap:wrap} 会把3张牌挤成竖排、行高撑到240px） */
  #rounds-tbody td .flex { flex-wrap: nowrap !important; }
  #rounds-tbody td > .flex { min-width: 200px; }
  /* 当局作废等行内弹窗按钮组允许换行 */
  .fixed.inset-0 .flex:has(> button) { flex-wrap: wrap; }

  /* 代理端 账户设置 选项卡：5+个页签挤压导致文字逐字竖排 → 横向滚动条 */
  div:has(> .account-tab-btn) { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .account-tab-btn {
    flex: 0 0 auto !important;
    white-space: nowrap;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* audit9-Y11：移动端（<768px）可横滚表格容器加「可左右滑动」视觉提示。
   ::after 位于滚动内容末尾，position:sticky;right:0 使其在未滚到底时吸附在右缘，
   滚到最右后回到自然位置（自然消失感），不遮挡数据列。 */
@media (max-width: 767px) {
  .overflow-x-auto:has(table)::after {
    content: '◀ 可左右滑动';
    display: table;
    margin-left: auto;
    padding: 2px 10px;
    font-size: 11px;
    line-height: 1.6;
    color: #cbd5e1;
    background: rgba(15, 23, 42, 0.75);
    border-radius: 9999px 0 0 9999px;
    position: sticky;
    right: 0;
    pointer-events: none;
    white-space: nowrap;
  }
}

/* ============================================================
   UI polish round2（fix/ui-polish-round2）
   E1 提示条规范：浅底 + 深字（WCAG AA），修掉暗夜遗留
      bg-{color}-900 + text-{color}-300/400 的浅字浅底组合
   E2 表格内徽章统一：12px + nowrap + 收紧 padding，修类型/状态列竖排错位
   E3 td 内关键文本防竖排折行
   ============================================================ */

/* ---------- E1 提示条（notice/banner）：浅底深字 ---------- */
/* 蓝提示条 */
body :is(div, p, section)[class*="bg-blue-900"] {
  background-color: #eff6ff !important;
  background-image: none !important;
  border-color: #bfdbfe !important;
  color: #1e40af !important;
}
body :is(div, p, section)[class*="bg-blue-900"] :not(input):not(select):not(textarea):not(button):not(code) {
  color: #1e40af !important;
}
body :is(div, p, section)[class*="bg-blue-900"] code {
  background-color: #dbeafe !important;
  color: #1e40af !important;
}
/* 黄/琥珀提示条 */
body :is(div, p, section):is([class*="bg-yellow-900"], [class*="bg-amber-900"], [class*="bg-orange-900"]) {
  background-color: #fffbeb !important;
  background-image: none !important;
  border-color: #fde68a !important;
  color: #92400e !important;
}
body :is(div, p, section):is([class*="bg-yellow-900"], [class*="bg-amber-900"], [class*="bg-orange-900"]) :not(input):not(select):not(textarea):not(button):not(code) {
  color: #92400e !important;
}
/* 绿提示条 */
body :is(div, p, section)[class*="bg-green-900"] {
  background-color: #f0fdf4 !important;
  background-image: none !important;
  border-color: #bbf7d0 !important;
  color: #166534 !important;
}
body :is(div, p, section)[class*="bg-green-900"] :not(input):not(select):not(textarea):not(button):not(code) {
  color: #166534 !important;
}
/* 红提示条 */
body :is(div, p, section)[class*="bg-red-900"] {
  background-color: #fef2f2 !important;
  background-image: none !important;
  border-color: #fecaca !important;
  color: #b91c1c !important;
}
body :is(div, p, section)[class*="bg-red-900"] :not(input):not(select):not(textarea):not(button):not(code) {
  color: #b91c1c !important;
}
/* 紫提示条 -> 蓝系 */
body :is(div, p, section)[class*="bg-purple-900"] {
  background-color: var(--blue-soft) !important;
  background-image: none !important;
  border-color: #bfdbfe !important;
  color: var(--blue-hover) !important;
}
body :is(div, p, section)[class*="bg-purple-900"] :not(input):not(select):not(textarea):not(button):not(code) {
  color: var(--blue-hover) !important;
}
/* 提示条内控件保持白底深字（输入框/单选组文字） */
body :is(div, p, section):is([class*="bg-blue-900"], [class*="bg-yellow-900"], [class*="bg-green-900"], [class*="bg-red-900"], [class*="bg-purple-900"]) :is(input, select, textarea) {
  color: var(--ink) !important;
}
/* 浅色底提示条（bg-blue-50/bg-yellow-50 等）深色文字校验保底 */
body :is(div, p, section):is(.bg-blue-50, .bg-yellow-50, .bg-green-50, .bg-red-50) :is(.text-white, .text-blue-100, .text-blue-200, .text-blue-300, .text-yellow-100, .text-yellow-200, .text-yellow-300, .text-green-100, .text-green-200, .text-green-300, .text-red-100, .text-red-200, .text-red-300) {
  color: #1f2937 !important;
}

/* ---------- E1b 表单内说明文字：text-xs 浅灰加深 ---------- */
body .text-xs.text-gray-400,
body .text-xs.text-gray-500,
body p.text-xs { color: var(--ink-2) !important; }

/* ---------- E2 表格内徽章统一（类型/状态列防竖排错位） ---------- */
body td :is(.status-badge, .badge, span[class*="px-"][class*="bg-"][class*="rounded"]) {
  font-size: 12px !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  padding-top: 3px !important;
  padding-bottom: 3px !important;
  padding-left: 8px !important;
  padding-right: 8px !important;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
/* th/td 中「类型/状态」列随徽章 nowrap 不挤压 */
body td:has(> .status-badge),
body td:has(> span[class*="px-"][class*="bg-"][class*="rounded"]) {
  white-space: nowrap;
}

/* ---------- E3 td 内关键文本防竖排折行 ---------- */
body td.font-mono, body td .font-mono { white-space: nowrap; }
