/* ============================================================================
 * LabDocs · EVO-TECHUI-V1 · 科技感 / 现代高级 UI 主题层
 * ----------------------------------------------------------------------------
 * 设计原则：
 *  - 仅作用于 html[data-theme="dark"]，浅色主题完全不受影响（可一键回滚 / 切换）。
 *  - 深空蓝黑底 + 霓虹青/紫双主色，玻璃拟态（glassmorphism）+ 霓虹辉光 + 动态栅格。
 *  - 纯 CSS 实现背景动效（栅格漂移 / 辉光呼吸），无 JS 依赖，零运行时风险。
 *  - 本文件在 styles.css 之后引入，靠「后定义优先」覆盖同选择器；回滚只需删除 index.html 中本文件的 <link>。
 * ==========================================================================*/

/* ---------- 1. 设计令牌（霓虹青 + 紫，深空底） ---------- */
html[data-theme="dark"]{
  --brand:#22d3ee; --brand-d:#06b6d4; --brand-l:#67e8f9;
  --primary:#22d3ee; --primary-d:#a78bfa;
  --ink:#e8f2ff; --ink2:#aebed6; --muted:#7e90ad; --line:#1b2b46;
  --bg:#060a16; --panel:rgba(13,21,38,.66); --sidebar1:#050912; --sidebar2:#0a1120;
  --surface-2:rgba(20,32,54,.7); --surface-3:rgba(24,38,64,.72); --surface-4:rgba(30,46,76,.8);
  --line-soft:#1b2b46;
  --accent:#22d3ee; --accent-2:#a78bfa;
  --accent-soft:rgba(34,211,238,.10); --accent-soft-2:rgba(34,211,238,.18);
  --ok:#34d399; --warn:#fbbf24; --danger:#fb7185; --accent-ink:#67e8f9;
  --ok-soft:rgba(52,211,153,.12); --ok-ink:#6ee7b7;
  --warn-soft:rgba(251,191,36,.12); --warn-ink:#fcd34d;
  --danger-soft:rgba(251,113,133,.13); --danger-ink:#fda4af;
  --info-soft:rgba(56,189,248,.12); --info-ink:#7dd3fc;
  --overlay:rgba(3,7,16,.72);
  --focus:#22d3ee;
  --shadow:0 10px 34px rgba(0,0,0,.45);
  --shadow-lg:0 24px 70px rgba(0,0,0,.6);
  --glow-cyan:0 0 18px rgba(34,211,238,.35);
  --radius:16px;
  color-scheme:dark;
}

/* ---------- 2. 动态背景：深空辉光 + 霓虹栅格 ---------- */
html[data-theme="dark"] body{
  background:
    radial-gradient(900px 520px at 12% -8%, rgba(34,211,238,.12), transparent 60%),
    radial-gradient(820px 520px at 102% 0%, rgba(167,139,250,.13), transparent 55%),
    radial-gradient(900px 720px at 50% 122%, rgba(59,130,246,.10), transparent 60%),
    var(--bg);
  background-attachment:fixed;
  color:var(--ink);
}
html[data-theme="dark"] .app-shell{ position:relative; z-index:1; }   /* 内容层置于栅格之上 */
html[data-theme="dark"] body::before{   /* 漂移霓虹栅格 */
  content:""; position:fixed; inset:-2px; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(120,170,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,170,255,.055) 1px, transparent 1px);
  background-size:46px 46px,46px 46px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 18%, #000 0%, transparent 82%);
          mask-image:radial-gradient(120% 90% at 50% 18%, #000 0%, transparent 82%);
  animation:evoGridDrift 20s linear infinite;
}
html[data-theme="dark"] body::after{    /* 顶部辉光 */
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(120% 80% at 50% -12%, rgba(34,211,238,.09), transparent 52%);
}
@keyframes evoGridDrift{ from{background-position:0 0,0 0;} to{background-position:46px 46px,46px 46px;} }

