
  /* 主题色板（品牌：巨牛包装科技；默认/兜底 = 低调灰，:root 即灰；变体见 .theme-red / .theme-blue / .theme-dark / .theme-green） */
  :root{
    --bg:#f5f6f7;
    --panel:#ffffff;
    --sidebar:#f7f8f9;
    --primary:#455a6a;
    --primary-soft:#e6eaed;
    --primary-light:#5a7085;
    --primary-dark:#3a4a5a;
    --green:#455a6a;
    --accent:#6a7d8f;
    --text:#2b3a47;
    --muted:#778a9a;
    --line:#d8dde2;
    --shadow:0 6px 24px rgba(69,90,106,.10);
  }
  .theme-red{
    --bg:#fcf5f4;
    --panel:#fffafa;
    --sidebar:#faf4f3;
    --primary:#b94b4b;
    --primary-soft:#f6e2e2;
    --primary-light:#d46a6a;
    --primary-dark:#a33f3f;
    --green:#b94b4b;
    --accent:#d48c00;
    --text:#4a2e2e;
    --muted:#9a7a7a;
    --line:#ecd4d4;
    --shadow:0 6px 24px rgba(185,75,75,.10);
  }
  .theme-gray{
    --bg:#f5f6f7;
    --panel:#ffffff;
    --sidebar:#f7f8f9;
    --primary:#455a6a;
    --primary-soft:#e6eaed;
    --primary-light:#5a7085;
    --primary-dark:#3a4a5a;
    --green:#455a6a;
    --accent:#6a7d8f;
    --text:#2b3a47;
    --muted:#778a9a;
    --line:#d8dde2;
    --shadow:0 6px 24px rgba(69,90,106,.10);
  }
  .theme-blue{
    --bg:#f0f6fb;
    --panel:#f8fbff;
    --sidebar:#f2f7fc;
    --primary:#2a6fa3;
    --primary-soft:#dce8f4;
    --primary-light:#3a85bb;
    --primary-dark:#1f5680;
    --green:#2a6fa3;
    --accent:#0088cc;
    --text:#2b3a47;
    --muted:#6a8aaa;
    --line:#d4e0ec;
    --shadow:0 6px 24px rgba(42,111,163,.10);
  }
  .theme-dark{
    --bg:#2d2824;
    --panel:#3a3430;
    --sidebar:#2f2a26;
    --primary:#c9a86c;
    --primary-soft:#4a4035;
    --primary-light:#d4b87a;
    --primary-dark:#b08a55;
    --green:#a3bf7d;
    --accent:#e6a85c;
    --text:#e8e4dc;
    --muted:#9a9085;
    --line:#4a4540;
    --shadow:0 6px 24px rgba(0,0,0,.25);
  }
  .theme-green{
    --bg:#f8f5e8;
    --panel:#fffdf6;
    --sidebar:#faf7ee;
    --primary:#5a7d3d;
    --primary-soft:#eaf0dc;
    --primary-light:#6f9a4a;
    --primary-dark:#4a6a30;
    --green:#5a7d3d;
    --accent:#e6a800;
    --text:#3d4a2e;
    --muted:#8a9470;
    --line:#e8e4d4;
    --shadow:0 6px 24px rgba(90,125,61,.10);
  }
  .theme-eco{
    --bg:#f2fbf4;
    --panel:#ffffff;
    --sidebar:#eafaf0;
    --primary:#17b850;
    --primary-soft:#e3f7e9;
    --primary-light:#3fd46f;
    --primary-dark:#0e8a32;
    --green:#17b850;
    --accent:#0e8a32;
    --text:#234d31;
    --muted:#6b957c;
    --line:#d6ecdf;
    --shadow:0 6px 24px rgba(23,184,80,.10);
  }
  /* iPhone 原钛色（Natural Titanium）：暖中性金属灰 */
  .theme-titanium{
    --bg:#f4f4f5;
    --panel:#ffffff;
    --sidebar:#efefef;
    --primary:#6e6e73;
    --primary-soft:#e6e6e9;
    --primary-light:#8a8a8e;
    --primary-dark:#565659;
    --green:#6e6e73;
    --accent:#8e8e93;
    --text:#2c2c2e;
    --muted:#86868b;
    --line:#d8d8db;
    --shadow:0 6px 24px rgba(110,110,115,.10);
  }
  /* 远峰蓝（Sierra Blue）：柔和浅蓝灰 */
  .theme-sierra{
    --bg:#f1f6fa;
    --panel:#ffffff;
    --sidebar:#eef4f9;
    --primary:#5b7c99;
    --primary-soft:#e4eef5;
    --primary-light:#7d9ab5;
    --primary-dark:#4a6a86;
    --green:#5b7c99;
    --accent:#7d9ab5;
    --text:#2c3e4a;
    --muted:#6a87a0;
    --line:#d6e2ec;
    --shadow:0 6px 24px rgba(91,124,153,.10);
  }
  /* 暗夜紫（Deep Purple，推荐）：iPhone 14 Pro 暗紫色系 */
  /* 暗夜紫：取自 chutu.ai 色系（深底 + 紫罗兰 #7B69EE 主色，青绿 #3DCCA6 / 蓝 #5e7ce0 点缀） */
  .theme-purple{
    --bg:#1f1b2e;
    --panel:#2a2440;
    --sidebar:#181428;
    --primary:#7B69EE;
    --primary-soft:#2f2a52;
    --primary-light:#9b8cf2;
    --primary-dark:#5e4fc4;
    --green:#3DCCA6;
    --accent:#5e7ce0;
    --text:#ECE9F5;
    --muted:#9a93b8;
    --line:#3a3357;
    --shadow:0 6px 24px rgba(123,105,238,.22);
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;padding:0;height:100%}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;
    background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;
  }
  .app{display:flex;min-height:100vh}

  /* ---------- Sidebar ---------- */
  .sidebar{
    width:150px;flex:0 0 150px;background:var(--sidebar);
    display:flex;flex-direction:column;
    position:fixed;top:0;left:0;bottom:0;z-index:70;
    transform:translateX(-100%);transition:transform .25s ease,width .3s cubic-bezier(.4,0,.2,1);
  }
  /* 收缩态：只显示图标 */
  .sidebar.collapsed{width:68px;flex:0 0 68px}
  /* 左侧导航与右侧内容之间的渐变竖线分割 */
  .sidebar::after{
    content:'';position:absolute;top:0;right:0;bottom:0;width:1px;pointer-events:none;
    background:linear-gradient(to bottom, transparent 0%, var(--line) 14%, var(--line) 86%, transparent 100%);
  }
  .sidebar.open{transform:translateX(0)}
  /* 汉堡按钮（移动端悬浮右下角，V1/V2 切换浮钮正上方）+ 遮罩 · 玻璃拟态+光晕 */
  .hamburger{
    position:fixed;bottom:136px;left:auto;right:22px;top:auto;z-index:75;
    width:48px;height:48px;border-radius:50%;
    background:rgba(0,0,0,.28);
    -webkit-backdrop-filter:blur(12px) saturate(140%);
    backdrop-filter:blur(12px) saturate(140%);
    border:1px solid rgba(255,255,255,.4);
    box-shadow:0 6px 18px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.35);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-size:22px;cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .hamburger::after{
    content:'';position:absolute;inset:-8px;border-radius:50%;pointer-events:none;z-index:-1;opacity:0;
    background:radial-gradient(circle at 50% 50%, rgba(90,122,58,0) 50%, rgba(90,122,58,.55) 72%, rgba(56,128,160,.5) 100%);
    filter:blur(9px);transition:opacity .28s ease;
  }
  .hamburger:hover{transform:translateY(-3px) scale(1.05);background:rgba(0,0,0,.5);box-shadow:0 12px 28px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.45);}
  .hamburger:hover::after{opacity:1}
  .hamburger:active{transform:translateY(-1px) scale(.98)}
  body.nav-open .hamburger{display:none}
  @media(max-width:640px){
    .hamburger{bottom:126px;right:16px;width:44px;height:44px;font-size:20px}
  }
  .overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:55;display:none}
  body.nav-open .overlay{display:block}

  /* 品牌区：导航上方，logo+文字，下方分割线 */
  .brand{
    height:58px;padding:0 12px;display:flex;align-items:center;gap:9px;
    cursor:pointer;
  }
  .brand .b-logo{
    width:36px;height:36px;border-radius:9px;object-fit:contain;
    background:var(--sidebar);
    mix-blend-mode:multiply; /* 白底与侧栏背景融合，看不出白边 */
  }
  .brand .b-text{display:flex;flex-direction:column;width:max-content}
  .brand .b-name{font-size:12px;font-weight:700;line-height:1.2;letter-spacing:.3px;text-align:justify;text-align-last:justify;text-justify:inter-character}
  .brand .b-slogan{font-size:11px;color:var(--accent);font-weight:600;letter-spacing:.6px;margin-top:2px;text-align:justify;text-align-last:justify;text-justify:inter-character}

  .nav{border-top:none;padding:7px 10px 8px;overflow-y:auto;flex:1;background-image:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);background-position:top center;background-size:100% 1px;background-repeat:no-repeat}
  .nav a{
    display:flex;align-items:center;gap:11px;
    padding:10px 12px;margin:1px 0;border-radius:10px;
    color:var(--text);text-decoration:none;font-size:14px;
    transition:background .15s;cursor:pointer;
    touch-action:none;user-select:none;-webkit-touch-callout:none;
  }
  .nav a .ico{width:22px;text-align:center;font-size:18px;display:inline-flex;align-items:center;justify-content:center}
  .nav a .ico svg{width:20px;height:20px}
  .nav a:hover{background:var(--primary-soft)}
  .nav a.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}
  .nav a.dragging{opacity:.4;background:var(--primary-soft)}
  .nav a.nav-hidden{display:none !important}
  /* 暗夜紫（深色）主题：导航悬停/高亮白字（深紫胶囊底上 primary-dark 对比不足） */
  .theme-purple .nav a:hover,.theme-purple .nav a.active{color:#fff}

  /* 文字标签：收缩时平滑收起 */
  .nav-label{overflow:hidden;white-space:nowrap;flex:0 1 auto;max-width:200px;transition:opacity .25s ease,max-width .3s cubic-bezier(.4,0,.2,1)}
  .sidebar.collapsed .nav-label{opacity:0;max-width:0;margin:0;padding:0}
  /* 收缩态：图标居中 */
  .sidebar.collapsed .nav a,
  .sidebar.collapsed .foot-row{justify-content:center;gap:0;padding-left:0;padding-right:0}
  .sidebar.collapsed .nav a{padding:10px 0}
  .sidebar.collapsed .foot-row{padding:6px 0}
  /* 收缩态：品牌区只留小 LOGO */
  .sidebar.collapsed .brand{justify-content:center;padding:0;gap:0}
  .sidebar.collapsed .brand .b-logo{width:30px;height:30px;border-radius:8px}
  .sidebar.collapsed .brand .b-text{opacity:0;max-width:0;overflow:hidden;padding:0;transition:opacity .25s ease,max-width .3s cubic-bezier(.4,0,.2,1)}
  /* 收缩态：隐藏主题色圆点（换肤时展开即可） */
  .sidebar.collapsed .theme-row{display:none}
  /* 收缩态：侧栏滚动条隐藏，nav 不裁剪后面的 JS tooltip */
  .sidebar.collapsed{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}
  .sidebar.collapsed::-webkit-scrollbar{display:none}
  .sidebar.collapsed .nav{overflow:visible}

  /* ---------- 底部 3 行 ---------- */
  .side-foot{margin-top:auto;border-top:none;padding:6px 14px 10px;background-image:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);background-position:top center;background-size:100% 1px;background-repeat:no-repeat}
  .foot-row{
    display:flex;align-items:center;gap:11px;
    padding:6px 12px;margin:1px 0;border-radius:10px;
    font-size:13px;color:var(--muted);cursor:pointer;
    transition:background .15s;
    touch-action:none;user-select:none;-webkit-touch-callout:none;
  }
  .foot-row .ico{width:18px;text-align:center;font-size:15px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}
  .foot-row .ico svg{width:16px;height:16px}
  .foot-row:hover{background:var(--primary-soft)}
  .foot-row:active{color:var(--primary)}
  .theme-row{display:flex;align-items:center;justify-content:center;padding:8px 10px 6px 10px;margin-bottom:2px}
  .theme-dots{display:flex;gap:3px;align-items:center;justify-content:center;flex-wrap:nowrap}
  .theme-dot{width:7px;height:7px;padding:0;margin:0;appearance:none;-webkit-appearance:none;display:block;line-height:0;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
  .theme-dot:hover{transform:scale(1.12)}
  .theme-dot.active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 1.5px var(--bg),0 0 0 2px var(--primary)}

  /* ---------- 侧栏底部版权 ---------- */
  .side-copy{
    margin-top:6px;padding:9px 6px 2px;
    text-align:center;color:var(--muted);font-size:11px;letter-spacing:.5px;
    font-style:italic;opacity:.8;white-space:nowrap;overflow:hidden;
    background-image:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);
    background-position:top center;background-size:100% 1px;background-repeat:no-repeat;
  }
  .side-copy-at{
    display:none;margin-top:6px;padding:9px 6px 2px;
    text-align:center;color:var(--muted);font-size:11px;letter-spacing:.5px;
    font-style:italic;opacity:.8;cursor:pointer;
    background-image:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);
    background-position:top center;background-size:100% 1px;background-repeat:no-repeat;
  }
  .sidebar.collapsed .side-copy{display:none}
  .sidebar.collapsed .side-copy-at{display:block}

  /* ---------- Content ---------- */
  .main{flex:1;margin-left:0;min-width:0}
  .content{max-width:720px;margin:0 auto;padding:14px}
  .page-footer{
    margin-top:28px;padding:18px 16px 28px;
    text-align:center;color:var(--muted);font-size:12px;letter-spacing:1px;
    font-style:italic;opacity:.8;
    border-top:none;
    background-image:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);
    background-position:top center;background-size:100% 1px;background-repeat:no-repeat;
  }
  .page{display:none;position:relative}
  .page.active{display:block;animation:fade .2s ease}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  /* ---------- 页面顶部标题栏（非首页） ---------- */
  .page-header{
    position:sticky;top:0;z-index:30;
    display:flex;align-items:center;gap:10px;
    height:58px;padding:0 16px;
    background:linear-gradient(135deg,var(--primary-light),var(--primary-dark));color:#fff;
  }
  .ph-back{
    width:34px;height:34px;border-radius:50%;border:none;
    background:rgba(255,255,255,.2);color:#fff;
    font-size:18px;display:flex;align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;transition:background .15s;
  }
  .ph-back:active{background:rgba(255,255,255,.35)}
  .ph-title{
    display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;
    letter-spacing:.5px;white-space:nowrap;
    text-shadow:0 1px 2px rgba(0,0,0,.35)
  }
  .ph-title .pt-ico{font-size:20px;display:inline-flex;align-items:center}
  .ph-title .pt-ico svg{width:20px;height:20px}
  /* 首页不需要标题栏，内容顶到最上面 */
  #page-home .content{padding-top:14px}

  /* ---------- 占位页 ---------- */
  .ph{padding:60px 12px;text-align:center}
  .ph .big{font-size:48px;margin-bottom:12px}
  .ph h2{color:var(--text);font-size:22px;margin:0;font-weight:700}

  /* ---------- 首页：风景图 + 透明时钟 ---------- */
  #page-home{padding:0;overflow:hidden}
  .home-scene{
    position:relative;height:100vh;min-height:520px;
    display:flex;align-items:center;justify-content:center;overflow:hidden;
    background:linear-gradient(135deg,#2f4a3a,#1c2f26);
  }
  .home-scene-bg{
    position:absolute;inset:0;background-size:cover;background-position:center;
    transform:scale(1.06);opacity:0;transition:opacity .9s ease;
  }
  .home-scene-bg.show{opacity:1}
  .home-scene-veil{
    position:absolute;inset:0;
    background:linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.04) 45%, rgba(0,0,0,.36) 100%);
  }
  .home-clock{
    position:relative;z-index:2;text-align:center;color:#fff;
    text-shadow:0 2px 18px rgba(0,0,0,.6);
    padding:0 24px;
  }
  .hc-date{font-size:15px;letter-spacing:3px;opacity:.92;font-weight:500}
  .hc-time{font-size:72px;font-weight:700;letter-spacing:5px;line-height:1.05;margin:10px 0 6px;font-variant-numeric:tabular-nums}
  .hc-week{font-size:14px;letter-spacing:1px;opacity:.85}
  .hc-quote{font-size:14px;margin-top:18px;opacity:.9;letter-spacing:1px}
  .home-refresh{
    background:rgba(0,0,0,.28);color:#fff;border:1px solid rgba(255,255,255,.4);
    border-radius:999px;padding:7px 16px;font-size:12.5px;cursor:pointer;
    backdrop-filter:blur(6px);transition:background .2s;font-family:inherit;
  }
  /* 换一张：固定在首页右下角（与改前一致） */
  #homeRefresh{position:absolute;bottom:18px;right:18px;z-index:4}
  /* ===== 首页：天气/日历 胶囊按钮 + 滑出面板（仿「换一张」） ===== */
  .home-wbtn{position:absolute;z-index:4}
  .home-wbtn.top-right{top:18px;right:18px}
  .home-wbtn.bottom-left{bottom:18px;left:18px}
  .home-pop{
    position:absolute;z-index:5;overflow:hidden;
    background:rgba(255,255,255,.16);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.26);border-radius:14px;
    box-shadow:0 12px 34px rgba(0,0,0,.30);color:#fff;
    text-shadow:0 1px 6px rgba(0,0,0,.4);
    opacity:0;transform:translateY(-10px) scale(.97);pointer-events:none;
    max-height:0;padding:0 14px;
    transition:opacity .26s ease,transform .26s ease,max-height .3s ease,padding .26s ease;
  }
  .home-wbtn.open .home-pop{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;max-height:560px;padding:14px}
  .home-wbtn.top-right .home-pop{top:100%;right:0;margin-top:10px;width:300px}
  .home-wbtn.bottom-left .home-pop{bottom:100%;left:0;margin-bottom:10px;width:272px}
  .home-pop iframe{width:100%;height:460px;border:none;display:block;border-radius:8px;background:#fff}
  /* 天气数据面板（open-meteo） */
  .weather-body{font-size:13px;line-height:1.5}
  .weather-body .w-loading,.weather-body .w-err{opacity:.85;font-size:12.5px;padding:6px 0}
  .weather-body .w-city{font-size:13px;opacity:.85;margin-bottom:6px}
  .weather-body .w-now{display:flex;align-items:center;gap:12px;margin-bottom:10px}
  .weather-body .w-icon{line-height:1;filter:drop-shadow(0 1px 4px rgba(0,0,0,.35));margin-right:2px}
  .weather-body .w-icon svg{display:block}
  .weather-body .w-temp{font-size:38px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
  .weather-body .w-meta{font-size:12px;opacity:.9;line-height:1.5}
  .weather-body .w-days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;border-top:1px solid rgba(255,255,255,.2);padding-top:10px}
  .weather-body .w-day{text-align:center}
  .weather-body .wd-d{font-size:11px;opacity:.7}
  .weather-body .wd-ic{margin:3px 0;line-height:1}
  .weather-body .wd-ic svg{display:block;margin:0 auto}
  .weather-body .wd-c{font-size:11px;margin:2px 0;opacity:.95}
  .weather-body .wd-t{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
  .home-pop .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .home-pop .cal-title{font-size:14px;font-weight:700}
  .home-pop .cal-nav{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;width:24px;height:24px;font-size:15px;cursor:pointer;line-height:1}
  .home-pop .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .home-pop .cal-weekrow{margin-bottom:4px}
  .home-pop .cal-weekrow span{text-align:center;font-size:11px;opacity:.7}
  .home-pop .cal-grid#calGrid span{text-align:center;font-size:12px;padding:5px 0;border-radius:7px;font-variant-numeric:tabular-nums}
  .home-pop .cal-grid#calGrid .cal-other{opacity:.35}
  .home-pop .cal-grid#calGrid .cal-today{background:rgba(255,255,255,.92);color:#2f4a3a;font-weight:700;text-shadow:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
  .home-pop .cal-grid#calGrid .cal-sun{color:#ffb4b4}

  /* ===== 登录层（鉴权遮罩） ===== */
  .auth-layer{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
    background:rgba(20,26,34,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
  .auth-layer[hidden]{display:none}
  /* 锁定时：禁止背景滚动/触摸滚动，并把主应用藏成空白，即便遮罩被 F12 删除也露不出内容 */
  html.auth-locked, body.auth-locked{overflow:hidden;height:100%;touch-action:none}
  body.auth-locked .app{visibility:hidden}
  .auth-card{width:360px;max-width:92vw;background:#fff;border-radius:16px;padding:30px 28px;
    box-shadow:0 24px 60px rgba(0,0,0,.32);font-family:inherit;color:#1f2733;}
  .auth-card .auth-brand{font-size:19px;font-weight:800;text-align:center;color:var(--primary);margin:4px 0 8px;letter-spacing:.5px}
  .auth-card .auth-sub{font-size:12.5px;text-align:center;color:#8a93a0;margin-bottom:18px}
  .auth-form .af-field{margin-bottom:13px}
  .auth-form label{display:block;font-size:12.5px;color:#5a6573;margin-bottom:5px}
  .auth-form .af-check{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-size:12.5px;color:#5a6573;margin-bottom:8px;cursor:pointer;user-select:none}
  .auth-form .af-check input{width:auto;margin:0;cursor:pointer}
  .auth-form input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d8dee6;border-radius:9px;font-size:14px;outline:none}
  .auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
  .auth-form .af-btn{width:100%;margin-top:6px;padding:11px;border:none;border-radius:9px;background:var(--primary);color:#fff;font-size:14.5px;font-weight:700;cursor:pointer}
  .auth-form .af-btn:hover{background:var(--primary-dark)}
  .auth-form .af-btn.sec{background:var(--primary-soft);color:var(--text)}
  .auth-toggle{margin-top:12px;text-align:center;font-size:12.5px;color:var(--primary);cursor:pointer}
  .auth-msg{margin-top:10px;font-size:12.5px;min-height:16px;text-align:center}
  .auth-msg.err{color:#c0392b}.auth-msg.ok{color:var(--primary)}
  .auth-secret{margin:10px 0;padding:12px 14px;background:var(--primary-soft);border:1px dashed var(--primary-light);border-radius:10px;font-size:12.5px;line-height:1.7;color:var(--text);word-break:break-all}
  .auth-secret b{color:var(--primary)}
  .auth-codes{margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
  .auth-codes span{padding:6px 8px;background:#fff7e6;border:1px solid #f0d9a8;border-radius:7px;text-align:center;letter-spacing:1px}
  /* ===== EMK 初始化成功页 ===== */
  .auth-success-head{text-align:center;margin-bottom:10px}
  .auth-success-icon{font-size:34px;line-height:1;margin-bottom:6px}
  .auth-success-title{font-size:18px;font-weight:800;color:var(--primary);letter-spacing:.5px}
  .auth-success-sub{text-align:center;font-size:13px;color:#5a6573;margin-bottom:18px}
  .auth-emk-panel{background:var(--primary-soft);border:1px dashed var(--primary-light);border-radius:14px;padding:16px;margin-bottom:18px}
  .auth-emk-label{font-size:13.5px;font-weight:700;color:var(--primary);margin-bottom:3px}
  .auth-emk-mute{font-size:11.5px;color:var(--muted);margin-bottom:10px}
  .auth-emk-box{display:flex;gap:8px;align-items:stretch;margin-bottom:12px}
  .auth-emk-box code{flex:1;display:block;padding:10px 12px;background:#fff;border:1px solid #d8dee6;border-radius:9px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;word-break:break-all;line-height:1.6;color:#1f2733}
  .auth-emk-copy{padding:0 12px;border:1px solid var(--primary-light);border-radius:9px;background:#fff;color:var(--primary);font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
  .auth-emk-copy:hover{background:var(--primary-soft)}
  .auth-emk-copy.copied{background:var(--primary);color:#fff;border-color:var(--primary)}
  .auth-emk-notes{margin:0;padding-left:18px;font-size:12px;color:#5a6573;line-height:1.8}
  .auth-emk-notes li{margin-bottom:3px}
  .auth-success-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
  .auth-success-actions .af-btn{margin-top:0}
  .auth-warn-once{text-align:center;font-size:12.5px;color:#b84c4c;font-weight:700;background:#fff0f0;border:1px solid #f5d1d1;border-radius:8px;padding:8px 10px}
  /* ===== 登录管理页 ===== */
  .lm-card{background:#fff;border-radius:14px;padding:20px 22px;margin-bottom:16px;box-shadow:0 6px 18px rgba(40,60,90,.06)}
  .lm-card h3{margin:0 0 4px;font-size:15px;color:#2b3644}
  .lm-card .lm-tip{font-size:12.5px;color:#8a93a0;margin-bottom:14px;line-height:1.6}
  .lm-field{margin-bottom:12px}
  .lm-field label{display:block;font-size:12.5px;color:#5a6573;margin-bottom:5px}
  .lm-field input{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid #d8dee6;border-radius:9px;font-size:14px;outline:none}
  .lm-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
  .lm-btn{display:inline-block;padding:9px 18px;border:none;border-radius:9px;background:var(--primary);color:#fff;font-size:13.5px;font-weight:700;cursor:pointer;margin-right:8px}
  .lm-btn:hover{background:var(--primary-dark)}.lm-btn.sec{background:var(--primary-soft);color:var(--text)}
  .lm-btn.danger{background:#c0392b}
  .lm-msg{font-size:12.5px;min-height:16px;margin-top:8px}
  .lm-msg.err{color:#c0392b}.lm-msg.ok{color:var(--primary)}
  /* 导航可见性：网格 */
  .lm-nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:12px 0}
  .lm-nav-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #eef1f5;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s;font-size:13px;color:#2b3644;background:#fafbfc}
  .lm-nav-item:hover{border-color:var(--primary-soft);background:var(--primary-soft)}
  .lm-nav-item .lm-nl{pointer-events:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* iOS 风格滑动开关 */
  .lm-switch{position:relative;width:40px;height:22px;flex:none;background:#d1d7de;border-radius:999px;transition:background .25s ease;pointer-events:none}
  .lm-switch::after{content:'';position:absolute;left:2px;top:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s ease}
  .lm-nav-item.on .lm-switch{background:var(--primary)}
  .lm-nav-item.on .lm-switch::after{transform:translateX(18px)}
  .lm-nav-grid.disabled .lm-nav-item{opacity:.45;cursor:not-allowed;pointer-events:none;background:#f0f1f3;border-color:#e1e4e8}
  .lm-nav-grid.disabled .lm-nav-item:hover{border-color:#e1e4e8;background:#f0f1f3}
  .lm-btn:disabled,.lm-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
  /* 自动锁定设置项 */
  .lm-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid #f0f2f5}
  .lm-row:first-of-type{border-top:none}
  .lm-row .lm-rl{font-size:14px;color:#2b3644;font-weight:500}
  .lm-row .lm-rs{font-size:12.5px;color:#8a93a0;margin-top:3px}
  .lm-toggle{position:relative;width:40px;height:22px;flex:none;background:#d1d7de;border-radius:999px;cursor:pointer;transition:background .25s ease}
  .lm-toggle::after{content:'';position:absolute;left:2px;top:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s ease}
  .lm-toggle.on{background:var(--primary)}
  .lm-toggle.on::after{transform:translateX(18px)}
  .lm-inline{display:flex;align-items:center;gap:10px;margin:0 0 11px;padding:2px 0;font-size:14px}
  .lm-inline .lm-rl,.lm-inline .lm-rs{font-size:14px;color:#2b3644;margin:0}
  .lm-inline input{width:58px;padding:6px 8px;border:1px solid #d8dee6;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box;text-align:center}
  .lm-inline input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
  .lm-locked-tip{font-size:13px;color:#c0392b;padding:9px 12px;background:#fff5f5;border:1px solid #f5c6cb;border-radius:8px;margin:8px 0 12px;line-height:1.5}
  @media(max-width:1100px){.lm-nav-grid{grid-template-columns:repeat(4,1fr)}}
  @media(max-width:860px){.lm-nav-grid{grid-template-columns:repeat(3,1fr)}}
  @media(max-width:640px){.lm-nav-grid{grid-template-columns:repeat(2,1fr)}}
  .home-refresh:hover{background:rgba(0,0,0,.5)}

  /* ---------- 首页：天气/日历 按钮 响应式 ---------- */
  @media(max-width:767px){
    .home-wbtn.top-right{top:12px;right:12px}
    .home-wbtn.bottom-left{bottom:12px;left:12px}
    #homeRefresh{bottom:12px;right:12px}
    .home-wbtn.top-right .home-pop{width:min(86vw,320px)}
    .home-wbtn.top-right .home-pop iframe{height:60vh}
    .home-wbtn.bottom-left .home-pop{width:min(86vw,300px)}
    .home-wbtn.open .home-pop{max-height:64vh}
  }
  /* 超小屏（手机竖屏）：按钮保留，面板更贴边 */
  @media(max-width:520px){
    .home-wbtn.top-right .home-pop{right:0;width:min(92vw,300px)}
    .home-wbtn.bottom-left .home-pop{left:0;width:min(92vw,280px)}
  }


  /* 桌面宽屏：侧栏常驻展开 */
  @media(min-width:768px){
    .sidebar{transform:none}
    .sidebar.open{transform:none}
    .main{margin-left:150px}
    .hamburger{display:none}
    .overlay{display:none!important}
    .content{padding:18px;max-width:none}
    .sidebar.collapsed{width:68px;flex:0 0 68px}
    .sidebar.collapsed ~ .main{margin-left:68px}
  }
  /* 移动端抽屉不受收缩影响 */
  @media(max-width:767px){
    .sidebar.collapsed{width:150px;flex:0 0 150px}
    .sidebar.collapsed .nav-label{opacity:1;max-width:200px}
    .sidebar.collapsed .nav a,
    .sidebar.collapsed .foot-row{justify-content:flex-start;gap:11px;padding-left:12px;padding-right:12px}
    .sidebar.collapsed .foot-row{gap:9px;padding-left:4px;padding-right:4px}
    .sidebar.collapsed .brand{justify-content:flex-start;padding:0 12px}
    .sidebar.collapsed .brand .b-logo{width:36px;height:36px}
  }

  /* ---------- 灵感闪存页 ---------- */
  .idea-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}
  .idea-search{flex:1;min-width:0;display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:7px 10px}
  .idea-search:focus-within{border-color:var(--primary)}
  .idea-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:var(--text)}
  .idea-search input::placeholder{color:var(--muted)}
  .idea-btn-add,.idea-btn-update{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;line-height:1.2}
  .idea-btn-add{background:var(--primary);color:#fff;border:1px solid transparent}
  .idea-btn-add:active{filter:brightness(.93)}
  .idea-btn-update{background:#fff;color:var(--primary);border:1px solid var(--primary);gap:4px}
  .idea-btn-update:active{filter:brightness(.96)}
  .idea-btn-update.running{background:#c0392b;border-color:#c0392b;color:#fff}
  /* 批量更新进度条 */
  .idea-update-bar{display:none;align-items:center;gap:8px;margin-bottom:10px;padding:9px 12px;background:#eef5e6;border:1px solid #cfe0bd;border-radius:12px;font-size:13px;color:#3d6b1f;font-weight:600}
  .idea-update-bar.show{display:flex}
  .idea-update-spin{width:14px;height:14px;border:2px solid #9cc06a;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex:0 0 auto}
  .idea-update-actions{display:inline-flex;gap:6px;margin-left:4px;flex:0 0 auto}
  .iu-btn{font-family:inherit;font-size:12px;font-weight:700;border-radius:8px;padding:5px 10px;cursor:pointer;border:1px solid transparent}
  .iu-confirm{background:var(--primary,#5a7a3a);color:#fff}
  .iu-cancel{background:#fff;color:#7a5a3a;border-color:#e0cdb5}
  @keyframes spin{to{transform:rotate(360deg)}}
  .idea-chips{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin-bottom:10px;scrollbar-width:none;-ms-overflow-style:none}
  .idea-chips::-webkit-scrollbar{display:none}
  .idea-chip{box-sizing:border-box;font-size:12px;padding:6px 12px;border-radius:20px;background:var(--panel);border:1px solid var(--line);color:var(--muted);cursor:pointer;user-select:none;-webkit-user-select:none;transition:all .15s;white-space:nowrap;flex:0 0 auto}
  @media(max-width:380px){.idea-chip{font-size:11px;padding:5px 9px}}
  .idea-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}
  .idea-count{font-size:12px;color:var(--muted);margin-bottom:12px}
  .idea-pager{display:none;text-align:center;margin:14px 0 4px;font-size:12px;padding:6px 0}
  .iu-more{display:inline-block;font-family:inherit;font-size:13px;font-weight:700;color:#fff;background:var(--primary);border:none;border-radius:10px;padding:9px 22px;cursor:pointer;box-shadow:0 2px 8px rgba(90,122,58,.25);transition:filter .15s}
  .iu-more:hover{filter:brightness(1.05)}
  .iu-more:active{filter:brightness(.95)}
  .iu-end{color:var(--muted);font-size:12px}
  .idea-count b{color:var(--primary);font-weight:800}
  .idea-list{display:flex;flex-direction:column;gap:14px}

  /* 卡片 */
  .idea-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;transition:box-shadow .15s}
  .idea-card:active{box-shadow:var(--shadow)}
  .idea-card-top{display:flex;gap:12px;margin-bottom:10px}
  .idea-ico{width:48px;height:48px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .idea-ico svg{width:100%;height:100%;display:block}
  .idea-ico img{width:100%;height:100%;object-fit:cover}
  .idea-card-info{flex:1;min-width:0}
  .idea-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .idea-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:2px}
  .idea-tag-plat{font-size:10px;font-weight:600;color:#fff;background:var(--primary);padding:2px 8px;border-radius:8px}
  .idea-tag{font-size:10px;background:var(--primary-soft);color:var(--green);padding:2px 8px;border-radius:8px}
  .idea-tag-author{font-size:10px;color:var(--muted)}
  .idea-read{font-size:10px;color:var(--primary);font-weight:600;margin-left:2px}

  /* 为什么火 / 二创思路 */
  .idea-section{border-radius:10px;padding:12px 14px;margin-bottom:8px;font-size:13px;line-height:1.7}
  .idea-section:last-child{margin-bottom:0}
  .idea-lines{font-size:12.5px;line-height:1.7;color:inherit}
  .idea-line{padding-left:2px}

  /* 数据参数：标题下方、火爆核心原因上方的单行等宽数据条（无外框背景） */
  .idea-stats{display:flex;flex-wrap:nowrap;gap:6px;margin:0 0 10px;align-items:stretch}
  .idea-stat{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:var(--panel);color:var(--primary);border:1px solid var(--primary-soft);border-radius:10px;padding:5px 4px;font-size:11px;line-height:1.2;white-space:nowrap}
  .idea-stat svg{flex:0 0 auto;width:13px;height:13px;opacity:.9}
  .idea-stat .lbl{color:var(--muted);font-weight:500;overflow:hidden;text-overflow:ellipsis}
  .idea-stat .n{font-variant-numeric:tabular-nums;font-weight:800;color:var(--primary)}
  .idea-s-hot{background:#fef3e8;color:#a05200;border-left:3px solid #e6a800}
  .idea-s-hot .idea-s-title{font-weight:700;color:#c06d00;margin-bottom:5px;display:flex;align-items:center;gap:5px;font-size:13px}
  .idea-s-idea{background:#fdf9e3;color:#6b5d00;border-left:3px solid #e6ce44}
  .idea-s-idea .idea-s-title{font-weight:700;color:#998200;margin-bottom:5px;display:flex;align-items:center;gap:5px;font-size:13px}
  /* 已生成二创框架摘要（卡片内折叠展示） */
  .idea-rep-summary{background:var(--primary-soft);border:1px solid var(--primary-soft);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13px;line-height:1.6}
  .idea-rep-badge{display:inline-block;font-weight:700;color:var(--primary);font-size:12px;background:var(--bg);border-radius:6px;padding:2px 8px;margin-bottom:6px}
  .idea-rep-mini{color:var(--muted);font-size:12px}

  /* 操作按钮行 */
  .idea-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
  .idea-abtn{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:600;border:none;border-radius:10px;padding:8px 14px;cursor:pointer;white-space:nowrap;transition:filter .15s}
  @media(max-width:360px){.idea-abtn{font-size:11px;padding:6px 10px;border-radius:8px}}
  .idea-abtn:active{filter:brightness(.93)}
  .idea-abtn-primary{background:var(--primary);color:#fff}
  .idea-abtn-warn{background:#f5e6b3;color:#8a6d00}
  .idea-abtn-gray{background:transparent;border:1px solid var(--line);color:var(--muted)}

  /* 空状态 */
  .idea-empty{padding:50px 16px;text-align:center;color:var(--muted);font-size:14px;line-height:1.6}
  .idea-empty svg{width:48px;height:48px;display:block;margin:0 auto 12px;color:var(--muted)}

  /* ---------- 爆款二创页 ---------- */
  .ph-sub{font-size:12px;color:var(--muted);font-weight:400;margin-top:1px}
  .pt-title-group{display:flex;flex-direction:column}
  .rep-source{display:flex;align-items:center;gap:10px;background:var(--primary-soft);border:1px solid var(--primary-soft);border-radius:12px;padding:10px 12px;margin-bottom:12px}
  .rep-source-ico{font-size:16px;flex:0 0 auto}
  .rep-source-info{display:flex;flex-direction:column;min-width:0;flex:1}
  .rep-source-lbl{font-size:11px;color:var(--primary);font-weight:600}
  .rep-source-txt{font-size:13px;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rep-source-clear{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;padding:5px 10px;cursor:pointer;flex:0 0 auto;font-family:inherit}
  .rep-source-clear:active{filter:brightness(.96)}
  .rep-field label{display:block;font-size:13px;color:var(--text);font-weight:600;margin-bottom:6px}
  .rep-tip{font-weight:400;color:var(--muted);font-size:11px}
  .rep-type{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
  .rep-type-lbl{font-size:13px;font-weight:600;color:var(--text)}
  .seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
  .seg-btn{border:none;background:transparent;padding:8px 14px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit}
  .seg-btn.active{background:var(--primary);color:#fff}
  .seg-btn:disabled{cursor:default;opacity:.85}
  .seg-btn svg{width:14px;height:14px;display:inline-block;vertical-align:-2px;margin-right:4px;pointer-events:none}
  .rep-type-hint{font-size:11px;color:var(--muted)}
  .rep-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:14px;color:var(--text);background:var(--panel);outline:none;font-family:inherit;line-height:1.6;resize:vertical}
  .rep-field textarea:focus{border-color:var(--primary)}
  .rep-actions{display:flex;gap:10px;margin:12px 0 4px}
  .rep-btn-gen{flex:1;background:var(--primary);color:#fff;border:1px solid transparent;border-radius:12px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
  .rep-btn-gen:active{filter:brightness(.93)}
  .rep-btn-gen:disabled{opacity:.6;cursor:default}
  .rep-btn-clear{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
  .rep-btn-clear:active{filter:brightness(.96)}
  .rep-msg{font-size:13px;min-height:18px;margin:6px 0}
  .rep-msg.err{color:#c0392b}
  .rep-msg.ok{color:var(--primary)}
  .rep-msg.loading{color:var(--primary)}
  .rep-result{margin-top:10px}
  .rep-block{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--panel)}
  .rep-block-title{font-size:14px;font-weight:700;color:var(--primary);margin-bottom:8px;display:flex;align-items:center;gap:6px}
  .rep-pos{font-size:13.5px;line-height:1.7;color:var(--text)}
  .rep-hook{font-size:13.5px;line-height:1.7;color:var(--text);white-space:pre-wrap;background:#fff;padding:10px 12px;border-radius:8px;border:1px dashed #d6e3c4}
  .rep-table{width:100%;border-collapse:collapse;font-size:12.5px}
  .rep-table th,.rep-table td{border:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top;line-height:1.5}
  .rep-table th{background:var(--primary-soft);color:var(--green);font-weight:700}
  .rep-table td.num{width:34px;text-align:center;color:var(--muted);font-weight:700}
  .rep-list{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7;color:var(--text)}
  .rep-tags{display:flex;flex-wrap:wrap;gap:6px}
  .rep-tag{background:#fdf3da;color:#9a6b00;border:1px solid #f0dca0;border-radius:8px;padding:4px 9px;font-size:12px;font-weight:600}
  .rep-result-bar{display:flex;gap:10px;margin-bottom:12px}
  .rep-btn-copy{flex:1;background:#fff;color:var(--primary);border:1px solid var(--primary);border-radius:12px;padding:10px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
  .rep-btn-copy:active{filter:brightness(.96)}

  /* 弹窗 */
  .imask{position:fixed;inset:0;background:rgba(40,50,30,.45);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:24px 12px;overflow-y:auto}
  .imask.show{display:flex}
  .imodal{background:var(--bg);border-radius:16px;width:100%;max-width:560px;box-shadow:0 20px 60px rgba(0,0,0,.25);margin:auto;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
  .imodal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,var(--primary-light),var(--primary-dark));color:#fff;font-weight:700;font-size:16px;flex-shrink:0}
  .imodal-x{background:rgba(255,255,255,.22);border:none;color:#fff;width:30px;height:30px;border-radius:50%;font-size:18px;cursor:pointer;line-height:1;flex-shrink:0}
  .imodal-body{padding:14px 16px;overflow-y:auto}
  .imodal-foot{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--line);align-items:center;background:var(--panel);flex-shrink:0}
  .imodal-foot .spacer{flex:1}
  .ifield{margin-bottom:10px}
  .ifield label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
  .ifield input,.ifield textarea,.ifield select{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:14px;color:var(--text);background:var(--panel);outline:none;font-family:inherit}
  .ifield input:focus,.ifield textarea:focus,.ifield select:focus{border-color:var(--primary)}
  .ifield textarea{resize:vertical;min-height:60px;line-height:1.5}
  .ibtn-save{background:var(--primary);color:#fff;border:none;border-radius:12px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}
  .ibtn-save:active{filter:brightness(.93)}
  .ibtn-del{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:10px 14px;font-size:14px;cursor:pointer}
  .ibtn-del.arming{background:#c0392b;border-color:#c0392b;color:#fff;font-weight:700;animation:pulseRed 1s infinite}
  @keyframes pulseRed{0%,100%{opacity:1}50%{opacity:.6}}
  .ibtn-del:active{background:var(--primary-soft)}
  .ibtn-cancel{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:10px 14px;font-size:14px;cursor:pointer}
  .i-cat-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .i-cat-pick{font-size:12px;padding:4px 10px;border-radius:14px;background:var(--panel);border:1px solid var(--line);color:var(--muted);cursor:pointer}
  .i-cat-pick.on{background:var(--primary);color:#fff;border-color:var(--primary)}
  .i-plat-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .i-plat-pick{font-size:12px;padding:4px 10px;border-radius:14px;background:var(--panel);border:1px solid var(--line);color:var(--muted);cursor:pointer}
  .i-plat-pick.on{background:var(--primary);color:#fff;border-color:var(--primary)}
  .i-url-row{display:flex;gap:8px;align-items:center;}
  .i-url-row input{flex:1;}
  .ibtn-fetch{white-space:nowrap;background:var(--primary);color:#fff;border:none;border-radius:10px;padding:0 14px;height:38px;font-size:13px;cursor:pointer;flex-shrink:0;}
  .ibtn-fetch:hover{background:#4a6630;}
  .ibtn-fetch:disabled{opacity:.6;cursor:default;}
  .i-fetch-tip{display:none;font-size:12px;line-height:1.4;}
  .i-fetch-tip.loading{background:#fff6e0;border:1px solid #f0d28a;color:#9a6b00;font-weight:600;padding:7px 10px;border-radius:8px;margin-top:8px;display:block;}
  .i-fetch-tip.ok{background:#eef5e6;border:1px solid #cfe0bd;color:#3d6b1f;font-weight:700;padding:7px 10px;border-radius:8px;margin-top:8px;display:block;}
  .i-fetch-tip.err{background:#fdecea;border:1px solid #f5c6cb;color:#c0392b;font-weight:600;padding:7px 10px;border-radius:8px;margin-top:8px;display:block;}
  .ai-set{margin-top:4px;border-top:1px dashed #ddd6bf;padding-top:10px;}
  .ai-set-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--primary);font-weight:600;}
  .ai-set-toggle{background:none;border:none;color:#9a9f90;font-size:12px;cursor:pointer;padding:2px 4px;}
  .ai-set-body{margin-top:8px;}
  /* ===== AI 工具箱 ===== */
  .ai-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:14px 0 22px}
  .ai-tab{position:relative;display:flex;align-items:center;gap:9px;padding:9px 16px 9px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 2px 8px rgba(90,122,58,.08)}
  .ai-tab:hover{transform:translateY(-2px);background:#fff;border-color:var(--primary-soft);box-shadow:0 6px 14px rgba(90,122,58,.14)}
  .ai-tab:active{transform:translateY(0) scale(.97)}
  .ai-tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border-color:transparent;font-weight:600;box-shadow:0 8px 20px rgba(90,122,58,.35)}
  .ai-tab .ico{width:26px;height:26px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;transition:.2s}.ai-tab .ico svg{width:15px;height:15px}.ai-tab.active .ico{background:rgba(255,255,255,.22);color:#fff}
  /* 移动端子导航：AI工具箱 / 电商运营 统一胶囊网格 + 上下间距对称（全局，不分 V1/V2） */
  @media(max-width:767px){
    #page-memo .content,#page-daily .content{padding-top:0}
    .ai-tabs,.cm-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;margin:14px 0}
    .ai-tab,.cm-tab{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 6px;width:100%;box-sizing:border-box;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px rgba(90,122,58,.08)}
    .ai-tab:hover,.cm-tab:hover{transform:translateY(-2px);border-color:var(--primary-soft)}
    .ai-tab.active,.cm-tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border-color:transparent;font-weight:600;box-shadow:0 8px 20px rgba(90,122,58,.35)}
    .ai-tab .ico,.cm-tab .ico{width:26px;height:26px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center}
    .ai-tab .ico svg,.cm-tab .ico svg{width:15px;height:15px}
    .ai-tab.active .ico,.cm-tab.active .ico{background:rgba(255,255,255,.22);color:#fff}
    /* 子导航下方元素顶部内边距归零，使上下留白与子导航 margin 对称一致 */
    #page-memo .ai-tools{padding:0 2px}
    #page-daily .cm-body{margin-top:0;padding-top:0}
  }
  .ai-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:4px 2px}
  @media(max-width:420px){.ai-tools{grid-template-columns:1fr}}
  .ai-tool{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:11px}
  .ai-tool:active{transform:scale(.98);background:var(--primary-soft)}
  .ai-tool.active{border-color:var(--primary);box-shadow:0 0 0 2px rgba(90,122,58,.15)}
  .ai-tool .t-ico{width:26px;height:26px;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--primary);flex:none}.ai-tool .t-ico svg{width:22px;height:22px}
  .ai-tool .t-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .ai-tool .t-name{font-size:14px;font-weight:700;color:var(--text)}
  .ai-tool .t-desc{font-size:12px;color:var(--muted);line-height:1.4}
  .ai-work{margin:4px 2px 16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;display:none}
  .ai-work.show{display:block}
  .ai-work.chat{padding:0;border:none;background:transparent;margin-top:2px}
  .chat-app{display:grid;grid-template-columns:260px 1fr;grid-template-rows:1fr;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
  .chat-aside{grid-column:1;grid-row:1;display:flex;flex-direction:column;background:#fbf8ee;border-right:1px solid var(--line);min-height:0}
  .chat-side{background:transparent;border-right:none;padding:14px;display:flex;flex-direction:column;gap:14px;overflow:visible}
  .cs-head{display:flex;gap:10px;align-items:center}
  .cs-logo{width:40px;height:40px;border-radius:12px;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;flex:none}.cs-logo svg{width:22px;height:22px}
  .cs-title{font-size:15px;font-weight:700;color:var(--text)}
  .cs-sub{font-size:11px;color:var(--muted);line-height:1.3}
  .cs-section{display:flex;flex-direction:column;gap:6px}
  .cs-lab{font-size:12px;color:var(--muted);font-weight:600}
  .cs-mode{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:14px;font-family:inherit;background:#fff;color:var(--text)}
  .cs-prompts{display:flex;flex-direction:column;gap:7px}
  .cs-prompt{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:8px 10px;font-size:12.5px;cursor:pointer;font-family:inherit;line-height:1.4;transition:all .15s}
  .cs-prompt::after{content:'→';margin-left:auto;color:var(--muted);font-size:14px;flex:none;transition:color .15s}
  .cs-prompt:hover{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--primary-dark)}
  .cs-prompt:hover::after{color:var(--primary-dark)}
  .cs-prompt:active{opacity:.85}
  .cs-ops{display:flex;flex-direction:column;gap:7px}
  .chat-history{background:transparent;border-right:none;border-left:none;padding:0 14px 14px;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
  .cs-btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
  .cs-btn:active{background:var(--primary-soft);transform:scale(.99)}
  .cs-actions{display:flex;flex-direction:column;gap:7px;padding-top:12px;flex:none}
  .cs-actions .cs-btn{display:grid;grid-template-columns:22px 104px;justify-content:center;align-items:center;gap:9px;text-align:left}
  .cs-actions .cs-btn:hover{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--primary-dark)}
  .cs-actions .cs-btn .ico{width:22px;flex:0 0 22px;text-align:center;display:inline-flex;align-items:center;justify-content:center}
  .cs-actions .cs-btn .cs-label{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cs-actions .cs-btn .ico svg{width:18px;height:18px}
  .cs-history-list{display:flex;flex-direction:column;gap:6px;min-height:0}
  .cs-history-item{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 28px 8px 10px;cursor:pointer;transition:.15s}
  .cs-history-item:hover{border-color:var(--primary)}
  .cs-history-title{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cs-history-meta{font-size:11px;color:var(--muted);margin-top:2px}
  .cs-history-del{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;background:transparent;color:#c0b8a8;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .cs-history-del:hover{color:#c0392b;background:#fdecea}
  .cs-history-empty{font-size:12px;color:var(--muted);padding:6px 2px}
  .chat-main{grid-column:2;grid-row:1;display:flex;flex-direction:column;min-height:calc(100vh - 280px);background:#fff}
  .cm-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fbf8ee}
  .cm-bot{font-weight:700;color:var(--text)}
  .cm-mode{font-size:12px;color:var(--muted)}
  .cm-online{margin-left:auto;font-size:12px;color:#3d9a2f}
  .cm-disclaimer{font-size:11.5px;color:var(--muted);text-align:center;padding:14px 14px 6px;line-height:1.6;margin-top:6px}
  .cm-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px;background:#fff}
  .cm-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
  .cm-row.user{align-items:flex-end}
  .cm-bubble{max-width:78%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
  .cm-row.ai .cm-bubble{background:#fff9e6;border:1px solid #f0e2b8}
  .cm-row.user .cm-bubble{background:#e8f5e9;border:1px solid #cfe8cf}
  .cm-copy{border:none;background:none;color:var(--muted);font-size:11px;cursor:pointer;padding:0;font-family:inherit}
  .cm-copy:hover{color:var(--primary)}
  .cm-typing{color:var(--muted);font-style:italic}
  .cm-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fbf8ee}
  .cm-input textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:14px;font-family:inherit;background:#fff;color:var(--text);line-height:1.4;min-height:44px;max-height:110px;overflow:auto}
  .cm-input button{background:var(--accent,#e6a800);color:#fff;border:none;border-radius:10px;width:44px;font-size:16px;cursor:pointer;font-family:inherit;flex:none}
  .cm-input button:disabled{opacity:.6}
  .cs-tips{margin-top:16px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 20px 20px;box-shadow:var(--shadow)}
  .cs-tips-title{font-size:14px;font-weight:700;color:var(--text);margin:0 0 14px;display:flex;align-items:center;gap:3px}
  .cs-tips-title .ico{display:inline-flex;align-items:center;justify-content:center}.cs-tips-title .ico svg{width:16px;height:16px}
  .cs-tips-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .cs-tip{display:flex;gap:12px;align-items:flex-start}
  .cs-tip-icon{width:34px;height:34px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}.cs-tip-icon svg{width:18px;height:18px}
  .cs-tip-body{flex:1;min-width:0}
  .cs-tip-title{font-size:13px;font-weight:700;color:var(--text);margin:0 0 6px}
  .cs-tip-list{margin:0;padding:0;list-style:none;font-size:12px;color:var(--muted);line-height:1.65}
  .cs-tip-list li{position:relative;padding-left:12px}
  .cs-tip-list li::before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
  @media(max-width:768px){
    .chat-app{display:flex;flex-direction:column}
    .chat-aside{display:contents}
    .chat-side{order:1;border-right:none;border-bottom:1px solid var(--line);padding:14px;background:#fbf8ee;overflow:visible}
    .chat-main{order:2;min-height:60vh;background:#fff}
    .chat-history{order:3;border-right:none;border-top:1px solid var(--line);padding:12px 14px;background:#fbf8ee}
    .cs-history-list{flex:none;overflow:visible;max-height:none}
    .chat-history{flex:none}
    .cs-actions{padding:12px 0;background:#fbf8ee;margin-top:0}
    .cs-actions .cs-btn{grid-template-columns:22px 104px;justify-content:center}
    .cs-prompts{flex-direction:column;gap:7px}
    .cs-prompt{white-space:normal}
    .cs-tips{padding:14px 16px 16px}
    .cs-tips-grid{grid-template-columns:1fr;gap:12px}
  }
  .ai-work h3{margin:0 0 4px;font-size:15px;color:var(--text);display:flex;align-items:center;gap:8px}.ai-work h3 svg{width:18px;height:18px;flex:none}
  .ai-work .w-desc{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.5}
  .ai-field{margin-bottom:10px}
  .ai-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}
  .ai-in,.ai-text,.ai-sel,.ai-file{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;background:#fff;color:var(--text)}
  .ai-in{resize:vertical;min-height:96px;line-height:1.5}
  .ai-row{display:flex;gap:8px;flex-wrap:wrap}
  .ai-row .ai-sel,.ai-row .ai-text{flex:1;min-width:120px}
  .ai-actions{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
  .ai-go{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
  .ai-go:disabled{opacity:.6}
  .ai-ghost{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
  .ai-ghost:active{border-color:var(--primary);color:var(--primary)}
  .vp-reset{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--primary);border:1px dashed var(--primary);border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;letter-spacing:.2px;transition:background .15s,border-style .15s}
  .vp-reset:hover{background:var(--primary-soft);border-style:solid}
  .vp-reset:active{background:rgba(90,122,58,.12)}
  .vp-actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
  .vp-history-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--primary);border:1px dashed var(--primary);border-radius:20px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;letter-spacing:.2px;transition:background .15s,border-style .15s}
  .vp-history-btn:hover{background:var(--primary-soft);border-style:solid}
  .vp-history-btn:active{background:rgba(90,122,58,.12)}
  .vp-history-box{display:none;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px;max-height:240px;overflow:auto}
  .vp-history-box.show{display:block}
  .vp-history-head{font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}
  .vp-history-empty{font-size:13px;color:var(--muted);padding:6px 0}
  .vp-history-list{display:flex;flex-direction:column;gap:10px}
  .vp-history-item{font-size:12px;line-height:1.5;word-break:break-all;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px}
  .vp-history-item a{color:var(--primary);font-weight:600;text-decoration:none}
  .vp-history-item a:hover{text-decoration:underline}
  .vp-history-meta{color:var(--muted);font-size:11px;margin-bottom:4px}
  .vp-history-clear{margin-top:10px;background:transparent;color:#c0392b;border:1px dashed #e6a8a8;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer}
  .vp-history-clear:hover{background:#fdecea;border-style:solid}
  .ai-msg{font-size:13px;margin:8px 0;line-height:1.5;display:none}
  .ai-msg.show{display:block}
  .ai-msg.err{color:#c0392b}
  .ai-msg.load{color:var(--muted)}
  .ai-msg.ok{color:#3d6b1f;font-weight:600}
  .ai-result{margin-top:10px;white-space:pre-wrap;line-height:1.6;font-size:14px;color:var(--text);background:#fbfaf3;border:1px solid var(--line);border-radius:10px;padding:12px;max-height:420px;overflow:auto;display:none}
  .ai-result.show{display:block}
  .ai-imgs{display:none;flex-wrap:wrap;gap:10px;margin-top:10px}
  .ai-imgs.show{display:flex}
  .ai-imgs img{width:100%;max-width:320px;border-radius:10px;border:1px solid var(--line)}
  .ai-audio{width:100%;margin-top:10px;display:none}
  .ai-audio.show{display:block}
  .ai-out-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
  /* 视频剪辑流水线 */
  .vp-hero{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 14px}
  .vp-name{flex:1 1 100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text);background:var(--panel);outline:none}
  .vp-count-row{flex:1 1 100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .vp-count-row label{font-size:13px;color:var(--muted);white-space:nowrap}
  .vp-count-in{width:72px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:14px;font-family:inherit;color:var(--text);background:var(--panel);outline:none}
  .vp-step1{flex-direction:column;align-items:stretch}
  .vp-step1 .vp-num{align-self:flex-start}
  .vp-step1 .vp-hero{width:100%;margin:0}
  .vp-step1 .ai-go{align-self:flex-start;margin-left:0;margin-top:8px}
  @media(min-width:768px){
    .vp-step1{flex-direction:row;align-items:center;flex-wrap:wrap}
    .vp-step1 .vp-num{align-self:center}
    .vp-step1 .vp-hero{flex:1;min-width:240px}
    .vp-step1 .ai-go{align-self:auto;margin-left:auto;margin-top:0}
    .vp-music-row{flex-wrap:nowrap}
    #vpAudio{flex:1 1 auto !important}
    .vp-music-row .vp-music-name{margin-left:auto;flex:none}
    .vp-step1 .vp-script-box{flex:1 1 100%}
  }
  @media(max-width:768px){
    .vp-step1 .vp-count-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
    .vp-step1 .vp-count-row label{font-size:13px;white-space:nowrap;flex:none}
    .vp-step1 .vp-count-row .vp-count-in{flex:0 1 64px;min-width:56px;width:auto}
    .vp-step1 .vp-count-row .ai-go{flex:none;margin-left:0;margin-top:4px;align-self:flex-start}
    .vp-step1 .vp-count-row .vp-name{flex:1 1 100%;width:100%}
    .vp-step1 .vp-count-row .vp-upload-btn{flex:none}
    .vp-step1 .vp-count-row .vp-music-name{flex:1 1 100%;margin-left:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .vp-step1 .vp-script-box{flex:none}
  }
  .vp-music{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px}
  .vp-music-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .vp-music-tip{font-size:12px;color:var(--muted)}
  .vp-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:13px;font-weight:600;color:var(--primary);cursor:pointer;flex:none}
  .vp-upload-btn:hover{background:var(--primary-soft)}
  .vp-music-name{font-size:12px;color:var(--muted);margin-left:auto}
  .vp-count-in:focus{border-color:var(--primary)}
  .vp-name:focus{border-color:var(--primary)}
  .vp-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
  .vp-step{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px;font-weight:600;color:var(--text);transition:background .15s,border-color .15s,opacity .15s}
  .vp-step.done{background:#f4f4ed;border-color:#e0e0d4;opacity:.85}
  .vp-step.done .vp-num{background:#a8b894;box-shadow:none}
  .vp-step.done .ai-go{background:#b8c4a8;border-color:#b8c4a8;color:#fff;opacity:.6;cursor:not-allowed;pointer-events:none}
  .vp-step.done input,.vp-step.done .vp-upload-btn{opacity:.6;cursor:not-allowed;pointer-events:none}
  .vp-num{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:26px;border-radius:13px;background:var(--primary);color:#fff;font-size:12px;font-weight:700;flex:none;padding:0 10px;letter-spacing:.5px;box-shadow:0 2px 4px rgba(90,122,58,.18)}
  .vp-script-box{display:none;margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
  .vp-script-box.show{display:block}
  .vp-script-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}
  .vp-script-title{font-size:15px;font-weight:700;color:var(--text)}
  .vp-script-meta{font-size:12px;color:var(--muted)}
  .vp-script-list{margin:0;padding-left:20px;color:var(--text);font-size:13px;line-height:1.6}
  .vp-script-list li{margin:6px 0}
  .vp-scene{color:var(--text)}
  .vp-sub{color:var(--muted);font-size:12px;margin-top:2px}
  .vp-script-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
  .vp-script-actions .ai-go,.vp-script-actions .ai-ghost{flex:none}
  .vp-step .ai-go{margin-left:auto;padding:7px 14px;font-size:13px}
  .vp-step .ai-go:disabled{opacity:.45;cursor:not-allowed}
  .vp-log{background:#0f1d0c;color:#bfe6a8;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;padding:10px 12px;border-radius:10px;max-height:200px;overflow:auto;margin-bottom:12px}
  .vp-img-fails{display:none}
  .vp-img-fails.show{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff5f0;border:1px solid #f0d4c6;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:13px;color:#a0522d}
  .vp-img-fails.show .vp-fail-text{flex:1 1 auto}
  .vp-img-fails.show .ai-go{flex:none;margin-left:auto;background:#a0522d}
  .vp-img-fails.show .ai-go:hover{background:#8a4526}
  .vp-videos{display:none}
  .vp-videos.show{display:flex;align-items:center;gap:10px;background:#eef3e3;border:1px solid #d8e2c6;border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:13px;color:var(--primary)}
  .vp-videos:empty{margin-bottom:0;padding-top:0;padding-bottom:0;min-height:0}
  .vp-draft{margin-bottom:12px}
  .vp-draft:empty{margin-bottom:0}
  .vp-draft-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;font-size:14px;line-height:1.7;word-break:break-all}
  .vp-draft-box a{color:var(--primary);font-weight:600;word-break:break-all}
  .vp-draft-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
  .vp-draft-actions .ai-go{flex:none;margin-top:0;text-decoration:none;display:inline-flex;align-items:center;background:var(--primary);color:#fff !important;border:1px solid var(--primary)}
  .vp-draft-actions .ai-go:hover{background:var(--text);border-color:var(--text);color:#fff !important}
  .vp-draft-actions .ai-go.vp-open-jianying{display:inline-flex;align-items:center;background:var(--primary);color:#fff !important;border:1px solid var(--primary);text-decoration:none}
  .vp-draft-actions .ai-go.vp-open-jianying:hover{background:var(--text);border-color:var(--text);color:#fff !important}
  .vp-preview{margin-bottom:12px}
  .vp-preview:empty{margin-bottom:0}
  .vp-preview-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}
  .vp-preview-head{font-size:13px;font-weight:700;color:var(--primary);margin-bottom:8px}
  .vp-preview-video{max-width:min(440px,100%);max-height:62vh;width:auto;height:auto;border-radius:8px;display:block;background:#000;margin:0 auto}
  .vp-log:empty{margin-bottom:0;padding-top:0;padding-bottom:0;min-height:0}
  .ai-note{font-size:11px;color:#b08a3a;background:#fff8e8;border:1px solid #f0dca8;border-radius:8px;padding:6px 10px;margin-top:8px;line-height:1.5}
  .ai-info{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}
  .ai-info h4{margin:0 0 10px;font-size:14px;color:var(--text)}
  .ai-info ul{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.8}
  .ai-info li{margin:4px 0}
  /* 设置页（集中填写所有 API 等配置） */
  .set-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px;box-shadow:0 3px 14px rgba(90,122,58,.06)}
  .set-group-title{font-size:14px;font-weight:700;color:var(--primary);margin:0 0 12px;padding-left:11px;border-left:3px solid var(--primary);line-height:1.3;display:flex;align-items:center;gap:8px}
  .set-group-title .ico{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
  .set-group-title .ico svg{width:18px;height:18px}
  .set-voice-desc{font-size:11px;color:var(--muted);margin:-6px 0 12px;line-height:1.4}
  .set-sub{background:#fbf8ee;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:4px 0 14px}
  .set-sub-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px;display:flex;flex-direction:column;gap:2px}
  .set-sub-title small{font-size:11px;font-weight:400;color:var(--muted)}
  .set-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
  .set-grid2 .ifield{margin-bottom:0}
  @media(max-width:560px){ .set-grid2{grid-template-columns:1fr} }
  .set-tip{display:none;font-size:12px;line-height:1.4}
  .set-tip.ok{background:#eef5e6;border:1px solid #cfe0bd;color:#3d6b1f;font-weight:700;padding:8px 10px;border-radius:8px;margin-top:8px;display:block}
  .set-tip.err{background:#fdecea;border:1px solid #f5c6cb;color:#c0392b;font-weight:600;padding:8px 10px;border-radius:8px;margin-top:8px;display:block}
  .tip-link{color:#fff;background:var(--primary);font-weight:700;text-decoration:none;padding:2px 8px;border-radius:8px;cursor:pointer;margin-left:6px;white-space:nowrap}
  .tip-link:active{filter:brightness(.92)}
  /* 设置页（页面样式）操作区 */
  .set-actions{display:flex;gap:10px;margin-top:16px;align-items:stretch}
  .ibtn-reset{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
  .ibtn-reset:active{border-color:var(--primary);color:var(--primary)}
  .set-actions .ibtn-reset,.set-actions .ibtn-save{flex:1}
  /* 轻提示：复制链接等场景 */
  .toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,14px);background:rgba(45,58,33,.94);color:#fff;padding:11px 18px;border-radius:12px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:9999;max-width:92vw;text-align:center;box-shadow:0 6px 20px rgba(0,0,0,.18)}
  .toast.show{opacity:1;transform:translate(-50%,0)}
  /* ---------- 返回顶部火箭按钮 ---------- */
  .to-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border-radius:50%;border:none;background:var(--primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.22);z-index:9000;opacity:0;visibility:hidden;transform:translateY(14px) scale(.8);transition:opacity .25s ease,transform .25s ease,visibility .25s,background .15s}
  .to-top.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
  .to-top:hover{background:var(--primary);filter:brightness(.93);transform:translateY(-2px) scale(1.06)}
  .to-top:active{transform:translateY(0) scale(.94)}
  .to-top svg{width:24px;height:24px}
  .rocket-fly{position:fixed;width:34px;height:34px;z-index:9001;pointer-events:none;display:flex;align-items:center;justify-content:center;color:#fff;animation:rocketLaunch 1s cubic-bezier(.4,0,.7,1) forwards}
  .rocket-fly svg{width:30px;height:30px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}
  .flame{position:absolute;left:50%;top:74%;width:11px;height:16px;background:linear-gradient(to bottom,#ffe27a,#ff7a18 55%,transparent);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform-origin:top center;transform:translateX(-50%);animation:flameFlick .11s infinite alternate;filter:blur(.3px)}
  @keyframes rocketLaunch{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}12%{transform:translateY(-18px) rotate(3deg) scale(1.05)}28%{transform:translateY(-55px) rotate(-2deg)}100%{transform:translateY(-118vh) rotate(4deg) scale(.5);opacity:0}}
  @keyframes flameFlick{from{transform:translateX(-50%) scaleY(1) scaleX(1)}to{transform:translateX(-50%) scaleY(1.3) scaleX(.82)}}
  .spark{position:fixed;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#ffe08a,#ff8a2a);z-index:9000;pointer-events:none;animation:sparkUp .7s ease-out forwards}
  @keyframes sparkUp{from{transform:translateY(0);opacity:.9}to{transform:translateY(-52px);opacity:0}}
  @media(max-width:768px){ .to-top{right:16px;bottom:16px;width:44px;height:44px} .to-top svg{width:22px;height:22px} }

  /* ===== 财务管理页（左右独立卡片列表） ===== */
  .fin-wrap{display:flex;gap:12px;align-items:flex-start;margin-top:6px}
  .fin-banner{margin-top:6px}
  /* 全局克隆：附加替换规则表格 */
  .bk-rules{ display:flex; flex-direction:column; gap:8px; margin-bottom:8px; }
  .bk-rule{ display:flex; gap:8px; align-items:center; }
  .bk-rule input{ flex:1; min-width:0; }
  .bk-rule .bk-btn.sm.danger{ padding:4px 10px; line-height:1.4; }
  .bk-note-only{ color:#8a8a8a; font-size:13px; padding:4px 0; }
  .fin-loading{padding:48px 16px;text-align:center;color:var(--muted,#888);font-size:14px}
  .fin-side{width:132px;flex:0 0 auto;display:flex;flex-direction:column;gap:5px;position:sticky;top:66px;max-height:calc(100vh - 74px);overflow-y:auto;z-index:2;padding:0;background:transparent;scrollbar-width:none}
  .fin-side::-webkit-scrollbar{display:none}
  .fin-tab{
    position:relative;
    display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;
    background:var(--panel);border:1px solid var(--line);color:var(--text);
    font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;text-align:left;font-family:inherit;
    box-shadow:0 1px 1px rgba(0,0,0,.02);
    transition:color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease
  }
  .fin-tab .ico{width:16px;height:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
  .fin-tab .ico svg{width:14px;height:14px}
  .fin-tab:hover{border-color:var(--primary-soft);background:var(--primary-soft);color:var(--primary);box-shadow:0 2px 5px rgba(0,0,0,.04)}
  .fin-tab.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft);font-weight:700;border-left:3px solid var(--primary);box-shadow:0 1px 4px rgba(0,0,0,.04)}
  .fin-subtab{font-size:13.5px;font-weight:500;opacity:1}
  .fin-subtab .ico{width:16px;height:16px}
  .fin-subtab .ico svg{width:14px;height:14px}
  .fin-main{flex:1 1 auto;min-width:0;max-width:100%;position:relative;z-index:1}
  .fin-main:fullscreen,.fin-main:-webkit-full-screen,.fin-main:-moz-full-screen,.fin-main:-ms-fullscreen{width:100vw!important;height:100vh!important;max-width:none!important;background:var(--bg);overflow:auto!important;overflow-x:auto!important;overflow-y:auto!important;padding:16px;box-sizing:border-box;display:block!important}
  .fin-main:fullscreen .fin-card{height:auto;min-height:100%}
  .fin-main:fullscreen .wb-hscroll{bottom:10px}
  .fin-main:fullscreen .wb-hscroll .wb-hscroll-bar{box-shadow:0 2px 12px rgba(0,0,0,.25)}
  .fin-main:fullscreen .fin-table-wrap{scrollbar-width:none;scrollbar-color:transparent transparent}
  .fin-main:fullscreen .fin-table-wrap::-webkit-scrollbar{display:none}
  .fin-sync-banner{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:10px 14px;margin-bottom:10px;background:#fff7e6;border:1px solid #f0d39a;border-left:4px solid #e6a800;border-radius:10px;color:#7a5a12;font-size:13.5px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
  .fin-sync-banner .fin-sb-ico{font-size:16px;flex:0 0 auto}
  .fin-sync-banner .fin-sb-text{flex:1 1 auto;line-height:1.45}
  .fin-sync-banner .fin-sb-text b{color:#a8650c}
  .fin-sync-banner .fin-sb-btn{margin-left:auto;flex:0 0 auto;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
  .fin-sync-banner .fin-sb-btn:hover{filter:brightness(.95)}
  .fin-sync-banner .fin-sb-x{flex:0 0 auto;background:transparent;border:none;color:#a8853f;font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}
  .fin-sync-banner .fin-sb-x:hover{background:rgba(0,0,0,.06)}
  .fin-tab-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;background:#e0533a;color:#fff;font-size:10px;font-weight:700;border-radius:9px;border:2px solid var(--panel);white-space:nowrap;z-index:3}
  .fin-card{
    background:transparent;border:none;border-radius:0;padding:0;
    box-shadow:none
  }
.fin-mod-head{display:flex;align-items:baseline;gap:10px;margin:2px 0 12px;flex-wrap:wrap}
.fin-mod-title{font-size:17px;font-weight:800;color:var(--text);line-height:1.4}
.fin-mod-sub{font-size:12.5px;color:var(--muted);flex:1 1 auto;line-height:1.4}
  .fin-fs-btn{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:4px 8px;line-height:1.3;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;cursor:pointer;transition:.15s}
  .fin-fs-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
  .fin-fs-btn svg{width:14px;height:14px}
  .fin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:14px}
  .fin-stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
  .fin-stat-v{font-size:16px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fin-stat-t{font-size:12px;color:var(--muted);margin-top:3px}
  .fin-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
  .fin-search{flex:1 1 200px;min-width:160px;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:13.5px;background:var(--panel);color:var(--text);outline:none}
  .fin-search:focus{border-color:var(--primary)}
  .fin-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 14px;cursor:pointer;font-size:13.5px;font-weight:600;transition:.18s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-family:inherit}
  .fin-btn:hover{border-color:var(--primary);background:var(--primary-soft)}
  .fin-btn.primary{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 4px 12px var(--shadow)}
  .fin-btn.reim-monthly{gap:4px}
  .fin-btn-ghost{opacity:.7;border-style:dashed}
  /* 移动端防误改：财务子导航下方通栏滑动开关（仅移动端显示，桌面端强制隐藏兜底） */
  .fin-mlock-bar{display:none}
  .fin-mlock-txt{flex:1 1 auto;min-width:0}
  .fin-mlock-title{font-size:14px;font-weight:700;color:var(--text)}
  .fin-mlock-sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.4}
  .fin-toggle{position:relative;display:inline-block;flex:none;width:50px;height:28px;cursor:pointer}
  .fin-toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
  .fin-toggle-track{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.2s}
  .fin-toggle-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}
  .fin-toggle input:checked + .fin-toggle-track{background:var(--primary)}
  .fin-toggle input:checked + .fin-toggle-track .fin-toggle-thumb{transform:translateX(22px)}
  .fin-btn .ico{width:14px;height:14px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}
  .fin-btn .ico svg{width:14px;height:14px}
  .jd-range{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
  .jd-range-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:6px 14px;font-size:13px;cursor:pointer;font-family:inherit;transition:.15s}
  .jd-range-btn:hover{border-color:var(--primary)}
  .jd-range-btn.active{background:var(--primary);color:#fff;border-color:transparent}
  .jd-date{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:inherit;font-size:13px;background:var(--panel);color:var(--text)}
  .jd-date-display{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font:inherit;font-size:13px;background:var(--panel);color:var(--text);display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:.15s}
  .jd-date-display:hover{border-color:var(--primary);color:var(--primary)}
  .jd-tilde{color:var(--muted);margin:0 4px}
  .jd-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}
  @media(max-width:1100px){ .jd-kpis{grid-template-columns:repeat(3,minmax(0,1fr))} }
  @media(max-width:640px){ .jd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} }
  .jd-kpi-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 12px;min-width:0}
  .jd-kpi-v{font-size:16px;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}
  .jd-kpi-t{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.25}
  .jd-kpi-bracket{font-size:11px;color:var(--muted);opacity:.85;white-space:nowrap}
  .jd-kpi-hint{position:relative;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;border-radius:50%;background:var(--primary);color:#fff;font-size:10px;font-style:italic;font-weight:700;cursor:help;vertical-align:middle;font-family:Georgia,serif}
  .jd-kpi-hint-pop{position:absolute;bottom:155%;left:50%;transform:translateX(-50%) translateY(4px);white-space:normal;width:max-content;max-width:280px;text-align:center;background:#3d4a2e;color:#fff;font-size:12px;font-weight:500;padding:6px 10px;border-radius:7px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:60;box-shadow:0 6px 18px rgba(0,0,0,.22)}
  .jd-kpi-hint-pop .fin-ticheng-num{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;font-style:italic;font-variant-numeric:tabular-nums}
  .jd-kpi-hint-pop:after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#3d4a2e}
  .jd-kpi-hint:hover .jd-kpi-hint-pop,.jd-kpi-hint:focus .jd-kpi-hint-pop{opacity:1;transform:translateX(-50%) translateY(0)}
  .jd-charts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:stretch;margin-bottom:14px}
  @media(max-width:900px){ .jd-charts{grid-template-columns:1fr} }
  .jd-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 12px;display:flex;flex-direction:column;min-width:0}
  .jd-card-h{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:12px;flex:none}
  .jd-donut-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;justify-content:center}
  .jd-donut{width:150px;height:150px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex:none}
  .jd-donut-hole{width:96px;height:96px;border-radius:50%;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center}
  .jd-donut-pct{font-size:22px;font-weight:800;color:var(--primary)}
  .jd-donut-cap{font-size:11px;color:var(--muted)}
  .jd-donut-legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text);width:100%}
  .jd-leg{display:flex;align-items:center;gap:6px}
  .jd-dot{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
  /* 经营总览 第二板块：经营分析 */
  .jd-board2{margin-top:20px}
  .jd-board2-title{font-size:15px;font-weight:800;color:var(--text);margin:4px 2px 12px;display:flex;align-items:center;gap:8px}
  .jd-board2-title::before{content:'';width:4px;height:16px;border-radius:3px;background:var(--primary);display:inline-block}
  .jd-trend-card{padding:14px 14px 10px}
  .jd-trend-legend{display:flex;gap:18px;justify-content:center;margin-top:2px;font-size:12.5px;color:var(--text)}
  .jd-rank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
  @media(max-width:900px){ .jd-rank-grid{grid-template-columns:1fr} }
  .jd-rank{display:flex;flex-direction:column;gap:9px;margin-top:2px}
  .jd-rank-row{display:grid;grid-template-columns:22px 88px minmax(0,1fr) 95px;align-items:center;gap:6px;font-size:12.5px;min-width:0;min-height:22px}
  .jd-rank-no{width:22px;height:22px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex:none}
  .jd-rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);width:88px}
  .jd-rank-bar{height:10px;background:var(--line);border-radius:6px;overflow:hidden;min-width:0}
  .jd-rank-fill{height:100%;border-radius:5px;display:block}
  .jd-rank-val{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text);white-space:nowrap;text-align:right;min-width:95px}
  .jd-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}
  /* 近期现金流：近期收款 / 近期付款 */
  .jd-cf-section{margin-bottom:14px}
  .jd-cf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
  @media(max-width:1100px){ .jd-cf-grid{grid-template-columns:1fr 1fr} }
  @media(max-width:720px){ .jd-cf-grid{grid-template-columns:1fr} }
  .jd-cf-card .jd-card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
  .jd-cf-card.jd-cf-in .jd-card-h{color:#5a7a3a}
  .jd-cf-card.jd-cf-out .jd-card-h{color:#3f6fa3}
  .jd-cf-card.jd-cf-exp .jd-card-h{color:#e6a800}
  .jd-cf-pager{display:inline-flex;align-items:center;gap:5px}
  .jd-cf-arrow{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:6px;cursor:pointer;font-size:10px;line-height:1;padding:0;transition:background .15s,border-color .15s,opacity .15s}
  .jd-cf-arrow:hover:not([disabled]){background:var(--primary-soft);border-color:var(--primary)}
  .jd-cf-arrow[disabled]{opacity:.35;cursor:not-allowed}
  .jd-cf-page{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:30px;text-align:center}
  .jd-cf-list{display:flex;flex-direction:column;gap:1px}
  .jd-cf-item{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 8px;border-radius:9px;font-size:12.5px;min-width:0;transition:background .15s}
  .jd-cf-item:hover{background:var(--primary-soft)}
  .jd-cf-list .jd-cf-item:nth-child(even){background:color-mix(in srgb, var(--text) 5%, transparent)}
  .jd-cf-list .jd-cf-item:nth-child(even):hover{background:var(--primary-soft)}
  .jd-cf-date{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}
  .jd-cf-party{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);min-width:0}
  .jd-cf-method{font-size:11px;color:var(--muted);background:var(--line);border-radius:6px;padding:1px 7px;white-space:nowrap}
  .jd-cf-amt{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;text-align:right;min-width:86px}
  .jd-cf-amt-in{color:#5a7a3a}
  .jd-cf-amt-out{color:#3f6fa3}
  .jd-cf-amt-exp{color:#e6a800}
  .jd-cf-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--muted)}
  .jd-cf-foot b{font-size:13.5px;font-variant-numeric:tabular-nums}
  .fin-btn.primary:hover{background:var(--primary-dark);color:#fff}
  .fin-table-wrap{overflow-x:auto;width:100%;background:var(--panel);border-radius:12px;border:none !important;box-shadow:none !important;scrollbar-width:none;scrollbar-color:transparent transparent}
  .fin-table-wrap::-webkit-scrollbar{display:none}
  .cm-table-wrap{overflow-x:auto;width:100%;scrollbar-width:none}
  .cm-table-wrap::-webkit-scrollbar{display:none}
  /* 吸底横向滚动条（B 方案）：常驻视口底部，与上方表格同步；原生横向滚动条已隐藏 */
  .wb-hscroll{ position:sticky; bottom:8px; margin-top:6px; z-index:30; display:none; height:10px; }
  .wb-hscroll.show{ display:block; }
  .wb-hscroll-bar{ height:10px; border-radius:10px; background:var(--line); position:relative; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  .wb-hscroll-thumb{ position:absolute; top:0; left:0; height:10px; border-radius:10px; background:linear-gradient(90deg,var(--primary-light),var(--primary)); min-width:48px; cursor:grab; }
  .wb-hscroll-thumb:active{ cursor:grabbing; }
.fin-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;min-width:680px}
  .fin-table th,.fin-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
  .fin-table th{background:var(--primary-soft);color:var(--primary);font-weight:700;position:sticky;top:0;white-space:nowrap}
  .fin-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
  .fin-table tbody tr:hover td{background:var(--primary-soft)}
  .fin-table td.money{text-align:right;font-variant-numeric:tabular-nums}
  .fin-table td.ops{max-width:none;white-space:nowrap;padding:8px 12px}
  .fin-table.emp-table th,.fin-table.emp-table td{border:1px solid #e3e0d4;text-align:left}
  .fin-table.emp-table td.money{text-align:left}
  .fin-table.commission-table th,.fin-table.commission-table td{border:1px solid var(--line);text-align:left}
  .fin-table.commission-table td.money{text-align:right}
  .fin-table.salary-table th,.fin-table.salary-table td{border:1px solid var(--line)}
  .fin-table.expense-table th,.fin-table.expense-table td{border:1px solid var(--line)}
  .fin-table.reimburse-table th,.fin-table.reimburse-table td{border:1px solid var(--line)}
  .fin-table.reimburse-table .pp-sum td{font-weight:800}
  /* 客户订单：横向滚动时冻结前 3 列（编号/状态/客户名称） */
  .juniu-table th{z-index:5}
  .juniu-table .fin-no-col,.juniu-table .fin-no-cell{position:sticky;left:0;z-index:12;min-width:64px;max-width:64px;width:64px;background:var(--panel);box-sizing:border-box}
  .juniu-table .fin-no-col{background:var(--primary-soft);z-index:14}
  .juniu-table .fin-st-col,.juniu-table .fin-st-cell{position:sticky;left:64px;z-index:12;min-width:85px;max-width:85px;width:85px;background:var(--panel);box-sizing:border-box}
  .juniu-table .fin-st-col{background:var(--primary-soft);z-index:14}
  .juniu-table .fin-frozen-col{position:sticky;left:149px;z-index:12;min-width:220px;max-width:220px;width:220px;background:var(--panel);box-sizing:border-box}
  .juniu-table th.fin-frozen-col{background:var(--primary-soft);z-index:14}
  .juniu-table tbody tr:hover td{background:var(--primary-soft)}
  .juniu-table tbody tr.fin-row-overdue td.fin-no-cell,.juniu-table tbody tr.fin-row-overdue td.fin-st-cell,.juniu-table tbody tr.fin-row-overdue td.fin-frozen-col{background:#fff7f7}
  /* 供应商订单：横向滚动时冻结前 3 列（编号 / 对账状态 / 客户名称） */
  .fin-table.commission-table .fin-sup-no-col,
  .fin-table.commission-table .fin-sup-no-cell{position:sticky;left:0;z-index:12;min-width:64px;max-width:64px;width:64px;background:var(--panel);box-sizing:border-box}
  .fin-table.commission-table thead .fin-sup-no-col{z-index:34;background:var(--primary-soft)}
  .fin-table.commission-table .fin-sup-st-col,
  .fin-table.commission-table .fin-sup-st-cell{position:sticky;left:64px;z-index:12;min-width:130px;max-width:130px;width:130px;background:var(--panel);box-sizing:border-box}
  .fin-table.commission-table thead .fin-sup-st-col{z-index:34;background:var(--primary-soft)}
  .fin-table.commission-table .fin-sup-cust-col,
  .fin-table.commission-table .fin-sup-cust-cell{position:sticky;left:194px;z-index:12;min-width:200px;max-width:200px;width:200px;background:var(--panel);box-sizing:border-box}
  .fin-table.commission-table thead .fin-sup-cust-col{z-index:34;background:var(--primary-soft)}
  .fin-table.commission-table tbody tr:hover td{background:var(--primary-soft)}
  /* 提成核算「供应商对账」列：紧凑 pill + 三色 + 待对账提醒 */
  .fin-table.commission-table .fin-sup-recon-cell{vertical-align:middle;min-width:120px;max-width:170px;width:140px;white-space:nowrap}
  .fin-sup-recon-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;line-height:1.4;font-weight:600}
  .fin-sup-recon-pill.done{background:#e6f4ea;color:#1e8e3e}
  .fin-sup-recon-pill.partial{background:#fff4e5;color:#e67700}
  .fin-sup-recon-pill.none{background:#fce8e8;color:#c5221f}
  .fin-sup-recon-pill.empty{color:#999;background:transparent;font-weight:400;padding:0}
  .fin-sup-recon-pending{display:inline-block;margin-left:6px;font-size:12px;color:#c5221f;cursor:help;border-bottom:1px dotted #c5221f}
  .juniu-table tbody tr.fin-row-overdue:hover td{background:#fbe3e3}
  /* 移动端取消冻结，避免横向滚动时前 3 列挡住右侧内容 */
  @media(max-width:767px),(pointer:coarse){
    .juniu-table .fin-no-col,.juniu-table .fin-no-cell,
    .juniu-table .fin-st-col,.juniu-table .fin-st-cell,
    .juniu-table .fin-frozen-col,
    .fin-table.commission-table .fin-sup-no-col,.fin-table.commission-table .fin-sup-no-cell,
    .fin-table.commission-table .fin-sup-st-col,.fin-table.commission-table .fin-sup-st-cell,
    .fin-table.commission-table .fin-sup-cust-col,.fin-table.commission-table .fin-sup-cust-cell{
      position:static!important;left:auto!important;top:auto!important;z-index:auto!important;
      min-width:0!important;max-width:none!important;width:auto!important
    }
  }
  .fin-dt-in{cursor:pointer;background:#fbfaf5}
  .fin-date-filter{display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle}
  .fin-df-btn{width:24px;height:24px;border:1px solid transparent;background:transparent;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);transition:.15s}
  .fin-df-btn:hover{background:var(--primary-soft);color:var(--primary)}
  .fin-df-btn.active{color:var(--primary);background:var(--primary-soft);border-color:var(--primary)}
  .fin-dt-range-modal{position:relative;width:320px;background:var(--panel);border:1px solid var(--border,#e3e0d2);border-radius:16px;box-shadow:0 16px 50px rgba(0,0,0,.2);padding:18px;font-size:13px;color:var(--text)}
  .fin-dt-range-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .fin-dt-range-title{font-weight:700;font-size:15px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:.15s}
  .fin-dt-range-title:hover{background:var(--primary-soft);color:var(--primary)}
  .fin-dt-range-close{width:26px;height:26px;border:0;background:transparent;border-radius:6px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}
  .fin-dt-range-close:hover{background:var(--primary-soft);color:var(--primary)}
  .fin-dt-range-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--muted);font-size:11px;margin-bottom:4px}
  .fin-dt-range-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
  .fin-dt-range-grid .cm-dt-cell{height:34px;line-height:34px;border-radius:8px;cursor:pointer;font-size:13px}
  .fin-dt-range-grid .cm-dt-cell:hover{background:var(--primary-soft)}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-out{color:#ccc}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-today{box-shadow:inset 0 0 0 1px var(--primary)}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-sel{background:var(--primary);color:#fff}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-sel:hover{background:var(--primary-dark)}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-range{background:var(--primary-soft)}
  .fin-dt-range-grid .cm-dt-cell.cm-dt-range-hover{background:var(--primary-soft);opacity:.7}
  .fin-dt-range-grid .cm-dt-my-cell{height:50px;line-height:50px;border-radius:8px;cursor:pointer;font-size:13px}
  .fin-dt-range-grid .cm-dt-my-cell:hover{background:var(--primary-soft)}
  .fin-dt-range-grid .cm-dt-my-cell.cm-dt-sel{background:var(--primary);color:#fff}
  .fin-dt-range-grid .cm-dt-my-cell.cm-dt-sel:hover{background:var(--primary-dark)}
  .fin-dt-range-grid .cm-dt-my-cell.cm-dt-in-view{color:var(--text)}
  .fin-dt-range-grid .cm-dt-my-cell.cm-dt-out{color:#ccc}
  .fin-dt-range-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
  .fin-dt-range-foot .fin-btn{height:34px;padding:0 16px;border-radius:8px;font-size:13px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--muted)}
  .fin-dt-range-foot .fin-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
  .fin-dt-range-foot .fin-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
  .fin-dt-range-foot .fin-btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
  .fin-table th.cm-sortable .fin-date-filter{pointer-events:auto}
  /* 财务/客户管理共用的日期弹窗样式（全局，避免依赖单独页面注入） */
  .cm-dt-picker{position:fixed;z-index:99999;width:280px;background:#fff;border:1px solid var(--border,#e3e0d2);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:14px;font-size:13px;color:#333}
  .cm-dt-p-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .cm-dt-p-title{font-weight:700;font-size:14px}
  .cm-dt-p-nav{width:28px;height:28px;border:1px solid var(--border,#e3e0d2);background:var(--panel);border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:var(--muted)}
  .cm-dt-p-nav:hover{background:var(--primary-soft);border-color:var(--primary-soft)}
  .cm-dt-p-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:#999;font-size:11px;margin-bottom:4px}
  .cm-dt-p-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
  .cm-dt-cell{height:32px;line-height:32px;border-radius:8px;cursor:pointer;font-size:13px}
  .cm-dt-cell:hover{background:var(--primary-soft)}
  .cm-dt-cell.cm-dt-out{color:#ccc}
  .cm-dt-cell.cm-dt-today{box-shadow:inset 0 0 0 1px var(--primary)}
  .cm-dt-cell.cm-dt-sel{background:var(--primary);color:#fff}
  .cm-dt-cell.cm-dt-sel:hover{background:var(--primary-dark)}
  .cm-dt-p-time{display:flex;align-items:center;gap:10px;margin:12px 0 4px;padding-top:10px;border-top:1px solid var(--border,#eee)}
  .cm-dt-p-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
  .cm-dt-p-cancel{padding:7px 16px;border:1px solid var(--border,#e3e0d2);background:var(--panel);border-radius:8px;cursor:pointer;font-size:13px;color:var(--muted)}
  .cm-dt-p-ok{padding:7px 18px;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:8px;cursor:pointer;font-size:13px}
  .cm-dt-p-ok:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
  .fin-link{-webkit-appearance:none;appearance:none;background:transparent;border:0;box-shadow:none;margin:0;padding:0;color:var(--primary);cursor:pointer;font-size:12.5px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex;align-items:center;gap:5px;vertical-align:middle;font-family:inherit}
  .fin-sup-items-btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;gap:4px}
  .fin-sup-items-btn .fin-sup-txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fin-sup-items-btn .fin-sup-count{flex-shrink:0}
  .fin-link:hover{color:var(--primary-dark)}
  .fin-link:focus{outline:none}
  .fin-link.danger{color:#a33}
  .fin-link.danger:hover{color:#7a2222}
  .fin-link-ico{width:13px;height:13px;display:inline-block;vertical-align:middle;pointer-events:none}
  .fin-table td.ops .fin-link{margin-right:12px}
  .fin-table td.ops .fin-link:last-child{margin-right:0}
  .fin-status-pill{-webkit-appearance:none;appearance:none;border:0;background:#e9e6da;color:#666;padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;line-height:1.4}
  .fin-status-pill:hover{opacity:.85}
  .fin-status-pill.status-paidout{background:#1f9d55;color:#fff}
  .fin-status-pill.status-unpaid{background:#e03131;color:#fff;border:1px solid #c92a2a}
  .fin-status-pill.status-todo{background:#e9e6da;color:#666}
  .fin-status-pill.status-approved{background:#1f9d55;color:#fff}
  .fin-status-pill.status-rejected{background:#e8590c;color:#fff;border:1px solid #d9480f}
  .fin-st-menu-log{margin:8px 2px 2px;padding-top:8px;border-top:1px solid var(--line)}
  .fin-st-menu-log-title{font-size:11px;color:#888;margin-bottom:4px}
  .fin-st-menu-log-row{font-size:11px;color:#666;line-height:1.7;font-variant-numeric:tabular-nums}
  .fin-st-menu-recon{background:#fff;color:#2e7d4f;border-color:#7cc39a}
  .fin-st-menu-recon:hover{background:#eaf6ef}
  .fin-recon-tag{display:inline-block;font-size:10px;line-height:1;color:#2e7d4f;background:#e8f3ec;border:1px solid #bfe0cd;border-radius:6px;padding:3px 5px;margin-right:5px;vertical-align:middle;font-weight:600}
  .fin-summary{margin-top:18px;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:14px}
  .fin-sum-row{display:flex;gap:16px;align-items:flex-start;margin-top:18px}
  .fin-sum-row:first-child{margin-top:0}
  .fin-sum-col{flex:1;min-width:0}
  .fin-sum-col .fin-summary{margin-top:18px}
  .fin-sum-col .fin-summary:first-child{margin-top:0}
  @media(max-width:768px){ .fin-sum-row{flex-direction:column;gap:0;align-items:stretch;width:100%} .fin-sum-col{width:100%;min-width:0} .fin-sum-col+.fin-sum-col{margin-top:18px} }
  .fin-summary-title{font-size:14.5px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center}
  .fin-summary-title.fin-sum-toggle{justify-content:space-between;cursor:pointer;user-select:none}
  .fin-summary.collapsed .fin-summary-title{margin-bottom:0}
  .fin-summary.collapsed .fin-summary-body{display:none}
  .fin-summary-title .fin-chev{margin-left:10px;font-size:12px;color:var(--muted);font-weight:700}
  .fin-summary.pending{border-left-color:#f0a500}
  .fin-summary.issued{border-left-color:var(--primary)}
  .fin-sum-tag{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:700;vertical-align:middle;line-height:1.7}
  .fin-sum-tag.pending{background:#fff3bf;color:#b38600;border:1px solid #ffe066}
  .fin-sum-tag.issued{background:#d3f9d8;color:#1f7a3d;border:1px solid #8ce99a}
  .fin-sum-toggle{cursor:pointer;user-select:none}
  .fin-chev{margin-left:auto;font-size:12px;color:var(--muted);font-weight:700}
  .fin-summary-title.fin-sum-toggle .fin-sum-tag{margin-left:auto}
  .fin-summary.collapsed .fin-sum-body{display:none}
  .fin-summary-grand{font-size:13px;color:var(--muted);margin-bottom:14px}
  .fin-summary-grand b{color:var(--primary);font-size:15px;font-weight:700}
  .fin-summary-empty{font-size:13px;color:var(--muted);padding:8px 0}
  .fin-sum-group{margin-bottom:14px}
  .fin-sum-group:last-child{margin-bottom:0}
  .fin-sum-month{font-size:13.5px;font-weight:700;color:#fff;padding:6px 10px;background:var(--primary);border-radius:8px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;white-space:nowrap;overflow:hidden}
  .fin-sum-month.fin-sum-toggle:hover{opacity:.92}
  .fin-sum-name{overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;margin-right:auto}
  .fin-sum-right{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:10px}
  .fin-sum-month .fin-chev{color:#fff;flex-shrink:0}
  .fin-sum-group.collapsed .fin-sum-body{display:none}
  .fin-sum-month-total{font-size:12.5px;font-weight:600;color:#fff;flex-shrink:0}
  .fin-sum-table{table-layout:fixed;width:100%;border-collapse:collapse;font-size:13px}
  .fin-sum-table th,.fin-sum-table td{width:33.33%;border:1px solid var(--line);padding:7px 10px;text-align:left}
  .fin-sum-table th{background:var(--primary-soft);font-weight:600;color:var(--primary)}
  .fin-sum-table td.money,.fin-sum-table th.money{text-align:right;font-variant-numeric:tabular-nums}
  .fin-view-val{padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:14px;color:var(--text);min-height:40px;display:flex;align-items:center}
  .fin-ie-cell{position:relative;cursor:pointer;padding-right:22px}
  .fin-ie-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
  .fin-cust-cell{position:relative;cursor:pointer;padding-right:22px}
  .fin-cust-cell:hover .fin-ie-ico{opacity:1;color:#c8900a}
  .fin-cust-link{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;color:var(--primary,#5a7a3a);font-weight:600}
  .fin-cust-cell button.fin-cust-link{background:none;border:0;padding:0;margin:0;font-family:inherit;font-size:inherit;font-weight:600;cursor:pointer}
  .fin-ie-ico{position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--accent,#e6a800);opacity:0;transition:opacity .12s,color .12s;pointer-events:none}
  .fin-ie-cell:hover .fin-ie-ico{opacity:1;color:#c8900a}
  .fin-ie-input{width:calc(100% - 4px);font-size:12px;padding:2px 4px;border:1px solid var(--primary);border-radius:4px;vertical-align:middle;box-sizing:border-box;background:#fff;color:var(--text);outline:none}
  .fin-ie-cell select.fin-ie-input{width:calc(100% - 4px)}
  .fin-empty{padding:40px 16px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:12px}
  .fin-empty-row{text-align:center;color:var(--muted);padding:30px 0;font-size:14px}
  .fin-foot-note{font-size:12px;color:var(--muted);margin-top:10px}
  .fin-modal-mask{position:fixed;inset:0;background:rgba(40,46,34,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;backdrop-filter:blur(2px)}
  .fin-modal{background:#fff;border-radius:18px;width:min(520px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.3);animation:finPop .18s ease}
  @keyframes finPop{from{transform:translateY(12px) scale(.98);opacity:0}to{transform:none;opacity:1}}
  .fin-modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
  .fin-modal-h span{font-size:16px;font-weight:800;color:var(--text)}
  .fin-modal-x{background:none;border:none;color:var(--muted);cursor:pointer;transition:.15s;padding:0;margin:0;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center}
  .fin-modal-x svg{width:18px;height:18px;pointer-events:none}
  .fin-modal-x:hover{color:#a33;transform:rotate(90deg);background:#fbeaea}
  .fin-modal-b{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:14px;flex:1 1 auto;min-height:0}
  .fin-fld{display:flex;flex-direction:column;gap:6px}
  .fin-fld label{font-size:13px;font-weight:600;color:var(--text)}
  .fin-fld .req{color:#c0392b;margin-left:2px}
  .fin-hint{font-size:12px;color:var(--muted);line-height:1.4}
  .fin-in{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;background:#fff;color:var(--text);outline:none;width:100%;font-family:inherit}
  .fin-in:focus{border-color:var(--primary)}
  textarea.fin-in{height:auto;min-height:70px;padding:10px 12px;resize:vertical}
  .fin-modal-f{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}
  /* 工资「按月导入」人员选择 */
  .fin-chk-bar{display:flex;gap:8px;align-items:center}
  .fin-chk-bar .fin-in{flex:1;height:36px}
  .fin-chk-quick{display:flex;gap:6px;flex:0 0 auto}
  .fin-chk-quick .fin-btn{padding:6px 10px;font-size:12.5px;font-weight:600}
  .fin-chk-list{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;padding:6px}
  .fin-chk{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:14px}
  .fin-chk:hover{background:var(--primary-soft)}
  .fin-chk input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex:0 0 auto}
  .fin-chk-name{flex:1}
  /* 工资绩效审计弹窗 —— 参考客户管理「操作记录」列表样式 */
  .fin-log-box{background:var(--card,#fff);border:1px solid var(--line,#e3e0d4);border-radius:14px;overflow:hidden}
  .fin-log-card{border-bottom:1px solid #f3f1ea;padding:13px 15px}
  .fin-log-card:last-child{border-bottom:none}
  .fin-log-h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .fin-log-badge{font-size:12px;font-weight:700;padding:3px 11px;border-radius:20px;background:#e6f3ea;color:#2f8a4f;flex:none;white-space:nowrap}
  .fin-log-t{font-size:12px;color:var(--muted,#999);font-variant-numeric:tabular-nums;flex:none;white-space:nowrap}
  .fin-log-op{font-size:12px;color:var(--muted,#999);margin-left:auto;white-space:nowrap}
  .fin-log-dlist{display:flex;flex-direction:column;gap:6px}
  .fin-log-drow{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}
  .fin-log-name{font-weight:700;color:var(--text,#333)}
  .fin-log-month{color:var(--muted,#999);font-size:12px}
  .fin-log-arrow{color:var(--muted,#999)}
  .fin-log-val{font-variant-numeric:tabular-nums;color:var(--text,#333)}
  .fin-log-delta{flex:none;font-weight:700;font-variant-numeric:tabular-nums;border-radius:6px;padding:1px 7px;font-size:12px}
  .fin-log-delta.neg{background:#fbeaea;color:#a33}
  .fin-log-delta.pos{background:#e6f3ea;color:#2f8a4f}
  .fin-log-delta.zero{background:#f0eee6;color:var(--muted,#999)}
  .fin-log-reason{font-size:12px;color:var(--muted,#777);width:100%}
  .fin-log-empty{text-align:center;color:var(--muted,#999);padding:30px 0;font-size:14px}
  .fin-log-foot{font-size:12px;color:var(--muted,#999);text-align:center;padding-top:2px}
  /* 财务模块管理弹窗（部门/职位选项增删） */
  .fin-mod-mask{position:fixed;inset:0;background:rgba(40,46,34,.45);display:flex;align-items:center;justify-content:center;z-index:10000;padding:16px;backdrop-filter:blur(2px)}
  .fin-mod-modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.3);animation:finPop .18s ease}
  .fin-mod-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
  .fin-mod-h span{font-size:16px;font-weight:800;color:var(--text)}
  .fin-mod-x{background:none;border:none;color:var(--muted);cursor:pointer;transition:.15s;padding:0;margin:0;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center}
  .fin-mod-x svg{width:18px;height:18px;pointer-events:none}
  .fin-mod-x:hover{color:#a33;transform:rotate(90deg);background:#fbeaea}
  .fin-mod-sub{font-size:12.5px;color:var(--muted);padding:10px 18px 0}
  .fin-mod-body{padding:10px 18px;overflow:auto;display:flex;flex-direction:column;gap:14px}
  .fin-mod-sec{background:#faf8f0;border:1px solid #ece8da;border-radius:12px;padding:12px 14px}
  .fin-mod-sec-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .fin-mod-sec-t{font-size:14px;font-weight:700;color:var(--text)}
  .fin-mod-count{font-size:11px;background:var(--primary);color:#fff;padding:1px 8px;border-radius:10px;font-weight:700}
  .fin-mod-list{display:flex;flex-wrap:wrap;gap:8px}
  .fin-mod-empty{font-size:13px;color:var(--muted);padding:6px 0}
  .fin-mod-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 6px 5px 12px;font-size:13px;color:var(--text);cursor:grab;user-select:none;touch-action:none;transition:box-shadow .15s,transform .1s}
  .fin-mod-chip:active{cursor:grabbing}
  .fin-mod-chip.dragging{opacity:.65;box-shadow:0 6px 18px rgba(0,0,0,.18);transform:scale(1.03);z-index:1}
  .fin-mod-chip button{border:none;background:#f3e6e6;color:#b35;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;margin-left:2px;transition:.15s;pointer-events:auto}
  .fin-mod-chip button:hover{background:#f6d6d6;color:#a22}
  .fin-mod-addrow{display:flex;gap:8px;margin-top:10px}
  .fin-mod-addrow .fin-mod-inp{flex:1;min-width:0}
  .fin-mod-f{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}
  .fin-mod-f-grp{display:flex;align-items:center;gap:8px}
  .fin-divider{height:1px;margin:8px 8px 6px;background:linear-gradient(to right, transparent 0%, var(--line) 35%, var(--line) 65%, transparent 100%);position:relative}
  .fin-modtab{color:var(--text)}
  .fin-modtab:hover{color:var(--primary)}
  @media(max-width:768px){
    html,body{overflow-x:hidden;overflow-x:clip}
    #page-health .content{padding-left:8px;padding-right:8px;max-width:none;width:100%}
    .fin-wrap{flex-direction:column;gap:8px;align-items:stretch}
    .fin-main{width:100%;max-width:100%;align-self:stretch}
    .fin-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;overflow-x:hidden;position:static;gap:8px;padding:0;justify-items:center}
    .fin-card{margin-left:0;padding:0}
    .fin-tab{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;font-size:12px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:none;transform:none;min-height:auto;white-space:normal;line-height:1.25;width:100%;box-sizing:border-box}
    .fin-tab .ico{width:20px;height:20px}
    .fin-tab .ico svg{width:18px;height:18px}
    .fin-tab:hover{transform:none;background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft)}
    .fin-tab.active{border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:10px;box-shadow:0 3px 10px rgba(90,122,58,.25)}
    .fin-divider{display:none}
    .fin-modtab{min-height:auto;flex-direction:column;padding:8px 4px}
    .fin-mlock-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;grid-column:1/-1;background:var(--panel);border:1px solid var(--line);border-radius:14px}
    .fin-mod-head{margin:0 0 12px;row-gap:0}
    .fin-mod-head .fin-mod-sub{padding-left:0;padding-top:0;margin-top:0}
    /* 开票明细 / 对账单 / 回收站：去掉自身横向 padding，避免与 .content 的 8px 叠加，使其左右间距与同模块其他子页一致 */
    .fin-inv-page{padding-left:0!important;padding-right:0!important}
    .fin-recon-page{padding-left:0!important;padding-right:0!important}
    .fin-recycle{padding-left:0!important;padding-right:0!important}
  }

  /* ===== 备份中心（独立页面，结构与设置页一致：.page > header + .content） ===== */
  #page-backup .content{max-width:none;width:100%;box-sizing:border-box}
  .backup-tabs{display:flex;gap:4px;padding:10px 0 0;border-bottom:1px solid var(--line);flex:0 0 auto}
  .backup-tab{padding:9px 14px;font-size:14px;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit}
  .backup-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}
  .backup-body{padding:18px 0 0;flex:1 1 auto;min-height:0}
  .backup-body .bk-card:last-child{margin-bottom:0}
  .backup-pane{display:none}
  .backup-pane.active{display:block;animation:fade .2s ease}
  .bk-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}
  .bk-card-h{font-size:15px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px;justify-content:space-between}
  .bk-mod-row{display:flex;align-items:flex-start;gap:9px;padding:8px 4px;font-size:14px;color:var(--text);cursor:pointer;border-bottom:1px dashed var(--line)}
  .bk-mod-row:last-child{border-bottom:none}
  .bk-mod-row input{width:16px;height:16px;accent-color:var(--primary);flex:0 0 auto;margin-top:2px}
  .bk-mod-row>span{flex:1;min-width:0;line-height:1.5}
  .bk-fields{margin:6px 0 14px}
  .bk-field{display:flex;align-items:center;gap:10px;padding:8px 4px;font-size:14px;color:var(--text);border-bottom:1px dashed var(--line)}
  .bk-field>span:first-child{width:auto;flex:0 0 auto;min-width:42px;color:var(--muted)}
  .bk-field select,.bk-field input[type=text],.bk-field input[type=number],.bk-field input[type=time]{flex:1;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-family:inherit;font-size:13px}
  .bk-field input[type=time]{flex:0 0 130px}
  /* 全局克隆：四字段恢复每行一个（标签与 input 同行，上下排列） */
  .bk-fields-row{display:block}
  .bk-fields-row .bk-field{flex-direction:row;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px dashed var(--line)}
  .bk-fields-row .bk-field>span:first-child{min-width:42px}
  .bk-fields-row .bk-field input{flex:1;min-width:0}
  .bk-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
  .bk-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;background:var(--primary);color:#fff;border:1px solid transparent;transition:filter .15s}
  .bk-btn:active{filter:brightness(.93)}
  .bk-btn.sec{background:var(--panel);color:var(--primary);border:1px solid var(--primary)}
  .bk-btn.sm{padding:6px 12px;font-size:12px}
  .bk-btn.xs{padding:4px 10px;font-size:12px}
  .bk-uncover-row code{white-space:nowrap}
  .bk-btn.danger{background:#c0392b;color:#fff;border-color:#c0392b}
  .bk-btn.cloud{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 4px 14px var(--shadow)}
  .bk-btn.cloud:hover{filter:brightness(.97)}
  .bk-cloud-actions{display:flex;gap:10px}
  .bk-cloud-actions .bk-btn{flex:0 0 auto}
  .bk-tip{font-size:13px;color:var(--muted)}
  .bk-warn{font-size:13px;line-height:1.6;color:#8a5a00;background:#fff7e6;border:1px solid #ffd591;border-radius:8px;padding:9px 12px;margin:10px 0 2px}
  .bk-warn a{color:#b45309;text-decoration:underline}
  .bk-danger{color:#c0392b;font-size:12px;margin-left:6px}
  .bk-pkg code{background:#f2f4f7;padding:1px 5px;border-radius:4px;font-size:12px;font-family:var(--mono,monospace)}
  .bk-tip.ok{color:var(--primary)}
  .bk-tip.err{color:#c0392b}
  .bk-list{display:flex;flex-direction:column;gap:8px}
  .bk-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
  .bk-item .bk-meta{flex:1;min-width:0}
  .bk-item .bk-name{font-size:13.5px;font-weight:600;color:var(--text);word-break:break-all}
  .bk-item .bk-sub{font-size:12px;color:var(--muted);margin-top:2px}
  .bk-tags{display:inline-flex;flex-wrap:wrap;gap:4px;margin-top:5px}
  .bk-tag{font-size:11px;padding:2px 7px;border-radius:10px;background:var(--primary-soft);color:var(--primary-dark)}
  .bk-empty{padding:30px;text-align:center;color:var(--muted);font-size:13px}
  .bk-ops{display:flex;gap:6px;flex-shrink:0;align-items:center}
  .bk-ops-col{display:flex;flex-direction:row;gap:6px;flex-shrink:0;align-items:center}
  .bk-ops-sep{width:1px;height:18px;background:var(--line);margin:0 4px;flex-shrink:0}
  .bk-tree-sec{margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
  .bk-tree-head{display:flex;align-items:center;gap:9px;padding:11px 12px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;border-bottom:1px solid transparent}
  .bk-tree-head:not(:last-child){border-bottom-color:var(--line)}
  .bk-tree-head input{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0}
  .bk-tree-note{margin-left:auto;font-size:12px;color:var(--muted);font-weight:400}
  .bk-tree-head input:disabled + span{opacity:.6}
  .bk-tree-subs{padding:6px 12px 10px 38px;display:flex;flex-direction:column;gap:2px}
  .bk-tree-sub{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:13px;color:var(--text);cursor:pointer;border-bottom:1px dashed var(--line)}
  .bk-tree-sub:last-child{border-bottom:none}
  .bk-tree-sub input{width:15px;height:15px;accent-color:var(--primary);flex-shrink:0}
  .bk-tree-sub input:disabled{opacity:.45;cursor:not-allowed}
  .bk-tree-sub.bk-note-only{color:var(--text);opacity:.55;cursor:default;font-size:12.5px;font-style:italic;border-bottom:none}
  .bk-help-list{margin:0;padding-left:18px;font-size:13px;color:var(--text);line-height:1.7}
  .bk-help-list li{margin-bottom:6px}
  .bk-help-list b{color:var(--primary-dark)}
  /* ---- 备份中心迭代：一键全量 / 覆盖率自检 / 列表筛选 / 内容详情 ---- */
  .bk-onekey{border-color:var(--primary);background:linear-gradient(180deg,var(--primary-soft),var(--panel) 70%)}
  .bk-btn.bk-lg{padding:11px 22px;font-size:14px}
  .bk-btn:disabled{opacity:.6;cursor:not-allowed}
  .bk-tree-badge{margin-left:auto;font-size:10.5px;padding:1px 6px;border-radius:8px;background:var(--primary-soft);color:var(--primary-dark);white-space:nowrap}
  .bk-tree-badge.ok{background:#eaf6ec;color:#2f6b3a}
  .bk-tree-badge.miss{background:#fff7e6;color:#8a5a00}
  .bk-size{margin-left:auto;font-size:10.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
  .bk-tree-sub span:nth-child(2){flex:1}
  .bk-tree-badge+.bk-size,.bk-size+.bk-tree-badge{margin-left:6px}
  .bk-cover{font-size:12.5px;line-height:1.7;padding:9px 11px;border-radius:10px;margin-bottom:12px;border:1px solid var(--line);background:var(--bg);color:var(--muted)}
  .bk-cover.ok{background:var(--primary-soft);border-color:var(--primary-light);color:var(--primary-dark)}
  .bk-cover.warn{background:#fff7e6;border-color:#f0d9a8;color:#8a5a00}
  .bk-cover code{font-size:11.5px;padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.06);margin:1px 2px;display:inline-block}
  .bk-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
  .bk-filter input[type=text]{flex:1;min-width:150px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-family:inherit;font-size:13px}
  .bk-filter select{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-family:inherit;font-size:13px}
  .bk-filter .bk-tip{margin-left:auto;white-space:nowrap}
  .bk-pick{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0}
  .bk-item .bk-ops-col{align-items:center;max-width:none}
  .bk-item .bk-ops{flex-wrap:wrap;justify-content:flex-end}
  .bk-type{display:inline-block;font-size:11px;padding:1px 7px;border-radius:8px;background:var(--bg);border:1px solid var(--line);margin-right:4px}
  .bk-type.bk-enc{background:#eef4fb;color:#33628f;border-color:transparent}
  .bk-type.bk-plain{background:#fdecec;color:#b3261e;border-color:transparent;font-weight:600}
  .bk-type-snapshot{background:var(--primary-soft);color:var(--primary-dark);border-color:transparent}
  .bk-type-auto{background:#eef4fb;color:#33628f;border-color:transparent}
  .bk-type-manual{background:var(--primary-soft);color:var(--primary-dark);border-color:transparent}
  .bk-type-snapshot-zip{background:#e7f6ec;color:#1a7a34;border-color:transparent;font-weight:600}
  .bk-type-archive{background:#eef4fb;color:#33628f;border-color:transparent}
  .bk-type-code-auto{background:#eef4fb;color:#33628f;border-color:transparent}
  /* 备份列表分页 */
  .bk-pager{margin-top:12px;display:flex;justify-content:center}
  .bk-pg-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
  .bk-pg{font-family:inherit;font-size:12.5px;min-width:30px;height:30px;padding:0 9px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;transition:filter .15s}
  .bk-pg:hover{filter:brightness(.97)}
  .bk-pg.cur{background:var(--primary);color:#fff;border-color:var(--primary)}
  .bk-pg.dis{opacity:.45;cursor:not-allowed}
  .bk-pg-ell{padding:0 4px;color:var(--muted);align-self:center}
  .bk-pg-sep{width:1px;height:18px;background:var(--line);margin:0 4px}
  .bk-pg-size{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;margin-left:4px}
  .bk-pg-size select{font-family:inherit;font-size:12.5px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}
  .bk-field-wide{grid-column:1/-1}
  .bk-field-wide input{width:80px}
  .bk-recent{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;margin-left:auto}
  .bk-recent select{font-family:inherit;font-size:12.5px;height:28px;padding:0 6px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer}
  .bk-pg-info{font-size:12.5px;color:var(--muted)}
  .bk-type-pre-restore{background:#fff7e6;color:#8a5a00;border-color:transparent}
  .bk-type-auto-zip{background:#e6f4f1;color:#1f7a6a;border-color:transparent;font-weight:600}
  /* 手机端：备份中心整体适配 */
  @media (max-width:640px){
    /* 标签页：横向滚动，不挤压换行 */
    .backup-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;gap:2px}
    .backup-tab{flex:0 0 auto;white-space:nowrap;padding:9px 12px;font-size:13px}
    .backup-body{padding-top:14px}
    .bk-card{padding:13px;margin-bottom:11px}
    .bk-card-h{font-size:14px;margin-bottom:10px}
    .bk-mod-row{font-size:13px;padding:9px 2px;gap:8px}
    .bk-mod-row input{margin-top:1px}
    .bk-mod-row>span{word-break:break-word}
    .bk-field>span:first-child{min-width:0}
    /* 操作按钮：占满整行，避免被挤到换行难点 */
    .bk-actions{margin-top:10px;gap:8px}
    .bk-actions .bk-btn{flex:1 1 auto}
    .bk-btn.bk-lg{width:100%}
    /* 列表项：元数据与操作分两行，操作按钮九宫格 */
    .bk-item{flex-wrap:wrap;align-items:flex-start;gap:8px}
    .bk-item .bk-pick{margin-top:2px}
    .bk-item .bk-meta{flex:1 1 60%;min-width:0}
    .bk-item .bk-ops-col{flex:1 1 100%;max-width:none;margin-top:2px}
    .bk-item .bk-ops{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;justify-content:stretch}
    .bk-ops-sep{display:none}
    .bk-item .bk-sub{font-size:11px;line-height:1.5}
    .bk-item .bk-name{font-size:13px}
    .bk-filter{width:100%;gap:8px}
    .bk-filter input[type=text]{flex:1 1 100%;min-width:0}
    .bk-filter select{flex:1 1 auto;min-width:120px}
    .bk-filter #bkBatchDel{flex:1 1 auto;min-width:120px}
    .bk-filter .bk-tip{flex:1 1 100%;margin-left:0}
    /* 全局克隆：附加规则竖排 */
    .bk-rule{flex-direction:column;align-items:stretch;gap:6px}
    .bk-rules{gap:6px}
    .bk-warn{font-size:12.5px}
  }
  /* 超窄屏：列表操作两列 */
  @media (max-width:400px){
    .bk-item .bk-ops{grid-template-columns:repeat(2,1fr)}
  }
  .bk-ins-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:140;display:none;align-items:flex-start;justify-content:center;padding:6vh 12px;overflow:auto}
  .bk-ins-mask.show{display:flex}
  .bk-ins-panel{width:100%;max-width:620px;background:var(--panel);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:84vh;overflow:hidden}
  .bk-ins-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;color:var(--text);word-break:break-all}
  .bk-ins-h .fin-mod-x{margin-left:auto;flex-shrink:0}
  .bk-ins-body{padding:14px 16px 18px;overflow-y:auto;background:var(--bg)}
  /* 全局克隆 / 云部署之间主题化分隔符：渐变线 + 居中「或」字，跟随 UI 主题（--line/--bg 变量）变动 */
  .bk-divider{position:relative;height:1px;margin:16px 0 12px;background:linear-gradient(90deg,transparent,var(--line) 18%,var(--line) 82%,transparent)}
  .bk-divider span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg);color:var(--muted);font-size:11px;padding:0 10px;letter-spacing:1px}
  /* 弹窗内 Markdown 渲染（部署教程） */
  .bk-md{font-size:13px;line-height:1.72;color:var(--text)}
  .bk-md h1{font-size:19px;margin:4px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--primary-soft);color:var(--primary-dark)}
  .bk-md h2{font-size:16px;margin:18px 0 8px;color:var(--primary-dark)}
  .bk-md h3{font-size:14px;margin:14px 0 6px;color:var(--text)}
  .bk-md h4,.bk-md h5,.bk-md h6{font-size:13px;margin:10px 0 4px;color:var(--muted)}
  .bk-md p{margin:6px 0}
  .bk-md ul,.bk-md ol{margin:6px 0;padding-left:22px}
  .bk-md li{margin:4px 0}
  .bk-md a{color:var(--primary);text-decoration:underline}
  .bk-md code{background:var(--primary-soft);color:var(--primary-dark);padding:1px 5px;border-radius:5px;font-size:12px;font-family:ui-monospace,Consolas,Menlo,monospace}
  .bk-md pre{background:var(--primary-soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow-x:auto;margin:8px 0}
  .bk-md pre code{background:none;color:var(--text);padding:0;border-radius:0;font-size:12px;line-height:1.6;white-space:pre}
  .bk-md blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--primary);background:var(--primary-soft);border-radius:0 8px 8px 0;color:var(--muted)}
  .bk-md strong{color:var(--primary-dark);font-weight:700}
  .bk-ins-meta{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:12px}
  .bk-ins-sec{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin-bottom:10px;overflow:hidden}
  .bk-ins-sec-h{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-size:13px;font-weight:700;color:var(--text);border-bottom:1px solid var(--line)}
  .bk-ins-sec-h span{font-size:11.5px;font-weight:400;color:var(--muted)}
  .bk-ins-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 12px;font-size:12.5px;color:var(--text);border-bottom:1px dashed var(--line)}
  .bk-ins-row:last-child{border-bottom:none}
  .bk-ins-row code{font-size:11.5px;padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.06);margin-left:6px}
  .bk-ins-row>span:last-child{color:var(--muted);white-space:nowrap}

  /* ===== 打印生成设计器 ===== */
  .pp-wrap{display:flex;flex-direction:column;height:100%;background:var(--bg)}
  .pp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;background:var(--panel);border-radius:12px;flex-wrap:wrap}
  .pp-tbar-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pp-tbar-item{display:flex;align-items:center;gap:4px}
  .pp-tbar-label{font-size:14px;color:var(--text);font-weight:700}
  .pp-toolbar select,.pp-toolbar .pp-title{padding:7px 11px;border:1px solid var(--line);border-radius:10px;font-size:13px;outline:none;background:var(--bg);color:var(--text);transition:border-color .12s}
  .pp-toolbar select:hover,.pp-toolbar .pp-title:hover{border-color:var(--primary)}
  .pp-title{width:220px}
  .pp-btn{padding:7px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font-size:13px;cursor:pointer;transition:all .12s}
  .pp-btn:hover{border-color:var(--primary);color:var(--primary)}
  .pp-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
  .pp-btn.primary:hover{opacity:.92;color:#fff}
  .pp-btn.danger{color:#c0392b;border-color:#f0c6cb;background:#fff5f5}
  .pp-btn.danger:hover{background:#ffeaea}
  .pp-btn.sm{padding:4px 10px;font-size:12px;border-radius:8px}
  .pp-body{display:flex;flex-direction:column;flex:1;min-height:0}
  .pp-config{display:flex;flex-direction:column;gap:16px;padding:16px 0 0;flex:none;align-items:stretch}
  .pp-config-row{display:flex;gap:16px;align-items:stretch}
  .pp-row-full .pp-card{flex:1}
  .pp-row-half .pp-card{flex:1;min-width:0}
  .pp-card{background:var(--panel);border:none;border-radius:12px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:12px;flex:1}
  .pp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .pp-card-title{font-size:14px;font-weight:700;color:var(--text)}
  .pp-card-sub{font-size:12px;color:var(--muted);font-weight:400;width:100%;margin-top:-6px}
  .pp-fields{display:flex;flex-wrap:wrap;gap:8px}
  .pp-fields-break{width:100%;height:0}
  .pp-field{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--bg);font-size:12px;color:var(--text);cursor:pointer;transition:all .12s;user-select:none}
  .pp-field:hover{border-color:var(--primary)}
  .pp-field input[type=checkbox]{width:14px;height:14px;accent-color:var(--primary);margin:0;cursor:pointer}
  .pp-field.checked{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
  .pp-field .pp-tag{margin:0 6px 0 0}
  .pp-linkrow{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:0;background:var(--primary-soft);border:1px solid var(--primary);border-radius:10px;flex-wrap:wrap}
  .pp-link-label{font-size:13px;font-weight:600;color:var(--primary)}
  .pp-link-hint{font-size:11.5px;color:var(--muted)}
  .pp-grouprow{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:0;background:#fff7e6;border:1px solid #e8920c;border-radius:10px;flex-wrap:wrap}
  .pp-grouprow .pp-link-label{color:#b8740a}
  .pp-grouprow .pp-link-hint{color:#9a7b3f}
  .pp-grouprow .pp-group-sel{border-color:#e8920c;color:#9a5b0a}
  .pp-switch{position:relative;display:inline-block;width:38px;height:20px;flex:none}
  .pp-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
  .pp-switch-track{position:absolute;inset:0;background:#cdd3da;border-radius:20px;transition:background .15s;pointer-events:none}
  .pp-switch-track:before{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
  .pp-switch input:checked+.pp-switch-track{background:var(--primary)}
  .pp-switch input:checked+.pp-switch-track:before{transform:translateX(18px)}
  .pp-calcs,.pp-filters{display:flex;flex-direction:column;gap:8px;min-height:40px}
  .pp-calchip,.pp-fchip{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--text)}
  .pp-calchip b,.pp-fchip b{color:#c0392b;cursor:pointer;font-size:15px;line-height:1;padding:0 2px;border-radius:4px;transition:background .12s}
  .pp-calchip b:hover,.pp-fchip b:hover{background:#ffeaea}
  .pp-empty{font-size:12.5px;color:var(--muted);font-style:italic;padding:10px 12px;background:var(--bg);border-radius:8px;border:1px dashed var(--line)}
  .pp-empty.big{font-size:14px;padding:40px 24px;text-align:center;background:var(--bg);border:1px dashed var(--line);border-radius:10px;color:var(--muted)}
  .pp-main{flex:1;min-width:0;overflow:auto;padding:16px 0;background:var(--bg);position:relative}
  .pp-paper{background:#fff;color:#222;border-radius:4px;box-shadow:0 4px 24px rgba(0,0,0,.08);max-width:none;width:100%;margin:0;padding:32px 16px;min-height:600px;overflow-x:auto}
  /* 打印预览吸底滚动条：固定在视口底部，与 pp-paper 内容区同宽 */
  .pp-hscroll.wb-hscroll{position:fixed;bottom:8px;left:0;width:auto;z-index:50;margin-top:0}
  .pp-paper{scrollbar-width:none;scrollbar-color:transparent transparent}
  .pp-paper::-webkit-scrollbar{display:none}
  .pp-ptitle{font-size:20px;font-weight:800;text-align:center;margin-bottom:22px;color:#1a1a1a;letter-spacing:.5px}
  .pp-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:13px}
  .pp-table th,.pp-table td{border:1px solid #d8dde3;padding:8px 10px;text-align:left}
  .pp-table thead th{background:#f3f6fa;color:#222;font-weight:700;position:sticky;top:0}
  .pp-table tbody tr:nth-child(even){background:#fafbfc}
  .pp-table tbody tr:hover{background:#f0f5fa}
  .pp-table .pp-idx{width:42px;text-align:center;color:#8a93a0}
  .pp-table .pp-sum td{font-weight:800;background:#eef3f8}
  .pp-table .pp-sum td:first-child{white-space:nowrap}
  .pp-table .pp-group-head td{background:#0070C0;color:#fff;font-weight:700;padding:7px 10px}
  .pp-table .pp-group-name{font-size:13px}
  .pp-table .pp-group-count{margin-left:10px;font-weight:400;opacity:.85;font-size:12px}
  .pp-table .pp-group-sum td{font-weight:800;background:#dfe8f3}
  .pp-table .pp-group-sum td:first-child{white-space:nowrap}
  .pp-group-sel{margin-left:6px;padding:4px 8px;border:1px solid #d0d7de;border-radius:5px;font-size:13px}
  .pp-tag{font-size:10px;color:#fff;background:var(--primary);border-radius:4px;padding:1px 5px;margin-left:4px;font-weight:500}
  .pp-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
  .pp-modal[hidden]{display:none}
  .pp-modal-card{width:100%;max-width:520px;background:var(--panel);border-radius:14px;padding:18px 20px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
  .pp-modal-card h4{margin:0 0 14px;font-size:15px;color:var(--text)}
  .pp-frow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .pp-frow label{width:52px;font-size:13px;color:var(--muted);flex:none}
  .pp-frow input,.pp-frow select,.pp-frow textarea{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;outline:none;background:var(--bg);color:var(--text);font-family:inherit}
  .pp-frow textarea{min-height:64px;resize:vertical}
  .pp-fields-inline{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
  .pp-fbtn{padding:4px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font-size:12px;cursor:pointer;transition:all .12s}
  .pp-fbtn:hover{border-color:var(--primary);background:var(--primary-soft)}
  .pp-msg{font-size:12.5px;min-height:16px;margin:4px 0}
  .pp-msg.ok{color:var(--primary)}
  .pp-msg.err{color:#c0392b}
  .pp-modal-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
  .pp-multi-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;margin-bottom:6px}
  .pp-multi-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;transition:all .12s}
  .pp-multi-item:hover{border-color:var(--primary)}
  .pp-multi-item input{width:16px;height:16px;accent-color:var(--primary);flex:none;cursor:pointer}
  .pp-multi-name{font-size:13.5px;color:var(--text);font-weight:600}
  .pp-multi-sub{margin-left:auto;font-size:12px;color:var(--muted)}
  .ff-field,.ff-op,.ff-val{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;background:var(--bg);color:var(--text)}
  .ff-del{color:#c0392b;cursor:pointer;font-weight:700;padding:0 6px}
  @page{margin:5mm;size:auto}
  @media print{
    body,html{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    body *{visibility:hidden}
    .pp-main,.pp-main *{visibility:visible}
    .pp-main{position:fixed;left:0;top:0;right:0;bottom:0;overflow:visible;padding:0;background:#fff;z-index:999999}
    .pp-paper{box-shadow:none;max-width:none;width:100%;margin:0;padding:0;min-height:auto;overflow:visible;background:#fff;transform-origin:top left}
    .pp-toolbar,.pp-config,.pp-modal,.pp-hscroll.wb-hscroll{display:none!important}
    .pp-ptitle{font-size:15px;margin-bottom:8px;letter-spacing:0}
    .pp-table{width:100%;min-width:auto;table-layout:auto;font-size:8pt;border-collapse:collapse}
    .pp-table th,.pp-table td{border:1px solid #666;padding:3px 5px;vertical-align:middle}
    .pp-table thead th{position:static;background:#f0f0f0!important;color:#000!important;font-weight:700;white-space:nowrap}
    .pp-table tbody td{white-space:nowrap;word-break:keep-all}
    .pp-table tbody tr{page-break-inside:avoid}
    .pp-table .pp-sum td{background:#e8e8e8!important;font-weight:800}
    .pp-table .pp-idx{width:24px;text-align:center}
  }
  @media(max-width:860px){
    .pp-toolbar{flex-direction:column;align-items:flex-start;gap:10px}
    .pp-tbar-right{align-self:stretch;justify-content:flex-start}
    .pp-config{padding:12px 0 0}
    .pp-config-row{flex-direction:column}
    .pp-row-half .pp-card{flex:none}
  }

  /* ===== 打印生成设计器 ===== */
  .pp-wrap{display:flex;flex-direction:column;height:100%;background:var(--bg)}
  .pp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;background:var(--panel);border-radius:12px;flex-wrap:wrap}
  .pp-tbar-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pp-tbar-item{display:flex;align-items:center;gap:4px}
  .pp-tbar-label{font-size:14px;color:var(--text);font-weight:700}
  .pp-toolbar select,.pp-toolbar .pp-title{padding:7px 11px;border:1px solid var(--line);border-radius:10px;font-size:13px;outline:none;background:var(--bg);color:var(--text);transition:border-color .12s}
  .pp-toolbar select:hover,.pp-toolbar .pp-title:hover{border-color:var(--primary)}
  .pp-title{width:220px}
  .pp-btn{padding:7px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font-size:13px;cursor:pointer;transition:all .12s}
  .pp-btn:hover{border-color:var(--primary);color:var(--primary)}
  .pp-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
  .pp-btn.primary:hover{opacity:.92;color:#fff}
  .pp-btn.danger{color:#c0392b;border-color:#f0c6cb;background:#fff5f5}
  .pp-btn.danger:hover{background:#ffeaea}
  .pp-btn.sm{padding:4px 10px;font-size:12px;border-radius:8px}
  .pp-body{display:flex;flex-direction:column;flex:1;min-height:0}
  .pp-config{display:flex;flex-direction:column;gap:16px;padding:16px 0 0;flex:none;align-items:stretch}
  .pp-config-row{display:flex;gap:16px;align-items:stretch}
  .pp-row-full .pp-card{flex:1}
  .pp-row-half .pp-card{flex:1;min-width:0}
  .pp-card{background:var(--panel);border:none;border-radius:12px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:12px;flex:1}
  .pp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
  .pp-card-title{font-size:14px;font-weight:700;color:var(--text)}
  .pp-card-sub{font-size:12px;color:var(--muted);font-weight:400;width:100%;margin-top:-6px}
  .pp-fields{display:flex;flex-wrap:wrap;gap:8px}
  .pp-fields-break{width:100%;height:0}
  .pp-field{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--bg);font-size:12px;color:var(--text);cursor:pointer;transition:all .12s;user-select:none}
  .pp-field:hover{border-color:var(--primary)}
  .pp-field input[type=checkbox]{width:14px;height:14px;accent-color:var(--primary);margin:0;cursor:pointer}
  .pp-field.checked{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
  .pp-field .pp-tag{margin:0 6px 0 0}
  .pp-linkrow{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:0;background:var(--primary-soft);border:1px solid var(--primary);border-radius:10px;flex-wrap:wrap}
  .pp-link-label{font-size:13px;font-weight:600;color:var(--primary)}
  .pp-link-hint{font-size:11.5px;color:var(--muted)}
  .pp-grouprow{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:0;background:#fff7e6;border:1px solid #e8920c;border-radius:10px;flex-wrap:wrap}
  .pp-grouprow .pp-link-label{color:#b8740a}
  .pp-grouprow .pp-link-hint{color:#9a7b3f}
  .pp-grouprow .pp-group-sel{border-color:#e8920c;color:#9a5b0a}
  .pp-switch{position:relative;display:inline-block;width:38px;height:20px;flex:none}
  .pp-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
  .pp-switch-track{position:absolute;inset:0;background:#cdd3da;border-radius:20px;transition:background .15s;pointer-events:none}
  .pp-switch-track:before{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
  .pp-switch input:checked+.pp-switch-track{background:var(--primary)}
  .pp-switch input:checked+.pp-switch-track:before{transform:translateX(18px)}
  .pp-calcs,.pp-filters{display:flex;flex-direction:column;gap:8px;min-height:40px}
  .pp-calchip,.pp-fchip{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--text)}
  .pp-calchip b,.pp-fchip b{color:#c0392b;cursor:pointer;font-size:15px;line-height:1;padding:0 2px;border-radius:4px;transition:background .12s}
  .pp-calchip b:hover,.pp-fchip b:hover{background:#ffeaea}
  .pp-empty{font-size:12.5px;color:var(--muted);font-style:italic;padding:10px 12px;background:var(--bg);border-radius:8px;border:1px dashed var(--line)}
  .pp-empty.big{font-size:14px;padding:40px 24px;text-align:center;background:var(--bg);border:1px dashed var(--line);border-radius:10px;color:var(--muted)}
  .pp-main{flex:1;min-width:0;overflow:auto;padding:16px 0;background:var(--bg);position:relative}
  .pp-paper{background:#fff;color:#222;border-radius:4px;box-shadow:0 4px 24px rgba(0,0,0,.08);max-width:none;width:100%;margin:0;padding:32px 16px;min-height:600px;overflow-x:auto}
  /* 打印预览吸底滚动条：固定在视口底部，与 pp-paper 内容区同宽 */
  .pp-hscroll.wb-hscroll{position:fixed;bottom:8px;left:0;width:auto;z-index:50;margin-top:0}
  .pp-paper{scrollbar-width:none;scrollbar-color:transparent transparent}
  .pp-paper::-webkit-scrollbar{display:none}
  .pp-ptitle{font-size:20px;font-weight:800;text-align:center;margin-bottom:22px;color:#1a1a1a;letter-spacing:.5px}
  .pp-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:13px}
  .pp-table th,.pp-table td{border:1px solid #d8dde3;padding:8px 10px;text-align:left}
  .pp-table thead th{background:#f3f6fa;color:#222;font-weight:700;position:sticky;top:0}
  .pp-table tbody tr:nth-child(even){background:#fafbfc}
  .pp-table tbody tr:hover{background:#f0f5fa}
  .pp-table .pp-idx{width:42px;text-align:center;color:#8a93a0}
  .pp-table .pp-sum td{font-weight:800;background:#eef3f8}
  .pp-table .pp-sum td:first-child{white-space:nowrap}
  .pp-table .pp-group-head td{background:#0070C0;color:#fff;font-weight:700;padding:7px 10px}
  .pp-table .pp-group-name{font-size:13px}
  .pp-table .pp-group-count{margin-left:10px;font-weight:400;opacity:.85;font-size:12px}
  .pp-table .pp-group-sum td{font-weight:800;background:#dfe8f3}
  .pp-table .pp-group-sum td:first-child{white-space:nowrap}
  .pp-group-sel{margin-left:6px;padding:4px 8px;border:1px solid #d0d7de;border-radius:5px;font-size:13px}
  .pp-tag{font-size:10px;color:#fff;background:var(--primary);border-radius:4px;padding:1px 5px;margin-left:4px;font-weight:500}
  .pp-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
  .pp-modal[hidden]{display:none}
  .pp-modal-card{width:100%;max-width:520px;background:var(--panel);border-radius:14px;padding:18px 20px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
  .pp-modal-card h4{margin:0 0 14px;font-size:15px;color:var(--text)}
  .pp-frow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .pp-frow label{width:52px;font-size:13px;color:var(--muted);flex:none}
  .pp-frow input,.pp-frow select,.pp-frow textarea{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;outline:none;background:var(--bg);color:var(--text);font-family:inherit}
  .pp-frow textarea{min-height:64px;resize:vertical}
  .pp-fields-inline{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
  .pp-fbtn{padding:4px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font-size:12px;cursor:pointer;transition:all .12s}
  .pp-fbtn:hover{border-color:var(--primary);background:var(--primary-soft)}
  .pp-msg{font-size:12.5px;min-height:16px;margin:4px 0}
  .pp-msg.ok{color:var(--primary)}
  .pp-msg.err{color:#c0392b}
  .pp-modal-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
  .pp-multi-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;margin-bottom:6px}
  .pp-multi-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;transition:all .12s}
  .pp-multi-item:hover{border-color:var(--primary)}
  .pp-multi-item input{width:16px;height:16px;accent-color:var(--primary);flex:none;cursor:pointer}
  .pp-multi-name{font-size:13.5px;color:var(--text);font-weight:600}
  .pp-multi-sub{margin-left:auto;font-size:12px;color:var(--muted)}
  .ff-field,.ff-op,.ff-val{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;background:var(--bg);color:var(--text)}
  .ff-del{color:#c0392b;cursor:pointer;font-weight:700;padding:0 6px}
  @page{margin:5mm;size:auto}
  @media print{
    body,html{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    body *{visibility:hidden}
    .pp-main,.pp-main *{visibility:visible}
    .pp-main{position:fixed;left:0;top:0;right:0;bottom:0;overflow:visible;padding:0;background:#fff;z-index:999999}
    .pp-paper{box-shadow:none;max-width:none;width:100%;margin:0;padding:0;min-height:auto;overflow:visible;background:#fff;transform-origin:top left}
    .pp-toolbar,.pp-config,.pp-modal,.pp-hscroll.wb-hscroll{display:none!important}
    .pp-ptitle{font-size:15px;margin-bottom:8px;letter-spacing:0}
    .pp-table{width:100%;min-width:auto;table-layout:auto;font-size:8pt;border-collapse:collapse}
    .pp-table th,.pp-table td{border:1px solid #666;padding:3px 5px;vertical-align:middle}
    .pp-table thead th{position:static;background:#f0f0f0!important;color:#000!important;font-weight:700;white-space:nowrap}
    .pp-table tbody td{white-space:nowrap;word-break:keep-all}
    .pp-table tbody tr{page-break-inside:avoid}
    .pp-table .pp-sum td{background:#e8e8e8!important;font-weight:800}
    .pp-table .pp-idx{width:24px;text-align:center}
  }
  @media(max-width:860px){
    .pp-toolbar{flex-direction:column;align-items:flex-start;gap:10px}
    .pp-tbar-right{align-self:stretch;justify-content:flex-start}
    .pp-config{padding:12px 0 0}
    .pp-config-row{flex-direction:column}
    .pp-row-half .pp-card{flex:none}
  }


/* ===== 供应商开票统计 ===== */
  .fin-inv-page{padding:0}
  .fin-inv-page-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
  .fin-inv-page-actions{margin-left:auto;display:flex;align-items:center}
  .fin-inv-page-title{font-size:17px;font-weight:700;color:var(--text)}
  .fin-inv-page-sub{font-size:13px;color:var(--muted);margin-top:2px;margin-bottom:2px}
  .fin-inv-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
  .fin-inv-col{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-width:0}
  .fin-inv-col-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .fin-inv-col-t{font-size:15px;font-weight:700;color:var(--text)}
  .fin-inv-col-sum{margin-left:auto;font-size:13px;color:var(--muted)}
  .fin-inv-col-sum b.inv{color:#b45309;font-variant-numeric:tabular-nums}
  .fin-inv-col-sum b.un{color:#c0392b;font-variant-numeric:tabular-nums}
  .fin-inv-col-body{display:flex;flex-direction:column;gap:14px}
  .fin-inv-card{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:12px 13px}
  .fin-inv-card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}
  .fin-inv-card-name{font-size:14px;font-weight:700;color:var(--text)}
  .fin-inv-card-total{margin-left:auto;font-size:12px;color:var(--muted);display:inline-flex;align-items:baseline;gap:5px}
  .fin-inv-card-total b{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:#b45309}
  .fin-inv-month-tbl{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
  .fin-inv-month-tbl th,.fin-inv-month-tbl td{width:33.33%;border:1px solid var(--line);padding:6px 9px;text-align:left;overflow:hidden;text-overflow:ellipsis}
  .fin-inv-month-tbl th{background:var(--primary-soft);color:var(--primary);font-weight:600;white-space:nowrap}
  .fin-inv-month-tbl td.num,.fin-inv-month-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
  .fin-inv-month-tbl tfoot td{font-weight:700;background:rgba(0,0,0,.03)}
  .fin-inv-month-tbl td.date,.fin-inv-month-tbl th.date{text-align:center;white-space:nowrap;font-size:12px}
  .fin-inv-month-tbl td[rowspan]{vertical-align:middle}
  .fin-inv-un-list{display:flex;flex-direction:column;gap:8px}
  .fin-inv-un-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:11px}
  .fin-inv-un-name{font-size:13.5px;font-weight:600;color:var(--text)}
  .fin-inv-un-amt{margin-left:auto;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:#c0392b}
  .fin-inv-un-foot{display:flex;align-items:center;gap:10px;padding:11px 12px;font-weight:700;color:var(--text);border-top:2px solid var(--line);margin-top:4px}
  .fin-inv-un-foot .fin-inv-un-amt{color:#c0392b}
  .fin-inv-cards-list{display:flex;flex-direction:column;gap:14px}
  .fin-inv-cards-foot{display:flex;align-items:center;gap:10px;padding:11px 12px;font-weight:700;color:var(--text);border-top:2px solid var(--line);margin-top:4px}
  .fin-inv-cards-foot .fin-inv-un-amt{color:#b45309;font-variant-numeric:tabular-nums}
  .fin-inv-empty{color:var(--muted);font-size:13px;padding:24px;text-align:center}
  @media (max-width:760px){ .fin-inv-cols{grid-template-columns:1fr} }

  /* ===== 客户订单 · 收款明细（表格行内编辑 + 汇总条） ===== */
  .fin-st-badge.fin-st-part{background:#fff4e0;color:#b9770e;border-color:#f0c98a}
  .fin-st-part .fin-st-dot{background:#e08e0b}
  .fin-st-has-part{position:relative}
  .fin-st-part-corner{position:absolute;top:-4px;right:-7px;width:8px;height:8px;border-radius:50%;background:#e08e0b;border:1.5px solid #fff;box-shadow:0 1px 2px rgba(0,0,0,.25)}
  .fin-st-menu{position:absolute;z-index:1000;min-width:152px;max-width:260px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:8px;display:flex;flex-direction:column;gap:6px}
  .fin-st-menu-layer{position:fixed;inset:0;z-index:999}
  .fin-st-menu-info{padding:6px 8px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fin-st-menu-row{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}
  .fin-st-menu-row .fin-st-menu-btn{flex:1 1 auto;min-width:0}
  .fin-st-menu-btn{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;text-align:center;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s}
  .fin-st-menu-btn:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
  .fin-st-menu-btn.fin-st-menu-pay{background:var(--primary-soft);color:var(--primary)}
  .fin-st-menu-btn.fin-st-menu-paid{background:var(--primary);color:#fff;border-color:transparent}
  .fin-st-menu-btn.fin-st-menu-ext{border-color:#e0a85c;color:#b9770e;background:#fff7e6}
  .fin-st-menu-btn.fin-st-menu-ext:hover{background:#ffecc8}
  .fin-st-menu-btn.fin-st-menu-close{color:var(--muted)}
  .fin-pay-modal{max-width:680px;width:92vw}
  .fin-pay-modal .fin-modal-b{gap:0}
  .fin-pay-total{font-size:14px;color:var(--muted);margin:0 0 8px 0}
  .fin-pay-total b{font-size:18px;color:var(--text);font-weight:700;margin-left:4px;font-variant-numeric:tabular-nums}
  .fin-pay-hint{font-size:12px;line-height:1.7;padding:9px 11px;border-radius:10px;margin:0 0 10px 0;border:1px solid var(--primary-light);background:var(--primary-soft);color:var(--primary-dark)}
  .fin-pay-thead{display:grid;grid-template-columns:120px 90px 110px 1fr 34px;gap:8px;padding:7px 8px;font-size:12px;font-weight:600;color:var(--text);background:rgba(74,90,106,.07);border-radius:8px;margin-bottom:2px}
  .fin-pay-thead .ta-r{text-align:right}
  .fin-pay-tr{display:grid;grid-template-columns:120px 90px 110px 1fr 34px;gap:8px;align-items:center;padding:6px;border-bottom:1px solid var(--line)}
  .fin-pay-tr input,.fin-pay-tr select{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 8px;font-size:13px;background:var(--panel);color:var(--text);box-sizing:border-box;width:100%;outline:none}
  .fin-pay-tr input:focus,.fin-pay-tr select:focus{border-color:var(--primary-light);box-shadow:0 0 0 2px rgba(90,110,130,.12)}
  .fin-pay-tr .fin-pay-date{cursor:pointer;background:var(--panel)}
  .fin-pay-tr .fin-pay-amount{text-align:right;font-variant-numeric:tabular-nums}
  .fin-pay-tr .fin-pay-note{min-width:0}
  .fin-pay-del{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:#c0392b;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s}
  .fin-pay-del:hover{background:#fbeaea}
  .fin-pay-addrow{width:100%;padding:10px 0;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:13px;cursor:pointer;margin:8px 0;transition:.15s}
  .fin-pay-addrow:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
  .fin-pay-empty{color:var(--muted);padding:20px 0;text-align:center;font-size:13px;border-bottom:1px solid var(--line)}
  .fin-pay-sum{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;background:var(--primary);border-radius:8px;margin-top:0;color:var(--panel);font-size:13px}
  .fin-pay-sum b{font-variant-numeric:tabular-nums;color:var(--panel);font-weight:600}
  .fin-pay-sum .fin-pay-remain{color:var(--panel);font-weight:700}
  .fin-pay-st{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:700;margin-left:auto}
  .fin-pay-st.fin-st-paid{background:#d4edda;color:#155724}
  .fin-pay-st.fin-st-part{background:#fff3cd;color:#856404}
  .fin-pay-st.fin-st-pending,.fin-pay-st.fin-st-nodate{background:#e2e3e5;color:#383d41}
  .fin-pay-st.fin-st-overdue,.fin-pay-st.fin-st-extended{background:#f8d7da;color:#721c24}
  .fin-pay-hist .fin-pay-list{display:flex;flex-direction:column;gap:6px}
  @media(max-width:640px){
    .fin-modal-mask{padding:8px}
    .fin-modal{width:100%;max-height:92vh}
    .fin-modal-b{padding:14px 16px}
    .fin-log-h{flex-wrap:wrap;gap:6px}
    .fin-log-t{font-size:11px}
    .fin-log-op{margin-left:0;flex-basis:100%;font-size:11px}
    .fin-log-drow{font-size:12px;gap:6px}
    .fin-log-reason{font-size:11px;line-height:1.5;word-break:break-word}
    .fin-pay-modal{width:96vw;max-height:92vh}
    .fin-pay-modal .fin-modal-b{padding:12px}
    .fin-pay-hint{font-size:11px;padding:8px;line-height:1.6}
    .fin-pay-thead{display:none}
    .fin-pay-tr{grid-template-columns:100px 70px 1fr 32px;grid-template-rows:auto auto;gap:8px;padding:10px 0}
    .fin-pay-tr .fin-pay-date{grid-column:1;grid-row:1}
    .fin-pay-tr .fin-pay-method{grid-column:2;grid-row:1}
    .fin-pay-tr .fin-pay-amount{grid-column:3;grid-row:1}
    .fin-pay-tr .fin-pay-del{grid-column:4;grid-row:1}
    .fin-pay-tr .fin-pay-note{grid-column:1/5;grid-row:2}
    .fin-pay-sum{gap:8px 12px;font-size:12px;padding:10px 12px}
    .fin-pay-sum span{white-space:nowrap}
    .fin-pay-st{margin-left:0}
    .fin-inv-page-head{gap:10px}
    .fin-inv-page-head>button:first-child{font-size:13px;padding:7px 10px}
    .fin-inv-page-actions{width:100%;margin-left:0;justify-content:stretch}
    .fin-inv-page-actions .pp-btn{width:100%;font-size:13px;padding:9px 12px;justify-content:center}
    .reimburse-table-wrap{margin-top:4px}
  }

  /* ===================== V2 仪表盘首页（仅 html.ui-v2 生效） ===================== */
  .dash-v2{display:none;margin:0 auto;padding:18px;}
  html.ui-v2 .dash-v2{display:block}
  html.ui-v2 .home-scene{display:none!important}
  html.ui-v1 .home-scene{display:flex}

  /* V2 首页第一板块：主题色圆角卡片（参考金融工作台板式） */
  .dv-hero{
    position:relative;overflow:hidden;border-radius:18px;
    min-height:120px;
    display:flex;flex-direction:column;justify-content:center;
    background:linear-gradient(135deg, var(--primary-dark), var(--primary));
    color:#fff;
  }
  .dv-hero-watermark{
    position:absolute;right:24px;top:50%;transform:translateY(-50%);
    font-size:110px;font-weight:800;line-height:1;
    color:#fff;opacity:.08;pointer-events:none;
    letter-spacing:-.05em;font-style:italic;
    z-index:0;
  }
  .dv-hero-body{
    position:relative;z-index:2;flex:1;
    display:flex;align-items:flex-end;justify-content:space-between;
    padding:18px 28px 8px;
  }
  .dv-hero-left{position:relative;z-index:2;padding-left:0}
  .dv-hero-title{
    margin:0;font-size:26px;font-weight:700;letter-spacing:.02em;
    display:flex;align-items:baseline;gap:12px;
    text-shadow:0 2px 6px rgba(0,0,0,.15);
  }
  .dv-hero-subtitle{
    font-size:14px;font-weight:400;color:rgba(255,255,255,.78);
    letter-spacing:.02em;white-space:nowrap;
  }
  .dv-hero-footer{
    position:relative;z-index:2;flex:1;
    display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;
    padding:8px 28px 18px;
  }
  .dv-hero-chip{
    display:inline-flex;align-items:center;gap:7px;
    padding:6px 14px;border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.28);
    color:#fff;font-size:13px;font-weight:400;
    white-space:nowrap;
    transition:background .15s,border-color .15s;
  }
  .dv-hero-chip:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.45)}
  .dv-hero-clock{width:15px;height:15px;opacity:.9}
  .dv-hero-date-icon{width:15px;height:15px;opacity:.9}
  .dv-hero-chip-wide{max-width:280px;overflow:hidden;text-overflow:ellipsis}
  .dv-hero-quote{
    flex:1 1 auto;min-width:0;margin-left:auto;text-align:right;
    font-size:13px;color:rgba(255,255,255,.85);
    letter-spacing:.03em;font-style:italic;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .dv-hero-quote::before{content:'「 '}
  .dv-hero-quote::after{content:' 」'}
  /* V2 首页年度目标板块（位于 Hero 与 KPI 之间） */
  .dv-goals{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 2px 10px var(--shadow);
    margin-top:14px;
    overflow:hidden;
  }
  .dv-goals-h{
    display:flex;align-items:center;gap:12px;
    padding:14px 18px;
    border-bottom:1px solid var(--line);
  }
  .dv-goals-badge{
    width:34px;height:34px;border-radius:10px;flex:0 0 34px;
    background:var(--primary-soft);color:var(--primary);
    display:flex;align-items:center;justify-content:center;
    font-size:14px;font-weight:700;
  }
  .dv-goals-headline{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
  .dv-goals-title{font-size:15px;font-weight:700;color:var(--text)}
  .dv-goals-meta{font-size:12px;color:var(--muted)}
  .dv-goals-year{
    appearance:none;-webkit-appearance:none;-moz-appearance:none;
    font-size:12px;color:var(--muted);background:var(--bg);
    border:1px solid var(--line);border-radius:6px;
    padding:3px 22px 3px 8px;margin-top:2px;max-width:120px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 6px center;
    cursor:pointer;outline:none;
  }
  .dv-goals-year:focus{border-color:var(--primary)}
  .dv-goals-edit-btn{
    width:32px;height:32px;border-radius:8px;flex:0 0 32px;
    background:transparent;color:var(--muted);border:1px solid transparent;
    display:flex;align-items:center;justify-content:center;cursor:pointer;
    transition:background .12s,color .12s,border-color .12s;
  }
  .dv-goals-edit-btn:hover{background:var(--primary-soft);color:var(--primary)}
  .dv-goals-edit-btn.active{background:var(--primary-soft);color:var(--primary)}
  .dv-goals-edit-btn svg{width:16px;height:16px}
  .dv-goals-edit{
    padding:14px 18px;
    border-bottom:1px solid var(--line);
    background:var(--bg);
  }
  .dv-goals-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
  .dv-goals-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
  .dv-goals-fields input{
    padding:9px 12px;border-radius:8px;border:1px solid var(--line);
    background:var(--panel);color:var(--text);font-size:14px;
  }
  .dv-goals-fields input:focus{outline:none;border-color:var(--primary)}
  .dv-goals-actions{display:flex;gap:10px;margin-top:12px;justify-content:flex-end}
  .dv-goals-save,.dv-goals-cancel{
    padding:7px 16px;border-radius:8px;border:1px solid var(--line);
    font-size:13px;cursor:pointer;transition:background .12s;
  }
  .dv-goals-save{background:var(--primary);color:#fff;border-color:var(--primary)}
  .dv-goals-save:hover{background:var(--primary-dark)}
  .dv-goals-cancel{background:var(--panel);color:var(--text)}
  .dv-goals-cancel:hover{background:var(--bg)}
  .dv-goals-body{padding:14px 18px;display:flex;flex-direction:column;gap:16px}
  .dv-goal-row{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}
  .dv-goal-info{display:flex;flex-direction:column;gap:2px;min-width:0}
  .dv-goal-name{font-size:13px;font-weight:700;color:var(--text)}
  .dv-goal-sub{font-size:11px;color:var(--muted)}
  .dv-goal-amt{font-size:16px;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums}
  .dv-goal-pct{font-size:13px;font-weight:700;color:var(--primary)}
  .dv-goal-bar{grid-column:1/-1;height:10px;background:var(--bg);border-radius:5px;overflow:hidden}
  .dv-goal-bar>span{display:block;height:100%;background:var(--primary);border-radius:5px;transition:width .3s}
  /* V2 首页第二板块：KPI 指标卡 */
  .dv-kpis{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-top:14px;
  }
  .dv-kpi{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    padding:18px 20px;
    display:flex;flex-direction:column;gap:12px;
    box-shadow:0 2px 10px var(--shadow);
    transition:transform .12s,box-shadow .12s;
  }
  .dv-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 18px var(--shadow)}
  .dv-kpi-head{display:flex;align-items:center;gap:10px}
  .dv-kpi-icon{
    width:34px;height:34px;border-radius:10px;flex:none;
    background:var(--primary-soft);color:var(--primary);
    display:flex;align-items:center;justify-content:center;
  }
  .dv-kpi-icon svg{width:18px;height:18px}
  .dv-kpi-t{font-size:13px;color:var(--muted);letter-spacing:.02em}
  .dv-kpi-v{font-size:22px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
  @media(max-width:640px){
    .dv-hero{min-height:100px;border-radius:0}
    .dv-hero-watermark{font-size:64px;right:14px}
    .dv-hero-body{padding:14px 20px 6px}
    .dv-hero-title{font-size:20px;gap:8px;flex-wrap:wrap}
    .dv-hero-subtitle{font-size:12px}
    .dv-hero-footer{padding:6px 20px 14px;gap:8px}
    .dv-hero-chip{padding:5px 11px;font-size:12px}
    .dv-hero-quote{flex:1 1 100%;text-align:left;margin-left:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .dash-v2{padding:0;padding-bottom:8px}
    .dv-goals{margin-top:10px;margin-left:8px;margin-right:8px}
    .dv-goals-h{padding:12px 14px}
    .dv-goals-edit{padding:12px 14px}
    .dv-goals-fields{grid-template-columns:1fr}
    .dv-goals-body{padding:12px 14px;gap:14px}
    .dv-goal-amt{font-size:14px}
    .dv-goal-pct{font-size:12px}
    .dv-kpis{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;padding-left:8px;padding-right:8px}
    .dv-kpi{padding:14px 14px;border-radius:12px;gap:10px}
    .dv-kpi-icon{width:30px;height:30px;border-radius:9px}
    .dv-kpi-icon svg{width:16px;height:16px}
    .dv-kpi-v{font-size:18px}
    .dv-kpi-t{font-size:12px}
  }
  /* 第三版块：应收账款 / 应付账款（左右结构） */
  .dv-arap{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:14px;
  }
  .dv-arap-col{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 2px 10px var(--shadow);
    display:flex;flex-direction:column;
    overflow:hidden;
  }
  .dv-arap-h{
    display:flex;align-items:center;gap:10px;
    padding:14px 16px;
    border-bottom:1px solid var(--line);
  }
  .dv-arap-badge{
    width:34px;height:34px;border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    font-size:13px;font-weight:700;color:#fff;flex:none;
    background:var(--primary);
  }
  .dv-arap-ap .dv-arap-badge{
    background:var(--primary-soft);color:var(--primary-dark);
  }
  .dv-arap-headline{
    flex:1;min-width:0;
    display:flex;flex-direction:column;gap:2px;
  }
  .dv-arap-title{font-size:15px;font-weight:700;color:var(--text)}
  .dv-arap-meta{font-size:12px;color:var(--muted)}
  .dv-arap-sum-box{
    text-align:right;flex:none;
    display:flex;flex-direction:column;gap:1px;
  }
  .dv-arap-sum-amt{font-size:18px;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums;white-space:nowrap}
  .dv-arap-ap .dv-arap-sum-amt{color:var(--green,var(--primary-dark))}
  .dv-arap-sum-label{font-size:11px;color:var(--muted)}
  .dv-arap-list{
    padding:0;
    max-height:330px;overflow:auto;
    display:flex;flex-direction:column;
    scrollbar-width:thin;
    scrollbar-color:var(--primary-light) transparent;
    border-bottom:1px solid var(--line);
  }
  .dv-arap-list::-webkit-scrollbar{width:6px}
  .dv-arap-list::-webkit-scrollbar-track{background:transparent}
  .dv-arap-list::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:3px}
  .dv-arap-list::-webkit-scrollbar-thumb:hover{background:var(--primary)}
  .dv-arap-table{
    width:100%;border-collapse:collapse;
    font-size:13px;color:var(--text);
    table-layout:fixed;
  }
  .dv-arap-table thead th{
    padding:11px 16px;
    border:1px solid var(--line);
    background:var(--primary-soft);
    font-size:12px;font-weight:700;color:var(--text);
    text-align:left;
    position:sticky;top:0;z-index:1;
  }
  .dv-arap-table thead .dv-arap-th-amt{text-align:right}
  .dv-arap-table tbody tr:hover{background:var(--primary-soft)}
  .dv-arap-table td{
    padding:11px 16px;
    border:1px solid var(--line);
    vertical-align:middle;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  /* 去掉表格最外层四周边框，仅保留内部网格线 */
  .dv-arap-table thead th{border-top:none}
  .dv-arap-table thead th:first-child,
  .dv-arap-table tbody td:first-child{border-left:none}
  .dv-arap-table thead th:last-child,
  .dv-arap-table tbody td:last-child{border-right:none}
  .dv-arap-table tbody tr:last-child td{border-bottom:none}
  /* 列宽（应收/应付统一 50/25/25） */
  .dv-arap-th-name,.dv-arap-td-name{width:50%;font-weight:700;color:var(--text)}
  .dv-arap-th-date,.dv-arap-td-date{width:25%;color:var(--muted);font-variant-numeric:tabular-nums}
  .dv-arap-th-amt,.dv-arap-td-amt{width:25%;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums;text-align:right}
  /* 应收客户合计行（弱化，微染主题色与灰色表头区分） */
  .dv-arap-total-row td{background:color-mix(in srgb,var(--primary) 8%,var(--panel));border-top:1px dashed var(--line);font-weight:500}
  .dv-arap-total-row:hover td{background:color-mix(in srgb,var(--primary) 8%,var(--panel))}
  .dv-arap-td-total{color:var(--muted);font-size:12px;text-align:left;padding-left:16px}
  .dv-arap-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}
  /* 第四版块：客户利润 TOP10 */
  .dv-top{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 2px 10px var(--shadow);
    margin-top:14px;
    overflow:hidden;
  }
  .dv-top-h{
    display:flex;align-items:center;gap:12px;
    padding:14px 18px;
    border-bottom:1px solid var(--line);
  }
  .dv-top-badge{
    width:34px;height:34px;border-radius:10px;flex:0 0 34px;
    background:var(--primary-soft);color:var(--primary);
    display:flex;align-items:center;justify-content:center;
    font-size:14px;font-weight:700;
  }
  .dv-top-headline{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
  .dv-top-title{font-size:15px;font-weight:700;color:var(--text)}
  .dv-top-meta{font-size:12px;color:var(--muted)}
  .dv-top-sum-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
  .dv-top-sum-amt{font-size:18px;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums}
  .dv-top-sum-label{font-size:12px;color:var(--muted)}
  .dv-top-list{padding:0}
  .dv-top-item{
    display:flex;align-items:center;gap:12px;
    padding:9px 18px;
    transition:background .12s;
  }
  .dv-top-item:hover{background:var(--primary-soft)}
  .dv-top-rank{
    width:24px;height:24px;flex:0 0 24px;border-radius:50%;
    background:var(--bg);color:var(--muted);
    font-size:12px;font-weight:700;
    display:flex;align-items:center;justify-content:center;
  }
  .dv-top-item.rank-1 .dv-top-rank{background:var(--primary);color:#fff}
  .dv-top-item.rank-2 .dv-top-rank{background:var(--primary-dark);color:#fff}
  .dv-top-item.rank-3 .dv-top-rank{background:var(--primary-light);color:#fff}
  .dv-top-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
  .dv-top-name{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dv-top-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
  .dv-top-bar>span{display:block;height:100%;background:var(--primary);border-radius:3px;transition:width .3s}
  .dv-top-amt{font-size:14px;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums;white-space:nowrap}
  .dv-top-item{cursor:pointer;user-select:none}
  .dv-top-chevron{width:16px;flex:0 0 16px;text-align:center;font-size:16px;color:var(--muted);transition:transform .2s}
  .dv-top-item.expanded{background:var(--primary-soft)}
  .dv-top-item.expanded .dv-top-chevron{transform:rotate(90deg)}
  .dv-top-detail{padding:0;background:var(--bg);border-top:1px solid var(--line);overflow-x:auto}
  .dv-top-detail-table{width:100%;border-collapse:collapse;font-size:12px;color:var(--text);min-width:520px}
  .dv-top-detail-table th,.dv-top-detail-table td{padding:10px 8px;border:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:center}
  .dv-top-detail-table th{background:var(--panel);font-size:11px;font-weight:700;color:var(--muted)}
  .dv-top-detail-table td{padding:9px 8px}
  /* 去掉最外层边框 */
  .dv-top-detail-table thead th{border-top:none}
  .dv-top-detail-table tbody tr:last-child td{border-bottom:none}
  .dv-top-detail-table th:first-child,.dv-top-detail-table td:first-child{border-left:none}
  .dv-top-detail-table th:last-child,.dv-top-detail-table td:last-child{border-right:none}
  .dv-top-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}
  @media(max-width:640px){
    .dv-arap{grid-template-columns:1fr;gap:10px;margin-top:10px;padding-left:8px;padding-right:8px}
    .dv-arap-h{padding:12px 14px}
    .dv-arap-badge{width:30px;height:30px;font-size:12px}
    .dv-arap-title{font-size:14px}
    .dv-arap-sum-amt{font-size:16px}
    .dv-arap-list{max-height:280px;padding:0}
    .dv-arap-empty{padding:22px 14px}
    .dv-arap-table thead th{padding:8px 14px}
    .dv-arap-table td{padding:10px 14px}
    .dv-arap-th-name,.dv-arap-td-name{width:34%}
    .dv-arap-th-date,.dv-arap-td-date{width:33%}
    .dv-arap-th-amt,.dv-arap-td-amt{width:33%}
    /* 第四版块移动端：.dv-top 本身即卡片，需用 margin 内缩（padding 在边框内不生效） */
    .dv-top{margin-top:10px;margin-left:8px;margin-right:8px}
    .dv-top-h{padding:12px 14px}
    .dv-top-sum-amt{font-size:16px}
    .dv-top-item{padding:9px 14px}
    .dv-top-name{font-size:12px}
    .dv-top-amt{font-size:13px}
    .dv-top-chevron{width:14px;flex:0 0 14px;font-size:14px}
    .dv-top-detail{padding:0}
    .dv-top-detail-table{font-size:11px;min-width:480px}
    .dv-top-detail-table th,.dv-top-detail-table td{padding:8px 6px}
  }
  /* 右下角界面版本切换 */
  /* 右下角界面版本切换 */
  .ui-ver-fab{position:fixed;right:22px;bottom:78px;width:48px;height:48px;border-radius:50%;z-index:8999;cursor:pointer;display:flex;align-items:center;justify-content:center;
    background:rgba(0,0,0,.28);
    -webkit-backdrop-filter:blur(12px) saturate(140%);
    backdrop-filter:blur(12px) saturate(140%);
    border:1px solid rgba(255,255,255,.4);
    box-shadow:0 6px 18px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.35);
    color:#fff;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .ui-ver-fab::after{
    content:'';position:absolute;inset:-8px;border-radius:50%;pointer-events:none;z-index:-1;opacity:0;
    background:radial-gradient(circle at 50% 50%, rgba(90,122,58,0) 50%, rgba(90,122,58,.55) 72%, rgba(56,128,160,.5) 100%);
    filter:blur(9px);transition:opacity .28s ease;
  }
  .ui-ver-fab:hover{transform:translateY(-3px) scale(1.05);background:rgba(0,0,0,.5);box-shadow:0 12px 28px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.45);}
  .ui-ver-fab:hover::after{opacity:1}
  .ui-ver-fab:active{transform:translateY(-1px) scale(.98)}
  .ui-ver-current{font-size:13px;font-weight:700;letter-spacing:.02em}
  .ui-ver-menu{position:absolute;right:0;bottom:58px;width:132px;
    background:#fff;
    border:1px solid rgba(0,0,0,.08);
    border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.16);
    padding:6px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s;pointer-events:none}
  .ui-ver-menu.show{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
  .ui-ver-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;transition:background .12s}
  .ui-ver-item:hover{background:var(--primary-soft)}
  .ui-ver-item.active{color:var(--primary);font-weight:700;background:transparent}
  .ui-ver-check{width:14px;text-align:center;visibility:hidden;color:var(--primary)}
  .ui-ver-item.active .ui-ver-check{visibility:visible}
  @media(max-width:768px){ .ui-ver-fab{right:16px;bottom:126px;width:44px;height:44px} .ui-ver-menu{bottom:54px} }
  /* V2 首页留白，暂无移动端专属规则 */

  /* ============================================================
     暗色主题（暖夜棕 .theme-dark / 暗夜紫 .theme-purple）组件级适配
     根因：项目大量组件硬编码 background:#fff，切暗色后变白块+浅字，割裂/看不清。
     本段仅在 html.theme-dark / html.theme-purple 且屏幕下，把这些组件统一改深底浅字（不影响打印与其他主题）。
     ============================================================ */
  @media screen{
    html.theme-dark, html.theme-purple .fin-modal,
    html.theme-dark, html.theme-purple .fin-mod-modal,
    html.theme-dark, html.theme-purple .fin-in,
    html.theme-dark, html.theme-purple .fin-ie-input,
    html.theme-dark, html.theme-purple .fin-mod-chip,
    html.theme-dark, html.theme-purple .cs-mode,
    html.theme-dark, html.theme-purple .cs-prompt,
    html.theme-dark, html.theme-purple .cs-btn,
    html.theme-dark, html.theme-purple .cs-history-item,
    html.theme-dark, html.theme-purple .cm-msgs,
    html.theme-dark, html.theme-purple .cm-input textarea,
    html.theme-dark, html.theme-purple .chat-main,
    html.theme-dark, html.theme-purple .ai-in,
    html.theme-dark, html.theme-purple .ai-text,
    html.theme-dark, html.theme-purple .ai-sel,
    html.theme-dark, html.theme-purple .ai-file,
    html.theme-dark, html.theme-purple .ai-tab,
    html.theme-dark, html.theme-purple .cm-tab,
    html.theme-dark, html.theme-purple .vp-history-item,
    html.theme-dark, html.theme-purple .rep-hook,
    html.theme-dark, html.theme-purple .rep-btn-copy,
    html.theme-dark, html.theme-purple .idea-btn-update,
    html.theme-dark, html.theme-purple .iu-cancel,
    html.theme-dark, html.theme-purple .lm-card,
    html.theme-dark, html.theme-purple .bk-warn,
    html.theme-dark, html.theme-purple .bk-tree-badge.miss,
    html.theme-dark, html.theme-purple .bk-cover.warn,
    html.theme-dark, html.theme-purple .bk-type-pre-restore,
    html.theme-dark, html.theme-purple .i-fetch-tip.loading,
    html.theme-dark, html.theme-purple .ai-note,
    html.theme-dark, html.theme-purple .vp-img-fails.show,
    html.theme-dark, html.theme-purple .fin-sync-banner,
    html.theme-dark, html.theme-purple .fin-sup-recon-pill.partial,
    html.theme-dark, html.theme-purple .fin-sum-tag.pending,
    html.theme-dark, html.theme-purple .fin-st-menu-recon,
    html.theme-dark, html.theme-purple .auth-card,
    html.theme-dark, html.theme-purple .auth-codes span,
    html.theme-dark, html.theme-purple .auth-emk-box code,
    html.theme-dark, html.theme-purple .auth-emk-copy,
    html.theme-dark, html.theme-purple .auth-warn-once,
    html.theme-dark, html.theme-purple .lm-locked-tip,
    html.theme-dark, html.theme-purple .cm-dt-picker,
    html.theme-dark, html.theme-purple .ui-ver-menu{
      background:var(--panel)!important;
      color:var(--text)!important;
      border-color:var(--line)!important;
    }
    /* 浅底强调块（逾期行/AI 气泡）在暗底改为深软底——整行所有单元格统一，避免一行里冻结列与非冻结列异色 */
    html.theme-dark .fin-row-overdue td,
    html.theme-purple .fin-row-overdue td,
    html.theme-dark .cm-row.ai .cm-bubble,
    html.theme-purple .cm-row.ai .cm-bubble{
      background:var(--primary-soft)!important;
      color:var(--text)!important;
    }
    /* 金棕主色按钮：白字在金棕底上对比不足，改深色字（仅暖夜棕；暗夜紫主按钮紫底白字无需改） */
    html.theme-dark .fin-btn,
    html.theme-dark .cm-btn,
    html.theme-dark .fin-btn-primary{
      color:#2d2824!important;
    }
    /* 输入框 placeholder / 次级文字在暗底提亮 */
    html.theme-dark, html.theme-purple .fin-in::placeholder,
    html.theme-dark, html.theme-purple .cm-input textarea::placeholder,
    html.theme-dark, html.theme-purple .ai-in::placeholder,
    html.theme-dark, html.theme-purple .cs-mode::placeholder,
    html.theme-purple .cm-in::placeholder,
    html.theme-purple .cm-ta::placeholder,
    html.theme-purple .ai-text::placeholder,
    html.theme-purple .cs-prompt::placeholder{
      color:var(--muted)!important;
    }
    /* ---- 暗夜紫补充适配：commerce.js 注入样式(.cm-*) / 灵感卡片 / 视频剪辑浅底 ---- */
    html.theme-purple .cm-input,
    html.theme-purple .cs-actions,
    html.theme-purple .cm-in,
    html.theme-purple .cm-ta,
    html.theme-purple .cm-in:focus,
    html.theme-purple .cm-ta:focus,
    html.theme-purple .cm-stat,
    html.theme-purple .cm-form,
    html.theme-purple .cm-modal,
    html.theme-purple .cm-ie-modal,
    html.theme-purple .cm-mod-modal,
    html.theme-purple .cm-mod-sec,
    html.theme-purple .cm-mod-chip,
    html.theme-purple .cm-import-panel,
    html.theme-purple .cm-ph,
    html.theme-purple .cm-sel-col,
    html.theme-purple .cm-tl-i,
    html.theme-purple .cm-pager,
    html.theme-purple .cm-pg-btn,
    html.theme-purple .cm-pg-size,
    html.theme-purple .cm-log-box,
    html.theme-purple .cm-tpl-tool,
    html.theme-purple .cm-news-side,
    html.theme-purple .cm-news-work,
    html.theme-purple .cm-news-summary,
    html.theme-purple .cm-news-item,
    html.theme-purple .cm-news-hist-item,
    html.theme-purple .cm-loading,
    html.theme-purple .cm-main-card,
    html.theme-purple .cm-main-col,
    html.theme-purple .cm-main-style,
    html.theme-purple .cm-main-result,
    html.theme-purple .cm-hist-item,
    html.theme-purple .cm-hist-item.fav,
    html.theme-purple .cm-up-prev.has-img,
    html.theme-purple .cm-bd-side,
    html.theme-purple .cm-bd-add,
    html.theme-purple .cm-bd-add.custom,
    html.theme-purple .cm-bd-li,
    html.theme-purple .cm-bd-editor,
    html.theme-purple .cm-bd-seg button,
    html.theme-purple .cm-btn.ghost,
    html.theme-purple .ai-result,
    html.theme-purple .idea-btn-update{
      background:var(--panel)!important;
      color:var(--text)!important;
      border-color:var(--line)!important;
    }
    /* 详情页编辑器内容区块：可能带用户自选内联底色，不用 !important，仅覆盖注入的默认白底 */
    html.theme-purple .cm-bd-sec{background:var(--panel);color:var(--text);border-color:var(--line)}
    /* 上传区占位文字（注入样式硬编码 #555/#aaa）在暗底提亮 */
    html.theme-purple .cm-up-placeholder,
    html.theme-purple .cm-up-placeholder svg{color:var(--muted)!important}
    /* 用户气泡（浅绿）在暗底改深软底 */
    html.theme-purple .cm-row.user .cm-bubble{background:var(--primary-soft)!important;color:var(--text)!important}
    /* 历史对话删除钮浅字浅底 */
    html.theme-purple .cs-history-del{color:var(--muted)!important}
    html.theme-purple .cs-history-del:hover{background:var(--primary-soft)!important;color:var(--text)!important}
    /* 视频剪辑浅底块 */
    html.theme-purple .vp-step.done{background:var(--primary-soft)!important;border-color:var(--line)!important;color:var(--text)!important}
    html.theme-purple .vp-videos{background:transparent!important}
    /* 徽章/语义浅底块 → 深底 + 主题色文字（chutu 色系点缀） */
    html.theme-purple .cm-badge.yes{background:rgba(61,204,166,.14)!important;color:#3DCCA6!important;border-color:rgba(61,204,166,.4)!important}
    html.theme-purple .cm-badge.no{background:rgba(236,102,171,.14)!important;color:#ec66ab!important;border-color:rgba(236,102,171,.4)!important}
    html.theme-purple .cm-badge.pending{background:rgba(250,194,10,.14)!important;color:#fac20a!important;border-color:rgba(250,194,10,.4)!important}
    html.theme-purple .idea-s-hot{background:rgba(236,102,171,.10)!important;color:#f0c6da!important;border-color:rgba(236,102,171,.3)!important}
    html.theme-purple .idea-s-idea{background:rgba(250,194,10,.08)!important;color:#e6d9a8!important;border-color:rgba(250,194,10,.28)!important}
    html.theme-purple .idea-update-bar{background:rgba(61,204,166,.14)!important;color:#3DCCA6!important;border-color:rgba(61,204,166,.35)!important}
    html.theme-purple .idea-abtn-warn{background:rgba(250,194,10,.16)!important;color:#fac20a!important;border-color:rgba(250,194,10,.4)!important}
    html.theme-purple .wx-ts-check{background:rgba(250,194,10,.12)!important;color:#fac20a!important;border-color:rgba(250,194,10,.35)!important}
    html.theme-purple .wx-ts-check:hover{background:rgba(250,194,10,.2)!important}
    html.theme-purple .wx-redline-pill.wx-rl-ok{background:rgba(61,204,166,.14)!important;color:#3DCCA6!important}
    html.theme-purple .wx-redline-pill.wx-rl-bad{background:rgba(236,102,171,.14)!important;color:#ec66ab!important}
    html.theme-purple .cm-in-dup{background:rgba(236,102,171,.1)!important;color:#f0b6ce!important;border-color:rgba(236,102,171,.35)!important}
    html.theme-purple .cm-ip-warn{background:rgba(250,194,10,.1)!important;color:#e6cf8a!important;border-color:rgba(250,194,10,.3)!important}
    html.theme-purple .cm-ip-err{background:rgba(236,102,171,.1)!important;color:#f0b6ce!important;border-color:rgba(236,102,171,.35)!important}
  }
  /* ===== 供应商对账单页面（独立视图，类似开票明细；边距与 fin-inv-page 一致） ===== */
  .fin-recon-page{padding:0}
  .fin-recon-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px}
  .fin-recon-head #finReconBack{margin-right:0;margin-right:10px}
  .fin-recon-title{font-size:17px;font-weight:700;color:var(--text)}
  .fin-recon-sup{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:var(--panel);color:var(--text);font-size:13px;max-width:240px}
  .fin-recon-status-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:16px}
  /* 与 .fin-recon-title 同款：17px 加粗正文色 */
  .fin-recon-status-inline .fin-recon-ctl-t{margin-bottom:0;font-size:17px;font-weight:700;color:var(--text)}
  /* 对账状态多选下拉（外观与 .fin-recon-sup 完全一致） */
  .fin-recon-msel{position:relative;display:inline-block}
  .fin-recon-msel-btn{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:var(--panel);color:var(--text);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;max-width:240px;font-family:inherit;line-height:1}
  .fin-recon-msel-btn .fin-recon-msel-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fin-recon-msel-btn::after{content:'▾';font-size:11px;color:var(--muted);flex:none}
  .fin-recon-msel.open .fin-recon-msel-btn{border-color:var(--primary)}
  .fin-recon-msel-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:190px}
  .fin-recon-msel-panel[hidden]{display:none}
  .fin-recon-controls{display:flex;gap:18px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px}
  .fin-recon-ctl-block{flex:1;min-width:260px}
  .fin-recon-ctl-t{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px}
  .fin-recon-chks{display:flex;flex-wrap:wrap;gap:6px 14px}
  .fin-recon-chk{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text);cursor:pointer;user-select:none}
  .fin-recon-chk input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}
  .fin-recon-chk-juniu{color:var(--primary-dark);font-weight:600}
  .fin-recon-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .fin-recon-count{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 14px;line-height:1;white-space:nowrap}
  .fin-recon-count b{font-size:16px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
  .fin-recon-count i{font-style:normal;color:var(--line);font-size:14px}
  .fin-recon-tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);scrollbar-width:none;scrollbar-color:transparent transparent}
  .fin-recon-tbl-wrap::-webkit-scrollbar{display:none}
  .fin-recon-tbl{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;background:var(--panel)}
  .fin-recon-tbl th,.fin-recon-tbl td{padding:8px 10px;border:1px solid var(--line);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fin-recon-tbl .fin-recon-note{white-space:normal;word-break:break-word;text-overflow:clip;vertical-align:top}
  .fin-recon-tbl thead th{background:rgba(74,90,106,.07);font-weight:600;color:var(--text);position:sticky;top:0}
  .fin-recon-tbl .num{text-align:right;font-variant-numeric:tabular-nums}
  .fin-recon-tbl tbody tr:hover{background:var(--primary-soft)}
  .fin-recon-foot td{font-weight:700;background:rgba(74,90,106,.05)}
  .fin-recon-empty{text-align:center;color:var(--muted);padding:24px 0}
  @media(max-width:640px){
    .fin-recon-controls{flex-direction:column;gap:14px}
    .fin-recon-ctl-block{min-width:0}
    .fin-recon-back-wrap{flex-basis:100%}
    .fin-recon-sup{flex:1;min-width:0;max-width:170px}
    .fin-recon-msel-btn{max-width:170px}
  }
  /* 提成设置弹窗 */
  .fin-tc-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-start;justify-content:center;z-index:9990;padding:24px;overflow:auto}
  .fin-tc-modal{background:var(--bg,#fff);border-radius:12px;width:100%;max-width:820px;box-shadow:0 8px 30px rgba(0,0,0,.2);margin:auto}
  .fin-tc-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line,#ddd);font-weight:700;font-size:15px;color:var(--text,#333)}
  .fin-tc-title{font-weight:700;font-size:15px;color:var(--text,#333)}
  .fin-tc-x{border:none;background:transparent;color:var(--muted,#888);cursor:pointer;font-size:20px;line-height:1;padding:2px 8px;border-radius:6px}
  .fin-tc-x:hover{background:var(--primary-soft,#eee);color:var(--primary-dark,#333)}
  .fin-tc-vers{display:flex;gap:8px;overflow-x:auto;padding:12px 14px 4px}
  .fin-tc-ver{flex:0 0 auto;padding:7px 14px;border:.5px solid var(--border,#ccc);border-radius:8px;font-size:13px;white-space:nowrap;cursor:pointer;background:var(--bg,#fff)}
  .fin-tc-ver.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:500}
  .fin-tc-addver{flex:0 0 auto;padding:7px 14px;border:.5px dashed #999;border-radius:8px;background:none;font-size:13px;cursor:pointer;color:#555}
  .fin-tc-row{display:flex;align-items:center;gap:10px;padding:6px 14px}
  .fin-tc-row label{font-size:13px;min-width:64px}
  .fin-tc-date{border:.5px solid var(--border,#999);border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
  .fin-tc-cal{font-size:13px}
  .fin-tc-table{width:100%;border-collapse:collapse;font-size:13px;margin:4px 0}
  .fin-tc-table th,.fin-tc-table td{border:.5px solid var(--border,#eee);padding:6px 8px;text-align:left}
  .fin-tc-table th{background:var(--primary-soft,#eee);color:var(--primary,#333);font-weight:700}
  .fin-tc-table input.fin-tc-ipt{width:84px;padding:4px 6px;border:.5px solid var(--border,#ccc);border-radius:5px;font-size:12px}
  .fin-tc-field{display:flex;flex-direction:column;gap:2px}
  .fin-tc-inline{display:inline-flex;align-items:center;gap:3px}
  .fin-tc-flabel{font-size:11px;color:#888}
  .fin-tc-suffix{font-size:12px;color:#888;margin-left:2px}
  .fin-tc-sort span{display:inline-block;width:20px;height:20px;line-height:18px;text-align:center;border:.5px solid var(--border,#ccc);border-radius:4px;cursor:pointer;margin-right:3px}
  .fin-tc-del{color:#a32d2d;cursor:pointer;font-size:12px}
  .fin-tc-del-confirm{display:inline-block;padding:2px 8px;background:#fcebeb;color:#a32d2d;font-size:11px;border:.5px solid #f09595;border-radius:4px;cursor:pointer;white-space:nowrap}
  .fin-tc-locked{font-size:11px;color:#b4b2a9}
  .fin-tc-fixed{background:#f7f7f5}
  .fin-tc-cards{display:flex;flex-direction:column;gap:8px;padding:0 14px}
  .fin-tc-card{border:.5px solid var(--border,#ccc);border-radius:10px;padding:10px 12px}
  .fin-tc-card.fixed{background:#f7f7f5}
  .fin-tc-card-h{display:flex;justify-content:space-between;align-items:center}
  .fin-tc-card-h b{font-size:15px}
  .fin-tc-card-btns span{margin-left:6px;cursor:pointer}
  .fin-tc-up,.fin-tc-down{display:inline-block;width:22px;height:22px;line-height:20px;text-align:center;border:.5px solid var(--border,#ccc);border-radius:5px;font-size:13px}
  .fin-tc-card-body{margin-top:7px;display:flex;flex-direction:column;gap:4px}
  .fin-tc-card-body .fin-tc-field{flex-direction:row;align-items:center;justify-content:space-between}
  .fin-tc-card-body .fin-tc-flabel{min-width:96px}
  .fin-tc-card-body input.fin-tc-ipt{width:90px;padding:4px 6px;border:.5px solid var(--border,#ccc);border-radius:5px;font-size:13px}
  .fin-tc-delver{display:flex;align-items:center;gap:10px;padding:8px 14px}
  .fin-tc-delverbtn{border:.5px solid #f09595;color:#a32d2d;background:#fff;border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer}
  .fin-tc-hint{font-size:11px;color:#999}
  .fin-tc-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-top:.5px solid var(--border,#ddd);background:#fafafa;gap:10px;flex-wrap:wrap}
  .fin-tc-addtier{border:.5px dashed #999;background:#fff;border-radius:6px;padding:8px 12px;font-size:13px;cursor:pointer}
  .fin-tc-actions{display:flex;gap:10px;margin-left:auto}
  .fin-tc-actions .fin-btn{padding:8px 16px;font-size:13px}
  /* 提成设置：桌面左右结构（左=版本列表，右=生效日期+档位）；移动端不走此布局 */
  .fin-tc-lr{max-width:920px}
  .fin-tc-lrwrap{display:flex;align-items:stretch}
  .fin-tc-side{flex:0 0 178px;border-right:.5px solid var(--border,#ddd);padding:12px 10px;display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow-y:auto}
  .fin-tc-lr .fin-tc-side .fin-tc-ver{white-space:normal;line-height:1.45;text-align:left;word-break:break-all}
  .fin-tc-lr .fin-tc-side .fin-tc-addver{flex:none}
  .fin-tc-side-del{margin-top:auto;padding-top:10px;border-top:.5px dashed var(--border,#ddd);display:flex;flex-direction:column;gap:5px}
  .fin-tc-side .fin-tc-delverbtn{width:100%}
  .fin-tc-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .fin-tc-main .fin-tc-row{padding:12px 14px 4px}
  .fin-tc-main .fin-tc-table{width:calc(100% - 28px);margin:4px 14px}
  .fin-tc-main .fin-tc-foot{margin-top:auto}
  .fin-ct-vers{display:flex;gap:8px;overflow-x:auto;padding:8px 0}
  .fin-ct-ver{flex:0 0 auto;padding:6px 12px;border:.5px solid var(--border,#ccc);border-radius:8px;font-size:13px;white-space:nowrap;cursor:pointer}
  .fin-ct-ver.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:500}
  /* 日历弹窗/供应商状态弹窗样式（全局兜底：原先只在 commerce.js 打开电商/客户页时注入，
     财务页直开时日历无样式渲染在 body 底部导致「点不动」。与 commerce.js 注入的规则一致，重复无害） */
  .fin-sup-status-pop{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.38);display:flex;align-items:center;justify-content:center}
  .fin-sup-status-card{background:#fff;border-radius:14px;width:340px;max-width:92vw;box-shadow:0 18px 60px rgba(0,0,0,.3);overflow:hidden;font-family:inherit}
  .fin-sup-status-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--primary);color:#fff;font-weight:700;font-size:14px}
  .fin-sup-status-head button{background:transparent;border:0;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}
  .fin-sup-status-cur{padding:10px 14px;font-size:12.5px;color:var(--muted);border-bottom:1px solid #eee}
  .fin-sup-status-cur b{color:var(--text)}
  .fin-sup-status-opts{padding:8px 10px 2px}
  .fin-ss-opt{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #ececec;border-radius:9px;margin-bottom:5px;cursor:pointer;font-size:13px}
  .fin-ss-opt:last-child{margin-bottom:0}
  .fin-ss-opt:hover{border-color:var(--primary)}
  .fin-ss-opt.sel{border-color:var(--primary);background:var(--primary-soft)}
  .fin-ss-opt input{accent-color:var(--primary)}
  .fin-ss-opt em{margin-left:auto;font-style:normal;font-size:11px;color:var(--muted)}
  .fin-ss-opt.disabled{opacity:.45;cursor:not-allowed}
  .fin-sup-status-dates{padding:2px 14px 8px}
  .fin-ss-date-row{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:12.5px}
  .fin-ss-date-row label{width:64px;color:var(--muted);flex:none}
  .fin-ss-date-input-wrap{flex:1;display:flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid #ccc;border-radius:7px;background:#fff;cursor:pointer}
  .fin-ss-date-input-wrap[readonly]{background:#f5f5f5;color:#666;cursor:default}
  .fin-ss-date-input{flex:1;border:0;background:transparent;font-family:inherit;font-size:12.5px;min-width:0;outline:0;color:var(--text);cursor:pointer}
  .fin-ss-date-input[readonly]{cursor:default}
  .fin-ss-date-input::placeholder{color:#bbb}
  .fin-ss-date-icon{background:transparent;border:0;padding:0;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;display:inline-flex}
  .fin-ss-cal-pop{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.38);display:flex;align-items:center;justify-content:center}
  .fin-ss-cal-card{background:#fff;border-radius:14px;width:300px;max-width:92vw;padding:14px;box-shadow:0 18px 60px rgba(0,0,0,.3);font-family:inherit}
  .fin-ss-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .fin-ss-cal-head button{width:32px;height:32px;border:1px solid #ececec;border-radius:10px;background:#fff;color:var(--text);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
  .fin-ss-cal-head button:hover{border-color:var(--primary);color:var(--primary)}
  .fin-ss-cal-title{font-size:16px;font-weight:700;color:var(--text)}
  .fin-ss-cal-weeks{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;margin-bottom:6px}
  .fin-ss-cal-weeks span{font-size:12px;color:#999;padding:4px 0}
  .fin-ss-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
  .fin-ss-cal-day{height:34px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text);border-radius:10px;cursor:pointer;transition:.12s}
  .fin-ss-cal-day:hover{background:#f2f2f2}
  .fin-ss-cal-day.other{color:#ccc}
  .fin-ss-cal-day.today{font-weight:700;color:var(--primary)}
  .fin-ss-cal-day.sel{background:#4a5568;color:#fff;font-weight:700}
  .fin-ss-cal-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0}
  .fin-ss-cal-foot button{padding:7px 14px;border-radius:8px;border:0;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
  .fin-ss-cal-cancel{background:#eee;color:#555}
  .fin-ss-cal-ok{background:var(--primary);color:#fff}
  .fin-sup-status-foot{display:flex;gap:8px;padding:10px 14px;border-top:1px solid #eee}
  .fin-sup-status-foot button{flex:1;padding:8px;border-radius:9px;border:0;font-weight:700;cursor:pointer;font-family:inherit;font-size:13px}
  .fin-ss-cancel{background:#eee;color:#555}
  .fin-ss-ok{background:var(--primary);color:#fff}
  .fin-tip{position:fixed;z-index:99999;background:rgba(40,40,40,.95);color:#fff;font-size:12px;line-height:1.5;padding:6px 10px;border-radius:8px;pointer-events:none;opacity:0;transform:translate(-50%,calc(-100% - 6px));transition:opacity .15s ease,transform .15s ease;white-space:pre-line;box-shadow:0 6px 20px rgba(0,0,0,.28)}
  .fin-tip.show{opacity:1;transform:translate(-50%,-100%)}
  .fin-tip::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(40,40,40,.95)}
