/* ============ 商务极简皮肤 · 第二批：首页版式重构（2026-10-19）============
   配合 app.js 新 renderDashboard 使用；样式值 1:1 取自设计稿。 */

/* 去卡片四角科技角标 */
body.view-dashboard:not(.theme-dark) .card::before,
body.view-dashboard:not(.theme-dark) .card::after{display:none !important}
/* 卡片：无框轻影（设计稿 .card） */
body.view-dashboard:not(.theme-dark) .card{border:none !important;box-shadow:0 1px 3px rgba(35,45,66,.05) !important;border-radius:12px !important}

/* ===== 问候横幅（设计稿 .hero） ===== */
body.view-dashboard:not(.theme-dark) .hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-radius:14px;padding:20px 24px;margin-bottom:20px}
body.view-dashboard:not(.theme-dark) .hero .hi{font-size:23px;letter-spacing:.5px;font-weight:700;color:#232D42}
.hero-sub{color:#98A0AE;margin-top:5px;font-size:12.5px}
body.view-dashboard:not(.theme-dark) .hero .actions{display:flex;gap:10px;flex:none}

/* ===== 顶部四张总览卡（设计稿 .today/.tg） ===== */
.t4s{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:16px}
.t4{background:#FFF;border-radius:12px;box-shadow:0 1px 3px rgba(35,45,66,.05);padding:15px 18px;cursor:pointer;display:flex;gap:12px;align-items:center;transition:transform .14s cubic-bezier(.2,.7,.3,1),box-shadow .14s cubic-bezier(.2,.7,.3,1)}
.t4:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(35,45,66,.09)}
.t4:active{transform:translateY(0) scale(.98)}
.t4-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:15px;flex-shrink:0;font-style:normal}
.t4-tx{flex:1;min-width:0}
.t4-lb{color:#98A0AE;font-size:12px;display:flex;justify-content:space-between}
.t4-lb span{color:#C9CFD9}
.t4:hover .t4-lb span{color:#C9A254}
.t4-v{font-size:20px;font-weight:700;color:#232D42;margin-top:4px;font-variant-numeric:tabular-nums}
.t4-v small{font-size:12px;font-weight:400;color:#98A0AE}

/* ===== 卡片头（设计稿 .chead：金色小方块 + 15px 标题） ===== */
body.view-dashboard:not(.theme-dark) .chead{display:flex;align-items:center;padding:15px 20px 10px;margin-bottom:0;gap:9px}
body.view-dashboard:not(.theme-dark) .chead .bar{flex:none;width:9px;height:9px;border-radius:3px;background:#C9A254;box-shadow:0 0 0 3px #F7F0DE}
body.view-dashboard:not(.theme-dark) .chead .t{font-size:15px;font-weight:700;color:#232D42}
body.view-dashboard:not(.theme-dark) .chead .en{font-size:11px;color:#98A0AE;letter-spacing:1px;opacity:1;font-weight:400}
body.view-dashboard:not(.theme-dark) .chead .note{font-size:12px;color:#98A0AE}
body.view-dashboard:not(.theme-dark) .chead .link{font-size:12px;color:#A8843C}

/* 经营概览卡头里的周期页签（设计稿 .ptabs 灰底胶囊组） */
.chead-tabs{flex-wrap:wrap;row-gap:8px}
.chead-tabs .tabs{margin-left:auto;display:flex;gap:2px;background:#F2F4F7;border-radius:999px;padding:3px}
.chead-tabs .ptab{font-size:12px;color:#98A0AE;padding:4px 13px;border-radius:999px;cursor:pointer;border:none !important;transition:.14s}
.chead-tabs .ptab:hover{color:#232D42}
body.view-dashboard:not(.theme-dark) .chead-tabs .ptab.active{background:#FFF !important;color:#232D42 !important;font-weight:600;box-shadow:0 1px 3px rgba(35,45,66,.12)}

/* ===== 统计小格（设计稿 .st：细线卡 + 顶沿金点；经营概览 5 格一排） ===== */
body.view-dashboard:not(.theme-dark) .stats{padding:8px 12px 16px;gap:10px;grid-template-columns:repeat(5,1fr)}
@media (max-width:1500px){body.view-dashboard:not(.theme-dark) .stats{grid-template-columns:repeat(3,1fr)}}
body.view-dashboard:not(.theme-dark) .st{padding:13px 16px 12px;border-radius:10px;background:#FFF;border:1px solid #E8EBF0;display:flex;align-items:flex-start;gap:0;box-shadow:none}
body.view-dashboard:not(.theme-dark) .st::before{content:"";position:absolute;left:16px;top:0;width:22px;height:2.5px;border-radius:0 0 3px 3px;background:#C9A254;opacity:.55;transition:.14s}
body.view-dashboard:not(.theme-dark) .st:hover{border-color:#DCC896;box-shadow:0 4px 14px rgba(35,45,66,.08);transform:translateY(-2px)}
body.view-dashboard:not(.theme-dark) .st:hover::before{opacity:1}
body.view-dashboard:not(.theme-dark) .st .ico,
body.view-dashboard:not(.theme-dark) .st .spark{display:none}
body.view-dashboard:not(.theme-dark) .st .l{display:flex;flex-direction:column;width:100%}
body.view-dashboard:not(.theme-dark) .st .lb{order:-1;color:#98A0AE;font-size:12.5px;white-space:nowrap;letter-spacing:.5px;margin:0}
body.view-dashboard:not(.theme-dark) .st .l b{font-size:23px;font-weight:700;color:#232D42 !important;margin:9px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.3px}
body.view-dashboard:not(.theme-dark) .st .l b .u{font-size:12px;color:#98A0AE}
body.view-dashboard:not(.theme-dark) .st .sb{font-size:11px;color:#98A0AE;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
body.view-dashboard:not(.theme-dark) .st .trend{white-space:nowrap}
/* 环比徽标 → 设计稿 .tag */
body.view-dashboard:not(.theme-dark) .st .trend{margin-top:8px;font-size:11px;padding:2px 8px}
body.view-dashboard:not(.theme-dark) .st .trend.up{background:#EDF4EE;color:#4A8B63}
body.view-dashboard:not(.theme-dark) .st .trend.down{background:#F9EEE9;color:#C0533D}
body.view-dashboard:not(.theme-dark) .st .trend.flat{background:#F2F4F6;color:#98A0AE}

/* ===== 财务管理小格（同 .st 设计，设计稿 3 列） ===== */
body.view-dashboard:not(.theme-dark) .money{padding:8px 12px 16px;gap:10px;grid-template-columns:repeat(3,1fr) !important}
@media (max-width:1100px){body.view-dashboard:not(.theme-dark) .money{grid-template-columns:repeat(2,1fr) !important}}
body.view-dashboard:not(.theme-dark) .mc{padding:13px 16px 12px;border-radius:10px;background:#FFF;border:1px solid #E8EBF0;box-shadow:none}
body.view-dashboard:not(.theme-dark) .mc::before{content:"";position:absolute;left:16px;top:0;width:22px;height:2.5px;border-radius:0 0 3px 3px;background:#C9A254;opacity:.55;transition:.14s}
body.view-dashboard:not(.theme-dark) .mc:hover{border-color:#DCC896;box-shadow:0 4px 14px rgba(35,45,66,.08);transform:translateY(-2px)}
body.view-dashboard:not(.theme-dark) .mc:hover::before{opacity:1}
body.view-dashboard:not(.theme-dark) .mc .ico,
body.view-dashboard:not(.theme-dark) .mc .ering,
body.view-dashboard:not(.theme-dark) .mc .spark{display:none}
body.view-dashboard:not(.theme-dark) .mc .top{margin-bottom:0}
body.view-dashboard:not(.theme-dark) .mc .lb{color:#98A0AE;font-size:12.5px;white-space:nowrap;letter-spacing:.5px}
body.view-dashboard:not(.theme-dark) .mc b{font-size:23px;font-weight:700;color:#232D42 !important;margin:9px 0 2px;font-variant-numeric:tabular-nums;letter-spacing:.3px}
body.view-dashboard:not(.theme-dark) .mc .sb{display:none}
body.view-dashboard:not(.theme-dark) .mc .ft{margin-top:8px}

/* ===== 本周节点 / 商机（设计稿 .rows/.srow + 日期胶囊 + 「催一下」按钮） ===== */
body.view-dashboard:not(.theme-dark) .rows{padding:4px 8px 8px}
body.view-dashboard:not(.theme-dark) .srow{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .14s;gap:10px}
body.view-dashboard:not(.theme-dark) .srow:hover{background:#F7F5EF}
body.view-dashboard:not(.theme-dark) .srow .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#4A5262}
body.view-dashboard:not(.theme-dark) .srow .l b{color:#232D42;font-weight:600}
body.view-dashboard:not(.theme-dark) .srow .r{color:#98A0AE;font-size:12px;flex-shrink:0;display:flex;align-items:center;gap:8px}
body.view-dashboard:not(.theme-dark) .srow .pill{font-size:11px;padding:2px 9px;border-radius:999px;background:#F0F3F7;color:#3A4A6B}
body.view-dashboard:not(.theme-dark) .srow .pill.gold{background:#F7F0DE;color:#A8843C}
body.view-dashboard:not(.theme-dark) .srow .op{font-size:12px;padding:4px 13px;border-radius:999px;border:1px solid #E8EBF0;background:#FFF;color:#98A0AE;cursor:pointer;transition:.14s;font-family:inherit}
body.view-dashboard:not(.theme-dark) .srow .op:hover{border-color:#C9A254;color:#A8843C;background:#FBF7EC;transform:translateY(-1px)}
body.view-dashboard:not(.theme-dark) .srow .op:active{transform:scale(.94)}
body.view-dashboard:not(.theme-dark) .srow .new{display:inline-block;background:#C0533D;color:#FFF;font-size:10px;padding:1px 6px;border-radius:999px;margin-left:6px}

/* ===== 今日动态（设计稿 .dyn/.dy） ===== */
.dyn{padding:4px 0 10px}
.dy{display:flex;gap:11px;padding:9px 12px;margin:0 8px;border-radius:10px;align-items:flex-start;cursor:pointer;transition:background .14s}
.dy:hover{background:#F7F5EF}
.dy .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:12px;flex-shrink:0;font-style:normal;font-weight:600}
.dy .ic.out{background:#EBF0F9;color:#3A5E9E}
.dy .ic.lv{background:#F9EEE9;color:#C0533D}
.dy .ic.an{background:#F7F0DE;color:#A8843C}
.dy .ic.ok{background:#EBF3EE;color:#4A8B63}
.dy .tx{flex:1;font-size:13px;line-height:1.6;min-width:0;color:#4A5262;padding-top:3px}
.dy .tx b{color:#232D42;font-weight:600}
.dy .tm{display:inline-block;font-size:11px;color:#A8843C;background:#F9F4E5;padding:1px 8px;border-radius:999px;margin-left:6px;white-space:nowrap}
.dy .new{display:inline-block;background:#C0533D;color:#FFF;font-size:10px;padding:1px 6px;border-radius:999px;margin-left:6px}

/* ===== 项目产值排名（1:1 设计稿 .rank/.rk） ===== */
/* 设计稿没有大额汇总数字块，只留排名列表（数字不丢：每行右侧仍有产值金额） */
body.view-dashboard:not(.theme-dark) .prod-sum{display:none !important}
body.view-dashboard:not(.theme-dark) .prod-list{padding:6px 12px 12px}
body.view-dashboard:not(.theme-dark) .prod-row{display:flex;align-items:center;padding:9px 8px;border-radius:10px;gap:10px}
body.view-dashboard:not(.theme-dark) .prod-row:hover{background:#F7F5EF}
/* 前三名奖牌 emoji → 设计稿金色序号 1/2/3，其余 04/05 保留原文字改灰 */
body.view-dashboard:not(.theme-dark) .prod-row .rk{width:20px;flex-shrink:0;text-align:center;background:none !important;border:none !important;box-shadow:none !important;font-size:12px !important;color:#98A0AE;font-weight:600}
body.view-dashboard:not(.theme-dark) .prod-row:nth-child(-n+3) .rk{font-size:0 !important}
body.view-dashboard:not(.theme-dark) .prod-row:nth-child(-n+3) .rk::before{font-size:12px;color:#A8843C;font-weight:600}
body.view-dashboard:not(.theme-dark) .prod-row:nth-child(1) .rk::before{content:"1"}
body.view-dashboard:not(.theme-dark) .prod-row:nth-child(2) .rk::before{content:"2"}
body.view-dashboard:not(.theme-dark) .prod-row:nth-child(3) .rk::before{content:"3"}
body.view-dashboard:not(.theme-dark) .prod-row .nm{flex:1;font-size:13px;color:#2A3140;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.view-dashboard:not(.theme-dark) .prod-row .bar{height:4px;border-radius:3px;background:#F0F2F5;flex:2;overflow:hidden;box-shadow:none}
body.view-dashboard:not(.theme-dark) .prod-row .bar i{background:linear-gradient(90deg,#3A4A6B,#C9A254);box-shadow:none}
body.view-dashboard:not(.theme-dark) .prod-row .val{font-weight:700;color:#232D42;font-variant-numeric:tabular-nums;font-size:13px;flex-shrink:0}

/* ===== 对比小砖（设计稿 .cmp/.cp） ===== */
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:8px 16px 16px}
.cp{background:#F7F8FA;border-radius:10px;padding:12px 14px}
.cp .lb{font-size:12px;color:#98A0AE}
.cp .v{font-size:17px;font-weight:700;color:#232D42;margin-top:4px;font-variant-numeric:tabular-nums}
.cp .up{font-size:12px;color:#4A8B63;margin-top:3px}
.cp .up.d{color:#C0533D}

/* ===== 常用入口（设计稿 .qe） ===== */
body.view-dashboard:not(.theme-dark) .qe{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 12px 14px}
body.view-dashboard:not(.theme-dark) .qe a{display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 4px;border-radius:10px;cursor:pointer;color:#5A6372;font-size:12px;transition:.14s;background:none;border:none;box-shadow:none}
body.view-dashboard:not(.theme-dark) .qe a .qi{font-style:normal;font-size:16px;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#F2F4F7;color:#3A4A6B;transition:.14s;border:none;box-shadow:none}
body.view-dashboard:not(.theme-dark) .qe a:hover{background:#F7F5EF;color:#232D42;transform:none;box-shadow:none}
body.view-dashboard:not(.theme-dark) .qe a:hover .qi{background:#C9A254;color:#FFF}

/* 侧栏卡片间距 */
body.view-dashboard:not(.theme-dark) .side .card{margin-bottom:14px}
/* ============ 第二批 结束 ============ */

/* —— 对齐设计稿细节（2026-10-19 补） —— */
/* 经营概览卡头：只要标题+页签，藏掉说明和全部链接 */
.chead-tabs .note,.chead-tabs .link{display:none !important}
/* 统计小格：藏掉副说明行，只留 标签+大数字+胶囊（和设计稿一致） */
body.view-dashboard:not(.theme-dark) .st .sb{display:none}
/* 财务管理"展开全部"：低调的文字条，不要渐变横幅 */
body.view-dashboard:not(.theme-dark) .money-toggle{background:#F7F8FA !important;border:1px dashed #E8EBF0 !important;color:#98A0AE !important;border-radius:10px;padding:8px;text-align:center;font-size:12px;margin:2px 12px 14px;box-shadow:none !important}
body.view-dashboard:not(.theme-dark) .money-toggle:hover{color:#A8843C !important;border-color:#DCC896 !important}

/* —— 顶栏按设计稿（2026-10-19 补） —— */
.topbar-in{height:56px !important}
.topbar{border-bottom:1px solid #EFE7D2 !important}
.topbar .logo{display:none !important}
.topbar .brand-txt{display:flex !important;flex-direction:row !important;align-items:baseline;gap:8px}
.topbar .brand-txt b{display:inline !important;font-size:16px !important;letter-spacing:2px;color:#232D42 !important;line-height:1.2}
.topbar .brand-txt span{display:inline !important;margin-top:0 !important;font-size:11px !important;color:#98A0AE !important;font-weight:400 !important;letter-spacing:1px}
/* 搜索框（真实类名 .search/.sin）：白金边胶囊 */
.topbar .search{position:relative}
.topbar .search .sin{width:270px;border:1.5px solid #DCCFA8 !important;background:#FFF !important;border-radius:999px !important;padding:8px 16px 8px 32px !important;font-size:13px;color:#2A3140 !important;box-shadow:0 1px 4px rgba(201,162,84,.10) !important}
.topbar .search .sin:hover{border-color:#C9A254 !important}
.topbar .search .sin:focus{border-color:#C9A254 !important;box-shadow:0 0 0 3px #F1E6C8 !important;outline:none}
.topbar .search .sin::placeholder{color:#A8935F !important}
.topbar .search .si{color:#A8843C !important}
/* 右上图标按钮：全部极简（无框无底，悬停浅灰圆） */
.topbar .iconbtn{background:none !important;border:none !important;box-shadow:none !important;width:32px !important;height:32px !important;border-radius:50% !important;color:#6E7686 !important;padding:0 !important}
.topbar .iconbtn:hover{background:#F3F5F8 !important;color:#232D42 !important;transform:none !important}
/* 深浅切换按钮：去掉 */
#theme-toggle-btn{display:none !important}
/* 铃铛角标：金色小圆点（设计稿同款） */
#nb-dot{width:8px !important;height:8px !important;min-width:8px !important;background:#C9A254 !important;color:transparent !important;font-size:0 !important;padding:0 !important;border-radius:50% !important;box-shadow:none !important;border:none !important}

/* —— 2026-10-19 第三轮：逐块对齐设计稿 —— */
/* 周期页签：经营概览 + 财务管理通用（设计稿两张统计卡都有） */
body.view-dashboard:not(.theme-dark) .chead .tabs{margin-left:auto;display:flex;gap:2px;background:#F2F4F7;border-radius:999px;padding:3px}
body.view-dashboard:not(.theme-dark) .chead .ptab{font-size:12px;color:#98A0AE;padding:4px 13px;border-radius:999px;cursor:pointer;border:none !important;background:none !important;transition:.14s}
body.view-dashboard:not(.theme-dark) .chead .ptab:hover{color:#232D42}
body.view-dashboard:not(.theme-dark) .chead .ptab.active{background:#FFF !important;color:#232D42 !important;font-weight:600;box-shadow:0 1px 3px rgba(35,45,66,.12)}
/* 经营概览/财务管理卡头：设计稿只有 标题+页签 */
body.view-dashboard:not(.theme-dark) .chead-tabs .en,
body.view-dashboard:not(.theme-dark) .card:has(#money-grid) .chead .en,
body.view-dashboard:not(.theme-dark) .card:has(#money-grid) .chead .note{display:none !important}
/* 卡头小方块配色（设计稿 dot：蓝/金/绿/红/紫） */
body.view-dashboard:not(.theme-dark) .chead-tabs .bar{background:#3A5E9E;box-shadow:0 0 0 3px #EBF0F9}                       /* 经营概览 蓝 */
body.view-dashboard:not(.theme-dark) .card:has(.rows) .chead .bar{background:#4A8B63;box-shadow:0 0 0 3px #EBF3EE}            /* 本周节点 绿 */
body.view-dashboard:not(.theme-dark) #rail-leads-head .bar{background:#C0533D;box-shadow:0 0 0 3px #F9EEE9}                    /* 商机 红 */
body.view-dashboard:not(.theme-dark) #prod-head .bar{background:#3A5E9E;box-shadow:0 0 0 3px #EBF0F9}                          /* 项目产值 蓝 */
/* 项目产值卡头：设计稿只有标题+「全公司 · 本月」，藏掉英文与说明（卡头由产值模块异步重写，用样式归位） */
body.view-dashboard:not(.theme-dark) #prod-head .en,
body.view-dashboard:not(.theme-dark) #prod-head .note{display:none !important}
body.view-dashboard:not(.theme-dark) .card:has(.cmp) .chead .bar{background:#4A8B63;box-shadow:0 0 0 3px #EBF3EE}              /* 对比 绿 */
body.view-dashboard:not(.theme-dark) .card:has(.qe) .chead .bar{background:#7A5AA8;box-shadow:0 0 0 3px #F1EBF8}               /* 常用入口 紫 */
/* 商机卡头数量徽章、常用入口英文小字：设计稿没有，藏掉 */
body.view-dashboard:not(.theme-dark) #rail-leads-head .cnum{display:none !important}
body.view-dashboard:not(.theme-dark) .card:has(.qe) .chead .en{display:none !important}

/* 今日动态：人的动态与公告之间的分界线 */
.dy-sep{height:1px;background:#EEF1F5;margin:6px 16px}

/* ============ 第三批：金色 → 黛蓝（稳重清爽）整体换色（2026-10-19）============
   只换颜色，版式不动。主点缀 深青 #3A5E9E，文字用墨蓝不变。 */
/* 顶栏：暖金 → 冷白 + 一线青 */
body.view-dashboard:not(.theme-dark) .topbar, .topbar{background:linear-gradient(90deg,#FFFFFF,#F5F7FB) !important;border-bottom:1px solid #E3E9F2 !important}
.topbar::before{background:linear-gradient(90deg,#3A5E9E,#9FB8E0 50%,#3A5E9E) !important}
.topbar .brand-txt span{color:#98A0AE !important}
/* 导航胶囊 */
.topbar .navitem:hover{background:#EBF0F9 !important;color:#2C4A80 !important}
.topbar .navitem.active{background:#DFE7F5 !important;color:#2C4A80 !important;font-weight:700}
.topbar .navitem.active svg{color:#3A5E9E !important}
/* 搜索框 */
.topbar .search .sin{border-color:#C9D6EA !important;box-shadow:0 1px 4px rgba(46,139,139,.08) !important}
.topbar .search .sin:hover{border-color:#3A5E9E !important}
.topbar .search .sin:focus{border-color:#3A5E9E !important;box-shadow:0 0 0 3px #DAE3F3 !important}
.topbar .search .sin::placeholder{color:#93A7C7 !important}
.topbar .search .si{color:#3A5E9E !important}
/* 铃铛角标 */
#nb-dot{background:#3A5E9E !important}
/* 问候横幅 */
body.view-dashboard:not(.theme-dark) .hero{background:linear-gradient(105deg,#FFFFFF 0%,#F2F5FB 55%,#EBF0F7 100%);border:1px solid #E3E9F2 !important}
body.view-dashboard:not(.theme-dark) .kick b{color:#2C4A80 !important}
/* 卡头小方块：默认金 → 青（其余蓝/绿/红/紫不变） */
body.view-dashboard:not(.theme-dark) .chead .bar{background:#3A5E9E;box-shadow:0 0 0 3px #E4EAF6}
/* 统计格顶沿金点 → 青 */
body.view-dashboard:not(.theme-dark) .st::before,body.view-dashboard:not(.theme-dark) .mc::before{background:#3A5E9E}
body.view-dashboard:not(.theme-dark) .st:hover,body.view-dashboard:not(.theme-dark) .mc:hover{border-color:#A9BEE0}
/* 页签 hover */
body.view-dashboard:not(.theme-dark) .chead .ptab:hover{color:#2C4A80}
/* 金色日期胶囊 / 时间胶囊 / 公告badge → 青系 */
body.view-dashboard:not(.theme-dark) .srow .pill.gold{background:#E8EEF9;color:#2C4A80}
.dy .tm{color:#2C4A80;background:#EBF1FA}
.dy .ic.an{background:#E8EEF9;color:#2C4A80}
/* 「催一下」按钮 hover */
body.view-dashboard:not(.theme-dark) .srow .op:hover{border-color:#3A5E9E;color:#2C4A80;background:#EFF3FB}
/* 按钮 hover 描边 */
body.view-dashboard:not(.theme-dark) .btn:hover{border-color:#3A5E9E;color:#2C4A80}
/* 产值排名条渐变尾部金 → 青 */
body.view-dashboard:not(.theme-dark) .prod-row .bar i{background:linear-gradient(90deg,#3A4A6B,#3A5E9E)}
/* 展开条 hover */
body.view-dashboard:not(.theme-dark) .money-toggle:hover{color:#2C4A80 !important;border-color:#A9BEE0 !important}
/* 常用入口 hover 图标 */
body.view-dashboard:not(.theme-dark) .qe a:hover .qi{background:#3A5E9E}
/* 常用入口里的 SVG 图标（通知中心铃铛与顶栏同款）尺寸 */
body.view-dashboard:not(.theme-dark) .qe a .qi svg{width:18px;height:18px;display:block}
/* t4 第二张卡（今日待办）金 → 青（JS 内联色同步改，这里兜底） */
.t4:hover .t4-lb span{color:#3A5E9E}
/* pb 变量：金系 → 青系 */
body.view-dashboard:not(.theme-dark){--pb-line2:#C9D6EA;--pb-grad:linear-gradient(90deg,#3A5E9E,#2C4A80);--pb-cyan:#2C4A80;--pb-ind:#3A5E9E}

/* ============ 第四批：顶栏加高 + 生日提醒样式（2026-10-19）============ */
/* 顶栏 56 → 64px，更舒展 */
.topbar-in{height:64px !important}
/* 生日提醒：一条浅色细横幅，嵌在问候语下方，不抢戏 */
body.view-dashboard:not(.theme-dark) .bday{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 16px;border-radius:10px;background:#F4F7FD;border:1px solid #E3E9F5;box-shadow:none}
body.view-dashboard:not(.theme-dark) .bday .bd-cake{font-size:20px;line-height:1;background:none;border:none;box-shadow:none;padding:0}
body.view-dashboard:not(.theme-dark) .bday .bd-hi{font-size:14px;font-weight:700;color:#232D42}
body.view-dashboard:not(.theme-dark) .bday .bd-word{font-size:12px;color:#98A0AE;margin-top:2px}
body.view-dashboard:not(.theme-dark) .bday .bd-tag{margin-left:auto;font-size:11px;color:#2C4A80;background:#E8EEF9;padding:2px 10px;border-radius:999px;position:static;box-shadow:none;border:none}

body.view-dashboard:not(.theme-dark) .bday .bd-hi{color:#232D42 !important;font-size:14px !important}
body.view-dashboard:not(.theme-dark) .bday .bd-word{color:#98A0AE !important;font-size:12px !important}
body.view-dashboard:not(.theme-dark) .bday .bd-tag{color:#2C4A80 !important;background:#E8EEF9 !important}

body.view-dashboard:not(.theme-dark) .bday{position:static !important;width:auto;min-width:340px;align-self:flex-start}
body.view-dashboard:not(.theme-dark) .bday .bd-main{flex:1;min-width:0}

body.view-dashboard:not(.theme-dark) .bday{height:auto !important;overflow:visible !important}

body.view-dashboard:not(.theme-dark) .bday .bd-main{display:block !important;width:auto !important}
body.view-dashboard:not(.theme-dark) .bday .bd-word{display:block !important;width:auto !important;white-space:normal}

body.view-dashboard:not(.theme-dark) .bday .bd-word{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}

/* ============ 第五批：导航二级下拉 + 顶栏收紧 + AI 悬浮球让位（2026-10-19）============ */
/* 二级下拉菜单：挂在 立项管理/项目管理/行政管理/系统设置 下面 */
.topbar .navitem{position:relative}
.topbar .navitem .caret{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #98A0AE;margin-left:5px;vertical-align:middle;transition:transform .18s ease}
.topbar .navitem.has-sub:hover .caret,.topbar .navitem.has-sub.open .caret{transform:rotate(180deg);border-top-color:#3A5E9E}
.sub-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);background:#fff;border:1px solid #E3E9F2;border-radius:12px;box-shadow:0 10px 30px rgba(35,45,66,.12),0 2px 8px rgba(35,45,66,.05);padding:6px;min-width:150px;z-index:80;animation:subIn .15s ease}
.sub-menu::before{content:'';position:absolute;top:-8px;left:0;right:0;height:8px}
@keyframes subIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.topbar .navitem.has-sub:hover .sub-menu,.topbar .navitem.has-sub.open .sub-menu{display:block}
.sub-menu .sub-item{display:block;padding:9px 14px;border-radius:8px;font-size:13px;color:#232D42;white-space:nowrap;cursor:pointer;transition:background .12s}
.sub-menu .sub-item:hover{background:#EBF0F9;color:#2C4A80}
.sub-menu .sub-item.active{background:#DFE7F5;color:#2C4A80;font-weight:600}
/* 顶栏收紧：8 项 + 下拉在 1366 宽也能完整放下 */
.topbar .navitem{padding:6px 10px !important;gap:5px !important;font-size:13.5px}
@media (max-width:1500px){.topbar .search .sin{width:160px !important}}
@media (max-width:1250px){.topbar .search{display:none !important}}
/* AI 悬浮球：打开任何弹窗时自动隐藏，不再压按钮；弹窗关掉自动回来 */
body:has(.modal-mask) #ai-orb{display:none !important}

/* ============ 第六批：导航最终修正（2026-10-19）============ */
/* 1) 小三角只保留 CSS 画的那个，字藏掉（修双三角） */
.topbar .navitem .caret{font-size:0 !important;line-height:0 !important;display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #98A0AE;margin-left:5px;vertical-align:middle;transition:transform .18s ease}
/* 2) 下拉面板：抬高层级 + 往下让 6px，不再和导航条重叠；中间留隐形桥，鼠标滑下去不断开 */
.sub-menu{z-index:200 !important;top:calc(100% + 6px) !important}
.sub-menu::before{top:-6px !important;height:6px !important}
/* 3) 菜单项再收紧一点，8 项在普通笔记本屏也放得下 */
.topbar .navitem{padding:6px 6px !important;gap:4px !important;font-size:13px !important}
.topbar .navitem svg{width:15px !important;height:15px !important}
/* 4) 屏幕 ≤1500px 直接藏搜索框（比改窄更稳，给导航让位）；≤1300px 藏 logo 副标题 */
@media (max-width:1500px){.topbar .search{display:none !important}}
@media (max-width:1300px){.topbar .brand-txt span{display:none !important}}

/* ============ 第七批：经营概览/财务管理小卡去金线（2026-10-19）============ */
/* 小卡片顶部那条金色小短线删掉，回归纯净白卡 */
body.view-dashboard:not(.theme-dark) .st::before,
body.view-dashboard:not(.theme-dark) .mc::before{display:none !important}
/* 悬停边框由金色改为黛蓝浅边，保留轻微浮起 */
body.view-dashboard:not(.theme-dark) .st:hover,
body.view-dashboard:not(.theme-dark) .mc:hover{border-color:#B9C8E4 !important;box-shadow:0 4px 14px rgba(58,94,158,.10) !important}
/* 下拉面板贴回导航项、不留缝（之前留了 6px 缝，缝里透出导航条底边和页面背景的线，很难看） */
.sub-menu{top:100% !important}
.sub-menu::before{display:none !important}

/* ============ 第八批：下拉面板与顶栏解缝（2026-10-19）============ */
/* 面板下移到顶栏之外，和顶栏底边、胶囊底边都不接触 */
.sub-menu{top:calc(100% + 26px) !important;animation:none !important}
/* 隐形桥补满缝隙，鼠标滑下去不断 */
.sub-menu::before{display:block !important;content:'';top:-26px !important;height:26px !important}
/* 顶栏底部硬线删掉，换柔和投影，导航条和页面之间不再有任何线 */
.topbar{border-bottom:none !important;box-shadow:0 1px 8px rgba(35,45,66,.05) !important}

/* ===== 2026-10-19 fix38 系统设置·下拉选项：标签编辑器 + 双列网格 + 页签条换行 ===== */
.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
@media (max-width:1100px){.dd-grid{grid-template-columns:1fr}}
.dd-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 2px;min-height:38px}
.dd-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:4px 10px}
.dd-chip .dd-x{cursor:pointer;font-weight:700;opacity:.5;line-height:1;padding:0 2px}
.dd-chip .dd-x:hover{opacity:1;color:#c0392b}
.dd-add{display:flex;gap:8px;border-top:1px dashed #e5e7eb;padding-top:10px}
.dd-add input{flex:1;padding:7px 10px;border:1px solid #d8dce3;border-radius:8px;font-size:13px}
.pill-tabs{flex-wrap:wrap;row-gap:6px}

/* ================= 2026-10-19 fix43 行政管理页侧栏化 ================= */
.oa-layout{display:grid;grid-template-columns:232px 1fr;gap:20px;align-items:start;margin-top:6px}
.oa-side{position:sticky;top:70px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:6px;overflow-y:auto;max-height:calc(100vh - 96px);scrollbar-width:thin}
.oa-sg{padding:4px 4px 2px}
.oa-sg + .oa-sg{border-top:1px solid var(--line,#eef1f6);margin-top:4px;padding-top:8px}
.oa-sg-label{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13.5px;font-weight:700;letter-spacing:.04em;color:var(--text-2);cursor:pointer;border-radius:8px;user-select:none;transition:background .15s}
.oa-sg-label:hover{background:#f5f7fb}
.oa-sg-label::before{content:'';width:7px;height:7px;border-radius:2px;background:var(--gc)}
.oa-sg-label .n{font-weight:500;letter-spacing:0;color:#b6bdc9;font-size:12px}
.oa-sg-label .arr{margin-left:auto;color:#b6bdc9;font-size:11px;transition:transform .2s var(--ease)}
.oa-sg.off .oa-sg-label .arr{transform:rotate(-90deg)}
.oa-sg-items{display:grid;grid-template-rows:1fr;transition:grid-template-rows .38s cubic-bezier(.25,.8,.3,1);position:relative;margin:2px 0 4px 15px}
.oa-sg-inner{overflow:hidden;min-height:0}
.oa-sg-items .oa-nav-item{margin:2px 2px 2px 14px}
.oa-sg-items .oa-nav-item:first-child{margin-top:6px}
.oa-sg-items::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1px;background:color-mix(in srgb, var(--gc) 22%, #e6eaf2)}
.oa-sg.off .oa-sg-items{grid-template-rows:0fr}
.oa-nav-item{position:relative;display:flex;align-items:center;padding:9px 12px 9px 16px;margin:2px 0;border-radius:9px;font-size:14px;color:var(--text-2);cursor:pointer;transition:background .15s,color .15s,opacity .22s var(--ease),transform .22s var(--ease)}
.oa-sg.off .oa-nav-item{opacity:0;transform:translateX(-8px)}
/* 2026-10-20 fix56：展开时子项依次错开淡入（每组最多 11 项，写到 12 兜底） */
.oa-sg:not(.off) .oa-nav-item:nth-child(1){transition-delay:0s,0s,30ms,30ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(2){transition-delay:0s,0s,60ms,60ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(3){transition-delay:0s,0s,90ms,90ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(4){transition-delay:0s,0s,120ms,120ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(5){transition-delay:0s,0s,150ms,150ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(6){transition-delay:0s,0s,180ms,180ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(7){transition-delay:0s,0s,210ms,210ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(8){transition-delay:0s,0s,240ms,240ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(9){transition-delay:0s,0s,270ms,270ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(10){transition-delay:0s,0s,300ms,300ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(11){transition-delay:0s,0s,330ms,330ms}
.oa-sg:not(.off) .oa-nav-item:nth-child(12){transition-delay:0s,0s,360ms,360ms}
.oa-nav-item:hover{background:color-mix(in srgb, var(--gc) 10%, #fff);color:var(--text-1,#0f172a)}
.oa-nav-item.active{background:color-mix(in srgb, var(--gc) 9%, #fff);color:var(--gc);font-weight:700}
.oa-nav-item.active::before{content:'';position:absolute;left:4px;top:20%;bottom:20%;width:3px;border-radius:3px;background:var(--gc)}
.oa-main-head{display:flex;align-items:baseline;gap:10px;margin:2px 0 12px}
.oa-main-head .t{font-size:16px;font-weight:800}
.oa-main-head .g{font-size:12px;color:var(--text-3,#98a2b3)}
.oa-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.oa-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line,#eef1f6)}
.oa-card-head .n{font-size:12.5px;color:var(--text-2)}
.oa-card table{margin:0}
.oa-empty{padding:52px 20px;text-align:center}
.oa-empty .ic{width:46px;height:46px;margin:0 auto 12px;border-radius:14px;background:color-mix(in srgb, var(--gc) 10%, #fff);color:var(--gc);display:flex;align-items:center;justify-content:center;font-size:20px}
.oa-empty .tt{font-size:14px;font-weight:600;margin-bottom:4px}
.oa-empty .ss{font-size:12.5px;color:var(--text-2);margin-bottom:14px}
@media (max-width:760px){.oa-layout{grid-template-columns:1fr}.oa-side{position:static}}
/* ================= fix43 结束 ================= */
/* ================= 2026-10-19 fix46 周月报周期筛选框宽度收敛 ================= */
.rp-section-title .psel{width:auto;min-width:200px;max-width:300px;flex:none}
/* ================= fix46 结束 ================= */
.oa-main{animation:oaMainIn .25s cubic-bezier(.25,.8,.3,1)}
@keyframes oaMainIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ================= 2026-10-20 fix66 AI 知识库输入体验优化 ================= */
.ai-kb-box{border:1px solid #e5e7eb;border-radius:12px;background:#fafbfc;padding:14px 16px}
.ai-kb-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ai-kb-head label{font-weight:600;color:#1f2937;font-size:14px}
.ai-kb-count{font-size:12px;color:#9ca3af;font-variant-numeric:tabular-nums}
.ai-kb-count.over{color:#dc2626;font-weight:600}
#ai-kb.ai-kb-ta{width:100%;min-height:360px;font-size:14px;line-height:1.9;padding:12px 14px;border-radius:8px;background:#fff;box-sizing:border-box;resize:vertical}
#ai-kb.ai-kb-ta:focus{min-height:440px}
/* ================= fix66 结束 ================= */

/* ================= 2026-10-20 fix72 档案中心排版重做 ================= */
/* 合同档案表：固定布局、列宽分明、行高收敛 */
.arch-tbl{table-layout:fixed;width:100%}
.arch-tbl th{padding:10px 12px;white-space:nowrap}
.arch-tbl td{padding:10px 12px;vertical-align:middle;line-height:1.5}
/* 长文本列：最多两行，超出省略号，不再逐字竖排 */
.arch-tbl .clip2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}
.arch-tbl .clip2 .muted.small{margin-top:2px}
.arch-tbl .nowrap{white-space:nowrap}
/* 文件列：单行横排不换行，chip 超长省略，多的由 +N 兜住 */
.arch-tbl .cell-files{white-space:nowrap;overflow:hidden}
.cell-files .att-chip{white-space:nowrap;max-width:165px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;padding:4px 8px;font-size:11.5px;border-radius:8px}
/* AI 对比列：状态标签 + 对比按钮，一行放下 */
.arch-tbl .cell-ai{white-space:nowrap}
.cell-ai .btn-sm{padding:3px 8px;font-size:11.5px;border-radius:7px;white-space:nowrap}
.cell-ai .tag{white-space:nowrap}
/* 操作列：紧凑小按钮组 */
.arch-tbl .cell-ops .ops-wrap{display:flex;flex-wrap:wrap;gap:4px}
.cell-ops .btn-sm{padding:3px 8px;font-size:11.5px;border-radius:7px;white-space:nowrap}
/* 补充协议子行：淡底 */
.arch-tbl .arch-subrow td{background:#fafbfc}
/* 全局：附件 chip 一律单行省略（项目归档 / 成果档案 tab 同样受益） */
.att-chip{white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
/* ================= fix72 结束 ================= */

/* ================= 2026-10-20 fix80 档案中心交互补强 ================= */
/* AI 对比列 / 操作列 加左分隔线，列与列一眼分清 */
.arch-tbl td.cell-ai{border-left:1px solid #eef0f4}
.arch-tbl td.cell-ops{border-left:1px solid #eef0f4}
.arch-tbl th:nth-last-child(2),.arch-tbl th:last-child{border-left:1px solid #eef0f4}
/* 可点击的项目名 */
.linklike{color:var(--blue,#4f46e5);cursor:pointer}
.linklike:hover{text-decoration:underline}
/* +N 可点标签 hover 提示 */
.cell-files .tag-gray[cursor],.tag-gray[onclick]{transition:background .15s}
.tag-gray[onclick]:hover{background:#e5e7eb}
/* ================= fix80 结束 ================= */

/* 2026-10-20 fix99：行政管理二级菜单标签一律一行，不换行 */
.oa-nav-item{white-space:nowrap}

/* ============================================================
   2026-10-20 fix103：AI 助手新视觉——清爽气泡版
   电光蓝 #1570EF + 清水青 #3DBCB6/#5ED9D4，珊瑚橙 #FF8C42 点睛
   ============================================================ */
@keyframes aiOrbBreath {
  0%,100% { box-shadow: inset 0 -5px 9px rgba(21,60,120,.22), inset 0 3px 6px rgba(255,255,255,.6), 0 4px 12px rgba(21,112,239,.30); }
  50%     { box-shadow: inset 0 -5px 9px rgba(21,60,120,.22), inset 0 3px 6px rgba(255,255,255,.6), 0 4px 20px rgba(61,188,182,.55); }
}
@keyframes aiBubbleUp {
  0%   { transform: translate(0, 0); opacity: 0; }
  15%  { opacity: .95; }
  70%  { opacity: .6; }
  100% { transform: translate(3px, -24px); opacity: 0; }
}
/* —— 悬浮球：平时收成一颗清水玻璃珠，球内气泡缓缓上浮 —— */
#ai-orb { background: transparent !important; box-shadow: none !important; padding: 3px !important; gap: 0 !important; }
#ai-orb .ball { position: relative; overflow: hidden; width: 38px !important; height: 38px !important;
  background: radial-gradient(circle at 32% 26%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.3) 24%, rgba(255,255,255,0) 42%),
    conic-gradient(from 210deg, #1570EF, #5ED9D4, #3DBCB6, #1570EF) !important;
  animation: aiOrbBreath 3.6s ease-in-out infinite; }
#ai-orb .ball::before, #ai-orb .ball::after { content: ''; position: absolute; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,255,255,.1) 65%); }
#ai-orb .ball::before { width: 7px; height: 7px; left: 9px; bottom: 5px; animation: aiBubbleUp 3.2s ease-in infinite; }
#ai-orb .ball::after  { width: 4px; height: 4px; left: 22px; bottom: 4px; animation: aiBubbleUp 3.2s ease-in 1.4s infinite; }
#ai-orb .txt { max-width: 0; opacity: 0; overflow: hidden; white-space: nowrap; color: #1570EF !important;
  transition: max-width .25s ease, opacity .2s ease; }
#ai-orb:hover { background: rgba(255,255,255,.94) !important; backdrop-filter: blur(8px);
  box-shadow: 0 8px 22px rgba(21,112,239,.20) !important; padding: 4px 16px 4px 4px !important; gap: 8px !important; }
#ai-orb:hover .txt { max-width: 90px; opacity: 1; }
/* —— 聊天面板：蓝白磨砂玻璃 —— */
#ai-panel { background: rgba(245,250,255,.82) !important; backdrop-filter: blur(18px) saturate(1.35);
  -webkit-backdrop-filter: blur(18px) saturate(1.35);
  border: 1px solid rgba(21,112,239,.14); box-shadow: 0 12px 48px rgba(21,60,120,.16) !important; }
#ai-panel .hd { border-bottom: 1px solid rgba(21,112,239,.10) !important; }
#ai-panel .hd .dot { background: conic-gradient(from 210deg, #1570EF, #5ED9D4, #3DBCB6, #1570EF) !important; }
#ai-panel .hd .t1 { color: #26272E !important; }
/* —— AI 消息：白卡 + 左侧 2px 清水青细边 —— */
#ai-chat .ai-t { background: #fff; border-left: 2px solid #3DBCB6; border-radius: 4px 12px 12px 12px;
  padding: 10px 14px; box-shadow: 0 2px 8px rgba(21,60,120,.05); }
/* —— 我的消息：电光蓝浅底 —— */
#ai-chat .me-t { background: rgba(21,112,239,.08) !important; color: #1D3A6B !important; }
/* —— 建议问题小胶囊 —— */
#ai-chips .chip { background: #fff !important; border: 1px solid rgba(61,188,182,.45) !important; color: #1570EF !important; }
#ai-chips .chip:hover { background: rgba(61,188,182,.10) !important; }
/* —— 输入条 + 实心电光蓝发送键（悬停珊瑚橙点睛） —— */
#ai-inp { background: rgba(255,255,255,.88) !important; border: 1px solid rgba(21,112,239,.14); }
#ai-inp .send { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important; transition: filter .2s ease, transform .2s ease; }
#ai-inp .send:hover { filter: hue-rotate(-28deg) saturate(1.3); transform: scale(1.06); }
/* —— 手机：面板近全屏；弹窗打开时小球让位 —— */
@media (max-width: 768px) {
  #ai-panel { right: 8px !important; left: 8px; top: 8px; bottom: 8px !important;
    width: auto !important; height: auto !important; max-height: none !important; }
  body:has(#modal-root .modal-mask) #ai-orb { display: none !important; }
}

/* ============================================================
   2026-10-20 fix104：AI 助手常驻展开胶囊（在 fix103 基础上，
   不用悬停就一直显示「AI 助手」字样 + 光晕；手机端抬高避底栏）
   ============================================================ */
#ai-orb { background: rgba(255,255,255,.94) !important;
  backdrop-filter: blur(8px);
  padding: 5px 18px 5px 5px !important; gap: 8px !important;
  box-shadow: 0 8px 24px rgba(21,112,239,.26), 0 0 0 5px rgba(61,188,182,.10) !important; }
#ai-orb .ball { width: 40px !important; height: 40px !important; }
#ai-orb .txt { max-width: 90px !important; opacity: 1 !important; }
#ai-orb:hover { box-shadow: 0 10px 28px rgba(21,112,239,.34), 0 0 0 6px rgba(61,188,182,.16) !important; }
@media (max-width: 768px) {
  #ai-orb { bottom: 78px !important; right: 14px !important; }
}

/* ============================================================
   2026-10-20 fix105：顶栏通栏下拉面板 + 蓝色顶栏（定稿版）
   深色模式不动，只覆盖浅色（默认）主题
   ============================================================ */
/* —— 通栏面板 —— */
.mega{position:fixed;left:0;right:0;top:65px;z-index:190;background:#fff;
  border-bottom:1px solid #e7e8f4;box-shadow:0 14px 40px rgba(30,27,75,.12);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
.mega.open{opacity:1;visibility:visible;transform:translateY(0)}
.mega-in{max-width:1180px;margin:0 auto;padding:22px 28px 26px}
.mega-pane{display:none}
.mega-pane.show{display:block;animation:paneIn .16s ease}
@keyframes paneIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.mega-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.mega-head .t{font-size:15px;font-weight:700;color:#191a2e}
.mega-head .s{font-size:12px;color:#9398b8}
.mega-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mcard{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid #eaebf5;border-radius:12px;
  cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;background:#fff}
.mcard:hover{border-color:var(--g-bid);box-shadow:0 6px 18px rgba(91,91,214,.14);background:#fbfbff}
.mcard .ic{flex:none;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--g-bid) 10%,#fff);color:var(--g-bid)}
.mcard .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mcard .lb{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;color:#191a2e}
.mcard .lb .arr{color:#9398b8;font-weight:400;transition:transform .15s,color .15s}
.mcard:hover .lb .arr{transform:translateX(3px);color:var(--g-bid)}
.mcard .ds{font-size:12px;color:#6b7099;margin-top:4px;line-height:1.5}
.mega-cols{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:8px}
.mega-pane[data-pane="settings"] .mega-cols{grid-template-columns:1fr 1fr 1fr}
#mega .mcol{padding:6px 14px 10px;border-radius:12px}
#mega .mcol + .mcol{border-left:1px solid #eaebf5;border-radius:0}
#mega .mcol-h{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;font-weight:700;font-size:13.5px;color:#191a2e}
#mega .mcol-h .dot{width:8px;height:8px;border-radius:3px}
#mega .mcol-h .cnt{font-size:11px;color:#9398b8;font-weight:400;margin-left:auto}
#mega .mi{display:flex;gap:10px;align-items:center;padding:7px 8px;border-radius:9px;cursor:pointer;transition:background .12s}
#mega .mi:hover{background:color-mix(in srgb,var(--gc) 7%,#fff)}
#mega .mi .ic{flex:none;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}
#mega .mi .ic svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#mega .mi .tx{min-width:0}
#mega .mi .lb{font-size:13px;font-weight:550;color:#191a2e;display:flex;align-items:center;gap:5px}
#mega .mi .lb .arr{opacity:0;color:var(--gc);font-size:11px;transition:opacity .12s,transform .12s;transform:translateX(-2px)}
#mega .mi:hover .lb .arr{opacity:1;transform:none}
#mega .mi .ds{font-size:11px;color:#9398b8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1000px){.mega{display:none !important}}

/* —— 蓝色顶栏（深色模式不动） —— */
body:not(.theme-dark) .topbar{background:linear-gradient(135deg,#4f46e5 0%,#0e7490 100%) !important;border-bottom-color:transparent !important;color:#fff;box-shadow:0 2px 14px rgba(35,45,66,.18) !important}
body:not(.theme-dark) .topbar::before{background:linear-gradient(90deg,rgba(255,255,255,.5),rgba(255,255,255,0) 70%) !important}
body:not(.theme-dark) .topbar::after{background:none !important}
body:not(.theme-dark) .topbar .brand-txt b{color:#fff !important}
body:not(.theme-dark) .topbar .brand-txt span{color:rgba(255,255,255,.72) !important}
body:not(.theme-dark) .topbar .nav{background:transparent !important;border:none !important}
body:not(.theme-dark) .topbar .navitem{color:rgba(255,255,255,.85) !important;opacity:1 !important}
body:not(.theme-dark) .topbar .navitem svg{color:rgba(255,255,255,.85) !important;opacity:1}
body:not(.theme-dark) .topbar .navitem:hover{color:#fff !important;background:rgba(255,255,255,.14) !important}
body:not(.theme-dark) .topbar .navitem:hover svg{color:#fff !important}
body:not(.theme-dark) .topbar .navitem.active,
body:not(.theme-dark) .topbar .navitem.panel-open{color:#fff !important;background:rgba(255,255,255,.22) !important;font-weight:700;box-shadow:none !important}
body:not(.theme-dark) .topbar .navitem.active svg,
body:not(.theme-dark) .topbar .navitem.panel-open svg{color:#fff !important}
body:not(.theme-dark) .topbar .navitem.active::after{display:none !important}
body:not(.theme-dark) .topbar .navitem .caret{border-top-color:rgba(255,255,255,.7) !important}
body:not(.theme-dark) .topbar .navitem:hover .caret{border-top-color:#fff !important}
body:not(.theme-dark) .topbar .search{background:rgba(255,255,255,.16) !important;border-color:rgba(255,255,255,.25) !important;color:rgba(255,255,255,.85)}
body:not(.theme-dark) .topbar .search:focus-within{background:rgba(255,255,255,.22) !important;border-color:rgba(255,255,255,.5) !important;box-shadow:0 0 0 4px rgba(255,255,255,.12) !important}
body:not(.theme-dark) .topbar .search .sin{background:transparent !important;border:none !important;box-shadow:none !important;color:#fff !important}
body:not(.theme-dark) .topbar .search .sin::placeholder{color:rgba(255,255,255,.65) !important}
body:not(.theme-dark) .topbar .search .si{color:rgba(255,255,255,.85) !important}
body:not(.theme-dark) .topbar .iconbtn{background:rgba(255,255,255,.12) !important;border:1px solid rgba(255,255,255,.25) !important;color:#fff !important}
body:not(.theme-dark) .topbar .iconbtn:hover{background:rgba(255,255,255,.22) !important;border-color:rgba(255,255,255,.4) !important;color:#fff !important}
body:not(.theme-dark) .topbar .avatar{background:rgba(255,255,255,.92) !important;border-color:transparent !important}
body:not(.theme-dark) .topbar .avatar:hover{background:#fff !important}

/* 2026-10-20 fix105b：压住第 207 行首页专用白底规则（它带 .view-dashboard 权重更高），否则首页顶栏白底白字 */
body.view-dashboard:not(.theme-dark) .topbar, body:not(.theme-dark) .topbar{background:linear-gradient(135deg,#4f46e5 0%,#0e7490 100%) !important;border-bottom-color:transparent !important;color:#fff;box-shadow:0 2px 14px rgba(35,45,66,.18) !important}

/* ===== 方案⑨ 轻盈商务 · 手机版（完整版） ===== */
@media (max-width: 768px) {
  /* 顶栏：品牌蓝→青渐变（特异性对齐 fix105 蓝顶栏规则） */
  body:not(.theme-dark) .topbar,
  body.view-dashboard:not(.theme-dark) .topbar { background: linear-gradient(120deg, #1570EF 0%, #3DBCB6 100%) !important; }
  /* 内容底部留白：不被底栏和AI球盖 */
  main.content { padding-bottom: 118px !important; }
  .m-home { padding-bottom: 12px !important; }

  /* 问候卡：冰蓝浅色大卡 */
  .m-head { background: linear-gradient(155deg, #E3EFFF 0%, #F0F7FF 55%, #FFFFFF 100%) !important;
    border-radius: 18px !important; box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-head .m-head-g { color: #16406b !important; }
  .m-head .m-head-s { color: #5b87b8 !important; }

  /* 打卡卡 */
  .m-clock { background: #fff !important; border-radius: 16px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-clock .m-clock-t { color: #16406b !important; }
  .m-clock .m-clock-s { color: #64748b !important; }
  .m-clock .m-clock-btn { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important;
    border: none !important; color: #fff !important; box-shadow: 0 6px 14px rgba(21,112,239,.25) !important; }

  /* 待办三卡 */
  .m-todo-i { background: #fff !important; border-radius: 14px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-todo-i.hot { background: #F0F7FF !important; }
  .m-todo-i .m-todo-n { color: #1570EF !important; }
  .m-todo-i .m-todo-l { color: #64748b !important; }

  /* 小节标题 */
  .m-sec .m-sec-t { color: #16406b !important; font-weight: 700 !important; }
  .m-sec .m-sec-m { color: #1570EF !important; }

  /* KPI 卡：白卡 + 品牌蓝数字 */
  .m-kpi-i { background: #fff !important; border-radius: 14px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-kpi-i .m-kpi-v { color: #1570EF !important; }
  .m-kpi-i .m-kpi-l { color: #64748b !important; }

  /* 快捷入口 */
  .m-quick-i { background: #fff !important; border-radius: 14px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-quick-i svg { color: #1570EF !important; }
  .m-quick-i span { color: #16406b !important; }

  /* 项目卡（首页） */
  .m-proj { background: #fff !important; border-radius: 14px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
  .m-proj .m-proj-n { color: #16406b !important; }
  .m-proj .m-proj-c, .m-proj .m-proj-f { color: #64748b !important; }
  .m-proj .m-bar i { background: linear-gradient(90deg, #1570EF, #3DBCB6) !important; }

  /* 底部标签栏 */
  .mobile-nav { background: rgba(255,255,255,.96) !important; backdrop-filter: blur(10px);
    box-shadow: 0 -4px 18px rgba(21,112,239,.08) !important; border-top: none !important; }
  .mobile-nav .mn-item { color: #94a3b8 !important; }
  .mobile-nav .mn-item.active { color: #1570EF !important; }

  /* 子页大标题 */
  .view-head .vh-title { color: #16406b !important; }
  .view-head .vh-sub { color: #64748b !important; }

  /* 筛选维度徽章（项目类型/数据范围）：浅蓝/浅青淡徽章 */
  .ptb-label { background: rgba(21,112,239,.10) !important; color: #1570EF !important;
    box-shadow: none !important; }
  .ptb-label.lb-rel { background: rgba(61,188,182,.14) !important; color: #0B8A7E !important; }

  /* 胶囊选中态：蓝青渐变 */
  .pill-tab.active, .chip.active { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important;
    border-color: transparent !important; color: #fff !important; }
  .pill-tab.active .ptb-n { color: #fff !important; background: rgba(255,255,255,.22) !important; }

  /* 招标筛选胶囊选中态 */
  .td-chip.on { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important;
    border-color: transparent !important; color: #fff !important; }
  .td-chip.on .td-chip-n { color: #fff !important; background: rgba(255,255,255,.22) !important; }

  /* 行政管理侧栏：选中项统一品牌蓝 */
  .oa-nav-item.active { --gc: #1570EF !important; }
  .oa-group.active { --gc: #1570EF !important; }

  /* 通用卡片与主按钮 */
  .card { border-radius: 16px !important; box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; }
  .btn-primary { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important; border: none !important; }

  /* ========== 子页面移动专版 ========== */
  .page-head { padding: 10px 0 2px !important; }
  .topbar-title { display: none !important; }
  .topbar-back { border-radius: 999px !important; padding: 6px 14px !important; font-size: 13px !important;
    background: #fff !important; box-shadow: 0 2px 8px rgba(21,112,239,.08) !important; border: none !important; }

  .view-head { margin: 4px 0 12px !important; flex-direction: column !important; align-items: stretch !important;
    padding-left: 0 !important; }
  .view-head::before { display: none !important; }
  .view-head .vh-left { min-width: 0 !important; }
  .view-head .vh-title { font-size: 20px !important; padding-left: 0 !important; }
  .view-head .vh-title::before { display: none !important; }
  .view-head .vh-sub { font-size: 12px !important; color: #64748b !important; line-height: 1.55 !important;
    display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden !important; }

  .vh-actions { width: 100% !important; }
  .vh-actions .search-box { flex: 1 1 100% !important; width: 100% !important; }
  .vh-actions .search-box input { width: 100% !important; border-radius: 12px !important;
    background: #fff !important; box-shadow: 0 2px 8px rgba(21,112,239,.06) !important; border: none !important; }
  .vh-actions .btn { padding: 8px 13px !important; font-size: 13px !important; border-radius: 11px !important; }

  .pill-tabs { flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important; padding-bottom: 4px !important; }
  .pill-tabs::-webkit-scrollbar { display: none !important; }
  .pill-tab { flex: 0 0 auto !important; }
  .sort-bar { flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important; border-radius: 12px !important; }
  .sort-bar::-webkit-scrollbar { display: none !important; }
  .sort-bar .sort-btn { flex: 0 0 auto !important; }
  .sort-bar .sort-btn.active { background: linear-gradient(135deg,#1570EF,#3DBCB6) !important;
    color: #fff !important; border-color: transparent !important; }
  .sort-bar .sort-bar-lbl { flex: 0 0 auto !important; white-space: nowrap !important; }

  #content .grid.grid-3, #content .grid.grid-2 { grid-template-columns: 1fr !important; }
  .cust-card, .project-card, .op3-card { border-radius: 16px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }

  #bid-body > .flex.between { flex-direction: column !important; align-items: stretch !important; }
  #bid-body .search-box { width: 100% !important; }
  #bid-body .search-box input { width: 100% !important; border-radius: 12px !important;
    background: #fff !important; box-shadow: 0 2px 8px rgba(21,112,239,.06) !important; border: none !important; }

  .proj-tabs { border-radius: 16px !important; box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; }
  .proj-tabs .pill-tabs { flex-wrap: wrap !important; overflow-x: visible !important; }

  .oa-sg { background: #fff !important; border-radius: 16px !important;
    box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; margin-bottom: 12px !important; padding: 6px 8px !important; }
  .oa-sg-label { color: #16406b !important; font-weight: 700 !important; padding: 10px 10px !important; }
  .oa-nav-item { padding: 12px 14px !important; border-radius: 11px !important; font-size: 14px !important; }

  /* 立项卡：标题独占一行 */
  .op3-card .op3-r1 { flex-wrap: wrap !important; }
  .op3-card .o-title { flex: 1 1 100% !important; order: 3 !important; white-space: normal !important;
    font-size: 15px !important; margin-top: 6px !important; }
  .op3-card .op3-right { order: 2 !important; margin-left: auto !important; }

  .table-card, .list-card { border-radius: 16px !important; }

  /* ========== 项目卡 / 立项卡：首页同款手机卡 ========== */
  .project-card { padding: 16px !important; display: flex !important; flex-direction: column !important; }
  .project-card .pc-sbar { position: static !important; order: 4 !important; height: 6px !important;
    border-radius: 6px !important; background: #eef2f9 !important; margin: 10px 0 4px !important; overflow: hidden !important; }
  .project-card .pc-sbar i { background: linear-gradient(90deg, #1570EF, #3DBCB6) !important;
    border-radius: 6px !important; display: block !important; height: 100% !important; }
  .project-card .pc-top { order: 1 !important; }
  .project-card .pc-name { font-size: 15.5px !important; font-weight: 700 !important; color: #16406b !important;
    line-height: 1.45 !important; }
  .project-card .pc-parent { font-size: 11px !important; color: #94a3b8 !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; margin-top: 3px !important; }
  .project-card .pc-customer { font-size: 12.5px !important; color: #64748b !important; margin-top: 4px !important; }
  .project-card .pc-owner { font-size: 11.5px !important; color: #94a3b8 !important; }
  .project-card .pc-ttag { font-size: 10.5px !important; padding: 2px 8px !important; border-radius: 8px !important;
    background: rgba(21,112,239,.08) !important; color: #1570EF !important; border: none !important; }
  .project-card .mt12.flex.between { order: 3 !important; margin-top: 10px !important; }
  .project-card .pc-pct { color: #1570EF !important; font-weight: 800 !important; font-size: 15px !important; }
  .project-card .pc-stage-run, .project-card .pc-stage-run i { color: #1570EF !important; }
  .project-card .pc-stage i { background: currentColor !important; }
  .project-card .stage-chip.chip-active { display: none !important; }
  .project-card .stage-chip { order: 3 !important; font-size: 11.5px !important; border-radius: 8px !important; }
  .project-card .pc-ci { order: 5 !important; font-size: 11.5px !important; }
  .project-card .pc-fin { order: 6 !important; display: flex !important; border-top: 1px solid #f1f5fb !important;
    margin-top: 10px !important; padding-top: 10px !important; }
  .project-card .pc-fin-item { flex: 1 !important; }
  .project-card .pc-fin-item .k { font-size: 10.5px !important; color: #94a3b8 !important; }
  .project-card .pc-fin-item .v { font-size: 14.5px !important; color: #1570EF !important; font-weight: 750 !important; }

  .op3-card { padding: 14px 16px !important; border-radius: 16px !important; }
  .op3-card .op3-r2 { font-size: 12.5px !important; color: #64748b !important; }
  .op3-card .op3-nums { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px 12px !important; }
  .op3-card .op3-num { background: #f8fbff !important; border-radius: 10px !important; padding: 8px 10px !important; }
  .op3-card .op3-num-k { font-size: 10.5px !important; color: #94a3b8 !important; }
  .op3-card .op3-num-v { font-size: 14px !important; color: #16406b !important; font-weight: 700 !important; }
  .op3-card .op3-num-v.gold { color: #1570EF !important; }
}


/* ===== 2026-10-23 项目/立项 行式列表（老板定：手机端一行一条，方便扫） ===== */
@media (max-width: 768px) {
  /* —— 项目卡 → 列表行 —— */
  .project-card { padding: 10px 13px !important; border-radius: 14px !important; margin-bottom: 8px !important; }
  .project-card .pc-top { display: flex !important; align-items: center; gap: 8px; }
  .project-card .pc-top > div:first-child { flex: 1 1 auto; min-width: 0; }
  .project-card .pc-name { font-size: 14px !important; line-height: 1.35 !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; display: block !important; -webkit-line-clamp: unset !important; }
  .project-card .pc-parent { display: none !important; }
  .project-card .pc-customer { font-size: 11.5px !important; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .project-card .pc-owner { display: none !important; }
  .project-card .pc-ttag { font-size: 9.5px !important; padding: 1px 6px !important; }
  .project-card .mt12.flex.between { margin-top: 5px !important; align-items: center; }
  .project-card .pc-stage { font-size: 11px !important; }
  .project-card .pc-pct { font-size: 14px !important; }
  .project-card .pc-sbar { order: 4; height: 4px !important; margin: 5px 0 0 !important; border-radius: 99px; }
  .project-card .pc-fin { display: flex !important; margin-top: 5px !important; padding-top: 5px !important; gap: 14px; }
  .project-card .pc-fin-item { display: flex !important; flex-direction: row !important; align-items: baseline; gap: 4px; }
  .project-card .pc-fin-item .k { font-size: 10px !important; }
  .project-card .pc-fin-item .v { font-size: 11.5px !important; }
  .project-card .pc-ci { display: none !important; }
  .project-card .stage-chip.chip-active { display: none !important; }

  /* —— 立项卡 → 列表行 —— */
  .op3-card { padding: 10px 13px !important; border-radius: 14px !important; margin-bottom: 8px !important; }
  .op3-card .op3-r1 { flex-wrap: wrap; gap: 4px 6px; align-items: center; }
  .op3-card .o-title { order: 3; flex: 1 1 100%; font-size: 14px !important; line-height: 1.35 !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; }
  .op3-card .op3-r2 { font-size: 11.5px !important; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .op3-card .op3-res { font-size: 11.5px !important; padding: 4px 9px !important; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .op3-card .op3-r3 { margin-top: 4px; }
  .op3-card .op3-nums { display: flex !important; flex-wrap: nowrap; gap: 12px !important; }
  .op3-card .op3-num { padding: 0 !important; background: none !important; display: flex; flex-direction: row; align-items: baseline; gap: 3px; min-width: 0; }
  .op3-card .op3-num-k { font-size: 10px !important; white-space: nowrap; }
  .op3-card .op3-num-v { font-size: 11.5px !important; white-space: nowrap; }
  .op3-card .op3-num:nth-child(2), .op3-card .op3-num:nth-child(3) { display: none !important; }
  .op3-card .op3-acts { display: none !important; }

  /* —— 审批中心手机微调 —— */
  .ap3-card { padding: 11px 13px !important; border-radius: 14px !important; }
  .ap3-r1 { flex-wrap: wrap; gap: 4px 6px; }
  .ap3-title { flex: 1 1 100%; order: 3; font-size: 14px !important; }
  .ap3-flow { overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ap3-flow::-webkit-scrollbar { display: none; }
  .ap2-urged { font-size: 10.5px !important; }
}

/* ===== 2026-10-23 fix123：项目页筛选区手机端默认收起 ===== */
.ptb-toggle { display: none; }
@media (max-width: 768px) {
  .ptb-toggle { display: flex !important; align-items: center; justify-content: space-between;
    background: #fff; border-radius: 12px; padding: 11px 14px; font-size: 13px; font-weight: 700;
    color: #1570EF; box-shadow: 0 2px 8px rgba(21,112,239,.06); margin-bottom: 8px; cursor: pointer; }
  .ptb-toggle .ptb-arrow { transition: transform .2s; font-size: 12px; color: #94a3b8; }
  .ptb-collapse.open .ptb-toggle .ptb-arrow { transform: rotate(180deg); }
  .ptb-collapse:not(.open) .proj-tabs { display: none !important; }
  .ptb-collapse .proj-tabs { margin-bottom: 8px; }
}

/* ===== 方案⑨ 轻盈商务 · 电脑端首页（fix125，2026-10-23 老板定稿） ===== */
body:not(.theme-dark) .topbar,
body.view-dashboard:not(.theme-dark) .topbar { background: linear-gradient(120deg, #1570EF 0%, #3DBCB6 100%) !important; }

/* Hero 问候区：冰蓝渐变 */
body.view-dashboard:not(.theme-dark) .hero { background: linear-gradient(155deg, #E3EFFF 0%, #F0F7FF 55%, #FFFFFF 100%) !important;
  border: none !important; box-shadow: 0 6px 18px rgba(21,112,239,.07) !important; }
body.view-dashboard:not(.theme-dark) .hi { background: none !important; -webkit-text-fill-color: currentColor !important;
  color: #16406b !important; }
body.view-dashboard:not(.theme-dark) .hero-sub { color: #5b87b8 !important; }
body.view-dashboard .btn.primary.btn-hero { background: linear-gradient(135deg, #1570EF, #3DBCB6) !important;
  border: none !important; color: #fff !important; box-shadow: 0 6px 16px rgba(21,112,239,.28) !important; }

/* 速览片（hero 右侧小格）：白透 + 蓝数字 */
body.view-dashboard:not(.theme-dark) .glance .gc { background: rgba(255,255,255,.72) !important;
  border-color: rgba(21,112,239,.14) !important; }
body.view-dashboard:not(.theme-dark) .glance .gc b { background: none !important; -webkit-text-fill-color: currentColor !important;
  color: #1570EF !important; }

/* 顶部四指标卡：白卡 + 蓝数字 */
body.view-dashboard:not(.theme-dark) .t4 { background: #fff !important; border-radius: 14px !important;
  box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
body.view-dashboard:not(.theme-dark) .t4 .t4-v { color: #1570EF !important; }
body.view-dashboard:not(.theme-dark) .t4 .t4-lb { color: #64748b !important; }

/* 内容卡片统一：白卡圆角 + 淡蓝影 */
body.view-dashboard:not(.theme-dark) .card { background: #fff !important; border-radius: 16px !important;
  box-shadow: 0 4px 14px rgba(21,112,239,.06) !important; border: none !important; }
body.view-dashboard:not(.theme-dark) .chead .ct, body.view-dashboard:not(.theme-dark) .chead .card-title { color: #16406b !important; }

/* 常用入口：浅蓝图标底 */
body.view-dashboard:not(.theme-dark) .qe .qi { border-radius: 12px !important; }
body.view-dashboard:not(.theme-dark) .qe .qi:hover { background: #F0F7FF !important; }

/* ===== 窄屏电脑适配（笔记本/窗口拉窄） ===== */
@media (max-width: 1400px) {
  body.view-dashboard .wrap { padding: 22px 20px 36px !important; }
  body.view-dashboard .hero { padding: 26px 28px !important; }
  body.view-dashboard .hi { font-size: 26px !important; }
}
@media (max-width: 1240px) {
  body.view-dashboard .hero { padding: 22px 24px !important; }
  body.view-dashboard .hi { font-size: 24px !important; }
  /* hero 右侧速览片不再叠在文字右边，挪到问候语下方横排，避免窄屏压住标题 */
  body.view-dashboard .glance { position: relative !important; right: auto !important; top: auto !important;
    transform: none !important; margin-top: 16px !important; justify-content: flex-start !important; flex-wrap: wrap !important; }
  body.view-dashboard .side { flex-basis: 300px !important; width: 300px !important; max-width: 300px !important; }
}

/* ===== 2026-10-23 fix127：合同变更对比块 ===== */
.cmp3{display:grid;grid-template-columns:96px 1fr 1fr;border:1px solid #eef2f7;border-radius:12px;overflow:hidden;margin-bottom:14px;font-size:12.5px}
.cmp3-h{background:#f8fbff;font-weight:700;padding:8px 10px;color:#16406b;border-bottom:1px solid #eef2f7}
.cmp3-c{padding:8px 10px;border-bottom:1px solid #f4f7fb;word-break:break-all;color:#475569}
.cmp3-c.cmp3-l{font-weight:600;color:#64748b;background:#fbfdff}
.cmp3-c.chg{background:#F0F7FF}
.cmp3-c.chg b{color:#1570EF}
@media (max-width:768px){.cmp3{grid-template-columns:70px 1fr 1fr;font-size:11.5px}.cmp3-h,.cmp3-c{padding:6px 7px}}

/* ===== fix128 首页恢复方案⑨定稿：通栏横幅 + 紫青顶栏 + 全屏通栏（2026-10-23） ===== */
/* 1. 顶栏恢复定稿紫青渐变（fix125 误改为蓝青，本次改回） */
body:not(.theme-dark) .topbar,
body.view-dashboard:not(.theme-dark) .topbar { background: linear-gradient(135deg, #4f46e5 0%, #0e7490 100%) !important; }
/* 2. 首页全屏通栏：去掉内容区最大宽度限制，宽屏不再两边留空 */
@media (min-width: 761px) {
body.view-dashboard .content { max-width: none !important; padding: 0 0 48px !important; }
body.view-dashboard .wrap { max-width: none !important; padding: 0 !important; }
/* 3. 问候区改为通栏横幅：贴顶栏、无卡片边框，冰蓝渐变 + 右侧青色光晕 */
body.view-dashboard:not(.theme-dark) .hero {
border-radius: 0 !important; border: none !important; box-shadow: none !important;
margin: 0 0 22px !important; padding: 34px 40px !important;
background: radial-gradient(circle at 84% 62%, rgba(34,211,238,.16), transparent 46%),
linear-gradient(155deg, #E3EFFF 0%, #F0F7FF 55%, #FFFFFF 100%) !important;
}
/* 横幅右上大水印「锐立」 */
body.view-dashboard:not(.theme-dark) .hero::after {
content: "锐立" !important; background: none !important; width: auto !important; height: auto !important;
top: 50% !important; right: 44px !important; transform: translateY(-54%) !important;
border-radius: 0 !important;
font-size: 168px; font-weight: 900; letter-spacing: 8px; line-height: 1;
color: #c3dcf7; pointer-events: none;
}
/* 问候语放大到定稿大小 */
body.view-dashboard:not(.theme-dark) .hero .hi { font-size: 30px !important; }
/* 4. 横幅下方内容左右留白 */
body.view-dashboard .t4s, body.view-dashboard .layout { padding-left: 36px !important; padding-right: 36px !important; }
}
/* 5. 窄屏电脑微调（沿用 fix125 思路，不破坏其规则） */
@media (min-width: 761px) and (max-width: 1400px) {
body.view-dashboard .t4s, body.view-dashboard .layout { padding-left: 20px !important; padding-right: 20px !important; }
body.view-dashboard:not(.theme-dark) .hero { padding: 26px 24px !important; }
body.view-dashboard:not(.theme-dark) .hero::after { font-size: 116px !important; right: 24px !important; }
body.view-dashboard:not(.theme-dark) .hero .hi { font-size: 26px !important; }
}

/* ===== 2026-10-23 fix130：资产中心（数量/低库存标红） ===== */
.acs-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
.acs-card{background:#fff;border-radius:14px;padding:16px 18px;box-shadow:0 4px 14px rgba(21,112,239,.06)}
.acs-v{font-size:26px;font-weight:800;color:#1570EF}
.acs-lb{font-size:12.5px;color:#64748b;margin-top:4px}
.acs-card.warn{background:#FFF1F2}
.acs-card.warn .acs-v{color:#DC2626}
.acs-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.acs-bar .sp{flex:1}
.acs-pills{display:flex;gap:6px;flex-wrap:wrap}
.acs-pill{padding:4px 12px;border-radius:999px;font-size:12.5px;cursor:pointer;background:#F1F5F9;color:#475569;white-space:nowrap}
.acs-pill.on{background:#1570EF;color:#fff}
.acs-pend{background:#FFF7ED;border:1px solid #FED7AA;color:#B45309;border-radius:10px;padding:8px 14px;font-size:12.5px;margin-bottom:12px}
.acs-ops a{margin-right:8px;cursor:pointer;color:#1570EF;white-space:nowrap}
.acs-low{color:#DC2626;font-weight:700}
.acs-lowrow td{background:#FFF1F2}
.acs-lowtag{color:#DC2626;font-size:11px;border:1px solid #FECDD3;border-radius:8px;padding:0 6px;font-weight:400}
.acs-done{color:#94A3B8;font-size:12px}
.acs-flows{display:flex;flex-direction:column;gap:10px}
.acs-flow{border-left:3px solid #1570EF;padding:6px 12px;background:#F8FAFF;border-radius:0 10px 10px 0}
.acs-flow b{margin-right:8px}
.acs-flow span{color:#64748b;font-size:12px;margin-right:8px}
.acs-flow time{color:#94A3B8;font-size:11.5px}
.acs-flow p{margin:4px 0 0;color:#475569;font-size:12.5px}
@media (max-width:768px){
.acs-cards{grid-template-columns:repeat(3,1fr);gap:8px}
.acs-card{padding:10px 12px}.acs-v{font-size:19px}.acs-lb{font-size:11px}
.acs-pills{width:100%;overflow-x:auto;flex-wrap:nowrap}
}

/* ===== 2026-10-23 fix135：通知中心面板整队 ===== */
.notif-item .notif-st{white-space:nowrap;flex:none;margin-left:8px;font-size:11.5px;color:#1570EF}
.notif-item .notif-st.done{color:#16a34a}
.notif-group{padding:8px 12px 4px;font-size:12px;color:#94A3B8;border-top:1px solid #eef1f6;margin-top:4px}

/* ===== 2026-10-23 fix142：登录框扁平化（老板定：不要灰底输入框的感觉，直接在下划线上输入） ===== */
.login-form .lg-input{background:transparent;border:none;box-shadow:none;border-radius:0;padding:0 2px;border-bottom:1.5px solid rgba(30,41,80,.18)}
.login-form .lg-input:focus-within{background:transparent;box-shadow:none;border-color:var(--blue)}
.login-form .lg-input input{color:var(--navy)}
.login-form .lg-input input::placeholder{color:#9aa4b8}
body.theme-dark .login-form .lg-input{background:transparent;border:none;box-shadow:none;border-bottom-color:rgba(255,255,255,.22)}
body.theme-dark .login-form .lg-input:focus-within{background:transparent;box-shadow:none;border-color:rgba(129,140,248,.6)}

/* ============ 项目管理四页签重排（2026-10-23 fix146，单号 fix142）============
   实施项目 / 框架合同 / 老项目 / 已完成·归档；卡片重设计。全部是新类名，不影响旧样式。 */
.pj-tabs{display:flex;gap:8px;margin:14px 0 16px}
.pj-tabs button{border:1px solid #E3E6EE;background:#fff;border-radius:99px;padding:8px 20px;font-size:13.5px;font-weight:700;color:#4A5470;cursor:pointer}
.pj-tabs button.cur{background:#5B5BD6;color:#fff;border-color:#5B5BD6}
.pj-tabs button .n{font-size:11px;opacity:.75;margin-left:4px}
.pjgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:1100px){.pjgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.pjgrid{grid-template-columns:1fr}}
.pjc{background:#fff;border:1px solid #E9EBF1;border-radius:14px;padding:18px 20px 16px;cursor:pointer;transition:transform .16s,box-shadow .16s}
.pjc:hover{transform:translateY(-2px);box-shadow:0 8px 24px -14px rgba(29,35,51,.16)}
.pjc.pjc-sub{border-left:3px solid #7FC8C2}
.pjc-r1{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.pjc-dt{font-size:15px;font-weight:800;color:#1D2333;font-variant-numeric:tabular-nums}
.pjc-stat{margin-left:auto;font-size:12px;font-weight:700;color:#4A5470;display:flex;align-items:center;gap:6px}
.pjc-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.pjc-dot.run{background:#5B5BD6}.pjc-dot.done{background:#16A34A}.pjc-dot.new{background:#C6CBDC}
.pjc-r2{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.pjc-name{font-size:15px;font-weight:800;line-height:1.4;flex:1 1 60%}
.pjc-tt{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;white-space:nowrap;margin-top:1px}
.pjc-tt.sub{background:#E0F2F1;color:#0D9488}
.pjc-tt.idp{background:#E8EDFF;color:#4F5BD5}
.pjc-tt.nw{background:#FFEDD5;color:#EA580C}
.pjc-tt.lg{background:#F1F2F6;color:#8A93A8}
.pjc-tt.mine{background:#E8EDFF;color:#4F5BD5}
.pjc-r3{font-size:12.5px;color:#8A93A8;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pjc-belong{font-size:12px;color:#0D9488;font-weight:600;margin-top:2px}
.pjc-r4{margin-top:14px}
.pjc-track{height:6px;border-radius:99px;background:#EEF0F5;overflow:hidden}
.pjc-track i{display:block;height:100%;border-radius:99px}
.pjc-track i.run{background:#5B5BD6}.pjc-track i.done{background:#16A34A}.pjc-track i.new{background:#D5D9E6}
.pjc-r4b{display:flex;justify-content:space-between;align-items:center;margin-top:7px}
.pjc-stg{font-size:11.5px;color:#8A93A8;font-weight:600}
.pjc-pcn{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.pjc-pcn.run{color:#5B5BD6}.pjc-pcn.done{color:#16A34A}.pjc-pcn.new{color:#9AA3B8}
.pjc-hr{border-top:1px solid #F0F1F6;margin:12px 0 10px}
.pjc-r5{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:#1D2333}
.pjc-r5 i{font-style:normal;font-weight:600;color:#9AA3B8;margin-right:5px;font-size:11.5px}
.pjc-sep{width:3px;height:3px;border-radius:50%;background:#C6CBDC}
.pjc-r6{display:flex;justify-content:space-between;align-items:flex-end;margin-top:12px}
.pjc-big{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.05}
.pjc-big small{display:block;font-size:10.5px;font-weight:600;color:#9AA3B8;margin-top:3px;letter-spacing:.06em}
.pjc-sm{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:#8A93A8;text-align:right}
.pjc-sm b{color:#1D2333;font-weight:700;margin-left:4px;font-variant-numeric:tabular-nums}
.pjc-warn{margin:-6px 0 10px;font-size:12px;font-weight:600;color:#D97706}
.pjc-wait{margin:-6px 0 10px;font-size:12px;font-weight:600;color:#B45309;background:#FFFBEB;border:1px solid #FDE68A;border-radius:8px;padding:6px 10px}
.pjc-wait.is-red{color:#B91C1C;background:#FEF2F2;border-color:#FECACA}
.fwt{width:100%;border-collapse:collapse;background:#fff;border:1px solid #E9EBF1;border-radius:14px;overflow:hidden}
.fwt th{font-size:11px;font-weight:700;color:#8A93A8;letter-spacing:.09em;text-align:left;padding:12px 14px 10px;border-bottom:1.5px solid #E8EAF2;white-space:nowrap}
.fwt th.r{text-align:right}
.fwt td{padding:14px;border-bottom:1px solid #EEF0F6;vertical-align:middle;font-size:13px}
.fwt tr:last-child td{border-bottom:none}
.fwt tbody tr{cursor:pointer;transition:background .12s}
.fwt tbody tr:hover{background:#F7F8FC}
.fwt .code{color:#8A93A8;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.fwt .nm{min-width:250px;max-width:330px}
.fwt .nl{color:#4F5BD5;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none}
.fwt .nl:hover{text-decoration:underline}
.fwt .cust{color:#8A93A8;font-size:12px;margin-top:3px}
.fwt .pm{font-weight:600;white-space:nowrap}
.fwt .dt{color:#6F7A98;font-weight:600;font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.7}
.fwt td.tdtop{vertical-align:top}
.fwt .p1{color:#1D2333;font-weight:700}
.fwt .p2{color:#8A93A8}
.fwt .to{color:#B3BACB;font-size:11px;margin-right:3px}
.fwt .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.fwt .subcnt{font-size:13px;color:#4A5470;font-weight:600;white-space:nowrap}
.fwt .subcnt b{color:#5B5BD6;font-weight:800}
.pj-empty{text-align:center;padding:70px 20px;color:#9AA3B8;font-size:15px;font-weight:700;background:#fff;border:1.5px dashed #DFE3EE;border-radius:14px;line-height:1.9}
.pj-empty small{display:block;font-size:12.5px;font-weight:600;color:#B3BACB}
.pj-pager{display:flex;justify-content:center;gap:8px;margin:16px 0 4px}
.pj-pager button{border:1px solid #E3E6EE;background:#fff;border-radius:8px;padding:5px 13px;font-size:12.5px;font-weight:700;color:#4A5470;cursor:pointer}
.pj-pager button.cur{background:#5B5BD6;color:#fff;border-color:#5B5BD6}
/* fix146（2026-10-23 李健定）：建档时间/合同期限单行 + 显著颜色 */
.fwt .dt-build{color:#0E7490;font-weight:700;font-size:13px}
.fwt .dt-period{color:#C2410C;font-weight:700;font-size:13px;white-space:nowrap}

/* ================= fix154（2026-10-24 李健定）全系统全屏 ================= */
/* 所有页面和首页一样铺满：去掉内容区 1480px 居中限宽 */
@media (min-width: 761px) {
  body .content { max-width: none !important; }
  body .page-head { max-width: none !important; }
}

/* ================= fix154 v27 项目管理「项目总账」新列表样式（全部 pl- 前缀，与旧样式隔离） ================= */
.pl-statbar { display:flex; align-items:center; background:#fff; border:1px solid #e9ebf1; border-radius:12px; padding:11px 6px; margin-bottom:24px; box-shadow:0 1px 2px rgba(20,30,60,.03); }
.pl-statbar .pl-st { flex:1; display:flex; align-items:baseline; justify-content:center; gap:8px; padding:0 14px; white-space:nowrap; overflow:hidden; }
.pl-statbar .pl-st + .pl-st { border-left:1px solid #eef0f5; }
.pl-statbar .k { font-size:12px; font-weight:700; color:#8a93a8; }
.pl-statbar .v { font-size:19px; font-weight:800; color:#1d2333; font-variant-numeric:tabular-nums; }
.pl-statbar .v small { font-size:11.5px; font-weight:600; color:#9aa3b8; margin-left:2px; }
.pl-statbar .sub { font-size:11.5px; font-weight:600; color:#9aa3b8; font-variant-numeric:tabular-nums; }
.pl-statbar .hot .v { color:#c2410c; }
@media (max-width:1100px){ .pl-statbar .sub{display:none;} .pl-statbar .v{font-size:16px;} .pl-statbar .pl-st{padding:0 8px; gap:6px;} .pl-statbar .k{font-size:11.5px;} }
.pl-toolbar { display:flex; align-items:center; margin-bottom:24px; gap:14px; flex-wrap:wrap; }
.pl-seg { display:inline-flex; align-items:center; background:#fff; border:1px solid #e9ebf1; border-radius:12px; padding:3px 4px; box-shadow:0 1px 2px rgba(20,30,60,.03); height:38px; box-sizing:border-box; }
.pl-seg button { border:none; background:transparent; font-family:inherit; font-size:12.5px; font-weight:700; color:#8a93a8; padding:6px 16px; border-radius:9px; cursor:pointer; white-space:nowrap; }
.pl-seg button.cur { background:#5b5bd6; color:#fff; }
.pl-seg .pl-segk { font-size:12.5px; font-weight:700; color:#8a93a8; padding:6px 4px 6px 12px; }
.pl-tcard { display:inline-flex; align-items:center; background:#fff; border:1px solid #e9ebf1; border-radius:12px; padding:3px 6px; box-shadow:0 1px 2px rgba(20,30,60,.03); height:38px; box-sizing:border-box; }
.pl-titem { display:inline-flex; align-items:center; gap:7px; padding:5px 10px; }
.pl-titem svg { flex:none; }
.pl-tdiv { width:1px; height:18px; background:#eef0f5; margin:0 2px; }
.pl-toolbar .pl-tl { font-size:12.5px; font-weight:700; color:#8a93a8; white-space:nowrap; }
.pl-toolbar select { border:none; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238a93a8' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right center; appearance:none; -webkit-appearance:none; font-size:13px; font-weight:600; color:#1d2333; padding:4px 18px 4px 2px; font-family:inherit; cursor:pointer; }
.pl-toolbar select:hover { color:#5b5bd6; }
.pl-toolbar select.sel-cust { width:360px; max-width:46vw; flex:none; } /* v28b：客户下拉加长到能看全最长客户名（16 字），且不被工具栏挤压 */
.pl-lgroup { background:#fff; border:1px solid #e9ebf1; border-radius:14px; margin-bottom:14px; overflow:hidden; }
.pl-lgh { display:flex; align-items:baseline; gap:12px; padding:14px 18px; cursor:pointer; user-select:none; }
.pl-lgh:hover { background:#fafbff; }
.pl-lgh-name { font-size:15px; font-weight:800; }
.pl-lgh-n { font-size:11px; font-weight:700; color:#fff; background:#5b5bd6; border-radius:99px; padding:1px 8px; font-variant-numeric:tabular-nums; }
.pl-lgh-sub { font-size:12px; color:#C9A254; margin-left:4px; font-variant-numeric:tabular-nums; font-weight:700; }
.pl-lgh-sub b { color:#1d2333; }
.pl-lgh-arrow { margin-left:auto; font-size:11px; font-weight:700; color:#9aa3b8; }
.pl-lgroup.shut .pl-lgbody { display:none; }
.pl-lgh-arrow::after { content:'收起'; }
.pl-lgroup.shut .pl-lgh-arrow::after { content:'展开'; }
.pl-lgbody { border-top:1px solid #f0f1f6; }
.pl-fwband { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:12px 18px; background:#f6f6fe; border-bottom:1px solid #ecebfa; cursor:pointer; }
.pl-fwband:hover { background:#efeffd; }
.pl-fwband.limited { cursor:default; background:#fafbfc; }
.pl-fwband.limited:hover { background:#fafbfc; }
.pl-fwband.limited .pl-fwitem:not(.keep) { display:none; }
.pl-fwband.limited .pl-fwname { color:#4a5470; font-weight:700; }
.pl-fwband.limited::after { content:'仅可见合同期限'; margin-left:auto; font-size:11px; color:#c6cbdc; font-weight:600; }
.pl-fwtag { font-size:10.5px; font-weight:800; background:#5b5bd6; color:#fff; border-radius:4px; padding:2px 8px; white-space:nowrap; }
.pl-fwname { font-size:13.5px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:400px; }
.pl-fwitem { font-size:12px; color:#8a93a8; font-weight:600; white-space:nowrap; }
.pl-fwitem b { color:#1d2333; font-variant-numeric:tabular-nums; margin-left:3px; }
.pl-fwitem b.teal { color:#0e7490; } .pl-fwitem b.blue { color:#5b5bd6; }
.pl-cols, .pl-pmain { display:grid; grid-template-columns:minmax(170px,1.6fr) 110px minmax(115px,.9fr) 78px 78px 70px 70px 84px 74px 94px; gap:10px; }
.pl-cols { padding:8px 12px; border-bottom:1px solid #eceef4; background:#fff; }
.pl-cols span { font-size:11.5px; font-weight:700; color:#9aa3b8; white-space:nowrap; }
.pl-cols .pl-num { text-align:right; }
.pl-prow { cursor:pointer; }
.pl-prow .pl-pmain { background:#fff; }
.pl-prow.zeb .pl-pmain { background:#f4f6fd; }
.pl-prow.noauth { cursor:default; }
.pl-pmain { padding:12px; align-items:center; min-height:50px; }
.pl-prow:not(.noauth) .pl-pmain:hover { background:#e9edfb !important; }
.pl-pname { display:flex; align-items:center; gap:8px; min-width:0; }
.pl-ptext { font-size:13.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-tag { font-size:10px; font-weight:800; padding:2px 6px; border-radius:4px; white-space:nowrap; flex-shrink:0; }
.pl-tag.sub { background:#e0f2f1; color:#0d9488; }
.pl-tag.idp { background:#e8edff; color:#4f5bd5; }
.pl-tag.lg { background:#f8f1e2; color:#C9A254; border:1px solid #eedfbe; }
.pl-msfrac { font-size:10.5px; font-weight:700; color:#9aa3b8; font-variant-numeric:tabular-nums; flex-shrink:0; }
.pl-ppct { display:flex; align-items:center; gap:8px; }
.pl-pbar { flex:1; height:4px; background:#e8eaf3; border-radius:99px; overflow:hidden; min-width:44px; }
.pl-pbar i { display:block; height:100%; background:#5b5bd6; border-radius:99px; }
.pl-pbar i.done { background:#16a34a; }
.pl-pv { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pl-pv.done { color:#16a34a; }
.pl-pnext { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-pnext .nx { font-size:12px; color:#8a93a8; }
.pl-pnext .nd { font-size:12px; font-weight:700; color:#c2410c; margin-left:5px; font-variant-numeric:tabular-nums; }
.pl-pdt { font-size:12px; font-weight:700; color:#0e7490; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pl-num { text-align:right; font-variant-numeric:tabular-nums; font-weight:700; font-size:12.5px; white-space:nowrap; }
.pl-arc { font-size:11px; font-weight:800; border-radius:99px; padding:2px 9px; white-space:nowrap; background:#f1f2f6; color:#9aa3b8; }
.pl-arc.ok { background:#e8f7ee; color:#16a34a; }
.pl-arc.wait { background:#fdf0e3; color:#c2410c; }
.pl-ppm { font-size:12px; font-weight:700; color:#1d2333; white-space:nowrap; }
.pl-pteam { font-size:12px; font-weight:600; color:#4a5470; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-dim { color:#c6cbdc; font-weight:600; font-size:12px; }
.pl-lgbody:hover .pl-prow:not(:hover) .pl-pmain { opacity:.45; }
.pl-inner-pager { display:flex; justify-content:center; gap:6px; padding:9px 0 11px; border-top:1px solid #f0f1f6; background:#fff; }
.pl-inner-pager button { border:1px solid #e3e6ee; background:#fff; border-radius:7px; padding:3px 11px; font-size:12px; font-weight:700; color:#4a5470; cursor:pointer; font-family:inherit; }
.pl-inner-pager button.cur { background:#5b5bd6; color:#fff; border-color:#5b5bd6; }
.pl-inner-pager .pl-ip-info { font-size:11px; color:#9aa3b8; font-weight:600; align-self:center; margin-left:8px; }
.pl-pager { display:flex; justify-content:center; gap:8px; margin-top:16px; }
.pl-pager button { border:1px solid #e3e6ee; background:#fff; border-radius:8px; padding:5px 13px; font-size:12.5px; font-weight:700; color:#4a5470; cursor:pointer; font-family:inherit; }
.pl-pager button.cur { background:#5b5bd6; color:#fff; border-color:#5b5bd6; }
.pl-pginfo { text-align:center; font-size:11.5px; color:#9aa3b8; margin-top:8px; font-weight:600; }
.pl-empty { padding:50px 0; text-align:center; color:#9aa3b8; font-weight:700; font-size:13px; }
/* 老项目的合同期限/归档徽章等复用现有 .tag 体系；本页打印时隐藏翻页 */
@media print { .pl-pager, .pl-inner-pager, .pl-toolbar { display:none !important; } }

/* ================= fix157（2026-10-24 李健定）登录页换皮：实心蓝板 + 裸表单（lg2- 前缀，与旧登录样式隔离） ================= */
#login-screen.login-screen { background:#fff !important; padding:0 !important; }
.lg2-wrap { display:flex; width:100%; min-height:100vh; animation:lg2In .6s ease both; font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; color:#1d2333; -webkit-font-smoothing:antialiased; }
@keyframes lg2In { from { opacity:0; } to { opacity:1; } }
/* 左板：实心系统蓝 */
.lg2-side { flex:0 0 46%; position:sticky; top:0; height:100vh; background:#5b5bd6; color:#fff; display:flex; flex-direction:column; padding:44px 52px 40px; box-sizing:border-box; }
.lg2-brand { display:flex; align-items:center; gap:12px; }
.lg2-brand-mark { width:38px; height:38px; border:1.5px solid rgba(255,255,255,.9); border-radius:9px; display:flex; align-items:center; justify-content:center; }
.lg2-brand-mark svg { display:block; }
.lg2-brand-name { font-size:15px; font-weight:800; letter-spacing:.02em; }
.lg2-brand-sub { font-size:11px; font-weight:600; color:rgba(255,255,255,.65); letter-spacing:.14em; text-transform:uppercase; margin-top:2px; }
.lg2-mid { flex:1; display:flex; flex-direction:column; justify-content:center; }
.lg2-kicker { font-size:12px; font-weight:700; letter-spacing:.3em; color:rgba(255,255,255,.6); text-transform:uppercase; margin-bottom:18px; }
.lg2-title { font-size:44px; font-weight:900; line-height:1.28; letter-spacing:.01em; }
.lg2-title em { font-style:normal; border-bottom:4px solid rgba(255,255,255,.85); padding-bottom:2px; }
.lg2-desc { margin-top:20px; font-size:13.5px; font-weight:600; color:rgba(255,255,255,.75); line-height:1.9; max-width:400px; }
.lg2-pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; max-width:420px; }
.lg2-pills span { border:1px solid rgba(255,255,255,.85); border-radius:100px; padding:7px 14px; font-size:12.5px; font-weight:700; color:#fff; cursor:default; }
.lg2-pills span:hover { animation:lg2blink .5s step-end infinite; }
@keyframes lg2blink { 50% { border-color:transparent; } }
.lg2-foot { display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:600; color:rgba(255,255,255,.6); }
.lg2-ver { font-variant-numeric:tabular-nums; }
/* 右板：白底，表单裸放 */
.lg2-main { flex:1; position:relative; display:flex; align-items:center; justify-content:center; padding:48px 32px 72px; box-sizing:border-box; background:#fff; }
.lg2-mfoot { position:absolute; left:48px; right:88px; bottom:24px; display:flex; justify-content:space-between; font-size:11.5px; color:#b7bdd0; font-weight:600; } /* right:88px 给右下角主题切换按钮让位 */
.lg2-form { width:100%; max-width:372px; }
.lg2-fkick { font-size:12px; font-weight:700; letter-spacing:.28em; color:#8a93a8; text-transform:uppercase; }
.lg2-ftitle { font-size:30px; font-weight:900; margin-top:10px; color:#1d2333; }
.lg2-fsub { font-size:13px; color:#8a93a8; font-weight:600; margin-top:8px; }
/* 底线式输入框 + 浮动标签 */
.lg2-field { position:relative; margin-top:34px; }
.lg2-field input { width:100%; border:none; border-bottom:1.5px solid #e9ebf1; background:transparent; font-family:inherit; font-size:15px; font-weight:600; color:#1d2333; padding:10px 34px 10px 2px; outline:none; transition:border-color .4s cubic-bezier(0,.25,.25,1); box-sizing:border-box; border-radius:0; box-shadow:none; }
.lg2-field input:focus { border-bottom-color:#5b5bd6; }
.lg2-field label { position:absolute; left:2px; top:10px; font-size:14px; font-weight:600; color:#8a93a8; pointer-events:none; transition:all .4s cubic-bezier(0,.25,.25,1); }
.lg2-field input:focus + label,
.lg2-field input:not(:placeholder-shown) + label { top:-14px; font-size:11.5px; letter-spacing:.06em; color:#5b5bd6; }
.lg2-eye { position:absolute; right:2px; top:9px; width:20px; height:20px; cursor:pointer; opacity:.45; transition:opacity .3s; display:flex; align-items:center; }
.lg2-eye:hover { opacity:.9; }
.lg2-row { display:flex; align-items:center; justify-content:space-between; margin-top:26px; }
.lg2-ck { display:flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:#8a93a8; cursor:pointer; user-select:none; }
.lg2-ck input { appearance:none; -webkit-appearance:none; width:16px; height:16px; border:1.5px solid #cfd4e0; border-radius:4px; cursor:pointer; position:relative; transition:all .3s; margin:0; }
.lg2-ck input:checked { background:#5b5bd6; border-color:#5b5bd6; }
.lg2-ck input:checked::after { content:''; position:absolute; left:4.5px; top:1.5px; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(42deg); }
.lg2-forgot { font-size:13px; font-weight:600; color:#8a93a8; text-decoration:none; border-bottom:1px solid transparent; transition:all .3s; }
.lg2-forgot:hover { color:#5b5bd6; border-bottom-color:#5b5bd6; }
.lg2-btn { width:100%; margin-top:34px; border:none; background:#5b5bd6; color:#fff; font-family:inherit; font-size:15px; font-weight:800; letter-spacing:.34em; text-indent:.34em; padding:15px 0; border-radius:10px; cursor:pointer; transition:background .4s cubic-bezier(0,.25,.25,1); }
.lg2-btn:hover { background:#4a4ac4; }
.lg2-btn:active { transform:scale(.99); }
/* 深色模式兜底（左板保持蓝，右板转深） */
body.theme-dark #login-screen.login-screen { background:#141826 !important; }
body.theme-dark .lg2-main { background:#141826; }
body.theme-dark .lg2-ftitle { color:#e8eaf2; }
body.theme-dark .lg2-field input { color:#e8eaf2; border-bottom-color:#2c3247; }
body.theme-dark .lg2-mfoot { color:#5b6274; }
/* 窄屏堆叠：蓝板压扁，表单成主体 */
@media (max-width:860px) {
  .lg2-wrap { flex-direction:column; }
  .lg2-side { position:static; height:auto; flex:none; padding:22px 22px 16px; }
  .lg2-brand-mark { width:32px; height:32px; border-radius:9px; }
  .lg2-brand-name { font-size:15px; }
  .lg2-brand-sub { font-size:9.5px; }
  .lg2-kicker { display:none; }
  .lg2-title { font-size:23px; line-height:1.4; }
  .lg2-desc, .lg2-pills { display:none; }
  .lg2-mid { padding:16px 0 0; }
  .lg2-foot { margin-top:14px; font-size:10.5px; }
  .lg2-main { padding:36px 24px 40px; flex-direction:column; align-items:stretch; justify-content:flex-start; }
  .lg2-form { margin:0 auto; }
  .lg2-mfoot { position:static; width:100%; max-width:372px; margin:40px auto 0; padding-top:16px; border-top:1px solid #e9ebf1; box-sizing:border-box; }
}

/* ===== fix160（2026-10-24）：项目管理客户筛选下拉面板加宽 =====
面板宽度不再跟着按钮走，固定 360px，客户全称完整可见 */
.pl-titem:has(select.sel-cust) .psel-panel{right:auto;width:360px;max-width:46vw}

/* ===== fix162（2026-10-24）：到期节点卡可点 + 明细弹窗 ===== */
.pl-st.clk{cursor:pointer;transition:box-shadow .15s,transform .15s}
.pl-st.clk:hover{box-shadow:0 6px 18px rgba(91,91,214,.18);transform:translateY(-1px)}
.pl-st.clk .sub{color:#5b5bd6}
.pld7-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}
.pld7-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #e9ebf1;border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}
.pld7-row:hover{border-color:#5b5bd6;background:#f7f7fe}
.pld7-date{flex:none;width:118px;font-weight:700;color:#b45309;font-size:13px}
.pld7-date i{display:block;font-style:normal;font-weight:400;font-size:11px;color:#98a2b3}
.pld7-main{flex:1;min-width:0}
.pld7-main b{display:block;font-size:13.5px;color:#1f2a44;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pld7-main b em{font-style:normal;font-weight:400;font-size:11.5px;color:#8a93a8;margin-left:4px}
.pld7-main s{display:block;text-decoration:none;font-size:12px;color:#8a93a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pld7-go{flex:none;font-size:12px;color:#5b5bd6;font-weight:600}

/* ===== fix163（2026-10-24）：铃铛面板待办提醒横条 ===== */
.notif-todobar{margin:8px 10px 2px;padding:9px 12px;border-radius:10px;background:#eef0fd;color:#3730a3;font-size:13px;font-weight:600;cursor:pointer;border:1px solid #dfe2fb}
.notif-todobar:hover{background:#e3e6fc}

/* ===== fix179（2026-10-28）：项目管理列表「已暂停」标签（与 tag-amber 同色系） ===== */
.pl-tag.paused { background:#fdf3e3; color:#b97f2a; border:1px solid #f0dfC0; }