/* ---------- 3. 外壳 / 侧栏 / 顶栏（玻璃化） ---------- */
html[data-theme="dark"] .main,
html[data-theme="dark"] .content{ background:transparent; }
html[data-theme="dark"] .sidebar{
  background:linear-gradient(180deg, rgba(5,9,18,.92), rgba(10,17,32,.92));
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-right:1px solid rgba(120,170,255,.12);
  box-shadow:2px 0 26px rgba(0,0,0,.45);
}
html[data-theme="dark"] .brand-mark{
  background:linear-gradient(135deg,#22d3ee,#a78bfa); color:#04121f;
  box-shadow:0 0 22px rgba(34,211,238,.5);
}
html[data-theme="dark"] .nav-item{ position:relative; color:#aebed6; border-left:3px solid transparent; transition:background .18s,color .18s,box-shadow .18s; }
html[data-theme="dark"] .nav-item:hover{ background:rgba(34,211,238,.08); color:#e8f2ff; }
html[data-theme="dark"] .nav-item.active{
  background:linear-gradient(90deg, rgba(34,211,238,.16), rgba(167,139,250,.05));
  color:#fff; box-shadow:inset 0 0 20px rgba(34,211,238,.12);
}
html[data-theme="dark"] .nav-item.active::before{   /* 霓虹指示条 */
  content:""; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:2px;
  background:linear-gradient(180deg,#22d3ee,#a78bfa); box-shadow:0 0 12px #22d3ee;
}
html[data-theme="dark"] .topbar{
  background:rgba(10,17,32,.62); backdrop-filter:blur(26px) saturate(165%);
  -webkit-backdrop-filter:blur(26px) saturate(165%);
  border-bottom:1px solid rgba(120,170,255,.12); box-shadow:none; position:sticky; top:0; z-index:5;
}
html[data-theme="dark"] .topbar::after{   /* 顶栏霓虹下划线 */
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(34,211,238,.5), rgba(167,139,250,.4), transparent);
}
html[data-theme="dark"] .topbar .page-title{ color:var(--ink); text-shadow:0 0 14px rgba(34,211,238,.18); }

/* ---------- 4. 面板 / 卡片（玻璃拟态 + 霓虹描边） ---------- */
html[data-theme="dark"] .panel,
html[data-theme="dark"] .card{
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.012)), rgba(12,19,34,.55);
  backdrop-filter:blur(30px) saturate(165%); -webkit-backdrop-filter:blur(30px) saturate(165%);
  border:1px solid rgba(120,180,255,.14); border-radius:16px;
  box-shadow:0 10px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
  position:relative;
}
html[data-theme="dark"] .panel::before,
html[data-theme="dark"] .card::before{   /* 顶部霓虹发丝线 */
  content:""; position:absolute; left:14px; right:14px; top:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(34,211,238,.6), rgba(167,139,250,.5), transparent);
}
html[data-theme="dark"] .panel h3,
html[data-theme="dark"] .panel h4,
html[data-theme="dark"] .modal-title,
html[data-theme="dark"] .login-wrap h2,
html[data-theme="dark"] .notif-head h3{
  color:var(--ink); text-shadow:0 0 18px rgba(34,211,238,.22); letter-spacing:.3px;
}
html[data-theme="dark"] .panel h3{
  position:relative; padding-left:12px;
  border-left:3px solid transparent; border-image:linear-gradient(180deg,#22d3ee,#a78bfa) 1;
}

/* ---------- 5. 按钮（霓虹渐变 + 辉光） ---------- */
html[data-theme="dark"] button{
  background:linear-gradient(135deg,#22d3ee,#3b82f6); color:#04121f; font-weight:700;
  border-radius:10px; box-shadow:0 6px 18px rgba(34,211,238,.30), inset 0 0 0 1px rgba(255,255,255,.06);
  transition:filter .15s,box-shadow .15s,transform .05s;
}
html[data-theme="dark"] button:hover{ filter:brightness(1.06); box-shadow:0 8px 26px rgba(34,211,238,.45); transform:translateY(-1px); }
html[data-theme="dark"] button:active{ transform:translateY(0); }
html[data-theme="dark"] button.ghost{ background:rgba(34,211,238,.08); color:#67e8f9; border:1px solid rgba(34,211,238,.35); box-shadow:none; }
html[data-theme="dark"] button.ghost:hover{ background:rgba(34,211,238,.16); box-shadow:0 0 16px rgba(34,211,238,.25); }
html[data-theme="dark"] button.danger{ background:linear-gradient(135deg,#fb7185,#e11d48); color:#fff; box-shadow:0 6px 18px rgba(244,63,94,.32); }
html[data-theme="dark"] button.danger:hover{ filter:brightness(1.05); box-shadow:0 8px 26px rgba(244,63,94,.45); }

/* ---------- 6. 表单控件（玻璃 + 聚焦辉光） ---------- */
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{
  background:rgba(8,14,26,.72); border:1px solid rgba(120,170,255,.2); color:var(--ink); border-radius:10px;
}
html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus{
  border-color:#22d3ee; box-shadow:0 0 0 3px rgba(34,211,238,.18), 0 0 16px rgba(34,211,238,.15);
}

/* ---------- 7. 选项卡 ---------- */
html[data-theme="dark"] .tabs{ background:rgba(8,14,26,.6); border-color:rgba(120,170,255,.18); }
html[data-theme="dark"] .tab,
html[data-theme="dark"] .tab-btn{ color:var(--ink2); border:1px solid transparent; transition:.15s; }
html[data-theme="dark"] .tab:hover,
html[data-theme="dark"] .tab-btn:hover{ color:var(--ink); background:rgba(34,211,238,.08); }
html[data-theme="dark"] .tab.active,
html[data-theme="dark"] .tab-btn.active{
  color:#04121f; font-weight:700;
  background:linear-gradient(135deg,#22d3ee,#3b82f6); box-shadow:0 4px 14px rgba(34,211,238,.35);
}

/* ---------- 8. 表格（霓虹表头 + 悬浮辉光） ---------- */
html[data-theme="dark"] table{ border-collapse:separate; border-spacing:0; }
html[data-theme="dark"] th{
  background:linear-gradient(180deg, rgba(34,211,238,.10), rgba(34,211,238,.03));
  color:#9fd9e8; border-bottom:1px solid rgba(34,211,238,.22);
  font-weight:600; letter-spacing:.4px; text-transform:uppercase; font-size:11.5px;
}
html[data-theme="dark"] td{ border-bottom:1px solid rgba(120,170,255,.08); }
html[data-theme="dark"] tbody tr{ transition:background .15s, box-shadow .15s; }
html[data-theme="dark"] tbody tr:nth-child(even){ background:rgba(255,255,255,.02); }
html[data-theme="dark"] tbody tr:hover{ background:rgba(34,211,238,.07); box-shadow:inset 3px 0 0 #22d3ee; }

/* ---------- 9. 标签 / 徽章（霓虹描边） ---------- */
html[data-theme="dark"] .tag{ background:rgba(34,211,238,.10); color:#7fe3f0; border:1px solid rgba(34,211,238,.3); }
html[data-theme="dark"] .panel h3 .tag{ color:#7fe3f0; background:rgba(34,211,238,.12); border:1px solid rgba(34,211,238,.32); }
html[data-theme="dark"] .badge.ok{ background:rgba(52,211,153,.12); color:#6ee7b7; border:1px solid rgba(52,211,153,.4); }
html[data-theme="dark"] .badge.warn{ background:rgba(251,191,36,.12); color:#fcd34d; border:1px solid rgba(251,191,36,.4); }
html[data-theme="dark"] .badge.danger{ background:rgba(251,113,133,.13); color:#fda4af; border:1px solid rgba(251,113,133,.4); }

/* ---------- 10. 弹窗（玻璃 + 入场） ---------- */
html[data-theme="dark"] .modal-overlay{ background:rgba(3,7,16,.7); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
html[data-theme="dark"] .modal{
  background:linear-gradient(160deg, rgba(20,30,50,.94), rgba(12,19,34,.96));
  backdrop-filter:blur(36px) saturate(175%); -webkit-backdrop-filter:blur(36px) saturate(175%);
  border:1px solid rgba(120,170,255,.2);
  box-shadow:0 24px 70px rgba(0,0,0,.6), 0 0 40px rgba(34,211,238,.10), inset 0 0 0 1px rgba(34,211,238,.06);
  border-radius:18px; animation:evoModalIn .22s ease;
}
@keyframes evoModalIn{ from{opacity:0; transform:translateY(14px) scale(.98);} to{opacity:1; transform:none;} }

/* ---------- 11. 登录页（霓虹玻璃卡 + 动态栅格） ---------- */
html[data-theme="dark"] .login-bg{
  background:
    radial-gradient(1200px 600px at 18% -10%, rgba(34,211,238,.14), transparent 60%),
    radial-gradient(1000px 520px at 102% 112%, rgba(167,139,250,.16), transparent 55%),
    linear-gradient(135deg,#04070f,#0a1122);
  position:relative; overflow:hidden;
}
html[data-theme="dark"] .login-bg::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(120,170,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,170,255,.06) 1px, transparent 1px);
  background-size:46px 46px,46px 46px;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 40%, #000 0%, transparent 80%);
          mask-image:radial-gradient(120% 100% at 50% 40%, #000 0%, transparent 80%);
  animation:evoGridDrift 22s linear infinite;
}
html[data-theme="dark"] .login-wrap{
  background:linear-gradient(160deg, rgba(20,30,50,.8), rgba(12,19,34,.86));
  backdrop-filter:blur(40px) saturate(175%); -webkit-backdrop-filter:blur(40px) saturate(175%);
  border:1px solid rgba(120,170,255,.22);
  box-shadow:0 24px 70px rgba(0,0,0,.6), 0 0 50px rgba(34,211,238,.10);
  border-radius:20px; position:relative; overflow:hidden;
}
html[data-theme="dark"] .login-wrap::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#22d3ee,#a78bfa,#3b82f6);
}
html[data-theme="dark"] .login-wrap .lg-mark{
  background:linear-gradient(135deg,#22d3ee,#a78bfa); color:#04121f; box-shadow:0 0 22px rgba(34,211,238,.5);
}

/* ---------- 12. 霓虹滚动条 ---------- */
html[data-theme="dark"] ::-webkit-scrollbar{ width:10px; height:10px; }
html[data-theme="dark"] ::-webkit-scrollbar-track{ background:transparent; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(34,211,238,.5), rgba(167,139,250,.5));
  border-radius:8px; border:2px solid transparent; background-clip:padding-box;
}
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, rgba(34,211,238,.85), rgba(167,139,250,.85));
  background-clip:padding-box;
}

/* ---------- 13. 通知中心 / 其它玻璃件 ---------- */
html[data-theme="dark"] .notif-panel,
html[data-theme="dark"] .notif-item.unread{ backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px); }
html[data-theme="dark"] .notif-item:hover{ background:rgba(34,211,238,.07); }
html[data-theme="dark"] .alert,
html[data-theme="dark"] .info{
  border:1px solid rgba(120,170,255,.18); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}

/* ---------- 14. 降低动效偏好：关闭背景动画 ---------- */
@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] body::before,
  html[data-theme="dark"] .login-bg::before{ animation:none; }
  html[data-theme="dark"] .modal{ animation:none; }
}


/* ---------- 15. 微交互动效（悬浮抬升 / 光晕扫光 / 入场浮动，尊重降低动效） ---------- */
/* 面板 / 卡片 悬浮微抬升 + 霓虹描边增强（容器为静态节点，不随列表重渲染，无闪烁） */
html[data-theme="dark"] .panel,
html[data-theme="dark"] .card{
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s;
}
html[data-theme="dark"] .panel:hover,
html[data-theme="dark"] .card:hover{
  transform:translateY(-3px);
  border-color:rgba(34,211,238,.32);
  box-shadow:0 18px 48px rgba(0,0,0,.5), 0 0 26px rgba(34,211,238,.14), inset 0 1px 0 rgba(255,255,255,.06);
}
html[data-theme="dark"] .panel:hover::before,
html[data-theme="dark"] .card:hover::before{ filter:brightness(1.5); }   /* 顶发光丝线增亮 */

/* 导航项悬浮微推进 */
html[data-theme="dark"] .nav-item{ transition:background .18s,color .18s,box-shadow .18s,transform .15s; }
html[data-theme="dark"] .nav-item:hover{ transform:translateX(3px); }

/* 按钮：悬浮光晕斜扫（仅 hover 触发，不干扰输入/重渲染） */
html[data-theme="dark"] button{ position:relative; overflow:hidden; }
html[data-theme="dark"] button::after{
  content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.34), transparent);
  transform:skewX(-20deg); transition:left .55s ease; pointer-events:none;
}
html[data-theme="dark"] button:hover::after{ left:150%; }

/* 登录卡入场浮动 */
html[data-theme="dark"] .login-wrap{ animation:evoFloatIn .5s ease both; }
@keyframes evoFloatIn{ from{opacity:0; transform:translateY(22px) scale(.985);} to{opacity:1; transform:none;} }

/* 降低动效偏好：关闭微交互变换与扫光 */
@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] .panel,
  html[data-theme="dark"] .card,
  html[data-theme="dark"] .nav-item{ transition:background .18s,color .18s,box-shadow .18s; }
  html[data-theme="dark"] .panel:hover,
  html[data-theme="dark"] .card:hover{ transform:none; }
  html[data-theme="dark"] .nav-item:hover{ transform:none; }
  html[data-theme="dark"] button::after{ display:none; }
  html[data-theme="dark"] .login-wrap{ animation:none; }
}


/* ============================================================================
 * §16. 浅色「极光(Aurora)」科技变体 · 与深色科技风并列
 * ----------------------------------------------------------------------------
 * 仅作用于 html[data-theme="light"]；深色调零改动。给浅色模式同样的玻璃拟态 +
 * 霓虹描边 + 极光背景处理，使两种主题都具备「现代高级感」。纯 CSS、零 JS、零依赖。
 * ==========================================================================*/

/* ---------- 16.1 设计令牌（极光青 + 紫，浅空底） ---------- */
html[data-theme="light"]{
  --brand:#0ea5b7; --brand-d:#0891b2; --brand-l:#22b8cf;
  --primary:#0ea5b7; --primary-d:#7c3aed;
  --ink:#0d2236; --ink2:#41566f; --muted:#7184a0; --line:#cfe0f5;
  --bg:#eef4fb;
  --panel:rgba(255,255,255,.72);
  --sidebar1:#f3f8ff; --sidebar2:#e9f1fc;
  --surface-2:rgba(255,255,255,.8); --surface-3:rgba(255,255,255,.86); --surface-4:rgba(255,255,255,.92);
  --line-soft:#dbe7f6;
  --accent:#0ea5b7; --accent-2:#7c3aed;
  --accent-soft:rgba(14,165,183,.10); --accent-soft-2:rgba(14,165,183,.16);
  --ok:#0f9d6b; --warn:#b97d00; --danger:#e11d48; --accent-ink:#0e7490;
  --ok-soft:rgba(16,157,107,.12); --ok-ink:#0f9d6b;
  --warn-soft:rgba(201,138,0,.12); --warn-ink:#b97d00;
  --danger-soft:rgba(225,29,72,.10); --danger-ink:#e11d48;
  --info-soft:rgba(14,165,183,.10); --info-ink:#0e7490;
  --overlay:rgba(20,40,70,.32);
  --focus:#0ea5b7;
  --shadow:0 10px 30px rgba(31,72,120,.12);
  --shadow-lg:0 24px 60px rgba(31,72,120,.18);
  --glow-cyan:0 0 16px rgba(14,165,183,.28);
  --radius:16px;
  color-scheme:light;
}

/* ---------- 16.2 极光背景 ---------- */
html[data-theme="light"] body{
  background:
    radial-gradient(900px 520px at 8% -6%, rgba(14,165,183,.10), transparent 60%),
    radial-gradient(820px 520px at 100% 0%, rgba(124,58,237,.10), transparent 58%),
    radial-gradient(900px 720px at 50% 120%, rgba(59,130,246,.08), transparent 60%),
    #eef4fb;
  background-attachment:fixed;
  color:var(--ink);
}
html[data-theme="light"] .app-shell{ position:relative; z-index:1; }
html[data-theme="light"] body::before{
  content:""; position:fixed; inset:-2px; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(80,130,200,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80,130,200,.06) 1px, transparent 1px);
  background-size:46px 46px,46px 46px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 16%, #000 0%, transparent 82%);
          mask-image:radial-gradient(120% 90% at 50% 16%, #000 0%, transparent 82%);
  animation:evoGridDrift 24s linear infinite;
}
html[data-theme="light"] body::after{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(120% 80% at 50% -14%, rgba(14,165,183,.10), transparent 52%);
}

/* ---------- 16.3 侧栏 / 顶栏（浅色玻璃） ---------- */
html[data-theme="light"] .main,
html[data-theme="light"] .content{ background:transparent; }
html[data-theme="light"] .sidebar{
  background:linear-gradient(180deg, rgba(243,248,255,.92), rgba(233,241,252,.92));
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-right:1px solid rgba(120,170,255,.25);
  box-shadow:2px 0 24px rgba(31,72,120,.10);
}
html[data-theme="light"] .brand-mark{
  background:linear-gradient(135deg,#22b8cf,#7c3aed); color:#fff;
  box-shadow:0 0 18px rgba(14,165,183,.35);
}
/* 浅色主题 OTE 品牌字配色（EVO-BRAND-LIGHT-V1）：基础样式 .brand-name 写死 #fff，浅色侧边栏上不可见；改为深色可读 */
html[data-theme="light"] .brand-name{ color:#0d2236; }
html[data-theme="light"] .brand-sub{ color:#5a6e88; }

html[data-theme="light"] .nav-item{ position:relative; color:#41566f; border-left:3px solid transparent; transition:background .18s,color .18s,box-shadow .18s,transform .15s; }
html[data-theme="light"] .nav-item:hover{ background:rgba(14,165,183,.10); color:#0d2236; transform:translateX(3px); }
html[data-theme="light"] .nav-item.active{
  background:linear-gradient(90deg, rgba(14,165,183,.16), rgba(124,58,237,.06));
  color:#0a2a3f; font-weight:600; box-shadow:inset 0 0 18px rgba(14,165,183,.08);
}
html[data-theme="light"] .nav-item.active::before{
  content:""; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:2px;
  background:linear-gradient(180deg,#0ea5b7,#7c3aed); box-shadow:0 0 10px rgba(14,165,183,.5);
}
html[data-theme="light"] .topbar{
  background:rgba(243,248,255,.70); backdrop-filter:blur(26px) saturate(165%);
  -webkit-backdrop-filter:blur(26px) saturate(165%);
  border-bottom:1px solid rgba(120,170,255,.25); box-shadow:none; position:sticky; top:0; z-index:5;
}
html[data-theme="light"] .topbar::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(14,165,183,.45), rgba(124,58,237,.35), transparent);
}
html[data-theme="light"] .topbar .page-title{ color:var(--ink); text-shadow:0 0 12px rgba(14,165,183,.15); }

/* ---------- 16.4 面板 / 卡片（浅色玻璃 + 霓虹描边） ---------- */
html[data-theme="light"] .panel,
html[data-theme="light"] .card{
  background:linear-gradient(160deg, rgba(255,255,255,.85), rgba(255,255,255,.6)), rgba(255,255,255,.55);
  backdrop-filter:blur(30px) saturate(165%); -webkit-backdrop-filter:blur(30px) saturate(165%);
  border:1px solid rgba(120,180,255,.30); border-radius:16px;
  box-shadow:0 10px 30px rgba(31,72,120,.12), inset 0 1px 0 rgba(255,255,255,.6);
  position:relative;
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s;
}
html[data-theme="light"] .panel::before,
html[data-theme="light"] .card::before{
  content:""; position:absolute; left:14px; right:14px; top:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(14,165,183,.6), rgba(124,58,237,.5), transparent);
}
html[data-theme="light"] .panel:hover,
html[data-theme="light"] .card:hover{
  transform:translateY(-3px);
  border-color:rgba(14,165,183,.40);
  box-shadow:0 18px 48px rgba(31,72,120,.16), 0 0 24px rgba(14,165,183,.12), inset 0 1px 0 rgba(255,255,255,.7);
}
html[data-theme="light"] .panel:hover::before,
html[data-theme="light"] .card:hover::before{ filter:brightness(1.4); }
html[data-theme="light"] .panel h3,
html[data-theme="light"] .panel h4,
html[data-theme="light"] .modal-title,
html[data-theme="light"] .login-wrap h2,
html[data-theme="light"] .notif-head h3{
  color:var(--ink); text-shadow:0 0 14px rgba(14,165,183,.12); letter-spacing:.3px;
}
html[data-theme="light"] .panel h3{
  position:relative; padding-left:12px;
  border-left:3px solid transparent; border-image:linear-gradient(180deg,#0ea5b7,#7c3aed) 1;
}

/* ---------- 16.5 按钮（浅底霓虹渐变 + 扫光） ---------- */
html[data-theme="light"] button{
  background:linear-gradient(135deg,#0ea5b7,#2563eb); color:#fff; font-weight:700;
  border-radius:10px; box-shadow:0 6px 16px rgba(14,165,183,.28), inset 0 0 0 1px rgba(255,255,255,.10);
  transition:filter .15s,box-shadow .15s,transform .05s; position:relative; overflow:hidden;
}
html[data-theme="light"] button::after{
  content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-20deg); transition:left .55s ease; pointer-events:none;
}
html[data-theme="light"] button:hover{ filter:brightness(1.05); box-shadow:0 8px 24px rgba(14,165,183,.38); transform:translateY(-1px); }
html[data-theme="light"] button:hover::after{ left:150%; }
html[data-theme="light"] button:active{ transform:translateY(0); }
html[data-theme="light"] button.ghost{ background:rgba(14,165,183,.10); color:#0e7490; border:1px solid rgba(14,165,183,.35); box-shadow:none; }
html[data-theme="light"] button.ghost:hover{ background:rgba(14,165,183,.18); box-shadow:0 0 14px rgba(14,165,183,.22); }
html[data-theme="light"] button.danger{ background:linear-gradient(135deg,#fb7185,#e11d48); color:#fff; box-shadow:0 6px 16px rgba(225,29,72,.30); }
html[data-theme="light"] button.danger:hover{ filter:brightness(1.05); box-shadow:0 8px 24px rgba(225,29,72,.40); }

/* ---------- 16.6 表单控件 ---------- */
html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] textarea{
  background:rgba(255,255,255,.85); border:1px solid rgba(120,170,255,.35); color:var(--ink); border-radius:10px;
}
html[data-theme="light"] input:focus,
html[data-theme="light"] select:focus,
html[data-theme="light"] textarea:focus{
  border-color:#0ea5b7; box-shadow:0 0 0 3px rgba(14,165,183,.18), 0 0 14px rgba(14,165,183,.12);
}

/* ---------- 16.7 选项卡 ---------- */
html[data-theme="light"] .tabs{ background:rgba(255,255,255,.7); border-color:rgba(120,170,255,.30); }
html[data-theme="light"] .tab,
html[data-theme="light"] .tab-btn{ color:#41566f; border:1px solid transparent; transition:.15s; }
html[data-theme="light"] .tab:hover,
html[data-theme="light"] .tab-btn:hover{ color:var(--ink); background:rgba(14,165,183,.10); }
html[data-theme="light"] .tab.active,
html[data-theme="light"] .tab-btn.active{
  color:#fff; font-weight:700;
  background:linear-gradient(135deg,#0ea5b7,#2563eb); box-shadow:0 4px 14px rgba(14,165,183,.30);
}

/* ---------- 16.8 表格 ---------- */
html[data-theme="light"] table{ border-collapse:separate; border-spacing:0; }
html[data-theme="light"] th{
  background:linear-gradient(180deg, rgba(14,165,183,.12), rgba(14,165,183,.04));
  color:#0e7490; border-bottom:1px solid rgba(14,165,183,.25);
  font-weight:600; letter-spacing:.4px; text-transform:uppercase; font-size:11.5px;
}
html[data-theme="light"] td{ border-bottom:1px solid rgba(120,170,255,.14); }
html[data-theme="light"] tbody tr{ transition:background .15s, box-shadow .15s; }
html[data-theme="light"] tbody tr:nth-child(even){ background:rgba(120,170,255,.05); }
html[data-theme="light"] tbody tr:hover{ background:rgba(14,165,183,.08); box-shadow:inset 3px 0 0 #0ea5b7; }

/* ---------- 16.9 标签 / 徽章 ---------- */
html[data-theme="light"] .tag{ background:rgba(14,165,183,.12); color:#0e7490; border:1px solid rgba(14,165,183,.32); }
html[data-theme="light"] .panel h3 .tag{ color:#0e7490; background:rgba(14,165,183,.14); border:1px solid rgba(14,165,183,.34); }
html[data-theme="light"] .badge.ok{ background:rgba(16,157,107,.12); color:#0f9d6b; border:1px solid rgba(16,157,107,.4); }
html[data-theme="light"] .badge.warn{ background:rgba(201,138,0,.12); color:#b97d00; border:1px solid rgba(201,138,0,.4); }
html[data-theme="light"] .badge.danger{ background:rgba(225,29,72,.10); color:#e11d48; border:1px solid rgba(225,29,72,.4); }

/* ---------- 16.10 弹窗 ---------- */
html[data-theme="light"] .modal-overlay{ background:rgba(20,40,70,.30); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
html[data-theme="light"] .modal{
  background:linear-gradient(160deg, rgba(255,255,255,.96), rgba(246,250,255,.98));
  backdrop-filter:blur(36px) saturate(175%); -webkit-backdrop-filter:blur(36px) saturate(175%);
  border:1px solid rgba(120,170,255,.30);
  box-shadow:0 24px 60px rgba(31,72,120,.22), 0 0 40px rgba(14,165,183,.08), inset 0 0 0 1px rgba(14,165,183,.05);
  border-radius:18px; animation:evoModalIn .22s ease;
}

/* ---------- 16.11 登录页（极光玻璃卡） ---------- */
html[data-theme="light"] .login-bg{
  background:
    radial-gradient(1200px 600px at 18% -10%, rgba(14,165,183,.16), transparent 60%),
    radial-gradient(1000px 520px at 102% 112%, rgba(124,58,237,.18), transparent 55%),
    linear-gradient(135deg,#eef4fb,#e3edfb);
  position:relative; overflow:hidden;
}
html[data-theme="light"] .login-bg::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(80,130,200,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80,130,200,.07) 1px, transparent 1px);
  background-size:46px 46px,46px 46px;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 40%, #000 0%, transparent 80%);
          mask-image:radial-gradient(120% 100% at 50% 40%, #000 0%, transparent 80%);
  animation:evoGridDrift 22s linear infinite;
}
html[data-theme="light"] .login-wrap{
  background:linear-gradient(160deg, rgba(255,255,255,.9), rgba(247,251,255,.94));
  backdrop-filter:blur(40px) saturate(175%); -webkit-backdrop-filter:blur(40px) saturate(175%);
  border:1px solid rgba(120,170,255,.30);
  box-shadow:0 24px 60px rgba(31,72,120,.18), 0 0 50px rgba(14,165,183,.10);
  border-radius:20px; position:relative; overflow:hidden; animation:evoFloatIn .5s ease both;
}
html[data-theme="light"] .login-wrap::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#0ea5b7,#7c3aed,#2563eb);
}
html[data-theme="light"] .login-wrap .lg-mark{
  background:linear-gradient(135deg,#22b8cf,#7c3aed); color:#fff; box-shadow:0 0 18px rgba(14,165,183,.35);
}

/* ---------- 16.12 滚动条 / 通知 ---------- */
html[data-theme="light"] ::-webkit-scrollbar{ width:10px; height:10px; }
html[data-theme="light"] ::-webkit-scrollbar-track{ background:transparent; }
html[data-theme="light"] ::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(14,165,183,.5), rgba(124,58,237,.5));
  border-radius:8px; border:2px solid transparent; background-clip:padding-box;
}
html[data-theme="light"] ::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, rgba(14,165,183,.8), rgba(124,58,237,.8));
  background-clip:padding-box;
}
html[data-theme="light"] .notif-panel,
html[data-theme="light"] .notif-item.unread{ backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px); }
html[data-theme="light"] .notif-item:hover{ background:rgba(14,165,183,.08); }
html[data-theme="light"] .alert,
html[data-theme="light"] .info{
  border:1px solid rgba(120,170,255,.25); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}

/* ---------- 16.13 浅色动效降级 ---------- */
@media (prefers-reduced-motion: reduce){
  html[data-theme="light"] body::before,
  html[data-theme="light"] .login-bg::before{ animation:none; }
  html[data-theme="light"] .modal,
  html[data-theme="light"] .login-wrap{ animation:none; }
  html[data-theme="light"] .panel,
  html[data-theme="light"] .card,
  html[data-theme="light"] .nav-item{ transition:background .18s,color .18s,box-shadow .18s; }
  html[data-theme="light"] .panel:hover,
  html[data-theme="light"] .card:hover{ transform:none; }
  html[data-theme="light"] .nav-item:hover{ transform:none; }
  html[data-theme="light"] button::after{ display:none; }
}


/* ---------- 17. 主题切换平滑过渡 EVO-TECHUI-V1.3 ---------- */
/* 仅在显式切换（toggleTheme）时由 JS 给 <html> 加 .theme-anim，避免首屏/系统联动时误触发动画 */
html.theme-anim, html.theme-anim *{
  transition: background-color .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease, fill .35s ease !important;
}
@media (prefers-reduced-motion: reduce){
  html.theme-anim, html.theme-anim *{ transition: none !important; }
}


/* ---------- 18. 通用列表「选中行」高亮 EVO-GEN-SELROW-V1 ---------- */
html[data-theme="dark"] #glist table tbody tr.selected{
  background: linear-gradient(90deg, rgba(56,189,248,.16), rgba(56,189,248,.04) 45%, transparent);
  box-shadow: inset 3px 0 0 #38bdf8;
}
html[data-theme="light"] #glist table tbody tr.selected{
  background: linear-gradient(90deg, rgba(37,99,235,.12), rgba(37,99,235,.03) 45%, transparent);
  box-shadow: inset 3px 0 0 #2563eb;
}

/* ===== 19. 通用列表「行操作按钮」hover 浮现（减少视觉噪音） EVO-GEN-ROWACT-V1 ===== */
/* 默认降低操作按钮不透明度，悬浮整行时全亮；保留 0.42 可见度，触屏无 hover 仍可操作 */
html[data-theme="dark"] #glist table tbody td.gact-cell .btn-sm,
html[data-theme="light"] #glist table tbody td.gact-cell .btn-sm{
  opacity:.42;
  transition: opacity .18s ease, box-shadow .18s ease, transform .18s ease;
}
html[data-theme="dark"] #glist table tbody tr:hover td.gact-cell .btn-sm,
html[data-theme="light"] #glist table tbody tr:hover td.gact-cell .btn-sm{
  opacity:1;
}
@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] #glist table tbody td.gact-cell .btn-sm,
  html[data-theme="light"] #glist table tbody td.gact-cell .btn-sm{ transition:none; }
}

/* ===== 19b. 资产模块「行操作按钮」hover 浮现（与通用列表一致，减少视觉噪音） EVO-ASSET-ROWACT-V1 ===== */
html[data-theme="dark"] #glist table.asset-table tbody td.col-act .btn-sm,
html[data-theme="light"] #glist table.asset-table tbody td.col-act .btn-sm{
  opacity:.42;
  transition: opacity .18s ease, box-shadow .18s ease, transform .18s ease;
}
html[data-theme="dark"] #glist table.asset-table tbody tr:hover td.col-act .btn-sm,
html[data-theme="light"] #glist table.asset-table tbody tr:hover td.col-act .btn-sm{
  opacity:1;
}
@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] #glist table.asset-table tbody td.col-act .btn-sm,
  html[data-theme="light"] #glist table.asset-table tbody td.col-act .btn-sm{ transition:none; }
}

/* ===== 20. 列表行 hover 整行轻微高亮底色（与选中高亮区分） EVO-GEN-ROWHOVER-V1 ===== */
/* hover = 纯整行淡色填充（无左光条），与 §18 选中态（渐变+左光条）明显区分；
   选中行 hover 时仍以选中态为主，不被弱填充盖过 */
html[data-theme="dark"] #glist table tbody tr:hover{
  background:rgba(34,211,238,.06);
  box-shadow:none;
}
html[data-theme="light"] #glist table tbody tr:hover{
  background:rgba(14,165,183,.07);
  box-shadow:none;
}
html[data-theme="dark"] #glist table tbody tr.selected:hover{
  background:linear-gradient(90deg, rgba(56,189,248,.20), rgba(56,189,248,.05) 45%, transparent);
  box-shadow:inset 3px 0 0 #38bdf8;
}
html[data-theme="light"] #glist table tbody tr.selected:hover{
  background:linear-gradient(90deg, rgba(37,99,235,.16), rgba(37,99,235,.04) 45%, transparent);
  box-shadow:inset 3px 0 0 #2563eb;
}
/* ===== 20b. 列表单元格文字完整显示（line-height + 长串换行，避免溢出/裁切） EVO-CELL-TEXTFIT-V1 ===== */
html[data-theme="dark"] #glist table tbody td,
html[data-theme="light"] #glist table tbody td{
  line-height:1.5;
  overflow-wrap:break-word;
}

