/* ---------- login ---------- */
.login-wrap{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}
.login-left{
  background:linear-gradient(160deg,#0B322A 0%,#08261F 60%,#06201A 100%);
  color:#D7E5DF;padding:64px 56px;display:flex;flex-direction:column;justify-content:center;
}
.login-brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#fff;margin-bottom:46px}
.login-brand .lm{width:32px;height:32px;border-radius:9px;background:#1F9E75;display:grid;place-items:center;font-size:16px}
.login-left h1{font-size:30px;line-height:1.45;font-weight:600;color:#fff;margin:0 0 16px;letter-spacing:-.4px}
.login-desc{font-size:13.5px;color:#8FB3A6;max-width:400px;line-height:1.9;margin:0 0 34px}
.login-points{display:grid;gap:12px;max-width:420px}
.login-points div{font-size:12.5px;color:#7FA396;border-left:2px solid #1D5C4B;padding-left:12px;line-height:1.7}
.login-points b{color:#B7E9D6;display:block;font-weight:500;font-size:13px}
.login-right{display:grid;place-items:center;padding:40px 24px;background:#F4F7F5}
.login-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 28px;width:372px;max-width:100%;box-shadow:0 24px 60px -40px rgba(9,40,30,.5)}
.login-title{font-size:20px;font-weight:600}
.login-sub{font-size:12.5px;color:var(--muted);margin:4px 0 20px}
.login-btn{width:100%;justify-content:center;margin-top:6px;padding:10px}
.login-err{color:var(--red);font-size:12.5px;min-height:18px;margin-top:8px}
.login-help{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px}
.lh-title{font-size:11.5px;color:var(--faint);margin-bottom:8px}
.lh-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.lh-row span{font-size:11.5px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 8px;cursor:pointer}
.lh-row span:hover{border-color:#BFD8CD;background:#F0F8F4}

/* ---------- forms ---------- */
.fld textarea{resize:vertical;min-height:64px}
.fld .hint{font-size:11.5px;color:var(--faint);margin-top:4px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:12px;padding:5px 11px;border:1px solid var(--line);border-radius:20px;cursor:pointer;background:#fff;color:#5F7069;user-select:none}
.chip.on{border-color:#9FE1CB;background:#E4F4ED;color:#0C6B4F}
.amount-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.amount-row .fld{margin-bottom:8px}
.total-line{display:flex;justify-content:space-between;align-items:center;background:var(--bg);border-radius:9px;padding:9px 12px;font-size:13px;margin:4px 0 12px}
.total-line b{font-size:17px;color:#0C6B4F}

/* ---------- misc ---------- */
.btn.danger{color:#9E2A1F;border-color:#F0D3CE}
.btn.danger:hover{background:#FDF2F0;border-color:#E3B5AD}
.btn.tiny{padding:3px 8px;font-size:11.5px;border-radius:6px}
.row-actions{display:flex;gap:6px;justify-content:flex-end}
.split{display:flex;gap:10px;align-items:center}
.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.badge-soft{font-size:11px;background:#F1F5F3;color:#5F7069;border-radius:5px;padding:1px 6px}
.tag-warn{background:#FBF0DC;color:#8A590F}
.tag-ok{background:#E4F4ED;color:#0C6B4F}
.section-gap{margin-top:14px}
.stat-strip{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);padding:10px 16px;border-bottom:1px solid var(--line-2)}
.stat-strip b{color:var(--ink);font-weight:600;font-size:14px;margin-left:4px}
.confirm-box{background:#F0F8F4;border:1px solid #D8EBE1;border-radius:10px;padding:12px 14px;font-size:12.5px;color:#2C5D4C;margin-bottom:12px}
.loading{padding:60px;text-align:center;color:var(--faint);font-size:13px}
.switch{display:inline-flex;align-items:center;gap:8px;font-size:13px}

/* sticky action column */
.table-wrap table.sticky-act th:last-child,
.table-wrap table.sticky-act td:last-child{
  position:sticky; right:0; background:#fff; z-index:2;
  box-shadow:-8px 0 8px -8px rgba(9,40,30,.18);
}
.table-wrap table.sticky-act thead th:last-child{background:#FAFCFB}
.table-wrap table.sticky-act tbody tr:hover td:last-child{background:#FBFDFC}
.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}

/* ---------- order stepper ---------- */
.steps{display:flex;flex-direction:column;gap:1px}
.step{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;font-size:12.5px;color:#87968F;cursor:pointer;transition:.12s}
.step:hover{background:#F7FAF8}
.step-dot{width:19px;height:19px;border-radius:50%;border:1px solid #DCE7E1;display:grid;place-items:center;font-size:10px;color:#9AA8A1;flex:0 0 19px;background:#fff}
.step.done{color:#3D5049}
.step.done .step-dot{background:#E4F4ED;border-color:#9FE1CB;color:#0C6B4F}
.step.cur{background:#E4F4ED;color:#0C6B4F;font-weight:600}
.step.cur .step-dot{background:#1F9E75;border-color:#1F9E75;color:#fff}

/* settings sub nav */
.settings-wrap{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start}
.settings-nav{background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px;position:sticky;top:74px}
.snav{display:block;width:100%;text-align:left;border:none;background:none;padding:9px 11px;border-radius:8px;font-size:13px;color:#5F7069;cursor:pointer}
.snav:hover{background:#F6FAF8}
.snav.active{background:#E4F4ED;color:#0C6B4F;font-weight:600}
@media (max-width:900px){.settings-wrap{grid-template-columns:1fr}.settings-nav{display:flex;gap:6px;overflow-x:auto;position:static}}

/* ---------- 客户搜索下拉 ---------- */
.combo{position:relative}
.combo > input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px;background:#fff;outline:none}
.combo > input:focus{border-color:#9FE1CB;box-shadow:0 0 0 3px rgba(31,158,117,.10)}
.combo-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 12px 30px rgba(9,40,30,.14);max-height:260px;overflow:auto;z-index:60;display:none}
.combo-list.show{display:block}
.combo-item{padding:8px 10px;cursor:pointer;border-bottom:1px solid #F2F6F4;font-size:12.5px}
.combo-item:last-child{border-bottom:none}
.combo-item:hover{background:#F1F8F5}
.combo-item .ci-main{color:#152520;font-weight:600}
.combo-item .ci-sub{color:#87968F;font-size:11.5px;margin-top:2px}
.combo-empty{padding:12px;color:#9AA8A1;font-size:12px;text-align:center}

/* ---------- OCR 资料登记 ---------- */
.ocr-box{border:1px dashed #CFE0D8;border-radius:12px;padding:12px;background:#FAFCFB}
.ocr-drop{display:flex;gap:12px;align-items:flex-start}
.ocr-preview{width:132px;height:96px;border-radius:8px;border:1px solid var(--line);object-fit:cover;background:#fff;display:none}
.ocr-status{font-size:12px;color:#5F7069;margin-top:6px;min-height:16px}
.ocr-raw{width:100%;min-height:74px;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px;
  font-family:ui-monospace,Menlo,monospace;background:#fff;resize:vertical;margin-top:8px}
.sh-grid{display:grid;grid-template-columns:1.1fr 1fr 1.3fr .6fr 26px;gap:6px;align-items:center}
.sh-del{border:none;background:none;color:#B42318;cursor:pointer;font-size:14px;line-height:1;padding:2px}
.sh-head{font-size:11.5px;color:#87968F}
.sh-row input{width:100%;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px}
.danger-note{background:#FEF3F2;border:1px solid #FBD5D2;color:#B42318;border-radius:9px;padding:8px 10px;font-size:12.5px}

/* ---------- 业务通知 ---------- */
.notice{display:flex;gap:12px;padding:12px 4px;border-bottom:1px dashed var(--line)}
.notice:last-child{border-bottom:none}
.notice-ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:13px;flex:0 0 30px}
.notice-main{flex:1;min-width:0}
.notice-title{font-size:13px;color:#152520;font-weight:600}
.notice-sub{font-size:12px;color:#5F7069;margin-top:3px;line-height:1.6}
.notice-amt{font-variant-numeric:tabular-nums;font-weight:700;color:#0C6B4F}
.notice-time{font-size:11.5px;color:#9AA8A1;margin-top:4px}

/* 关联单进度条 */
.lk-bar{height:5px;border-radius:4px;background:#EDF3F0;overflow:hidden}
.lk-bar > i{display:block;height:100%;background:linear-gradient(90deg,#9FE1CB,#1F9E75);border-radius:4px}

/* 抽屉标题徽标换行，避免右侧被裁 */
.dw-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-right:34px;line-height:1.6}
.dw-title .pill{flex:0 0 auto}

/* 全局搜索下拉 */
.search{position:relative}
.gs-list{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:0 12px 30px rgba(9,40,30,.16);max-height:320px;overflow:auto;z-index:70;display:none}
.gs-list.show{display:block}
.gs-item{padding:9px 11px;cursor:pointer;border-bottom:1px solid #F2F6F4;font-size:12.5px}
.gs-item:last-child{border-bottom:none}
.gs-item:hover{background:#F1F8F5}
.gs-item .g1{font-weight:600;color:#152520}
.gs-item .g2{color:#87968F;font-size:11.5px;margin-top:2px}
.gs-tag{font-size:10.5px;padding:1px 6px;border-radius:5px;background:#E4F4ED;color:#0C6B4F;margin-right:6px}
.gs-empty{padding:12px;color:#9AA8A1;font-size:12px;text-align:center}

/* 红标提示 */
.warn-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#E5484D;margin-right:5px;vertical-align:1px}
.pill.p-red-soft{background:#FEF3F2;color:#B42318;border-color:#FBD5D2}
.row-warn td{background:#FFF8F8}

/* 表格细节 */
.table-wrap td.nowrap, .table-wrap th.nowrap{white-space:nowrap}
.table-wrap td .cell-sub{line-height:1.5}

/* ---------- 导航分组折叠 ---------- */
.nav-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.nav-toggle i{font-style:normal;font-size:10px;opacity:.55}
.nav-toggle:hover{color:#0C6B4F}

/* ---------- 合同：每家公司一块 ---------- */
.comp-card{border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-bottom:8px;background:#FBFDFC}
.comp-card .comp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.comp-card .comp-head b{font-size:12.5px;color:#0C6B4F}
.comp-card .comp-gstype{width:100%;height:32px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:#fff;font-size:12.5px}
.comp-card .fld label{font-size:11.5px}

/* ---------- 我的提醒：右下角常驻 ---------- */
.remind-dock{position:fixed;right:18px;bottom:18px;width:320px;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 16px 38px rgba(9,40,30,.18);z-index:50;display:none;overflow:hidden}
.remind-dock.show{display:block;animation:rdIn .22s ease-out}
@keyframes rdIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.rd-head{display:flex;align-items:center;gap:6px;padding:9px 11px;background:#0F3F33;color:#fff;font-size:12.5px}
.rd-head b{font-size:12.5px;letter-spacing:.2px}
.rd-count{background:rgba(255,255,255,.18);border-radius:9px;padding:0 6px;font-size:11px}
.rd-hot{background:#E5484D;border-radius:9px;padding:0 6px;font-size:10.5px}
.rd-sp{flex:1}
.rd-btn{background:rgba(255,255,255,.14);border:none;color:#fff;border-radius:6px;padding:2px 7px;font-size:11px;cursor:pointer}
.rd-btn:hover{background:rgba(255,255,255,.26)}
.rd-body{max-height:330px;overflow:auto}
.rd-item{display:flex;gap:8px;padding:8px 11px;border-bottom:1px solid #F2F6F4;cursor:pointer;align-items:flex-start}
.rd-item:hover{background:#F4FAF7}
.rd-item.rd-bad{background:#FFFBFB}
.rd-tag{font-size:10px;padding:1px 6px;border-radius:5px;background:#E4F4ED;color:#0C6B4F;white-space:nowrap;margin-top:2px}
.rd-bad .rd-tag{background:#FEF3F2;color:#B42318}
.rd-main{flex:1;min-width:0}
.rd-title{font-size:12.5px;color:#152520;font-weight:600;line-height:1.45}
.rd-sub{font-size:11px;color:#7C8B84;margin-top:2px;line-height:1.45}
.rd-more{padding:7px 11px;font-size:11.5px;color:#0C6B4F;text-align:center;cursor:pointer;background:#F7FBF9}

/* ---------- 登录全屏提醒 ---------- */
.rm-group{margin-bottom:14px}
.rm-group-title{font-size:12.5px;font-weight:700;color:#0C6B4F;margin-bottom:6px;display:flex;gap:6px;align-items:center}
.rm-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);cursor:pointer}
.rm-row:hover{background:#F7FBF9}
.rm-title{font-size:12.5px;font-weight:600;color:#152520}
.rm-sub{font-size:11.5px;color:#7C8B84;margin-top:2px}

/* 宽弹窗：合同多公司 / 登录提醒 */
.modal.wide{width:720px}

/* ---------- 明显红标 ---------- */
.warn-badge{display:inline-flex;align-items:center;gap:4px;background:#E5484D;color:#fff;border-radius:6px;
  padding:2px 7px;font-size:11.5px;font-weight:700;letter-spacing:.2px;box-shadow:0 1px 0 rgba(180,35,24,.25)}
.row-warn td{background:#FFF1F0!important}
.row-warn td:first-child{box-shadow:inset 3px 0 0 #E5484D}
.warn-dot{width:8px;height:8px;background:#E5484D;box-shadow:0 0 0 3px rgba(229,72,77,.18)}

/* ---------- 公司卡片可折叠服务设置 ---------- */
.comp-more{margin-top:8px;border-top:1px dashed var(--line);padding-top:6px}
.comp-more-head{font-size:11.5px;color:#5F7069;cursor:pointer;user-select:none;display:flex;justify-content:space-between;align-items:center}
.comp-more-head i{font-style:normal;transition:transform .15s}
.comp-more.open .comp-more-head i{transform:rotate(180deg)}
.comp-more-body{display:none;padding-top:8px}
.comp-more.open .comp-more-body{display:block}
.comp-more .fld{margin-bottom:8px}

/* ---------- 流程结束按钮 ---------- */
.flow-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
.flow-acts .btn{padding:7px 4px;font-size:12px}
.flow-acts .btn.ok{background:#E7F6EF;color:#0C6B4F;border-color:#B7E4D0}
.flow-acts .btn.danger{background:#FEF3F2;color:#B42318;border-color:#FBD5D2}
.flow-acts .btn[disabled]{opacity:.45;cursor:not-allowed}
.closed-note{background:#FFF8E6;border:1px solid #F5DFA8;color:#8A5A00;border-radius:8px;padding:7px 10px;font-size:12.5px;margin-bottom:8px}

/* ---------- 收款分配 ---------- */
.alloc-head{display:flex;justify-content:space-between;align-items:center;margin:4px 0 6px}
.alloc-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.alloc-row{display:grid;grid-template-columns:1.3fr .9fr .7fr .7fr .9fr 54px;gap:6px;align-items:center;
  padding:7px 9px;border-bottom:1px solid #F2F6F4;font-size:12.5px;cursor:pointer}
.alloc-row:last-child{border-bottom:none}
.alloc-row:hover{background:#F4FAF7}
.alloc-headrow{background:#F7FBF9;font-size:11.5px;color:#7C8B84;cursor:default;font-weight:600}
.alloc-co{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alloc-in{width:100%;height:28px;border:1px solid var(--line);border-radius:6px;padding:0 6px;font-size:12.5px;text-align:right}
.alloc-sum{display:flex;gap:16px;align-items:center;margin-top:8px;font-size:12.5px;color:#5F7069;flex-wrap:wrap}
.alloc-sum b{color:#152520}
.alloc-sum .mine{margin-left:auto;background:#F1F8F5;border-radius:8px;padding:4px 10px}
.alloc-sum .mine b{color:#0C6B4F;font-size:14px}

/* ---------- 合同修改前后对比 ---------- */
.diff-box{background:#F7FBF9;border:1px solid #E3EFE9;border-radius:8px;padding:6px 10px;margin:6px 0 10px}
.diff-row{display:grid;grid-template-columns:130px 1fr 1fr;gap:8px;font-size:11.5px;padding:3px 0;color:#5F7069}
.diff-row i{font-style:normal;text-decoration:line-through;color:#9AA8A1}
.diff-row b{color:#0C6B4F;font-weight:600}

/* ---------- 未保存确认 ---------- */
.close-ask{position:fixed;inset:0;background:rgba(9,28,23,.45);display:grid;place-items:center;z-index:200}
.close-ask-box{background:#fff;border-radius:14px;padding:20px 22px;width:380px;max-width:92vw;box-shadow:0 24px 48px -20px rgba(9,28,23,.5)}
.ca-title{font-size:15px;font-weight:700;color:#152520}
.ca-sub{font-size:12.5px;color:#5F7069;margin:8px 0 16px}
.ca-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

/* ---------- 工商标准时长 ---------- */
.sla-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;margin-top:6px}
.sla-grid .fld{margin-bottom:0}

/* ---------- 目标完成率 ---------- */
.tgt-wrap{display:flex;align-items:center;gap:8px;min-width:120px}
.tgt-bar{flex:1;height:6px;border-radius:4px;background:#EDF3F0;overflow:hidden}
.tgt-bar > i{display:block;height:100%;border-radius:4px}
.tgt-wrap b{font-size:11.5px;font-variant-numeric:tabular-nums}

/* ---------- 重点客户星标 ---------- */
.star-btn{display:inline-block;width:15px;color:#C6CFCB;cursor:pointer;font-size:13px;margin-right:2px;vertical-align:-1px}
.star-btn:hover{color:#E8A33D}
.star-btn.on{color:#F0A020}

/* ---------- 工单：服务与价格 ---------- */
.svc-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.svc-chip{background:#EAF5F0;color:#0C6B4F;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:600}
.svc-chip.gs{background:#F3EEFB;color:#6B4FA8}
.svc-price{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.svc-price-row{display:flex;justify-content:space-between;padding:6px 10px;font-size:12.5px;border-bottom:1px solid #F2F6F4}
.svc-price-row:last-child{border-bottom:none}
.svc-price-row.total{background:#F7FBF9;font-weight:700}
.svc-price-row.total b{color:#0C6B4F}

/* ---------- 折叠块 ---------- */
details.fold{margin-top:6px}
details.fold>summary{cursor:pointer;user-select:none;font-size:12px;color:#0C6B4F;padding:4px 0;list-style:none}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{content:'▸';display:inline-block;margin-right:5px;transition:transform .15s}
details.fold[open]>summary::before{transform:rotate(90deg)}

/* ---------- 提醒：每条知道了 ---------- */
.rd-ok{background:#F1F8F5;border:1px solid #D8EAE1;color:#0C6B4F;border-radius:6px;padding:2px 7px;font-size:11px;cursor:pointer;flex:none;margin-top:2px}
.rd-ok:hover{background:#E3F2EA}

/* ---------- 余额抵扣 ---------- */
.balance-box{background:#F7FBF9;border:1px dashed #C9E4D7;border-radius:9px;padding:9px 11px;margin:10px 0}
.balance-box b{color:#0C6B4F;font-size:14px}

/* 工单列表：标签不换行，代码列不折行 */
.badge-soft,.pill,.warn-badge,.svc-chip{white-space:nowrap}
td .mono{white-space:nowrap}

/* 登录提醒：重点跟进横幅 */
.follow-banner{background:#FFF9EC;border:1px solid #F3DFAE;border-radius:9px;padding:9px 12px;margin-bottom:12px}
.follow-banner b{display:block;color:#8A5A00;font-size:13px}
.follow-banner span{font-size:11.5px;color:#A07A2E}

/* ---------- 工单完成量统计 ---------- */
.pay-strip{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:8px 14px;border-top:1px solid #F2F6F4;font-size:12.5px;color:#5F7069}
.pay-strip .pay-title{font-weight:700;color:#152520}
.pay-strip b{color:#0C6B4F;font-variant-numeric:tabular-nums}
.pay-strip .pay-total{margin-left:auto;background:#F1F8F5;border-radius:7px;padding:3px 10px}
.pay-strip .pay-total b{font-size:13.5px}
.type-strip{display:flex;gap:8px;flex-wrap:wrap;padding:8px 14px;border-top:1px dashed #E6EFEA}
.type-chip{display:inline-flex;gap:8px;align-items:center;background:#F7FBF9;border:1px solid #E3EFE9;border-radius:7px;padding:3px 9px;font-size:11.5px;color:#0C6B4F;font-weight:600}
.type-chip i{font-style:normal;color:#7C8B84;font-weight:400}

/* ---------- 客户抽屉：关联公司/合同跳转、修改记录 ---------- */
.dw-link{color:#0F6E56;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dw-link:hover{color:#0C6B4F}
.chg-item{padding:7px 0;border-bottom:1px dashed #EDF3EF}
.chg-item:last-child{border-bottom:none}
.chg-head{font-size:11.5px;color:#7C8B84;margin-bottom:3px}
.chg-line{font-size:12.5px;line-height:1.9;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.chg-f{color:#5F7069;min-width:64px;flex:0 0 auto}
.chg-from{color:#9AA8A1;text-decoration:line-through}
.chg-arrow{color:#B9C6BF}
.chg-to{color:#0C6B4F;font-weight:600}

/* ---------- 合同：代账档位 / 纳税人类型 ---------- */
.comp-tax-meta{margin-top:6px;border:1px dashed #E3EFE9;border-radius:8px;padding:7px 9px;background:#FAFDFB}
.tm-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:3px 0}
.tm-line .tiny{flex:0 0 62px}
.chips.sm{gap:5px}
.chip.sm{font-size:11.5px;padding:2px 9px;border-radius:20px}

/* 侧边栏：分组展开/收起工具条 */
.nav-tools{display:flex;gap:6px;align-items:center;padding:2px 18px 8px;font-size:11px;color:#8A9A93}
.nav-tools span{cursor:pointer}
.nav-tools span:hover{color:#0C6B4F}
.nav-tools i{font-style:normal;color:#C6D2CC}

/* ==================== 浅蓝主题 ==================== */
:root{
  --ink:#1B2A3A; --ink-2:#3F5570; --muted:#6A819B; --faint:#9FB2C6;
  --line:#DCE8F5; --line-2:#EDF4FB; --bg:#EDF4FC; --card:#FFFFFF;
  --g900:#1E4E9C; --g800:#2A5FB4; --g700:#2F6FE4; --g600:#2F6FE4;
  --mint:#2F6FE4; --mint-soft:#E8F0FE;
  --blue:#2F6FE4; --blue-soft:#E8F0FE;
  --sh:0 1px 2px rgba(28,60,110,.05), 0 10px 26px -22px rgba(28,60,110,.4);
}
body{background:var(--bg)}
.btn.primary:hover{background:#245BD0;border-color:#245BD0}

/* 侧栏：白底 + 浅蓝选中 */
.sidebar{background:#FFFFFF;color:#42566B;border-right:1px solid var(--line)}
.sidebar .brand-name{color:#1B2A3A}
.sidebar .brand-sub{color:#8AA0B8}
.sidebar .brand-mark{background:#2F6FE4}
.nav-group{color:#93A7BD}
.nav-item{color:#42566B}
.nav-item svg{opacity:.75}
.nav-item:hover{background:#F1F6FD;color:#1B2A3A}
.nav-item.active{background:#E8F0FE;color:#2F6FE4;font-weight:600}
.nav-item.active::before{background:#2F6FE4}
.nav::-webkit-scrollbar-thumb{background:#D7E4F2}
.nav-tools{color:#93A7BD}
.sidebar-foot{border-top:1px solid var(--line)}
.avatar{background:#E8F0FE;color:#2F6FE4}
.userbox-name{color:#1B2A3A}
.userbox-role{color:#8AA0B8}
.logout{border:1px solid var(--line);color:#5B7189}
.logout:hover{background:#F1F6FD;color:#1B2A3A}

/* 顶栏：品牌 + 横向导航 */
.topbar{height:60px;flex:0 0 60px;padding:0 20px;gap:20px;background:#fff;border-bottom:1px solid var(--line)}
.topbar-left{display:flex;align-items:center;gap:26px;min-width:0}
.brand-top{display:flex;align-items:center;gap:9px;white-space:nowrap}
.brand-top .brand-mark{width:30px;height:30px;border-radius:8px;background:#2F6FE4;color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px}
.brand-top .brand-name{font-size:15px;font-weight:700;color:#1B2A3A;letter-spacing:.2px}
.topnav{display:flex;align-items:center;gap:2px}
.topnav a{padding:7px 13px;border-radius:8px;font-size:13.5px;color:#42566B;cursor:pointer;white-space:nowrap;transition:.15s}
.topnav a:hover{background:#F1F6FD;color:#2F6FE4}
.topnav a.active{background:#E8F0FE;color:#2F6FE4;font-weight:600}
@media (max-width:1100px){ .topnav{display:none} }

/* 卡片与页面底色更干净 */
.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh)}
.content{padding:18px 20px 44px}

/* 登录页：浅蓝 */
.login-left{background:linear-gradient(160deg,#EAF3FE 0%,#DDECFC 58%,#D2E4FA 100%);color:#33465C}
.login-brand{color:#1B2A3A}
.login-brand .lm{background:#2F6FE4}
.login-left h1{color:#16324F}
.login-desc{color:#54708C}
.login-points div{color:#54708C;border-left:2px solid #BBD5F5}
.login-points b{color:#2F6FE4}
.login-right{background:#EDF4FC}
.login-card{border-radius:16px;box-shadow:0 24px 60px -40px rgba(20,60,120,.45)}

/* 状态胶囊保持语义色（蓝图里只换主色，不动状态色） */
.p-green{background:#E6F6EF;color:#0C6B4F}
.p-blue{background:#E8F0FE;color:#1F5BB5}
.p-gray{background:#EEF3F8;color:#5C7186}

/* ==================== 2026-11-13 品牌 Logo + 浅蓝导航(#EDF4FC) + 字号放大 ==================== */
:root{
  --bg:#E6F0FB;          /* 页面底色比导航略深，白卡片才立得住 */
  --line:#EDF4FC;        /* 统一边框：浅蓝 */
  --line-2:#F1F7FE;      /* 表格行分隔 */
}
body{background:var(--bg)}

/* Logo 图片（原“昇”字块换成图片） */
img.brand-mark{background:none;padding:0;object-fit:cover;border-radius:9px}
.brand .brand-mark{width:36px;height:36px;flex:0 0 36px;border-radius:10px}
.brand-top .brand-mark{width:30px;height:30px;border-radius:8px}
.login-brand .lm-img{width:32px;height:32px;border-radius:9px;vertical-align:middle;margin-right:2px}

/* 顶部导航：浅蓝底 + 字号 +2 */
.topbar{background:#EDF4FC;border-bottom:1px solid #EDF4FC;height:62px;flex:0 0 62px}
.topnav a{font-size:15.5px;padding:8px 15px;color:#33506E}
.topnav a:hover{background:#E1EDFB;color:#12283F}
.topnav a.active{background:#DCEAFA;color:#1F5BB5}
.brand-top .brand-name{font-size:17px}

/* 左侧导航：同样浅蓝 + 字号 +2 */
.sidebar{background:#EDF4FC;border-right:1px solid #EDF4FC}
.sidebar .brand-name{font-size:16px;color:#12283F}
.sidebar .brand-sub{font-size:12px;color:#7B93AC}
.nav-group{font-size:12.5px;color:#6E86A0}
.nav-item{font-size:15.5px;color:#33506E;padding:10px 11px;border-radius:10px}
.nav-item svg{width:18px;height:18px;flex:0 0 18px}
.nav-item:hover{background:#E1EDFB;color:#12283F}
.nav-item.active{background:#DCEAFA;color:#1F5BB5;font-weight:600}
.nav-item.active::before{background:#2F6FE4}
.nav-tools{font-size:12px;color:#6E86A0}
.nav-tools span:hover{color:#1F5BB5}
.sidebar-foot{border-top:1px solid #E1EDFB}
.logout{border-color:#CFE1F7;color:#5B7189;font-size:13.5px}
.logout:hover{background:#E1EDFB;color:#12283F}

/* 边框统一浅蓝；输入框略深一档，保证看得见框 */
.card{border-color:#EDF4FC}
.fld input,.fld select,.fld textarea,.filter-input,.select{border-color:#E1EDFB}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:#8FBBF3;box-shadow:0 0 0 3px rgba(47,111,228,.10)}
.search{border-color:#EDF4FC;background:#F4F9FE}
tbody td{border-bottom:1px solid #F1F7FE}
tbody tr:hover{background:#F5FAFF}
.topnav a,topnav a{letter-spacing:.1px}

/* 登录页：扫码登录入口 */
.login-wrap{background:#E9F1FB}
.login-left{background:linear-gradient(160deg,#EAF3FE 0%,#E4EFFC 66%,#E9F1FB 100%);color:#33465C}
.login-brand{color:#15304C;font-size:16px}
.login-right{background:transparent}

/* Logo 尺寸微调（铺满裁切后在 38/32/36px 下更清楚） */
.brand .brand-mark{width:38px;height:38px;flex:0 0 38px;border-radius:10px;box-shadow:0 2px 6px -3px rgba(28,60,110,.35)}
.brand-top .brand-mark{width:32px;height:32px;border-radius:9px;box-shadow:0 2px 6px -3px rgba(28,60,110,.3)}
.login-brand .lm-img{width:36px;height:36px;border-radius:10px;box-shadow:0 3px 10px -5px rgba(28,60,110,.4)}
/* 顶栏右侧与横向菜单之间留出呼吸位，避免贴边 */
.topbar{gap:26px}
.topbar-right{margin-left:22px}
@media (max-width:1320px){ .topbar-right{margin-left:12px} }
/* 修正：右侧仍靠右，只加左侧留白 */
.topbar-right{margin-left:auto;padding-left:22px}
@media (max-width:1320px){ .topbar-right{padding-left:10px} }

/* 表格：编号与日期不换行，避免两行折断 */
tbody td.mono{white-space:nowrap}
td.cell-name{white-space:nowrap}

/* 表头排序 */
th.th-sort{cursor:pointer;user-select:none;white-space:nowrap}
th.th-sort:hover{color:#0F6E56}
th.th-sort .sort-ar{font-size:11px;color:#9AACAA;margin-left:3px;font-weight:400}
th.th-sort.on{color:#0F6E56}
th.th-sort.on .sort-ar{color:#0F6E56}


/* 工作台指标卡可点击 */
.kpi-link{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}
.kpi-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px -12px rgba(28,60,110,.35);border-color:#CFE2F8}
.kpi-link:active{transform:translateY(0)}
