/* ==========================================================================
   TIEDI v1 · themes.css
   职责:4 主色主题变体 (body.theme-gov | theme-ent | theme-sci | theme-magenta)
   规则:只用 body.theme-* 选择器覆写 --c-primary 派生
   ========================================================================== */

/* ===== 默认主题(政府 · cyan) ===== */
body { --c-primary: var(--c-cyan); --c-primary-soft: var(--c-cyan-soft); --c-primary-rgb: var(--c-cyan-rgb); }

/* ===== 政府端(cyan) ===== */
body.theme-gov { --c-primary: var(--c-cyan); --c-primary-soft: var(--c-cyan-soft); --c-primary-rgb: var(--c-cyan-rgb); }

/* ===== 企业端(amber) ===== */
body.theme-ent { --c-primary: var(--c-amber); --c-primary-soft: var(--c-amber-soft); --c-primary-rgb: var(--c-amber-rgb); }

/* ===== 科研端(violet) ===== */
body.theme-sci { --c-primary: var(--c-violet); --c-primary-soft: var(--c-violet-soft); --c-primary-rgb: var(--c-violet-rgb); }

/* ===== 招商主题(magenta · 通用) ===== */
body.theme-magenta { --c-primary: var(--c-magenta); --c-primary-soft: var(--c-magenta-soft); --c-primary-rgb: var(--c-magenta-rgb); }

/* ==========================================================================
   主题色在通用组件的派生(仅覆写,不重复样式)
   ========================================================================== */

/* Modal 4 角切角 */
body.theme-gov .modal-corner { border-color: var(--c-cyan); filter: drop-shadow(0 0 6px var(--c-cyan)); }
body.theme-ent .modal-corner { border-color: var(--c-amber); filter: drop-shadow(0 0 6px var(--c-amber)); }
body.theme-sci .modal-corner { border-color: var(--c-violet); filter: drop-shadow(0 0 6px var(--c-violet)); }
body.theme-magenta .modal-corner { border-color: var(--c-magenta); filter: drop-shadow(0 0 6px var(--c-magenta)); }

/* Modal kicker */
body.theme-gov .modal-kicker { color: var(--c-cyan); }
body.theme-ent .modal-kicker { color: var(--c-amber); }
body.theme-sci .modal-kicker { color: var(--c-violet); }
body.theme-magenta .modal-kicker { color: var(--c-magenta); }

/* Toast 左边框 */
body.theme-gov .toast { border-left-color: var(--c-cyan); }
body.theme-ent .toast { border-left-color: var(--c-amber); }
body.theme-sci .toast { border-left-color: var(--c-violet); }
body.theme-magenta .toast { border-left-color: var(--c-magenta); }

/* AI FAB (科幻绿主题,跨角色统一) */
.ai-fab { background: transparent; box-shadow: 0 0 28px rgba(var(--c-ai-rgb), 0.5), 0 0 0 1px rgba(var(--c-ai-rgb), 0.4) inset; }

/* Checkbox 选中色 */
body.theme-gov .checkbox input:checked { background: var(--c-cyan); border-color: var(--c-cyan); }
body.theme-ent .checkbox input:checked { background: var(--c-amber); border-color: var(--c-amber); }
body.theme-sci .checkbox input:checked { background: var(--c-violet); border-color: var(--c-violet); }

/* ==========================================================================
   ★ Light theme 适配(被 [data-theme="light"] 激活)
   浅底上需要调整的元素(避免光晕/暗色硬伤)
   ========================================================================== */