/* ===== 21. 仪表盘图表霓虹化重绘（纯 SVG/CSS 发光层，零 JS 改动） EVO-DASH-NEON-V1 ===== */
/* 评分环：描边发光 + 数字霓虹辉光；按 ok/warn/bad 三级分色发光 */
html[data-theme="dark"] .evo-score-ring .ring-bg{ stroke:rgba(34,211,238,.16); }
html[data-theme="dark"] .evo-score-ring .ring-fg{ filter:drop-shadow(0 0 7px rgba(52,211,153,.75)); }
html[data-theme="dark"] .evo-score-ring.lv-warn .ring-fg{ filter:drop-shadow(0 0 7px rgba(251,191,36,.78)); }
html[data-theme="dark"] .evo-score-ring.lv-bad  .ring-fg{ filter:drop-shadow(0 0 8px rgba(251,113,133,.82)); }
html[data-theme="dark"] .evo-score-ring .rs-n{ text-shadow:0 0 14px rgba(34,211,238,.55); }
html[data-theme="light"] .evo-score-ring .ring-bg{ stroke:rgba(14,165,183,.18); }
html[data-theme="light"] .evo-score-ring .ring-fg{ filter:drop-shadow(0 0 6px rgba(15,157,107,.55)); }
html[data-theme="light"] .evo-score-ring.lv-warn .ring-fg{ filter:drop-shadow(0 0 6px rgba(185,125,0,.6)); }
html[data-theme="light"] .evo-score-ring.lv-bad  .ring-fg{ filter:drop-shadow(0 0 7px rgba(225,29,72,.6)); }
html[data-theme="light"] .evo-score-ring .rs-n{ text-shadow:0 0 9px rgba(14,165,183,.4); }

