:root{
    --wine:#B33A3A; --wine-dark:#8B1F1F; --saddle:#8B4513;
    --camel:#C19A6B; --cream:#F5F0E8; --cream-light:#FAF6EF;
    --brown:#3D2817; --line:rgba(122,47,55,.15);
    --card-bg:#fff; --input-bg:#fff;
  }
  /* v65 深色模式：CSS 变量覆盖（保留酒红/驼色品牌强调，底色深褐） */
  :root[data-theme="dark"]{
    --cream:#1b1715; --cream-light:#251f1a; --brown:#E8DCC8;
    --line:rgba(193,154,107,.28); --card-bg:#241f1a; --input-bg:#2d261f;
    --saddle:#C9A227;
  }
  :root[data-theme="dark"] .t-red{background:#3a2222;color:#f0a6a6}
  :root[data-theme="dark"] .t-amber{background:#3a2f1e;color:#e6c07e}
  :root[data-theme="dark"] .t-green{background:#22301f;color:#a8d08a}
  :root[data-theme="dark"] .t-gray{background:#2c2620;color:#b0a493}
  :root[data-theme="dark"] .t-blue{background:#1e2c3a;color:#9cc3e8}
  :root[data-theme="dark"] .banner{background:#3a2222;border-color:#a32d2d;color:#f0a6a6}
  .alert-guide{background:#EAF3DE;color:#3B6D11;border:1px solid #97C459;font-size:13px;padding:8px 12px;border-radius:8px;margin-bottom:12px}
  :root[data-theme="dark"] .alert-guide{background:#22301f;color:#a8d08a;border-color:#3B6D11}
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
    background:var(--cream);color:var(--brown);font-size:14px;line-height:1.6;display:flex;min-height:100vh}
  .sidebar{width:210px;background:#8B1F1F;color:var(--cream-light);padding:20px 0;flex-shrink:0}
  .logo{padding:0 20px 18px;font-size:16px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.15)}
  .logo small{display:block;font-size:11px;opacity:.7;font-weight:400;margin-top:3px}
  .nav{padding:14px 0}
  .nav a{display:block;padding:11px 20px;color:var(--cream-light);text-decoration:none;
    font-size:13px;border-left:3px solid transparent;cursor:pointer}
  .nav a:hover{background:rgba(255,255,255,.08)}
  .nav a.active{background:rgba(255,255,255,.14);border-left-color:var(--camel)}
  .topbar{height:56px;background:var(--card-bg);border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;padding:0 24px}
  .topbar h1{font-size:15px;font-weight:600;color:var(--wine-dark)}
  .topbar .who{font-size:12px;color:#888;display:flex;align-items:center;gap:10px}
  .dot{width:8px;height:8px;border-radius:50%;background:#aaa;display:inline-block}
  .dot.on{background:#3B6D11}.dot.off{background:#a32d2d}
  .content{padding:24px;overflow-y:auto;flex:1}
  h2.sec{font-size:14px;color:var(--wine);margin:0 0 16px;font-weight:600;
    border-left:3px solid var(--camel);padding-left:10px}
  .card{background:var(--card-bg);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:16px}
  .grid{display:grid;gap:14px}
  .g4{grid-template-columns:repeat(4,1fr)}
  .g3{grid-template-columns:repeat(3,1fr)}
  .g2{grid-template-columns:repeat(2,1fr)}
  .stat{background:var(--cream-light);border:1px solid var(--line);border-radius:10px;padding:16px}
  .stat .label{font-size:12px;color:#888}
  .stat .num{font-size:26px;font-weight:600;color:#8B1F1F;margin-top:6px}
  .stat .num.warn{color:var(--saddle)}
  .stat .num.danger{color:#a32d2d}
  .stat.alert{box-shadow:0 0 0 2px #a32d2d inset}
  /* v66 就近帮助：小问号 + 悬浮提示（纯 CSS，无 JS） */
  .ht{display:inline-flex;width:15px;height:15px;border-radius:50%;background:var(--camel);color:#fff;font-size:10px;font-weight:700;align-items:center;justify-content:center;cursor:help;margin-left:5px;vertical-align:middle;position:relative;flex-shrink:0}
  .ht::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#3D2817;color:#FAF6EF;padding:7px 11px;border-radius:7px;font-size:12px;line-height:1.55;white-space:normal;width:max-content;max-width:250px;z-index:999;opacity:0;pointer-events:none;transition:opacity .15s ease;box-shadow:0 4px 14px rgba(0,0,0,.25);font-weight:400;text-align:left}
  .ht::before{content:'';position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#3D2817;opacity:0;transition:opacity .15s ease;z-index:999;pointer-events:none}
  .ht:hover::after,.ht:hover::before{opacity:1}
  :root[data-theme="dark"] .ht{background:#8a5a3a}
  :root[data-theme="dark"] .ht::after,:root[data-theme="dark"] .ht::before{border-color:#E8DCC8;background:#E8DCC8;color:#1b1715}
  :root[data-theme="dark"] .ht::before{border-top-color:#E8DCC8}
  .alert-bar{background:#a32d2d;color:#fff;font-size:13px;padding:8px 12px;border-radius:8px;margin-bottom:12px}
  table{width:100%;border-collapse:collapse;font-size:13px}
  th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line)}.num-r{text-align:right;font-variant-numeric:tabular-nums}
  th{background:#8B1F1F;color:var(--cream-light);font-weight:500;font-size:12px}
  tbody tr:nth-child(even){background:var(--cream-light)}
  .tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500}
  .t-red{background:#FCEBEB;color:#a32d2d}
  .t-amber{background:#FAEEDA;color:var(--saddle)}
  .t-green{background:#EAF3DE;color:#3B6D11}
  .t-gray{background:var(--cream);color:#888}
  .t-blue{background:#E6F1FB;color:#185FA5}
  .btn{border:1px solid var(--wine);background:var(--wine);color:#fff;
    padding:7px 14px;border-radius:7px;font-size:13px;cursor:pointer}
  .btn:hover{background:var(--wine-dark)}
  .btn.ghost{background:transparent;color:var(--wine)}
  .btn.ghost:hover{background:var(--cream-light)}
  .btn.sm{padding:4px 10px;font-size:12px}
  .btn.amber{border-color:var(--saddle);background:var(--saddle);color:#fff}
  .btn.amber:hover{background:#6e370f}
  .btn:disabled{opacity:.5;cursor:not-allowed}
  .bar{height:8px;background:var(--cream);border-radius:6px;overflow:hidden;min-width:80px}
  .bar>span{display:block;height:100%;background:var(--wine)}
  .bar.warn>span{background:var(--saddle)}
  .bar.danger>span{background:#a32d2d}
  .hint{font-size:12px;color:#888;margin-top:8px}
  .empty{padding:40px;text-align:center;color:#aaa;font-size:13px}
  .form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
  .field{display:flex;flex-direction:column;gap:4px}
  .field label{font-size:12px;color:#888}
  input,select{font-family:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);
    border-radius:7px;background:var(--input-bg);color:var(--brown);min-width:140px}
  .banner{background:#FCEBEB;border:1px solid #a32d2d;color:#a32d2d;padding:12px 16px;
    border-radius:8px;margin-bottom:16px;font-size:13px;display:none}
  .sel{background:var(--cream-light);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
  pre{background:var(--cream-light);border:1px solid var(--line);border-radius:8px;padding:10px;
    font-size:12px;white-space:pre-wrap;max-height:160px;overflow:auto}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .login-mask{position:fixed;inset:0;background:linear-gradient(135deg,rgba(139,31,31,.9),rgba(92,26,27,.85));
    display:flex;align-items:stretch;justify-content:center;z-index:50;overflow:auto;padding:30px 18px}
  .login-shell{width:100%;max-width:1160px;margin:auto;display:grid;grid-template-columns:minmax(0,1.35fr) 360px;gap:28px;align-items:center}
  .login-landing{color:#fff;max-width:760px}
  .login-eyebrow{display:inline-flex;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 11px;font-size:12px;color:#F5E6D2;margin-bottom:12px}
  .login-landing h1{font-size:34px;line-height:1.22;letter-spacing:-.03em;margin-bottom:12px}
  .login-lead{font-size:15px;line-height:1.9;color:#F8EFE2;max-width:700px;margin-bottom:18px}
  .home-entry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 18px}
  .home-entry{display:block;text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:12px;padding:14px;background:rgba(255,255,255,.08)}
  .home-entry:hover{background:rgba(255,255,255,.14)}
  .home-entry strong{display:block;font-size:14px;margin-bottom:5px}
  .home-entry span{display:block;font-size:12px;line-height:1.65;color:#F5E6D2}
  .home-section,.home-faq{border-top:1px solid rgba(255,255,255,.18);padding-top:14px;margin-top:14px;scroll-margin-top:22px}
  .home-section:focus,.home-faq:focus{outline:2px solid rgba(255,255,255,.7);outline-offset:4px;border-radius:8px}
  .home-section h2,.home-faq h2{font-size:15px;margin-bottom:8px;color:#fff}
  .home-section p,.home-faq p{font-size:13px;line-height:1.85;color:#F8EFE2;margin-bottom:8px}
  .home-steps{padding-left:20px;font-size:13px;line-height:1.85;color:#F8EFE2}
  .home-faq h3{font-size:13px;color:#fff;margin:10px 0 4px}
  .home-updated{font-size:12px;color:#E8DCC8;margin-top:14px}
  .login-box{background:#fff;border-radius:14px;padding:30px 34px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.25)}
  .login-box h2{color:var(--wine);font-size:20px;margin-bottom:4px}
  .login-sub{color:#888;font-size:12px;margin-bottom:14px}
  .login-err{color:#a32d2d;font-size:12px;min-height:16px;margin-bottom:8px}
  .login-form{display:flex;flex-direction:column;gap:10px}
  .login-form label{font-size:12px;color:#888;display:flex;flex-direction:column;gap:4px}
  .login-form input{padding:9px 10px}
  .login-form .btn{margin-top:4px}
  .login-reg{margin-top:16px;font-size:12px;color:#888}
  .login-reg label{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:12px;color:#888}
  .login-reg input{padding:8px 10px}

  /* ---------- 老板精简视图 ---------- */
  .boss-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .boss-kpi .stat .num{font-size:34px;line-height:1.1}
  .boss-concl{background:#8B1F1F;color:#fff;border-radius:10px;padding:18px 20px;margin-bottom:16px;font-size:15px;line-height:1.7}
  .boss-concl b{color:var(--camel)}
  .drill-cursor{cursor:pointer}
  .drill-cursor:hover{text-decoration:underline;color:var(--wine)}
  @media (max-width:860px){
    .login-mask{padding:22px 14px}
    .login-shell{grid-template-columns:1fr;gap:18px}
    .login-landing h1{font-size:26px}
    .home-entry-grid{grid-template-columns:1fr}
  }
  @media (max-width:640px){ .content table{ display:block; overflow-x:auto; white-space:nowrap; } .btn,.btn.sm,input,select{ min-height:44px; }
    body{flex-direction:column}
    .sidebar{width:100%;padding:10px 0;display:block}
    .sidebar .logo{padding:0 14px 10px}
    .nav{display:flex;overflow-x:auto;padding:6px 0;white-space:nowrap}
    .nav a{padding:8px 14px;border-left:none;border-bottom:3px solid transparent}
    .nav a.active{background:rgba(255,255,255,.14);border-left:none;border-bottom-color:var(--camel)}
    .content{padding:14px}
    .g4,.boss-kpi{grid-template-columns:repeat(2,1fr)}
    .g3,.g2{grid-template-columns:1fr}
    .topbar{flex-wrap:wrap;gap:6px}
  }
  /* V69 P0-4/P0-5：data-style 生效前的初始态兜底。
     app.js 为 defer，浏览器可能在脚本下载完成前先绘制一帧；若脚本加载失败则永不执行。
     这里用外链样式表（CSP style-src 'self' 允许）固化「本应隐藏」的初始态，
     避免角色受限菜单在 JS 就绪前短暂可见（越权菜单泄漏）。
     运行期 applyDataStyle() 写的是行内样式，优先级高于此处，放行逻辑不受影响。 */
  #offlineBar,#updateBar,#onbMask,#lgCaptchaWrap,#demoCredHint{display:none}
  #navBoss,#navAudit,#navAi,#navAr,#navTeam,#navPlatform{display:none}
  #appSide,#appMain{visibility:hidden}