/* AI FAB 浅底:深绿实心渐变 + 顶部高光 + conic 科技转盘 */
[data-theme="light"] .ai-fab {
  background:
    linear-gradient(135deg, #00a366 0%, #008a55 35%, #006d44 70%, #005a38 100%),
    conic-gradient(from 180deg at 30% 30%, transparent 0deg, rgba(255, 255, 255, 0.3) 60deg, transparent 120deg);
  box-shadow:
    0 8px 24px rgba(0, 90, 56, 0.5),
    0 0 56px rgba(0, 138, 85, 0.4),
    0 0 0 2px rgba(255, 255, 255, 0.5) inset,
    0 3px 0 rgba(255, 255, 255, 0.4) inset,
    0 -2px 4px rgba(0, 60, 40, 0.3) inset;
}
[data-theme="light"] .ai-fab:hover {
  background:
    linear-gradient(135deg, #00c080 0%, #00a366 35%, #008a55 70%, #006d44 100%),
    conic-gradient(from 180deg at 30% 30%, transparent 0deg, rgba(255, 255, 255, 0.4) 60deg, transparent 120deg);
  box-shadow:
    0 12px 36px rgba(0, 110, 70, 0.7),
    0 0 72px rgba(0, 138, 85, 0.6),
    0 0 0 2px rgba(255, 255, 255, 0.6) inset;
}

/* 浅底上 input 背景反色 */
[data-theme="light"] .field-input-wrap { background: rgba(255, 255, 255, 0.6); }

/* 浅底上 card 阴影更柔和 */
[data-theme="light"] .card { box-shadow: var(--shadow-card); }

/* 浅底上 chip / tag 背景加亮 */
[data-theme="light"] .tag { background: rgba(10, 15, 28, 0.04); }
[data-theme="light"] .chip { background: rgba(10, 15, 28, 0.04); }

/* textarea 浅底:白底 + 深边框 */
[data-theme="light"] .field-textarea { background: #ffffff; border-color: rgba(10, 15, 28, 0.15); color: var(--text-0); }
[data-theme="light"] .field-textarea:focus { border-color: var(--c-primary); }
[data-theme="light"] .field-hint { color: var(--text-2); }
[data-theme="light"] .field-counter { color: var(--text-3); }
[data-theme="light"] .field-label-cn { color: var(--text-1); }

/* btn-block 浅底 */
[data-theme="light"] .btn-block { background: var(--c-primary); color: #ffffff; }
[data-theme="light"] .btn-block:hover { box-shadow: 0 4px 16px var(--c-primary-soft); }

/* tab 浅底 */
[data-theme="light"] .tab { color: var(--text-2); border-bottom: 2px solid transparent; }
[data-theme="light"] .tab:hover { color: var(--c-primary); }
[data-theme="light"] .tab.active { color: var(--c-primary); border-bottom-color: var(--c-primary); }
[data-theme="light"] .tab .count { background: rgba(10, 15, 28, 0.08); color: var(--text-2); }

/* progress 浅底 */
[data-theme="light"] .login-progress { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.12); box-shadow: 0 2px 8px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .lp-step { color: var(--text-2); }
[data-theme="light"] .lp-step.is-active { background: var(--c-primary-soft); color: var(--c-primary); }
[data-theme="light"] .lp-step.is-done { color: var(--text-1); }

/* qr-entry / form-foot 浅底 */
[data-theme="light"] .form-foot { border-top-color: rgba(10, 15, 28, 0.12); }
[data-theme="light"] .form-foot a { color: var(--text-2); }
[data-theme="light"] .form-foot a:hover { color: var(--c-primary); }
[data-theme="light"] .qr-entry { color: var(--text-2); }
[data-theme="light"] .qr-entry a { color: var(--c-primary); }

/* btn-primary 文字色浅底强对比 */
[data-theme="light"] .btn-primary { color: #ffffff; }
[data-theme="light"] .btn-amber { color: #ffffff; }
[data-theme="light"] .btn-violet { color: #ffffff; }
[data-theme="light"] .btn-magenta { color: #ffffff; }
[data-theme="light"] .btn-cyan { color: #ffffff; }

/* dropdown 浅底 */
[data-theme="light"] .dropdown { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.12); box-shadow: 0 8px 24px rgba(10, 15, 28, 0.12); }
[data-theme="light"] .dropdown-item { color: var(--text-1); }
[data-theme="light"] .dropdown-item:hover { background: var(--c-primary-soft); color: var(--c-primary); }
[data-theme="light"] .dropdown-item.active { background: var(--c-primary-soft); color: var(--c-primary); }

/* mini-list 浅底 */
[data-theme="light"] .mini-list .mini-row { border-bottom-color: rgba(10, 15, 28, 0.06); }
[data-theme="light"] .mini-row .name { color: var(--text-0); }
[data-theme="light"] .mini-row .meta { color: var(--text-2); }
[data-theme="light"] .mini-row:hover { background: var(--bg-2); }

/* badge-mini 浅底 */
[data-theme="light"] .badge-mini { background: var(--bg-2); }

/* search-box 浅底 placeholder */
[data-theme="light"] .search-box input { color: var(--text-0); }
[data-theme="light"] .search-box input::placeholder { color: var(--text-3); }

/* breadcrumb 当前项 */
[data-theme="light"] .breadcrumb .current { color: var(--text-0); }

/* ctx-bar ctx-pulse 浅底 */
[data-theme="light"] .ctx-pulse { background: var(--status-success); }

/* 用户菜单 · 浅底 */
[data-theme="light"] .user-dropdown { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.12); box-shadow: 0 20px 60px rgba(10, 15, 28, 0.16); }
[data-theme="light"] .ud-header { background: rgba(10, 15, 28, 0.04); border-bottom-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ud-name { color: var(--text-0); }
[data-theme="light"] .ud-role { color: var(--c-primary); }
[data-theme="light"] .ud-dept { color: var(--text-2); }
[data-theme="light"] .ud-body { background: #ffffff; }
[data-theme="light"] .ud-item { background: rgba(10, 15, 28, 0.04); border-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ud-item-k { color: var(--text-3); }
[data-theme="light"] .ud-item-v { color: var(--text-0); }
[data-theme="light"] .ud-actions { background: rgba(10, 15, 28, 0.03); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ud-action { color: var(--text-2); border-color: rgba(10, 15, 28, 0.15); }
[data-theme="light"] .ud-action:hover { color: var(--c-primary); border-color: var(--c-primary); background: var(--c-primary-soft); }
[data-theme="light"] .user-menu.is-open .avatar { box-shadow: 0 0 0 2px var(--c-primary), 0 0 12px rgba(var(--c-primary-rgb), 0.3); }

/* ==========================================================================
   Light 主题 · AI panel / Modal / Side panel 背景从深色 → 白底
   ========================================================================== */
[data-theme="light"] .ai-panel { background: #ffffff !important; border: 1px solid rgba(10, 15, 28, 0.12); box-shadow: 0 8px 32px rgba(10, 15, 28, 0.16); }
[data-theme="light"] .ai-body { background: #ffffff; }
[data-theme="light"] .ai-msg.bot { background: var(--bg-2); color: var(--text-1); border-color: rgba(var(--c-ai-rgb), 0.2); }
[data-theme="light"] .ai-msg.user { background: var(--c-primary-soft); color: var(--c-primary); border-color: rgba(0, 122, 138, 0.2); }
[data-theme="light"] .ai-msg-head { color: var(--c-ai); }
[data-theme="light"] .ai-msg-time { color: var(--text-3); }
[data-theme="light"] .ai-msg-title { color: var(--text-0); }
[data-theme="light"] .ai-msg-body { color: var(--text-1); }
[data-theme="light"] .ai-data-row { background: rgba(10, 15, 28, 0.04); }
[data-theme="light"] .ai-data-row.urgent { background: rgba(214, 51, 108, 0.08); }
[data-theme="light"] .ai-data-row .k { color: var(--text-2); }
[data-theme="light"] .ai-data-row .v { color: var(--text-0); }
[data-theme="light"] .ai-msg-greeting { color: var(--text-2); }
[data-theme="light"] .ai-msg-links { border-top-color: rgba(var(--c-ai-rgb), 0.25); }
[data-theme="light"] .ai-link { background: rgba(var(--c-ai-rgb), 0.06); border-color: rgba(var(--c-ai-rgb), 0.3); color: var(--text-1); }
[data-theme="light"] .ai-link:hover { background: rgba(var(--c-ai-rgb), 0.14); border-color: var(--c-ai); color: var(--c-ai); }
[data-theme="light"] .ai-msg-footer { color: var(--text-3); }
[data-theme="light"] .ai-risk-row { background: rgba(10, 15, 28, 0.04); }
[data-theme="light"] .ai-risk-row .t { color: var(--text-1); }
[data-theme="light"] .quick-questions { border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .quick-q-label { color: var(--text-3); }
[data-theme="light"] .quick-q { background: rgba(var(--c-ai-rgb), 0.06); border-color: rgba(var(--c-ai-rgb), 0.25); }
[data-theme="light"] .quick-q:hover { background: rgba(var(--c-ai-rgb), 0.12); }
[data-theme="light"] .ai-input { background: var(--bg-2); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-input input { color: var(--text-0); }
[data-theme="light"] .ai-input input::placeholder { color: var(--text-3); }
[data-theme="light"] .ai-input .ai-send { color: var(--bg-0); }
[data-theme="light"] .ai-mode-toggle { background: rgba(10, 15, 28, 0.04); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-mode-btn { color: var(--text-3); }
[data-theme="light"] .ai-mode-btn.is-active { background: rgba(var(--c-ai-rgb), 0.12); border-color: rgba(var(--c-ai-rgb), 0.4); color: var(--c-ai); }
[data-theme="light"] .ai-voice-mode { background: rgba(10, 15, 28, 0.04); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-waveform { background: rgba(10, 15, 28, 0.04); border-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-transcript { color: var(--text-2); }
[data-theme="light"] .ai-footer { background: rgba(10, 15, 28, 0.03); border-top-color: rgba(10, 15, 28, 0.08); color: var(--text-3); }

/* Modal card / dialog 浅底白底 */
[data-theme="light"] .modal-card { background: #ffffff !important; box-shadow: 0 30px 80px rgba(10, 15, 28, 0.18); border: 1px solid rgba(10, 15, 28, 0.12); }
[data-theme="light"] .modal-dialog { background: #ffffff !important; box-shadow: 0 30px 80px rgba(10, 15, 28, 0.18); border: 1px solid rgba(10, 15, 28, 0.12); }
[data-theme="light"] .modal-mask { background: rgba(10, 15, 28, 0.5); }  /* 遮罩保留半透深色(任何主题下都让弹窗突出) */
[data-theme="light"] .modal-corner { border-color: var(--c-primary); }
[data-theme="light"] .modal-title { color: var(--text-0); }
[data-theme="light"] .modal-sub { color: var(--text-2); }
[data-theme="light"] .modal-foot { border-top-color: rgba(10, 15, 28, 0.12); }
[data-theme="light"] .modal .field-input-wrap { background: #ffffff; }

/* Side panel 浅底 */
[data-theme="light"] .side-panel { background: #ffffff !important; border-left: 1px solid rgba(10, 15, 28, 0.12); box-shadow: -4px 0 16px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .side-panel .side-section { border-bottom-color: rgba(10, 15, 28, 0.08); }

/* ==========================================================================
   Light 主题 · Badge 文字颜色 (白字看不清 → 改用浅主色底 + 深主色字)
   ========================================================================== */
[data-theme="light"] .main-nav-item .badge { background: var(--c-magenta-soft); color: var(--c-magenta); border: 1px solid var(--c-magenta); box-shadow: none; font-weight: 700; }
[data-theme="light"] .icon-btn .badge { background: var(--c-magenta); color: #ffffff; box-shadow: 0 0 6px rgba(196, 24, 102, 0.4); }  /* 通知红点保留(警示色) */
[data-theme="light"] .badge-mini { background: var(--bg-2); color: var(--c-primary); border: 1px solid var(--c-primary); }
[data-theme="light"] .role-badge { background: var(--c-primary-soft); color: var(--c-primary); border: 1px solid var(--c-primary); }
[data-theme="light"] .role-badge-slot .role-badge { color: var(--c-primary); }

/* ==========================================================================
   Light 主题 · index.html 入口页的深色 card 适配
   ========================================================================== */
[data-theme="light"] .demo-strip { background: #ffffff !important; border: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 2px 6px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .role-card { background: #ffffff !important; border: 1px solid rgba(10, 15, 28, 0.08); border-top: 2px solid currentColor; box-shadow: 0 4px 16px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .role-card::before { opacity: 0.02; }
[data-theme="light"] .role-card.cyan { background: #ffffff !important; border-color: rgba(10, 15, 28, 0.08); border-top-color: var(--c-cyan); }
[data-theme="light"] .role-card.amber { background: #ffffff !important; border-color: rgba(10, 15, 28, 0.08); border-top-color: var(--c-amber); }
[data-theme="light"] .role-card.violet { background: #ffffff !important; border-color: rgba(10, 15, 28, 0.08); border-top-color: var(--c-violet); }
[data-theme="light"] .role-card:hover { box-shadow: 0 8px 24px rgba(10, 15, 28, 0.12), 0 0 20px currentColor; }
[data-theme="light"] .role-card .role-name { color: var(--text-0); }
[data-theme="light"] .role-card .role-stat { color: var(--text-2); }

/* 浅底上 toast 适配 */
[data-theme="light"] .toast { background: #ffffff; color: var(--text-1); box-shadow: 0 8px 32px rgba(10, 15, 28, 0.12); }

/* 浅底上 modal 更亮 */
[data-theme="light"] .modal-card { background: #ffffff; box-shadow: var(--shadow-modal); }

/* 浅底上 status dot 加重边框(在浅底上区分) */
[data-theme="light"] .status-dot--online { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6); }
[data-theme="light"] .status-dot--green { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6); }

/* 主题切换按钮(右上角,深色圆形,亮/暗 icon) */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 28px; padding: 0; border-radius: var(--r-xs);
  background: var(--bg-2); border: 1px solid var(--border-1); color: var(--text-2);
  cursor: pointer; transition: all 0.2s var(--ease-out);
}
.theme-toggle:hover { color: var(--c-primary); border-color: var(--c-primary); background: var(--c-primary-soft); }
.theme-toggle svg { width: 14px; height: 14px; }

/* ==========================================================================
   Light theme 派生(进一步细化 · 增强层次)
   ========================================================================== */

/* Card 立体感:浅底上加深阴影 + 加 1px 边框 */
[data-theme="light"] .card {
  background: #ffffff;  /* ★ 覆盖默认的 dark 半透渐变 */
  box-shadow: 0 2px 6px rgba(10, 15, 28, 0.04), 0 4px 16px rgba(10, 15, 28, 0.06);
  border-color: rgba(10, 15, 28, 0.06);
}
[data-theme="light"] .card:hover { box-shadow: 0 4px 12px rgba(10, 15, 28, 0.06), 0 8px 24px rgba(10, 15, 28, 0.08); }
[data-theme="light"] .card::after { opacity: 0.025; }  /* 装饰光晕在 light 下更淡 */

/* Card 主色类:light 下用主色作为边框 + 主题色阴影 */
[data-theme="light"] .card.theme-cyan { border-color: var(--c-cyan); box-shadow: 0 2px 6px rgba(0, 122, 138, 0.1), 0 4px 16px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .card.theme-amber { border-color: var(--c-amber); box-shadow: 0 2px 6px rgba(168, 104, 10, 0.1), 0 4px 16px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .card.theme-violet { border-color: var(--c-violet); box-shadow: 0 2px 6px rgba(100, 32, 208, 0.1), 0 4px 16px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .card.theme-magenta { border-color: var(--c-magenta); box-shadow: 0 2px 6px rgba(196, 24, 102, 0.1), 0 4px 16px rgba(10, 15, 28, 0.06); }
[data-theme="light"] .card.theme-cyan:hover { box-shadow: 0 4px 12px rgba(0, 122, 138, 0.15), 0 8px 24px rgba(10, 15, 28, 0.08); }
[data-theme="light"] .card.theme-amber:hover { box-shadow: 0 4px 12px rgba(168, 104, 10, 0.15), 0 8px 24px rgba(10, 15, 28, 0.08); }
[data-theme="light"] .card.theme-violet:hover { box-shadow: 0 4px 12px rgba(100, 32, 208, 0.15), 0 8px 24px rgba(10, 15, 28, 0.08); }
[data-theme="light"] .card.theme-magenta:hover { box-shadow: 0 4px 12px rgba(196, 24, 102, 0.15), 0 8px 24px rgba(10, 15, 28, 0.08); }

/* KPI 卡片浅底适配:数字加粗加深,边框更明显 */
[data-theme="light"] .kpi { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.06); box-shadow: 0 2px 8px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .kpi .kpi-value { font-weight: 900; }
/* KPI 主色类:light 下用主色作为左边框 + 主题色阴影 */
[data-theme="light"] .kpi.theme-cyan { border-color: var(--c-cyan); box-shadow: 0 2px 8px rgba(0, 122, 138, 0.1); }
[data-theme="light"] .kpi.theme-amber { border-color: var(--c-amber); box-shadow: 0 2px 8px rgba(168, 104, 10, 0.1); }
[data-theme="light"] .kpi.theme-violet { border-color: var(--c-violet); box-shadow: 0 2px 8px rgba(100, 32, 208, 0.1); }
[data-theme="light"] .kpi.theme-magenta { border-color: var(--c-magenta); box-shadow: 0 2px 8px rgba(196, 24, 102, 0.1); }
/* KPI 主题色变体:数字在 light 下用主色 */
[data-theme="light"] .kpi.theme-cyan .kpi-value { color: var(--c-cyan); }
[data-theme="light"] .kpi.theme-amber .kpi-value { color: var(--c-amber); }
[data-theme="light"] .kpi.theme-violet .kpi-value { color: var(--c-violet); }
[data-theme="light"] .kpi.theme-magenta .kpi-value { color: var(--c-magenta); }
/* KPI label / meta 浅底加深 */
[data-theme="light"] .kpi-label { color: var(--text-2); }
[data-theme="light"] .kpi-meta { color: var(--text-2); }
[data-theme="light"] .kpi-meta .lbl { color: var(--text-3); }
[data-theme="light"] .kpi-meta .ctx { color: var(--text-3); }

/* nav 选中态:浅底加更明显背景 + 左侧主色条 + 主色边框 */
[data-theme="light"] .main-nav-item.active {
  color: var(--c-primary);
  background: #ffffff;
  border-color: var(--c-primary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  font-weight: 600;
}
[data-theme="light"] .main-nav-item:hover { background: rgba(0, 0, 0, 0.03); color: var(--text-0); }
[data-theme="light"] .main-nav-item.active:hover { background: #ffffff; }
[data-theme="light"] .main-nav-section { border-bottom-color: rgba(10, 15, 28, 0.08); }

/* chip 在浅底:加边框 */
[data-theme="light"] .chip { border: 1px solid rgba(10, 15, 28, 0.1); }

/* alert-row 在浅底:加边框 */
[data-theme="light"] .alert-row { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.04); }
[data-theme="light"] .alert-row .desc { color: var(--text-2); }
[data-theme="light"] .alert-row .alert-body { color: var(--text-0); }
/* alert-row 主色左边框在 light 下用主题色(原色加深) */
[data-theme="light"] .alert-row[style*="border-left-color: var(--c-cyan)"] { border-left: 2px solid var(--c-cyan) !important; }
[data-theme="light"] .alert-row[style*="border-left-color: var(--c-amber)"] { border-left: 2px solid var(--c-amber) !important; }
[data-theme="light"] .alert-row[style*="border-left-color: var(--c-violet)"] { border-left: 2px solid var(--c-violet) !important; }
[data-theme="light"] .alert-row[style*="border-left-color: var(--c-magenta)"] { border-left: 2px solid var(--c-magenta) !important; }

/* tab 浅底激活 */
[data-theme="light"] .tab.active { background: var(--c-primary-soft); }

/* input 浅底:白底 + 深边框 */
[data-theme="light"] .field-input-wrap { background: #ffffff; border-color: rgba(10, 15, 28, 0.15); }

/* btn-ghost 浅底:加深文字 + 边框 */
[data-theme="light"] .btn-ghost { color: var(--text-1); border-color: rgba(10, 15, 28, 0.15); }
[data-theme="light"] .btn-ghost:hover { color: var(--c-primary); border-color: var(--c-primary); background: var(--c-primary-soft); }

/* ctx-bar 浅底:加白底 + 边框 + 阴影 */
[data-theme="light"] .ctx-bar { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 2px 6px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .ctx-k { color: var(--text-3); }

/* topbar 浅底:白底 + 阴影 */
[data-theme="light"] .topbar { background: rgba(255, 255, 255, 0.95); border-bottom: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 1px 4px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .topbar::after { opacity: 0.2 !important; }
[data-theme="light"] .logo-text .logo-cn { color: var(--text-0); }

/* page-head 在浅底:加强标题对比 */
[data-theme="light"] .page-head h1 { color: var(--text-0); text-shadow: none; }

/* breadcrumb 在浅底:连接处可读 */
[data-theme="light"] .breadcrumb a { color: var(--text-2); }
[data-theme="light"] .breadcrumb .current { color: var(--text-0); font-weight: 600; }

/* main-nav 容器浅底:加白底 */
[data-theme="light"] .main-nav { background: #ffffff; border-right: 1px solid rgba(10, 15, 28, 0.08); }

/* 主体区域:浅底用更明显卡片边 */
[data-theme="light"] .modal { background-color: rgba(10, 15, 28, 0.4); }

/* section-divider 浅底 */
[data-theme="light"] .section-divider { border-bottom-color: rgba(10, 15, 28, 0.12); }
[data-theme="light"] .section-divider .sd-tag { color: var(--c-primary); }
[data-theme="light"] .section-divider .sd-en { color: var(--text-2); }

/* page-head 标题在 light 下深色 */
[data-theme="light"] .page-head h1 { color: var(--text-0); text-shadow: none; }
[data-theme="light"] .page-head .en { color: var(--text-2); }
[data-theme="light"] .page-head .desc { color: var(--text-1); }
[data-theme="light"] .page-head .page-head-actions .btn-ghost { background: #ffffff; }

/* Funnel 浅底:每段加白底 + 主题色左边条 */
[data-theme="light"] .funnel-stage { background: #ffffff; border-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .funnel-stage.cyan { background: rgba(0, 122, 138, 0.04); border-left: 3px solid var(--c-cyan); }
[data-theme="light"] .funnel-stage.amber { background: rgba(168, 104, 10, 0.04); border-left: 3px solid var(--c-amber); }
[data-theme="light"] .funnel-stage.violet { background: rgba(100, 32, 208, 0.04); border-left: 3px solid var(--c-violet); }
[data-theme="light"] .funnel-stage.magenta { background: rgba(196, 24, 102, 0.04); border-left: 3px solid var(--c-magenta); }
[data-theme="light"] .funnel-stage .lbl-en { color: var(--text-2); }
[data-theme="light"] .funnel-count .unit { color: var(--text-2); }

/* Kanban 浅底 */
[data-theme="light"] .kanban-col { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 2px 6px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .kanban-col-head { border-bottom-color: rgba(10, 15, 28, 0.12); background: var(--bg-2); }
[data-theme="light"] .kanban-col-head .meta { color: var(--text-2); }
[data-theme="light"] .kanban-card { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 1px 3px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .kanban-card:hover { border-color: var(--c-primary); box-shadow: 0 2px 8px rgba(0, 122, 138, 0.08); }

/* Project 浅底 */
[data-theme="light"] .proj-card { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.08); box-shadow: 0 1px 4px rgba(10, 15, 28, 0.04); }
[data-theme="light"] .proj-card:hover { border-color: var(--c-primary); box-shadow: 0 4px 12px rgba(0, 122, 138, 0.1); }
[data-theme="light"] .proj-card .proj-meta { color: var(--text-2); }
[data-theme="light"] .proj-card .proj-date { color: var(--text-2); }
[data-theme="light"] .proj-card .proj-owner-avatar { border-color: var(--c-primary); background: var(--c-primary-soft); color: var(--c-primary); }

/* Card-link 浅底:深色文字 */
[data-theme="light"] .card-link { color: var(--c-primary); }
[data-theme="light"] .card-link:hover { color: var(--c-primary); }

/* Card 头部英文描述 */
[data-theme="light"] .card-head { border-bottom-color: rgba(10, 15, 28, 0.08); }

/* chip 浅底加深 */
[data-theme="light"] .chip { background: var(--bg-2); color: var(--text-1); border: 1px solid rgba(10, 15, 28, 0.1); }
[data-theme="light"] .chip.active { background: var(--c-primary); color: #ffffff; border-color: var(--c-primary); }
[data-theme="light"] .chip.theme-cyan.active { background: var(--c-cyan); color: #ffffff; }
[data-theme="light"] .chip.theme-amber.active { background: var(--c-amber); color: #ffffff; }
[data-theme="light"] .chip.theme-violet.active { background: var(--c-violet); color: #ffffff; }
[data-theme="light"] .chip.theme-magenta.active { background: var(--c-magenta); color: #ffffff; }

/* 空状态 */
[data-theme="light"] .empty-state { color: var(--text-3); }

/* icon-btn 浅底 */
[data-theme="light"] .icon-btn { color: var(--text-2); }
[data-theme="light"] .icon-btn:hover { color: var(--c-primary); background: var(--c-primary-soft); }

/* search-box 浅底 */
[data-theme="light"] .search-box { background: var(--bg-2); border-color: rgba(10, 15, 28, 0.1); }
[data-theme="light"] .search-box:focus-within { border-color: var(--c-primary); background: #ffffff; }

/* avatar 浅底 */
[data-theme="light"] .avatar { background: var(--c-primary-soft); color: var(--c-primary); }

/* dropdown / role-quick 浅底 */
[data-theme="light"] .role-quick { background: var(--bg-2); border-color: rgba(10, 15, 28, 0.1); }
[data-theme="light"] .rq-item.gov { color: var(--c-cyan); }
[data-theme="light"] .rq-item.ent { color: var(--c-amber); }
[data-theme="light"] .rq-item.sci { color: var(--c-violet); }

/* func-matrix 浅底:背景白 */
[data-theme="light"] .func-matrix { background: #ffffff; border-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .func-matrix-head { border-bottom-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .func-chip { background: var(--bg-2); border-color: rgba(10, 15, 28, 0.06); }
[data-theme="light"] .func-chip:hover { background: #ffffff; }

/* kpi-strip 浅底 */
[data-theme="light"] .kpi-strip .ks { background: #ffffff; border-color: rgba(10, 15, 28, 0.08); }

/* tag 浅底 */
[data-theme="light"] .tag { background: var(--bg-2); color: var(--text-1); border: 1px solid rgba(10, 15, 28, 0.06); }

/* 文本辅助 - 浅底加深提示文字 */
[data-theme="light"] ::-webkit-scrollbar-track { background: #eef1f7; }
[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(10, 15, 28, 0.2); }
[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: var(--c-primary); }

/* AI panel 浅底:加白底 + 阴影 */
[data-theme="light"] .ai-panel { background: #ffffff; border: 1px solid rgba(10, 15, 28, 0.12); box-shadow: 0 8px 32px rgba(10, 15, 28, 0.16); }
[data-theme="light"] .ai-body { background: #ffffff; }
[data-theme="light"] .ai-msg.bot { background: var(--bg-2); color: var(--text-1); border-color: rgba(var(--c-ai-rgb), 0.2); }
[data-theme="light"] .ai-msg.user { background: var(--c-primary-soft); color: var(--c-primary); border-color: rgba(0, 122, 138, 0.2); }
[data-theme="light"] .ai-msg-head { color: var(--c-ai); }
[data-theme="light"] .ai-msg-time { color: var(--text-3); }
[data-theme="light"] .ai-msg-title { color: var(--text-0); }
[data-theme="light"] .ai-msg-body { color: var(--text-1); }
[data-theme="light"] .ai-data-row { background: rgba(10, 15, 28, 0.04); }
[data-theme="light"] .ai-data-row.urgent { background: rgba(214, 51, 108, 0.08); }
[data-theme="light"] .ai-data-row .k { color: var(--text-2); }
[data-theme="light"] .ai-data-row .v { color: var(--text-0); }
[data-theme="light"] .ai-msg-greeting { color: var(--text-2); }
[data-theme="light"] .ai-msg-links { border-top-color: rgba(var(--c-ai-rgb), 0.25); }
[data-theme="light"] .ai-link { background: rgba(var(--c-ai-rgb), 0.06); border-color: rgba(var(--c-ai-rgb), 0.3); color: var(--text-1); }
[data-theme="light"] .ai-link:hover { background: rgba(var(--c-ai-rgb), 0.14); border-color: var(--c-ai); color: var(--c-ai); }
[data-theme="light"] .ai-msg-footer { color: var(--text-3); }
[data-theme="light"] .ai-risk-row { background: rgba(10, 15, 28, 0.04); }
[data-theme="light"] .ai-risk-row .t { color: var(--text-1); }
[data-theme="light"] .quick-questions { border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .quick-q-label { color: var(--text-3); }
[data-theme="light"] .quick-q { background: rgba(var(--c-ai-rgb), 0.06); border-color: rgba(var(--c-ai-rgb), 0.25); }
[data-theme="light"] .quick-q:hover { background: rgba(var(--c-ai-rgb), 0.12); }
[data-theme="light"] .ai-input { background: var(--bg-2); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-input input { color: var(--text-0); }
[data-theme="light"] .ai-input input::placeholder { color: var(--text-3); }
[data-theme="light"] .ai-mode-toggle { background: rgba(10, 15, 28, 0.04); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-mode-btn { color: var(--text-3); }
[data-theme="light"] .ai-mode-btn.is-active { background: rgba(var(--c-ai-rgb), 0.12); border-color: rgba(var(--c-ai-rgb), 0.4); color: var(--c-ai); }
[data-theme="light"] .ai-voice-mode { background: rgba(10, 15, 28, 0.04); border-top-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-waveform { background: rgba(10, 15, 28, 0.04); border-color: rgba(10, 15, 28, 0.08); }
[data-theme="light"] .ai-transcript { color: var(--text-2); }
[data-theme="light"] .ai-footer { background: rgba(10, 15, 28, 0.03); border-top-color: rgba(10, 15, 28, 0.08); color: var(--text-3); }

/* AI FAB 浅底:深绿实心渐变 + 顶部高光 */
[data-theme="light"] .ai-fab {
  background:
    linear-gradient(135deg, #00a366 0%, #008a55 35%, #006d44 70%, #005a38 100%),
    conic-gradient(from 180deg at 30% 30%, transparent 0deg, rgba(255, 255, 255, 0.3) 60deg, transparent 120deg);
  box-shadow:
    0 8px 24px rgba(0, 90, 56, 0.5),
    0 0 56px rgba(0, 138, 85, 0.4),
    0 0 0 2px rgba(255, 255, 255, 0.5) inset,
    0 3px 0 rgba(255, 255, 255, 0.4) inset,
    0 -2px 4px rgba(0, 60, 40, 0.3) inset;
}
[data-theme="light"] .ai-fab:hover {
  background:
    linear-gradient(135deg, #00c080 0%, #00a366 35%, #008a55 70%, #006d44 100%),
    conic-gradient(from 180deg at 30% 30%, transparent 0deg, rgba(255, 255, 255, 0.4) 60deg, transparent 120deg);
  box-shadow:
    0 12px 36px rgba(0, 110, 70, 0.7),
    0 0 72px rgba(0, 138, 85, 0.6),
    0 0 0 2px rgba(255, 255, 255, 0.6) inset;
}
[data-theme="light"] .ai-fab-label { color: #ffffff; }
[data-theme="light"] .ai-fab-corners::before,
[data-theme="light"] .ai-fab-corners::after,
[data-theme="light"] .ai-fab-corners > span::before,
[data-theme="light"] .ai-fab-corners > span::after { border-color: var(--c-ai); opacity: 0.9; }
[data-theme="light"] .ai-fab-hud text { fill: rgba(var(--c-ai-rgb), 0.8); }

/* AI FAB 浅底 · 激活态 (panel 打开时) */
[data-theme="light"] .ai-fab.is-active {
  background:
    linear-gradient(135deg, #1ed19a 0%, #00c080 30%, #00a366 60%, #008a55 100%),
    conic-gradient(from 180deg at 30% 30%, transparent 0deg, rgba(255, 255, 255, 0.5) 60deg, rgba(255, 255, 255, 0.2) 120deg, transparent 180deg);
  box-shadow:
    0 12px 32px rgba(0, 138, 85, 0.7),
    0 0 80px rgba(0, 163, 102, 0.6),
    0 0 140px rgba(0, 163, 102, 0.3),
    0 0 0 2px rgba(255, 255, 255, 0.9) inset,
    0 4px 0 rgba(255, 255, 255, 0.6) inset,
    0 -2px 4px rgba(0, 60, 40, 0.4) inset,
    0 0 0 4px rgba(0, 163, 102, 0.3);
}
[data-theme="light"] .ai-fab.is-active .ai-fab-corners::before,
[data-theme="light"] .ai-fab.is-active .ai-fab-corners::after,
[data-theme="light"] .ai-fab.is-active .ai-fab-corners > span::before,
[data-theme="light"] .ai-fab.is-active .ai-fab-corners > span::after {
  border-color: #ffffff;
  filter: drop-shadow(0 0 4px rgba(0, 163, 102, 0.8));
  opacity: 1;
}
[data-theme="light"] .ai-fab.is-active .ai-fab-hud text { fill: #ffffff; }

/* table 浅底 */
[data-theme="light"] .tbl { background: #ffffff; }
[data-theme="light"] .tbl thead th { background: var(--bg-2); color: var(--text-1); border-bottom-color: rgba(10, 15, 28, 0.12); }
[data-theme="light"] .tbl tbody tr { border-bottom-color: rgba(10, 15, 28, 0.06); }
[data-theme="light"] .tbl tbody tr:hover { background: var(--bg-2); }

/* ==========================================================================
   Light 主题 · 状态色 / 分类色块 加强对比
   ========================================================================== */

/* status-danger (红)/ status-warning (黄) 浅底:背景浅,文字深 */
[data-theme="light"] .tag-danger { background: rgba(214, 51, 108, 0.12); color: #c41866; border: 1px solid rgba(214, 51, 108, 0.3); }
[data-theme="light"] .tag-warning { background: rgba(212, 137, 14, 0.14); color: #8a5400; border: 1px solid rgba(212, 137, 14, 0.3); }
[data-theme="light"] .tag-success { background: rgba(47, 158, 68, 0.12); color: #1f7a35; border: 1px solid rgba(47, 158, 68, 0.3); }

/* tag 主色类(cyan/amber/violet/magenta) 浅底适配 */
[data-theme="light"] .tag-cyan { background: rgba(0, 122, 138, 0.1); color: #007a8a; border: 1px solid rgba(0, 122, 138, 0.3); }
[data-theme="light"] .tag-amber { background: rgba(168, 104, 10, 0.12); color: #8a5400; border: 1px solid rgba(168, 104, 10, 0.3); }
[data-theme="light"] .tag-violet { background: rgba(100, 32, 208, 0.1); color: #4a18a0; border: 1px solid rgba(100, 32, 208, 0.3); }
[data-theme="light"] .tag-magenta { background: rgba(196, 24, 102, 0.1); color: #a01454; border: 1px solid rgba(196, 24, 102, 0.3); }

/* status-dot 在 light 下加白边区分 */
[data-theme="light"] .status-dot { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9); }

/* page-head 标题在 light 下深色 + 无光晕 */
[data-theme="light"] .page-head h1 { color: var(--text-0); text-shadow: none; }
[data-theme="light"] .page-head .en { color: var(--text-3); }

/* 卡片标题中文在 light 下加深 */
[data-theme="light"] .card-title .card-title-zh { color: var(--text-0); }

/* 卡片标题 en 在 light 下用 text-2(更可读) */
[data-theme="light"] .card-title .en { color: var(--text-2); }

/* 各种 X 状态指示器 (RED/ORANGE/YELLOW) 在 light 下用对应深色 */
[data-theme="light"] div[style*="color: #ff3366"] { color: #c41866 !important; }
[data-theme="light"] div[style*="color:#ff3366"] { color: #c41866 !important; }
[data-theme="light"] div[style*="color: #ff7a45"] { color: #a8501f !important; }
[data-theme="light"] div[style*="color:#ff7a45"] { color: #a8501f !important; }
[data-theme="light"] div[style*="color: #ffd54f"] { color: #8a6800 !important; }
[data-theme="light"] div[style*="color:#ffd54f"] { color: #8a6800 !important; }

/* btn-primary 在 light 下保持主色 + 强阴影 */
[data-theme="light"] .btn-primary { box-shadow: 0 2px 8px var(--c-primary-soft); }
[data-theme="light"] .btn-primary:hover { box-shadow: 0 4px 16px var(--c-primary-soft); }

/* ctx-bar ctx-v 在 light 下加粗 */
[data-theme="light"] .ctx-v { color: var(--text-0); font-weight: 500; }
[data-theme="light"] .ctx-v .num { color: var(--c-primary); font-weight: 700; }
body.theme-magenta .checkbox input:checked { background: var(--c-magenta); border-color: var(--c-magenta); }

/* Field focus */
body.theme-gov .field-input-wrap:focus-within { border-color: var(--c-cyan); box-shadow: 0 0 0 3px var(--c-cyan-soft); }
body.theme-ent .field-input-wrap:focus-within { border-color: var(--c-amber); box-shadow: 0 0 0 3px var(--c-amber-soft); }
body.theme-sci .field-input-wrap:focus-within { border-color: var(--c-violet); box-shadow: 0 0 0 3px var(--c-violet-soft); }
body.theme-magenta .field-input-wrap:focus-within { border-color: var(--c-magenta); box-shadow: 0 0 0 3px var(--c-magenta-soft); }

body.theme-gov .field-textarea:focus { border-color: var(--c-cyan); box-shadow: 0 0 0 3px var(--c-cyan-soft); }
body.theme-ent .field-textarea:focus { border-color: var(--c-amber); box-shadow: 0 0 0 3px var(--c-amber-soft); }
body.theme-sci .field-textarea:focus { border-color: var(--c-violet); box-shadow: 0 0 0 3px var(--c-violet-soft); }
body.theme-magenta .field-textarea:focus { border-color: var(--c-magenta); box-shadow: 0 0 0 3px var(--c-magenta-soft); }

body.theme-gov .field-select:focus { border-color: var(--c-cyan); }
body.theme-ent .field-select:focus { border-color: var(--c-amber); }
body.theme-sci .field-select:focus { border-color: var(--c-violet); }
body.theme-magenta .field-select:focus { border-color: var(--c-magenta); }