/* 日历柱状图：青色霓虹渐变 + 外发光；高值(hot)转琥珀辉光 */
html[data-theme="dark"] .evo-calbar{
  background:linear-gradient(180deg,#67e8f9,#06b6d4);
  box-shadow:0 0 9px rgba(34,211,238,.55);
}
html[data-theme="dark"] .evo-calbar.hot{
  background:linear-gradient(180deg,#fcd34d,#f59e0b);
  box-shadow:0 0 11px rgba(251,191,36,.62);
}
html[data-theme="dark"] .evo-calcol:hover .evo-calbar{ box-shadow:0 0 14px rgba(34,211,238,.8); }
html[data-theme="light"] .evo-calbar{
  background:linear-gradient(180deg,#5fd6e6,#0ea5b7);
  box-shadow:0 0 8px rgba(14,165,183,.45);
}
html[data-theme="light"] .evo-calbar.hot{
  background:linear-gradient(180deg,#f5c542,#d97706);
  box-shadow:0 0 10px rgba(185,125,0,.5);
}

/* KPI 数字：按色调霓虹辉光 */
html[data-theme="dark"] .evo-kpi .k-n{ text-shadow:0 0 10px rgba(34,211,238,.35); }
html[data-theme="dark"] .evo-kpi.tone-ok .k-n{ text-shadow:0 0 11px rgba(52,211,153,.6); }
html[data-theme="dark"] .evo-kpi.tone-warn .k-n{ text-shadow:0 0 11px rgba(251,191,36,.6); }
html[data-theme="dark"] .evo-kpi.tone-bad .k-n{ text-shadow:0 0 12px rgba(251,113,133,.65); }
html[data-theme="light"] .evo-kpi .k-n{ text-shadow:0 0 8px rgba(14,165,183,.3); }
html[data-theme="light"] .evo-kpi.tone-ok .k-n{ text-shadow:0 0 9px rgba(15,157,107,.5); }
html[data-theme="light"] .evo-kpi.tone-warn .k-n{ text-shadow:0 0 9px rgba(185,125,0,.5); }
html[data-theme="light"] .evo-kpi.tone-bad .k-n{ text-shadow:0 0 10px rgba(225,29,72,.5); }

/* 健康度三色迷你条：分色外发光 */
html[data-theme="dark"] .evo-hbar .s-ok{   box-shadow:0 0 6px rgba(52,211,153,.55); }
html[data-theme="dark"] .evo-hbar .s-warn{ box-shadow:0 0 6px rgba(251,191,36,.55); }
html[data-theme="dark"] .evo-hbar .s-bad{  box-shadow:0 0 6px rgba(251,113,133,.6); }
html[data-theme="light"] .evo-hbar .s-ok{   box-shadow:0 0 5px rgba(15,157,107,.5); }
html[data-theme="light"] .evo-hbar .s-warn{ box-shadow:0 0 5px rgba(185,125,0,.5); }
html[data-theme="light"] .evo-hbar .s-bad{  box-shadow:0 0 5px rgba(225,29,72,.5); }

/* 健康卡达标率数字 / 老化·严重度桶数字：轻量辉光 */
html[data-theme="dark"] .evo-hcard .hc-rate{ text-shadow:0 0 9px rgba(34,211,238,.3); }
html[data-theme="dark"] .evo-bucket .b-n{ text-shadow:0 0 9px rgba(34,211,238,.28); }
html[data-theme="dark"] .evo-bucket.sev-critical .b-n,
html[data-theme="dark"] .evo-bucket.sev-high .b-n,
html[data-theme="dark"] .evo-bucket.age .b-n{ text-shadow:0 0 11px rgba(251,113,133,.55); }
html[data-theme="light"] .evo-hcard .hc-rate{ text-shadow:0 0 8px rgba(14,165,183,.3); }
html[data-theme="light"] .evo-bucket .b-n{ text-shadow:0 0 8px rgba(14,165,183,.22); }

/* ===== 21b. 评分环「呼吸式微脉冲」辉光动画（纯 CSS，配 reduced-motion 降级） EVO-RING-PULSE-V1 ===== */
/* 仅对描边 drop-shadow 与数字 text-shadow 做呼吸，不碰 stroke/布局；reduced-motion 下关闭动画、保留 §21 静态辉光 */
@keyframes evo-ring-pulse-ok{
  0%,100%{ filter:drop-shadow(0 0 6px rgba(52,211,153,.50)); }
  50%    { filter:drop-shadow(0 0 14px rgba(52,211,153,.95)); }
}
@keyframes evo-ring-pulse-warn{
  0%,100%{ filter:drop-shadow(0 0 6px rgba(251,191,36,.50)); }
  50%    { filter:drop-shadow(0 0 14px rgba(251,191,36,.95)); }
}
@keyframes evo-ring-pulse-bad{
  0%,100%{ filter:drop-shadow(0 0 7px rgba(251,113,133,.55)); }
  50%    { filter:drop-shadow(0 0 15px rgba(251,113,133,1)); }
}
@keyframes evo-ring-pulse-ok-l{
  0%,100%{ filter:drop-shadow(0 0 5px rgba(15,157,107,.45)); }
  50%    { filter:drop-shadow(0 0 12px rgba(15,157,107,.85)); }
}
@keyframes evo-ring-pulse-warn-l{
  0%,100%{ filter:drop-shadow(0 0 5px rgba(185,125,0,.48)); }
  50%    { filter:drop-shadow(0 0 12px rgba(185,125,0,.88)); }
}
@keyframes evo-ring-pulse-bad-l{
  0%,100%{ filter:drop-shadow(0 0 6px rgba(225,29,72,.48)); }
  50%    { filter:drop-shadow(0 0 13px rgba(225,29,72,.9)); }
}
@keyframes evo-ring-num-d{
  0%,100%{ text-shadow:0 0 10px rgba(34,211,238,.4); }
  50%    { text-shadow:0 0 18px rgba(34,211,238,.72); }
}
@keyframes evo-ring-num-l{
  0%,100%{ text-shadow:0 0 8px rgba(14,165,183,.32); }
  50%    { text-shadow:0 0 15px rgba(14,165,183,.6); }
}
html[data-theme="dark"] .evo-score-ring .ring-fg{ animation:evo-ring-pulse-ok 3.4s ease-in-out infinite; }
html[data-theme="dark"] .evo-score-ring.lv-warn .ring-fg{ animation-name:evo-ring-pulse-warn; }
html[data-theme="dark"] .evo-score-ring.lv-bad  .ring-fg{ animation-name:evo-ring-pulse-bad; }
html[data-theme="light"] .evo-score-ring .ring-fg{ animation:evo-ring-pulse-ok-l 3.4s ease-in-out infinite; }
html[data-theme="light"] .evo-score-ring.lv-warn .ring-fg{ animation-name:evo-ring-pulse-warn-l; }
html[data-theme="light"] .evo-score-ring.lv-bad  .ring-fg{ animation-name:evo-ring-pulse-bad-l; }
html[data-theme="dark"]  .evo-score-ring .rs-n{ animation:evo-ring-num-d 3.4s ease-in-out infinite; }
html[data-theme="light"] .evo-score-ring .rs-n{ animation:evo-ring-num-l 3.4s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce){
  html[data-theme="dark"] .evo-score-ring .ring-fg,
  html[data-theme="light"] .evo-score-ring .ring-fg,
  .evo-score-ring .rs-n{ animation:none !important; }
}

/* ===== 22. 会议模块科技感打磨（玻璃面板 + 霓虹选中项，对齐 §4/§3 语言） EVO-MTG-TECH-V1 ===== */
/* 仅作用于深色科技主题；浅色主题沿用 styles.css 传统基线，不受影响。访客等通用 CRUD 模块已由 §18-§20 覆盖，此处不再处理。 */
html[data-theme="dark"] .mtg-nav,
html[data-theme="dark"] .mtg-page{
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.012)), rgba(12,19,34,.55);
  backdrop-filter:blur(30px) saturate(165%); -webkit-backdrop-filter:blur(30px) saturate(165%);
  border:1px solid rgba(120,180,255,.14);
  box-shadow:0 10px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="dark"] .mtg-nav-item{
  border-left:3px solid transparent; transition:background .18s,box-shadow .18s,color .18s;
}
html[data-theme="dark"] .mtg-nav-item:hover{
  background:rgba(34,211,238,.08); box-shadow:inset 0 0 16px rgba(34,211,238,.06);
}
html[data-theme="dark"] .mtg-nav-item.active{
  background:linear-gradient(90deg, rgba(34,211,238,.16), rgba(167,139,250,.05));
  border-left-color:#22d3ee; color:#fff;
  box-shadow:inset 0 0 20px rgba(34,211,238,.12);
}
html[data-theme="dark"] .mtg-title,
html[data-theme="dark"] .mtg-title-input{ text-shadow:0 0 16px rgba(34,211,238,.18); }
html[data-theme="dark"] .mtg-minutes-edit:focus,
html[data-theme="dark"] .mtg-meta-edit input:focus,
html[data-theme="dark"] .mtg-meta-edit select:focus{
  border-color:#22d3ee; box-shadow:0 0 0 3px rgba(34,211,238,.18), 0 0 16px rgba(34,211,238,.15);
}
html[data-theme="dark"] .mtg-checklist{
  border-color:rgba(120,180,255,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}

/* ===== EVO-LOGIN-V2 · 科技感登录页（前沿强化：赛博网格地面 + 全息故障字 + 矩阵雨 + 能量核心 + 流光边框 + CRT） ===== */
/* ---- 深色主题 ---- */
html[data-theme="dark"] .login-bg{
  position:fixed; inset:0; min-height:100vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; z-index:0;
  background:
    radial-gradient(1000px 700px at 12% 8%, rgba(56,189,248,.20), transparent 60%),
    radial-gradient(1000px 800px at 88% 92%, rgba(192,38,211,.20), transparent 60%),
    linear-gradient(135deg,#05070f 0%, #0a0f22 45%, #080b1a 100%);
}
html[data-theme="dark"] .login-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.9; }
html[data-theme="dark"] .login-floor{
  position:absolute; left:50%; bottom:-12%; width:300%; height:80%;
  transform:translateX(-50%) perspective(360px) rotateX(74deg); transform-origin:50% 100%;
  z-index:0; pointer-events:none; opacity:.55;
  background-image:
    linear-gradient(rgba(34,211,238,.55) 1px, transparent 1px),
    linear-gradient(90deg, rgba(192,38,211,.40) 1px, transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:linear-gradient(to top, #000 8%, transparent 82%);
  mask-image:linear-gradient(to top, #000 8%, transparent 82%);
  animation:lgFloor 4.5s linear infinite;
}
html[data-theme="dark"] .login-core{ position:absolute; left:50%; top:50%; width:560px; height:560px; transform:translate(-50%,-50%); z-index:1; pointer-events:none; opacity:.5; }
html[data-theme="dark"] .login-core::after{ content:""; position:absolute; left:50%; top:50%; width:210px; height:210px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(34,211,238,.20), rgba(34,211,238,0) 70%); filter:blur(10px); animation:lgCorePulse 6s ease-in-out infinite; }
html[data-theme="dark"] .lc-ring{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(34,211,238,.22); box-shadow:0 0 16px rgba(34,211,238,.10) inset, 0 0 20px rgba(34,211,238,.08); filter:blur(.6px); }
html[data-theme="dark"] .lc-r1{ border-color:rgba(34,211,238,.26); }
html[data-theme="dark"] .lc-r2{ inset:46px; border-color:rgba(192,38,211,.22); }
html[data-theme="dark"] .lc-r3{ inset:92px; border-color:rgba(129,140,248,.20); }
html[data-theme="dark"] .lc-glow{ position:absolute; inset:38%; border-radius:50%; background:radial-gradient(circle, rgba(34,211,238,.30), transparent 70%); filter:blur(10px); }
html[data-theme="dark"] .login-aurora{ position:absolute; border-radius:50%; filter:blur(72px); opacity:.5; z-index:0; pointer-events:none; }
html[data-theme="dark"] .login-aurora-1{ width:560px;height:560px; left:-140px; top:-160px; background:radial-gradient(circle,#22d3ee,transparent 65%); animation:lgAurora1 16s ease-in-out infinite; }
html[data-theme="dark"] .login-aurora-2{ width:640px;height:640px; right:-180px; bottom:-200px; background:radial-gradient(circle,#c026d3,transparent 65%); animation:lgAurora2 20s ease-in-out infinite; }
html[data-theme="dark"] .login-aurora-3{ width:440px;height:440px; left:55%; top:28%; background:radial-gradient(circle,#38bdf8,transparent 65%); opacity:.4; animation:lgAurora3 18s ease-in-out infinite; }
html[data-theme="dark"] .login-scan{ position:absolute; left:0; right:0; height:2px; top:0; z-index:3; pointer-events:none;
  background:linear-gradient(90deg,transparent, rgba(34,211,238,.9), transparent);
  box-shadow:0 0 18px rgba(34,211,238,.7); animation:lgScan 7s linear infinite; opacity:.55; }
html[data-theme="dark"] .login-crt{ position:absolute; inset:0; z-index:5; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 3px);
  animation:lgCrtFlicker 4s ease-in-out infinite; }
html[data-theme="dark"] .login-vignette{ position:absolute; inset:0; z-index:4; pointer-events:none;
  background:radial-gradient(ellipse 120% 100% at 50% 50%, transparent 52%, rgba(0,0,0,.6) 100%); }

html[data-theme="dark"] .login-wrap{
  position:relative; z-index:2; width:430px; max-width:92vw; padding:38px 38px 32px; border-radius:22px;
  background:linear-gradient(160deg, rgba(15,22,42,.66), rgba(9,14,30,.56));
  border:1px solid rgba(34,211,238,.22);
  box-shadow:0 30px 90px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.06), 0 0 26px rgba(34,211,238,.10);
  -webkit-backdrop-filter:blur(36px) saturate(175%); backdrop-filter:blur(36px) saturate(175%);
  animation:lgCardIn .7s cubic-bezier(.2,.8,.25,1) both;
}
html[data-theme="dark"] .login-wrap::before{
  content:""; position:absolute; inset:-2px; border-radius:24px; padding:2px; pointer-events:none; z-index:-1;
  background:conic-gradient(from 0deg, transparent 0deg, #22d3ee 70deg, #c026d3 140deg, #818cf8 210deg, transparent 320deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;

}
html[data-theme="dark"] .lg-hero{ text-align:center; margin:2px 0 6px; }
html[data-theme="dark"] .lg-glitch{
  position:relative; display:inline-block; font-size:48px; font-weight:900; letter-spacing:10px; padding-left:10px;
  color:#eafcff; text-shadow:0 0 18px rgba(34,211,238,.6), 0 0 42px rgba(192,38,211,.35);
}
html[data-theme="dark"] .lg-glitch::before, html[data-theme="dark"] .lg-glitch::after{
  content:attr(data-text); position:absolute; left:0; top:0; width:100%; height:100%; overflow:hidden;
}
html[data-theme="dark"] .lg-glitch::before{ color:#22d3ee; transform:translate(-2px,0); clip-path:inset(0 0 0 0); mix-blend-mode:screen; animation:lgGlitch 4.6s infinite linear alternate; }
html[data-theme="dark"] .lg-glitch::after{ color:#ff3df0; transform:translate(2px,0); clip-path:inset(0 0 0 0); mix-blend-mode:screen; animation:lgGlitch 3.8s infinite linear alternate-reverse; }
html[data-theme="dark"] .lg-top{ display:flex; align-items:center; justify-content:center; gap:14px; margin:4px 0 2px; }
html[data-theme="dark"] .lg-mark{ width:46px;height:46px;border-radius:12px; display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, rgba(34,211,238,.18), rgba(192,38,211,.22));
  border:1px solid rgba(34,211,238,.4); box-shadow:0 0 22px rgba(34,211,238,.35); }
html[data-theme="dark"] .lg-head{ text-align:left; }
html[data-theme="dark"] .lg-title{ font-size:19px; font-weight:800; letter-spacing:.4px; color:#eaf6ff; text-shadow:0 0 18px rgba(34,211,238,.25); }
html[data-theme="dark"] .lg-sub{ font-size:12px; color:#9fb3d4; margin-top:3px; letter-spacing:.3px; }
html[data-theme="dark"] .lg-tagline{ font-size:12px; color:#6ee7e0; margin:10px 0 22px; letter-spacing:2px; opacity:.85; text-align:center; }

html[data-theme="dark"] .lg-field{ position:relative; margin-bottom:20px; }
html[data-theme="dark"] .lg-input{
  width:100%; height:50px; padding:18px 14px 6px; box-sizing:border-box;
  background:rgba(8,14,30,.6); border:1px solid rgba(94,234,212,.16); border-radius:12px;
  color:#eaf6ff; font-size:14px; outline:none; transition:border-color .2s, box-shadow .2s, background .2s; }
html[data-theme="dark"] .lg-input:focus{ border-color:rgba(34,211,238,.7);
  box-shadow:0 0 0 3px rgba(34,211,238,.14), 0 0 18px rgba(34,211,238,.18); background:rgba(8,14,30,.8); }
html[data-theme="dark"] .lg-float{ position:absolute; left:14px; top:16px; color:#7e93b3; font-size:14px; pointer-events:none;
  transition:transform .18s ease, color .18s ease, font-size .18s ease; transform-origin:left center; }
html[data-theme="dark"] .lg-input:focus + .lg-float,
html[data-theme="dark"] .lg-input:not(:placeholder-shown) + .lg-float{ transform:translateY(-12px) scale(.82); color:#5eead4; }
html[data-theme="dark"] .lg-line{ position:absolute; left:12px; right:12px; bottom:0; height:2px; border-radius:2px;
  background:linear-gradient(90deg,#22d3ee,#c026d3,#818cf8); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
html[data-theme="dark"] .lg-input:focus ~ .lg-line{ transform:scaleX(1); }

html[data-theme="dark"] .lg-btn{ position:relative; width:100%; height:50px; margin-top:6px; border:none; border-radius:12px;
  cursor:pointer; font-size:15px; font-weight:700; letter-spacing:1px; color:#04121f;
  background:linear-gradient(135deg,#22d3ee,#38bdf8 45%,#c026d3);
  box-shadow:0 10px 30px rgba(34,211,238,.35), inset 0 1px 0 rgba(255,255,255,.4);
  display:flex; align-items:center; justify-content:center; gap:8px; transition:transform .15s, box-shadow .2s, filter .2s; }
html[data-theme="dark"] .lg-btn:hover{ transform:translateY(-1px); box-shadow:0 14px 38px rgba(192,38,211,.45); filter:brightness(1.05); }
html[data-theme="dark"] .lg-btn:active{ transform:translateY(0); }
html[data-theme="dark"] .lg-btn-ico{ transition:transform .2s; }
html[data-theme="dark"] .lg-btn:hover .lg-btn-ico{ transform:translateX(3px); }

html[data-theme="dark"] .lg-sso{ margin-top:18px; }
html[data-theme="dark"] .lg-divider{ display:flex; align-items:center; gap:12px; color:#6b7e9c; font-size:12px; margin:4px 0 14px; }
html[data-theme="dark"] .lg-divider::before, html[data-theme="dark"] .lg-divider::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg,transparent,rgba(94,234,212,.25),transparent); }
html[data-theme="dark"] .lg-sso-btn{ display:block; text-align:center; width:100%; padding:12px; border-radius:12px; text-decoration:none;
  font-weight:600; font-size:13.5px; color:#cfe9ff; background:rgba(31,95,174,.16); border:1px solid rgba(56,150,220,.35);
  transition:background .2s, box-shadow .2s, transform .15s; }
html[data-theme="dark"] .lg-sso-btn:hover{ background:rgba(31,95,174,.3); box-shadow:0 0 20px rgba(56,150,220,.3); transform:translateY(-1px); }

html[data-theme="dark"] .lg-mfa{ margin-top:8px; }
html[data-theme="dark"] .lg-mfa .hint{ color:#8aa0c0; font-size:12px; margin:0 0 14px; line-height:1.6; }
html[data-theme="dark"] .lg-label{ display:block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#7e93b3; margin-bottom:7px; }
html[data-theme="dark"] .lg-mfa .mf-input{ width:100%; height:52px; text-align:center; letter-spacing:.4em; font-size:20px;
  background:rgba(8,14,30,.6); border:1px solid rgba(94,234,212,.16); border-radius:12px; color:#eaf6ff; outline:none; transition:border-color .2s, box-shadow .2s; }
html[data-theme="dark"] .lg-mfa .mf-input:focus{ border-color:rgba(34,211,238,.7); box-shadow:0 0 0 3px rgba(34,211,238,.14); }
html[data-theme="dark"] .lg-back{ margin-top:10px; background:transparent; border:1px solid rgba(94,234,212,.2); color:#8aa0c0; }
html[data-theme="dark"] .lg-back:hover{ color:#cfe9ff; border-color:rgba(94,234,212,.4); }

html[data-theme="dark"] .lg-foot{ display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:22px; }
html[data-theme="dark"] .lg-lang-label{ font-size:12px; color:#7e93b3; }
html[data-theme="dark"] .lg-foot .lang-select{ background:rgba(8,14,30,.6); border:1px solid rgba(94,234,212,.16); color:#cfe9ff; border-radius:9px; padding:6px 10px; font-size:12.5px; }
html[data-theme="dark"] .lg-err{ color:#fb7185; font-size:12.5px; margin:14px 0 0; min-height:0; text-align:center; }

/* ---- 浅色主题 ---- */
html[data-theme="light"] .login-bg{
  position:fixed; inset:0; min-height:100vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; z-index:0;
  background:
    radial-gradient(1000px 700px at 12% 8%, rgba(56,189,248,.18), transparent 60%),
    radial-gradient(1000px 800px at 88% 92%, rgba(192,38,211,.16), transparent 60%),
    linear-gradient(135deg,#eef4ff 0%, #f6f9ff 50%, #e9f1fb 100%);
}
html[data-theme="light"] .login-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.92; }
html[data-theme="light"] .login-floor{
  position:absolute; left:50%; bottom:-12%; width:300%; height:80%;
  transform:translateX(-50%) perspective(360px) rotateX(74deg); transform-origin:50% 100%;
  z-index:0; pointer-events:none; opacity:.4;
  background-image:
    linear-gradient(rgba(14,165,183,.5) 1px, transparent 1px),
    linear-gradient(90deg, rgba(192,38,211,.3) 1px, transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:linear-gradient(to top, #000 8%, transparent 82%);
  mask-image:linear-gradient(to top, #000 8%, transparent 82%);
  animation:lgFloor 4.5s linear infinite;
}
html[data-theme="light"] .login-core{ position:absolute; left:50%; top:50%; width:560px; height:560px; transform:translate(-50%,-50%); z-index:1; pointer-events:none; opacity:.3; }
html[data-theme="light"] .login-core::after{ content:""; position:absolute; left:50%; top:50%; width:210px; height:210px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(14,165,183,.16), rgba(14,165,183,0) 70%); filter:blur(10px); animation:lgCorePulse 6s ease-in-out infinite; }
html[data-theme="light"] .lc-ring{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(14,165,183,.22); box-shadow:0 0 14px rgba(14,165,183,.08) inset; filter:blur(.6px); }
html[data-theme="light"] .lc-r1{ border-color:rgba(14,165,183,.26); }
html[data-theme="light"] .lc-r2{ inset:46px; border-color:rgba(192,38,211,.20); }
html[data-theme="light"] .lc-r3{ inset:92px; border-color:rgba(99,102,241,.18); }
html[data-theme="light"] .lc-glow{ position:absolute; inset:38%; border-radius:50%; background:radial-gradient(circle, rgba(14,165,183,.25), transparent 70%); filter:blur(10px); }
html[data-theme="light"] .login-aurora{ position:absolute; border-radius:50%; filter:blur(72px); opacity:.45; z-index:0; pointer-events:none; }
html[data-theme="light"] .login-aurora-1{ width:560px;height:560px; left:-140px; top:-160px; background:radial-gradient(circle,#22d3ee,transparent 65%); animation:lgAurora1 16s ease-in-out infinite; }
html[data-theme="light"] .login-aurora-2{ width:640px;height:640px; right:-180px; bottom:-200px; background:radial-gradient(circle,#c026d3,transparent 65%); animation:lgAurora2 20s ease-in-out infinite; }
html[data-theme="light"] .login-aurora-3{ width:440px;height:440px; left:55%; top:28%; background:radial-gradient(circle,#38bdf8,transparent 65%); opacity:.35; animation:lgAurora3 18s ease-in-out infinite; }
html[data-theme="light"] .login-scan{ position:absolute; left:0; right:0; height:2px; top:0; z-index:3; pointer-events:none;
  background:linear-gradient(90deg,transparent, rgba(14,165,183,.8), transparent);
  box-shadow:0 0 18px rgba(14,165,183,.5); animation:lgScan 7s linear infinite; opacity:.45; }
html[data-theme="light"] .login-crt{ position:absolute; inset:0; z-index:5; pointer-events:none; opacity:.22; mix-blend-mode:multiply;
  background:repeating-linear-gradient(to bottom, rgba(0,0,0,.03) 0 1px, transparent 1px 3px);
  animation:lgCrtFlicker 4s ease-in-out infinite; }
html[data-theme="light"] .login-vignette{ position:absolute; inset:0; z-index:4; pointer-events:none;
  background:radial-gradient(ellipse 120% 100% at 50% 50%, transparent 55%, rgba(20,40,80,.18) 100%); }

html[data-theme="light"] .login-wrap{
  position:relative; z-index:2; width:430px; max-width:92vw; padding:38px 38px 32px; border-radius:22px;
  background:linear-gradient(160deg, rgba(255,255,255,.86), rgba(247,250,255,.78));
  border:1px solid rgba(14,165,183,.22);
  box-shadow:0 30px 70px rgba(31,80,160,.18), inset 0 1px 0 rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(36px) saturate(175%); backdrop-filter:blur(36px) saturate(175%);
  animation:lgCardIn .7s cubic-bezier(.2,.8,.25,1) both; }
html[data-theme="light"] .login-wrap::before{
  content:""; position:absolute; inset:-2px; border-radius:24px; padding:2px; pointer-events:none; z-index:-1;
  background:conic-gradient(from 0deg, transparent 0deg, #0ea5b7 70deg, #c026d3 140deg, #6366f1 210deg, transparent 320deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
 }
html[data-theme="light"] .lg-hero{ text-align:center; margin:2px 0 6px; }
html[data-theme="light"] .lg-glitch{ position:relative; display:inline-block; font-size:48px; font-weight:900; letter-spacing:10px; padding-left:10px; color:#0c2236; text-shadow:0 0 16px rgba(14,165,183,.4), 0 0 38px rgba(192,38,211,.25); }
html[data-theme="light"] .lg-glitch::before, html[data-theme="light"] .lg-glitch::after{ content:attr(data-text); position:absolute; left:0; top:0; width:100%; height:100%; overflow:hidden; }
html[data-theme="light"] .lg-glitch::before{ color:#0ea5b7; transform:translate(-2px,0); clip-path:inset(0 0 0 0); mix-blend-mode:multiply; animation:lgGlitch 4.6s infinite linear alternate; }
html[data-theme="light"] .lg-glitch::after{ color:#c026d3; transform:translate(2px,0); clip-path:inset(0 0 0 0); mix-blend-mode:multiply; animation:lgGlitch 3.8s infinite linear alternate-reverse; }
html[data-theme="light"] .lg-top{ display:flex; align-items:center; justify-content:center; gap:14px; margin:4px 0 2px; }
html[data-theme="light"] .lg-mark{ width:46px;height:46px;border-radius:12px; display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, rgba(14,165,183,.16), rgba(192,38,211,.2));
  border:1px solid rgba(14,165,183,.4); box-shadow:0 0 18px rgba(14,165,183,.25); }
html[data-theme="light"] .lg-head{ text-align:left; }
html[data-theme="light"] .lg-title{ font-size:19px; font-weight:800; letter-spacing:.4px; color:#0d2236; }
html[data-theme="light"] .lg-sub{ font-size:12px; color:#5a6e88; margin-top:3px; }
html[data-theme="light"] .lg-tagline{ font-size:12px; color:#0d9488; margin:10px 0 22px; letter-spacing:2px; text-align:center; }

html[data-theme="light"] .lg-field{ position:relative; margin-bottom:20px; }
html[data-theme="light"] .lg-input{ width:100%; height:50px; padding:18px 14px 6px; box-sizing:border-box;
  background:rgba(255,255,255,.8); border:1px solid rgba(14,165,183,.25); border-radius:12px; color:#0d2236; font-size:14px; outline:none; transition:border-color .2s, box-shadow .2s; }
html[data-theme="light"] .lg-input:focus{ border-color:rgba(14,165,183,.75); box-shadow:0 0 0 3px rgba(14,165,183,.14), 0 0 16px rgba(14,165,183,.16); }
html[data-theme="light"] .lg-float{ position:absolute; left:14px; top:16px; color:#5a6e88; font-size:14px; pointer-events:none; transition:transform .18s ease, color .18s ease; transform-origin:left center; }
html[data-theme="light"] .lg-input:focus + .lg-float,
html[data-theme="light"] .lg-input:not(:placeholder-shown) + .lg-float{ transform:translateY(-12px) scale(.82); color:#0d9488; }
html[data-theme="light"] .lg-line{ position:absolute; left:12px; right:12px; bottom:0; height:2px; border-radius:2px; background:linear-gradient(90deg,#0ea5b7,#c026d3,#6366f1); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
html[data-theme="light"] .lg-input:focus ~ .lg-line{ transform:scaleX(1); }
html[data-theme="light"] .lg-btn{ position:relative; width:100%; height:50px; margin-top:6px; border:none; border-radius:12px; cursor:pointer; font-size:15px; font-weight:700; letter-spacing:1px; color:#fff; background:linear-gradient(135deg,#0ea5b7,#38bdf8 45%,#c026d3); box-shadow:0 10px 26px rgba(14,165,183,.35), inset 0 1px 0 rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; gap:8px; transition:transform .15s, box-shadow .2s, filter .2s; }
html[data-theme="light"] .lg-btn:hover{ transform:translateY(-1px); box-shadow:0 14px 34px rgba(192,38,211,.4); filter:brightness(1.04); }
html[data-theme="light"] .lg-btn-ico{ transition:transform .2s; }
html[data-theme="light"] .lg-btn:hover .lg-btn-ico{ transform:translateX(3px); }
html[data-theme="light"] .lg-sso{ margin-top:18px; }
html[data-theme="light"] .lg-divider{ display:flex; align-items:center; gap:12px; color:#5a6e88; font-size:12px; margin:4px 0 14px; }
html[data-theme="light"] .lg-divider::before, html[data-theme="light"] .lg-divider::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg,transparent,rgba(14,165,183,.3),transparent); }
html[data-theme="light"] .lg-sso-btn{ display:block; text-align:center; width:100%; padding:12px; border-radius:12px; text-decoration:none; font-weight:600; font-size:13.5px; color:#0c4a6e; background:rgba(14,165,183,.1); border:1px solid rgba(14,165,183,.35); transition:background .2s, box-shadow .2s, transform .15s; }
html[data-theme="light"] .lg-sso-btn:hover{ background:rgba(14,165,183,.2); box-shadow:0 0 18px rgba(14,165,183,.25); transform:translateY(-1px); }
html[data-theme="light"] .lg-mfa{ margin-top:8px; }
html[data-theme="light"] .lg-mfa .hint{ color:#5a6e88; font-size:12px; margin:0 0 14px; line-height:1.6; }
html[data-theme="light"] .lg-label{ display:block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#5a6e88; margin-bottom:7px; }
html[data-theme="light"] .lg-mfa .mf-input{ width:100%; height:52px; text-align:center; letter-spacing:.4em; font-size:20px; background:rgba(255,255,255,.85); border:1px solid rgba(14,165,183,.25); border-radius:12px; color:#0d2236; outline:none; transition:border-color .2s, box-shadow .2s; }
html[data-theme="light"] .lg-mfa .mf-input:focus{ border-color:rgba(14,165,183,.75); box-shadow:0 0 0 3px rgba(14,165,183,.14); }
html[data-theme="light"] .lg-back{ margin-top:10px; background:transparent; border:1px solid rgba(14,165,183,.25); color:#5a6e88; }
html[data-theme="light"] .lg-back:hover{ color:#0c4a6e; border-color:rgba(14,165,183,.45); }
html[data-theme="light"] .lg-foot{ display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:22px; }
html[data-theme="light"] .lg-lang-label{ font-size:12px; color:#5a6e88; }
html[data-theme="light"] .lg-foot .lang-select{ background:rgba(255,255,255,.85); border:1px solid rgba(14,165,183,.25); color:#0d2236; border-radius:9px; padding:6px 10px; font-size:12.5px; }
html[data-theme="light"] .lg-err{ color:#e11d48; font-size:12.5px; margin:14px 0 0; text-align:center; }

/* ---- 关键帧 ---- */
@keyframes lgAurora1{0%,100%{transform:translate(0,0)}50%{transform:translate(60px,40px)}}
@keyframes lgAurora2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-30px)}}
@keyframes lgAurora3{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,50px)}}
@keyframes lgScan{0%{top:-2%}100%{top:102%}}
@keyframes lgFloor{0%{background-position:0 0}100%{background-position:0 62px}}
@keyframes lgSpin{to{transform:rotate(360deg)}}
@keyframes lgSpinRev{to{transform:rotate(-360deg)}}

@keyframes lgGlitch{
  0%,88%,100%{clip-path:inset(0 0 0 0); transform:translate(0,0);}
  90%{clip-path:inset(10% 0 60% 0); transform:translate(-3px,1px);}
  92%{clip-path:inset(55% 0 12% 0); transform:translate(3px,-1px);}
  94%{clip-path:inset(30% 0 40% 0); transform:translate(-2px,0);}
}
@keyframes lgCrtFlicker{0%,100%{opacity:.45}50%{opacity:.7}}
@keyframes lgCardIn{ from{opacity:0; transform:translateY(18px) scale(.98);} to{opacity:1; transform:none;} }

/* ---- 无障碍：减少动态 ---- */
@media (prefers-reduced-motion:reduce){
  html[data-theme="dark"] .login-floor, html[data-theme="dark"] .login-core .lc-ring, html[data-theme="dark"] .login-aurora, html[data-theme="dark"] .login-scan, html[data-theme="dark"] .login-crt, html[data-theme="dark"] .login-wrap, html[data-theme="dark"] .login-wrap::before, html[data-theme="dark"] .lg-glitch::before, html[data-theme="dark"] .lg-glitch::after,
  html[data-theme="light"] .login-floor, html[data-theme="light"] .login-core .lc-ring, html[data-theme="light"] .login-aurora, html[data-theme="light"] .login-scan, html[data-theme="light"] .login-crt, html[data-theme="light"] .login-wrap, html[data-theme="light"] .login-wrap::before, html[data-theme="light"] .lg-glitch::before, html[data-theme="light"] .lg-glitch::after{
    animation:none !important;
  }
}
/* ===== /EVO-LOGIN-V2 ===== */


/* ===== EVO-MODAL-FORM-V1 · 模态/表单科技感（补齐 CRUD 操作界面，对齐登录页语言） ===== */
/* 深色：模态内输入框玻璃底 + 霓虹聚焦环 */
html[data-theme="dark"] #modalBody input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html[data-theme="dark"] #modalBody select,
html[data-theme="dark"] #modalBody textarea,
html[data-theme="dark"] #gform input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html[data-theme="dark"] #gform select,
html[data-theme="dark"] #gform textarea,
html[data-theme="dark"] .inp{
  background:rgba(10,18,34,.72); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(120,170,255,.22); border-radius:10px; color:var(--ink);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.28);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
html[data-theme="dark"] #modalBody input:focus,
html[data-theme="dark"] #modalBody select:focus,
html[data-theme="dark"] #modalBody textarea:focus,
html[data-theme="dark"] #gform input:focus,
html[data-theme="dark"] #gform select:focus,
html[data-theme="dark"] #gform textarea:focus,
html[data-theme="dark"] .inp:focus{
  outline:none; border-color:rgba(34,211,238,.72);
  box-shadow:0 0 0 3px rgba(34,211,238,.18), 0 0 16px rgba(34,211,238,.28), inset 0 1px 2px rgba(0,0,0,.28);
}
html[data-theme="dark"] #modalBody input[type=checkbox],
html[data-theme="dark"] #gform input[type=checkbox]{ accent-color:#22d3ee; width:auto; }
html[data-theme="dark"] .modal-head{ border-bottom:1px solid rgba(120,170,255,.16); }
html[data-theme="dark"] .modal-foot{ border-top:1px solid rgba(120,170,255,.16); }
html[data-theme="dark"] .modal-x:hover{ color:#22d3ee; background:rgba(34,211,238,.10); box-shadow:0 0 14px rgba(34,211,238,.30); }
html[data-theme="dark"] .modal-actions button{ border-radius:9px; transition:box-shadow .15s ease, transform .1s ease, filter .15s ease; }
html[data-theme="dark"] #modalSubmit{ background:linear-gradient(135deg,#22d3ee,#6366f1); color:#04121f; border:none; font-weight:700; box-shadow:0 6px 18px rgba(34,211,238,.28); }
html[data-theme="dark"] #modalSubmit:hover{ box-shadow:0 8px 26px rgba(34,211,238,.46); transform:translateY(-1px); }
html[data-theme="dark"] .modal-actions button.ghost{ background:transparent; border:1px solid rgba(120,170,255,.28); color:var(--muted); }
html[data-theme="dark"] .modal-actions button.ghost:hover{ color:var(--ink); border-color:rgba(34,211,238,.5); box-shadow:0 0 14px rgba(34,211,238,.18); }

/* 浅色：模态内输入框 */
html[data-theme="light"] #modalBody input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html[data-theme="light"] #modalBody select,
html[data-theme="light"] #modalBody textarea,
html[data-theme="light"] #gform input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html[data-theme="light"] #gform select,
html[data-theme="light"] #gform textarea,
html[data-theme="light"] .inp{
  background:rgba(255,255,255,.82); border:1px solid rgba(14,165,183,.30); border-radius:10px; color:var(--ink);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.06);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
html[data-theme="light"] #modalBody input:focus,
html[data-theme="light"] #modalBody select:focus,
html[data-theme="light"] #modalBody textarea:focus,
html[data-theme="light"] #gform input:focus,
html[data-theme="light"] #gform select:focus,
html[data-theme="light"] #gform textarea:focus,
html[data-theme="light"] .inp:focus{
  outline:none; border-color:rgba(14,165,183,.85);
  box-shadow:0 0 0 3px rgba(14,165,183,.18), 0 0 14px rgba(14,165,183,.28), inset 0 1px 2px rgba(15,23,42,.06);
}
html[data-theme="light"] #modalBody input[type=checkbox],
html[data-theme="light"] #gform input[type=checkbox]{ accent-color:#0ea5b7; width:auto; }
html[data-theme="light"] .modal-head{ border-bottom:1px solid rgba(14,165,183,.16); }
html[data-theme="light"] .modal-foot{ border-top:1px solid rgba(14,165,183,.16); }
html[data-theme="light"] .modal-x:hover{ color:#0ea5b7; background:rgba(14,165,183,.10); box-shadow:0 0 14px rgba(14,165,183,.30); }
html[data-theme="light"] .modal-actions button{ border-radius:9px; transition:box-shadow .15s ease, transform .1s ease, filter .15s ease; }
html[data-theme="light"] #modalSubmit{ background:linear-gradient(135deg,#0ea5b7,#6366f1); color:#fff; border:none; font-weight:700; box-shadow:0 6px 18px rgba(14,165,183,.28); }
html[data-theme="light"] #modalSubmit:hover{ box-shadow:0 8px 26px rgba(14,165,183,.46); transform:translateY(-1px); }
html[data-theme="light"] .modal-actions button.ghost{ background:transparent; border:1px solid rgba(14,165,183,.30); color:var(--muted); }
html[data-theme="light"] .modal-actions button.ghost:hover{ color:var(--ink); border-color:rgba(14,165,183,.6); box-shadow:0 0 14px rgba(14,165,183,.18); }

@keyframes lgCorePulse{ 0%,100%{opacity:.55; transform:translate(-50%,-50%) scale(.92);} 50%{opacity:1; transform:translate(-50%,-50%) scale(1.06);} }

@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] .login-core::after,
  html[data-theme="light"] .login-core::after{ animation:none; }
}
/* ===== /EVO-MODAL-FORM-V1 ===== */


/* ==========================================================================
   §26 EVO-LOGIN-HIDE-FIX-V1 · 修复登录层常驻覆盖所有模块（严重回归）
   根因：styles.css 的 .hidden{display:none} 特异性 (0,1,0)，低于科技层
   html[data-theme="x"] .login-bg{display:flex} 的 (0,2,1)，导致登录成功后
   #login 虽已加 hidden 类却仍以 position:fixed;inset:0 全屏压在模块之上
   （用户名 / 登录按钮 / 背景动画全部残留）。此处以最高优先级钉死隐藏语义，
   并防止未来任何主题层规则再次覆盖 .hidden。
   ========================================================================== */
html[data-theme="dark"] .hidden,
html[data-theme="light"] .hidden{ display:none !important; }
html[data-theme="dark"] #login.hidden,
html[data-theme="light"] #login.hidden{ display:none !important; visibility:hidden !important; pointer-events:none !important; }

/* §26b EVO-GLASS-BOOST-V1 · 遗留基础层遮罩的毛玻璃补强（nav 抽屉 / 通用遮罩） */
html[data-theme="dark"] .nav-backdrop{ backdrop-filter:blur(12px) saturate(140%); -webkit-backdrop-filter:blur(12px) saturate(140%); background:rgba(2,6,16,.45); }
html[data-theme="light"] .nav-backdrop{ backdrop-filter:blur(12px) saturate(140%); -webkit-backdrop-filter:blur(12px) saturate(140%); background:rgba(20,40,70,.26); }


/* ============================================================
 * EVO-LOGIN-MIN-V1 · 登录页简单素雅化（覆盖科技感特效）
 * 用户要求：登录页不要那么酷炫，简单素雅即可。
 * 已随 HTML 移除：二进制雨 canvas（JS 因 #loginCanvas 缺失自动
 * 短路，无需改码）、网格、极光、扫描线、核心环、CRT、暗角。
 * 本段压平剩余视觉层：毛玻璃、霓虹光晕、渐变顶条、glitch 动画。
 * 原则：只覆盖视觉属性，不动布局与登录功能；双主题均素雅。
 * ============================================================ */
html[data-theme="light"] .login-bg,
html[data-theme="dark"] .login-bg{
  display:flex !important; align-items:center !important; justify-content:center !important;
}
html[data-theme="light"] .login-bg{
  background:linear-gradient(160deg,#f4f6f9 0%,#e9edf3 100%) !important;
}
html[data-theme="dark"] .login-bg{
  background:linear-gradient(160deg,#14181f 0%,#1b212b 100%) !important;
}
html[data-theme="light"] .login-bg::before,
html[data-theme="dark"] .login-bg::before{
  content:none !important; background:none !important; animation:none !important;
}
html[data-theme="light"] .login-wrap{
  background:rgba(255,255,255,.97) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,.10) !important;
  box-shadow:0 12px 32px rgba(15,23,42,.08) !important;
  border-radius:14px !important; animation:none !important;
}
html[data-theme="dark"] .login-wrap{
  background:rgba(26,32,42,.98) !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,.08) !important;
  box-shadow:0 12px 32px rgba(0,0,0,.35) !important;
  border-radius:14px !important; animation:none !important;
}
html[data-theme="light"] .login-wrap::before,
html[data-theme="dark"] .login-wrap::before{ content:none !important; }
html[data-theme="light"] .login-wrap .lg-mark,
html[data-theme="dark"] .login-wrap .lg-mark{
  background:linear-gradient(135deg,#2f6fed,#7c5cf0) !important;
  box-shadow:none !important;
}
html[data-theme="light"] .lg-glitch,
html[data-theme="dark"] .lg-glitch{
  animation:none !important; text-shadow:none !important;
}
html[data-theme="light"] .lg-glitch::before,
html[data-theme="light"] .lg-glitch::after,
html[data-theme="dark"] .lg-glitch::before,
html[data-theme="dark"] .lg-glitch::after{ display:none !important; }
