/* 20260928-hr-roster-consistency-release-597 */
.restructured-dispatch-form .henda-dispatch-stock{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:6px 12px;border:1px solid #b8cfc8;border-radius:8px;background:#f0f7f4;min-width:0}
.restructured-dispatch-form .henda-dispatch-stock output{font-size:18px;font-weight:700;color:#174e43;overflow-wrap:anywhere}
.restructured-dispatch-form .henda-dispatch-stock button{flex:0 0 auto}
:root {
  color-scheme: light;
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  --nav: #172838;
  --nav-deep: #10202f;
  --nav-active: #2f73df;
  --page: #f4f7fa;
  --surface: #ffffff;
  --surface-soft: #f9fbfd;
  --line: #dfe6ee;
  --line-strong: #cfd9e5;
  --text: #17212f;
  --muted: #6d7a8b;
  --blue: #2f73df;
  --green: #1e9d68;
  --amber: #f2a13b;
  --red: #d84b4b;
  --violet: #7a8be8;
  --shadow: 0 10px 28px rgba(31, 48, 66, 0.1);
}

/* EDTA络合加药计算：电子表单式工艺计算工作台 */
.edta-calculation-modal{width:min(1480px,calc(100vw - 28px));max-height:calc(100vh - 28px);background:#f4f7f5}
.edta-modal-scroll{overflow:auto;padding:0 22px 24px;max-height:calc(100vh - 108px)}
.edta-calculation-form{color:#173c30}
.edta-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin:0 -22px 22px;padding:28px 30px;background:#174f39;color:#fff;border-bottom:4px solid #d9aa3e}
.edta-hero small{font-size:11px;letter-spacing:.16em;color:#bcd5c9}
.edta-hero h2{margin:6px 0 8px;font-family:"Microsoft YaHei",sans-serif;font-size:30px;line-height:1.18;color:#fff}
.edta-hero p{max-width:760px;margin:0;color:#dcebe4;line-height:1.7}
.edta-hero-note{display:flex;align-items:center;gap:11px;min-width:280px;padding:13px 16px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08)}
.edta-hero-note span{display:grid;gap:3px}.edta-hero-note strong{font-size:14px}.edta-hero-note small{letter-spacing:0;color:#dcebe4}
.edta-save-success{display:flex;align-items:center;gap:8px;margin:-8px 0 16px;padding:10px 13px;background:#e8f3ed;border-left:4px solid #1f6a4a;color:#174f39;font-weight:700}
.edta-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.edta-form-layout>main{display:grid;gap:14px}
.edta-form-section{padding:18px;background:#fff;border:1px solid #d4e1da;box-shadow:0 7px 20px rgba(31,72,57,.055)}
.edta-form-section>header{display:flex;align-items:center;gap:11px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #dbe6e0}
.edta-form-section>header>span{display:grid;place-items:center;width:30px;height:30px;background:#174f39;color:#fff;font-size:12px;font-weight:800}
.edta-form-section>header>div{display:grid;gap:2px}.edta-form-section>header strong{font-size:16px}.edta-form-section>header small{color:#6a7b73}
.edta-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.edta-field-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.edta-field-grid .span-2{grid-column:span 2}
.edta-form-section label{display:grid;gap:7px}.edta-form-section label>span,.edta-ion-card label>span{font-size:12px;font-weight:700;color:#52685e}
.edta-form-section input,.edta-form-section textarea,.edta-ion-card input{width:100%;min-height:42px;padding:9px 11px;border:1px solid #d6b45a;background:#fff7df;color:#173c30;font:inherit;outline:none;border-radius:2px;box-sizing:border-box}
.edta-form-section textarea{resize:vertical;line-height:1.6}.edta-form-section input:focus,.edta-form-section textarea:focus,.edta-ion-card input:focus{border-color:#1f6a4a;box-shadow:0 0 0 3px rgba(31,106,74,.12)}
.edta-form-section input[readonly],.edta-form-section textarea[readonly],.edta-ion-card input[readonly]{background:#f2f5f3;border-color:#d5ddd9;color:#64756d}
.edta-ion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.edta-ion-card{padding:13px;background:#f8fbf9;border:1px solid #d4e1da}.edta-ion-card>header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:11px}.edta-ion-card>header span{font-size:17px;font-weight:850;color:#174f39}.edta-ion-card>header small{color:#73837b}
.edta-ion-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.edta-ion-card>footer strong{font-size:11px;color:#1f6a4a;white-space:nowrap}
.edta-switch{display:flex!important;align-items:center;gap:6px;color:#52685e}.edta-switch input{width:16px!important;height:16px;min-height:0;padding:0;accent-color:#1f6a4a}.edta-switch span{font-size:11px!important;font-weight:600!important}
.edta-result-sticky{position:sticky;top:0;padding:20px;background:#173c30;color:#fff;border-top:4px solid #d9aa3e;box-shadow:0 14px 30px rgba(19,57,44,.18)}
.edta-result-sticky>header{display:grid;gap:3px;margin-bottom:18px}.edta-result-sticky>header small{color:#b9d1c6;letter-spacing:.12em}.edta-result-sticky>header strong{font-size:18px}
.edta-dose-result{padding:20px 14px;text-align:center;background:#fff;color:#174f39}.edta-dose-result>strong{display:block;font-size:46px;line-height:1;font-variant-numeric:tabular-nums}.edta-dose-result>span{display:block;margin:6px 0 11px;font-weight:800}.edta-dose-result>small{display:inline-block;padding:4px 9px;background:#e8f3ed;color:#315d4c}
.edta-result-list{display:grid;margin:16px 0;border-top:1px solid rgba(255,255,255,.16)}.edta-result-list>div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.13)}.edta-result-list dt{color:#b9d1c6;font-size:12px}.edta-result-list dd{margin:0;text-align:right;font-weight:750;font-variant-numeric:tabular-nums}
.edta-risk-box{padding:12px;text-align:center;font-weight:850;border:1px solid transparent}.edta-risk-box[data-tone="safe"]{background:#dff2e6;color:#175936;border-color:#80bd96}.edta-risk-box[data-tone="risk"]{background:#fce8e6;color:#992f24;border-color:#df9b93}
.edta-model-limit{margin:13px 0 0;color:#c7d9d0;font-size:11px;line-height:1.65}.edta-feedback{margin-top:12px;padding:10px;background:#fce8e6;color:#9c2f24;font-weight:700}
.edta-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:16px}.edta-actions button{justify-content:center}.edta-readonly{display:flex;align-items:center;gap:7px;margin-top:14px;padding:10px;background:rgba(255,255,255,.08);color:#dcebe4;font-size:12px}
.edta-history{margin-top:20px;padding:18px;background:#fff;border:1px solid #d4e1da}.edta-history>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.edta-history>header>div{display:grid;gap:2px}.edta-history>header strong{font-size:17px;color:#173c30}.edta-history>header small{color:#6a7b73}
.edta-history-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.edta-history-card{position:relative;padding:13px 13px 42px;background:#f8fbf9;border:1px solid #d4e1da}.edta-history-card>div{display:grid;gap:3px}.edta-history-card>div strong{color:#174f39}.edta-history-card>div span{font-size:11px;color:#718078}.edta-history-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0 0}.edta-history-card dl div{display:grid;gap:3px}.edta-history-card dt{font-size:10px;color:#78867f}.edta-history-card dd{margin:0;font-size:11px;font-weight:750;color:#294e40}.edta-history-card>em{position:absolute;left:13px;bottom:12px;padding:3px 8px;font-style:normal;font-size:11px;font-weight:800}.edta-history-card>em[data-tone="safe"]{background:#e1f2e7;color:#176039}.edta-history-card>em[data-tone="risk"]{background:#fce8e6;color:#9b3126}.edta-empty{grid-column:1/-1;padding:30px;text-align:center;background:#f8fbf9;color:#6d7c75;border:1px dashed #b9c9c1}
@media (max-width:1180px){.edta-form-layout{grid-template-columns:1fr}.edta-result-sticky{position:static}.edta-result-list{grid-template-columns:repeat(2,1fr);column-gap:18px}.edta-ion-grid{grid-template-columns:repeat(3,1fr)}.edta-history-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.edta-modal-scroll{padding:0 12px 16px}.edta-hero{margin:0 -12px 16px;padding:20px 16px;display:grid}.edta-hero h2{font-size:24px}.edta-hero-note{min-width:0}.edta-field-grid,.edta-field-grid.compact,.edta-ion-grid,.edta-history-list{grid-template-columns:1fr 1fr}.edta-field-grid .span-2{grid-column:1/-1}.edta-result-list{grid-template-columns:1fr}.edta-history-card dl{grid-template-columns:1fr}.edta-actions{grid-template-columns:1fr}}
@media (max-width:500px){.edta-field-grid,.edta-field-grid.compact,.edta-ion-grid,.edta-history-list{grid-template-columns:1fr}.edta-form-section{padding:14px}.edta-dose-result>strong{font-size:38px}}

/* 偏铝酸钠除杂：沿用生产工艺工作台结构，突出母液检测、投加和复检。 */
.sodium-aluminate-modal{--aluminate-accent:#0d6b70;background:#f2f7f6}
.sodium-aluminate-modal .aluminate-hero{background:linear-gradient(125deg,#0e4d50 0%,#0d6b70 58%,#288b78 100%);border-bottom-color:#d7ad52}
.sodium-aluminate-modal .edta-form-section>header>span{background:var(--aluminate-accent)}
.sodium-aluminate-modal .edta-form-section select{width:100%;min-height:42px;padding:9px 11px;border:1px solid #d6b45a;background:#fff7df;color:#173c30;font:inherit;outline:none;border-radius:2px;box-sizing:border-box}
.sodium-aluminate-modal .edta-form-section select:focus{border-color:var(--aluminate-accent);box-shadow:0 0 0 3px rgba(13,107,112,.12)}
.sodium-aluminate-modal .edta-form-section select:disabled{background:#f2f5f3;border-color:#d5ddd9;color:#64756d}
.sodium-aluminate-modal .edta-result-sticky{background:#123f42;border-top-color:#d7ad52}
.aluminate-editing{margin:-8px 0 16px;padding:9px 12px;border-left:4px solid var(--aluminate-accent);background:#e4f2f0;color:#0d5559;font-weight:800}
.aluminate-stage{display:grid;gap:8px;margin:14px 0;padding:13px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07)}
.aluminate-stage>strong{color:#fff;font-size:13px}.aluminate-stage>span{display:flex;justify-content:space-between;gap:10px;color:#c8ddd9;font-size:12px}.aluminate-stage b{color:#fff;font-variant-numeric:tabular-nums}
.aluminate-verification{grid-template-columns:1fr}.aluminate-warning{padding:10px;border-left:3px solid #d7ad52;background:rgba(255,255,255,.06)}
.aluminate-actions{grid-template-columns:.8fr .8fr 1.2fr}
.aluminate-history-card{padding-bottom:54px}.aluminate-history-actions{position:absolute;left:13px;right:13px;bottom:10px;display:flex!important;grid-template-columns:none!important;flex-direction:row!important;gap:6px!important}
.aluminate-history-actions button{flex:1;min-width:0;justify-content:center;padding-inline:7px}
@media (max-width:760px){.aluminate-actions{grid-template-columns:1fr}.aluminate-history-actions{position:static;margin-top:12px}.aluminate-history-card{padding-bottom:13px}}

/* 20260818-workflow-form-decimal-release-322：加班时间、权限映射、编辑保护与金额两位小数统一。 */
/* 20260818-inventory-opening-edit-release-323：期初库存成功卡增加直接修改入口。 */
/* 20260817-contract-review-tier-approval-release-315：合同评审金额权限中心与备用PDF区域。 */
.contract-review-authority-center {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.contract-review-authority-hero {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 24px 28px;
  color: #183d35;
  border: 1px solid rgba(74, 128, 104, .24);
  border-radius: 22px;
  background: linear-gradient(135deg, #fffdf8 0%, #edf7f0 58%, #e5f2ea 100%);
  box-shadow: 0 16px 38px rgba(38, 77, 62, .11);
}

.contract-review-authority-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  color: #fff;
  border-radius: 18px;
  background: linear-gradient(145deg, #2e7d63, #4b9a71);
  box-shadow: 0 10px 24px rgba(40, 113, 84, .24);
}

.contract-review-authority-hero span { color: #6d7d75; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.contract-review-authority-hero h2 { margin: 4px 0 6px; font-size: 23px; }
.contract-review-authority-hero p { margin: 0; color: #53675e; line-height: 1.75; }
.contract-review-authority-hero > strong { min-width: 116px; color: #26654f; font-size: 28px; text-align: center; }
.contract-review-authority-hero > strong small { display: block; margin-top: 4px; color: #6f8178; font-size: 12px; font-weight: 600; }

.contract-review-route-preview {
  display: grid;
  gap: 14px;
  padding: 20px 24px;
  border: 1px solid #e5dfd2;
  border-radius: 18px;
  background: #fffdfa;
}
.contract-review-route-preview > div:first-child { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.contract-review-route-preview > div:first-child small { color: #738078; }
.contract-review-tier-list { display: flex; gap: 10px; align-items: stretch; overflow-x: auto; padding-bottom: 4px; }
.contract-review-tier-list > span { display: flex; gap: 10px; align-items: center; min-width: 190px; padding: 12px 14px; border: 1px solid #d8e7dc; border-radius: 14px; background: #f4faf6; }
.contract-review-tier-list b { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; color: #fff; border-radius: 50%; background: #4b8a68; }
.contract-review-tier-list i { display: grid; gap: 3px; color: #244d3d; font-style: normal; font-weight: 800; }
.contract-review-tier-list small { color: #6c7d74; font-weight: 500; }
.contract-review-tier-list em { color: #a45c39; font-style: normal; }

.contract-review-authority-form { overflow: hidden; }
.contract-review-authority-table td > strong,
.contract-review-authority-table td > small { display: block; }
.contract-review-authority-table td > small { margin-top: 3px; color: #7b8580; }
.contract-authority-check { display: inline-flex; gap: 8px; align-items: center; white-space: nowrap; }
.contract-authority-check input { width: 17px; height: 17px; accent-color: #347b5d; }
.contract-authority-amount { display: flex; align-items: center; min-width: 190px; border: 1px solid #d8ded9; border-radius: 10px; background: #fff; }
.contract-authority-amount span { padding-left: 11px; color: #597067; font-weight: 800; }
.contract-authority-amount input { min-width: 0; width: 100%; border: 0 !important; box-shadow: none !important; }
.contract-authority-amount input:disabled { color: #87948e; background: #f2f4f2; }
.contract-authority-status { display: inline-flex; padding: 5px 10px; color: #7a807d; border-radius: 999px; background: #f0f2f1; white-space: nowrap; }
.contract-authority-status.active { color: #246348; background: #e6f5eb; }
.contract-review-authority-footer { display: flex; gap: 18px; align-items: center; justify-content: space-between; padding: 16px 22px; border-top: 1px solid #ece8df; background: #fffdf9; }
.contract-review-authority-footer p { display: flex; gap: 7px; align-items: center; margin: 0; color: #607068; }

.contract-review-backup-upload { border-color: #d7e5dc; background: linear-gradient(180deg, #fbfefc, #f3f8f5); }
.contract-review-backup-upload .office-upload-actions { grid-template-columns: minmax(260px, 520px); justify-content: center; }
.contract-review-pdf-drop { min-height: 112px; border-color: #b9d5c3; background: #fff; }

@media (max-width: 820px) {
  .contract-review-authority-hero { grid-template-columns: 48px minmax(0,1fr); padding: 18px; }
  .contract-review-authority-hero > strong { grid-column: 1 / -1; text-align: left; }
  .contract-review-authority-footer { align-items: stretch; flex-direction: column; }
  .contract-review-authority-footer .primary-button { width: 100%; }
}

/* 20260817-contract-review-tier-approval-release-315：合同评审金额分级权限、备用PDF与审批部门纠错。 */

@media(max-width:760px){.inventory-scan-footnote{align-items:stretch;flex-direction:column}.inventory-scan-footnote .outline-button{justify-content:center}}

/* 企业微信主通道 + 小程序辅助通道消息中心 */
.message-push-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.message-push-overview article{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid #dfe8e2;border-radius:16px;background:linear-gradient(145deg,#fffdf8,#f4f8f4);box-shadow:0 8px 22px rgba(42,62,51,.06)}
.message-push-overview article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#fff;background:#39765b}.message-push-overview article.warning>span{background:#b86b35}
.message-push-overview small,.message-push-overview strong{display:block}.message-push-overview small{color:#6d7c74;font-size:12px}.message-push-overview strong{font-size:24px;color:#20372d;line-height:1.15}
.message-push-settings{padding:20px;border:1px solid #dce7e0;border-radius:18px;background:#fffdfa;box-shadow:0 12px 30px rgba(38,62,50,.07)}
.message-push-settings>header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.message-push-settings h2{margin:0;color:#20372d}.message-push-settings header p{margin:5px 0 0;color:#728078;font-size:13px}
.message-channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.message-channel-card{padding:18px;border:1px solid #d9e6df;border-radius:16px;background:#f9fbf8}.message-channel-card.wecom{background:linear-gradient(145deg,#f3fbf6,#fbfdf8)}.message-channel-card.mini{background:linear-gradient(145deg,#f8f8ff,#fcfbf6)}
.message-channel-title{display:flex;align-items:center;gap:11px}.message-channel-title>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#327052;color:#fff}.message-channel-card.mini .message-channel-title>span{background:#566b9b}.message-channel-title>div{flex:1}.message-channel-title strong,.message-channel-title small{display:block}.message-channel-title small{margin-top:3px;color:#6c7b73;font-size:12px}
.message-master-switch input{position:absolute;opacity:0}.message-master-switch i{display:block;width:45px;height:25px;border-radius:20px;background:#aeb9b3;position:relative;transition:.2s}.message-master-switch i:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0002;transition:.2s}.message-master-switch input:checked+i{background:#39765b}.message-master-switch input:checked+i:after{transform:translateX(20px)}
.message-category-switches{display:flex;gap:10px;margin:16px 0}.message-category-switches label{display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:10px;background:#fff;border:1px solid #dce6e0;font-size:13px}.message-category-switches input{accent-color:#39765b}
.message-config-list{display:flex;flex-wrap:wrap;gap:7px}.message-config-status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:9px;font-size:11px}.message-config-status.ready{color:#27684b;background:#e7f5ec}.message-config-status.missing{color:#9a5832;background:#fff0e3}
.message-security-note{margin:13px 0 0;padding-top:11px;border-top:1px dashed #d6e1da;color:#6d7972;font-size:12px;line-height:1.55}.message-binding-summary{display:flex;gap:12px;flex-wrap:wrap}.message-binding-summary span{padding:7px 10px;border-radius:9px;background:#fff;color:#596860;font-size:12px}.message-binding-summary strong{color:#2e6650}
.message-retry-config{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding:13px 15px;border-radius:13px;background:#f4f6f2}.message-retry-config label{display:flex;align-items:center;gap:7px;font-size:13px}.message-retry-config input[type=number]{width:68px;padding:6px 8px;border:1px solid #cbd8d0;border-radius:8px}.message-retry-config input[type=checkbox]{accent-color:#39765b}.message-retry-config em,.message-retry-config small{color:#6c7972;font-style:normal;font-size:12px}
.attendance-watch-panel{padding:18px;border:1px solid #d7e2dc;border-radius:17px;background:linear-gradient(145deg,#fffdf9,#f2f8f4);box-shadow:0 10px 24px rgba(43,68,55,.06)}
.attendance-watch-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.attendance-watch-panel>header h2{display:flex;align-items:center;gap:7px;margin:0;color:#29483a;font-size:18px}
.attendance-watch-panel>header p{max-width:980px;margin:5px 0 0;color:#6d7a73;font-size:12px;line-height:1.55}
.attendance-watch-panel>header>span{padding:5px 9px;border-radius:999px;background:#e2f0e7;color:#32694f;font-size:11px;white-space:nowrap}
.attendance-watch-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;margin-top:15px;padding:13px;border-radius:13px;background:#edf4ef}
.attendance-watch-picker{min-width:0;margin:0;padding:0;overflow:hidden;border:1px solid #cfddd4;border-radius:13px;background:rgba(255,255,255,.9)}
.attendance-watch-picker>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 14px;color:#29483a;background:linear-gradient(135deg,#f7fbf8,#edf5f0);cursor:pointer;list-style:none}.attendance-watch-picker>summary::-webkit-details-marker{display:none}.attendance-watch-picker>summary>span:first-child strong,.attendance-watch-picker>summary>span:first-child small{display:block}.attendance-watch-picker>summary>span:first-child strong{font-size:14px}.attendance-watch-picker>summary>span:first-child small{margin-top:3px;color:#7b887f;font-size:11px;font-weight:400}.attendance-watch-picker>summary>[data-attendance-watch-count]{color:#3b7056;font-size:11px;font-weight:700;white-space:nowrap}.attendance-watch-picker>summary>b{padding:5px 8px;border:1px solid #c8d8cf;border-radius:8px;color:#547064;background:#fff;font-size:11px}.attendance-watch-picker[open]>summary>b{color:#765f31;background:#fff8e8}.attendance-watch-picker-body{padding:12px;border-top:1px solid #dce6df}
.attendance-watch-picker-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;align-items:center;gap:7px;margin-bottom:9px}
.attendance-watch-picker-toolbar>label{display:flex;align-items:center;gap:6px;height:36px;padding:0 9px;border:1px solid #c6d7cd;border-radius:9px;background:#fff;color:#6d7d74}
.attendance-watch-picker-toolbar input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#294238}
.attendance-watch-picker-toolbar>span{color:#3b7056;font-size:11px;font-weight:700;white-space:nowrap}
.attendance-watch-picker-toolbar button{height:34px;padding:0 9px;font-size:11px;white-space:nowrap}
.attendance-watch-all-option{display:flex!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin-bottom:8px;padding:9px 10px;border:1px solid #c7dacd;border-radius:10px;background:#f3faf5;cursor:pointer}
.attendance-watch-all-option>span{display:flex!important;align-items:center;gap:7px;color:#376c51}.attendance-watch-all-option small{margin-left:auto;color:#77857c;font-size:11px}
.attendance-watch-picker input[type=checkbox]{width:16px;height:16px;accent-color:#39765b}
.attendance-watch-departments{display:grid;gap:7px;max-height:310px;overflow:auto;padding-right:3px}
.attendance-watch-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #e0e8e3}.attendance-watch-picker-footer>span{color:#76847c;font-size:11px}.attendance-watch-picker-footer button{min-width:118px;height:36px;padding:0 14px;font-size:12px}
.attendance-watch-departments>section{overflow:hidden;border:1px solid #e0e7e2;border-radius:10px;background:#fff}
.attendance-watch-departments>section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;background:#f4f6f2}
.attendance-watch-departments>section>header>div{display:flex;align-items:baseline;gap:6px}.attendance-watch-departments>section>header strong{color:#405449;font-size:12px}.attendance-watch-departments>section>header small{color:#8a948e;font-size:10px}
.attendance-watch-departments>section>header button{border:0;background:transparent;color:#347055;font-size:11px;font-weight:700;cursor:pointer}
.attendance-watch-departments>section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:4px}
.attendance-watch-departments>section>div>label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;padding:7px;border-radius:8px;cursor:pointer}
.attendance-watch-departments>section>div>label:hover{background:#f3f8f5}.attendance-watch-departments label>span{min-width:0}.attendance-watch-departments label strong,.attendance-watch-departments label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-watch-departments label strong{color:#384a40;font-size:12px}.attendance-watch-departments label small{margin-top:2px;color:#7d8982;font-size:10px}
.attendance-watch-form>footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.attendance-watch-form>footer>span{display:flex;align-items:center;gap:5px;color:#6a786f;font-size:11px}.attendance-watch-form>footer button{height:40px;white-space:nowrap}
.attendance-watch-rules{display:grid;gap:7px;margin-top:11px}.attendance-watch-rules article{display:grid;grid-template-columns:minmax(210px,.7fr) auto minmax(0,1.5fr);align-items:center;gap:11px;padding:10px 12px;border:1px solid #e1e8e3;border-radius:11px;background:#fff}.attendance-watch-rules strong,.attendance-watch-rules small{display:block}.attendance-watch-rules small{margin-top:2px;color:#7b867f;font-size:11px}.attendance-watch-rules>article>span{color:#7c9a89}
.attendance-watch-rule-recipient{display:flex;align-items:center;gap:9px}.attendance-watch-rule-recipient>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e6f2ea;color:#357054}
.attendance-watch-rule-targets{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.attendance-watch-rule-targets>span{display:flex;align-items:center;gap:6px;padding:5px 6px 5px 9px;border:1px solid #dbe5de;border-radius:9px;background:#f7faf8}.attendance-watch-rule-targets>span>span{min-width:0}.attendance-watch-rule-targets strong{font-size:11px}.attendance-watch-rule-targets small{font-size:9px}.attendance-watch-rule-targets .danger{display:grid;place-items:center;width:24px;height:24px;padding:0;color:#a94f42;background:#fff4f1;border-color:#efd4ce}
@media(max-width:1180px){.attendance-watch-form{grid-template-columns:1fr}.attendance-watch-form>footer{grid-column:1}.attendance-watch-picker-toolbar{grid-template-columns:minmax(160px,1fr) auto}.attendance-watch-picker-toolbar button{grid-row:2}.attendance-watch-picker-toolbar button:last-child{grid-column:2}}
@media(max-width:680px){.attendance-watch-panel{padding:12px}.attendance-watch-panel>header{flex-direction:column}.attendance-watch-picker>summary{grid-template-columns:minmax(0,1fr) auto}.attendance-watch-picker>summary>b{grid-column:2}.attendance-watch-departments>section>div{grid-template-columns:1fr}.attendance-watch-picker-footer{align-items:stretch;flex-direction:column}.attendance-watch-picker-footer button{width:100%}.attendance-watch-form>footer{align-items:stretch;flex-direction:column}.attendance-watch-rules article{grid-template-columns:1fr}.attendance-watch-rules>article>span{display:none}}
.message-push-test-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border:1px solid #cfe0d6;border-radius:15px;background:linear-gradient(135deg,#f3faf6,#fffaf0)}.message-push-test-panel>div,.message-push-test-panel form{display:flex;align-items:center;gap:11px}.message-push-test-panel>div>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#347458;color:#fff}.message-push-test-panel strong,.message-push-test-panel small{display:block}.message-push-test-panel small{margin-top:3px;color:#6d7b73;font-size:12px}.message-push-test-panel form{min-width:min(100%,520px)}.message-push-test-panel select{min-width:0;flex:1;height:40px;padding:0 10px;border:1px solid #c5d5cc;border-radius:9px;background:#fff;color:#30483c}.message-push-test-panel button{white-space:nowrap}
.message-push-log-panel{overflow:hidden}.message-log-filters{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) minmax(150px,1.2fr) repeat(2,minmax(130px,1fr)) auto;gap:8px;padding:0 18px 15px}.message-log-filters input,.message-log-filters select{min-width:0;padding:9px 10px;border:1px solid #d4dfd8;border-radius:9px;background:#fff;color:#334b3f}.message-push-log-table td strong,.message-push-log-table td small{display:block}.message-push-log-table td small{max-width:220px;margin-top:3px;color:#79847e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-log-footer{padding:12px 18px;color:#6f7c75;font-size:12px;border-top:1px solid #edf1ee}
@media(max-width:1100px){.message-push-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.message-channel-grid{grid-template-columns:1fr}.attendance-watch-form{grid-template-columns:1fr 1fr}.attendance-watch-form button{grid-column:1/-1}.message-push-test-panel{align-items:stretch;flex-direction:column}.message-push-test-panel form{width:100%}.message-log-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.message-push-overview{grid-template-columns:1fr}.message-push-settings>header{align-items:flex-start;flex-direction:column}.attendance-watch-form{grid-template-columns:1fr}.attendance-watch-form button{grid-column:auto}.attendance-watch-rules article{grid-template-columns:1fr auto}.attendance-watch-rules article>span{display:none}.attendance-watch-rules article>button{grid-column:2;grid-row:1/span 2}.message-push-test-panel form{align-items:stretch;flex-direction:column}.message-log-filters{grid-template-columns:1fr 1fr}.message-log-filters .primary-button{grid-column:span 2}}
.notification-status-trigger.is-bound{color:#2f7657;background:#e8f5ed}.notification-status-modal{max-width:620px}.notification-status-body{display:grid;gap:12px;padding:20px}.notification-person{display:flex;align-items:center;gap:11px;padding:13px 15px;border-radius:13px;background:#f2f6f2}.notification-person>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#39765b;color:#fff}.notification-person small,.notification-person strong{display:block}.notification-person small{color:#718078;font-size:11px}.notification-status-card{display:flex;align-items:flex-start;gap:13px;padding:16px;border-radius:14px;border:1px solid #e1e8e3}.notification-status-card>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px}.notification-status-card.ready>span{color:#fff;background:#39765b}.notification-status-card.pending>span{color:#96613f;background:#fff0e2}.notification-status-card strong,.notification-status-card p,.notification-status-card small{display:block;margin:0}.notification-status-card p{margin:4px 0;color:#304d3e;font-weight:700}.notification-status-card small{color:#718078}.notification-status-help{margin:0;padding:12px 14px;border-radius:11px;color:#78543d;background:#fff4e8;font-size:12px;line-height:1.55}

/* Approval workflow diagnostic center */
.workflow-diagnostic-center{display:grid;gap:16px;min-width:0}.workflow-diagnostic-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;padding:22px 24px;border:1px solid #ddd4c4;border-radius:18px;background:linear-gradient(135deg,#fffdf8 0%,#f6f0e5 100%);box-shadow:0 12px 28px rgba(70,55,34,.08)}.workflow-diagnostic-hero.error{border-color:#e6c2b9}.workflow-diagnostic-hero.warning{border-color:#e6d3a7}.workflow-diagnostic-hero.passed{border-color:#bdd8c5}.workflow-diagnostic-score{width:106px;height:106px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#fff;border:8px solid #2f7651;box-shadow:0 0 0 1px rgba(48,74,56,.12),inset 0 0 0 1px rgba(48,74,56,.08)}.workflow-diagnostic-hero.error .workflow-diagnostic-score{border-color:#b85645}.workflow-diagnostic-hero.warning .workflow-diagnostic-score{border-color:#b6812d}.workflow-diagnostic-score strong{font-size:34px;line-height:1;color:#27372e}.workflow-diagnostic-score span{font-size:12px;color:#6e746f;margin-top:6px}.workflow-diagnostic-hero-copy>span{font-size:11px;letter-spacing:.12em;color:#8a7657}.workflow-diagnostic-hero-copy h2{margin:4px 0 6px;font-size:23px;color:#2d372f}.workflow-diagnostic-hero-copy p{margin:0 0 9px;color:#63685f;line-height:1.65}.workflow-diagnostic-hero-copy small{display:flex;align-items:center;gap:5px;color:#867b69}.workflow-diagnostic-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.workflow-diagnostic-actions button:disabled{opacity:.48;cursor:not-allowed}.workflow-diagnostic-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.workflow-diagnostic-metrics article{display:flex;align-items:center;gap:11px;min-width:0;padding:14px 15px;border:1px solid #e3ded5;border-radius:13px;background:#fff}.workflow-diagnostic-metrics article>svg{flex:0 0 auto;color:#7e705d}.workflow-diagnostic-metrics article div{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px;min-width:0;width:100%}.workflow-diagnostic-metrics span{font-size:12px;color:#6d716c}.workflow-diagnostic-metrics strong{font-size:22px;color:#303a33}.workflow-diagnostic-metrics small{grid-column:1/-1;font-size:11px;color:#999084;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-diagnostic-rule-panel{border:1px solid #e2ddd3;border-radius:13px;background:#fff}.workflow-diagnostic-rule-panel summary{display:flex;align-items:center;gap:8px;padding:13px 16px;font-weight:700;color:#485048;cursor:pointer;list-style:none}.workflow-diagnostic-rule-panel summary span{margin-left:auto;padding:2px 8px;border-radius:999px;background:#eee8de;color:#756b5d;font-size:11px}.workflow-diagnostic-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 14px}.workflow-diagnostic-rule-grid article{display:flex;gap:10px;padding:10px 12px;border-radius:10px;background:#f8f5ef}.workflow-diagnostic-rule-grid article>b{color:#a39070;font-size:12px}.workflow-diagnostic-rule-grid strong{font-size:13px;color:#3c473f}.workflow-diagnostic-rule-grid p{margin:3px 0 0;color:#72766f;font-size:12px;line-height:1.5}.workflow-diagnostic-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.workflow-diagnostic-filters{display:flex;gap:6px;flex-wrap:wrap}.workflow-diagnostic-filters button{display:flex;align-items:center;gap:7px;border:1px solid #ded8cd;background:#fff;color:#62665f;border-radius:999px;padding:7px 12px;cursor:pointer}.workflow-diagnostic-filters button span{min-width:19px;padding:1px 5px;border-radius:999px;background:#eee9e0;font-size:11px}.workflow-diagnostic-filters button.active{background:#3f654e;border-color:#3f654e;color:#fff}.workflow-diagnostic-filters button.active span{background:rgba(255,255,255,.18)}.workflow-diagnostic-search{display:flex;align-items:center;gap:7px;width:min(330px,100%);padding:0 11px;border:1px solid #ddd7cc;border-radius:10px;background:#fff;color:#92897c}.workflow-diagnostic-search:focus-within{border-color:#77927f;box-shadow:0 0 0 3px rgba(78,112,88,.1)}.workflow-diagnostic-search input{width:100%;border:0;outline:0;padding:9px 0;background:transparent}.workflow-diagnostic-issue-list{display:grid;gap:8px}.workflow-diagnostic-issue{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:13px 14px;border:1px solid #e3ded5;border-left-width:4px;border-radius:11px;background:#fff}.workflow-diagnostic-issue.error{border-left-color:#bd5b49;background:#fffafa}.workflow-diagnostic-issue.warning{border-left-color:#c18b36;background:#fffdf8}.workflow-diagnostic-issue.info{border-left-color:#6d8d76}.workflow-diagnostic-severity{padding:3px 7px;border-radius:6px;background:#efe9e1;color:#695f53;font-size:11px;font-weight:700}.workflow-diagnostic-issue.error .workflow-diagnostic-severity{background:#f8e2dd;color:#9c4334}.workflow-diagnostic-issue.warning .workflow-diagnostic-severity{background:#f8ecd2;color:#8b651f}.workflow-diagnostic-issue strong{font-size:14px;color:#363e38}.workflow-diagnostic-issue p{margin:4px 0;color:#686d67;font-size:13px}.workflow-diagnostic-issue small{display:flex;align-items:center;gap:5px;color:#8b7758;line-height:1.45}.workflow-diagnostic-issue-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.workflow-auto-repair-tag{padding:3px 7px;border-radius:999px;background:#e2f0e5;color:#37704a;font-size:11px;white-space:nowrap}.workflow-diagnostic-empty{padding:28px;text-align:center;border:1px dashed #cbd9ce;border-radius:14px;background:#fbfdf9;color:#487058}.workflow-diagnostic-empty svg{display:block;margin:0 auto 7px}.workflow-diagnostic-empty strong{display:block}.workflow-diagnostic-empty p{margin:5px 0 0;color:#768078;font-size:13px}.workflow-diagnostic-workflows{display:grid;gap:9px;padding:16px;border:1px solid #e0dbd2;border-radius:15px;background:#f8f5ef}.workflow-diagnostic-workflow{border:1px solid #ded8ce;border-radius:12px;background:#fff;overflow:hidden}.workflow-diagnostic-workflow>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}.workflow-diagnostic-workflow>summary>div{min-width:0}.workflow-diagnostic-workflow>summary strong{display:block;color:#354039}.workflow-diagnostic-workflow>summary small{display:block;margin-top:3px;color:#858178;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-diagnostic-workflow[open]>summary>svg{transform:rotate(180deg)}.workflow-diagnostic-status{padding:4px 8px;border-radius:999px;background:#e6eee8;color:#3e7050;font-size:11px;font-weight:700}.workflow-diagnostic-workflow.error .workflow-diagnostic-status{background:#f5dfda;color:#984536}.workflow-diagnostic-workflow.warning .workflow-diagnostic-status{background:#f7ead0;color:#8b651e}.workflow-diagnostic-workflow.disabled .workflow-diagnostic-status{background:#ecebea;color:#777}.workflow-diagnostic-schemes{display:grid;gap:9px;padding:0 12px 12px}.workflow-diagnostic-scheme{border:1px solid #ebe5db;border-radius:10px;padding:12px;background:#fdfcf9}.workflow-diagnostic-scheme header{display:flex;justify-content:space-between;gap:12px}.workflow-diagnostic-scheme header>div{display:flex;align-items:center;gap:7px}.workflow-diagnostic-scheme header span{padding:2px 6px;border-radius:5px;background:#e3eee6;color:#3c704c;font-size:10px}.workflow-diagnostic-scheme header span.muted{background:#eceae6;color:#777}.workflow-diagnostic-scheme header small{color:#817c73}.workflow-diagnostic-matters{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.workflow-diagnostic-matters span{padding:3px 7px;border-radius:6px;background:#f1ece3;color:#70685d;font-size:11px}.workflow-diagnostic-route{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:3px 1px 7px}.workflow-diagnostic-node{display:flex;align-items:center;gap:7px;min-width:154px;padding:8px 9px;border:1px solid #ded9cf;border-radius:9px;background:#fff}.workflow-diagnostic-node>i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eee9df;color:#6d6559;font-size:11px;font-style:normal}.workflow-diagnostic-node>div{min-width:0;flex:1}.workflow-diagnostic-node strong{display:block;font-size:12px;color:#3e4740}.workflow-diagnostic-node small{display:block;margin-top:2px;max-width:190px;color:#838078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-diagnostic-node.initiator{border-color:#c9d9cd;background:#f8fcf8}.workflow-diagnostic-node.final{border-color:#caa96b;background:#fffaf0}.workflow-diagnostic-node>b{padding:2px 5px;border-radius:5px;background:#ead8b3;color:#7b5c24;font-size:10px}.workflow-route-arrow{display:grid;place-items:center;color:#a79d8f}.workflow-diagnostic-scheme footer{display:flex;justify-content:flex-end;padding-top:7px;border-top:1px solid #eee9e0}.workflow-diagnostic-safety-note{display:flex;align-items:center;gap:6px;margin:0;padding:10px 12px;border-radius:9px;background:#edf4ef;color:#516c59;font-size:12px}
@media(max-width:1100px){.workflow-diagnostic-hero{grid-template-columns:auto minmax(0,1fr)}.workflow-diagnostic-actions{grid-column:1/-1;justify-content:flex-start}.workflow-diagnostic-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.workflow-diagnostic-hero{grid-template-columns:1fr}.workflow-diagnostic-score{width:88px;height:88px}.workflow-diagnostic-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-diagnostic-rule-grid{grid-template-columns:1fr}.workflow-diagnostic-toolbar{align-items:stretch;flex-direction:column}.workflow-diagnostic-search{width:100%}.workflow-diagnostic-issue{grid-template-columns:1fr}.workflow-diagnostic-issue-actions{justify-content:flex-start}.workflow-diagnostic-workflow>summary{grid-template-columns:auto minmax(0,1fr)}.workflow-diagnostic-workflow>summary>svg{display:none}.workflow-diagnostic-scheme header{flex-direction:column}}

/* 财务核算 · 员工借款与票据核销 */
.data-modal.employee-advance-modal{
  width:min(1840px,calc(100vw - 20px));
  height:min(980px,calc(100vh - 20px));
  max-width:none;
  overflow:auto;
  background:#f6f4ef;
}
.data-modal.employee-advance-modal>.modal-header{
  position:sticky;
  top:0;
  z-index:12;
  border-bottom:1px solid #ddd7c9;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
}
.employee-advance-workbench{padding:18px 20px 28px;display:grid;gap:16px}
.employee-advance-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 24px;
  border:1px solid #d8d0bf;
  border-radius:18px;
  background:linear-gradient(135deg,#fffdf8 0%,#f1ebde 70%,#e9dfcb 100%);
  box-shadow:0 14px 34px rgba(83,67,39,.09);
}
.employee-advance-hero>div:first-child>span{display:flex;align-items:center;gap:7px;color:#7d5b24;font-size:12px;font-weight:800;letter-spacing:.08em}
.employee-advance-hero h3{margin:8px 0 5px;color:#3f3527;font-size:24px}
.employee-advance-hero p{margin:0;max-width:820px;color:#6f6659;line-height:1.7}
.employee-advance-hero-actions{display:flex;gap:9px;flex:0 0 auto}
.employee-advance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.employee-advance-kpis article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;padding:16px 17px;border:1px solid #ded8cb;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(62,51,36,.05)}
.employee-advance-kpis article>i{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:#eee6d8;color:#7b5d2e}
.employee-advance-kpis article span,.employee-advance-kpis article small{display:block;color:#817768;font-size:11px}
.employee-advance-kpis article strong{display:block;margin:3px 0;color:#3e372e;font-size:20px}
.employee-advance-kpis article.is-danger{border-color:#efc4ba;background:#fff7f4}.employee-advance-kpis article.is-danger>i{background:#f9ded7;color:#a63b2e}.employee-advance-kpis article.is-danger strong{color:#a23b2f}
.employee-advance-kpis article.is-safe{border-color:#c9dfd2;background:#f7fcf8}.employee-advance-kpis article.is-safe>i{background:#ddefe3;color:#347354}
.employee-advance-ledger{overflow:hidden;border:1px solid #d7d0c3;border-radius:17px;background:#fff;box-shadow:0 9px 28px rgba(66,54,38,.06)}
.employee-advance-ledger>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid #e5dfd4;background:#fbfaf7}
.employee-advance-ledger>header h3{margin:0;color:#41382d}.employee-advance-ledger>header p{margin:4px 0 0;color:#827767;font-size:12px}
.employee-advance-ledger>header label{display:flex;align-items:center;gap:7px;width:min(420px,38vw);padding:0 11px;border:1px solid #d3c9b8;border-radius:10px;background:#fff;color:#8a734c}
.employee-advance-ledger>header input{width:100%;height:39px;border:0;outline:0;background:transparent}
.employee-advance-table-wrap{overflow:auto;max-height:500px}
.employee-advance-table{width:100%;min-width:1540px;border-collapse:separate;border-spacing:0;font-size:12px}
.employee-advance-table th{position:sticky;top:0;z-index:2;padding:10px 9px;border-bottom:1px solid #dcd4c6;background:#ece7dc;color:#625747;text-align:left;white-space:nowrap}
.employee-advance-table td{padding:11px 9px;border-bottom:1px solid #eee9e0;color:#504a42;vertical-align:top}
.employee-advance-table tr:hover td{background:#fffdf8}.employee-advance-table tr.is-overdue td{background:#fff7f4}.employee-advance-table tr.is-pending td{background:#fffcf1}
.employee-advance-table td>strong,.employee-advance-table td>span,.employee-advance-table td>small{display:block}.employee-advance-table td>span{margin-top:3px;color:#70685d}.employee-advance-table td>small{margin-top:3px;color:#968b7a;font-size:10px}
.employee-advance-table .money-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.employee-advance-table .outstanding{color:#9a4a2e;font-weight:800}
.employee-advance-table details{position:relative;margin-top:7px}.employee-advance-table summary{cursor:pointer;color:#755e39;font-size:11px}.employee-advance-table details>div{position:absolute;right:0;z-index:8;width:390px;max-height:260px;overflow:auto;padding:8px;border:1px solid #d3c8b6;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(56,44,27,.15)}
.employee-advance-table details p{margin:0;padding:7px;border-bottom:1px dashed #ddd4c5}.employee-advance-table details p:last-child{border:0}.employee-advance-table details p strong,.employee-advance-table details p span,.employee-advance-table details p small{display:block}.employee-advance-table details p span{margin-top:3px;color:#6c6459;font-size:10px}.employee-advance-table details p small{margin-top:3px;color:#958a79;font-size:10px}
.employee-advance-modal .employee-advance-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.employee-advance-modal .employee-advance-entry-grid>.business-form{margin:0;padding:17px;border:1px solid #d8d0c3;border-radius:17px;background:#fff;box-shadow:0 9px 26px rgba(65,52,35,.05)}
.employee-advance-modal .employee-advance-entry-grid .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-2,
.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-3,
.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-4{grid-column:span 2}
.employee-advance-modal .employee-advance-entry-grid .business-form .form-grid-4>label:not(.sheet-field){grid-template-columns:112px minmax(0,1fr)}
.employee-advance-modal .employee-advance-entry-grid.is-single-form{grid-template-columns:minmax(0,1fr)}
.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-2{grid-column:span 2}
.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-3{grid-column:span 3}
.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-4{grid-column:span 4}
.employee-advance-form-heading{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;margin:-3px -3px 15px;padding:13px;border-radius:13px;background:#f4efe5}
.employee-advance-form-heading>i{display:grid;width:44px;height:44px;place-items:center;border-radius:13px;background:#dfd1b7;color:#6f542c}.employee-advance-settlement-form .employee-advance-form-heading>i{background:#d8e8de;color:#3e7355}
.employee-advance-form-heading span{color:#8b7758;font-size:10px;font-weight:800;letter-spacing:.1em}.employee-advance-form-heading h3{margin:2px 0;color:#453b2d}.employee-advance-form-heading p{margin:3px 0 0;color:#7d7366;font-size:11px;line-height:1.5}
.employee-advance-entry-grid .finance-document-upload{margin-top:14px}.employee-advance-entry-grid .finance-document-upload .office-document-review{min-height:240px}.employee-advance-entry-grid textarea{min-height:76px}
.employee-advance-selection-empty{margin:2px 0 13px;padding:14px;border:1px dashed #cfbea2;border-radius:11px;background:#fffaf0;color:#806e51;font-size:12px;line-height:1.6}
.employee-advance-selection-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:2px 0 13px}
.employee-advance-selection-summary>div{padding:10px 11px;border:1px solid #ddd5c8;border-radius:10px;background:#fbfaf7}.employee-advance-selection-summary span,.employee-advance-selection-summary small{display:block;color:#817768;font-size:10px}.employee-advance-selection-summary strong{display:block;overflow:hidden;margin:4px 0;color:#443b30;text-overflow:ellipsis;white-space:nowrap}.employee-advance-selection-summary .is-alert{border-color:#e5b9ae;background:#fff7f4}.employee-advance-selection-summary .is-alert strong{color:#a34734}
.employee-advance-auto-settlement{overflow:hidden;border:1px solid #c9dacd;border-radius:12px;background:#f7fbf8}
.employee-advance-auto-settlement>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid #d7e5da;background:#eaf4ed;color:#315f43}
.employee-advance-auto-settlement>header strong{display:inline-flex;align-items:center;gap:6px}.employee-advance-auto-settlement>header small{color:#607c69}
.employee-advance-auto-settlement>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.employee-advance-auto-settlement article{padding:10px 12px;border-right:1px solid #d9e5dc}.employee-advance-auto-settlement article:last-child{border-right:0}
.employee-advance-auto-settlement article span{display:block;color:#6e7f73;font-size:10px}.employee-advance-auto-settlement article strong{display:block;margin-top:4px;color:#28583b;font-size:17px;font-variant-numeric:tabular-nums}
.employee-advance-auto-settlement>em{display:block;padding:8px 12px;border-top:1px solid #efd0c7;background:#fff6f3;color:#a14435;font-size:11px;font-style:normal;font-weight:700}
.employee-advance-print-sheet .employee-advance-ledger{box-shadow:none}.employee-advance-print-sheet .employee-advance-table-wrap{max-height:none;overflow:visible}
@media(max-width:1180px){.employee-advance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-advance-selection-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){.employee-advance-modal .employee-advance-entry-grid{grid-template-columns:1fr}.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-3,.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-4{grid-column:span 2}.employee-advance-auto-settlement>div{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-advance-auto-settlement article:nth-child(2){border-right:0}.employee-advance-auto-settlement article:nth-child(-n+2){border-bottom:1px solid #d9e5dc}}
@media(max-width:720px){.data-modal.employee-advance-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.employee-advance-workbench{padding:10px}.employee-advance-hero{align-items:flex-start;flex-direction:column;padding:16px}.employee-advance-hero h3{font-size:20px}.employee-advance-hero-actions{width:100%;flex-wrap:wrap}.employee-advance-hero-actions button{flex:1}.employee-advance-kpis{grid-template-columns:1fr}.employee-advance-ledger>header{align-items:stretch;flex-direction:column}.employee-advance-ledger>header label{width:100%}.employee-advance-selection-summary{grid-template-columns:1fr}.employee-advance-modal .employee-advance-entry-grid>.business-form{padding:11px}.employee-advance-modal .employee-advance-entry-grid .form-grid-4,.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4{grid-template-columns:1fr}.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-2,.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-3,.employee-advance-modal .employee-advance-entry-grid .form-grid-4>.span-4,.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-2,.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-3,.employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4>.span-4{grid-column:span 1}.employee-advance-auto-settlement>header{align-items:flex-start;flex-direction:column}.employee-advance-auto-settlement>div{grid-template-columns:1fr}.employee-advance-auto-settlement article,.employee-advance-auto-settlement article:nth-child(2){border-right:0;border-bottom:1px solid #d9e5dc}.employee-advance-auto-settlement article:last-child{border-bottom:0}}
@media print{
  body.printing-finance .employee-advance-print-sheet{display:block!important;width:100%;padding:0}
  body.printing-finance .employee-advance-print-sheet .employee-advance-ledger>header p,
  body.printing-finance .employee-advance-print-sheet .employee-advance-table th:last-child,
  body.printing-finance .employee-advance-print-sheet .employee-advance-table td:last-child{display:none!important}
  body.printing-finance .employee-advance-print-sheet .employee-advance-table{min-width:0;font-size:8px}
  body.printing-finance .employee-advance-print-sheet .employee-advance-table th,
  body.printing-finance .employee-advance-print-sheet .employee-advance-table td{padding:4px 3px}
}

/* 审批体检：阻断、纠错、提醒的分级说明与逐条操作指南 */
.workflow-diagnostic-category-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.workflow-diagnostic-category-guide article{display:flex;flex-direction:column;min-width:0;padding:14px 15px;border:1px solid #ddd7cd;border-top-width:4px;border-radius:13px;background:#fff;box-shadow:0 7px 18px rgba(61,52,39,.05)}
.workflow-diagnostic-category-guide article.error{border-top-color:#b95746;background:linear-gradient(180deg,#fff7f5,#fff 35%)}
.workflow-diagnostic-category-guide article.repair{border-top-color:#397554;background:linear-gradient(180deg,#f3faf5,#fff 35%)}
.workflow-diagnostic-category-guide article.warning{border-top-color:#bd852d;background:linear-gradient(180deg,#fff9ed,#fff 35%)}
.workflow-diagnostic-category-guide header{display:flex;align-items:center;gap:8px;color:#47534c}.workflow-diagnostic-category-guide article.error header{color:#984638}.workflow-diagnostic-category-guide article.repair header{color:#326a49}.workflow-diagnostic-category-guide article.warning header{color:#8d651e}
.workflow-diagnostic-category-guide header>div{display:flex;align-items:center;justify-content:space-between;gap:9px;flex:1}.workflow-diagnostic-category-guide header strong{font-size:16px}.workflow-diagnostic-category-guide header span{padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.82);font-size:11px;font-weight:800}
.workflow-diagnostic-category-guide p{margin:8px 0;color:#646b66;font-size:12px;line-height:1.62}.workflow-diagnostic-category-guide ol{display:grid;gap:5px;margin:0 0 12px;padding-left:19px;color:#555e58;font-size:11px;line-height:1.55}.workflow-diagnostic-category-guide button{align-self:flex-start;margin-top:auto;padding:6px 10px;border:1px solid #d3cec5;border-radius:8px;background:#fff;color:#4f5c54;font-size:11px;font-weight:750;cursor:pointer}.workflow-diagnostic-category-guide button:hover{border-color:#758a7d;background:#f8fbf9}
.workflow-diagnostic-issue-copy{min-width:0}.workflow-diagnostic-issue.repair{border-left-color:#4b8662;background:#fbfefc}.workflow-diagnostic-issue.repair .workflow-diagnostic-severity{background:#e1f0e6;color:#346d49}
.workflow-diagnostic-resolution{margin-top:10px;border:1px solid #e2ddd3;border-radius:9px;background:#fff;overflow:hidden}.workflow-diagnostic-resolution>summary{display:flex;align-items:center;gap:6px;padding:8px 10px;color:#425a4c;font-size:12px;font-weight:800;cursor:pointer;list-style:none}.workflow-diagnostic-resolution>summary>svg:last-child{margin-left:auto;transition:transform .2s}.workflow-diagnostic-resolution[open]>summary>svg:last-child{transform:rotate(180deg)}
.workflow-diagnostic-resolution-body{display:grid;gap:8px;padding:0 10px 10px}.workflow-diagnostic-resolution-body section{padding:9px 10px;border-radius:8px;background:#f7f5f0}.workflow-diagnostic-resolution-body section:first-child{background:#fff4f1}.workflow-diagnostic-resolution-body section:nth-child(2){background:#f6f3ed}.workflow-diagnostic-resolution-body section:nth-child(3){background:#fff8e9}.workflow-diagnostic-resolution-body section:last-child{background:#f0f6f2}.workflow-diagnostic-resolution-body b{display:block;margin-bottom:4px;color:#394a40;font-size:11px}.workflow-diagnostic-resolution-body p{margin:0!important;color:#5e6861!important;font-size:11px!important;line-height:1.6}.workflow-diagnostic-resolution-body ol,.workflow-diagnostic-resolution-body ul{display:grid;gap:4px;margin:0;padding-left:20px;color:#555f59;font-size:11px;line-height:1.58}.workflow-smart-assistant-button{border-color:#8caa98!important;background:linear-gradient(135deg,#f4fbf6,#fff)!important;color:#315f46!important;font-weight:850!important}
.workflow-tooltip-issues article small{display:block;margin-top:5px;padding:5px 7px;border-radius:6px;background:rgba(255,255,255,.72);color:#59665f;font-size:9px;line-height:1.5}.workflow-tooltip-issues article small b{color:#3e5548}
.workflow-smart-assistant-backdrop{z-index:265}.workflow-smart-assistant-modal{width:min(1180px,calc(100vw - 34px));max-height:min(900px,calc(100dvh - 28px));overflow:hidden;border-color:#cbd9d0;background:#f7f5ef;box-shadow:0 30px 90px rgba(26,47,35,.3)}.workflow-smart-assistant-modal>.modal-header{background:linear-gradient(120deg,#eaf4ed,#fffdf8);border-bottom-color:#d4ded7}.workflow-smart-assistant-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:0;max-height:calc(100dvh - 112px)}
.workflow-smart-assistant-summary{min-width:0;padding:22px 20px;border-right:1px solid #d9ded9;background:linear-gradient(180deg,#edf5ef,#f6f3ec)}.workflow-smart-assistant-summary>span{color:#52725f;font-size:10px;font-weight:900;letter-spacing:.08em}.workflow-smart-assistant-summary h3{margin:5px 0 7px;color:#294234;font-size:20px}.workflow-smart-assistant-summary>p{margin:0;color:#68736c;font-size:12px;line-height:1.65}.workflow-smart-assistant-summary>div{display:grid;gap:7px;margin:18px 0}.workflow-smart-assistant-summary article{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;padding:9px 10px;border:1px solid #d9ded9;border-radius:10px;background:#fff}.workflow-smart-assistant-summary article b{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#edf3ef;color:#3d6e4f;font-size:18px}.workflow-smart-assistant-summary article span{color:#57645c;font-size:11px;font-weight:750}.workflow-smart-assistant-summary article.error b{background:#fbe5e0;color:#a44738}.workflow-smart-assistant-summary article.repair b{background:#e3f1e7;color:#357049}.workflow-smart-assistant-summary article.warning b{background:#faedcf;color:#8b641f}.workflow-smart-assistant-summary>ol{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}.workflow-smart-assistant-summary>ol li{display:flex;align-items:center;gap:9px;color:#788079;font-size:11px}.workflow-smart-assistant-summary>ol li b{display:grid;place-items:center;width:24px;height:24px;border:1px solid #cbd4cd;border-radius:50%;background:#fff}.workflow-smart-assistant-summary>ol li.active{color:#315f45;font-weight:850}.workflow-smart-assistant-summary>ol li.active b{border-color:#508064;background:#508064;color:#fff}.workflow-smart-assistant-summary>ol li.done b{border-color:#8caf98;background:#e8f3eb;color:#3f7452}
.workflow-smart-assistant-content{min-width:0;overflow:auto;padding:20px 22px 24px}.workflow-smart-assistant-progress{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,34%);align-items:end;gap:18px;margin-bottom:12px}.workflow-smart-assistant-progress>div{display:grid;gap:4px}.workflow-smart-assistant-progress span{color:#7d827d;font-size:11px}.workflow-smart-assistant-progress strong{font-size:20px;color:#2f3e35}.workflow-smart-assistant-progress strong.error{color:#a14536}.workflow-smart-assistant-progress strong.repair{color:#37704b}.workflow-smart-assistant-progress strong.warning{color:#8b641f}.workflow-smart-assistant-progress progress{width:100%;height:8px;accent-color:#4f7d60}
.workflow-smart-context{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}.workflow-smart-context article{min-width:0;padding:8px 9px;border:1px solid #e1ddd5;border-radius:9px;background:#fff}.workflow-smart-context span{display:block;color:#8a8881;font-size:9px}.workflow-smart-context strong{display:block;margin-top:3px;color:#455148;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workflow-smart-explanation,.workflow-smart-checklist,.workflow-smart-steps{margin-top:9px;padding:13px 14px;border:1px solid #dedbd3;border-radius:11px;background:#fff}.workflow-smart-explanation>header,.workflow-smart-checklist>header,.workflow-smart-steps>header{display:flex;align-items:center;gap:7px;color:#405448}.workflow-smart-explanation>p{margin:8px 0;color:#505c54;font-size:13px;line-height:1.7}.workflow-smart-explanation>div{margin-top:6px;padding:8px 10px;border-radius:8px;background:#f5f3ee;color:#606a63;font-size:11px;line-height:1.58}.workflow-smart-explanation>div.impact{background:#fff5e4;color:#715b31}.workflow-smart-explanation b{color:#3e4c43}.workflow-smart-checklist{display:grid;gap:7px;background:#fbfcfa}.workflow-smart-checklist>header{margin-bottom:2px}.workflow-smart-checklist label{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:7px;background:#f3f6f3;color:#556159;font-size:11px;line-height:1.5}.workflow-smart-checklist input{margin-top:2px;accent-color:#4c7b5d}.workflow-smart-checklist label b{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:#dfece3;color:#39704b;font-size:9px}
.workflow-smart-location,.workflow-smart-verify{display:grid;gap:5px;margin-top:9px;padding:11px 13px;border:1px solid #cddbd1;border-radius:10px;background:#edf5ef}.workflow-smart-location span,.workflow-smart-verify span{display:flex;align-items:center;gap:6px;color:#456653;font-size:10px;font-weight:850}.workflow-smart-location strong{color:#2f523d;font-size:12px;line-height:1.55}.workflow-smart-steps ol{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.workflow-smart-steps li{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;color:#505d54;font-size:12px;line-height:1.6}.workflow-smart-steps li>b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#e8efe9;color:#37684a;font-size:10px}.workflow-smart-verify{background:#f0f7f2}.workflow-smart-verify p{margin:0;color:#50655a;font-size:11px;line-height:1.6}.workflow-smart-actions{position:sticky;bottom:-24px;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px -22px -24px;padding:12px 22px;border-top:1px solid #d9ded9;background:rgba(255,255,255,.95);backdrop-filter:blur(12px)}.workflow-smart-actions>div{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.workflow-smart-empty{display:grid;justify-items:center;gap:9px;padding:54px 24px;color:#3d704f;text-align:center}.workflow-smart-empty strong{font-size:20px}.workflow-smart-empty p{margin:0 0 8px;color:#6c756f}
.workflow-guided-location-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;margin:0 2px 12px;padding:11px 13px;border:1px solid #9fc2aa;border-radius:11px;background:linear-gradient(120deg,#eaf6ed,#fffdf7);color:#39694b}.workflow-guided-location-banner>svg{color:#39734d}.workflow-guided-location-banner>div{display:grid;gap:2px}.workflow-guided-location-banner strong{font-size:13px}.workflow-guided-location-banner span{color:#5f7467;font-size:10px}.workflow-guided-location-banner em{color:#6d7d72;font-size:9px;font-style:normal}.workflow-guided-focus{outline:3px solid rgba(65,133,87,.32)!important;outline-offset:3px;box-shadow:0 0 0 7px rgba(65,133,87,.08),0 13px 30px rgba(43,87,57,.14)!important;animation:workflow-guided-pulse 1.4s ease 2}@keyframes workflow-guided-pulse{50%{outline-color:rgba(218,151,47,.55);box-shadow:0 0 0 9px rgba(218,151,47,.1)}}
@media(max-width:900px){.workflow-diagnostic-category-guide{grid-template-columns:1fr}.workflow-diagnostic-resolution-body{gap:6px}.workflow-smart-assistant-shell{grid-template-columns:1fr;overflow:auto}.workflow-smart-assistant-summary{border-right:0;border-bottom:1px solid #d9ded9;padding:14px 16px}.workflow-smart-assistant-summary>div{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0}.workflow-smart-assistant-summary>ol{display:none}.workflow-smart-context{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-guided-location-banner{grid-template-columns:auto minmax(0,1fr)}.workflow-guided-location-banner em{grid-column:1/-1}.workflow-smart-assistant-content{overflow:visible}}
@media(max-width:620px){.workflow-smart-assistant-modal{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.workflow-smart-assistant-summary>div{grid-template-columns:1fr}.workflow-smart-assistant-progress{grid-template-columns:1fr}.workflow-smart-context{grid-template-columns:1fr 1fr}.workflow-smart-actions{align-items:stretch;flex-direction:column}.workflow-smart-actions>div{justify-content:stretch}.workflow-smart-actions button{flex:1}.workflow-smart-assistant-content{padding:15px}.workflow-smart-actions{margin:12px -15px -15px;padding:10px 15px}}

* {
  box-sizing: border-box;
}

html,
body,
button,
input,
select,
textarea {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
  font-synthesis: none;
  font-kerning: normal;
}

body {
  margin: 0;
  min-width: 1160px;
  background: var(--page);
  color: var(--text);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 18% 16%, rgba(96, 183, 179, 0.22), transparent 30%),
    radial-gradient(circle at 82% 78%, rgba(30, 112, 126, 0.2), transparent 36%),
    repeating-linear-gradient(94deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 88px),
    linear-gradient(145deg, #082932 0%, #123f49 50%, #071f28 100%);
}

.login-shell::before,
.login-shell::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.login-shell::before {
  width: 82vw;
  height: 32vh;
  left: 9vw;
  bottom: -20vh;
  border: 1px solid rgba(128, 203, 198, 0.12);
  background: rgba(2, 18, 24, 0.16);
  box-shadow: 0 -36px 90px rgba(1, 13, 18, 0.32);
}

.login-shell::after {
  width: 340px;
  height: 340px;
  right: -110px;
  top: -180px;
  border: 62px solid rgba(108, 192, 188, 0.08);
}

.login-workbench {
  position: relative;
  z-index: 2;
  width: 60vw;
  min-width: 820px;
  min-height: 500px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  align-items: center;
  gap: 20px;
  padding: 28px;
  border: 1px solid rgba(137, 211, 205, 0.48);
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 12%, rgba(81, 166, 162, 0.26), transparent 35%),
    linear-gradient(125deg, rgba(28, 91, 99, 0.98), rgba(10, 48, 59, 0.98) 58%, rgba(8, 38, 48, 0.99)),
    #0d3c47;
  box-shadow:
    0 3px 0 rgba(87, 145, 147, 0.82),
    0 15px 0 -7px rgba(4, 28, 36, 0.86),
    0 36px 82px rgba(0, 13, 18, 0.52),
    inset 0 1px 0 rgba(201, 246, 241, 0.2);
  transform: translateY(-1vh) perspective(1200px) rotateX(0.45deg);
  isolation: isolate;
}

.login-workbench::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 12px;
  border: 1px solid rgba(158, 225, 218, 0.2);
  border-radius: 20px;
  pointer-events: none;
}

.login-workbench::after {
  content: "";
  position: absolute;
  z-index: -2;
  left: 5%;
  right: 5%;
  bottom: -30px;
  height: 42px;
  border-radius: 50%;
  background: rgba(0, 10, 14, 0.48);
  filter: blur(18px);
  pointer-events: none;
}

.login-hero {
  position: relative;
  z-index: 1;
  align-self: stretch;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 82px 24px 54px;
}

.login-logo-lockup {
  position: absolute;
  top: -4px;
  left: 8px;
  width: 116px;
  height: 114px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  overflow: hidden;
  z-index: 3;
}

.login-logo-lockup .login-trademark {
  width: 116px;
  height: 114px;
  image-rendering: auto;
}

.login-hero h1 {
  margin: 0;
  color: #d7eeeb;
  text-align: center;
  font-synthesis: none;
}

.login-hero h1 span,
.login-hero h1 strong {
  display: block;
}

.login-hero h1 .login-company-name {
  color: #c6e4e0;
  font-size: clamp(20px, 1.45vw, 28px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.03em;
}

.login-hero h1 .login-system-name {
  margin-top: 20px;
  color: #ffffff;
  text-shadow: 0 5px 20px rgba(0, 17, 23, 0.34);
  font-size: clamp(31px, 2.7vw, 48px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: 0.02em;
}

.login-system-intro {
  max-width: 620px;
  margin: 22px auto 0;
  color: #bcd8d5;
  font-size: clamp(13px, 0.92vw, 16px);
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.02em;
  text-align: center;
  white-space: normal;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.login-card {
  position: relative;
  z-index: 2;
  align-self: center;
  justify-self: center;
  width: 100%;
  margin: 0;
  transform: none;
  padding: 26px 28px 22px;
  border: 1px solid rgba(133, 216, 207, 0.38);
  border-radius: 18px;
  background:
    linear-gradient(155deg, rgba(27, 93, 99, 0.94), rgba(10, 61, 72, 0.96)),
    #104d59;
  box-shadow:
    0 2px 0 rgba(108, 180, 177, 0.35),
    0 18px 38px rgba(0, 20, 27, 0.34),
    inset 0 1px 0 rgba(219, 255, 250, 0.12);
  backdrop-filter: blur(20px) saturate(108%);
}

.login-card-loading {
  grid-column: 1 / -1;
  width: min(430px, calc(100% - 64px));
  margin: auto;
  padding-block: 40px;
}

/* release-221: keep the login/loading trademark compact even while data or CSS is delayed. */
.login-card-loading .login-brand > img.login-trademark {
  width: 64px !important;
  height: 63px !important;
  max-width: 64px !important;
  max-height: 63px !important;
  flex: 0 0 64px;
  object-fit: contain;
}

.login-loading-brand {
  justify-content: center;
  margin: 0;
}

.login-shell > .login-card.login-card-loading {
  width: min(380px, calc(100vw - 40px)) !important;
  max-width: 380px !important;
  min-height: 92px;
  margin: auto !important;
  padding: 22px !important;
  justify-self: center;
  align-self: center;
  border-radius: 16px;
}

.login-loading-indicator {
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px !important;
  border: 3px solid rgba(78, 113, 87, .22);
  border-top-color: #587c60;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
  animation: login-loading-spin .8s linear infinite;
}

@keyframes login-loading-spin {
  to { transform: rotate(360deg); }
}

.login-brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  text-align: left;
}

.login-brand > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  border-radius: 11px;
  color: #eafffb;
  background: linear-gradient(145deg, #35aa9a, #1d7c78);
  box-shadow: 0 9px 22px rgba(0, 29, 36, 0.32);
}

.login-brand h2 {
  margin: 0 0 3px;
  color: #ffffff;
  font-size: 19px;
}

.login-brand p {
  margin: 0;
  color: #698086;
  font-size: 12px;
}

.login-trademark {
  display: block;
  object-fit: contain;
  mix-blend-mode: normal;
  background: transparent;
}

.login-card form {
  display: grid;
  gap: 13px;
}

.login-card label {
  display: grid;
  gap: 7px;
  font-size: 13px;
  color: #d8eeeb;
  font-weight: 700;
}

.login-input {
  height: 42px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
  border: 1px solid rgba(160, 211, 207, 0.44);
  border-radius: 11px;
  color: #467279;
  background: rgba(232, 246, 244, 0.94);
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.login-input:focus-within {
  border-color: #68c7bb;
  background: #f5fffd;
  box-shadow: 0 0 0 3px rgba(101, 207, 194, 0.18), 0 8px 22px rgba(0, 26, 32, 0.16);
}

.login-card input {
  min-width: 0;
  flex: 1;
  height: 38px;
  padding: 0;
  border: 0;
  outline: 0;
  color: #17212f;
  background: transparent;
}

.login-card input:focus {
  box-shadow: none;
}

.login-card .primary-button {
  width: 100%;
  height: 42px;
  margin-top: 3px;
  border-color: #39ad9c;
  border-radius: 11px;
  background: linear-gradient(135deg, #35a997, #20877f);
  box-shadow: 0 11px 24px rgba(0, 27, 34, 0.3);
}

.login-error {
  color: var(--red);
  font-size: 13px;
  font-weight: 600;
}

.login-hints {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}

.login-hints code {
  border: 1px solid var(--line);
  background: #f8fafc;
  border-radius: 4px;
  padding: 3px 6px;
  color: #334155;
}

.mobile-web-block {
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 4%, rgba(50, 128, 137, 0.16), transparent 34%),
    linear-gradient(145deg, #edf4f5, #d7e4e6);
}

.mobile-web-block-card {
  width: min(100%, 410px);
  padding: 34px 28px 28px;
  border: 1px solid rgba(91, 126, 134, 0.22);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 24px 64px rgba(40, 68, 74, 0.18);
  color: #31535b;
  text-align: center;
}

.mobile-web-block-icon {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  margin: 0 auto 18px;
  border-radius: 20px;
  color: #ffffff;
  background: linear-gradient(145deg, #286f77, #3e8b91);
  box-shadow: 0 12px 26px rgba(43, 115, 123, 0.22);
}

.mobile-web-block-card p {
  margin: 0 0 8px;
  color: #397a82;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.mobile-web-block-card h1 {
  margin: 0;
  color: #173941;
  font-size: 24px;
  line-height: 1.4;
}

.mobile-web-block-card > span:not(.mobile-web-block-icon) {
  display: block;
  margin-top: 14px;
  color: #5b7177;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.75;
}

.mobile-web-block-card > div {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 22px;
  padding: 9px 12px;
  border-radius: 999px;
  color: #237054;
  background: #e8f5ee;
  font-size: 12px;
  font-weight: 700;
}

form,
form label,
form input,
form select,
form textarea,
form button {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

form label,
form label > span {
  color: #24354a;
  font-weight: 650;
}

form input,
form select,
form textarea {
  color: #172235;
  font-size: 13px;
  font-weight: 550;
  letter-spacing: 0.005em;
}

form input::placeholder,
form textarea::placeholder {
  color: #7c8998;
  font-weight: 500;
  opacity: 1;
}

.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 184px 1fr;
}

.confidential-access-mark {
  position: fixed;
  right: 16px;
  bottom: 10px;
  z-index: 9;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: min(620px, calc(100vw - 220px));
  padding: 6px 10px;
  border: 1px solid rgba(135, 75, 51, 0.24);
  border-radius: 999px;
  color: rgba(112, 56, 37, 0.78);
  background: rgba(255, 249, 244, 0.9);
  box-shadow: 0 5px 16px rgba(76, 46, 35, 0.08);
  backdrop-filter: blur(8px);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.25;
  pointer-events: none;
  user-select: none;
}

@media print {
  .confidential-access-mark {
    right: 8mm;
    bottom: 5mm;
    display: inline-flex !important;
    max-width: 190mm;
    color: rgba(112, 56, 37, 0.62);
    background: transparent;
    box-shadow: none;
  }
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: linear-gradient(180deg, var(--nav) 0%, var(--nav-deep) 100%);
  color: #d8e5f4;
  display: flex;
  flex-direction: column;
  transition: width 0.2s ease;
  z-index: 10;
}

.sidebar.collapsed {
  width: 74px;
}

.sidebar-menu,
.collapse-action,
.nav-item,
.submenu-item {
  border: 0;
  background: transparent;
  color: inherit;
}

.sidebar-menu {
  height: 54px;
  display: grid;
  place-items: center;
  width: 100%;
}

.nav-list {
  display: grid;
  align-content: start;
  gap: 5px;
  margin-top: 6px;
  min-height: 0;
  overflow: visible;
  padding-bottom: 10px;
  scrollbar-width: thin;
  scrollbar-color: rgba(216, 229, 244, 0.32) transparent;
}

.nav-group {
  display: grid;
  gap: 2px;
  position: relative;
}

.nav-item {
  position: relative;
  height: 52px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  padding: 0 12px;
  border-left: 3px solid transparent;
  font-size: 14px;
  text-align: left;
  white-space: nowrap;
  color: #d8e5f4;
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.nav-item svg {
  justify-self: center;
  color: #a9c5df;
  transition: color 0.16s ease;
}

.nav-item.active {
  color: #ffffff;
  background: rgba(47, 115, 223, 0.92);
  border-left-color: #83c4ff;
  box-shadow: inset 0 0 0 1px rgba(131, 196, 255, 0.16);
}

.nav-item.active svg {
  color: #ffffff;
}

.nav-permission-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  padding: 0;
  border: 1px solid rgba(174, 187, 202, 0.28);
  border-radius: 999px;
  color: #9aa9b9;
  background: rgba(73, 89, 107, 0.26);
  font-size: 10px;
  font-weight: 650;
  line-height: 1;
}

.nav-item.is-disabled {
  color: #8190a0;
  background: rgba(42, 56, 70, 0.34);
  border-left-color: #536170;
  box-shadow: none;
  cursor: not-allowed;
}

.nav-item.is-disabled > svg {
  color: #758494;
}

.nav-group:hover > .nav-item.is-disabled,
.nav-item.is-disabled:hover {
  color: #8190a0;
  background: rgba(42, 56, 70, 0.34);
  border-left-color: #536170;
  box-shadow: none;
}

.nav-group:hover > .nav-item.is-disabled > svg,
.nav-item.is-disabled:hover > svg {
  color: #758494;
}

.nav-group:hover > .nav-item,
.nav-item:hover {
  color: #ffffff;
  background: linear-gradient(90deg, rgba(47, 115, 223, 0.82), rgba(32, 168, 122, 0.72));
  border-left-color: #63e6be;
  box-shadow: inset 0 0 0 1px rgba(219, 236, 255, 0.18);
}

.nav-group:hover > .nav-item svg,
.nav-item:hover svg {
  color: #ffffff;
}

/* 悬停其他主菜单时，临时取消原激活项着色；鼠标移出后恢复当前位置。 */
.nav-list:has(.nav-group:hover) .nav-item.active:not(:hover) {
  color: #d8e5f4;
  background: transparent;
  border-left-color: transparent;
  box-shadow: none;
}

.nav-list:has(.nav-group:hover) .nav-item.active:not(:hover) svg {
  color: #a9c5df;
}

.submenu-item:hover,
.collapse-action:hover,
.sidebar-menu:hover {
  background: rgba(255, 255, 255, 0.08);
}

.submenu-list {
  display: none;
  position: fixed;
  left: 182px;
  top: var(--submenu-top, 64px);
  width: 196px;
  max-height: calc(100vh - 84px);
  overflow-y: auto;
  gap: 3px;
  margin: 0;
  padding: 7px;
  border: 1px solid #c8d9e9;
  border-radius: 7px;
  background: #f6fbff;
  color: #26364a;
  box-shadow: 0 14px 26px rgba(4, 13, 24, 0.18);
  z-index: 45;
}

.nav-group:hover .submenu-list,
.nav-group:focus-within .submenu-list,
.nav-group.submenu-hovering .submenu-list {
  display: grid;
}

.submenu-section {
  margin: 6px 2px 1px;
  color: #1e7b61;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.submenu-section:first-child {
  margin-top: 0;
}

.submenu-item {
  min-height: 30px;
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  border-radius: 5px;
  color: #26364a;
  font-size: 12px;
  line-height: 1.25;
  text-align: left;
  box-shadow: inset 0 0 0 1px transparent;
}

.submenu-item svg {
  justify-self: center;
  color: #2f73df;
}

.submenu-item:hover {
  color: #102033;
  background: #e7f0ff;
  box-shadow: inset 0 0 0 1px #c9dbf6;
}

.submenu-item:active {
  background: #dbeafe;
  color: #0f2e5f;
}

.submenu-item.is-encrypted {
  grid-template-columns: 17px minmax(0, 1fr) auto;
  box-shadow: inset 3px 0 0 #d97706;
}

.submenu-item.is-encrypted svg {
  color: #b45309;
}

.submenu-item.is-locked {
  color: #7c664b;
  background: #fffaf0;
  cursor: pointer;
}

.submenu-item.is-locked:hover {
  color: #78350f;
  background: #fff2d8;
  box-shadow: inset 3px 0 0 #b45309, inset 0 0 0 1px #f5d394;
}

.submenu-encryption-badge {
  padding: 2px 5px;
  border: 1px solid #f1c56f;
  border-radius: 999px;
  color: #92400e;
  background: #fff7e6;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
}

.submenu-item:focus-visible,
.nav-item:focus-visible,
.collapse-action:focus-visible,
.sidebar-menu:focus-visible {
  outline: 2px solid rgba(131, 196, 255, 0.9);
  outline-offset: -2px;
}

.collapse-action {
  margin-top: auto;
  height: 64px;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: center;
  padding: 0 12px;
  color: #aebfd1;
  text-align: left;
}

.sidebar.collapsed .nav-item,
.sidebar.collapsed .collapse-action {
  grid-template-columns: 1fr;
  justify-content: center;
}

.sidebar.collapsed .submenu-list {
  left: 72px;
}

.sidebar.collapsed .nav-group:hover .submenu-list,
.sidebar.collapsed .nav-group:focus-within .submenu-list,
.sidebar.collapsed .nav-group.submenu-hovering .submenu-list {
  display: grid;
}

.sidebar.collapsed span {
  display: none;
}

.sidebar.collapsed .submenu-list span {
  display: inline;
}

.sidebar.collapsed .submenu-section {
  display: block;
}

.workspace {
  min-width: 0;
  background: var(--page);
}

.topbar {
  height: 56px;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 26px 0 24px;
  position: sticky;
  top: 0;
  z-index: 8;
}

.brand {
  display: flex;
  gap: 10px;
  align-items: center;
  letter-spacing: 0;
}

.brand svg {
  color: var(--blue);
}

.brand > span {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.brand .brand-company {
  color: #758397;
  font-size: 10px;
  font-weight: 550;
  line-height: 1.15;
  letter-spacing: 0.035em;
}

.brand .brand-system {
  color: #1a2c40;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: 0.02em;
}

.top-actions,
.filters,
.module-actions,
.panel-tools,
.table-toolbar,
.modal-actions,
.drawer-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.module-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.icon-button {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  background: transparent;
  color: #526070;
  border-radius: 6px;
}

.icon-button:hover {
  border-color: var(--line);
  background: var(--surface-soft);
}

.with-badge {
  position: relative;
}

.with-badge span {
  position: absolute;
  top: 2px;
  right: -1px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--red);
  color: white;
  font-size: 11px;
  line-height: 18px;
}

.approval-pending-trigger.has-pending {
  border-color: #efb0aa;
  background: #fff3f1;
  color: #b42318;
}

.approval-pending-trigger.has-pending:hover {
  border-color: #e68178;
  background: #ffe9e6;
}

.user-menu {
  border: 0;
  border-left: 1px solid var(--line);
  background: transparent;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 0 0 12px;
  color: #293444;
  height: 36px;
}

.user-menu em {
  font-style: normal;
  color: var(--muted);
  font-size: 12px;
  border: 1px solid var(--line);
  background: #f8fafc;
  border-radius: 4px;
  padding: 2px 6px;
}

.avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #dce5f2;
  color: #53647b;
  display: grid;
  place-items: center;
  font-weight: 700;
}

.filterbar {
  min-height: 54px;
  background: linear-gradient(90deg, rgba(247, 251, 255, 0.96), rgba(255, 255, 255, 0.9));
  border-bottom: 1px solid var(--line);
  padding: 9px 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  box-shadow: 0 3px 12px rgba(28, 54, 79, 0.035);
}

.page-copy {
  flex: 0 1 auto;
  min-width: 220px;
  display: flex;
  align-items: center;
}

.page-copy p,
.drawer-header p,
.modal-header p {
  margin: 0 0 2px;
  color: var(--muted);
  font-size: 12px;
}

.page-copy h1,
.drawer-header h2,
.modal-header h2 {
  margin: 0;
  font-size: 17px;
  line-height: 1.25;
  word-break: keep-all;
}

.page-copy span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}

.filters {
  flex: 1 1 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

.field {
  height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  padding: 0 9px;
  background: white;
  color: #2d3847;
  min-width: 142px;
}

.field span {
  color: #5c6a7b;
  font-size: 13px;
  white-space: nowrap;
}

.field select,
.field input {
  border: 0;
  outline: 0;
  background: transparent;
  min-width: 0;
  color: #253246;
}

.field select {
  appearance: none;
  width: 188px;
}

.outline-button,
.primary-button,
.link-button {
  height: 34px;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  white-space: nowrap;
}

.outline-button {
  border: 1px solid var(--line-strong);
  background: white;
  color: #334155;
}

.outline-button:hover {
  border-color: #9db0c6;
  background: #f7fafc;
}

.primary-button {
  border: 1px solid var(--blue);
  background: var(--blue);
  color: white;
}

.link-button {
  border: 0;
  background: transparent;
  color: var(--blue);
  padding: 0 4px;
}

.compact {
  height: 30px;
  font-size: 13px;
}

.content-grid {
  width: calc(100% - 4cm);
  max-width: none;
  margin: 14px 2cm 26px;
  padding: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(470px, 0.96fr);
  gap: 12px;
  border: 1px solid #cbdce8;
  border-radius: 20px;
  background:
    radial-gradient(circle at 96% 2%, rgba(66, 166, 142, 0.08), transparent 26%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(247, 251, 254, 0.98));
  box-shadow:
    0 22px 48px rgba(25, 55, 80, 0.14),
    0 4px 12px rgba(25, 55, 80, 0.06);
}

.kpi-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: white;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
}

.kpi-card {
  min-height: 88px;
  border: 0;
  background: white;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 24px;
  text-align: left;
  border-right: 1px solid var(--line);
}

.kpi-card:last-child {
  border-right: 0;
}

.kpi-card:hover {
  background: #fbfdff;
}

.kpi-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
}

.kpi-icon.blue { background: #2f91d9; }
.kpi-icon.green { background: #20a87a; }
.kpi-icon.amber { background: #f5ac4e; }
.kpi-icon.violet { background: #8aa0ff; }

.kpi-text {
  display: grid;
  gap: 4px;
}

.kpi-text > span {
  color: #596777;
  font-size: 14px;
}

.kpi-text strong {
  font-size: 24px;
  letter-spacing: 0;
}

.kpi-text em,
.metric span {
  font-style: normal;
  color: var(--green);
  font-size: 13px;
}

.kpi-text em.risk,
.metric.danger strong {
  color: var(--red);
}

.kpi-text em.down {
  color: var(--green);
}

.panel {
  background: white;
  border: 1px solid #d8e3ec;
  border-radius: 11px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(26, 52, 75, 0.055);
}

.panel-header {
  min-height: 38px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 12px;
}

.panel-header h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.trend-panel,
.inventory-panel,
.orders-panel,
.cash-panel,
.hr-panel,
.announcement-panel {
  min-width: 0;
}

.orders-panel,
.hr-panel {
  grid-column: 1;
}

.cash-panel,
.announcement-panel {
  grid-column: 2;
}

.chart-legend {
  display: flex;
  gap: 22px;
  font-size: 12px;
  color: #536172;
}

.chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.chart-legend i {
  width: 13px;
  height: 3px;
  border-radius: 2px;
  display: inline-block;
}

.blue-dot { background: var(--blue); }
.green-dot { background: var(--green); }

.chart-canvas {
  width: 100%;
  display: block;
}

.line-canvas {
  height: 186px;
}

.bar-canvas,
.donut-canvas {
  height: 154px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 11px;
}

.data-table th,
.data-table td {
  border-bottom: 1px solid var(--line);
  border-right: 1px solid #edf1f5;
  padding: 4px 6px;
  color: #394657;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.data-table th {
  background: #f8fafc;
  color: #536172;
  font-weight: 700;
  text-align: left;
}

.data-table th button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  font-weight: 700;
}

.data-table tr:hover td {
  background: #f7fbff;
}

.data-table tr:last-child td {
  border-bottom: 0;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 20px;
  border-radius: 4px;
  padding: 0 7px;
  border: 1px solid #cfd9e5;
  color: #536172;
  background: #f7fafc;
  font-size: 11px;
}

.status-pill.danger {
  border-color: #ffd49e;
  background: #fff7ed;
  color: #db7b19;
}

.status-pill.done {
  border-color: #a8dfc5;
  background: #edfdf4;
  color: #15875a;
}

.status-pill.wait {
  border-color: #bdd2f8;
  background: #f0f5ff;
  color: #2f73df;
}

.segmented {
  display: inline-flex;
  padding: 0 10px;
  gap: 16px;
  height: 36px;
  align-items: center;
}

.segmented.small {
  padding: 0;
  gap: 6px;
  height: 30px;
}

.segmented button {
  height: 30px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #596777;
  padding: 0 4px;
}

.segmented.small button {
  border-radius: 4px;
  border: 0;
  padding: 0 9px;
}

.segmented button.active {
  color: var(--blue);
  border-bottom-color: var(--blue);
  font-weight: 700;
}

.segmented.small button.active {
  background: #edf4ff;
}

.order-table th,
.order-table td {
  padding-top: 6px;
  padding-bottom: 6px;
}

.progress-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.progress-cell span {
  flex: 1;
  height: 6px;
  border-radius: 4px;
  background: #e8edf3;
  overflow: hidden;
}

.progress-cell i {
  display: block;
  height: 100%;
  background: var(--blue);
}

.view-more {
  height: 38px;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue);
  padding: 0 14px;
}

.cash-summary,
.attendance-summary {
  display: grid;
  border-bottom: 1px solid var(--line);
}

.cash-summary {
  grid-template-columns: repeat(3, 1fr);
}

.attendance-summary {
  grid-template-columns: repeat(6, 1fr);
}

.metric {
  padding: 6px 14px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 3px;
}

.metric:last-child {
  border-right: 0;
}

.metric strong {
  font-size: 16px;
}

.metric.good strong {
  color: var(--green);
}

.message-list {
  display: grid;
}

.message-row,
.notice-row {
  min-height: 32px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 82px;
  align-items: center;
  gap: 10px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: white;
  padding: 0 12px;
  text-align: left;
  color: #384557;
}

.message-row:hover,
.notice-row:hover {
  background: #f8fbff;
}

.message-row em {
  font-style: normal;
  color: #6d7a8b;
  text-align: right;
}

.tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 22px;
  border-radius: 4px;
  background: #edf4ff;
  color: var(--blue);
  font-size: 12px;
}

.tag.warning {
  background: #fff2e1;
  color: #d87812;
}

.popover-wrap {
  position: relative;
}

.popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: white;
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: var(--shadow);
  z-index: 20;
}

.export-menu {
  width: 190px;
  padding: 6px;
  display: grid;
}

.export-menu button {
  border: 0;
  background: transparent;
  height: 34px;
  border-radius: 4px;
  text-align: left;
  padding: 0 10px;
  color: #334155;
}

.export-menu button:hover {
  background: #f3f7fb;
}

.notice-popover {
  width: 390px;
}

.popover-title {
  height: 42px;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 12px;
  font-weight: 700;
}

.popover-title button {
  border: 0;
  background: transparent;
  color: var(--blue);
}

.notice-row {
  grid-template-columns: 48px 1fr;
}

.module-grid {
  width: calc(100% - 4cm);
  max-width: none;
  margin: 14px 2cm 26px;
  padding: 16px;
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 12px;
  border: 1px solid #cbdce8;
  border-radius: 20px;
  background:
    radial-gradient(circle at 96% 2%, rgba(66, 166, 142, 0.08), transparent 26%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(247, 251, 254, 0.98));
  box-shadow:
    0 22px 48px rgba(25, 55, 80, 0.14),
    0 4px 12px rgba(25, 55, 80, 0.06);
}

.module-command {
  min-height: 88px;
  background:
    radial-gradient(circle at 92% 18%, rgba(91, 196, 170, 0.1), transparent 24%),
    linear-gradient(105deg, #ffffff, #f7fbff 70%, #f1faf7);
  border: 1px solid #ccdee9;
  border-radius: 15px;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 12px 18px;
  box-shadow: 0 9px 24px rgba(25, 55, 80, 0.07);
}

.module-grid > :where(.panel, .business-form, .form-section, .table-card),
.content-grid > :where(.panel, .business-form, .form-section, .table-card) {
  min-width: 0;
}

.module-command:not(:has(.module-actions)) {
  grid-template-columns: 62px minmax(0, 1fr);
}

.module-brandmark {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 3px;
  border: 1px solid #cfe1e7;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 5px 14px rgba(25, 70, 96, 0.1);
}

.module-trademark {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.module-command-copy {
  min-width: 0;
}

.module-command-copy > span {
  display: block;
  margin-bottom: 2px;
  color: #2469a6;
  font-size: 10px;
  font-weight: 700;
}

.module-command h2 {
  margin: 0 0 2px;
  color: #203247;
  font-size: 17px;
}

.module-command p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.module-browse-guide {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(520px, 1.1fr);
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #d5e3ee;
  background: linear-gradient(115deg, #f9fcff, #f2f8fc 62%, #eef8f4);
}

.module-browse-guide-copy {
  min-width: 0;
}

.module-browse-guide-copy > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #2469a6;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}

.module-browse-guide-copy > strong,
.module-browse-guide-copy > p {
  display: block;
}

.module-browse-guide-copy > strong {
  margin-top: 4px;
  color: #203247;
  font-size: 14px;
}

.module-browse-guide-copy > p {
  margin: 4px 0 0;
  color: #51677b;
  font-size: 11.5px;
  line-height: 1.5;
}

.module-browse-guide-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.module-browse-guide-metrics article {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #dce7ef;
  border-radius: 9px;
  background: rgba(255, 255, 255, .88);
}

.module-browse-guide-metrics span,
.module-browse-guide-metrics small {
  display: block;
  overflow: hidden;
  color: #6c8193;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.module-browse-guide-metrics strong {
  display: block;
  margin: 2px 0;
  color: #174f91;
  font-size: 20px;
  line-height: 1.05;
}

.module-table-empty {
  display: flex;
  min-height: 118px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 18px;
  color: #8396a6;
  text-align: center;
}

.module-table-empty strong {
  color: #435c70;
  font-size: 13px;
}

.module-table-empty span {
  max-width: 520px;
  font-size: 10px;
  line-height: 1.55;
}

.module-load-error {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 22px 24px;
  border: 1px solid #edc7b8;
  background:
    radial-gradient(circle at 92% 18%, rgba(239, 176, 143, .18), transparent 28%),
    linear-gradient(135deg, #fffdfb, #fff8f4);
}

.module-load-error-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid #efc1aa;
  border-radius: 15px;
  background: #fff;
  color: #b85632;
  box-shadow: 0 8px 20px rgba(118, 63, 36, .1);
}

.module-load-error-copy > span,
.module-load-error-copy > small {
  color: #9b6b54;
  font-size: 10px;
  font-weight: 700;
}

.module-load-error-copy h2 {
  margin: 3px 0 5px;
  color: #54382c;
  font-size: 17px;
}

.module-load-error-copy p {
  max-width: 760px;
  margin: 0 0 5px;
  color: #775b4d;
  font-size: 11px;
  line-height: 1.6;
}

.module-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.module-business-map {
  overflow: hidden;
}

.module-business-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 46px;
  padding: 7px 12px;
  border-bottom: 1px solid var(--line);
  background: #f8fbfe;
}

.module-business-heading h2,
.module-business-heading p {
  margin: 0;
}

.module-business-heading h2 {
  color: #24364b;
  font-size: 15px;
}

.module-business-heading p {
  margin-top: 3px;
  color: #6b7c90;
  font-size: 11px;
}

.module-business-heading > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #27628f;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.module-business-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: #ffffff;
}

.module-business-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 60px;
  padding: 8px 10px;
  border: 0;
  border-right: 1px solid var(--line);
  background: #ffffff;
  text-align: left;
}

.module-business-item:last-child {
  border-right: 0;
}

.module-business-item:hover {
  background: #f4f9ff;
}

.module-business-item > i {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: #e8f2fc;
  color: #2469a6;
}

.module-business-item > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.module-business-item strong,
.module-business-item small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.module-business-item strong {
  color: #2a3d52;
  font-size: 12px;
}

.module-business-item small {
  color: #718195;
  font-size: 10px;
}

.module-business-item > b {
  color: #174f91;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

.stat-tile {
  min-height: 62px;
  text-align: left;
  background: white;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 12px;
  display: grid;
  align-content: center;
  gap: 4px;
}

.stat-tile:hover {
  border-color: #aac0d8;
}

.stat-tile span {
  color: var(--muted);
  font-size: 12px;
}

.stat-tile strong {
  font-size: 20px;
}

.module-table-panel {
  min-width: 0;
}

.report-query-panel {
  overflow: hidden;
}

.report-query-heading {
  min-height: 42px;
  padding: 7px 12px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #c9d9ee;
  background: #e8f2fc;
}

.report-query-heading h2,
.report-query-heading span {
  margin: 0;
}

.report-query-heading h2 {
  color: #174f91;
  font-size: 15px;
}

.report-query-heading span,
.report-result-count {
  color: var(--muted);
  font-size: 11px;
}

.report-query-form {
  padding: 12px;
  display: grid;
  grid-template-columns: 170px 170px minmax(220px, 1fr) 150px;
  align-items: end;
  gap: 10px;
}

.report-query-form > label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.report-query-form > label > span {
  color: #52657a;
  font-size: 12px;
  font-weight: 700;
}

.report-query-form select,
.report-keyword-item {
  height: 38px;
  border: 1px solid #b9c9dc;
  border-radius: 5px;
  background: white;
}

.report-query-form select {
  width: 100%;
  padding: 0 10px;
  color: #26384c;
}

.report-keyword-group {
  grid-column: 1 / -1;
  min-width: 0;
}

.report-keyword-group-header {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.report-keyword-group-header strong {
  color: #52657a;
  font-size: 12px;
}

.report-keyword-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.report-keyword-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  color: #2469a6;
}

.report-keyword-item > span {
  height: 100%;
  display: grid;
  place-items: center;
  color: #2469a6;
  background: #edf4fb;
  border-right: 1px solid #d5e1ef;
  font-size: 12px;
  font-weight: 700;
}

.report-keyword-item input {
  min-width: 0;
  height: 34px;
  border: 0;
  outline: 0;
  padding: 0 9px;
  color: #1f2f43;
  background: transparent;
}

.report-keyword-item:focus-within {
  border-color: #3d7fbd;
  box-shadow: 0 0 0 3px rgba(61, 127, 189, 0.12);
}

.report-query-button {
  height: 38px;
  white-space: nowrap;
}

.report-empty-result {
  height: 90px;
  color: var(--muted);
  text-align: center;
}

@media (max-width: 1000px) {
  .report-query-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-keyword-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-query-button {
    justify-self: start;
  }
}

.empty-state {
  min-height: 180px;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 14px;
}

.table-search {
  height: 30px;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 8px;
  min-width: 210px;
}

.table-search input {
  border: 0;
  outline: 0;
  min-width: 0;
}
.module-table-panel > .panel-header { min-height: 58px; padding-top: 8px; padding-bottom: 8px; }
.module-table-panel > .panel-header > div:first-child { min-width: 170px; }
.ledger-result-count { display: block; margin-top: 3px; color: #718795; font-size: 10px; font-weight: 650; }
.ledger-anyword-search {
  width: min(520px,42vw);
  min-width: 330px;
  height: 36px;
  border-color: #9fc4d4;
  border-radius: 9px;
  color: #2a7088;
  background: #f8fcfd;
  box-shadow: inset 0 0 0 1px rgba(33,119,143,.04);
}
.ledger-anyword-search:focus-within {
  border-color: #2784a0;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(39,132,160,.12);
}
.ledger-anyword-search input { flex: 1; width: 100%; color: #23495c; background: transparent; font-size: 11px; }
.ledger-anyword-search input::placeholder { color: #88a0ad; }
.ledger-anyword-search button {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 7px;
  color: #668494;
  background: #e7f0f4;
}
.ledger-search-hint { display: inline-flex; align-items: center; gap: 5px; color: #698392; font-size: 10px; white-space: nowrap; }
[data-ledger-row][hidden], [data-ledger-empty][hidden], .ledger-anyword-search button[hidden] { display: none; }

.table-toolbar select,
.panel-tools select {
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 8px;
  background: white;
}

.row-action {
  height: 26px;
  border: 1px solid var(--line);
  background: white;
  color: var(--blue);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 8px;
}

.todo-list {
  display: grid;
  padding: 10px;
  gap: 8px;
}

.todo-list button {
  min-height: 50px;
  border: 1px solid var(--line);
  background: #fbfdff;
  border-radius: 5px;
  display: grid;
  grid-template-columns: 28px 1fr 32px;
  align-items: center;
  gap: 8px;
  text-align: left;
  padding: 0 10px;
}

.todo-list span {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #edf4ff;
  color: var(--blue);
}

.todo-list em {
  font-style: normal;
  color: var(--amber);
  font-weight: 700;
}

.modal-backdrop,
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(12, 24, 37, 0.28);
  z-index: 50;
}

.search-modal,
.data-modal {
  position: absolute;
  left: 50%;
  top: 84px;
  transform: translateX(-50%);
  width: min(680px, calc(100vw - 48px));
  background: white;
  border-radius: 8px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.search-input {
  height: 58px;
  display: grid;
  grid-template-columns: 24px 1fr 40px;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border-bottom: 1px solid var(--line);
}

.search-input input {
  border: 0;
  outline: 0;
  font-size: 16px;
}

.search-input button {
  border: 0;
  background: transparent;
  color: #5a6878;
}

.search-results {
  padding: 10px;
  min-height: 180px;
}

.search-results p {
  margin: 20px 8px;
  color: var(--muted);
}

.search-results button {
  width: 100%;
  min-height: 56px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: white;
  display: grid;
  grid-template-columns: 110px 1fr 190px;
  align-items: center;
  gap: 12px;
  text-align: left;
  color: #334155;
}

.search-results span {
  color: var(--blue);
}

.search-results em {
  color: var(--muted);
  font-style: normal;
}

.detail-drawer {
  position: absolute;
  right: 0;
  top: 0;
  width: 420px;
  height: 100%;
  background: white;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}

.drawer-header,
.modal-header {
  min-height: 76px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}

.detail-list {
  padding: 14px 18px;
  display: grid;
  gap: 10px;
  overflow: auto;
}

.detail-list div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.detail-list span {
  color: var(--muted);
}

.detail-list strong {
  font-weight: 600;
  color: #253246;
  word-break: break-word;
}

.drawer-approval-section {
  margin: 0 18px 12px;
  border: 1px solid #c9d9ee;
  background: #f7faff;
  max-height: 250px;
  overflow: auto;
}

.drawer-approval-section > header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  color: #123b6d;
  background: #dceafb;
  border-bottom: 1px solid #c9d9ee;
}

.drawer-approval-section > header span,
.drawer-current-approvers,
.drawer-history-empty {
  font-size: 12px;
}

.drawer-current-approvers {
  margin: 0;
  padding: 8px 11px;
  color: #315b86;
  border-bottom: 1px solid #dce6f2;
}

.drawer-history-list {
  padding: 4px 11px 8px;
}

.drawer-history-list article {
  padding: 8px 0;
  border-bottom: 1px solid #dce6f2;
}

.drawer-history-list article:last-child {
  border-bottom: 0;
}

.drawer-history-list article div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.drawer-history-list time,
.drawer-history-list article span {
  color: var(--muted);
  font-size: 12px;
}

.drawer-history-list p {
  margin: 4px 0 2px;
  color: #253246;
  font-size: 12px;
}

.drawer-history-empty {
  padding: 14px 11px;
  color: var(--muted);
}

.drawer-actions {
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding: 14px 18px;
}

.data-modal {
  top: 92px;
  width: min(560px, calc(100vw - 24px));
  max-height: calc(100vh - 128px);
  overflow: auto;
}

.data-modal .modal-header {
  position: sticky;
  top: 0;
  z-index: 3;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.data-modal .modal-header p {
  color: var(--blue);
  font-weight: 700;
}

.data-modal .icon-button {
  flex: 0 0 auto;
}

.wide-modal {
  width: min(1120px, calc(100vw - 48px));
}

.data-modal form {
  display: grid;
  gap: 14px;
  padding: 16px 18px 18px;
}

.data-modal label {
  display: grid;
  gap: 6px;
  color: #536172;
  font-size: 13px;
}

.data-modal label > span {
  color: #405064;
  font-weight: 650;
}

.modal-title-block {
  display: grid;
  gap: 3px;
}

.modal-title-block p,
.modal-title-block h2,
.modal-title-block span {
  margin: 0;
}

.modal-title-block span {
  color: #52677d;
  font-size: 12px;
  font-weight: 700;
}

.shared-data-strip {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid #cfe2f3;
  border-radius: 6px;
  background: #f2f8ff;
  color: #2f5d91;
  font-size: 12px;
}

.shared-data-strip svg {
  flex: 0 0 auto;
  color: #2f73df;
}

.shared-data-strip span {
  font-weight: 700;
}

.shared-data-strip strong {
  color: #26364a;
  font-weight: 650;
}

.stock-master-control {
  display: grid;
  min-width: 0;
  background: #ffffff;
}

.stock-master-control.is-adding > select {
  border-bottom: 1px solid #b9dfcf !important;
  background: #f8fffb !important;
}

.stock-master-new {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  background: #f1fbf6;
}

.stock-master-new[hidden] {
  display: none;
}

.business-form .stock-master-new > input {
  min-width: 0;
  border-bottom: 1px solid #b9dfcf !important;
  background: #f8fffb !important;
  color: #164f3d;
  font-weight: 650;
  text-align: left;
}

.stock-master-new small {
  padding: 4px 8px;
  color: #28715b;
  font-size: 10px;
  line-height: 1.25;
}

.data-modal input,
.data-modal select,
.data-modal textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  min-height: 36px;
  padding: 8px 10px;
  color: #263244;
}

.data-modal input:focus,
.data-modal select:focus,
.data-modal textarea:focus {
  outline: 0;
  border-color: rgba(47, 115, 223, 0.78);
  box-shadow: 0 0 0 3px rgba(47, 115, 223, 0.12);
  background: #ffffff;
}

.data-modal input[readonly],
.data-modal textarea[readonly] {
  background: #f2f5f8;
  border-color: #d8e0ea;
  color: #526173;
  cursor: not-allowed;
}

.data-modal textarea {
  min-height: 86px;
  resize: vertical;
}

.payroll-print-sheet {
  display: none;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.business-form {
  background: #f7f9fc;
}

.data-modal form.business-form {
  gap: 16px;
  padding: 16px 18px 0;
}

.form-section {
  position: relative;
  display: grid;
  gap: 12px;
  padding: 15px 16px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: white;
  box-shadow: 0 1px 0 rgba(18, 34, 55, 0.03);
}

.business-form .form-section {
  gap: 0;
  padding: 0;
  border-color: #536273;
  border-radius: 6px;
  overflow: hidden;
  background: #ffffff;
}

.form-section::before {
  content: '';
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: var(--blue);
}

.business-form .form-section::before {
  display: none;
}

.form-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.business-form .form-section-title {
  min-height: 40px;
  padding: 9px 12px;
  border-bottom: 1px solid #536273;
  background: #dce8f5;
  color: #213248;
}

.form-section-title strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #253246;
}

.form-section-title strong::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

.form-section-title span {
  font-size: 12px;
  color: var(--muted);
}

.business-form .form-section-title span {
  color: #415369;
}

.form-grid-4,
.line-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.business-form .form-grid-4,
.business-form .line-grid,
.business-form .form-row {
  gap: 0;
  border-left: 0;
  border-top: 0;
}

.line-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fbfdff;
}

.business-form .line-grid {
  padding: 0;
  border: 1px solid #536273;
  border-bottom: 0;
  border-radius: 0;
  background: #ffffff;
}

.span-2 {
  grid-column: span 2;
}

.span-3 {
  grid-column: span 3;
}

.span-4 {
  grid-column: span 4;
}

.finance-modal,
.statement-modal {
  max-height: calc(100vh - 108px);
  overflow: auto;
}

.finance-workflow-pool-modal { width: min(1320px,calc(100vw - 28px)); max-height: calc(100vh - 32px); overflow: hidden; background: #f4f5f1; }
.finance-workflow-pool-body { display: grid; gap: 12px; max-height: calc(100vh - 104px); padding: 14px; overflow: auto; }
.finance-workflow-pool-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 19px; border: 1px solid #c7d9d3; border-radius: 14px; background: linear-gradient(112deg,#eaf5f1,#fbfcf9 67%,#f2ead9); }
.finance-workflow-pool-hero.payment { border-color: #d7cba9; background: linear-gradient(112deg,#f7f1e3,#fff 68%,#e8f2ee); }
.finance-workflow-pool-hero span { color: #42786f; font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.finance-workflow-pool-hero h3 { margin: 4px 0 0; color: #263c39; font-size: 20px; }
.finance-workflow-pool-hero > strong { display: flex; align-items: baseline; gap: 7px; color: #235f57; font-size: 30px; }
.finance-workflow-pool-hero > strong small { color: #6d7a75; font-size: 11px; }
.finance-workflow-table { min-width: 1040px; }
.finance-workflow-table th { white-space: nowrap; }
.finance-workflow-table .workflow-detail-cell { min-width: 250px; max-width: 380px; white-space: normal; line-height: 1.55; }
.finance-workflow-table .row-action.primary { border-color: #4d887e; background: #e7f3ef; color: #276a61; }
.finance-payment-process-form { display: grid; gap: 12px; padding: 15px; border: 1px solid #bdcec8; border-radius: 14px; background: #fff; box-shadow: 0 12px 28px rgba(39,67,59,.08); }
.finance-payment-process-form > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.finance-payment-process-form > header span { color: #89704a; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.finance-payment-process-form > header h3 { margin: 3px 0 0; color: #2d3e3a; font-size: 17px; }
.finance-payment-process-form .sheet-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.finance-payment-process-form .sheet-grid label { display: grid; gap: 6px; min-width: 0; }
.finance-payment-process-form .sheet-grid label > span { color: #53625e; font-size: 11px; font-weight: 800; }
.finance-payment-process-form .sheet-grid input,.finance-payment-process-form .sheet-grid select { width: 100%; min-width: 0; }
.finance-payment-process-form .sheet-grid .span-2 { grid-column: span 2; }

@media (max-width: 760px) {
  .finance-workflow-pool-modal { width: calc(100vw - 10px); max-height: calc(100vh - 10px); }
  .finance-payment-process-form .sheet-grid { grid-template-columns: minmax(0,1fr); }
  .finance-payment-process-form .sheet-grid .span-2 { grid-column: 1; }
}

.finance-sheet {
  display: grid;
  gap: 0;
  border: 1px solid #536273;
  background: #ffffff;
}

.finance-sheet > h3 {
  margin: 0;
  padding: 13px 12px;
  border-bottom: 1px solid #536273;
  color: #2d3642;
  font-size: 22px;
  line-height: 1.25;
  text-align: center;
}

.finance-sheet > p {
  margin: 0;
  padding: 8px 12px;
  border-bottom: 1px solid #cfd7e2;
  color: #526173;
  font-size: 12px;
  text-align: center;
}

.sheet-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 0;
  border-left: 0;
}

.data-modal label.sheet-field {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 0;
  min-height: 42px;
  border-right: 1px solid #536273;
  border-bottom: 1px solid #536273;
  color: #2d3642;
  font-size: 13px;
}

.data-modal label.sheet-field > span {
  display: grid;
  place-items: center;
  padding: 8px 9px;
  border-right: 1px solid #536273;
  background: #dce8f5;
  color: #213248;
  font-weight: 700;
  text-align: center;
}

.data-modal label.sheet-field input,
.data-modal label.sheet-field select,
.data-modal label.sheet-field textarea {
  min-height: 40px;
  border: 0;
  border-radius: 0;
  background: #ffffff;
}

.data-modal label.sheet-field textarea {
  min-height: 68px;
}

.data-modal label.sheet-field input[readonly],
.data-modal label.sheet-field textarea[readonly] {
  background: #f7fafc;
}

.sheet-band {
  padding: 9px 12px;
  border-bottom: 1px solid #536273;
  background: #dce8f5;
  color: #213248;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

.finance-table-block {
  display: grid;
  border-bottom: 1px solid #536273;
}

.business-form > .finance-table-block {
  border: 1px solid #536273;
  border-radius: 6px;
  overflow: hidden;
  background: #ffffff;
}

.finance-entry-table,
.finance-statement-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 12px;
}

.statement-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-bottom: 1px solid #536273;
  background: #ffffff;
}

.balance-statement-table {
  min-width: 1060px;
}

.income-statement-table {
  min-width: 820px;
}

.statement-item-col,
.income-item-col {
  width: 19%;
}

.statement-amount-col,
.income-amount-col {
  width: 11%;
}

.statement-source-col {
  width: 20%;
}

.income-source-col {
  width: 40%;
}

.finance-entry-table th,
.finance-entry-table td,
.finance-statement-table th,
.finance-statement-table td {
  border-right: 1px solid #d8dde6;
  border-bottom: 1px solid #d8dde6;
  padding: 7px 8px;
  color: #2f3a4a;
  vertical-align: middle;
}

.finance-entry-table th,
.finance-statement-table th {
  background: #f8fafc;
  color: #253246;
  font-weight: 750;
  text-align: center;
}

.finance-statement-table .statement-section-row th,
.finance-statement-table .statement-total-row td {
  background: #e6f0fb;
  color: #172b46;
  font-weight: 800;
}

.finance-statement-table .statement-item-cell {
  color: #1f2f43;
}

.finance-statement-table .statement-item-cell span {
  display: block;
  margin-bottom: 2px;
  color: #5a6b80;
  font-size: 11px;
  line-height: 1.25;
}

.finance-statement-table .statement-item-cell strong {
  display: block;
  font-weight: 750;
  line-height: 1.35;
}

.finance-statement-table .amount-cell {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.finance-statement-table .source-cell {
  color: #4a5b70;
  line-height: 1.45;
  white-space: normal;
  word-break: break-word;
}

.statement-form {
  gap: 14px;
}

.standard-statement-sheet {
  border-color: #1f2f43;
}

.standard-statement-sheet > h3 {
  padding: 15px 12px 10px;
  border-bottom: 0;
  color: #111827;
  font-size: 24px;
  font-weight: 800;
}

.standard-report-meta {
  display: grid;
  grid-template-columns: 1.3fr 1fr 0.8fr 1fr;
  border-top: 1px solid #536273;
  border-bottom: 1px solid #536273;
  background: #ffffff;
}

.standard-report-meta span {
  min-height: 36px;
  padding: 9px 10px;
  border-right: 1px solid #536273;
  color: #243246;
  font-size: 13px;
  line-height: 1.3;
}

.standard-report-meta span:last-child {
  border-right: 0;
}

.statement-linkage-strip {
  padding: 10px 12px 11px;
  border-bottom: 1px solid #536273;
  background: linear-gradient(135deg, #eef7fb, #f8fbfd);
}

.statement-linkage-strip > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.statement-linkage-strip > header span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #155b73;
  font-size: 11px;
  font-weight: 800;
}

.statement-linkage-strip > header small {
  color: #587684;
  font-size: 9px;
  text-align: right;
}

.statement-linkage-strip > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 7px;
}

.statement-linkage-strip article {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 9px;
  border: 1px solid #c8dce5;
  border-radius: 8px;
  background: rgba(255, 255, 255, .88);
}

.statement-linkage-strip article > i {
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: #176c87;
  background: #e2f0f5;
}

.statement-linkage-strip article span,
.statement-linkage-strip article strong {
  display: block;
}

.statement-linkage-strip article span {
  min-width: 0;
  color: #607785;
  font-size: 9px;
}

.statement-linkage-strip article strong {
  margin-top: 2px;
  overflow: hidden;
  color: #173f55;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.standard-report-table {
  color: #111827;
  font-size: 12px;
}

.standard-report-table th,
.standard-report-table td {
  border-color: #536273;
  padding: 6px 7px;
}

.standard-report-table th {
  background: #dce8f5;
  color: #172b46;
  font-weight: 800;
}

.standard-report-table .report-item-cell {
  color: #111827;
  line-height: 1.35;
  word-break: break-word;
}

.standard-report-table .line-cell {
  color: #405064;
  text-align: center;
  white-space: nowrap;
}

.standard-report-table .amount-cell {
  color: #111827;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.standard-report-table .report-section-row td {
  background: #f7fbff;
  color: #172b46;
  font-weight: 800;
}

.standard-report-table .report-total-row td {
  background: #eef5fc;
  color: #111827;
  font-weight: 800;
}

.standard-report-table .report-grand-row td {
  background: #dce8f5;
  color: #111827;
  font-weight: 900;
}

.balance-statement-table {
  min-width: 1120px;
}

.balance-item-col {
  width: 22%;
}

.balance-line-col {
  width: 5%;
}

.balance-amount-col {
  width: 11.5%;
}

.income-statement-table {
  min-width: 760px;
}

.income-item-col {
  width: 52%;
}

.income-line-col {
  width: 8%;
}

.income-amount-col {
  width: 20%;
}

.report-footer-signatures {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid #536273;
  color: #243246;
  font-size: 13px;
}

.report-footer-signatures span {
  min-height: 42px;
  padding: 12px 10px;
  border-right: 1px solid #536273;
}

.report-footer-signatures span:last-child {
  border-right: 0;
}

.statement-actions {
  justify-content: flex-end;
}

.finance-entry-table td input {
  width: 100%;
  min-height: 30px;
  border: 0;
  border-radius: 0;
  padding: 4px 2px;
  background: transparent;
  text-align: inherit;
}

.finance-statement-table td:nth-child(3),
.finance-statement-table td:nth-child(7),
.finance-statement-table td:nth-child(2) + td,
.finance-statement-table td:nth-child(2) {
  font-variant-numeric: tabular-nums;
}

.statement-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid #536273;
}

.statement-meta span {
  min-height: 34px;
  padding: 8px 10px;
  border-right: 1px solid #d8dde6;
  color: #405064;
  font-size: 12px;
}

.approval-grid {
  display: grid;
  grid-template-columns: 1fr;
}

.approval-flow-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 9px 12px;
  border-bottom: 1px solid #c9d5e2;
  background: #f6f9fc;
  color: #40546b;
  font-size: 11px;
}

.approval-flow-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.approval-flow-summary svg {
  color: #2f73b8;
}

.approval-flow-diagram {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 14px;
  overflow-x: auto;
  background: #eef4fa;
  scrollbar-width: thin;
}

.approval-flow-node {
  flex: 1 0 220px;
  min-width: 220px;
  overflow: hidden;
  border: 1px solid #9cb5cc;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 2px 7px rgba(35, 59, 82, 0.08);
}

.approval-flow-node > header {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 7px 9px;
  border-bottom: 1px solid #b9cadb;
  background: #dce8f5;
}

.approval-node-index {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #2f73b8;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
}

.approval-flow-node > header strong {
  min-width: 0;
  color: #20364c;
  font-size: 13px;
}

.approval-flow-node > header em {
  padding: 3px 6px;
  border: 1px solid #88acd0;
  border-radius: 4px;
  background: #f1f7fd;
  color: #245d94;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.approval-flow-node[data-state="waiting"] > header em {
  border-color: #c4ccd5;
  background: #f5f6f8;
  color: #697787;
}

.approval-node-body {
  display: grid;
  gap: 6px;
  min-height: 92px;
  padding: 9px;
}

.approval-node-label {
  color: #65768a;
  font-size: 10px;
  font-weight: 700;
}

.approval-node-users {
  display: flex;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 4px;
}

.approval-node-users span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 3px 6px;
  border: 1px solid #d2dee9;
  border-radius: 4px;
  background: #f8fbfe;
  color: #344a61;
  font-size: 10px;
  line-height: 1.35;
}

.approval-flow-node > footer {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 4px 7px;
  padding: 8px 9px;
  border-top: 1px solid #d7e0e9;
  background: #fbfcfe;
  font-size: 10px;
}

.approval-flow-node > footer span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #68798b;
}

.approval-flow-node > footer strong {
  color: #2e4358;
  font-weight: 700;
}

.approval-flow-connector {
  display: grid;
  flex: 0 0 22px;
  place-items: center;
  color: #2f73b8;
}

.form-approval-live-card {
  grid-column: 1 / -1;
  width: 100%;
  margin: 14px 0 8px;
  overflow: hidden;
  border: 1px solid #cfd8d0;
  border-radius: 12px;
  background: linear-gradient(145deg, #fffefa, #f5f7f2);
  box-shadow: 0 10px 24px rgba(53, 70, 58, .09), inset 0 1px 0 #fff;
}

.form-approval-live-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 15px;
  border-bottom: 1px solid #dfe5de;
  background: linear-gradient(90deg, #edf4ee, #f8f4e9);
}

.form-approval-live-card > header > div { display: grid; gap: 3px; }
.form-approval-live-card > header span { display: inline-flex; align-items: center; gap: 6px; color: #587063; font-size: 11px; font-weight: 800; }
.form-approval-live-card > header strong { color: #293d33; font-size: 14px; }
.form-approval-live-card > header > em { padding: 4px 8px; border-radius: 999px; color: #6d5b29; background: #f4e8bd; font-size: 10px; font-style: normal; font-weight: 800; }

.form-approval-live-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px;
}

.form-approval-live-summary > span { min-width: 0; padding: 9px 10px; border: 1px solid #e0e4df; border-radius: 9px; background: rgba(255,255,255,.85); }
.form-approval-live-summary > span[data-tone="current"] { border-color: #9dbed6; background: #eef6fb; }
.form-approval-live-summary > span[data-tone="next"] { border-color: #dacb99; background: #fff9e8; }
.form-approval-live-summary small,.form-approval-live-summary strong,.form-approval-live-summary em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-approval-live-summary small { color: #7a847e; font-size: 10px; }
.form-approval-live-summary strong { margin-top: 4px; color: #293d33; font-size: 12px; }
.form-approval-live-summary em { margin-top: 3px; color: #687a70; font-size: 10px; font-style: normal; }

.approval-live-track {
  display: flex;
  align-items: stretch;
  gap: 7px;
  padding: 10px 12px 13px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.approval-live-node {
  display: grid;
  grid-template-columns: 24px minmax(112px, 1fr);
  gap: 7px;
  flex: 1 0 155px;
  min-width: 155px;
  padding: 9px;
  border: 1px solid #d9dfda;
  border-radius: 9px;
  background: #fbfcfa;
}

.approval-live-node > i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #a4aea8; font-size: 10px; font-style: normal; font-weight: 900; }
.approval-live-node > div { min-width: 0; }
.approval-live-node strong,.approval-live-node span,.approval-live-node small { display: block; }
.approval-live-node strong { color: #34483e; font-size: 11px; }
.approval-live-node span { margin-top: 3px; overflow-wrap: anywhere; color: #68766e; font-size: 10px; line-height: 1.35; }
.approval-live-node em { display: inline-block; margin-top: 4px; padding: 2px 5px; border-radius: 4px; color: #7b5a14; background: #f7eac3; font-size: 9px; font-style: normal; }
.approval-live-node > small { grid-column: 1 / -1; padding-top: 6px; border-top: 1px dashed #dde2de; color: #89918c; font-size: 9px; text-align: right; }
.approval-live-node[data-state="completed"] { border-color: #a8cdb5; background: #f1f8f3; }
.approval-live-node[data-state="completed"] > i { background: #3d8b5d; }
.approval-live-node[data-state="current"] { border-color: #2e9b70; background: linear-gradient(145deg,#eaf9f2,#f5fcf8); box-shadow: 0 0 0 3px rgba(46,155,112,.14),0 9px 20px rgba(29,111,79,.12); }
.approval-live-node[data-state="current"] > i { background: #16825b; box-shadow: 0 0 0 4px rgba(63,174,128,.14); }
.approval-current-here {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  padding: 3px 7px;
  border: 1px solid #69bd98;
  border-radius: 999px;
  color: #0e6848;
  background: #fff;
  font-size: 9.5px;
  font-weight: 850;
  line-height: 1.2;
}
.approval-current-here u { width: 7px; height: 7px; border-radius: 50%; background: #18a16d; box-shadow: 0 0 0 3px rgba(24,161,109,.14); text-decoration: none; }
.approval-live-node[data-state="rejected"] { border-color: #e3c787; background: #fffbeb; }
.approval-live-node[data-state="rejected"] > i { background: #b7791f; }
.approval-live-track > u { align-self: center; flex: 0 0 18px; height: 2px; background: #cbd3cd; text-decoration: none; }
.module-approval-progress-action .module-next-approver { color: #7b6427; }
.approval-inbox-table td small { display: block; margin-top: 3px; color: #7a8790; font-size: 10px; line-height: 1.35; }

@media (max-width: 900px) {
  .form-approval-live-summary { grid-template-columns: 1fr; }
  .approval-live-node { flex-basis: 142px; min-width: 142px; }
}

/* Release 245: app icons, permission-visible navigation and compact approval nodes. */
.mini-app-product-icon {
  float: left;
  width: 52px;
  height: 52px;
  margin: 0 11px 7px 0;
  border: 1px solid rgba(44, 97, 121, .16);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 15px rgba(24, 78, 101, .14);
  object-fit: cover;
}

.submenu-item.is-permission-locked {
  opacity: .68;
  cursor: not-allowed;
  filter: saturate(.35);
}
.submenu-item.is-permission-locked:hover {
  transform: none;
  border-color: rgba(125, 134, 142, .35);
  background: rgba(239, 241, 242, .9);
  color: #6d757b;
  box-shadow: none;
}

.approval-flow-diagram { gap: 7px; }
.approval-flow-node {
  min-width: 132px;
  max-width: 154px;
  padding: 8px 9px;
  border-radius: 10px;
}
.approval-flow-node > header { gap: 5px; }
.approval-flow-node > header strong { font-size: 11px; }
.approval-flow-node > footer { padding-top: 6px; }

.workflow-diagnostic-route { gap: 4px; }
.workflow-diagnostic-node {
  min-width: 128px;
  padding: 6px 7px;
  gap: 5px;
  border-radius: 8px;
}
.workflow-diagnostic-node > i { width: 18px; height: 18px; font-size: 9px; }
.workflow-diagnostic-node strong { font-size: 11px; }
.workflow-diagnostic-node small { max-width: 145px; font-size: 9px; }
.workflow-route-arrow { min-width: 10px; font-size: 11px; }

.workflow-node-canvas { gap: 26px; }
.workflow-node-card {
  flex: 0 0 268px;
  width: 268px;
  max-width: 268px;
  gap: 8px;
  padding: 10px;
  border-radius: 10px;
}
.workflow-node-card:not(:last-child)::after { right: -20px; width: 13px; }
.workflow-node-card > header { grid-template-columns: 28px minmax(0,1fr) auto; gap: 6px; padding-bottom: 7px; }

@media (max-width: 640px) {
  .workflow-node-card {
    flex-basis: calc(100vw - 70px);
    width: calc(100vw - 70px);
    max-width: calc(100vw - 70px);
  }
}

.approval-inbox-panel {
  grid-column: 1 / -1;
  overflow: hidden;
  border-left: 3px solid #2f73b8;
}

.approval-inbox-header {
  min-height: 58px;
  background: #f7fbff;
}

.approval-inbox-header > div {
  display: grid;
  gap: 3px;
}

.approval-inbox-header h2,
.approval-inbox-header p {
  margin: 0;
}

.approval-inbox-header p {
  color: #66788b;
  font-size: 11px;
}

.approval-inbox-header > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px;
  border: 1px solid #9ebbd7;
  border-radius: 5px;
  background: #eaf3fc;
  color: #225b91;
  font-size: 11px;
  font-weight: 800;
}

.approval-inbox-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.approval-inbox-table {
  min-width: 960px;
}

.approval-inbox-table td:nth-child(2),
.approval-inbox-table td:nth-child(5),
.approval-inbox-table td:nth-child(6),
.approval-inbox-table td:nth-child(7),
.approval-inbox-table td:nth-child(8) {
  white-space: nowrap;
}

.approval-review-button {
  color: #185f49;
}

.approval-inbox-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 74px;
  color: #517064;
  background: #fbfdfc;
  font-size: 12px;
}

.approval-handled-panel { border-left-color: #5d806c; }
.approval-handled-header { background: #f4f8f5; }
.approval-handled-header > span { border-color: #bad0c2; background: #e9f2ec; color: #315f49; }
.approval-handled-table { min-width: 900px; }
.approval-handled-table td:nth-child(2),
.approval-handled-table td:nth-child(6),
.approval-handled-table td:nth-child(7) { white-space: nowrap; }

.approval-inbox-empty svg {
  color: #20a87a;
}

.approval-empty {
  min-height: 44px;
  padding: 12px 14px;
  border-bottom: 1px solid #536273;
  color: #6a3e06;
  background: #fff8e7;
  font-size: 13px;
  line-height: 1.45;
}

.approval-grid .sheet-field {
  grid-column: 1 / -1;
}

.finance-source-table td {
  white-space: normal;
  line-height: 1.45;
}

.permission-scope-table td {
  white-space: normal;
  line-height: 1.45;
}

.permission-section {
  overflow-x: auto !important;
}

.permission-reset-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 16px 12px;
  padding: 10px 12px;
  border: 1px solid #decaa8;
  border-radius: 10px;
  background: #fffaf1;
  color: #5c4930;
}

.permission-reset-bar > div,
.permission-reset-bar > div > span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.permission-reset-bar > div > span {
  align-items: flex-start;
  flex-direction: column;
  gap: 2px;
}

.permission-reset-bar small {
  color: #78684f;
  font-size: 12px;
}

.permission-reset-bar button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid #b98545;
  border-radius: 8px;
  background: #ffffff;
  color: #8a5317;
  font-weight: 700;
}

.permission-reset-bar button:hover:not(:disabled) {
  background: #fff1db;
}

.permission-reset-bar button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

@media (max-width: 760px) {
  .permission-reset-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .permission-reset-bar button {
    width: 100%;
  }
}

.permission-table {
  min-width: 760px;
}

.approval-permission-table {
  min-width: 760px;
}

.workflow-list-table td {
  vertical-align: top;
}

.workflow-list-table {
  min-width: 1320px;
}

.workflow-list-table th:first-child,
.workflow-list-table td:first-child {
  width: 250px;
}

.workflow-list-table th:nth-child(2),
.workflow-list-table td:nth-child(2) {
  width: 260px;
}

.workflow-list-table th:nth-child(3),
.workflow-list-table td:nth-child(3) {
  width: 220px;
}

.workflow-steps-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  white-space: normal;
}

.workflow-steps-cell span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid #c9d8e8;
  border-radius: 5px;
  background: #f6fbff;
  color: #26364a;
  font-size: 12px;
}

.workflow-step-table {
  min-width: 1120px;
}

.workflow-step-table input[data-workflow-field="approvalStep"] {
  width: 100%;
  min-height: 32px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  padding: 5px 8px;
}

.permission-table th,
.permission-table td {
  text-align: center;
}

.permission-table th:first-child,
.permission-table td:first-child,
.approval-permission-table th:nth-child(-n+4),
.approval-permission-table td:nth-child(-n+4) {
  text-align: left;
}

.permission-check {
  display: inline-flex !important;
  grid-template-columns: none !important;
  align-items: center;
  justify-content: center;
  gap: 5px !important;
  min-height: 24px !important;
  border: 0 !important;
  background: transparent !important;
  color: #405064 !important;
  font-size: 12px !important;
}

.permission-check > span {
  display: inline !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #405064 !important;
  font-weight: 600 !important;
}

.permission-check input[type="checkbox"] {
  width: 16px !important;
  height: 16px;
  min-height: 16px !important;
  padding: 0 !important;
  border: 1px solid #9fb1c5 !important;
  accent-color: #2f73df;
}

.finance-print-sheet {
  display: none;
}

.business-form .form-grid-4 > label:not(.sheet-field),
.business-form .line-grid > label:not(.sheet-field),
.business-form .form-section > label:not(.sheet-field),
.business-form .form-row > label:not(.sheet-field),
.business-form > label:not(.sheet-field) {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 0;
  min-height: 42px;
  border-right: 1px solid #536273;
  border-bottom: 1px solid #536273;
  background: #ffffff;
  color: #2d3642;
  font-size: 13px;
}

.business-form > label:not(.sheet-field) {
  border-left: 1px solid #536273;
  border-top: 1px solid #536273;
}

.business-form .form-grid-4 > label.contract-title-compact:not(.sheet-field) {
  grid-template-columns: 100px minmax(0, 1fr);
}

.business-form .form-grid-4 > label.sales-partner-wide:not(.sheet-field) {
  grid-template-columns: 168px minmax(0, 1fr);
}

.business-form .form-grid-4 > label:not(.sheet-field) > span,
.business-form .line-grid > label:not(.sheet-field) > span,
.business-form .form-section > label:not(.sheet-field) > span,
.business-form .form-row > label:not(.sheet-field) > span,
.business-form > label:not(.sheet-field) > span {
  display: grid;
  place-items: center;
  padding: 8px 9px;
  border-right: 1px solid #536273;
  background: #dce8f5;
  color: #213248;
  font-weight: 700;
  text-align: center;
}

.business-form .form-grid-4 > label:not(.sheet-field) input,
.business-form .form-grid-4 > label:not(.sheet-field) select,
.business-form .form-grid-4 > label:not(.sheet-field) textarea,
.business-form .line-grid > label:not(.sheet-field) input,
.business-form .line-grid > label:not(.sheet-field) select,
.business-form .line-grid > label:not(.sheet-field) textarea,
.business-form .form-section > label:not(.sheet-field) input,
.business-form .form-section > label:not(.sheet-field) select,
.business-form .form-section > label:not(.sheet-field) textarea,
.business-form .form-row > label:not(.sheet-field) input,
.business-form .form-row > label:not(.sheet-field) select,
.business-form .form-row > label:not(.sheet-field) textarea,
.business-form > label:not(.sheet-field) input,
.business-form > label:not(.sheet-field) select,
.business-form > label:not(.sheet-field) textarea {
  min-height: 40px;
  border: 0;
  border-radius: 0;
  background: #ffffff;
}

.business-form .form-grid-4 > label.payroll-evidence-field {
  grid-template-columns: 126px minmax(0, 1fr);
}

.evidence-control {
  display: grid;
  grid-template-columns: minmax(92px, 0.8fr) minmax(150px, 1.2fr);
  min-width: 0;
  background: #fff;
}

.payroll-import-document {
  grid-template-columns: minmax(0, 1fr);
}

.payroll-import-file-field .evidence-upload {
  min-height: 46px;
  padding: 7px 10px;
}

.payroll-import-file-field .evidence-file-name {
  font-size: 12px;
}

.payroll-batch-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #c9d9ea;
  background: #f7fbff;
}

.payroll-batch-summary > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  min-height: 54px;
  padding: 9px 12px;
  border-right: 1px solid #d9e5f1;
}

.payroll-batch-summary > div:last-child {
  border-right: 0;
}

.payroll-batch-summary span {
  color: #476078;
  font-size: 12px;
  font-weight: 700;
}

.payroll-batch-summary strong {
  color: #174f91;
  font-size: 20px;
  line-height: 1;
}

.payroll-batch-summary small {
  margin-left: 3px;
  color: #718096;
  font-size: 11px;
}

.payroll-batch-summary .batch-readiness {
  grid-column: 2 / 4;
  font-size: 14px;
  white-space: nowrap;
}

.employee-entry-mode {
  position: relative;
  z-index: 3;
  display: flex;
  gap: 8px;
  padding: 8px;
  border: 1px solid #c8d7e7;
  background: #f5f9fd;
}

.employee-entry-mode button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 18px;
  border: 1px solid transparent;
  background: transparent;
  color: #405a73;
  font-weight: 700;
  cursor: pointer;
}

.employee-entry-mode button.active {
  border-color: #8eb3dc;
  background: #fff;
  color: #14559b;
  box-shadow: 0 2px 7px rgba(34, 85, 135, 0.1);
}

.employee-batch-panel[hidden],
[data-employee-single-panel][hidden] {
  display: none !important;
}

.employee-entry-modal {
  width: min(1480px, calc(100vw - 20px));
}

.employee-entry-modal .business-form {
  background: #eef4f8;
}

.employee-entry-modal [data-employee-single-panel] {
  display: grid;
  gap: 12px;
  padding: 12px;
}

.employee-entry-modal [data-employee-single-panel] > .form-section {
  overflow: hidden;
  border: 1px solid #d3e0e8;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(28, 61, 85, 0.045);
}

.employee-entry-modal [data-employee-single-panel] > .form-section > .form-section-title {
  min-height: 48px;
  padding: 11px 15px;
  border-bottom: 1px solid #dbe6ed;
  background: linear-gradient(90deg, #edf5f8 0%, #f8fbfc 72%);
}

.employee-entry-modal [data-employee-single-panel] > .form-section > :not(.form-section-title) {
  margin: 0;
}

.employee-entry-modal [data-employee-single-panel] > .form-section > .form-grid-4,
.employee-entry-modal .employee-identity-layout,
.employee-entry-modal .employee-choice-layout,
.employee-entry-modal .employee-document-grid,
.employee-entry-modal .employee-file-summary {
  padding: 14px;
}

.employee-entry-modal [data-employee-single-panel] > .form-section > .employee-choice-layout {
  padding-bottom: 8px;
}

.employee-entry-modal [data-employee-single-panel] > .form-section > .employee-choice-layout + .form-grid-4 {
  padding-top: 6px;
}

.employee-identity-layout {
  display: grid;
  grid-template-columns: 174px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}

.employee-core-fields {
  align-content: start;
}

.employee-photo-upload,
.employee-document-upload {
  position: relative;
  cursor: pointer;
}

.employee-photo-upload > input,
.employee-document-upload > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.employee-photo-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 174px;
  padding: 13px;
  border: 1px dashed #7fa8be;
  border-radius: 12px;
  color: #2c6179;
  background: linear-gradient(155deg, #f7fbfd, #eaf3f7);
  text-align: center;
}

.employee-photo-upload:hover,
.employee-photo-upload:focus-within {
  border-color: #276d8b;
  background: #edf7fb;
  box-shadow: inset 0 0 0 1px rgba(39, 109, 139, 0.1);
}

.employee-photo-preview {
  width: 78px;
  height: 92px;
  display: grid;
  place-items: center;
  overflow: hidden;
  margin-bottom: 9px;
  border: 3px solid #fff;
  border-radius: 11px;
  color: #7c9cab;
  background: #dce9ef;
  box-shadow: 0 5px 13px rgba(38, 83, 105, 0.14);
}

.employee-photo-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.employee-photo-upload strong {
  font-size: 13px;
}

.employee-photo-upload small,
.employee-photo-upload i {
  max-width: 145px;
  overflow: hidden;
  color: #6f8794;
  font-size: 10px;
  font-style: normal;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-photo-upload em,
.employee-document-upload em {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 7px;
  color: #fff;
  background: #2d708d;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.employee-photo-upload i {
  margin-top: 6px;
}

.required-mark {
  display: inline-flex;
  margin-left: 4px;
  padding: 1px 4px;
  border-radius: 4px;
  color: #b4473b;
  background: #fff0ed;
  font-size: 8px;
  font-weight: 700;
  vertical-align: middle;
}

.employee-choice-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.employee-choice-group {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 10px 11px 11px;
  border: 1px solid #d5e1e8;
  border-radius: 10px;
  background: #f8fbfc;
}

.employee-contract-upload {
  grid-column: 1 / -1;
  min-height: 176px;
  border-style: solid;
  border-color: #8db6c8;
  background: linear-gradient(135deg, #eef8fb 0%, #f8fbfd 62%, #e8f4f8 100%);
  box-shadow: 0 8px 22px rgba(36, 96, 121, .08);
}

.employee-contract-upload .employee-document-icon {
  color: #fff;
  background: linear-gradient(145deg, #217a96, #175a78);
  box-shadow: 0 7px 16px rgba(23, 90, 120, .22);
}

.employee-contract-upload strong::after {
  content: "拍照识别 · 自动归档";
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  color: #17647f;
  background: #d9eef5;
  font-size: 9px;
  font-weight: 700;
  vertical-align: 1px;
}

.employee-choice-group legend {
  padding: 0 7px;
  color: #345c70;
  font-size: 11px;
  font-weight: 800;
}

.employee-choice-group label {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.employee-choice-group input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.employee-choice-group span {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 8px;
  border: 1px solid #d3dfe6;
  border-radius: 8px;
  color: #5d7481;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
}

.employee-choice-group input:checked + span {
  border-color: #4387a4;
  color: #245e77;
  background: #e4f2f7;
  box-shadow: inset 0 0 0 1px rgba(67, 135, 164, 0.13);
}

.employee-choice-group input:focus-visible + span {
  outline: 2px solid #2e78a0;
  outline-offset: 2px;
}

.business-form .form-grid-4 > label.employee-address-field {
  grid-template-columns: 124px minmax(0, 1fr);
}

.employee-calculated-field input[readonly] {
  color: #1d647f !important;
  background: #eef7fa !important;
  font-weight: 800;
}

.business-form .form-grid-4 > label.employee-calculated-field small {
  grid-column: 2;
  margin-top: -4px;
  padding: 0 9px 6px;
  color: #6a8491;
  font-size: 9px;
  line-height: 1.35;
}

.employee-payroll-callout {
  display: grid;
  grid-template-columns: 42px auto minmax(260px, 1fr);
  gap: 11px;
  align-items: center;
  margin: 14px 14px 0;
  padding: 11px 14px;
  border: 1px solid #b9d7cf;
  border-radius: 10px;
  color: #24574d;
  background: linear-gradient(100deg, #eaf7f2, #f8fcfa);
}

.employee-payroll-callout > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: #25806d;
}

.employee-payroll-callout div {
  display: grid;
  gap: 2px;
}

.employee-payroll-callout small {
  color: #67857e;
  font-size: 10px;
}

.employee-payroll-callout strong {
  color: #17614f;
  font-size: 19px;
}

.employee-payroll-callout p {
  margin: 0;
  color: #56756e;
  font-size: 11px;
  text-align: right;
}

.employee-insurance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  padding: 14px;
}

.employee-insurance-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d4e1e8;
  border-radius: 11px;
  background: #fbfdfe;
}

.employee-insurance-card > header {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 47px;
  padding: 9px 12px;
  border-bottom: 1px solid #dce7ed;
  color: #315f73;
  background: linear-gradient(90deg, #edf6f8, #f8fbfc);
}

.employee-insurance-card > header > span {
  width: 31px;
  height: 31px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: #347b92;
}

.employee-insurance-card > header div {
  display: grid;
  gap: 1px;
}

.employee-insurance-card > header strong {
  font-size: 12px;
}

.employee-insurance-card > header small {
  color: #78909b;
  font-size: 9px;
}

.employee-insurance-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 11px;
}

.employee-insurance-fields label {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid #d9e3e9;
  border-radius: 8px;
  background: #fff;
}

.employee-insurance-fields label > span {
  padding: 0 8px;
  color: #56717e;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.employee-insurance-fields input {
  width: 100%;
  min-width: 0;
  min-height: 35px;
  padding: 7px 9px;
  border: 0;
  border-left: 1px solid #d9e3e9;
  outline: 0;
  color: #234e61;
  background: #fff;
  text-align: right;
}

.employee-insurance-fields input:focus {
  background: #f2f9fc;
  box-shadow: inset 0 0 0 2px rgba(45, 112, 141, .15);
}

.employee-insurance-fields-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.employee-contribution-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 220px)) minmax(300px, 1fr);
  gap: 10px;
  align-items: stretch;
  margin: 0 14px 14px;
  padding: 10px;
  border-radius: 10px;
  color: #2d5a6d;
  background: #edf5f8;
}

.employee-contribution-summary label {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid #c8dde6;
  border-radius: 8px;
  background: #fff;
}

.employee-contribution-summary label span {
  color: #637b87;
  font-size: 10px;
  font-weight: 700;
}

.employee-contribution-summary label strong {
  color: #1d647f;
  font-size: 16px;
  text-align: right;
}

.employee-contribution-summary p {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0 8px;
  color: #617985;
  font-size: 10px;
  line-height: 1.6;
}

.employee-document-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.employee-document-upload {
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 2px 10px;
  align-items: center;
  min-height: 82px;
  padding: 12px;
  border: 1px dashed #9ab7c6;
  border-radius: 10px;
  color: #315f73;
  background: #f8fbfc;
}

.employee-document-upload:hover,
.employee-document-upload:focus-within,
.employee-document-upload.has-file {
  border-color: #4a8aa6;
  background: #eef7fa;
}

.employee-document-icon {
  grid-row: 1 / 3;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #2f728e;
  background: #dfeef4;
}

.employee-document-upload strong {
  min-width: 0;
  align-self: end;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-document-upload small {
  min-width: 0;
  align-self: start;
  overflow: hidden;
  color: #748995;
  font-size: 9px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-document-upload em {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  margin: 0;
  white-space: nowrap;
}

.employee-document-actions {
  grid-column: 3;
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.employee-document-actions label {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 32px;
  padding: 7px 10px;
  border: 1px solid #3f86a2;
  border-radius: 8px;
  color: #fff;
  background: #2d708d;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.employee-document-actions label:last-child {
  border-color: #167765;
  background: #19806b;
}

.employee-document-actions button {
  min-height: 32px;
  padding: 7px 10px;
  border: 1px solid #a96c19;
  border-radius: 8px;
  color: #fff;
  background: #bc7b21;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.employee-document-actions button:disabled {
  border-color: #b8c7ce;
  color: #758a94;
  background: #dfe7ea;
  cursor: not-allowed;
}

.employee-document-actions input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.employee-contract-recognition-summary {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  padding: 10px 0 0;
  border-top: 1px solid #c9dee7;
}

.employee-contract-recognition-summary > span {
  color: #496d7d;
  font-size: 10px;
  line-height: 1.55;
}

.employee-contract-upload.is-confirmed {
  border-color: #55a87f;
  background: linear-gradient(135deg, #edf9f3, #f8fcfa 65%, #e4f5ed);
}

.employee-contract-upload.is-confirmed .employee-contract-confirm-button {
  border-color: #237a52;
  background: #27865b;
}

.employee-contract-upload > [data-evidence-status] {
  grid-column: 1 / -1;
  justify-self: stretch;
  margin-top: 5px;
  padding: 5px 9px;
  border-radius: 7px;
  color: #2b6276;
  background: #e1f0f5;
  font-size: 10px;
  text-align: right;
}

.employee-contract-upload > [data-evidence-status][data-state=success] {
  color: #236341;
  background: #e6f5eb;
}

.employee-contract-upload > [data-evidence-status][data-state=warning] {
  color: #8a6418;
  background: #fff4d6;
}

.employee-contract-upload > [data-evidence-status][data-state=error] {
  color: #a34637;
  background: #fde9e4;
}

.employee-contract-recognition-workspace {
  position: fixed;
  inset: 0;
  z-index: 1800;
  display: grid;
  place-items: center;
  padding: 18px;
}

.employee-contract-recognition-workspace[hidden] {
  display: none;
}

.employee-contract-recognition-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 29, 43, .68);
  backdrop-filter: blur(5px);
}

.employee-contract-recognition-panel {
  position: relative;
  z-index: 1;
  width: min(1380px, 96vw);
  height: min(900px, 95vh);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid #a9c9d7;
  border-radius: 18px;
  background: #f5fafc;
  box-shadow: 0 28px 80px rgba(4, 29, 44, .34);
}

.employee-contract-recognition-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px;
  color: #fff;
  background: linear-gradient(135deg, #123f5b, #1d6e82);
}

.employee-contract-recognition-panel > header > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.employee-contract-recognition-panel > header span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #bfeaf0;
  font-size: 11px;
  font-weight: 800;
}

.employee-contract-recognition-panel > header strong {
  font-size: 21px;
  letter-spacing: .03em;
}

.employee-contract-recognition-panel > header small {
  color: #d3e8ed;
  font-size: 10px;
  line-height: 1.55;
}

.employee-contract-recognition-panel > header .icon-button {
  flex: 0 0 auto;
  color: #fff;
  background: rgba(255,255,255,.12);
}

.employee-contract-recognition-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 18px;
  border-bottom: 1px solid #cbdde5;
  color: #496b7a;
  background: #eaf4f7;
  font-size: 10px;
}

.employee-contract-recognition-editor {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  padding: 16px 18px;
}

.employee-contract-recognition-editor > span {
  color: #2a5a6d;
  font-size: 12px;
  font-weight: 800;
}

.employee-contract-recognition-editor textarea {
  width: 100%;
  height: 100%;
  min-height: 480px;
  resize: none;
  overflow: auto;
  padding: 22px clamp(18px, 4vw, 58px);
  border: 1px solid #b5ced9;
  border-radius: 12px;
  outline: 0;
  color: #173f52;
  background: #fff;
  box-shadow: inset 0 1px 5px rgba(33, 77, 96, .07);
  font-family: "Microsoft YaHei", "Noto Sans SC", sans-serif;
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: .015em;
  white-space: pre-wrap;
}

.employee-contract-recognition-editor textarea:focus {
  border-color: #3c8ba6;
  box-shadow: 0 0 0 4px rgba(47, 132, 161, .12), inset 0 1px 5px rgba(33, 77, 96, .05);
}

.employee-contract-recognition-panel > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 18px;
  border-top: 1px solid #cbdde5;
  background: #fff;
}

.employee-contract-recognition-panel > footer p {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  color: #607985;
  font-size: 10px;
  line-height: 1.55;
}

.employee-contract-recognition-panel > footer p svg {
  flex: 0 0 auto;
  color: #27805f;
}

.employee-contract-recognition-panel > footer > div {
  display: flex;
  gap: 9px;
  flex: 0 0 auto;
}

.employee-file-summary {
  display: flex;
  align-items: center;
  min-height: 34px;
  margin: 0 14px 14px !important;
  padding: 7px 10px !important;
  border-radius: 8px;
  color: #687f8c;
  background: #eef3f6;
  font-size: 10px;
}

.employee-file-summary.has-file {
  color: #226347;
  background: #e8f5ed;
}

.employee-batch-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: stretch;
}

.employee-batch-file {
  position: relative;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 12px 16px;
  border: 1px dashed #7aa8d7;
  background: #f7fbff;
  color: #174f91;
  cursor: pointer;
}

.employee-batch-file:hover {
  border-color: #2269ad;
  background: #eef7ff;
}

.employee-batch-file strong {
  white-space: nowrap;
}

.employee-batch-file small {
  overflow: hidden;
  color: #687d91;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-batch-file input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.employee-batch-actions {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.employee-batch-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 150px;
}

.employee-batch-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-top: 12px;
  border: 1px solid #c9d9ea;
  background: #fff;
}

.employee-batch-summary > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  min-height: 58px;
  padding: 10px 13px;
  border-right: 1px solid #d9e5f1;
}

.employee-batch-summary > div:last-child {
  border-right: 0;
}

.employee-batch-summary span,
.employee-batch-summary small {
  color: #63798e;
  font-size: 12px;
}

.employee-batch-summary strong {
  color: #174f91;
  font-size: 21px;
}

.employee-batch-summary > div:last-child strong {
  grid-column: 1 / -1;
  margin-top: 3px;
  font-size: 13px;
}

.employee-batch-summary strong[data-state="error"] {
  color: #b42318;
}

.employee-batch-summary strong[data-state="ready"] {
  color: #087443;
}

.employee-batch-summary [data-tone="new"] strong { color: #1769aa; }
.employee-batch-summary [data-tone="enrich"] strong { color: #087443; }
.employee-batch-summary [data-tone="skip"] strong { color: #667085; }
.employee-batch-summary [data-tone="conflict"] strong { color: #b42318; }

.employee-batch-guidance {
  display: grid;
  gap: 5px;
  margin-top: 12px;
  padding: 11px 14px;
  border-left: 3px solid #4b8bcc;
  background: #f6faff;
  color: #526a82;
  font-size: 12px;
  line-height: 1.65;
}

.employee-batch-guidance strong {
  color: #245b91;
}

.employee-batch-preview {
  max-height: 360px;
  margin-top: 12px;
  overflow: auto;
  border: 1px solid #d4e0ec;
}

.employee-batch-preview table {
  min-width: 1080px;
}

.employee-batch-preview thead {
  position: sticky;
  top: 0;
  z-index: 1;
}

.employee-batch-preview tr.employee-import-error {
  background: #fff4f2;
}

.employee-import-status {
  color: #087443;
  font-size: 12px;
  font-weight: 700;
}

.employee-import-error .employee-import-status {
  color: #b42318;
}

.employee-import-action {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #175d91;
  background: #eaf4fc;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.employee-import-action[data-action-type="enrich"] { color: #087443; background: #e8f6ee; }
.employee-import-action[data-action-type="skip"] { color: #5f6b78; background: #eef1f4; }
.employee-import-action[data-action-type="conflict"] { color: #b42318; background: #fff0ed; }
.employee-import-fillable { max-width: 330px; color: #4f677a; font-size: 11px; line-height: 1.45; }
.employee-batch-preview td small { display: block; margin-top: 2px; color: #778898; }

.employee-contact-grid {
  border-top: 1px dashed #dbe6ed;
}

.empty-table-cell {
  height: 58px;
  color: var(--muted);
  text-align: center !important;
}

@media (max-width: 980px) {
  .employee-batch-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .employee-batch-summary > div:nth-child(3n) { border-right: 0; }
  .employee-identity-layout {
    grid-template-columns: 142px minmax(0, 1fr);
  }

  .employee-document-grid {
    grid-template-columns: 1fr;
  }

  .employee-insurance-grid {
    grid-template-columns: 1fr;
  }

  .employee-contribution-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .employee-contribution-summary p {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .employee-batch-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-entry-modal {
    width: calc(100vw - 12px);
  }

  .employee-entry-modal [data-employee-single-panel] {
    padding: 7px;
  }

  .employee-identity-layout,
  .employee-choice-layout {
    grid-template-columns: 1fr;
  }

  .employee-photo-upload {
    min-height: 150px;
  }

  .employee-choice-group {
    grid-template-columns: 1fr;
  }

  .employee-choice-group span {
    justify-content: flex-start;
  }

  .employee-document-upload {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .employee-document-upload em {
    grid-column: 2;
    grid-row: 3;
    justify-self: start;
    margin-top: 5px;
  }

  .employee-document-actions {
    grid-column: 2;
    grid-row: 3;
    justify-content: flex-start;
    margin-top: 6px;
  }

  .employee-contract-recognition > label {
    grid-template-columns: 1fr;
  }

  .employee-payroll-callout,
  .employee-insurance-fields,
  .employee-contribution-summary {
    grid-template-columns: 1fr;
  }

  .employee-payroll-callout p {
    text-align: left;
  }

  .employee-contribution-summary p {
    grid-column: auto;
  }
}

.business-form .form-grid-4 > label.payroll-evidence-field .evidence-control > input {
  width: 100%;
  border-right: 1px solid #d9e1ea;
  text-align: right;
}

.evidence-upload {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 5px 7px;
  background: #f7fbff;
}

.evidence-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 30px;
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid #7aa6d8;
  border-radius: 4px;
  background: #eaf3ff;
  color: #174f91;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.evidence-upload-button:hover {
  border-color: #2f73b8;
  background: #dcecff;
}

.evidence-camera-button {
  border-color: #4b9b82;
  color: #176a57;
  background: #e4f5ef;
}

.evidence-camera-button:hover {
  border-color: #23775f;
  background: #d5eee5;
}

.evidence-file-name {
  min-width: 0;
  overflow: hidden;
  color: #64748b;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-document-panel {
  display: grid;
  grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
  min-width: 0;
  border-bottom: 1px solid #536273;
  background: #ffffff;
}

.purchase-request-table-wrap {
  height: 198px;
  overflow: auto;
  scrollbar-gutter: stable;
  scrollbar-color: #8fa9c3 #edf3f8;
  scrollbar-width: thin;
  border-bottom: 1px solid #536273;
  background: #ffffff;
}

.purchase-request-table-wrap::-webkit-scrollbar,
.contract-document-preview::-webkit-scrollbar,
.contract-preview-text pre::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

.purchase-request-table-wrap::-webkit-scrollbar-track,
.contract-document-preview::-webkit-scrollbar-track,
.contract-preview-text pre::-webkit-scrollbar-track {
  background: #edf3f8;
}

.purchase-request-table-wrap::-webkit-scrollbar-thumb,
.contract-document-preview::-webkit-scrollbar-thumb,
.contract-preview-text pre::-webkit-scrollbar-thumb {
  border: 2px solid #edf3f8;
  border-radius: 6px;
  background: #8fa9c3;
}

.purchase-request-pick-table {
  width: 100%;
  min-width: 1040px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #2f3e4f;
  font-size: 11px;
}

.purchase-request-pick-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 34px;
  padding: 7px 8px;
  border-right: 1px solid #91a5ba;
  border-bottom: 1px solid #536273;
  background: #cbddef;
  color: #20354d;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
}

.purchase-request-pick-table td {
  height: 42px;
  padding: 6px 8px;
  border-right: 1px solid #cbd5df;
  border-bottom: 1px solid #d7dfe8;
  background: #ffffff;
  text-align: center;
  vertical-align: middle;
}

.purchase-request-pick-table tbody tr {
  cursor: pointer;
}

.purchase-request-pick-table tbody tr:hover td {
  background: #f0f7ff;
}

.purchase-request-pick-table tbody tr.selected td {
  background: #e2f2ec;
  box-shadow: inset 0 1px #61a98d, inset 0 -1px #61a98d;
}

.purchase-request-pick-table td strong,
.purchase-request-pick-table td small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.purchase-request-pick-table td strong {
  color: #203b59;
  font-size: 11px;
}

.purchase-request-pick-table td small {
  margin-top: 2px;
  color: #718195;
  font-size: 10px;
}

.purchase-request-pick-table .numeric-cell {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.request-pick-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid #6f9dcc;
  border-radius: 4px;
  background: #e9f3fd;
  color: #18578f;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.purchase-selection-status {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 12px;
  background: #eef5fc;
  color: #365b82;
  font-size: 11px;
  font-weight: 700;
}

.request-window-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

.business-form .form-section-title .request-window-meta b {
  flex: 0 0 auto;
  padding: 3px 7px;
  border: 1px solid #79a2c9;
  border-radius: 4px;
  background: #edf6ff;
  color: #18588f;
  font-size: 11px;
}

.business-form .form-section-title .request-window-meta i {
  overflow: hidden;
  color: #4b6077;
  font-size: 11px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.purchase-request-pick-table tbody tr.selected + tr td {
  border-top-color: #61a98d;
}

.purchase-request-pick-table tbody tr.selected .request-pick-button {
  border-color: #3d8c70;
  background: #d9eee6;
  color: #17644d;
}

.purchase-contract-allocation-section {
  background: linear-gradient(180deg, #f7fbff 0, #fff 92px);
}

.purchase-contract-allocation-empty {
  display: grid;
  place-items: center;
  gap: 5px;
  min-height: 118px;
  margin: 12px;
  border: 1px dashed #8aa9c7;
  border-radius: 8px;
  background: rgba(235, 244, 252, 0.75);
  color: #55718e;
  text-align: center;
}

.purchase-contract-allocation-empty strong {
  color: #244a6f;
  font-size: 13px;
}

.purchase-contract-allocation-empty span {
  font-size: 11px;
}

.purchase-contract-allocation-wrap {
  max-height: 320px;
  overflow: auto;
  scrollbar-gutter: stable;
  border-bottom: 1px solid #c8d5e2;
}

.purchase-contract-allocation-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #304458;
  font-size: 11px;
}

.purchase-contract-allocation-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 8px;
  border-right: 1px solid #abc0d3;
  border-bottom: 1px solid #738aa0;
  background: #dce9f5;
  color: #24435f;
  text-align: center;
}

.purchase-contract-allocation-table td {
  padding: 8px;
  border-right: 1px solid #d4dee7;
  border-bottom: 1px solid #dbe4ec;
  background: #fff;
  text-align: center;
  vertical-align: middle;
}

.purchase-contract-allocation-table tbody tr:hover td {
  background: #f5faff;
}

.purchase-contract-allocation-table td:first-child {
  text-align: left;
}

.purchase-contract-allocation-table td strong,
.purchase-contract-allocation-table td small {
  display: block;
}

.purchase-contract-allocation-table td small {
  margin-top: 3px;
  color: #718498;
}

.purchase-contract-allocation-table input {
  width: 100%;
  min-height: 32px;
  padding: 5px 7px;
  border: 1px solid #9cb3c9;
  border-radius: 4px;
  background: #fbfdff;
  color: #163b5c;
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.purchase-contract-allocation-table input:focus {
  border-color: #2674b8;
  outline: 2px solid rgba(38, 116, 184, 0.14);
}

.contract-line-amount {
  color: #0c6d52;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.contract-line-remove {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #d6a7a7;
  border-radius: 5px;
  background: #fff4f4;
  color: #a33b3b;
  cursor: pointer;
}

.purchase-contract-total-bar {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 8px 14px;
  border-top: 1px solid #fff;
  background: #eaf3fb;
  color: #47637d;
  font-size: 12px;
}

.purchase-contract-total-bar strong {
  min-width: 138px;
  color: #0c6d52;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.purchase-contract-modal {
  width: min(1480px, calc(100vw - 28px));
  max-height: calc(100vh - 20px);
}

.purchase-contract-modal .purchase-request-table-wrap {
  height: 230px;
}

.purchase-contract-modal .contract-document-panel {
  grid-template-columns: minmax(330px, .72fr) minmax(600px, 1.28fr);
}

.upload-review-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.upload-delete-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #d39b9b;
  border-radius: 7px;
  background: #fff5f5;
  color: #a23b3b;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.upload-delete-button:hover:not(:disabled) {
  border-color: #b94a4a;
  background: #ffe8e8;
}

.upload-delete-button:disabled {
  border-color: #d5dde1;
  background: #eef2f4;
  color: #94a2a9;
  cursor: not-allowed;
}

.employee-photo-upload .employee-upload-delete {
  position: relative;
  z-index: 2;
  justify-self: center;
  min-height: 28px;
  margin-top: 2px;
  padding: 4px 8px;
}

.contract-original-file-preview {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 9px;
  min-height: 390px;
  padding: 24px;
  background: linear-gradient(150deg,#f5f9fc,#e8f1f8);
  color: #315a78;
  text-align: center;
}

.contract-original-file-preview strong { color:#173f5d; font-size:15px; }
.contract-original-file-preview span { max-width:560px; color:#627c8e; font-size:11px; line-height:1.7; }
.contract-original-file-preview a { display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:7px;background:#246b9e;color:#fff;font-size:11px;font-weight:800;text-decoration:none; }

.contract-document-upload {
  display: grid;
  align-content: center;
  gap: 12px;
  min-width: 0;
  padding: 18px;
  border-right: 1px solid #536273;
  background: #f7fbff;
}

.contract-document-label {
  display: grid;
  gap: 3px;
}

.contract-document-label span {
  color: #213248;
  font-size: 13px;
  font-weight: 800;
}

.contract-document-label strong {
  color: #61758a;
  font-size: 11px;
  font-weight: 600;
}

.contract-document-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid #2f73b8;
  border-radius: 5px;
  background: #e4f0fd;
  color: #174f91;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.contract-document-button:hover {
  border-color: #174f91;
  background: #d5e8fb;
}

.contract-document-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.contract-document-camera-button {
  border-color: #29846d;
  color: #176c59;
  background: #e3f5ef;
}

.contract-document-camera-button:hover {
  border-color: #176c59;
  background: #d4eee5;
}

.contract-document-confirm {
  min-height: 38px;
  border: 1px solid #bd7d24;
  border-radius: 6px;
  color: #fff;
  background: #c28129;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.contract-document-confirm:disabled {
  border-color: #becbd3;
  color: #7b8c95;
  background: #e4eaed;
  cursor: not-allowed;
}

.contract-document-panel.is-upload-confirmed .contract-document-confirm {
  border-color: #267553;
  background: #2b815b;
}

.contract-document-meta {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.contract-document-meta strong,
.contract-document-meta span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-document-meta strong {
  color: #2f4055;
  font-size: 12px;
}

.contract-document-meta span {
  color: #6f8092;
  font-size: 11px;
}

.contract-document-input {
  display: none !important;
}

.contract-document-preview {
  display: grid;
  place-items: center;
  min-width: 0;
  height: 440px;
  overflow: auto;
  scrollbar-gutter: stable;
  scrollbar-color: #8fa9c3 #edf3f8;
  scrollbar-width: thin;
  background: #eef3f8;
}

.contract-document-preview iframe {
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
  background: #ffffff;
}

.contract-scan-review {
  width: 100%;
  height: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(340px, 1.1fr);
  background: #fff;
}

.contract-scan-review figure {
  min-width: 0;
  min-height: 0;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 10px;
  overflow: auto;
  border-right: 1px solid #c8d5e3;
  background: #e8eef3;
}

.contract-scan-review figure img,
.contract-image-only-preview img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.contract-image-only-preview {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 8px;
  place-items: center;
  padding: 12px;
  color: #6b7e8c;
  background: #edf3f7;
  font-size: 11px;
}

.contract-preview-text {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-width: 0;
  background: #ffffff;
}

.contract-preview-text header {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 10px;
  border-bottom: 1px solid #c8d5e3;
  background: #e7f0fa;
  color: #284967;
}

.contract-preview-text header strong {
  font-size: 12px;
}

.contract-preview-text header span {
  overflow: hidden;
  color: #63778d;
  font-size: 10px;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-preview-text pre {
  min-width: 0;
  margin: 0;
  padding: 14px 16px;
  overflow: auto;
  color: #26384a;
  font: 12px/1.75 "Microsoft YaHei", sans-serif;
  text-align: left;
  white-space: pre-wrap;
  word-break: break-word;
}

.contract-preview-empty,
.contract-preview-file {
  display: grid;
  justify-items: center;
  gap: 7px;
  max-width: 360px;
  padding: 20px;
  color: #5e7185;
  text-align: center;
}

.contract-preview-empty strong,
.contract-preview-file strong {
  max-width: 100%;
  overflow: hidden;
  color: #2a4059;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-preview-empty span,
.contract-preview-file span,
.contract-preview-file small {
  color: #718398;
  font-size: 11px;
  line-height: 1.55;
}

.contract-preview-empty.is-error,
.contract-preview-empty.is-error strong {
  color: #b42318;
}

.contract-document-flow {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 42px;
  padding: 7px 12px;
  border-top: 1px solid #c8d5e3;
  background: #edf5fd;
  color: #294b70;
  font-size: 11px;
  font-weight: 700;
}

.contract-document-flow span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.contract-document-flow i {
  display: inline-flex;
  color: #7a91aa;
}

.business-form .form-grid-4 > label.payroll-evidence-field .evidence-upload input[type="file"] {
  display: none !important;
}

.business-form .form-grid-4 > label.payroll-evidence-field > .evidence-status {
  display: flex;
  grid-column: 2;
  align-items: center;
  justify-content: flex-start;
  min-height: 26px;
  padding: 4px 9px;
  border-top: 1px solid #d9e1ea;
  border-right: 0;
  background: #f8fafc;
  color: #64748b;
  font-size: 11px;
  font-weight: 600;
  text-align: left;
}

.evidence-status::before {
  width: 7px;
  height: 7px;
  margin-right: 6px;
  border-radius: 50%;
  background: #94a3b8;
  content: '';
}

.evidence-status[data-state="reading"] {
  color: #245c9f;
}

.evidence-status[data-state="reading"]::before {
  background: #3b82f6;
  box-shadow: 0 0 0 3px #dbeafe;
}

.evidence-status[data-state="success"] {
  color: #16784b;
  background: #f1fbf6;
}

.evidence-status[data-state="success"]::before {
  background: #22a06b;
}

.evidence-status[data-state="warning"] {
  color: #9a5b08;
  background: #fffbeb;
}

.evidence-status[data-state="warning"]::before {
  background: #e69b18;
}

.evidence-status[data-state="error"] {
  color: #b42318;
  background: #fff5f5;
}

.evidence-status[data-state="error"]::before {
  background: #d92d20;
}

.business-form .form-grid-4 > label:not(.sheet-field) textarea,
.business-form .line-grid > label:not(.sheet-field) textarea,
.business-form .form-section > label:not(.sheet-field) textarea,
.business-form .form-row > label:not(.sheet-field) textarea,
.business-form > label:not(.sheet-field) textarea {
  min-height: 70px;
}

.business-form > .shared-data-strip + label:not(.sheet-field),
.business-form > label:not(.sheet-field) + label:not(.sheet-field) {
  border-top: 0;
}

.subsection-header {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fbfdff;
}

.subsection-header h3 {
  margin: 0;
  font-size: 14px;
}

.subsection-header span,
.print-help {
  color: var(--muted);
  font-size: 12px;
}

.compact-subsection {
  min-height: 34px;
  background: #f5f9fb;
}

.mini-attendance-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(110px, 1fr)) minmax(190px, 1.35fr);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.mini-attendance-summary > div {
  min-height: 72px;
  padding: 12px 14px;
  border-right: 1px solid var(--line);
}

.mini-attendance-summary > div:last-child { border-right: 0; }
.mini-attendance-summary span,
.mini-attendance-summary small { display: block; color: var(--muted); font-size: 12px; }
.mini-attendance-summary strong { display: block; margin-top: 5px; color: #174f69; font-size: 23px; }
.mini-attendance-summary .has-risk strong { color: #b54708; }
.mini-attendance-summary .mini-service-state strong { font-size: 15px; }
.mini-attendance-summary .mini-service-state small { margin-top: 6px; }

.mini-account-window {
  max-height: 286px;
  overflow: auto;
  border-bottom: 1px solid var(--line);
}

.mini-account-searchbar {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border: 1px solid #dfe8df;
  border-bottom: 0;
  background: rgba(249, 251, 247, .97);
  backdrop-filter: blur(8px);
}

.mini-account-searchbar label {
  display: flex;
  align-items: center;
  gap: 8px;
  width: min(520px, 100%);
  color: #56705c;
}

.mini-account-searchbar input {
  width: 100%;
  min-height: 38px;
  border: 1px solid #cddbcf;
  border-radius: 9px;
  background: #fff;
  padding: 7px 11px;
}

.mini-account-searchbar > span {
  white-space: nowrap;
  color: #67756a;
  font-size: 13px;
}

.mini-account-window thead { position: sticky; top: 59px; z-index: 2; }
.danger-action { color: #b42318 !important; }
.mini-geofence-form { border-top: 8px solid #edf2f5; }

.mini-bind-generate-action { color: #08745b !important; background: #edf9f5 !important; }
.mini-bind-modal { width: min(760px, calc(100vw - 32px)); }
.mini-bind-content { padding: 22px; background: #f4f8fb; }
.mini-bind-employee-banner {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 14px 16px;
  border: 1px solid #b8d5e3;
  border-radius: 14px;
  color: #173f58;
  background: linear-gradient(120deg,#edf8fc,#f0faf6);
}
.mini-bind-trademark { width: 54px; height: 54px; object-fit: contain; }
.mini-bind-employee-banner > div { min-width: 0; }
.mini-bind-employee-banner span,.mini-bind-employee-banner p { display: block; margin: 0; color: #6a8494; font-size: 11px; }
.mini-bind-employee-banner strong { display: block; margin: 3px 0; font-size: 17px; }
.mini-bind-employee-banner em { display: flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 999px; color: #8a6115; background: #fff4d6; font-size: 11px; font-style: normal; font-weight: 750; white-space: nowrap; }
.mini-bind-workspace { display: grid; grid-template-columns: minmax(240px,.9fr) minmax(0,1.1fr); gap: 14px; margin-top: 14px; }
.mini-bind-qr-panel,.mini-bind-code-panel { min-width: 0; border: 1px solid #d7e4eb; border-radius: 15px; background: #fff; box-shadow: 0 7px 18px rgba(25,65,90,.05); }
.mini-bind-qr-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 18px; }
.mini-bind-qr { width: 212px; min-height: 212px; display: grid; place-items: center; padding: 8px; border: 1px solid #d7e2e8; border-radius: 12px; background: #fff; line-height: 0; box-shadow: 0 5px 16px rgba(25,65,90,.08); }
.mini-bind-qr img,.mini-bind-qr canvas { display: block; max-width: 100%; height: auto !important; }
.mini-bind-qr-panel small { display: flex; align-items: flex-start; gap: 5px; margin-top: 12px; color: #5e7888; font-size: 10px; line-height: 1.55; text-align: center; }
.mini-bind-code-panel { display: flex; flex-direction: column; align-items: stretch; justify-content: center; padding: 21px; }
.mini-bind-code-panel > span { color: #718695; font-size: 11px; text-align: center; }
.mini-bind-number { display: block; margin: 10px 0 14px; padding: 10px 14px; border: 1px solid #83b8ce; border-radius: 10px; color: #075985; background: #eef8fb; font-size: 34px; letter-spacing: 8px; line-height: 1.15; text-align: center; }
.mini-bind-code-panel dl { display: grid; gap: 7px; margin: 0 0 12px; }
.mini-bind-code-panel dl > div { display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 8px; padding-bottom: 7px; border-bottom: 1px dashed #dbe5eb; }
.mini-bind-code-panel dt { color: #78909d; font-size: 10px; }
.mini-bind-code-panel dd { min-width: 0; margin: 0; color: #2e4c5e; font-size: 11px; font-weight: 750; overflow-wrap: anywhere; }
.mini-bind-code-panel button { align-self: center; margin-top: 2px; }
.mini-bind-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.mini-bind-steps li { display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: start; gap: 7px; padding: 10px; border: 1px solid #dce6ec; border-radius: 11px; color: #547080; background: #fff; font-size: 10px; line-height: 1.5; }
.mini-bind-steps b { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #16758d; font-size: 10px; }
.mini-bind-security-note { display: flex; align-items: flex-start; gap: 7px; margin-top: 10px; padding: 9px 11px; border-radius: 10px; color: #865d19; background: #fff8e8; font-size: 10px; line-height: 1.55; }
.mini-bind-security-note svg { flex: 0 0 auto; margin-top: 1px; }
.mini-bind-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; }
.mini-bind-actions button { min-width: 132px; justify-content: center; }

@media (max-width: 900px) {
  .mini-attendance-summary { grid-template-columns: repeat(2, 1fr); }
  .mini-attendance-summary .mini-service-state { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .mini-bind-content { padding: 12px; }
  .mini-bind-employee-banner { grid-template-columns: 48px minmax(0,1fr); }
  .mini-bind-trademark { width: 46px; height: 46px; }
  .mini-bind-employee-banner em { grid-column: 1 / -1; justify-self: start; }
  .mini-bind-workspace,.mini-bind-steps { grid-template-columns: 1fr; }
  .mini-bind-qr { width: 204px; min-height: 204px; }
  .mini-bind-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .mini-bind-actions button { width: 100%; min-width: 0; }
}

.document-table {
  border-bottom: 1px solid var(--line);
}

.print-title {
  display: none;
  padding: 12px;
  text-align: center;
}

.print-title h2 {
  margin: 0 0 6px;
  font-size: 18px;
}

.print-title span {
  color: var(--muted);
  font-size: 12px;
}

.print-help {
  padding: 12px;
  line-height: 1.7;
}

.modal-actions {
  justify-content: flex-end;
}

.business-form .modal-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: 0 -18px;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -8px 18px rgba(18, 34, 55, 0.05);
}

.modal-header {
  border-top: 4px solid #2f73df;
  background: #ffffff;
}

.modal-title-block {
  min-width: 0;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.modal-encryption-seal {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 9px;
  border: 1px solid #e8b657;
  border-radius: 999px;
  color: #7c2d12 !important;
  background: linear-gradient(135deg,#fff7ed,#fef3c7);
  box-shadow: 0 5px 14px rgba(146,64,14,.12);
  font-size: 11px !important;
  font-weight: 850 !important;
  white-space: nowrap;
}

.haohai-trademark {
  display: block;
  object-fit: contain;
}

.form-trademark {
  width: 58px;
  height: 58px;
  padding: 2px;
  border: 1px solid #dbe5ef;
  border-radius: 5px;
  background: #ffffff;
}

.modal-title-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.modal-title-block .modal-company {
  color: #355372;
  font-size: 12px;
  font-weight: 700;
}

.modal-title-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.modal-title-row p {
  min-width: max-content;
  padding-right: 10px;
  border-right: 1px solid #cbd8e6;
  font-size: 12px;
}

.modal-title-row h2 {
  color: #192a3d;
  font-size: 20px;
  line-height: 1.25;
}

.print-trademark-header {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin: 0 0 12px;
  padding: 0 0 10px;
  border-bottom: 2px solid #245f91;
}

.print-trademark {
  width: 70px;
  height: 70px;
}

.print-trademark-header h1,
.print-trademark-header h2,
.print-trademark-header p {
  margin: 0 !important;
  text-align: left !important;
}

.print-trademark-header h1 {
  color: #111827;
  font-size: 19px !important;
}

.print-trademark-header h2 {
  margin-top: 4px !important;
  font-size: 16px;
}

.print-trademark-header p {
  margin-top: 5px !important;
  color: #4b5563;
  font-size: 10px;
}

.business-form label:has(input[required], select[required], textarea[required]) > span::after,
.data-modal label.sheet-field:has(input[required], select[required], textarea[required]) > span::after {
  margin-left: 4px;
  color: #cf3030;
  content: '*';
}

.business-form label:has(input:focus, select:focus, textarea:focus) {
  box-shadow: inset 0 0 0 2px rgba(47, 115, 223, 0.22);
}

.business-form input[readonly],
.business-form textarea[readonly],
.business-form select:disabled {
  background: #f1f4f7 !important;
  color: #59697a !important;
}

.form-submit-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: auto;
  color: #5d6b7c;
  font-size: 12px;
}

.form-submit-note svg {
  color: #2f73df;
}

.settings-tabs {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #ffffff;
}

.settings-grid > .module-stats {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.settings-grid > .settings-panel {
  grid-column: 1 / -1;
}

.settings-governance-map {
  grid-column: 1 / -1;
  overflow: hidden;
}

.settings-setup-sequence {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--line);
}

.settings-setup-sequence article {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  padding: 12px;
  background: #f7faff;
}

.settings-setup-sequence b,
.workflow-rule-guide b {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #2f73df;
  color: #fff;
  font-size: 12px;
}

.settings-setup-sequence article > div,
.settings-function-map article > div,
.workflow-rule-guide article > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.settings-setup-sequence strong,
.settings-function-map strong,
.workflow-rule-guide strong {
  color: #253b53;
  font-size: 12px;
}

.settings-setup-sequence span,
.settings-function-map span,
.workflow-rule-guide span {
  color: #6c7b8e;
  font-size: 11px;
  line-height: 1.55;
}

.settings-function-map {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
}

.settings-function-map article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
  padding: 10px;
  border: 1px solid #dbe4ee;
  border-radius: 6px;
  background: #fff;
}

.settings-function-map article.active {
  border-color: #8db8ec;
  background: #eef6ff;
  box-shadow: inset 3px 0 0 #2f73df;
}

.settings-function-map em {
  color: #7390b1;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.settings-tabs button,
.permission-tabs button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 16px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #526173;
  font-weight: 700;
  cursor: pointer;
}

.settings-tabs button:hover,
.permission-tabs button:hover {
  background: #f1f6fc;
  color: #215fae;
}

.settings-tabs button.active,
.permission-tabs button.active {
  background: #e7f1ff;
  color: #174f91;
  box-shadow: inset 0 0 0 1px #b8d3f2;
}

.settings-panel .panel-header > div {
  display: grid;
  gap: 3px;
}

.settings-panel .panel-header p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.logic-badge,
.protected-account,
.final-node-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: max-content;
  padding: 4px 8px;
  border: 1px solid #b8d3f2;
  border-radius: 4px;
  background: #eef6ff;
  color: #245c9f;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.permission-logic-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: #f7faff;
}

.permission-logic-strip button {
  min-width: 0;
  min-height: 52px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid #d7e3f0;
  border-radius: 6px;
  background: #fff;
  color: #526173;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.permission-logic-strip button:hover {
  border-color: #8fb7e7;
  box-shadow: 0 4px 12px rgba(34, 91, 154, .09);
  transform: translateY(-1px);
}

.permission-logic-strip button > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.permission-logic-strip button strong {
  color: #213449;
  font-size: 12px;
}

.permission-logic-strip button small {
  overflow: hidden;
  color: #75849a;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.permission-logic-strip button > svg:first-child {
  width: 28px;
  height: 28px;
  padding: 6px;
  border-radius: 6px;
  background: #eaf3ff;
  color: #2f73df;
}

.permission-logic-strip button > svg:last-child {
  color: #8fa0b4;
}

.table-scroll {
  width: 100%;
  overflow-x: auto;
}

.user-permission-list {
  min-width: 1390px;
  table-layout: fixed;
}

.user-permission-list th:nth-child(1) { width: 220px; }
.user-permission-list th:nth-child(2) { width: 190px; }
.user-permission-list th:nth-child(3) { width: 180px; }
.user-permission-list th:nth-child(4) { width: 110px; }
.user-permission-list th:nth-child(5) { width: 125px; }
.user-permission-list th:nth-child(6) { width: 125px; }
.user-permission-list th:nth-child(7) { width: 88px; }
.user-permission-list th:nth-child(8) { width: 330px; }

.user-permission-list td {
  overflow: hidden;
  vertical-align: middle;
}

.user-identity-cell {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.user-identity-cell > span:last-child,
.system-account-cell,
.user-department-cell {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.user-identity-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid #b9d4ef;
  border-radius: 8px;
  background: #eaf4ff;
  color: #2364ad;
  font-size: 13px;
  font-weight: 800;
}

.user-identity-cell strong,
.system-account-cell strong,
.user-department-cell strong {
  overflow: hidden;
  color: #263b52;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-account-cell {
  padding: 7px 9px;
  border: 1px solid #dde6ef;
  border-radius: 6px;
  background: #f8fafc;
}

.system-account-cell strong {
  color: #174f91;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.system-account-cell small,
.user-department-cell small {
  overflow: hidden;
  color: #6f7f91;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-row-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.employee-id-cell {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 7px;
  border: 1px solid #bed5ec;
  border-radius: 4px;
  background: #eff7ff;
  color: #215b96;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.employee-id-cell.unbound {
  border-color: #dde3ea;
  background: #f5f6f8;
  color: #8a96a6;
  font-family: inherit;
  font-weight: 600;
}

.row-actions-cell {
  white-space: normal;
}

.row-actions-cell .row-action + .row-action {
  margin-left: 0;
}

.password-policy {
  margin: 8px 0 0;
  padding: 8px 10px;
  border-left: 3px solid #2f73df;
  background: #f4f8fd;
  color: #536172;
  font-size: 12px;
  line-height: 1.6;
}

.employee-binding-note {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 0;
  padding: 7px 9px;
  border: 1px solid #dbe5ef;
  border-radius: 5px;
  background: #f8fafc;
  color: #748297;
  font-size: 11px;
  line-height: 1.55;
}

.employee-binding-note svg {
  flex: 0 0 auto;
  color: #2f73df;
}

.user-login-name-field input {
  max-width: 520px;
}

.user-employee-picker {
  margin-top: 2px;
  padding: 12px;
  border: 1px solid #c9dced;
  border-radius: 7px;
  background: linear-gradient(135deg, #f8fbff 0%, #f3f8fd 100%);
}

.user-employee-picker .employee-binding-field {
  border-color: #b9cee1;
  background: #ffffff;
}

.user-employee-picker .employee-binding-field > span {
  color: #355b7d;
  font-weight: 700;
}

.user-employee-picker select {
  cursor: pointer;
  font-weight: 650;
}

.user-employee-picker select:invalid {
  color: #7b8794;
  font-weight: 500;
}

.user-employee-picker select option {
  color: #233e50;
}

.permission-guide-modal {
  max-height: calc(100vh - 70px);
}

.permission-guide-hero {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid #c7dcf2;
  border-radius: 7px;
  background: linear-gradient(135deg, #f4f9ff 0%, #eef6ff 100%);
}

.permission-guide-hero > span {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #236bc2;
  color: #fff;
}

.permission-guide-hero > div {
  display: grid;
  gap: 4px;
}

.permission-guide-hero strong {
  color: #173b64;
  font-size: 16px;
}

.permission-guide-hero p,
.permission-guide-points p {
  margin: 0;
  color: #62738a;
  font-size: 12px;
  line-height: 1.55;
}

.permission-guide-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.permission-guide-points article {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  padding: 12px;
  border: 1px solid #dce5ee;
  border-radius: 6px;
  background: #fff;
}

.permission-guide-points em {
  color: #2f73df;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .08em;
}

.permission-guide-points article > div {
  display: grid;
  gap: 4px;
}

.permission-guide-points strong {
  color: #293b50;
  font-size: 12px;
}

.permission-guide-users {
  display: grid;
  gap: 8px;
}

.permission-guide-users .data-table {
  min-width: 760px;
}

.permission-guide-users td small {
  display: block;
  margin-top: 2px;
  color: #8793a3;
}

.modal-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.attendance-ledger-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  background: #f7faff;
}

.attendance-ledger-summary > div {
  min-height: 58px;
  padding: 9px 12px;
  border: 1px solid #d8e3ef;
  border-radius: 5px;
  background: #fff;
}

.attendance-ledger-summary span,
.attendance-ledger-summary strong {
  display: block;
}

.attendance-ledger-summary span {
  color: var(--muted);
  font-size: 11px;
}

.attendance-ledger-summary strong {
  margin-top: 3px;
  color: #203247;
  font-size: 20px;
}

.attendance-ledger-summary .has-risk strong {
  color: #d97706;
}

.punch-ledger-section {
  margin: 12px 14px;
}

.punch-ledger-filter {
  display: grid;
  grid-template-columns: minmax(240px, 1.5fr) minmax(150px, .7fr) minmax(150px, .7fr) auto;
  align-items: end;
  gap: 8px;
  padding: 10px;
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.punch-filter-result {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}

.punch-filter-result strong {
  margin: 0 4px;
  color: #215fae;
}

.attendance-detail-window {
  max-height: 360px;
  overflow: auto;
}

.attendance-detail-table {
  min-width: 1760px;
}

.attendance-detail-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
}

@media (max-width: 720px) {
  .attendance-ledger-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .punch-ledger-filter {
    grid-template-columns: 1fr;
  }

  .punch-filter-result {
    justify-content: flex-start;
  }
}
.number-rule-example {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #f7faff;
}

.number-rule-example strong {
  color: #174f91;
  font-family: Consolas, monospace;
  font-size: 17px;
}

.number-rule-example span {
  color: var(--muted);
  font-size: 12px;
}

.workflow-steps-cell span {
  gap: 6px;
}

.workflow-steps-cell i,
.workflow-live-preview i {
  display: grid;
  gap: 2px;
  font-style: normal;
}

.workflow-steps-cell i small,
.workflow-live-preview i small {
  color: #64778b;
  font-size: 10px;
  font-weight: 500;
}

.workflow-steps-cell b {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  background: #2f73df;
  color: #ffffff;
  font-size: 10px;
}

.workflow-steps-cell em {
  padding-left: 5px;
  border-left: 1px solid #b8cbe0;
  color: #16784b;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.workflow-final-state {
  color: #8491a0;
  font-size: 11px;
}

.workflow-final-state.active {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #16784b;
  font-weight: 700;
}

.workflow-designer-modal {
  top: 28px;
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 56px);
}

.workflow-rule-guide {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border: 1px solid #cfe0f1;
  border-radius: 7px;
  background: #f5f9fe;
}

.workflow-rule-guide article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
}

.workflow-designer-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.workflow-designer-heading .form-section-title {
  flex: 1;
  margin: 0;
}

.workflow-template-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 5px;
}

.workflow-template-actions > span {
  color: #6c7b8e;
  font-size: 11px;
}

.workflow-template-actions button,
.workflow-step-actions button {
  min-height: 29px;
  border: 1px solid #bdcee0;
  border-radius: 4px;
  background: #fff;
  color: #315777;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.workflow-template-actions button {
  padding: 0 8px;
}

.workflow-template-actions button.add {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-color: #8db8ec;
  background: #edf6ff;
  color: #215fae;
}

.workflow-step-table th:first-child,
.workflow-step-table td:first-child {
  width: 64px;
  text-align: center;
}

.workflow-step-table th:nth-child(3),
.workflow-step-table td:nth-child(3) {
  width: 360px;
}

.workflow-step-table th:nth-child(4),
.workflow-step-table td:nth-child(4),
.workflow-step-table th:nth-child(5),
.workflow-step-table td:nth-child(5) {
  width: 135px;
}

.workflow-step-table th:last-child,
.workflow-step-table td:last-child {
  width: 126px;
}

.workflow-step-sequence {
  display: inline-grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: #e7f1ff;
  color: #215fae;
  font-size: 12px;
}

.workflow-step-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.workflow-step-actions button {
  width: 30px;
  display: grid;
  place-items: center;
  padding: 0;
}

.workflow-template-actions button:hover,
.workflow-step-actions button:hover:not(:disabled) {
  border-color: #2f73df;
  color: #1e64bf;
}

.workflow-step-actions button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.workflow-assignee-picker {
  min-width: 320px;
}

.workflow-assignee-trigger {
  width: 100%;
  min-height: 36px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto 14px;
  align-items: center;
  gap: 7px;
  padding: 7px 9px;
  border: 1px solid #b9cce0;
  border-radius: 6px;
  background: #fff;
  color: #294c6c;
  cursor: pointer;
  text-align: left;
}

.workflow-assignee-trigger > input {
  width: 100%;
  min-width: 0;
  min-height: 26px;
  padding: 2px 4px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #294c6c;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.workflow-assignee-trigger > input::placeholder {
  color: #8292a4;
  font-weight: 500;
  opacity: 1;
}

.workflow-assignee-trigger > span:not([hidden]) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
}

.workflow-assignee-trigger > small {
  padding: 2px 6px;
  border-radius: 10px;
  background: #eaf3ff;
  color: #2464b2;
  font-size: 10px;
  white-space: nowrap;
}

.workflow-assignee-trigger > svg:last-child {
  transition: transform 160ms ease;
}

.workflow-assignee-picker.is-open .workflow-assignee-trigger {
  border-color: #2f73df;
  box-shadow: 0 0 0 2px rgba(47, 115, 223, .12);
}

.workflow-assignee-picker.is-open .workflow-assignee-trigger > svg:last-child {
  transform: rotate(180deg);
}

.workflow-assignee-options {
  margin-top: 5px;
  max-height: 260px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid #b8cbe0;
  border-radius: 7px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(236, 243, 250, .45);
}

.workflow-assignee-options[hidden] {
  display: none !important;
}

.workflow-assignee-options-heading {
  position: sticky;
  top: -6px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: -6px -6px 4px;
  padding: 7px 9px;
  border-bottom: 1px solid #dbe7f2;
  background: #f5f9fe;
  color: #4a6178;
  font-size: 10px;
}

.workflow-assignee-options-heading button {
  min-height: 26px;
  padding: 3px 8px;
  border: 1px solid #b9cde1;
  border-radius: 4px;
  background: #fff;
  color: #245c9f;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}

.workflow-assignee-option {
  min-height: 46px !important;
  display: grid !important;
  width: 100%;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  align-items: center;
  gap: 7px !important;
  padding: 6px 7px !important;
  border: 0 !important;
  border-radius: 5px;
  background: transparent !important;
  cursor: pointer;
  text-align: left;
}

.workflow-assignee-option:hover {
  background: #eef6ff !important;
}

.workflow-assignee-option.is-selected {
  background: #e8f3ff !important;
  box-shadow: inset 3px 0 0 #2f73df;
}

.workflow-assignee-avatar {
  display: grid !important;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #e4effc;
  color: #285f9f;
  font-size: 11px;
  font-weight: 800;
}

.workflow-assignee-option span {
  display: grid;
  gap: 2px;
}

.workflow-assignee-option strong {
  color: #223f5d;
  font-size: 12px;
}

.workflow-assignee-option small {
  color: #6c7b8e;
  font-size: 10px;
}

.workflow-assignee-option em {
  color: #2d6ab0;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  white-space: nowrap;
}

.workflow-assignee-empty {
  margin: 0;
  padding: 10px;
  color: #9b4b23;
  font-size: 11px;
}

.workflow-step-missing-assignee .workflow-assignee-trigger {
  border-color: #e1a16f;
  background: #fff9f2;
}

.workflow-live-preview {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 9px 11px;
  border: 1px solid #d5e2ef;
  border-radius: 6px;
  background: #f8fbff;
}

.workflow-live-preview > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #355b7d;
  font-size: 12px;
  font-weight: 700;
}

.workflow-live-preview > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.workflow-live-preview > div span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border: 1px solid #c6daee;
  border-radius: 4px;
  background: #fff;
  color: #344b63;
  font-size: 11px;
}

.workflow-live-preview b {
  color: #2f73df;
  font-size: 10px;
}

.workflow-live-preview em {
  color: #16814f;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.workflow-separation-note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 9px 0 0;
  padding: 8px 10px;
  border-left: 3px solid #16814f;
  background: #f2faf6;
  color: #496c5c;
  font-size: 11px;
  line-height: 1.55;
}

.workflow-scheme-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.workflow-scheme-toolbar > div { display: grid; gap: 3px; }
.workflow-scheme-toolbar strong { color: #244866; font-size: 15px; }
.workflow-scheme-toolbar span { color: #718295; font-size: 11px; }

.workflow-scheme-tabs {
  display: flex;
  gap: 7px;
  margin-bottom: 10px;
  padding: 6px;
  overflow-x: auto;
  border: 1px solid #d7e3ef;
  border-radius: 9px;
  background: #f5f8fc;
}

.workflow-scheme-tabs button {
  min-width: 170px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 1px 7px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #607589;
  cursor: pointer;
  text-align: left;
}

.workflow-scheme-tabs button b { grid-row: 1 / 3; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #dce8f4; font-size: 10px; }
.workflow-scheme-tabs button span { overflow: hidden; color: #35536d; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.workflow-scheme-tabs button small { font-size: 9px; }
.workflow-scheme-tabs button.active { border-color: #78a9df; background: #fff; box-shadow: 0 2px 8px rgba(42, 91, 139, .1); }
.workflow-scheme-tabs button.active b { background: #2f73df; color: #fff; }

.workflow-scheme-panel {
  padding: 13px;
  border: 1px solid #c9dced;
  border-radius: 9px;
  background: #fbfdff;
}
.workflow-scheme-panel[hidden] { display: none !important; }
.workflow-scheme-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid #dce7f1; }
.workflow-scheme-heading > div { display: grid; gap: 2px; }
.workflow-scheme-heading span { color: #2f73df; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.workflow-scheme-heading strong { color: #223f59; font-size: 15px; }
.workflow-scheme-heading small { color: #718295; font-size: 10px; }
.workflow-scheme-remove { display: inline-flex; align-items: center; gap: 5px; min-height: 31px; padding: 0 10px; border: 1px solid #e3c4c4; border-radius: 5px; background: #fff; color: #a34c4c; cursor: pointer; }
.workflow-scheme-remove:disabled { opacity: .38; cursor: not-allowed; }
.workflow-scheme-fields { margin-bottom: 13px; }

.workflow-matter-picker { position: relative; }
.workflow-matter-picker summary { min-height: 36px; display: grid; grid-template-columns: 18px minmax(0,1fr) 14px; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid #b9cce0; border-radius: 6px; background: #fff; color: #365570; cursor: pointer; list-style: none; }
.workflow-matter-picker summary::-webkit-details-marker { display: none; }
.workflow-matter-picker[open] summary { border-color: #2f73df; box-shadow: 0 0 0 2px rgba(47,115,223,.11); }
.workflow-matter-picker[open] summary svg:last-child { transform: rotate(180deg); }
.workflow-matter-options { position: absolute; z-index: 8; top: calc(100% + 5px); right: 0; width: min(410px, 70vw); max-height: 260px; display: grid; gap: 4px; overflow-y: auto; padding: 7px; border: 1px solid #b8cbe0; border-radius: 7px; background: #fff; box-shadow: 0 10px 26px rgba(35, 65, 95, .17); }
.workflow-matter-options label { min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 5px; color: #35536d; cursor: pointer; }
.workflow-matter-options label:hover { background: #eef6ff; }
.workflow-matter-options input { width: 15px; height: 15px; accent-color: #2f73df; }

.workflow-scheme-count { display: grid; justify-items: center; gap: 1px; }
.workflow-scheme-count strong { color: #1f67b4; font-size: 24px; }
.workflow-scheme-count span { color: #385a76; font-size: 11px; font-weight: 800; }
.workflow-scheme-count small { color: #8291a0; font-size: 9px; }
.workflow-scheme-summary-list,.workflow-scheme-flow-list { display: grid; gap: 6px; }
.workflow-scheme-summary-list article { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 7px; border: 1px solid #d6e2ed; border-radius: 6px; background: #f9fbfe; }
.workflow-scheme-summary-list article > b { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #dfedfb; color: #2767aa; font-size: 9px; }
.workflow-scheme-summary-list article > div { min-width: 0; display: grid; gap: 2px; }
.workflow-scheme-summary-list article strong { color: #294a64; font-size: 11px; }
.workflow-scheme-summary-list article small { overflow: hidden; color: #7a8998; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-scheme-summary-list article em { color: #18774b; font-size: 9px; font-style: normal; font-weight: 800; }
.workflow-scheme-summary-list article.disabled { opacity: .55; }
.workflow-scheme-flow-list > div { display: grid; gap: 4px; padding: 7px 8px; border-left: 3px solid #76a9dc; background: #f7fbff; }
.workflow-scheme-flow-list > div > span { color: #3a5d78; font-size: 10px; font-weight: 800; }
.workflow-scheme-flow-list p { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin: 0; }
.workflow-scheme-flow-list p i { display: inline-grid; grid-template-columns: 15px auto; gap: 1px 4px; align-items: center; padding: 4px 6px; border: 1px solid #d1dfed; border-radius: 5px; background: #fff; color: #37526b; font-size: 9px; font-style: normal; }
.workflow-scheme-flow-list p i b { grid-row: 1 / 3; width: 15px; height: 15px; display: grid; place-items: center; border-radius: 50%; background: #2f73df; color: #fff; font-size: 8px; }
.workflow-scheme-flow-list p i small { color: #7b8997; font-size: 8px; }
.workflow-scheme-flow-list p i em { color: #16814f; font-size: 8px; font-style: normal; font-weight: 800; }
.workflow-scheme-flow-list p u { width: 10px; height: 1px; background: #a9bfd4; text-decoration: none; }

.document-people-dropdown { position: relative; width: 100%; }
.document-people-dropdown summary { min-height: 43px; display: grid; grid-template-columns: 18px minmax(0,1fr) auto 14px; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid #ceddea; border-radius: 7px; background: #fff; cursor: pointer; list-style: none; }
.document-people-dropdown summary::-webkit-details-marker { display: none; }
.document-people-dropdown summary > span { min-width: 0; display: grid; gap: 1px; }
.document-people-dropdown summary strong { color: #35536c; font-size: 11px; }
.document-people-dropdown summary small { color: #82909e; font-size: 9px; }
.document-people-dropdown summary > b { min-width: 24px; padding: 3px 6px; border-radius: 12px; background: #e9f3ff; color: #2566ae; font-size: 10px; text-align: center; }
.document-people-dropdown.approver summary > b { background: #e9f7ef; color: #17754a; }
.document-people-dropdown[open] summary { border-color: #70a6da; box-shadow: 0 0 0 2px rgba(47,115,223,.1); }
.document-people-dropdown[open] summary svg:last-child { transform: rotate(180deg); }
.document-people-dropdown-menu { max-height: 230px; display: grid !important; gap: 5px; overflow-y: auto; margin-top: 5px; padding: 6px; border: 1px solid #c9d9e8; border-radius: 7px; background: #f9fbfe; }
.document-people-dropdown-menu .document-permission-person { width: 100%; }

.module-workflow-scheme-badge { display: inline-flex; align-items: center; gap: 4px; width: fit-content; margin-top: 5px; padding: 3px 6px; border-radius: 10px; background: #edf5fe; color: #2869ac; font-size: 9px; font-style: normal; font-weight: 800; }

.workflow-permission-explainer {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f7faff;
}

.workflow-permission-explainer article {
  display: grid;
  gap: 4px;
  padding: 9px;
  border: 1px solid #d9e5f1;
  border-radius: 5px;
  background: #fff;
}

.workflow-permission-explainer strong {
  color: #245b93;
  font-size: 12px;
}

.workflow-permission-explainer span {
  color: #6a798b;
  font-size: 11px;
  line-height: 1.55;
}

.workflow-reading-key {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 9px 12px;
  border-bottom: 1px solid #d9e5f1;
  background: #fdfefe;
  color: #5a6f84;
  font-size: 11px;
}

.workflow-reading-key > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.workflow-reading-key b {
  display: inline-grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  background: #e6f1ff;
  color: #245fa6;
  font-size: 10px;
}

.workflow-scope-cell,
.workflow-name-cell {
  display: grid;
  gap: 4px;
  white-space: normal;
}

.workflow-scope-cell strong,
.workflow-name-cell strong {
  color: #223f5d;
  font-size: 13px;
}

.workflow-scope-cell span {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 12px;
  background: #eaf3ff;
  color: #245fa6;
  font-size: 11px;
  font-weight: 700;
}

.workflow-scope-cell small,
.workflow-name-cell small {
  color: #6f7f90;
  font-size: 10px;
  line-height: 1.5;
}

.workflow-matter-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  white-space: normal;
}

.workflow-matter-list span,
.workflow-matter-scope span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 7px;
  border: 1px solid #d6e3ef;
  border-radius: 4px;
  background: #f8fbff;
  color: #405a73;
  font-size: 10px;
}

.workflow-scope-path {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #cfe0f1;
  border-radius: 7px;
  background: #f6faff;
}

.workflow-scope-path > span {
  display: grid;
  gap: 2px;
}

.workflow-scope-path small {
  color: #78899a;
  font-size: 10px;
}

.workflow-scope-path strong {
  color: #244e78;
  font-size: 12px;
}

.workflow-matter-scope {
  display: grid;
  gap: 7px;
  margin-top: 10px;
  padding: 10px 12px;
  border-left: 3px solid #2f73df;
  background: #f8fbff;
}

.workflow-matter-scope > strong {
  color: #244e78;
  font-size: 12px;
}

.workflow-matter-scope > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.workflow-matter-scope > small {
  color: #6b7c8e;
  font-size: 11px;
  line-height: 1.55;
}

.permission-modal {
  max-height: calc(100vh - 80px);
}

.permission-user-summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #cfdcea;
  border-radius: 6px;
  background: #f7faff;
}

.permission-user-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 5px;
  background: #2f73df;
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
}

.permission-user-summary > div {
  display: grid;
  gap: 4px;
}

.permission-user-summary > div span,
.permission-user-summary em {
  color: #657386;
  font-size: 12px;
  font-style: normal;
}

.permission-user-summary em {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.permission-decision-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 9px;
  border: 1px solid #d7e3f0;
  border-radius: 6px;
  background: #fbfdff;
}

.permission-decision-flow article {
  min-height: 50px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 7px;
  border-radius: 4px;
  background: #f2f7fd;
}

.permission-decision-flow article b {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #2f73df;
  color: #fff;
  font-size: 11px;
}

.permission-decision-flow article span {
  color: #69788a;
  font-size: 11px;
  line-height: 1.45;
}

.permission-decision-flow article strong {
  display: block;
  color: #304b67;
}

.permission-decision-flow > i {
  color: #8aa1ba;
}

.user-account-modal {
  top: 34px;
  width: min(940px, calc(100vw - 48px));
  max-height: calc(100vh - 68px);
}

.own-password-modal {
  top: 64px;
  width: min(760px, calc(100vw - 40px));
  max-height: calc(100vh - 108px);
}

.account-maintenance-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.account-maintenance-guide article {
  min-width: 0;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 10px;
  border: 1px solid #d5e2ef;
  border-radius: 6px;
  background: #f7faff;
  color: #2f73df;
}

.account-maintenance-guide article > span {
  color: #68788b;
  font-size: 11px;
  line-height: 1.55;
}

.account-maintenance-guide article strong {
  display: block;
  margin-bottom: 2px;
  color: #304b67;
  font-size: 12px;
}

.account-maintenance-guide.password-guide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.permission-tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.permission-pane {
  display: none;
  min-height: 390px;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  background: #ffffff;
}

.permission-pane.active {
  display: block;
}

.permission-pane-header {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  background: #f7faff;
}

.permission-pane-header > div:first-child {
  display: grid;
  gap: 3px;
}

.permission-pane-header span {
  color: var(--muted);
  font-size: 11px;
}

.permission-presets {
  display: flex;
  gap: 6px;
}

.permission-presets button {
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid #b9c9da;
  border-radius: 4px;
  background: #ffffff;
  color: #405064;
  font-size: 12px;
  cursor: pointer;
}

.permission-presets button:hover {
  border-color: #75a3d7;
  background: #eef6ff;
  color: #174f91;
}

.permission-menu-scope {
  margin: 14px 16px 12px;
  border: 1px solid #c7d7e6;
  border-radius: 12px;
  background: linear-gradient(145deg, #fbfdff, #f3f8fc);
  box-shadow: 0 8px 22px rgba(48, 76, 103, 0.08);
  overflow: hidden;
}

.permission-menu-scope-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid #d6e2ed;
  background: #edf5fb;
}

.permission-menu-scope-title > div {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #234a6b;
}

.permission-menu-scope-title span {
  display: grid;
  gap: 2px;
}

.permission-menu-scope-title strong { font-size: 14px; }
.permission-menu-scope-title small { color: #60768a; font-size: 11px; line-height: 1.45; }
.permission-menu-scope-title em {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #dcecf8;
  color: #315f83;
  font-size: 11px;
  font-style: normal;
}

.permission-menu-scope-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 9px;
  padding: 12px;
}

.permission-menu-scope-card {
  position: relative;
  min-width: 0;
  min-height: 64px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border: 1px solid #d3dee8;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.permission-menu-scope-card:hover {
  border-color: #81a9cb;
  box-shadow: 0 5px 14px rgba(41, 84, 119, 0.10);
  transform: translateY(-1px);
}

.permission-menu-scope-card input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}

.permission-menu-scope-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #edf3f8;
  color: #557087;
}

.permission-menu-scope-card > span:nth-of-type(2) {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.permission-menu-scope-card strong { color: #273d50; font-size: 13px; }
.permission-menu-scope-card small { color: #7a8997; font-size: 10px; line-height: 1.35; }
.permission-menu-scope-card i {
  padding: 3px 6px;
  border-radius: 999px;
  background: #eef1f4;
  color: #778390;
  font-size: 10px;
  font-style: normal;
  white-space: nowrap;
}

.permission-menu-scope-card.selected:has(input:checked) {
  border-color: #72b495;
  background: #f0faf5;
  box-shadow: inset 3px 0 0 #31855f;
}

.permission-menu-scope-card.selected:has(input:checked) .permission-menu-scope-icon { background: #d9f1e4; color: #277653; }
.permission-menu-scope-card.selected:has(input:checked) i { background: #d9f1e4; color: #1f6848; }
.permission-menu-scope-card.is-disabled { opacity: .62; cursor: not-allowed; transform: none; }

@media (max-width: 1180px) {
  .permission-menu-scope-grid { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
}

@media (max-width: 820px) {
  .permission-menu-scope-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
}

.permission-pane .permission-section {
  max-height: 390px;
  overflow: auto !important;
}

.permission-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #e5eef8;
}

.permission-table td:first-child small {
  display: block;
  margin-top: 3px;
  color: #8a97a5;
  font-size: 10px;
  font-weight: 500;
}

.permission-disabled {
  background: #f5f7f9;
}

.permission-disabled .permission-check,
.permission-disabled .permission-check > span {
  color: #a0a9b3 !important;
}

.approval-permission-table td:nth-child(2) strong {
  margin-right: 6px;
}

.approval-permission-table td:nth-child(4) small {
  display: block;
  margin-top: 3px;
  color: #7b8998;
  font-size: 10px;
}

.final-node-tag {
  padding: 2px 5px;
  border-color: #b9dec9;
  background: #f0faf4;
  color: #16784b;
}

.document-permission-overview {
  overflow: hidden;
}

.document-permission-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f7fbff 0%, #f3f8ff 100%);
}

.document-permission-summary article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  padding: 12px 14px;
  border: 1px solid #d5e3f2;
  border-radius: 8px;
  background: #fff;
}

.document-permission-summary span,
.document-permission-summary small {
  color: #68798c;
  font-size: 11px;
}

.document-permission-summary strong {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: center;
  color: #1e5ea7;
  font-size: 25px;
}

.document-permission-modules {
  display: grid;
  gap: 12px;
  padding: 12px;
  background: #f5f8fc;
}

.document-permission-module {
  overflow: hidden;
  border: 1px solid #d3deea;
  border-radius: 9px;
  background: #fff;
}

.document-permission-module > header {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border-bottom: 1px solid #dfe7f0;
  background: #edf5ff;
  color: #2867ad;
}

.document-permission-module > header div {
  display: grid;
  gap: 2px;
}

.document-permission-module > header strong { color: #214f82; font-size: 14px; }
.document-permission-module > header small { color: #72859a; font-size: 11px; }

.document-permission-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
}

.document-permission-card {
  min-width: 0;
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(39, 79, 121, .05);
}

.document-permission-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.document-permission-card-head > div { min-width: 0; display: grid; gap: 3px; }
.document-permission-card-head span { color: #2f73df; font-size: 10px; font-weight: 700; }
.document-permission-card-head h3 { margin: 0; color: #243b55; font-size: 15px; }
.document-permission-card-head p { margin: 0; color: #708093; font-size: 11px; line-height: 1.55; }
.document-permission-card-head em {
  height: fit-content;
  padding: 4px 7px;
  border-radius: 4px;
  background: #eef6ff;
  color: #2a66a7;
  font-size: 10px;
  font-style: normal;
  white-space: nowrap;
}

.document-type-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.document-type-chips > span {
  padding: 3px 6px;
  border: 1px solid #d9e4ef;
  border-radius: 4px;
  background: #f8fafc;
  color: #596b80;
  font-size: 10px;
  line-height: 1.35;
}

.document-type-chips.compact {
  max-width: 390px;
}

.document-role-row {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px dashed #dbe4ed;
}

.document-role-row > label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding-top: 6px;
  color: #52677e;
  font-size: 11px;
  font-weight: 700;
}

.document-role-row > label b {
  min-width: 18px;
  padding: 1px 4px;
  border-radius: 9px;
  background: #e8f2ff;
  color: #2365ae;
  font-size: 10px;
  text-align: center;
}

.document-role-row > div { display: flex; flex-wrap: wrap; gap: 6px; }

.document-permission-person {
  min-width: 118px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  border: 1px solid #cddbea;
  border-radius: 6px;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.document-permission-person:hover { border-color: #79a8dc; background: #f3f8ff; }
.document-permission-person > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 5px; background: #e7f2ff; color: #2163aa; font-size: 10px; font-weight: 800; }
.document-permission-person.approver > span { background: #eaf8f0; color: #17754a; }
.document-permission-person i { min-width: 0; display: grid; gap: 1px; font-style: normal; }
.document-permission-person strong,.document-permission-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-permission-person strong { color: #30475f; font-size: 11px; }
.document-permission-person small { max-width: 220px; color: #78889a; font-size: 9px; }
.document-permission-empty { padding: 7px 0; color: #9a6a2d; font-size: 10px; }

.document-permission-card footer {
  padding: 7px 8px;
  border-radius: 5px;
  background: #f2f7fd;
  color: #60768d;
  font-size: 10px;
}

.document-permission-card footer span { display: flex; align-items: center; gap: 5px; }

.document-flow-compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  color: #5d7187;
  font-size: 10px;
}

.document-flow-compact i {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e5f0fd;
  color: #2769b2;
  font-style: normal;
  font-weight: 800;
}

.document-flow-compact em {
  padding: 2px 4px;
  border-radius: 3px;
  background: #ebf8f1;
  color: #17794c;
  font-size: 9px;
  font-style: normal;
}

.not-applicable {
  color: #98a3af;
  font-size: 12px;
}

.drawer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.drawer-permission-note {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border: 1px solid #d8e0e9;
  border-radius: 5px;
  background: #f6f8fa;
  color: #657386;
  font-size: 12px;
}

.drawer-permission-note.allowed {
  border-color: #b9dec9;
  background: #f0faf4;
  color: #16784b;
}

.danger-action {
  border-color: #e6b8b8 !important;
  color: #b42318 !important;
}

.toast-stack {
  position: fixed;
  right: 22px;
  bottom: 22px;
  display: grid;
  gap: 10px;
  z-index: 80;
}

.toast {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 6px;
  padding: 0 14px;
  background: #172838;
  color: white;
  box-shadow: var(--shadow);
}

@media (max-width: 1180px) {
  body {
    min-width: 0;
  }

  .app-shell {
    grid-template-columns: 74px 1fr;
  }

  .sidebar span {
    display: none;
  }

  .nav-item,
  .collapse-action {
    grid-template-columns: 1fr;
  }

  .submenu-list {
    left: 74px;
    display: none;
  }

  .nav-group:hover .submenu-list {
    display: grid;
  }

  .submenu-list span {
    display: inline;
  }

  .submenu-section {
    display: block;
  }

  .filterbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .filterbar .page-copy {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .content-grid,
  .module-grid {
    grid-template-columns: 1fr;
  }

  .kpi-strip,
  .module-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .module-business-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .module-business-item:nth-child(2) {
    border-right: 0;
  }

  .module-business-item:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .orders-panel,
  .hr-panel,
  .cash-panel,
  .announcement-panel,
  .module-side {
    grid-column: 1;
  }

  .form-grid-4,
  .line-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .span-4 {
    grid-column: span 2;
  }
}

@media (max-width: 900px) {
  .topbar {
    padding: 0 12px 0 18px;
  }

  .brand {
    max-width: 290px;
    font-size: 16px;
    line-height: 1.3;
  }

  .top-actions {
    gap: 5px;
  }

  .user-menu > span:not(.avatar),
  .user-menu em,
  .top-actions > [data-action="help"] {
    display: none;
  }

  .settings-grid > .module-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .permission-logic-strip,
  .permission-guide-points {
    grid-template-columns: 1fr;
  }

  .permission-user-summary {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .permission-user-summary em {
    grid-column: 1 / -1;
  }

  .document-permission-cards,
  .document-permission-summary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .permission-logic-strip {
    padding: 8px;
  }

  .permission-logic-strip button {
    min-height: 48px;
  }

  .document-role-row {
    grid-template-columns: 1fr;
  }

  .content-grid,
  .module-grid {
    width: calc(100% - 20px);
    margin: 8px 10px 16px;
    padding: 10px;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(25, 55, 80, 0.1);
  }

  .module-command,
  .module-command:not(:has(.module-actions)) {
    min-height: 74px;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 11px;
    padding: 10px 11px;
  }

  .module-brandmark {
    width: 48px;
    height: 48px;
    padding: 2px;
    border-radius: 12px;
  }

  .module-trademark {
    width: 42px;
    height: 42px;
  }

  .module-command-copy > span {
    font-size: 9px;
  }

  .module-command h2 {
    font-size: 16px;
  }

  .module-command p {
    white-space: normal;
  }

  .module-command .module-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .module-stats {
    gap: 6px;
  }

  .report-query-form {
    grid-template-columns: 1fr;
    padding: 10px;
  }

  .report-keyword-group {
    grid-column: 1;
  }

  .report-keyword-list {
    grid-template-columns: 1fr;
  }

  .report-query-button {
    width: 100%;
    justify-content: center;
  }

  .stat-tile {
    min-height: 58px;
    padding: 8px 10px;
  }

  .stat-tile strong {
    font-size: 18px;
  }

  .data-modal,
  .wide-modal {
    top: 8px;
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }

  .data-modal .modal-header {
    padding: 10px 12px;
  }

  .data-modal form.business-form {
    padding-right: 10px;
    padding-left: 10px;
  }

  .business-form .modal-actions {
    margin-right: -10px;
    margin-left: -10px;
    padding: 10px;
  }

  .modal-title-block {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 9px;
  }

  .form-trademark {
    width: 48px;
    height: 48px;
  }

  .modal-title-row {
    display: grid;
    gap: 2px;
  }

  .modal-title-row p {
    min-width: 0;
    padding-right: 0;
    border-right: 0;
  }

  .modal-title-row h2 {
    font-size: 17px;
  }

  .modal-title-block .modal-company {
    font-size: 10px;
  }

  .form-grid-4,
  .line-grid,
  .form-row {
    grid-template-columns: 1fr;
  }

  .span-2,
  .span-3,
  .span-4 {
    grid-column: span 1;
  }

  .form-section-title {
    display: grid;
  }

  .request-window-meta {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .contract-document-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .contract-document-upload {
    border-right: 0;
    border-bottom: 1px solid #536273;
  }

  .contract-document-preview {
    height: 260px;
  }

  .contract-document-flow {
    grid-column: 1;
    flex-wrap: wrap;
    gap: 6px 9px;
  }

  .evidence-control {
    grid-template-columns: 1fr;
  }

  .business-form .form-grid-4 > label.payroll-evidence-field .evidence-control > input {
    border-right: 0;
    border-bottom: 1px solid #d9e1ea;
  }

  .evidence-upload {
    min-height: 42px;
  }

  .payroll-batch-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payroll-batch-summary > div:nth-child(2) {
    border-right: 0;
  }

  .payroll-batch-summary > div:nth-child(-n + 2) {
    border-bottom: 1px solid #d9e5f1;
  }

  .module-business-heading {
    align-items: flex-start;
  }

  .module-business-groups {
    grid-template-columns: 1fr;
  }

  .module-business-item,
  .module-business-item:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .module-business-item:last-child {
    border-bottom: 0;
  }
}

@media print {
  body {
    min-width: 0;
    background: white;
  }

  body.printing-payroll .app-shell {
    display: none !important;
  }

  body.printing-finance .app-shell {
    display: none !important;
  }

  body.printing-finance .finance-print-sheet {
    display: block !important;
    padding: 16px;
    color: #111827;
    font-size: 12px;
  }

  body.printing-finance .finance-print-sheet h1 {
    margin: 0 0 6px;
    text-align: center;
    font-size: 22px;
  }

  body.printing-finance .finance-print-sheet > p {
    margin: 0 0 12px;
    text-align: right;
  }

  body.printing-finance .finance-sheet {
    border-color: #111827;
  }

  body.printing-finance .statement-table-wrap {
    overflow: visible;
    border-color: #111827;
  }

  body.printing-finance .balance-statement-table,
  body.printing-finance .income-statement-table {
    min-width: 0;
    width: 100%;
    font-size: 10px;
  }

  body.printing-finance .finance-statement-table th,
  body.printing-finance .finance-statement-table td {
    padding: 5px 6px;
    line-height: 1.3;
  }

  body.printing-finance .finance-statement-table .statement-item-cell span {
    font-size: 9px;
  }

  body.printing-finance .finance-statement-table .amount-cell {
    text-align: right;
    white-space: nowrap;
  }

  body.printing-finance .standard-statement-sheet > h3 {
    padding: 8px 8px 6px;
    font-size: 20px;
  }

  body.printing-finance .standard-report-meta {
    grid-template-columns: 1.25fr 1fr 0.7fr 1fr;
    border-color: #111827;
  }

  body.printing-finance .standard-report-meta span,
  body.printing-finance .report-footer-signatures span {
    border-color: #111827;
    padding: 6px 8px;
    min-height: 30px;
    font-size: 10px;
  }

  body.printing-finance .report-footer-signatures {
    border-color: #111827;
    font-size: 10px;
  }

  body.printing-finance .standard-report-table {
    font-size: 9.5px;
  }

  body.printing-finance .sheet-field,
  body.printing-finance .finance-entry-table th,
  body.printing-finance .finance-entry-table td,
  body.printing-finance .finance-statement-table th,
  body.printing-finance .finance-statement-table td,
  body.printing-finance .sheet-band {
    border-color: #111827 !important;
  }

  body.printing-finance .sheet-field > span,
  body.printing-finance .sheet-band,
  body.printing-finance .finance-entry-table th,
  body.printing-finance .finance-statement-table th {
    background: #e8eef5 !important;
  }

  body.printing-finance .print-value {
    display: block;
    padding: 8px 10px;
    min-height: 36px;
  }

  body.printing-payroll .payroll-print-sheet {
    display: block !important;
    padding: 18px;
    color: #111827;
    font-size: 12px;
  }

  body.printing-payroll .payroll-print-sheet h1 {
    margin: 0 0 6px;
    text-align: center;
    font-size: 22px;
  }

  body.printing-payroll .payroll-print-sheet p {
    margin: 0 0 12px;
    text-align: right;
  }

  body.printing-payroll .payroll-print-sheet section {
    break-inside: avoid;
    margin: 0 0 12px;
  }

  body.printing-payroll .payroll-print-sheet h3 {
    margin: 0;
    padding: 7px 8px;
    border: 1px solid #111827;
    border-bottom: 0;
    font-size: 14px;
  }

  body.printing-payroll .payroll-print-sheet table {
    width: 100%;
    border-collapse: collapse;
  }

  body.printing-payroll .payroll-print-sheet th,
  body.printing-payroll .payroll-print-sheet td {
    border: 1px solid #111827;
    padding: 6px 8px;
    text-align: left;
    vertical-align: top;
  }

  body.printing-payroll .payroll-print-sheet th {
    width: 24%;
    background: #f1f5f9;
  }

  body.printing-payroll .payroll-print-sheet footer {
    margin-top: 18px;
    display: flex;
    justify-content: space-between;
  }

  .sidebar,
  .topbar,
  .filterbar,
  .module-command,
  .module-stats,
  .module-side,
  .panel-header,
  .no-print,
  .toast-stack,
  .drawer-actions,
  .modal-backdrop {
    display: none !important;
  }

  .app-shell,
  .workspace,
  .module-grid,
  .content-grid {
    display: block;
    padding: 0;
    margin: 0;
  }

  .panel,
  .module-table-panel {
    border: 0;
    box-shadow: none;
  }

  .print-title {
    display: block;
  }

  .data-table {
    font-size: 11px;
  }
}

.formal-document-modal {
  width: min(1180px, 96vw);
  max-height: 96vh;
  padding: 0;
  overflow: hidden;
}

.formal-document-modal .modal-header {
  padding: 16px 20px;
  border-bottom: 1px solid #dfe6ee;
}

.formal-document-toolbar,
.formal-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.formal-document-scroll {
  max-height: calc(96vh - 82px);
  padding: 24px;
  overflow: auto;
  background: #edf2f7;
}

.formal-document-sheet {
  position: relative;
  width: min(210mm, 100%);
  min-height: 285mm;
  margin: 0 auto;
  padding: 15mm 14mm 13mm;
  color: #17212b;
  background: #fff;
  border: 1px solid #cfd7df;
  box-shadow: 0 12px 32px rgb(26 43 58 / 14%);
}

.formal-sheet-header {
  position: relative;
  display: grid;
  grid-template-columns: 66px 1fr 72px;
  align-items: center;
  gap: 14px;
  padding-bottom: 13px;
  border-bottom: 3px double #1f4f78;
  text-align: center;
}

.formal-sheet-header img {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.formal-sheet-header p {
  margin: 0 0 6px;
  color: #334e68;
  font-size: 15px;
  letter-spacing: 2px;
}

.formal-sheet-header h1 {
  margin: 0;
  color: #102f49;
  font-family: SimSun, "宋体", serif;
  font-size: 25px;
  letter-spacing: 5px;
}

.formal-approved-seal {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  color: #b6242a;
  border: 3px double #b6242a;
  border-radius: 50%;
  font-family: SimSun, "宋体", serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.15;
  transform: rotate(-8deg);
}

.formal-approved-seal.pending {
  color: #9a6717;
  border-color: #b9852e;
  background: #fff9e9;
  font-size: 13px;
}

.pending-business-document {
  border-color: #d8bf8d;
}

.stock-submit-success {
  display: grid;
  grid-template-columns: 46px minmax(0,1fr) auto auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 13px 15px;
  border: 1px solid #a8d1bc;
  border-radius: 14px;
  background: linear-gradient(110deg,#eff9f3,#ffffff 68%);
  box-shadow: 0 8px 22px rgba(36,107,76,.1);
}

.stock-submit-success>span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  color: #fff;
  border-radius: 13px;
  background: #2d7a60;
}

.stock-submit-success>div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.stock-submit-success strong { color:#1f5f49;font-size:16px; }
.stock-submit-success small { color:#62736b;font-size:12px;line-height:1.45; }
.stock-submit-success>em { padding:5px 9px;color:#745217;border:1px solid #e2c681;border-radius:999px;background:#fff9e7;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap; }
.stock-submit-success>nav { display:flex;gap:8px; }
.stock-submit-success>nav button { min-height:38px;white-space:nowrap; }

@media(max-width:900px) {
  .stock-submit-success { grid-template-columns:42px minmax(0,1fr) auto; }
  .stock-submit-success>nav { grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr; }
}

@media(max-width:640px) {
  .stock-submit-success { grid-template-columns:42px minmax(0,1fr); }
  .stock-submit-success>em { grid-column:2;justify-self:start; }
  .stock-submit-success>nav { grid-template-columns:1fr; }
}

.formal-document-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 18px;
  padding: 11px 2px;
  color: #3d4f5f;
  border-bottom: 1px solid #aebbc7;
  font-size: 12px;
}

.formal-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid #657786;
  border-left: 1px solid #657786;
  margin-top: 12px;
}

.formal-field-grid > div {
  display: grid;
  grid-template-columns: 105px 1fr;
  min-height: 38px;
  border-right: 1px solid #657786;
  border-bottom: 1px solid #657786;
}

.formal-field-grid > div > span {
  padding: 9px 8px;
  background: #eef4f8;
  border-right: 1px solid #657786;
  color: #29475e;
  font-weight: 600;
}

.formal-field-grid > div > strong {
  padding: 9px 10px;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.formal-field-grid .formal-field-wide {
  grid-column: 1 / -1;
}

.formal-table-section {
  margin-top: 15px;
  break-inside: avoid;
}

.formal-table-section h2,
.formal-approval-trace h2 {
  margin: 0 0 7px;
  color: #173c59;
  font-family: SimSun, "宋体", serif;
  font-size: 15px;
}

.formal-table-scroll {
  overflow: auto;
}

.formal-table-section table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.formal-table-section th,
.formal-table-section td {
  padding: 7px 6px;
  border: 1px solid #657786;
  text-align: left;
  vertical-align: top;
  white-space: pre-wrap;
}

.formal-table-section th {
  background: #e8f0f5;
  color: #29475e;
}

.formal-notes {
  min-height: 54px;
  margin-top: 14px;
  padding: 10px;
  border: 1px solid #657786;
}

.formal-notes p {
  margin: 6px 0 0;
  white-space: pre-wrap;
}

.formal-approval-trace {
  margin-top: 18px;
  padding-top: 11px;
  border-top: 2px solid #315b78;
}

.formal-signature-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 10px;
}

.formal-signature-row span {
  min-height: 42px;
  padding: 9px;
  border-bottom: 1px solid #526879;
}

.formal-approval-trace ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.formal-approval-trace li {
  display: grid;
  grid-template-columns: 135px 90px 1fr;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px dotted #a7b5c0;
  font-size: 11px;
}

.formal-approval-trace li em {
  grid-column: 3;
  color: #5f6f7c;
}

.formal-document-sheet > footer {
  margin-top: 18px;
  color: #687b89;
  font-size: 10px;
  text-align: center;
}

.formal-pending-label {
  display: inline-block;
  padding: 4px 8px;
  color: #8a6214;
  background: #fff7dd;
  border: 1px solid #ecd58d;
  border-radius: 999px;
  font-size: 12px;
  white-space: nowrap;
}

.formal-print-sheet {
  display: none;
}

@media (max-width: 720px) {
  .formal-document-scroll {
    padding: 10px;
  }

  .formal-document-sheet {
    min-height: auto;
    padding: 18px 12px;
  }

  .formal-sheet-header {
    grid-template-columns: 48px 1fr;
  }

  .formal-approved-seal {
    display: none;
  }

  .formal-sheet-header img {
    width: 46px;
    height: 46px;
  }

  .formal-sheet-header h1 {
    font-size: 19px;
    letter-spacing: 2px;
  }

  .formal-field-grid,
  .formal-document-meta,
  .formal-signature-row {
    grid-template-columns: 1fr;
  }

  .formal-field-grid .formal-field-wide {
    grid-column: auto;
  }
}

@media print {
  body.printing-formal > *:not(.formal-print-sheet) {
    display: none !important;
  }

  body.printing-formal .formal-print-sheet {
    display: block !important;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 8mm 10mm;
    border: 0;
    box-shadow: none;
  }

  body.printing-formal .formal-table-scroll {
    overflow: visible;
  }

  body.printing-formal .formal-table-section,
  body.printing-formal .formal-approval-trace,
  body.printing-formal .formal-notes {
    break-inside: avoid;
  }

  @page {
    size: A4 portrait;
    margin: 8mm;
  }
}

/* Integrated lithium accounting decision center */
.accounting-decision-center {
  width: min(1480px, calc(100vw - 36px));
  max-height: 94vh;
  overflow: hidden;
  background: #f3f6f4;
  border: 1px solid rgba(30, 72, 62, 0.16);
}

.accounting-decision-center > .modal-header {
  position: sticky;
  top: 0;
  z-index: 6;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid #dfe8e4;
}

.accounting-center-body {
  max-height: calc(94vh - 76px);
  overflow: auto;
  padding: 22px;
}

.accounting-command-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 28px;
  align-items: end;
  min-height: 238px;
  padding: 34px 38px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 12%, rgba(214, 174, 85, 0.18), transparent 28%),
    radial-gradient(circle at 18% 110%, rgba(79, 164, 132, 0.24), transparent 38%),
    linear-gradient(135deg, #123b33 0%, #0d5144 58%, #12362f 100%);
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(17, 62, 52, 0.18);
}

.accounting-command-hero::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -105px;
  width: 300px;
  height: 300px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(255, 255, 255, 0.035), 0 0 0 84px rgba(255, 255, 255, 0.025);
}

.accounting-command-copy,
.accounting-command-status {
  position: relative;
  z-index: 1;
}

.accounting-command-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 14px;
  color: #bce8d8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.accounting-command-copy h2 {
  max-width: 850px;
  margin: 0;
  font-size: clamp(25px, 2.7vw, 38px);
  line-height: 1.24;
  letter-spacing: -0.035em;
}

.accounting-command-copy > p {
  max-width: 860px;
  margin: 14px 0 20px;
  color: rgba(239, 250, 246, 0.74);
  font-size: 13px;
  line-height: 1.8;
}

.accounting-command-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.accounting-command-rules span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  color: #e6f7f1;
  font-size: 11px;
  font-weight: 650;
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 999px;
}

.accounting-command-status {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
  background: rgba(7, 35, 29, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px;
}

.accounting-command-status .accounting-live-dot {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #bce8d8;
  font-size: 11px;
}

.accounting-live-dot::before {
  content: "";
  width: 7px;
  height: 7px;
  background: #72e3b8;
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(114, 227, 184, 0.13);
}

.accounting-command-status strong {
  margin-top: 10px;
  font-size: 18px;
}

.accounting-command-status small {
  margin-top: 7px;
  color: rgba(231, 247, 241, 0.66);
  line-height: 1.65;
}

.accounting-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.accounting-kpi-grid article {
  display: flex;
  gap: 12px;
  align-items: center;
  min-height: 96px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e1e9e5;
  border-radius: 15px;
  box-shadow: 0 7px 20px rgba(31, 66, 57, 0.045);
}

.accounting-kpi-grid article > i {
  display: grid;
  flex: 0 0 38px;
  height: 38px;
  place-items: center;
  color: #15745d;
  background: #e7f5ef;
  border-radius: 12px;
}

.accounting-kpi-grid article.has-alert > i {
  color: #a43b25;
  background: #fff0e9;
}

.accounting-kpi-grid span,
.accounting-kpi-grid strong,
.accounting-kpi-grid small {
  display: block;
}

.accounting-kpi-grid span {
  color: #6e827b;
  font-size: 10px;
}

.accounting-kpi-grid strong {
  margin-top: 3px;
  color: #193d34;
  font-size: 19px;
}

.accounting-kpi-grid small {
  margin-top: 3px;
  color: #8a9a95;
  font-size: 10px;
}

.accounting-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  margin: 30px 2px 13px;
}

.accounting-section-heading.compact {
  margin-top: 24px;
}

.accounting-section-heading span {
  color: #b41f2d;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.accounting-section-heading h3 {
  margin: 4px 0 0;
  color: #173e34;
  font-size: 19px;
}

.accounting-section-heading > p {
  max-width: 590px;
  margin: 0;
  color: #72847e;
  font-size: 11px;
  line-height: 1.7;
  text-align: right;
}

.accounting-operation-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.accounting-operation-card {
  --card-accent: #17765f;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 292px;
  padding: 20px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dfe8e4;
  border-top: 3px solid var(--card-accent);
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(27, 65, 55, 0.05);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.accounting-operation-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(27, 65, 55, 0.09);
}

.accounting-operation-card.tone-single { --card-accent: #b52a36; }
.accounting-operation-card.tone-blend { --card-accent: #19725c; }
.accounting-operation-card.tone-market { --card-accent: #b17921; }
.accounting-operation-card.tone-actual { --card-accent: #315d91; }

.accounting-operation-icon {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  place-items: center;
  color: var(--card-accent);
  background: color-mix(in srgb, var(--card-accent) 10%, white);
  border-radius: 13px;
}

.accounting-operation-card > span {
  color: var(--card-accent);
  font-size: 10px;
  font-weight: 750;
}

.accounting-operation-card h4 {
  margin: 5px 0 8px;
  color: #183e35;
  font-size: 17px;
}

.accounting-operation-card > p {
  min-height: 58px;
  margin: 0;
  color: #6f817b;
  font-size: 11px;
  line-height: 1.7;
}

.accounting-operation-card ul {
  display: grid;
  gap: 6px;
  margin: 13px 0 18px;
  padding: 0;
  list-style: none;
}

.accounting-operation-card li {
  display: flex;
  gap: 6px;
  align-items: center;
  color: #435e56;
  font-size: 10px;
}

.accounting-operation-card li svg {
  color: var(--card-accent);
}

.accounting-operation-actions {
  display: flex;
  gap: 7px;
  margin-top: auto;
}

.accounting-operation-actions button,
.accounting-database-grid button,
.accounting-governance-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 12px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  background: var(--card-accent, #166c58);
  border: 0;
  border-radius: 9px;
  cursor: pointer;
}

.accounting-grade-band {
  display: grid;
  grid-template-columns: repeat(12, minmax(98px, 1fr));
  gap: 7px;
  padding-bottom: 6px;
  overflow-x: auto;
}

.accounting-grade-band article {
  min-width: 98px;
  padding: 11px;
  background: #fff;
  border: 1px solid #dfe8e4;
  border-radius: 12px;
}

.accounting-grade-band article.pricing-boundary {
  border-color: #bd8733;
  box-shadow: inset 0 0 0 1px rgba(189, 135, 51, 0.14);
}

.accounting-grade-band article > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
}

.accounting-grade-band strong {
  color: #173f35;
  font-size: 14px;
}

.accounting-grade-band span {
  padding: 2px 5px;
  color: #8b6120;
  font-size: 8px;
  background: #fff4dd;
  border-radius: 999px;
}

.accounting-grade-band small {
  color: #74857f;
  font-size: 9px;
}

.accounting-recovery-track {
  height: 5px;
  margin: 10px 0 6px;
  overflow: hidden;
  background: #e9efec;
  border-radius: 999px;
}

.accounting-recovery-track i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #b42a36, #16745d);
  border-radius: inherit;
}

.accounting-data-and-flow {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(420px, 0.82fr);
  gap: 14px;
}

.accounting-data-and-flow > div {
  min-width: 0;
}

.accounting-database-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.accounting-database-grid article {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 90px;
  padding: 13px;
  background: #fff;
  border: 1px solid #e0e8e4;
  border-radius: 13px;
}

.accounting-database-grid article > i {
  display: grid;
  height: 38px;
  place-items: center;
  color: #176f5a;
  background: #e9f5f0;
  border-radius: 10px;
}

.accounting-database-grid span,
.accounting-database-grid strong,
.accounting-database-grid small {
  display: block;
}

.accounting-database-grid span {
  color: #73847e;
  font-size: 9px;
}

.accounting-database-grid strong {
  margin: 3px 0;
  color: #20463c;
  font-size: 12px;
}

.accounting-database-grid small {
  color: #91a09b;
  font-size: 9px;
}

.accounting-database-grid button {
  min-height: 29px;
  padding: 0 9px;
  color: #176653;
  background: #eef6f3;
  border: 1px solid #d8e8e2;
}

.accounting-flow-card {
  display: grid;
  gap: 7px;
  padding: 15px;
  background: #163f35;
  border-radius: 14px;
}

.accounting-flow-step {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 16px;
  gap: 9px;
  align-items: center;
  padding: 9px;
  color: #e9f6f1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 10px;
}

.accounting-flow-step > i {
  display: grid;
  height: 34px;
  place-items: center;
  color: #87d7b9;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 9px;
}

.accounting-flow-step strong,
.accounting-flow-step small {
  display: block;
}

.accounting-flow-step strong {
  font-size: 11px;
}

.accounting-flow-step small {
  margin-top: 2px;
  color: rgba(231, 246, 240, 0.57);
  font-size: 9px;
}

.accounting-flow-step > svg {
  color: rgba(255, 255, 255, 0.32);
}

.accounting-governance-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  margin-top: 9px;
  padding: 10px;
  background: #fff;
  border: 1px solid #e0e8e4;
  border-radius: 12px;
}

.accounting-governance-actions span {
  display: flex;
  gap: 6px;
  align-items: center;
  color: #6f827b;
  font-size: 9px;
}

.accounting-recent-section {
  margin-top: 14px;
  padding: 1px 14px 14px;
  background: #fff;
  border: 1px solid #e0e8e4;
  border-radius: 15px;
}

.accounting-recent-section .accounting-section-heading {
  margin-top: 16px;
}

.accounting-recent-table {
  min-width: 980px;
}

.accounting-recent-table td small {
  display: block;
  margin-top: 2px;
  color: #8b9a95;
}

@media (max-width: 1120px) {
  .accounting-command-hero {
    grid-template-columns: 1fr;
  }
  .accounting-command-status {
    max-width: 520px;
  }
  .accounting-operation-grid,
  .accounting-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .accounting-data-and-flow {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .accounting-decision-center {
    width: calc(100vw - 14px);
    max-height: 97vh;
  }
  .accounting-center-body {
    max-height: calc(97vh - 68px);
    padding: 10px;
  }
  .accounting-command-hero {
    min-height: auto;
    padding: 24px 20px;
    border-radius: 16px;
  }
  .accounting-command-copy h2 {
    font-size: 25px;
  }
  .accounting-kpi-grid,
  .accounting-operation-grid,
  .accounting-database-grid {
    grid-template-columns: 1fr;
  }
  .accounting-section-heading {
    display: block;
  }
  .accounting-section-heading > p {
    margin-top: 6px;
    text-align: left;
  }
  .accounting-operation-card {
    min-height: 0;
  }
  .accounting-database-grid article {
    grid-template-columns: 38px minmax(0, 1fr);
  }
  .accounting-database-grid button {
    grid-column: 1 / -1;
  }
  .accounting-governance-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Release 230: one editable searchable field replaces the former two-step
   select + hidden custom-entry control. */
.business-form .addable-choice-control{
  display:grid;
  gap:3px;
  min-width:0;
}
.business-form .addable-choice-control>[data-addable-choice-input]{
  width:100%;
  min-width:0;
  min-height:42px;
  padding:8px 11px;
  border:1px solid #9fb9c6;
  border-radius:9px;
  color:#173f52;
  background:linear-gradient(180deg,#fff,#f8fbfc);
  box-shadow:inset 0 1px 2px rgba(25,65,84,.04);
}
.business-form .addable-choice-control>[data-addable-choice-input]:hover{
  border-color:#6f9daf;
  background:#fff;
}
.business-form .addable-choice-control>[data-addable-choice-input]:focus{
  border-color:#2d8097;
  outline:3px solid rgba(45,128,151,.14);
  background:#fff;
}
.business-form .addable-choice-hint{
  display:block;
  min-height:13px;
  overflow:hidden;
  color:#66808c;
  font-size:8.5px;
  font-weight:650;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Repeatable-detail work areas remain large enough to enter and review
   several rows without the newly added row being visually lost. */
.business-form :is(
  [data-production-request-lines],
  [data-stock-application-lines],
  [data-production-plan-lines],
  [data-daily-material-lines],
  [data-daily-output-lines],
  [data-workshop-check-lines],
  [data-office-supply-lines],
  [data-canteen-purchase-lines],
  [data-offboarding-handover-lines],
  [data-intermediate-tank-batch-rows]
){
  min-height:178px;
  max-height:min(52vh,560px);
  padding-bottom:8px;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
  background:linear-gradient(180deg,#fff 0%,#f5fafb 100%);
}
.business-form :is(
  .production-detail-row,
  .stock-application-row,
  .office-line-row,
  .canteen-purchase-row,
  .handover-detail-row,
  .workshop-check-line
){
  min-height:104px;
  align-items:start;
  padding-top:13px;
  padding-bottom:13px;
}
.business-form :is(.production-add-line,.office-add-line,.offboarding-add-line){
  min-height:42px;
  padding:9px 14px;
  border-color:#7ca8b8;
  background:linear-gradient(180deg,#f7fcfd,#e8f4f7);
  box-shadow:0 4px 11px rgba(40,100,121,.09);
  font-weight:800;
}
.system-input-window-body,
.system-business-unified-form-body{
  grid-auto-rows:max-content;
}
.business-form .form-section:has([data-draft-repeat-container]){
  min-height:300px;
}
@media(max-height:740px){
  .production-application-modal .form-section:has([data-production-request-lines]){min-height:270px}
  .production-application-modal [data-production-request-lines]{min-height:148px}
}
@media(max-width:900px){
  .business-form :is(
    [data-production-request-lines],
    [data-stock-application-lines],
    [data-production-plan-lines],
    [data-daily-material-lines],
    [data-daily-output-lines],
    [data-workshop-check-lines],
    [data-office-supply-lines],
    [data-canteen-purchase-lines],
    [data-offboarding-handover-lines],
    [data-intermediate-tank-batch-rows]
  ){min-height:210px;max-height:min(56vh,600px)}
  .business-form .form-section:has([data-draft-repeat-container]){min-height:330px}
}

/* Cost accounting models */
.cost-accounting-modal {
  width: min(1480px, 96vw);
  max-height: 95vh;
}

.cost-accounting-modal .business-form {
  gap: 14px;
}

.cost-accounting-modal [hidden] {
  display: none !important;
}

.cost-center-hero {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(250px, auto);
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  overflow: hidden;
  border: 1px solid #bdd1e4;
  border-radius: 9px;
  background:
    radial-gradient(circle at 92% 18%, rgb(81 142 199 / 14%), transparent 25%),
    linear-gradient(135deg, #f7fbff 0%, #edf5fc 100%);
}

.cost-accounting-modal[data-cost-view="procurement"] .cost-center-hero {
  border-color: #b7d7cc;
  background: linear-gradient(135deg, #f7fcfa 0%, #edf8f4 100%);
}

.cost-accounting-modal[data-cost-view="sensitivity"] .cost-center-hero {
  border-color: #c9c0e6;
  background:
    radial-gradient(circle at 92% 18%, rgb(110 83 184 / 14%), transparent 25%),
    linear-gradient(135deg, #fbfaff 0%, #f2effb 100%);
}

.cost-center-hero-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(145deg, #236da8, #164d7b);
  box-shadow: 0 7px 15px rgb(28 88 137 / 22%);
}

[data-cost-view="procurement"] .cost-center-hero-icon {
  background: linear-gradient(145deg, #29866d, #17614f);
}

[data-cost-view="sensitivity"] .cost-center-hero-icon {
  background: linear-gradient(145deg, #7561b8, #56409a);
}

.cost-center-hero > div:nth-child(2) > span {
  color: #4b718f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.cost-center-hero h3 {
  margin: 3px 0 4px;
  color: #173f62;
  font-size: 18px;
}

.cost-center-hero p {
  margin: 0;
  color: #60798e;
  font-size: 12px;
  line-height: 1.6;
}

.cost-center-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.cost-center-badges span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 8px;
  border: 1px solid rgb(116 153 185 / 35%);
  border-radius: 999px;
  color: #40627d;
  background: rgb(255 255 255 / 72%);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.cost-accounting-modal[data-cost-view="production"] .cost-smm-sensitivity {
  display: none;
}

.cost-accounting-modal[data-cost-view="sensitivity"] [data-cost-section="workshop"],
.cost-accounting-modal[data-cost-view="sensitivity"] .cost-model-logic-strip[data-cost-panel="production"],
.cost-accounting-modal[data-cost-view="sensitivity"] .cost-history-section,
.cost-accounting-modal[data-cost-view="sensitivity"] .cost-results-section > .cost-ore-balance,
.cost-accounting-modal[data-cost-view="sensitivity"] .cost-results-section > .cost-steam-balance,
.cost-accounting-modal[data-cost-view="sensitivity"] .cost-results-section > .cost-dynamic-metrics {
  display: none;
}

.cost-accounting-modal[data-cost-view="sensitivity"] .cost-results-section {
  border-color: #c9c0e6;
  background: linear-gradient(180deg, #fbfaff 0, #fff 90px);
}

.cost-accounting-modal[data-cost-view="sensitivity"] .cost-results-section::before {
  background: #6e56b2;
}

.cost-model-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 5px;
  border: 1px solid #cbd8e8;
  background: #eef3f8;
  border-radius: 8px;
}

.cost-model-tabs button {
  min-height: 58px;
  display: grid;
  grid-template-columns: 22px 1fr;
  grid-template-rows: auto auto;
  column-gap: 9px;
  align-items: center;
  text-align: left;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: #334155;
  background: transparent;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.cost-model-tabs button svg {
  grid-row: 1 / span 2;
}

.cost-model-tabs button small {
  display: block;
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
}

.cost-model-tabs button.active {
  border-color: #8fb5dd;
  color: #0d4f8b;
  background: #fff;
  box-shadow: 0 2px 6px rgb(15 56 92 / 10%);
}

.cost-model-tabs button[data-mode="procurement"].active {
  border-color: #75b5a2;
  color: #176b57;
}

.cost-model-logic-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.cost-model-logic-strip span {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 10px;
  border: 1px solid #c7d8eb;
  border-radius: 6px;
  color: #225b8d;
  background: #f3f8fd;
  font-size: 12px;
  font-weight: 700;
}

.procurement-logic-strip span {
  border-color: #b9d9cf;
  color: #176b57;
  background: #f0f8f5;
}

.cost-basis-grid,
.cost-price-grid,
.cost-fixed-grid,
.cost-procurement-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.cost-accounting-modal .form-grid label > span small {
  display: block;
  margin-top: 2px;
  color: #52718d;
  font-size: 10px;
  font-weight: 500;
}

.cost-input-unit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
}

.cost-input-unit input {
  min-width: 0;
  border-radius: 5px 0 0 5px !important;
}

.cost-input-unit em {
  display: flex;
  align-items: center;
  padding: 0 9px;
  border: 1px solid #b9cce0;
  border-left: 0;
  border-radius: 0 5px 5px 0;
  color: #48647d;
  background: #edf4fa;
  font-size: 11px;
  font-style: normal;
  white-space: nowrap;
}

.production-cost-readonly [data-cost-panel="production"] input[readonly],
.production-cost-readonly [data-cost-panel="production"] select {
  color: #38566f;
  border-color: #c7d6e3;
  background: #f1f5f8;
  cursor: default;
}

.production-cost-readonly [data-cost-panel="production"] select {
  pointer-events: none;
}

.cost-date-section {
  border-color: #9fc5e3 !important;
  background: linear-gradient(180deg, #f5fbff 0, #fff 110px) !important;
}

.cost-date-toolbar {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) minmax(180px, 1fr) minmax(180px, 1fr);
  gap: 12px;
  align-items: end;
}

.cost-range-mode {
  display: inline-flex;
  align-self: stretch;
  padding: 4px;
  border: 1px solid #b8cbdb;
  border-radius: 7px;
  background: #eaf2f8;
}

.cost-range-mode button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 108px;
  border: 0;
  border-radius: 5px;
  color: #4c667c;
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.cost-range-mode button.active {
  color: #0d5b93;
  background: #fff;
  box-shadow: 0 2px 7px rgb(26 78 118 / 14%);
}

.cost-date-status {
  min-height: 56px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 9px;
  align-content: center;
  padding: 8px 12px;
  border: 1px solid #b7d3e8;
  border-radius: 7px;
  color: #285b82;
  background: #edf7fd;
}

.cost-date-status span,
.cost-date-status small {
  font-size: 10px;
}

.cost-date-status strong {
  font-size: 12px;
}

.cost-date-status small {
  grid-column: 2;
  color: #668299;
}

.cost-exclusion-note {
  display: flex;
  gap: 9px;
  align-items: center;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #efc786;
  border-left: 3px solid #db8a24;
  border-radius: 6px;
  color: #805315;
  background: #fff8eb;
}

.cost-exclusion-note strong,
.cost-exclusion-note span {
  display: block;
}

.cost-exclusion-note strong { font-size: 12px; }
.cost-exclusion-note span { margin-top: 2px; font-size: 11px; }

.cost-period-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
}

.cost-period-summary article {
  display: flex;
  gap: 9px;
  align-items: center;
  min-height: 68px;
  padding: 10px 12px;
  border: 1px solid #b9d8cd;
  border-radius: 7px;
  color: #22604f;
  background: #f1faf7;
}

.cost-period-summary span,
.cost-period-summary strong { display: block; }
.cost-period-summary span { color: #658078; font-size: 10px; }
.cost-period-summary strong { margin-top: 3px; font-size: 14px; }

.cost-mix-section {
  border-color: #a9d3c3 !important;
  background: linear-gradient(180deg, #f2fbf7 0, #fff 130px) !important;
}

.cost-mix-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.cost-mix-summary article {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 64px;
  padding: 9px 10px;
  border: 1px solid #b8dbce;
  border-radius: 7px;
  color: #1c6650;
  background: #fff;
}

.cost-mix-summary span,
.cost-mix-summary strong { display: block; }
.cost-mix-summary span { color: #6a827a; font-size: 10px; }
.cost-mix-summary strong { margin-top: 3px; font-size: 13px; }

.cost-mix-status {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 10px 0;
  padding: 9px 11px;
  border: 1px solid #b8cee1;
  border-left: 3px solid #2b78b3;
  border-radius: 6px;
  color: #245a83;
  background: #f1f7fc;
  font-size: 11px;
  font-weight: 650;
}

.cost-mix-status[data-state="ready"] {
  border-color: #a7d5c4;
  border-left-color: #21866b;
  color: #17664f;
  background: #eff9f5;
}

.cost-mix-status[data-state="warning"],
.cost-mix-status[data-state="error"] {
  border-color: #efc786;
  border-left-color: #d9851d;
  color: #805315;
  background: #fff8eb;
}

.cost-mix-table {
  min-width: 1480px;
}

.cost-mix-table td:nth-child(3),
.cost-mix-table td:nth-child(4) {
  white-space: nowrap;
}

.cost-workshop-ledger-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin: 12px 0 7px;
  color: #315f52;
  font-size: 11px;
}

.cost-workshop-ledger-title span {
  color: #6a827a;
  font-size: 10px;
}

.cost-workshop-ledger-table {
  min-width: 1240px;
}

.cost-workshop-ledger-table td:first-child,
.cost-workshop-ledger-table td:nth-child(2) {
  white-space: nowrap;
}

@media (max-width: 980px) {
  .cost-date-toolbar { grid-template-columns: 1fr 1fr; }
  .cost-period-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cost-mix-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .cost-date-toolbar,
  .cost-period-summary,
  .cost-mix-summary { grid-template-columns: 1fr; }
  .cost-range-mode button { flex: 1; }
}

.independent-model-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 9px 11px;
  border-left: 3px solid #22866c;
  color: #245c4f;
  background: #edf8f4;
  font-size: 12px;
  font-weight: 650;
}

.futures-quote-status {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  margin-top: 10px;
  padding: 9px 11px;
  border: 1px solid #b8cee1;
  border-left: 3px solid #2b78b3;
  border-radius: 6px;
  color: #245a83;
  background: #f1f7fc;
}

.futures-quote-status > div {
  min-width: 0;
}

.futures-quote-status strong,
.futures-quote-status span {
  display: block;
}

.futures-quote-status strong {
  font-size: 12px;
}

.futures-quote-status span {
  margin-top: 2px;
  overflow: hidden;
  color: #58758d;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.futures-quote-status[data-state="ready"] {
  border-color: #9bc9b9;
  border-left-color: #21866b;
  color: #17664f;
  background: #eff9f5;
}

.futures-quote-status[data-state="warning"] {
  border-color: #e0c27c;
  border-left-color: #c58b16;
  color: #7a5510;
  background: #fff9eb;
}

.futures-quote-status[data-state="error"] {
  border-color: #e1a6a6;
  border-left-color: #bd4545;
  color: #8d2929;
  background: #fff3f3;
}

.cost-result-cards {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.cost-result-cards article {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #c7d7e8;
  border-radius: 6px;
  background: #f8fbfe;
}

.cost-result-cards article:nth-child(2),
.cost-result-cards article:nth-child(6) {
  border-color: #b8d7cc;
  background: #f3faf7;
}

.cost-result-cards span {
  display: block;
  margin-bottom: 5px;
  color: #5b7085;
  font-size: 11px;
}

.cost-result-cards strong {
  display: block;
  overflow: hidden;
  color: #123f67;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.procurement-result-cards strong {
  color: #155e4d;
}

.cost-dynamic-metrics {
  margin-bottom: 10px;
  border: 1px solid #c8d9e9;
  border-radius: 6px;
  background: #fff;
  overflow: hidden;
}

.cost-market-pricing,
.cost-ore-balance,
.cost-steam-balance {
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid #b9d4c9;
  border-radius: 6px;
  background: #fff;
}

.cost-market-pricing .cost-dynamic-heading {
  color: #245c4f;
  background: #edf8f4;
}

.cost-ore-balance {
  border-color: #b9d2e7;
}

.cost-ore-balance .cost-dynamic-heading {
  color: #275b83;
  background: #eef5fb;
}

.cost-steam-balance {
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid #c8d9e9;
  border-radius: 6px;
  background: #fff;
}

.cost-steam-balance .cost-dynamic-heading {
  color: #315f6d;
  background: #eef7f8;
}

.cost-market-cards,
.cost-ore-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cost-steam-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cost-market-cards article,
.cost-ore-cards article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
  min-height: 76px;
  padding: 10px 11px;
  border-right: 1px solid #dce6ef;
}

.cost-steam-cards article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
  min-height: 76px;
  padding: 10px 11px;
  border-right: 1px solid #dce6ef;
}

.cost-steam-cards article:last-child {
  border-right: 0;
}

.cost-steam-cards .cost-metric-icon {
  color: #2d7188;
  background: #e7f3f6;
}

.cost-market-cards article:last-child,
.cost-ore-cards article:last-child {
  border-right: 0;
}

.cost-market-cards .cost-metric-icon {
  color: #1e755f;
  background: #e7f4ef;
}

.cost-ore-cards .cost-metric-icon {
  color: #2469a6;
  background: #e7f1fa;
}

.cost-market-cards span,
.cost-ore-cards span,
.cost-steam-cards span {
  display: block;
  color: #557469;
  font-size: 11px;
}

.cost-market-cards strong,
.cost-ore-cards strong,
.cost-steam-cards strong {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: #145542;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cost-ore-cards strong {
  color: #174f7c;
}

.cost-dynamic-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 34px;
  padding: 7px 11px;
  color: #315f7c;
  background: #eef5fa;
}

.cost-dynamic-heading strong {
  font-size: 13px;
}

.cost-dynamic-heading span {
  color: #647f93;
  font-size: 11px;
}

.cost-utility-cards,
.cost-fixed-cards {
  display: grid;
  gap: 0;
}

.cost-utility-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cost-fixed-cards {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.cost-utility-cards article,
.cost-fixed-cards article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
  min-height: 92px;
  padding: 10px 11px;
  border-right: 1px solid #dce6ef;
}

.cost-utility-cards article:last-child,
.cost-fixed-cards article:last-child {
  border-right: 0;
}

.cost-metric-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 6px;
  color: #17659c;
  background: #e7f2fa;
}

.cost-fixed-metrics .cost-dynamic-heading {
  color: #3f6274;
  background: #eff4f6;
}

.cost-fixed-metrics .cost-metric-icon {
  color: #345f75;
  background: #e9f0f4;
}

.cost-utility-cards span,
.cost-fixed-cards span {
  display: block;
  color: #556d82;
  font-size: 11px;
}

.cost-utility-cards strong,
.cost-fixed-cards strong {
  display: block;
  margin: 3px 0;
  overflow: hidden;
  color: #123f67;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cost-utility-cards small,
.cost-fixed-cards small,
.cost-utility-cards em {
  display: block;
  color: #687f91;
  font-size: 10px;
  font-style: normal;
  line-height: 1.35;
}

.cost-utility-cards em {
  color: #8a9baa;
}

.cost-workshop-utility-scroll {
  max-height: 255px;
  border-width: 1px 0 0;
}

.cost-workshop-utility-table {
  min-width: 980px;
}

.cost-workshop-utility-table th,
.cost-workshop-utility-table td {
  padding: 8px 9px;
  text-align: right;
  white-space: nowrap;
}

.cost-workshop-utility-table th:first-child,
.cost-workshop-utility-table td:first-child {
  text-align: left;
}

.cost-workshop-utility-table tbody td:last-child,
.cost-workshop-utility-table tfoot th:last-child {
  color: #145f4b;
  background: #edf8f4;
}

.cost-risk-banner {
  display: grid;
  grid-template-columns: 20px auto 1fr;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
  padding: 9px 11px;
  border: 1px solid #a8d3c2;
  border-radius: 6px;
  color: #205b4b;
  background: #eff9f5;
  font-size: 12px;
}

.cost-risk-banner[data-level="warning"] {
  border-color: #e3c277;
  color: #7a5510;
  background: #fff9eb;
}

.cost-risk-banner[data-level="danger"] {
  border-color: #e7a0a0;
  color: #8d2929;
  background: #fff3f3;
}

.cost-output-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
  gap: 10px;
  align-items: start;
}

.procurement-output-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cost-table-scroll,
.cost-history-scroll {
  max-height: 315px;
  overflow: auto;
  border: 1px solid #d8e1ea;
}

.cost-table-scroll .finance-entry-table,
.cost-history-scroll .data-table {
  border: 0;
}

.cost-table-scroll thead th,
.cost-history-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.procurement-mix-input-table,
.procurement-mix-result-table,
.cost-full-table,
.actual-sensitivity-table {
  min-width: 980px;
}

.procurement-mix-input-table input {
  width: 100%;
  min-width: 120px;
  padding: 8px 9px;
  border: 1px solid #c8d6e4;
  border-radius: 6px;
  color: #17334d;
  background: #fff;
  font: inherit;
  text-align: right;
}

.procurement-mix-input-table td:nth-child(2) input {
  text-align: left;
}

.procurement-mix-input-table th:first-child,
.procurement-mix-input-table td:first-child,
.procurement-mix-input-table th:last-child,
.procurement-mix-input-table td:last-child {
  width: 64px;
  text-align: center;
}

.purchase-combination-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 0 8px;
}

.purchase-combination-head > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.purchase-combination-head strong {
  color: #183e61;
  font-size: 14px;
}

.purchase-combination-head span,
.purchase-input-help {
  color: #62788b;
  font-size: 12px;
}

.purchase-row-index {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #2876b7;
  font-size: 12px;
  font-weight: 800;
}

.purchase-remove-button {
  width: 30px;
  height: 30px;
  border: 1px solid #d7e0e8;
  border-radius: 6px;
  color: #a13b3b;
  background: #fff;
}

.purchase-remove-button:disabled {
  cursor: not-allowed;
  opacity: .35;
}

.purchase-input-help {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 8px;
}

.purchase-input-help span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.cost-full-table .cost-fixed-row td {
  background: #f8fbfd;
}

.cost-category-tag {
  display: inline-flex;
  min-width: 54px;
  justify-content: center;
  padding: 3px 8px;
  border-radius: 999px;
  color: #155b7a;
  background: #e7f4fa;
  font-size: 11px;
  font-weight: 700;
}

.cost-category-tag.fixed {
  color: #725016;
  background: #fff1cf;
}

.cost-sales-summary-row th {
  color: #183e61;
  background: #eaf3fb;
  line-height: 1.6;
}

.actual-sensitivity-table .active-scenario td {
  background: #eaf7f2;
  box-shadow: inset 0 1px #9ccdbb, inset 0 -1px #9ccdbb;
}

.cost-scenario-table {
  min-width: 1900px;
  table-layout: fixed;
}

.cost-scenario-table .cost-col-grade { width: 82px; }
.cost-scenario-table .cost-col-spec { width: 240px; }
.cost-scenario-table .cost-col-quote { width: 120px; }
.cost-scenario-table .cost-col-method { width: 220px; }
.cost-scenario-table .cost-col-price { width: 118px; }
.cost-scenario-table .cost-col-rate { width: 86px; }
.cost-scenario-table .cost-col-consumption { width: 105px; }
.cost-scenario-table .cost-col-output { width: 105px; }
.cost-scenario-table .cost-col-money { width: 125px; }
.cost-scenario-table .cost-col-annual-profit { width: 138px; }
.cost-scenario-table .cost-col-status { width: 150px; }

.cost-scenario-table th,
.cost-scenario-table td {
  padding: 9px 8px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}

.cost-scenario-table td:not(:nth-child(2)):not(:nth-child(4)) {
  text-align: right;
}

.cost-scenario-table th:last-child,
.cost-scenario-table td:last-child {
  text-align: center;
}

.cost-scenario-scroll {
  max-height: 420px;
}

.cost-production-table {
  min-width: 1280px;
}

.cost-production-note {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 9px 11px;
  border-bottom: 1px solid #d9e6ef;
  color: #557186;
  background: #f8fbfd;
  font-size: 11px;
}

.cost-production-note strong {
  color: #315f7c;
  white-space: nowrap;
}

.cost-production-table td:nth-child(3),
.cost-production-table td:nth-child(5),
.cost-production-table td:nth-child(6),
.cost-production-table td:nth-child(7),
.cost-production-table th:nth-child(3),
.cost-production-table th:nth-child(5),
.cost-production-table th:nth-child(6),
.cost-production-table th:nth-child(7) {
  text-align: right;
  white-space: nowrap;
}

.cost-production-table tfoot th {
  color: #174f40;
  background: #eaf7f1;
}

.cost-balance-positive {
  color: #17664f !important;
}

.cost-balance-negative {
  color: #b33a3a !important;
}

.cost-smm-sensitivity .sheet-band {
  border-bottom-color: #cbdde9;
  color: #315f7c;
  background: #eef5fa;
}

.cost-smm-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 9px 11px;
  border-bottom: 1px solid #d9e6ef;
  color: #557186;
  background: #f8fbfd;
  font-size: 11px;
}

.cost-smm-note strong {
  color: #315f7c;
  white-space: nowrap;
}

.cost-smm-note span {
  min-width: 260px;
  flex: 1 1 620px;
  line-height: 1.55;
}

.cost-smm-note a {
  color: #2469a6;
  font-weight: 700;
  white-space: nowrap;
}

.cost-sensitivity-chart {
  min-width: 0;
  padding: 12px 14px 8px;
  overflow: hidden;
  border-bottom: 1px solid #d9e6ef;
  background: #ffffff;
}

.cost-sensitivity-chart-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-bottom: 6px;
  color: #315f7c;
}

.cost-sensitivity-chart-head span {
  color: #718699;
  font-size: 11px;
}

[data-cost-sensitivity-chart],
[data-smm-profit-chart],
[data-purchase-sensitivity-chart] {
  min-width: 0;
  width: 100%;
}

.cost-sensitivity-svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: 330px;
  overflow: visible;
}

.cost-chart-grid line {
  stroke: #dce6ee;
  stroke-width: 1;
}

.cost-chart-grid text,
.cost-chart-grade,
.cost-chart-axis-label,
.cost-chart-zero-label {
  fill: #667d90;
  font-size: 11px;
}

.cost-chart-line {
  fill: none;
  stroke: #2d77ad;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cost-chart-zero {
  stroke: #8ba0b2;
  stroke-width: 1.5;
  stroke-dasharray: 5 4;
}

.cost-chart-point circle {
  stroke: #ffffff;
  stroke-width: 2;
}

.cost-chart-point.is-positive circle {
  fill: #1f8a63;
}

.cost-chart-point.is-negative circle {
  fill: #c14b4b;
}

.cost-chart-point.is-base circle {
  fill: #1f8a63;
  stroke: #d7f3e8;
  stroke-width: 4;
}

.procurement-sensitivity-svg .cost-chart-point circle {
  fill: #2d77ad;
}

.procurement-sensitivity-svg .cost-chart-point.is-base circle {
  fill: #1f8a63;
  stroke: #d7f3e8;
  stroke-width: 4;
}

.purchase-joint-sensitivity-table {
  min-width: 1550px;
}

.purchase-joint-sensitivity-table td:not(:nth-child(2)),
.purchase-joint-sensitivity-table th:not(:nth-child(2)) {
  white-space: nowrap;
}

.purchase-grade-combination {
  min-width: 300px;
  color: #4d687d;
  line-height: 1.55;
}

.cost-chart-value {
  fill: #31475a;
  font-size: 11px;
  font-weight: 700;
}

.cost-smm-method {
  text-align: left !important;
  color: #4d687d;
}

.cost-smm-spec,
.cost-smm-invoice {
  text-align: left !important;
}

.cost-smm-spec strong,
.cost-smm-spec small,
.cost-smm-invoice strong,
.cost-smm-invoice small {
  display: block;
}

.cost-smm-spec small,
.cost-smm-invoice small {
  margin-top: 3px;
  color: #718699;
  font-size: 10px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.cost-smm-invoice {
  color: #17664f;
  background: #f1faf6 !important;
}

.active-scenario td {
  background: #eaf4fd !important;
  box-shadow: inset 0 1px #8eb9df, inset 0 -1px #8eb9df;
}

.smm-decision-modal .smm-parameter-grid {
  border-bottom: 1px solid #d8e0e9;
}

.smm-decision-modal .futures-quote-status,
.smm-decision-modal .cost-result-cards,
.smm-decision-modal .cost-risk-banner,
.smm-decision-modal .purchase-combination-head {
  margin-right: 12px;
  margin-left: 12px;
}

.smm-decision-modal .futures-quote-status,
.smm-decision-modal .purchase-combination-head {
  margin-bottom: 10px;
}

.smm-profit-cards {
  grid-template-columns: repeat(7,minmax(0,1fr));
}

.smm-profit-cards article:nth-child(5),
.smm-profit-cards article:nth-child(7) {
  border-color: #b8d7cc;
  background: #f3faf7;
}

.smm-profit-table {
  min-width: 1320px;
}

.smm-cost-table {
  min-width: 1540px;
}

.smm-availability-table {
  min-width: 850px;
}

.smm-plan-table {
  min-width: 1240px;
}

.smm-priority-table {
  min-width: 1880px;
}

.smm-plan-cards {
  grid-template-columns: repeat(5,minmax(0,1fr));
}

.smm-math-proof {
  display: grid;
  grid-template-columns: 22px minmax(0,1fr);
  gap: 9px;
  align-items: start;
  margin: 0 12px 10px;
  padding: 10px 12px;
  border: 1px solid #b9cfe3;
  border-left: 3px solid #316f9f;
  border-radius: 6px;
  color: #285d83;
  background: #f1f7fc;
}

.smm-math-proof strong,
.smm-math-proof span {
  display: block;
}

.smm-math-proof strong {
  margin-bottom: 3px;
  font-size: 12px;
}

.smm-math-proof span {
  color: #58758d;
  font-size: 11px;
  line-height: 1.65;
}

.smm-priority-heading,
.smm-best-detail-heading {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid #d9e6ef;
}

.smm-combination-cell {
  min-width: 300px;
  text-align: left !important;
  white-space: normal !important;
}

.smm-combination-cell strong,
.smm-combination-cell small {
  display: block;
}

.smm-combination-cell small {
  margin-top: 4px;
  color: #718699;
  font-size: 10px;
}

.smm-second-priority td {
  background: #f2f8fd;
  box-shadow: inset 0 1px #bfd7ea,inset 0 -1px #bfd7ea;
}

.smm-profit-table td:not(:nth-child(2)),
.smm-cost-table td:not(:nth-child(2)):not(:nth-child(4)),
.smm-plan-table td:not(:nth-child(2)) {
  text-align: right;
  white-space: nowrap;
}

.smm-priority-table td:not(:nth-child(2)) {
  text-align: right;
  white-space: nowrap;
}

.smm-priority-table th:first-child,
.smm-priority-table td:first-child,
.smm-priority-table th:last-child,
.smm-priority-table td:last-child {
  text-align: center;
}

.smm-profit-table th:last-child,
.smm-profit-table td:last-child,
.smm-cost-table th:last-child,
.smm-cost-table td:last-child,
.smm-plan-table th:first-child,
.smm-plan-table td:first-child,
.smm-plan-table th:last-child,
.smm-plan-table td:last-child {
  text-align: center;
}

.smm-availability-table .cost-input-unit {
  min-width: 190px;
}

.table-cell-note {
  margin-left: 4px;
  color: #718699;
  font-size: 10px;
}

.cost-history-scroll {
  max-height: 230px;
}

@media (max-width: 1100px) {
  .cost-center-hero {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .smm-profit-cards {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }

  .smm-plan-cards {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .cost-center-badges {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .cost-basis-grid,
  .cost-price-grid,
  .cost-fixed-grid,
  .cost-procurement-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cost-result-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cost-fixed-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cost-market-cards,
  .cost-ore-cards,
  .cost-steam-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cost-market-cards article:nth-child(2),
  .cost-ore-cards article:nth-child(2),
  .cost-steam-cards article:nth-child(2) {
    border-right: 0;
  }

  .cost-market-cards article:nth-child(n + 3),
  .cost-ore-cards article:nth-child(n + 3),
  .cost-steam-cards article:nth-child(n + 3) {
    border-top: 1px solid #dce6ef;
  }

  .cost-fixed-cards article:nth-child(3) {
    border-right: 0;
  }

  .cost-fixed-cards article:nth-child(n + 4) {
    border-top: 1px solid #dce6ef;
  }

  .cost-output-grid,
  .procurement-output-grid {
    grid-template-columns: 1fr;
  }
}

/* 全站表单高清排版：统一字号、字重、对比度与字段节奏 */
form {
  --form-text: #17263a;
  --form-label: #203751;
  --form-muted: #5f7084;
  --form-line: #b8c8d8;
  --form-label-bg: #e4eef8;
  color: var(--form-text);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-size: 13px;
  font-weight: 550;
  line-height: 1.5;
  letter-spacing: 0.008em;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* release-199: mobile/iPad login, quality-center HD text, and transient production help */
body.is-login-screen {
  min-width: 0;
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
}

body.is-login-screen .login-shell {
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  min-height: 100svh;
  padding:
    max(14px, env(safe-area-inset-top))
    max(14px, env(safe-area-inset-right))
    max(14px, env(safe-area-inset-bottom))
    max(14px, env(safe-area-inset-left));
  overflow-x: hidden;
  overflow-y: auto;
}

.quality-analysis-workbench,
.quality-analysis-modal,
.quality-analysis-form,
.quality-review-modal,
.quality-report-preview-modal,
.quality-draft-preview-layer,
.quality-center-report-list,
.quality-review-panel,
.quality-report-section,
.quality-official-report {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  font-feature-settings: "kern" 1;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:is(
  .quality-analysis-workbench,
  .quality-analysis-modal,
  .quality-analysis-form,
  .quality-review-modal,
  .quality-report-preview-modal,
  .quality-draft-preview-layer,
  .quality-center-report-list,
  .quality-review-panel,
  .quality-report-section
) :where(input, select, textarea, button, label, span, strong, small, p, h1, h2, h3, th, td) {
  font-family: inherit;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help)::after,
.daily-production-modal .daily-field-help::after {
  border-color: #c7dbe5;
  background: rgba(248, 252, 254, .985);
  box-shadow: 0 8px 20px rgba(55, 92, 109, .12);
  color: #3f6272;
  font-weight: 600;
  visibility: hidden;
  opacity: 0;
  transform: translateY(3px);
  transition: opacity .08s ease, transform .08s ease, visibility .08s ease;
}

:is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help):hover::after,
.daily-production-modal .daily-field-help:hover::after {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

:is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help):focus-within:not(:hover)::after,
.daily-production-modal .daily-field-help:focus-within:not(:hover)::after {
  visibility: hidden;
  opacity: 0;
  transform: translateY(3px);
}

@media (min-width: 821px) and (max-width: 1100px) {
  body.is-login-screen .login-workbench {
    zoom: 1;
    width: min(94vw, 900px);
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: 16px;
    padding: 20px;
    transform: none;
  }

  body.is-login-screen .login-card {
    left: 0;
  }
}

@media (max-width: 820px) {
  body.is-login-screen .login-shell {
    place-items: center;
    background-position: 48% center;
  }

  body.is-login-screen .login-workbench {
    zoom: 1;
    width: min(94vw, 620px);
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border-radius: 20px;
    transform: none;
  }

  body.is-login-screen .login-hero {
    display: flex;
    min-height: 0;
    padding: 72px 10px 8px;
  }

  body.is-login-screen .login-logo-lockup {
    top: -4px;
    left: 0;
    width: 76px;
    height: 74px;
    padding: 4px;
  }

  body.is-login-screen .login-logo-lockup .login-trademark {
    width: 68px;
    height: 66px;
  }

  body.is-login-screen .login-hero h1 .login-company-name {
    font-size: clamp(15px, 3.6vw, 20px);
  }

  body.is-login-screen .login-hero h1 .login-system-name {
    margin-top: 10px;
    font-size: clamp(24px, 6vw, 34px);
  }

  body.is-login-screen .login-system-intro {
    width: auto;
    margin-top: 12px;
    font-size: clamp(12px, 3vw, 15px);
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  body.is-login-screen .login-card {
    left: 0;
    width: min(100%, 380px);
    margin: 0 auto;
    padding: 18px 20px 17px;
  }
}

@media (max-width: 520px) {
  body.is-login-screen .login-shell {
    padding:
      max(8px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(8px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left));
  }

  body.is-login-screen .login-workbench {
    width: calc(100vw - 16px);
    gap: 8px;
    padding: 11px;
    border-radius: 17px;
  }

  body.is-login-screen .login-hero {
    padding: 58px 4px 4px;
  }

  body.is-login-screen .login-logo-lockup {
    width: 60px;
    height: 58px;
  }

  body.is-login-screen .login-logo-lockup .login-trademark {
    width: 52px;
    height: 50px;
  }

  body.is-login-screen .login-hero h1 .login-company-name {
    font-size: 13px;
    line-height: 1.35;
  }

  body.is-login-screen .login-hero h1 .login-system-name {
    margin-top: 7px;
    font-size: clamp(21px, 6.5vw, 28px);
  }

  body.is-login-screen .login-system-intro {
    margin-top: 8px;
    font-size: 11.5px;
    letter-spacing: .02em;
  }

  body.is-login-screen .login-card {
    width: 100%;
    padding: 15px 16px 14px;
    border-radius: 14px;
  }

  body.is-login-screen .login-brand {
    margin-bottom: 11px;
  }

  body.is-login-screen .login-card form {
    gap: 9px;
  }

  body.is-login-screen .login-card label {
    gap: 4px;
  }
}

/* release-278: elevated OA brand panel, live approval badges, and anti-crush document editor. */
body.is-login-screen .gateway-login-shell .login-workbench {
  width: min(1180px,94vw);
  grid-template-columns: minmax(0,1fr) minmax(340px,370px);
  gap: 30px;
}
body.is-login-screen .gateway-login-shell .login-hero {
  position: relative;
  isolation: isolate;
  display: flex !important;
  min-height: 390px;
  overflow: hidden;
  flex-direction: column;
  justify-content: center;
  padding: 44px 50px;
  border: 1px solid rgba(255,255,255,.94);
  border-radius: 30px;
  background: linear-gradient(145deg,rgba(255,255,255,.94),rgba(242,247,242,.84));
  box-shadow: 0 34px 78px rgba(31,61,48,.22),0 10px 26px rgba(31,61,48,.14),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(73,111,94,.14);
  backdrop-filter: blur(16px);
  transform: translateY(-4px);
}
body.is-login-screen .gateway-login-shell .login-hero > * { position: relative; z-index: 2; }
body.is-login-screen .gateway-login-shell .login-hero::before {
  content: "";
  position: absolute;
  z-index: 1;
  right: -90px;
  top: -120px;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: radial-gradient(circle,rgba(93,176,120,.24),rgba(93,176,120,0) 70%);
}
body.is-login-screen .gateway-login-shell .login-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 50px;
  right: 50px;
  bottom: 0;
  height: 6px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(90deg,#296c55,#62b86f 56%,#d9b86f);
  box-shadow: 0 -4px 14px rgba(54,116,87,.18);
}
body.is-login-screen .gateway-login-shell .login-system-intro {
  max-width: 520px;
  color: #4d665b;
  font-weight: 650;
  letter-spacing: .06em;
}

body .data-modal.office-ai-document-modal.workspace-bound-form-modal {
  --office-ai-left-shift: 5em;
}
.office-ai-document-workbench { grid-template-columns: 270px minmax(0,1fr); }
.office-ai-editor-meta {
  grid-template-columns: 140px minmax(0,1.35fr) minmax(0,1fr);
  align-items: start;
}
.office-ai-editor-meta .office-ai-title-field { grid-column: span 2; }
.office-ai-editor-meta .office-ai-keywords-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-instruction-field { grid-column: 3; }
.office-ai-document-actions > div { min-width: 0; }
.office-ai-document-actions button { white-space: nowrap; }
.office-ai-document-actions .office-ai-footer-import-button {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 11px;
  white-space: nowrap;
}

@media (max-width: 1220px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 2em; }
  .office-ai-document-workbench { grid-template-columns: 215px minmax(0,1fr); }
  .office-ai-editor-meta { grid-template-columns: minmax(120px,.7fr) minmax(0,1.3fr); }
  .office-ai-editor-meta > label:nth-child(1) { grid-column: 1; }
  .office-ai-editor-meta .office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta > label:nth-child(3) { grid-column: 1; }
  .office-ai-editor-meta > label:nth-child(4) { grid-column: 2; }
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 / -1; }
  .office-ai-document-actions { align-items: flex-start; flex-direction: column; }
  .office-ai-document-actions > span { max-width: none; }
  .office-ai-document-actions > div { width: 100%; justify-content: flex-end; }
}
@media (max-width: 900px) {
  body.is-login-screen .gateway-login-shell .login-workbench { grid-template-columns: 1fr; gap: 14px; }
  body.is-login-screen .gateway-login-shell .login-hero {
    display: grid !important;
    min-height: 0;
    padding: 18px 20px;
    border-radius: 20px;
    transform: none;
    box-shadow: 0 18px 42px rgba(31,61,48,.18),0 5px 15px rgba(31,61,48,.1),inset 0 1px 0 #fff;
  }
  body.is-login-screen .gateway-login-shell .login-hero::after { left: 20px; right: 20px; height: 4px; }
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 1em; }
  .office-ai-document-workbench {
    display: grid !important;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(118px,22dvh) minmax(0,1fr);
  }
  .office-ai-document-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .office-ai-document-editor { grid-template-rows: minmax(116px,auto) minmax(120px,1fr) auto !important; }
  .office-ai-editor-meta { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 186px; overflow: auto; }
  .office-ai-editor-meta .office-ai-title-field,
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 / -1; }
  .office-ai-document-actions > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
  .office-ai-document-actions button,
  .office-ai-document-actions .office-ai-footer-import-button { width: 100%; white-space: normal; line-height: 1.25; }
}
@media (max-width: 520px) {
  body.is-login-screen .gateway-login-shell .login-hero { padding: 14px 16px; border-radius: 16px; }
  body.is-login-screen .gateway-login-shell .login-hero::after { left: 16px; right: 16px; }
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 0em; }
  .office-ai-document-list { grid-template-columns: 1fr; }
  .office-ai-editor-meta { grid-template-columns: 1fr; }
  .office-ai-editor-meta > label,
  .office-ai-editor-meta .office-ai-title-field,
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 !important; }
  .office-ai-document-actions > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* release-293: permission-scoped navigation and browse-page function workbench. */
.permission-scoped-sidebar .nav-list {
  align-content: start;
}
.permission-scoped-sidebar .nav-group {
  margin-bottom: 4px;
}
.permission-scoped-sidebar .nav-item {
  min-height: 48px;
}
.permission-scoped-nav-empty {
  display: grid;
  justify-items: center;
  gap: 9px;
  margin: 12px 8px;
  padding: 18px 10px;
  border: 1px solid rgba(196,207,200,.7);
  border-radius: 13px;
  color: #718078;
  background: rgba(255,255,255,.62);
  text-align: center;
  font-size: 11px;
  line-height: 1.55;
}
.permission-scoped-nav-empty svg { color: #9a7b35; }
.permission-scoped-sidebar.collapsed .permission-scoped-nav-empty span { display: none; }
.permission-scoped-sidebar.collapsed .permission-scoped-nav-empty { padding: 12px 6px; }

/* release-279: polished AI document studio with help fixed in the upper-right header. */
.office-ai-document-modal.workspace-bound-form-modal {
  border: 1px solid #9fb5aa;
  border-radius: 18px;
  background: #e9eee9;
  box-shadow: -10px 28px 76px rgba(20,43,35,.18),0 28px 76px rgba(20,43,35,.24);
}
.office-ai-document-header {
  min-height: 82px;
  padding: 11px 16px 11px 18px;
  border-bottom: 1px solid #cbd7d0;
  background: linear-gradient(115deg,#fff 0%,#f5f8f4 58%,#edf4ef 100%);
  box-shadow: 0 4px 16px rgba(36,67,55,.07);
}
.office-ai-document-header-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
}
.office-ai-document-save-policy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border: 1px solid #d4dfd8;
  border-radius: 999px;
  background: #fff;
  color: #4b665b;
  font-size: 10px;
  font-weight: 750;
  box-shadow: 0 3px 10px rgba(42,75,62,.06);
}
.office-ai-document-help-host { display: inline-flex; min-width: 0; }
.office-ai-document-help-host .system-form-help-trigger.office-ai-header-help-button {
  position: relative;
  inset: auto;
  display: inline-flex;
  width: auto;
  height: 36px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  border-color: #9cc7ba;
  border-radius: 10px;
  background: #edf7f3;
  color: #216b56;
  box-shadow: 0 4px 12px rgba(36,105,83,.1);
  white-space: nowrap;
}
.office-ai-document-help-host .system-form-help-trigger.office-ai-header-help-button span {
  display: inline;
  font-size: 11px;
  font-weight: 800;
}
.office-ai-document-close { border: 1px solid transparent; }
.office-ai-document-close:hover { border-color: #d5ded9; background: #fff; }

.office-ai-document-workbench {
  grid-template-columns: 250px minmax(0,1fr);
  gap: 12px;
  padding: 12px;
  background: linear-gradient(145deg,#e8ede8,#f3f0e9);
}
.office-ai-document-library,
.office-ai-document-editor {
  border: 1px solid #cad6cf;
  border-radius: 15px;
  background: #fbfcf9;
  box-shadow: 0 10px 28px rgba(37,64,53,.09);
  overflow: hidden;
}
.office-ai-document-library { border-right: 1px solid #cad6cf; background: #f7f4ec; }
.office-ai-document-library > header {
  min-height: 62px;
  padding: 12px 13px;
  border-bottom-color: #dcd9cf;
  background: linear-gradient(120deg,#fff,#f0ede4);
}
.office-ai-document-library > header strong { font-size: 15px; color: #203e34; }
.office-ai-document-library > header small { font-size: 9px; letter-spacing: .03em; }
.office-ai-document-search {
  min-height: 42px;
  margin: 11px 11px 9px;
  border-color: #cbd6cf;
  border-radius: 11px;
  box-shadow: 0 3px 10px rgba(46,71,60,.05);
}
.office-ai-document-list { gap: 8px; padding: 0 10px 12px; }
.office-ai-document-list-item {
  border-color: #d8ddd8;
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 3px 9px rgba(46,67,58,.04);
}
.office-ai-document-list-item:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(46,67,58,.09); }
.office-ai-document-list-item.active { border-color: #6aa38d; background: #eaf5ef; box-shadow: 0 0 0 2px rgba(60,128,100,.12),0 8px 18px rgba(46,92,73,.09); }

.office-ai-document-editor {
  grid-template-rows: auto minmax(120px,1fr) auto auto;
  background: #fbfcfa;
}
.office-ai-section-heading {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 34px;
  margin-bottom: 1px;
}
.office-ai-section-heading > span,
.office-ai-section-number {
  display: inline-grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border-radius: 9px;
  background: #266e58;
  color: #fff;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 5px 12px rgba(38,110,88,.18);
}
.office-ai-section-heading > div { display: flex; min-width: 0; flex-direction: column; }
.office-ai-section-heading strong { color: #203f35; font-size: 13px; }
.office-ai-section-heading small { margin-top: 1px; color: #738078; font-size: 9px; }
.office-ai-editor-meta {
  grid-template-columns: 140px minmax(0,1.35fr) minmax(0,1fr);
  gap: 9px 10px;
  padding: 11px 14px 13px;
  border-bottom: 1px solid #dbe3dd;
  background: linear-gradient(145deg,#f8faf7,#f1f5f1);
}
.office-ai-editor-meta .office-ai-type-field { grid-column: 1; }
.office-ai-editor-meta .office-ai-title-field { grid-column: 2 / span 2; }
.office-ai-editor-meta .office-ai-recipient-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-current-version-field { grid-column: 3; }
.office-ai-editor-meta .office-ai-keywords-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-instruction-field { grid-column: 3; }
.office-ai-editor-meta label > span { color: #415d52; font-size: 10px; letter-spacing: .02em; }
.office-ai-editor-meta input,
.office-ai-editor-meta select,
.office-ai-editor-meta textarea {
  border-color: #c5d4cc;
  border-radius: 9px;
  box-shadow: inset 0 1px 2px rgba(31,58,47,.035);
}
.office-ai-current-version-field input { border-color: #cbd8e1; background: #f0f4f7; color: #36536a; font-weight: 750; }
.office-ai-editor-body { padding: 11px 14px 12px; background: #fff; }
.office-ai-editor-body > header { margin-bottom: 8px; }
.office-ai-editor-body > header > div { gap: 9px; }
.office-ai-editor-body > header > div > div { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
.office-ai-editor-body > header > div > div strong { display: inline-flex; align-items: center; gap: 5px; color: #244a3d; }
.office-ai-editor-body > textarea {
  border-color: #b9ccc2 !important;
  border-radius: 13px !important;
  background: linear-gradient(#fff,#fdfefc) !important;
  box-shadow: inset 0 2px 5px rgba(28,52,43,.045),0 5px 16px rgba(28,52,43,.045) !important;
}
.office-ai-import-button { border-color: #b8c9c0; border-radius: 9px; background: #f7faf8; }
.office-ai-version-panel { padding: 9px 14px 10px; border-top: 1px solid #e0e6e2; background: #f7f8f5; }
.office-ai-version-panel > header > div { display: flex; align-items: center; gap: 8px; }
.office-ai-version-panel > header > div strong { font-size: 11px; }
.office-ai-version-panel .office-ai-section-number { width: 24px; height: 24px; flex-basis: 24px; border-radius: 7px; font-size: 8px; }
.office-ai-document-actions {
  padding: 10px 14px;
  border-top-color: #ccd8d1;
  background: linear-gradient(100deg,#eef3ef,#f8f8f4);
  box-shadow: 0 -8px 22px rgba(31,57,47,.06);
}
.office-ai-document-actions > span { color: #5d7168; font-size: 9px; font-weight: 650; }
.office-ai-document-actions button { border-radius: 9px; }

@media (max-width: 1220px) {
  .office-ai-document-workbench { grid-template-columns: 215px minmax(0,1fr); gap: 9px; padding: 9px; }
  .office-ai-editor-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .office-ai-editor-meta > label.office-ai-type-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-recipient-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-current-version-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-keywords-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-instruction-field { grid-column: 2; }
}
@media (max-width: 900px) {
  .office-ai-document-header { min-height: 72px; padding: 8px 10px; }
  .office-ai-document-save-policy { display: none; }
  .office-ai-document-help-host .system-form-help-trigger.office-ai-header-help-button { height: 34px; padding: 0 9px; }
  .office-ai-document-workbench { grid-template-rows: minmax(96px,18dvh) minmax(0,1fr); gap: 8px; padding: 8px; }
  .office-ai-document-library { border-bottom: 1px solid #cad6cf; }
  .office-ai-document-library > header { min-height: 50px; padding: 8px 10px; }
  .office-ai-document-search { min-height: 36px; margin: 7px 9px; }
  .office-ai-editor-meta { gap: 6px 9px; padding: 8px 11px 9px; }
  .office-ai-section-heading { min-height: 30px; }
  .office-ai-section-heading > span { width: 26px; height: 26px; flex-basis: 26px; }
}
@media (max-width: 620px) {
  .office-ai-document-header .office-ai-document-header-actions { gap: 5px; }
  .office-ai-document-help-host .system-form-help-trigger.office-ai-header-help-button span { display: none; }
  .office-ai-document-help-host .system-form-help-trigger.office-ai-header-help-button { width: 34px; padding: 0; }
  .office-ai-document-workbench { grid-template-rows: minmax(90px,17dvh) minmax(0,1fr); }
  .office-ai-editor-body > header > div > div small { display: none; }
}
@media (max-width: 520px) {
  .office-ai-editor-meta { grid-template-columns: 1fr; max-height: 210px; overflow: auto; }
  .office-ai-editor-meta .office-ai-type-field,
  .office-ai-editor-meta .office-ai-title-field,
  .office-ai-editor-meta .office-ai-recipient-field,
  .office-ai-editor-meta .office-ai-current-version-field,
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1; }
}

/* Release 210: 多套审批方案入口与紧凑型行政、财务审批表单。 */
.workflow-scheme-management-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 10px;
  padding: 11px 13px;
  border: 1px solid #b9d1cf;
  border-radius: 11px;
  background: linear-gradient(110deg,#edf7f4,#fbfdfc 62%,#f5f0e7);
}
.workflow-scheme-management-bar > div { display: grid; gap: 2px; min-width: 0; }
.workflow-scheme-management-bar span { display: inline-flex; align-items: center; gap: 5px; color: #39736f; font-size: 10px; font-weight: 800; }
.workflow-scheme-management-bar strong { color: #254f4c; font-size: 15px; }
.workflow-scheme-management-bar strong b { display: inline-grid; min-width: 27px; height: 27px; margin: 0 3px; place-items: center; border-radius: 8px; background: #3f7e77; color: #fff; font-size: 16px; }
.workflow-scheme-management-bar small { color: #71827e; font-size: 10px; }
.workflow-scheme-management-bar button { flex: 0 0 auto; border-color: #417f78; background: #417f78; box-shadow: 0 5px 13px rgba(47,105,98,.13); }
.workflow-scheme-tabs-visible { margin-bottom: 12px; border-color: #c5d8d5; background: #f3f8f7; }
.workflow-scheme-tabs-visible button.active { border-color: #6faaa2; box-shadow: 0 3px 10px rgba(45,103,96,.1); }
.workflow-scheme-tabs-visible button.active b { background: #3f7e77; }
.workflow-scheme-tabs-visible button.is-new { border-color: #d6a85f; background: #fff9ed; }
.workflow-scheme-tabs-visible button.is-new small { color: #9b6516; font-weight: 800; }
.workflow-add-node-button small { margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: rgba(255,255,255,.72); color: #6e7e89; font-size: 9px; font-weight: 700; }
.workflow-scheme-editor-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: -2px -2px 12px;
  padding: 10px 11px;
  border: 1px solid #d8dfda;
  border-radius: 9px;
  background: #faf9f5;
}
.workflow-scheme-editor-heading > div { display: grid; gap: 2px; min-width: 0; }
.workflow-scheme-editor-heading span { color: #7a6848; font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.workflow-scheme-editor-heading strong { overflow: hidden; color: #3f4f4d; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-scheme-editor-heading small { color: #7d8580; font-size: 10px; line-height: 1.45; }
.effective-workflow-actions .effective-workflow-add { border-color: #82b9ae; background: #eef8f5; color: #276f65; }
.effective-workflow-actions .effective-workflow-add:hover { border-color: #4f9388; background: #dff2ed; color: #1f6259; }

.data-modal.compact-approval-entry-modal,
.data-modal.system-input-window-modal.compact-approval-entry-modal,
.data-modal.system-upload-window-modal.compact-approval-entry-modal {
  width: min(1100px,calc(100vw - 24px));
  background: #f1f2ef;
}
.compact-approval-entry-modal .system-upload-window-body { padding: 11px 12px 16px; background: linear-gradient(145deg,#f7f7f3,#ecefea); }
.compact-approval-entry-modal .system-upload-window-fields { gap: 10px; }
.compact-approval-entry-modal .system-upload-window-fields .form-section { border-color: #ccd6cf; box-shadow: 0 6px 17px rgba(49,69,59,.06); }
.compact-approval-entry-modal .form-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.compact-approval-entry-modal .form-grid-4 > :is(.span-3,.span-4) { grid-column: 1 / -1; }
.compact-finance-entry-modal .finance-sheet .sheet-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.compact-finance-entry-modal .finance-sheet .sheet-grid > :is(.span-2,.span-3,.span-4) { grid-column: span 2; }
.compact-approval-entry-modal .business-form .form-grid-4 > label:not(.sheet-field) { grid-template-columns: 106px minmax(0,1fr); }
.compact-approval-entry-modal .shared-data-strip { margin: 0; }
.compact-approval-entry-modal .system-upload-window-pane { padding: 11px; border-color: #c6d4cd; background: #fbfcfa; }
.compact-approval-entry-modal .system-upload-window-heading { margin-bottom: 9px; }
.compact-approval-entry-modal .finance-document-upload,
.compact-approval-entry-modal .office-administrative-document-upload { margin: 0; }
.compact-seal-approval-modal .system-upload-window-heading em { color: #397169; background: #e5f1ed; }
.compact-finance-entry-modal .system-upload-window-heading em { color: #725f37; background: #f3eddf; }

.data-modal.employee-advance-modal.compact-employee-advance-modal {
  width: min(1240px,calc(100vw - 24px));
  background: #f5f3ee;
}
.compact-employee-advance-modal .employee-advance-workbench { gap: 12px; padding: 13px 14px 20px; }
.compact-employee-advance-modal .employee-advance-hero { padding: 15px 17px; border-radius: 14px; }
.compact-employee-advance-modal .employee-advance-hero h3 { margin: 5px 0 3px; font-size: 20px; }
.compact-employee-advance-modal .employee-advance-hero p { font-size: 12px; line-height: 1.5; }
.compact-employee-advance-modal .employee-advance-kpis { gap: 8px; }
.compact-employee-advance-modal .employee-advance-kpis article { padding: 11px 12px; border-radius: 12px; }
.compact-employee-advance-modal .employee-advance-ledger > header { padding: 12px 14px; }
.compact-employee-advance-modal .employee-advance-table-wrap { max-height: 350px; }
.compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 > :is(.span-2,.span-3,.span-4) { grid-column: span 2; }
.compact-employee-advance-modal .employee-advance-entry-grid > .business-form { max-width: 1040px; width: 100%; margin-inline: auto; padding: 14px; border-radius: 14px; }
.compact-employee-advance-modal .employee-advance-entry-grid .business-form .form-grid-4 > label:not(.sheet-field) { grid-template-columns: 108px minmax(0,1fr); }
.compact-employee-advance-modal .employee-advance-form-heading { margin-bottom: 11px; padding: 10px; }

.ledger-function-section-approval-schemes { border-color: #b8d4cf; background: #fcfdfb; }
.ledger-function-section-approval-schemes .ledger-function-head { background: linear-gradient(105deg,#eaf6f3,#fafcf9 64%,#f7f0e5); }
.ledger-function-section-approval-schemes .ledger-function-title > i { background: #dcefe9; color: #36766d; }
.ledger-function-section-approval-schemes .ledger-section-table td:nth-child(2) { color: #235f58; font-weight: 800; }
.ledger-function-section-approval-schemes .ledger-section-table td:nth-child(3),
.ledger-function-section-approval-schemes .ledger-section-table td:nth-child(4) { min-width: 260px; white-space: normal; line-height: 1.55; }

@media (max-width: 760px) {
  .workflow-scheme-management-bar,
  .workflow-scheme-editor-heading { align-items: stretch; flex-direction: column; }
  .workflow-scheme-management-bar button,
  .workflow-scheme-editor-heading button { justify-content: center; }
  .data-modal.compact-approval-entry-modal,
  .data-modal.employee-advance-modal.compact-employee-advance-modal { width: calc(100vw - 12px); }
  .compact-approval-entry-modal .form-grid-4,
  .compact-finance-entry-modal .finance-sheet .sheet-grid,
  .compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 { grid-template-columns: minmax(0,1fr); }
  .compact-approval-entry-modal .form-grid-4 > :is(.span-2,.span-3,.span-4),
  .compact-finance-entry-modal .finance-sheet .sheet-grid > :is(.span-2,.span-3,.span-4),
  .compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 > :is(.span-2,.span-3,.span-4) { grid-column: 1; }
}

@media (max-width: 1100px) and (max-height: 620px) {
  body.is-login-screen .login-workbench {
    margin-block: 8px;
  }

  body.is-login-screen .login-hero {
    padding-top: 58px;
  }
}

form :where(label, input, select, textarea, button, p, span, small, strong, em, th, td) {
  font-family: inherit;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

form label,
form label > span {
  color: var(--form-label);
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.45;
  letter-spacing: 0.012em;
}

form :where(input, select, textarea) {
  color: var(--form-text) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5;
  letter-spacing: 0.006em;
}

form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select) {
  min-height: 40px;
}

form textarea {
  line-height: 1.65;
}

form input::placeholder,
form textarea::placeholder {
  color: #78889a;
  font-size: 13px;
  font-weight: 500;
  opacity: 1;
}

form :where(small, em),
form [class*="-note"],
form [class*="-meta"],
form [class*="-status"],
form [class*="-hint"],
form [class*="-help"] {
  color: var(--form-muted);
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.55;
}

form :where(p, th, td) {
  color: var(--form-text);
  font-size: 12px;
  line-height: 1.55;
}

form :where(button, .primary-button, .outline-button, .link-button) {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.008em;
}

form svg text {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600;
}

.business-form {
  color: var(--form-text);
  font-size: 13px;
}

.business-form :is(.form-grid-4, .line-grid, .form-section, .form-row) > label:not(.sheet-field),
.business-form > label:not(.sheet-field) {
  grid-template-columns: 124px minmax(0, 1fr);
  min-height: 46px;
  border-color: var(--form-line);
  color: var(--form-text);
  font-size: 13px;
}

.business-form :is(.form-grid-4, .line-grid, .form-section, .form-row) > label:not(.sheet-field) > span,
.business-form > label:not(.sheet-field) > span {
  min-width: 0;
  padding: 9px 10px;
  border-color: var(--form-line);
  background: linear-gradient(135deg, #eaf2fa, var(--form-label-bg));
  color: var(--form-label);
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.business-form :is(.form-grid-4, .line-grid, .form-section, .form-row) > label:not(.sheet-field) :is(input, select, textarea),
.business-form > label:not(.sheet-field) :is(input, select, textarea) {
  min-width: 0;
  min-height: 44px;
  padding: 9px 12px;
  background: #ffffff;
  color: var(--form-text);
}

.business-form :is(.form-grid-4, .line-grid, .form-section, .form-row) > label:not(.sheet-field) textarea,
.business-form > label:not(.sheet-field) textarea {
  min-height: 86px;
  resize: vertical;
}

.data-modal label.sheet-field {
  min-height: 44px;
  border-color: var(--form-line);
  font-size: 13px;
}

.data-modal label.sheet-field > span {
  padding: 8px 10px;
  border-color: var(--form-line);
  background: linear-gradient(135deg, #eaf2fa, var(--form-label-bg));
  color: var(--form-label);
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.4;
}

.data-modal label.sheet-field :is(input, select, textarea) {
  min-height: 42px;
  padding: 8px 11px;
  color: var(--form-text);
}

.form-section {
  border-color: #c7d4e2;
  background: #fbfdff;
}

.business-form .form-section {
  border-color: #aebfd0;
  background: #ffffff;
}

.form-section-title {
  min-height: 46px;
  padding: 10px 14px;
  border-color: #c7d5e3;
  background: linear-gradient(90deg, #edf4fb, #f8fbfe);
}

.form-section-title strong {
  color: #17395b;
  font-size: 15px !important;
  font-weight: 800;
  line-height: 1.4;
}

.form-section-title > span,
.business-form .form-section-title > span {
  color: #536b82;
  font-size: 12px !important;
  font-weight: 650;
  line-height: 1.55;
}

.business-form .permission-check,
.business-form .permission-check > span {
  color: #253b55 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.business-form :is(.status-pill, .tag, .logic-badge, .form-security-note),
.business-form :is(.request-window-meta b, .request-window-meta i, .evidence-status) {
  font-size: 12px !important;
  font-weight: 650;
  line-height: 1.45;
}

:is(.report-query-form, .master-data-form, .security-policy-panel, .tracking-create-form, .tracking-update-panel) {
  color: var(--form-text);
  font-size: 13px;
}

:is(.report-query-form, .master-data-form, .security-policy-panel, .tracking-create-form, .tracking-update-panel) label > span {
  color: var(--form-label);
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.45;
}

:is(.report-query-form, .master-data-form, .security-policy-panel, .tracking-create-form, .tracking-update-panel) :is(input, select, textarea) {
  min-height: 42px;
  color: var(--form-text);
  font-size: 14px !important;
  font-weight: 600 !important;
}

.data-modal form.business-form {
  padding-top: 18px;
}

.business-form .modal-actions {
  min-height: 62px;
  border-color: #c8d4e0;
  background: rgba(249, 252, 255, 0.98);
}

/* 生产管理、运营中心与进销管控：字段说明从输入框移至悬停/聚焦提示 */
form.has-hover-field-help label.form-field-help,
form.has-hover-field-help .form-control-hover-help {
  position: relative;
  overflow: visible !important;
  isolation: isolate;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

form.has-hover-field-help label.form-field-help:hover,
form.has-hover-field-help label.form-field-help:focus-within,
form.has-hover-field-help .form-control-hover-help:hover,
form.has-hover-field-help .form-control-hover-help:focus-within {
  z-index: 80;
  border-color: #78a7c1 !important;
  box-shadow: inset 0 0 0 1px rgba(73, 132, 163, .18);
}

form.has-hover-field-help label.form-field-help > span:first-child {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

form.has-hover-field-help .form-field-help-icon {
  display: inline-flex;
  flex: 0 0 17px;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border: 1px solid #8fb2c5;
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
  color: #2d718f;
  box-shadow: 0 1px 2px rgba(29, 73, 94, .08);
}

/* 生产管理、运营中心表单保留悬停说明，但不显示字段旁的圆圈信息图标。 */
form[data-system-form-module="materials"] .form-field-help-icon,
form[data-system-form-module="raw"] .form-field-help-icon {
  display: none !important;
}

form.has-hover-field-help .form-control-hover-help > .form-field-help-icon {
  position: absolute;
  top: 5px;
  right: 5px;
  z-index: 4;
}

form.has-hover-field-help label.form-field-help::after,
form.has-hover-field-help .form-control-hover-help::after {
  content: attr(data-field-help);
  position: absolute;
  right: 8px;
  top: calc(100% + 7px);
  bottom: auto;
  z-index: 120;
  width: max-content;
  max-width: min(300px, calc(100vw - 48px));
  padding: 9px 11px;
  border: 1px solid rgba(104, 145, 163, .7);
  border-radius: 8px;
  background: rgba(20, 52, 68, .97);
  box-shadow: 0 10px 24px rgba(13, 38, 51, .24);
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
  text-align: left;
  white-space: normal;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .14s ease, transform .14s ease;
}

form.has-hover-field-help label.form-field-help:hover::after,
form.has-hover-field-help label.form-field-help:focus-within::after,
form.has-hover-field-help .form-control-hover-help:hover::after,
form.has-hover-field-help .form-control-hover-help:focus-within::after {
  opacity: 1;
  transform: translateY(0);
}

form.has-hover-field-help :is(input, textarea)::placeholder {
  color: transparent !important;
}

@media (prefers-reduced-motion: reduce) {
  form.has-hover-field-help label.form-field-help,
  form.has-hover-field-help label.form-field-help::after,
  form.has-hover-field-help .form-control-hover-help,
  form.has-hover-field-help .form-control-hover-help::after {
    transition: none;
  }
}

.cost-profile-modal {
  top: 50%;
  height: min(920px, calc(100vh - 24px));
  max-height: calc(100vh - 24px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%);
}

.cost-profile-modal > .modal-header {
  position: relative;
  flex: 0 0 auto;
}

.cost-profile-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: #f7f9fc;
}

.cost-profile-scroll > .governance-ledger {
  margin: 16px 18px 22px;
}

/* Unified form decoration adds an outer scrolling body at runtime. Let that
   body own the vertical scroll so the profile form and saved-scheme ledger
   cannot extend behind the modal's clipped bottom edge. */
.cost-profile-modal.system-business-unified-modal > .system-business-unified-body {
  overflow-x: hidden;
  overflow-y: auto;
}

.cost-profile-modal.system-business-unified-modal .cost-profile-scroll {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.cost-profile-form .cost-profile-scope-section {
  overflow: visible;
  z-index: 5;
}

.cost-profile-form .form-grid-4 > label.cost-profile-primary-field:not(.sheet-field) {
  grid-template-columns: 160px minmax(0, 1fr);
  height: 34px;
  min-height: 34px;
}

.cost-profile-form .form-grid-4 > label.cost-profile-primary-field:not(.sheet-field) > span {
  padding-block: 5px;
  white-space: nowrap;
}

.cost-profile-form .form-grid-4 > label.cost-profile-primary-field:not(.sheet-field) > :is(input, select) {
  height: 33px;
  min-height: 32px;
  padding-block: 5px;
}

.cost-grade-band-field {
  position: relative;
  z-index: 8;
  overflow: visible;
}

.cost-grade-band-help {
  position: absolute;
  left: 160px;
  right: 8px;
  top: calc(100% + 7px);
  z-index: 30;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  padding: 8px 10px;
  border: 1px solid #98b8d9;
  border-radius: 7px;
  color: #244f7a;
  background: rgba(244, 249, 255, 0.98);
  box-shadow: 0 10px 24px rgba(24, 59, 96, 0.16);
  transform: translateY(-3px);
  transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
}

.cost-grade-band-field > select:hover + .cost-grade-band-help,
.cost-grade-band-field > select:focus + .cost-grade-band-help,
.cost-grade-band-field > select:focus-visible + .cost-grade-band-help {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.custom-grade-status {
  display: none;
  min-height: 30px;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border: 1px solid #a9c7e6;
  border-radius: 7px;
  background: #f1f7fd;
  color: #285a85;
  font-size: 11px;
  line-height: 1.35;
}

.custom-grade-status.is-active {
  display: flex;
}

.cost-profile-form label.is-custom-grade-input .cost-input-unit {
  border-color: #4f88bf;
  box-shadow: 0 0 0 2px rgba(79, 136, 191, 0.12);
  background: #fff;
}

.cost-profile-form label.is-custom-grade-input input {
  cursor: text;
  background: #fff;
}

.shared-cost-analysis-form {
  min-height: 0;
  flex: 1 1 auto;
  padding: 0 !important;
  overflow: hidden;
  display: flex !important;
  flex-direction: column;
  gap: 0 !important;
}

.cost-accounting-modal:has(.shared-cost-analysis-form) {
  top: 50%;
  height: min(920px, calc(100vh - 24px));
  max-height: calc(100vh - 24px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%);
}

.cost-accounting-modal:has(.shared-cost-analysis-form) > .modal-header {
  position: relative;
  flex: 0 0 auto;
}

.shared-cost-analysis-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
  display: grid;
  align-content: start;
  grid-auto-rows: max-content;
  gap: 14px;
  padding: 18px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.business-form .shared-cost-result {
  min-height: 115px;
  overflow: visible;
  align-content: start;
}

.workshop-source-rule {
  min-height: 58px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px 16px;
  padding: 10px 13px;
  border: 1px solid #a9bfd4;
  border-radius: 8px;
  color: #31516f;
  background: linear-gradient(135deg, #edf6ff, #f8fbfe);
}

.workshop-source-rule strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #174d79;
  white-space: nowrap;
}

.workshop-source-rule span {
  line-height: 1.55;
}

.workshop-result-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.workshop-total-cost-card {
  border-color: #679cc7 !important;
  background: linear-gradient(145deg, #eaf5ff, #ffffff) !important;
}

.workshop-reconciliation-panel,
.workshop-grade-ledger,
.workshop-cost-composition {
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid #aebfd0;
  border-radius: 8px;
  background: #fff;
}

.workshop-source-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  background: #f7fafc;
}

.workshop-source-grid article {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #c7d5e3;
  border-radius: 8px;
  background: #fff;
}

.workshop-source-grid span,
.workshop-source-grid small {
  display: block;
  color: #60758a;
}

.workshop-source-grid strong {
  display: block;
  margin: 5px 0;
  color: #173e62;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.workshop-output-reconciliation {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 11px 13px;
  border-top: 1px solid #c7d5e3;
  color: #405a72;
  background: #f3f8fc;
}

.workshop-output-reconciliation.has-variance {
  color: #8a4f18;
  background: #fff8ed;
}

.workshop-output-reconciliation small {
  flex: 1 1 100%;
  color: #60758a;
}

.workshop-grade-ledger .data-table,
.workshop-cost-table {
  min-width: 1180px;
}

.workshop-grade-ledger td small {
  display: block;
  margin-top: 4px;
  color: #61768a;
}

.workshop-cost-table td:nth-child(5),
.workshop-cost-table td:nth-child(6),
.workshop-cost-table td:nth-child(7) {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.business-form .shared-cost-analysis-actions {
  position: relative;
  z-index: 40;
  flex: 0 0 auto;
  margin: 0;
  padding: 14px 18px;
  border-top: 1px solid #b7c8d9;
  background: rgba(249, 252, 255, 0.985);
  box-shadow: 0 -12px 28px rgba(18, 34, 55, 0.14);
}

.shared-cost-analysis-actions .form-submit-note {
  min-width: 260px;
  flex: 1 1 360px;
  margin-right: auto;
}

.shared-cost-analysis-actions {
  flex-wrap: wrap;
}

.smm-futures-result {
  border-color: #9fbfe8 !important;
  background: linear-gradient(145deg, #f3f8ff, #ffffff) !important;
}

.smm-futures-result small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
}

.smm-shared-cost-form .smm-analysis-conditions > .form-section-title {
  min-height: 32px;
  padding: 6px 10px;
}

.smm-shared-cost-form .smm-analysis-conditions {
  position: relative;
  z-index: 6;
  overflow: visible;
}

.smm-shared-cost-form .smm-analysis-conditions .form-grid-4 > label:not(.sheet-field) {
  height: 34px;
  min-height: 34px;
}

.smm-shared-cost-form .smm-analysis-conditions .form-grid-4 > label.span-2:not(.sheet-field) {
  grid-template-columns: 210px minmax(0,1fr);
}

.smm-shared-cost-form .smm-analysis-conditions .form-grid-4 > label:not(.sheet-field) > span {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 5px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.smm-shared-cost-form .smm-analysis-conditions .form-grid-4 > label:not(.sheet-field) > span::after {
  display: inline;
  flex: 0 0 auto;
}

.smm-shared-cost-form .smm-analysis-conditions .form-grid-4 > label:not(.sheet-field) :is(input, select) {
  min-height: 33px;
  height: 33px;
  padding-block: 5px;
}

.smm-shared-cost-form .smm-analysis-conditions .smm-condition-help-field {
  position: relative;
  z-index: 2;
  overflow: visible;
}

.smm-shared-cost-form .smm-analysis-conditions .smm-condition-help {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 6px;
  left: 126px;
  visibility: hidden;
  overflow: visible;
  padding: 7px 9px;
  border: 1px solid #a9bfd8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(32,57,83,.16);
  color: #526a82;
  font-size: 10px !important;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .15s ease,transform .15s ease,visibility .15s ease;
}

.smm-shared-cost-form .smm-analysis-conditions .smm-condition-help-field:hover > .smm-condition-help,
.smm-shared-cost-form .smm-analysis-conditions .smm-condition-help-field:focus-within > .smm-condition-help {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.smm-shared-cost-form .smm-analysis-conditions .analysis-grade-rule {
  margin-top: 6px;
  padding: 6px 10px;
}

.form-grid-4 > .smm-quote-snapshot-panel {
  grid-column: 1 / -1;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #bed0e3;
  border-radius: 12px;
  background: linear-gradient(145deg, #f7fbff, #eef5fb);
}

.smm-quote-snapshot-loading {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #54708b;
}

.smm-quote-snapshot-head {
  padding: 13px 15px;
  border-bottom: 1px solid #cfdeeb;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: rgba(255,255,255,.72);
}

.smm-quote-snapshot-head > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.smm-quote-snapshot-head > div:last-child {
  text-align: right;
}

.smm-quote-snapshot-head span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #154f7c;
  font-size: 14px;
  font-weight: 800;
}

.smm-quote-snapshot-head strong {
  color: #263f58;
  font-size: 12px;
}

.smm-quote-snapshot-head b {
  color: #1c6f5a;
  font-size: 12px;
}

.smm-quote-snapshot-head small {
  color: #65798c;
  font-size: 11px;
}

.smm-quote-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 9px;
  padding: 12px;
}

.smm-quote-snapshot-grid article {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #d5e1ec;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(32,67,98,.045);
}

.smm-quote-snapshot-grid article.is-selected {
  border-color: #2c78c4;
  background: linear-gradient(145deg, #eef7ff, #fff);
  box-shadow: 0 0 0 2px rgba(44,120,196,.12), 0 5px 14px rgba(32,83,133,.12);
}

.smm-quote-snapshot-grid article > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.smm-quote-snapshot-grid article > div span {
  color: #26689f;
  font-size: 12px;
  font-weight: 800;
}

.smm-quote-snapshot-grid article > div b {
  padding: 2px 6px;
  border-radius: 999px;
  color: #fff;
  background: #2c78c4;
  font-size: 10px;
}

.smm-quote-snapshot-grid article > strong {
  display: block;
  min-height: 34px;
  color: #263e54;
  font-size: 12px;
  line-height: 1.45;
}

.smm-quote-snapshot-grid article p {
  margin: 7px 0 4px;
  color: #66798a;
  font-size: 11px;
}

.smm-quote-snapshot-grid article p em {
  color: #173f64;
  font-size: 17px;
  font-style: normal;
  font-weight: 800;
}

.smm-quote-snapshot-grid article small {
  display: block;
  overflow: hidden;
  color: #758696;
  font-size: 10px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.smm-quote-snapshot-panel > footer {
  padding: 9px 13px;
  border-top: 1px solid #d5e1ec;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #60778c;
  background: rgba(255,255,255,.62);
  font-size: 11px;
}

.shared-cost-statements {
  display: grid;
  gap: 14px;
}

.shared-cost-statement {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #cbd9e7;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(29,60,90,.055);
}

.shared-cost-statement > .form-section-title {
  margin: 0;
  padding: 12px 14px;
  border-bottom: 1px solid #d9e4ee;
  background: linear-gradient(145deg, #f6faff, #edf5fb);
}

.shared-cost-statement > .form-section-title strong {
  display: flex;
  align-items: center;
  gap: 7px;
}

.shared-cost-statement .table-scroll {
  max-height: 420px;
}

.shared-cost-detail-table {
  min-width: 1040px;
}

.shared-cost-detail-table td:nth-child(5),
.shared-cost-detail-table td:nth-child(6),
.shared-profit-table td:nth-child(2),
.shared-profit-table td:nth-child(3) {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.statement-total-row td {
  border-top: 2px solid #9eb7cf !important;
  color: #173e62;
  background: #eef6fd !important;
}

.shared-profit-statement {
  position: relative;
}

.shared-profit-table {
  min-width: 760px;
}

.shared-profit-table .negative {
  color: #bd3434;
}

.smm-futures-cost-profit-table {
  min-width: 1180px;
}

.shared-cost-result > .smm-futures-cost-profit-statement {
  margin: 14px 0;
  border: 2px solid #6f9fc7;
  box-shadow: 0 8px 22px rgba(30,82,126,.11);
}

.smm-futures-cost-profit-statement > .form-section-title {
  background: linear-gradient(135deg, #eaf5ff, #f6fbff);
}

.smm-ore-formula-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #bed3e7;
  color: #294f73;
  background: linear-gradient(90deg, #f2f8fe, #fbfdff);
}

.smm-ore-formula-strip strong {
  color: #173f66;
}

.smm-ore-formula-strip span {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.smm-ore-formula-strip small {
  color: #607990;
  text-align: right;
}

.smm-financial-profit-table .financial-section-row td {
  border-top: 1px solid #9fb8cf;
  color: #173f66;
  background: #edf5fc;
}

.smm-financial-profit-table .resource-cost-row td {
  background: #f3faf8;
}

.smm-financial-profit-table .resource-cost-row td:first-child strong {
  color: #176a55;
}

.smm-futures-cost-profit-statement.is-placeholder td {
  background: #fbfdff;
}

.smm-statement-pending {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 4px 9px;
  border: 1px dashed #9ab2c7;
  border-radius: 999px;
  color: #61798f;
  background: #f2f7fb;
  font-size: 12px;
  font-weight: 700;
}

.smm-futures-cost-profit-table th:nth-child(3),
.smm-futures-cost-profit-table th:nth-child(4),
.smm-futures-cost-profit-table td:nth-child(3),
.smm-futures-cost-profit-table td:nth-child(4) {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.smm-futures-cost-profit-table td:nth-child(2) {
  min-width: 330px;
  color: #4c6479;
}

.smm-futures-cost-profit-table td small {
  display: block;
  margin-top: 3px;
  color: #6c8092;
  line-height: 1.4;
}

.smm-futures-cost-profit-table .statement-profit-positive td {
  color: #17664d;
  background: #eefaf5;
}

.smm-futures-cost-profit-table .statement-profit-negative td {
  color: #a82f2f;
  background: #fff3f3;
}

.shared-profit-summary {
  margin: 12px 14px 14px;
  padding: 13px 15px;
  border: 1px solid;
  border-radius: 10px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
}

.shared-profit-summary.is-positive {
  border-color: #a8d9c4;
  color: #17664d;
  background: #eefaf5;
}

.shared-profit-summary.is-negative {
  border-color: #e6b3b3;
  color: #a82f2f;
  background: #fff3f3;
}

.shared-profit-summary span,
.shared-profit-summary small {
  font-size: 12px;
}

.shared-profit-summary strong {
  font-size: 19px;
}

@media (max-width: 1180px) {
  .business-form :is(.form-grid-4, .line-grid, .form-section, .form-row) > label:not(.sheet-field),
  .business-form > label:not(.sheet-field) {
    grid-template-columns: 118px minmax(0, 1fr);
  }
}

@media (max-width: 680px) {
  .cost-center-hero {
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 13px;
  }

  .cost-center-hero-icon {
    width: 38px;
    height: 38px;
  }

  .cost-center-hero h3 {
    font-size: 16px;
  }

  .cost-accounting-modal .business-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .cost-accounting-modal .business-form > *,
  .cost-accounting-modal .form-section,
  .cost-accounting-modal .form-grid,
  .cost-accounting-modal .finance-table-block {
    min-width: 0;
    max-width: 100%;
  }

  .cost-accounting-modal .shared-data-strip {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .cost-accounting-modal .shared-data-strip strong {
    min-width: 0;
    flex: 1 1 100%;
    line-height: 1.5;
  }

  .cost-accounting-modal .modal-actions {
    width: auto;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shared-cost-analysis-scroll {
    padding: 10px;
  }

  .shared-cost-analysis-actions .form-submit-note {
    min-width: 0;
    flex-basis: 100%;
  }

  .smm-quote-snapshot-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .smm-quote-snapshot-head > div:last-child {
    text-align: left;
  }

  .smm-quote-snapshot-grid {
    grid-template-columns: 1fr;
  }

  .shared-profit-summary {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .cost-accounting-modal .modal-actions .form-submit-note,
  .cost-accounting-modal .modal-actions .primary-button {
    grid-column: 1 / -1;
  }

  .cost-accounting-modal .modal-actions button {
    width: 100%;
    min-width: 0;
    justify-content: center;
  }

  .cost-model-tabs,
  .cost-model-logic-strip,
  .cost-basis-grid,
  .cost-price-grid,
  .cost-fixed-grid,
  .cost-procurement-grid,
  .cost-result-cards,
  .cost-market-cards,
  .cost-ore-cards,
  .cost-steam-cards,
  .cost-utility-cards,
  .cost-fixed-cards {
    grid-template-columns: 1fr;
  }

  .futures-quote-status {
    grid-template-columns: 22px minmax(0, 1fr);
  }

  .futures-quote-status button {
    grid-column: 1 / -1;
    justify-self: stretch;
  }

  .futures-quote-status span {
    overflow: visible;
    white-space: normal;
  }

  .cost-market-cards article,
  .cost-ore-cards article,
  .cost-steam-cards article {
    min-height: 72px;
    border-top: 1px solid #dce6ef;
    border-right: 0;
  }

  .cost-market-cards article:first-child,
  .cost-ore-cards article:first-child,
  .cost-steam-cards article:first-child {
    border-top: 0;
  }

  .cost-utility-cards article,
  .cost-fixed-cards article {
    min-height: 76px;
    border-right: 0;
    border-top: 1px solid #dce6ef;
  }

  .cost-utility-cards article:first-child,
  .cost-fixed-cards article:first-child {
    border-top: 0;
  }

  .cost-dynamic-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .cost-risk-banner {
    grid-template-columns: 20px 1fr;
  }

  .cost-risk-banner span {
    grid-column: 1 / -1;
  }

  .cost-smm-note {
    align-items: flex-start;
  }

  .cost-smm-note strong,
  .cost-smm-note span,
  .cost-smm-note a {
    min-width: 0;
    white-space: normal;
  }

  .cost-smm-note span {
    flex-basis: 100%;
  }
}

@media print {
  body.printing-cost > *:not(.cost-print-sheet) {
    display: none !important;
  }

  .cost-print-sheet {
    display: block !important;
    color: #111827;
    background: #fff;
    font-size: 10px;
  }

  .cost-print-sheet .form-section {
    margin: 0 0 10px;
    break-inside: avoid;
  }

  .cost-print-sheet .cost-result-cards {
    grid-template-columns: repeat(3, 1fr);
  }

  .cost-print-sheet .cost-utility-cards {
    grid-template-columns: repeat(3, 1fr);
  }

  .cost-print-sheet .cost-fixed-cards {
    grid-template-columns: repeat(5, 1fr);
  }

  .cost-print-sheet .cost-utility-cards article,
  .cost-print-sheet .cost-fixed-cards article {
    min-height: 68px;
    padding: 6px;
  }

  .cost-print-sheet .cost-output-grid {
    grid-template-columns: 1fr;
  }

  .cost-print-sheet .cost-table-scroll {
    max-height: none;
    overflow: visible;
  }

  .cost-print-sheet footer {
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #94a3b8;
  }
}
/* 采购追踪：快递式查询与全链路时间轴 */
.purchase-tracking-modal{width:min(1480px,96vw);height:min(940px,94vh);max-width:none;overflow:hidden}.purchase-tracking-shell{height:calc(100% - 66px);overflow:auto;padding:20px;background:#f5f7fb}.tracking-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;border-radius:18px;background:linear-gradient(135deg,#092f5f,#0f5c9c 62%,#1379b7);color:#fff;box-shadow:0 14px 30px rgba(9,47,95,.18)}.tracking-dashboard-head>div>span{font-size:12px;letter-spacing:.18em;opacity:.72}.tracking-dashboard-head h2{margin:5px 0 4px;font-size:25px}.tracking-dashboard-head p{margin:0;color:rgba(255,255,255,.76);font-size:13px}.tracking-dashboard-head .primary-button{background:#fff;color:#0b4e89;border-color:#fff;box-shadow:none}.tracking-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.tracking-stat-grid article{padding:15px 18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;display:grid;grid-template-columns:1fr auto;align-items:center;box-shadow:0 5px 14px rgba(15,23,42,.04)}.tracking-stat-grid article span,.tracking-stat-grid article small{color:#64748b;font-size:12px}.tracking-stat-grid article strong{grid-row:1/3;grid-column:2;font-size:27px;color:#0f3157}.tracking-stat-grid article[data-tone="danger"] strong{color:#dc2626}.tracking-create-form{margin-bottom:14px;padding:18px;border:1px solid #b8d7f1;border-radius:16px;background:#f8fcff;box-shadow:0 8px 22px rgba(15,92,156,.08)}.tracking-create-form .form-grid-4{margin-top:14px}.tracking-create-actions{display:flex;justify-content:flex-end;margin-top:14px}.tracking-quantity{display:grid;grid-template-columns:1fr 74px;gap:6px}.tracking-workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:14px;min-height:575px}.tracking-list-panel,.tracking-detail-panel{border:1px solid #e1e7ef;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.tracking-list-panel{padding:14px;display:flex;flex-direction:column;min-height:0}.tracking-search-box{height:42px;border:1px solid #d7e0ea;border-radius:11px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#64748b;background:#f8fafc}.tracking-search-box:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);background:#fff}.tracking-search-box input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;min-width:0;flex:1;font-size:13px}.tracking-search-box button{border:0;background:transparent;color:#94a3b8;padding:4px;cursor:pointer}.tracking-status-filter{height:38px;margin-top:9px;border:1px solid #d7e0ea;border-radius:10px;background:#fff;padding:0 10px}.tracking-list-count{display:flex;justify-content:space-between;margin:14px 3px 8px;font-size:12px;color:#64748b}.tracking-list-count strong{color:#17385c}.purchase-tracking-list{display:flex;flex-direction:column;gap:7px;overflow:auto;padding-right:2px}.purchase-tracking-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;padding:12px;border:1px solid transparent;border-radius:12px;background:#f8fafc;text-align:left;cursor:pointer;color:#0f172a}.purchase-tracking-item:hover{background:#f1f7fd}.purchase-tracking-item.active{border-color:#78b5e8;background:#edf7ff;box-shadow:inset 3px 0 #1475bd}.tracking-item-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#dbeafe;color:#1d6eb5}.tracking-item-icon[data-tone="complete"]{background:#dcfce7;color:#15803d}.tracking-item-icon[data-tone="warning"]{background:#fef3c7;color:#b45309}.tracking-item-icon[data-tone="danger"]{background:#fee2e2;color:#dc2626}.tracking-item-main{min-width:0;display:flex;flex-direction:column;gap:3px}.tracking-item-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracking-item-main small,.tracking-item-main em{font-style:normal;font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracking-item-main em{color:#3b82f6}.tracking-item-side{text-align:right;display:flex;flex-direction:column;gap:5px}.tracking-item-side b{font-size:11px;color:#0f5c9c;white-space:nowrap}.tracking-item-side small{font-size:11px;color:#64748b}.tracking-detail-panel{padding:16px;overflow:auto;min-width:0}.tracking-detail-hero{border-radius:16px;padding:20px 22px;color:#fff;background:linear-gradient(135deg,#0d3e72,#126ead);box-shadow:0 10px 24px rgba(13,62,114,.18)}.tracking-detail-hero[data-tone="complete"]{background:linear-gradient(135deg,#14532d,#16a34a)}.tracking-detail-hero[data-tone="warning"]{background:linear-gradient(135deg,#78350f,#d97706)}.tracking-detail-hero[data-tone="danger"]{background:linear-gradient(135deg,#7f1d1d,#dc2626)}.tracking-detail-heading{display:flex;justify-content:space-between;gap:20px}.tracking-detail-heading span,.tracking-detail-heading p,.tracking-live-status small{font-size:12px;color:rgba(255,255,255,.75)}.tracking-detail-heading h3{margin:4px 0;font-size:22px}.tracking-detail-heading p{margin:0}.tracking-live-status{text-align:right;display:flex;flex-direction:column;align-items:flex-end}.tracking-live-status>span{display:flex;align-items:center;gap:5px}.tracking-live-status strong{font-size:21px;margin:4px 0}.tracking-route{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,2fr) minmax(120px,1fr);align-items:center;gap:16px;margin-top:24px}.tracking-route>div:first-child,.tracking-route>div:last-child{display:flex;flex-direction:column}.tracking-route>div:last-child{text-align:right}.tracking-route span{font-size:11px;opacity:.7}.tracking-route strong{font-size:13px;margin-top:3px}.tracking-route-line{height:4px;background:rgba(255,255,255,.24);border-radius:999px;position:relative}.tracking-route-line i{position:absolute;left:0;top:0;height:100%;border-radius:999px;background:#fff}.tracking-route-line svg{position:absolute;left:calc(var(--progress,50%) - 10px);top:-8px;color:#fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.tracking-progress-meta{display:flex;gap:22px;margin-top:17px;padding-top:13px;border-top:1px solid rgba(255,255,255,.18);font-size:11px;color:rgba(255,255,255,.72)}.tracking-progress-meta b{color:#fff}.tracking-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.tracking-info-grid article{padding:13px;border:1px solid #e4eaf1;border-radius:12px;background:#fbfcfe;display:flex;flex-direction:column;gap:4px;min-width:0}.tracking-info-grid span,.tracking-info-grid small{font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracking-info-grid strong{font-size:13px;color:#17385c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracking-detail-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);gap:12px}.tracking-timeline-panel,.tracking-update-panel{border:1px solid #e1e7ef;border-radius:14px;background:#fff;padding:16px}.tracking-panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.tracking-panel-title>div{display:flex;flex-direction:column;gap:3px}.tracking-panel-title strong{font-size:15px;color:#17385c}.tracking-panel-title span{font-size:11px;color:#64748b}.tracking-panel-title>b{font-size:11px;color:#0f6faf;background:#eaf6ff;padding:5px 9px;border-radius:999px}.tracking-timeline{position:relative;margin-top:15px}.tracking-timeline:before{content:"";position:absolute;left:12px;top:11px;bottom:18px;width:2px;background:#dfe7ef}.tracking-event{position:relative;display:grid;grid-template-columns:26px 90px minmax(0,1fr);gap:9px;padding:0 0 18px}.tracking-event>i{position:relative;z-index:1;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#e8eef5;color:#64748b}.tracking-event.latest>i{background:#1475bd;color:#fff;box-shadow:0 0 0 5px #e3f2ff}.tracking-event-time{display:flex;flex-direction:column;gap:3px}.tracking-event-time strong{font-size:12px;color:#334155}.tracking-event-time span{font-size:10px;color:#94a3b8}.tracking-event-content{padding:0 0 10px;border-bottom:1px dashed #e2e8f0}.tracking-event-content>div{display:flex;align-items:center;gap:8px}.tracking-event-content strong{font-size:13px;color:#0f3157}.tracking-event-content span{font-size:11px;color:#2582c4}.tracking-event-content p{margin:5px 0 0;font-size:12px;line-height:1.55;color:#64748b}.tracking-update-panel{display:flex;flex-direction:column;gap:10px;background:#f8fafc}.tracking-update-panel label{display:flex;flex-direction:column;gap:5px}.tracking-update-panel label>span{font-size:11px;color:#475569}.tracking-update-panel input,.tracking-update-panel select,.tracking-update-panel textarea{border:1px solid #d7e0ea;border-radius:9px;background:#fff;padding:9px 10px;font:inherit}.tracking-update-panel textarea{min-height:74px;resize:vertical}.tracking-update-panel .primary-button{justify-content:center;margin-top:2px}.purchase-tracking-empty,.purchase-tracking-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#94a3b8;gap:6px;padding:34px 12px}.purchase-tracking-empty strong,.purchase-tracking-detail-empty strong{color:#475569}.purchase-tracking-empty span,.purchase-tracking-detail-empty span{font-size:12px}.purchase-tracking-detail-empty{min-height:470px}
@media(max-width:1050px){.purchase-tracking-modal{width:98vw}.tracking-workspace{grid-template-columns:300px minmax(0,1fr)}.tracking-info-grid{grid-template-columns:repeat(2,1fr)}.tracking-detail-columns{grid-template-columns:1fr}.tracking-update-panel{order:-1}.tracking-stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.purchase-tracking-shell{padding:10px}.tracking-dashboard-head{padding:16px;align-items:flex-start}.tracking-dashboard-head h2{font-size:19px}.tracking-dashboard-head p{display:none}.tracking-stat-grid{gap:7px}.tracking-stat-grid article{padding:10px}.tracking-workspace{grid-template-columns:1fr}.tracking-list-panel{max-height:360px}.tracking-route{grid-template-columns:1fr}.tracking-route-line{display:none}.tracking-progress-meta{flex-direction:column;gap:5px}.tracking-info-grid{grid-template-columns:1fr}.tracking-detail-heading{flex-direction:column}.tracking-live-status{align-items:flex-start;text-align:left}.tracking-event{grid-template-columns:26px 72px minmax(0,1fr)}}

/* 采购合同共享、到货差额与全流程节点 */
.tracking-contract-picker{display:grid;grid-template-columns:190px minmax(280px,1fr);align-items:center;gap:8px 14px;margin-top:14px;padding:13px 15px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}.tracking-contract-picker>span{font-size:12px;font-weight:700;color:#174d7d}.tracking-contract-picker select{height:40px;border:1px solid #93c5fd;border-radius:9px;background:#fff;padding:0 10px;color:#17385c}.tracking-contract-picker small{grid-column:2;font-size:11px;color:#2563a7}.tracking-contract-empty{display:flex;align-items:center;gap:8px;margin-top:14px;padding:13px 15px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#15803d;font-size:12px}.tracking-create-form input[readonly]{background:#f1f5f9;color:#475569;border-style:dashed;cursor:not-allowed}.tracking-create-actions{align-items:center;gap:14px}.tracking-create-actions>span{margin-right:auto;display:flex;align-items:center;gap:5px;color:#64748b;font-size:11px}.tracking-create-actions button:disabled{opacity:.5;cursor:not-allowed}.tracking-quantity-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 12px}.tracking-quantity-summary article{position:relative;overflow:hidden;padding:14px 16px;border:1px solid #dbe7f2;border-radius:13px;background:linear-gradient(135deg,#f8fbff,#eef6ff);display:flex;flex-direction:column;gap:4px}.tracking-quantity-summary article:after{content:"";position:absolute;right:-20px;top:-28px;width:76px;height:76px;border-radius:50%;background:rgba(37,99,235,.07)}.tracking-quantity-summary article[data-tone="success"]{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-color:#bbf7d0}.tracking-quantity-summary article[data-tone="warning"]{background:linear-gradient(135deg,#fffbeb,#fff7ed);border-color:#fed7aa}.tracking-quantity-summary span{font-size:11px;color:#64748b}.tracking-quantity-summary strong{font-size:22px;color:#123b66}.tracking-quantity-summary strong small{font-size:11px;font-weight:500}.tracking-quantity-summary em{font-style:normal;font-size:10px;color:#64748b}.purchase-node-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0 0 12px;padding:14px;border:1px solid #dfe8f1;border-radius:14px;background:#fbfdff}.purchase-node-flow article{position:relative;display:flex;gap:9px;align-items:flex-start;min-width:0;padding-right:14px}.purchase-node-flow article:not(:last-child):after{content:"";position:absolute;top:18px;left:43px;right:4px;height:2px;background:#dbe3ec}.purchase-node-flow article[data-state="complete"]:after{background:#22c55e}.purchase-node-flow article[data-state="active"]:after,.purchase-node-flow article[data-state="partial"]:after{background:linear-gradient(90deg,#f59e0b 50%,#dbe3ec 50%)}.purchase-node-flow i{position:relative;z-index:1;flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e9eef4;color:#94a3b8;border:3px solid #fff;box-shadow:0 0 0 1px #dce4ed}.purchase-node-flow article[data-state="complete"] i{background:#16a34a;color:#fff;box-shadow:0 0 0 1px #16a34a}.purchase-node-flow article[data-state="active"] i,.purchase-node-flow article[data-state="partial"] i{background:#f59e0b;color:#fff;box-shadow:0 0 0 1px #f59e0b}.purchase-node-flow div{position:relative;z-index:2;min-width:0;display:flex;flex-direction:column;gap:2px;background:#fbfdff;padding-right:3px}.purchase-node-flow div>span{font-size:9px;color:#94a3b8}.purchase-node-flow strong{font-size:12px;color:#17385c;white-space:nowrap}.purchase-node-flow small{font-size:10px;color:#64748b;line-height:1.35}.purchase-tracking-item{align-items:center}.tracking-item-side{max-width:105px}.tracking-item-side small{white-space:normal;line-height:1.25}
@media(max-width:1050px){.purchase-node-flow{grid-template-columns:repeat(3,1fr);gap:14px}.purchase-node-flow article:after{display:none}.tracking-quantity-summary{grid-template-columns:1fr}}
@media(max-width:760px){.tracking-contract-picker{grid-template-columns:1fr}.tracking-contract-picker small{grid-column:1}.purchase-node-flow{grid-template-columns:1fr}.tracking-create-actions{align-items:stretch;flex-direction:column}.tracking-create-actions>span{margin-right:0}}

/* 结构化合同、质检、付款、主数据与成本校验 */
.governance-modal{width:min(1460px,96vw);height:min(940px,94vh);max-width:none;overflow:auto;background:#f7f9fc}.governance-modal>.modal-header{position:sticky;top:0;z-index:5;background:#fff}.governance-modal>.business-form,.governance-modal>.form-section{margin:16px 20px}.governance-modal .business-form+.business-form{border-top:1px dashed #cbd5e1;padding-top:4px}.governance-ledger{background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.05)}.governance-ledger .data-table small{display:block;margin-top:3px;color:#64748b}.tracking-finance-quality-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 12px}.tracking-finance-quality-summary article{padding:13px 15px;border:1px solid #dbe7f2;border-radius:13px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.tracking-finance-quality-summary article[data-tone="success"]{border-color:#bbf7d0;background:#f0fdf4}.tracking-finance-quality-summary article[data-tone="quality"]{border-color:#c4b5fd;background:#f5f3ff}.tracking-finance-quality-summary span,.tracking-finance-quality-summary small{font-size:11px;color:#64748b}.tracking-finance-quality-summary strong{font-size:18px;color:#17385c}.master-data-form{padding:16px 18px;border:1px solid #dce6ef;border-radius:14px;background:#f8fbff;margin:14px 0}.master-data-form label{display:flex;flex-direction:column;gap:5px}.master-data-form label>span{font-size:11px;color:#475569}.master-data-form input,.master-data-form select{height:39px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 9px}.master-data-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px}.master-import-button{cursor:pointer}.database-readiness-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.database-readiness-grid article{padding:18px;border:1px solid #dbe4ee;border-radius:14px;background:linear-gradient(145deg,#f8fbff,#eef5fb);display:flex;flex-direction:column;gap:5px}.database-readiness-grid span,.database-readiness-grid small{font-size:11px;color:#64748b}.database-readiness-grid strong{font-size:20px;color:#123b66}.database-migration-roadmap{padding:20px 22px;border:1px solid #cbd5e1;border-radius:14px;background:#fff}.database-migration-roadmap h3{margin:0 0 10px;color:#17385c}.database-migration-roadmap ol{margin:0;padding-left:23px;display:grid;gap:8px;color:#475569;line-height:1.55}.database-migration-roadmap p{margin:14px 0 0;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1d4f7a;font-size:12px}.notice-row .tag{flex:0 0 auto}.notice-row span:last-child{line-height:1.45}

@media(max-width:1050px){.tracking-finance-quality-summary,.database-readiness-grid{grid-template-columns:repeat(2,1fr)}.governance-modal .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.governance-modal .form-grid-4 .span-3,.governance-modal .form-grid-4 .span-4{grid-column:1/-1}}
@media(max-width:760px){.governance-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.governance-modal>.business-form,.governance-modal>.form-section{margin:10px}.governance-modal .form-grid-4,.tracking-finance-quality-summary,.database-readiness-grid{grid-template-columns:1fr}.governance-modal .form-grid-4 [class*="span-"]{grid-column:1}.master-data-actions{align-items:stretch;flex-direction:column}.master-data-actions>*{width:100%;justify-content:center}.settings-tabs{overflow-x:auto;white-space:nowrap}.settings-tabs button{flex:0 0 auto}.topbar .brand span{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{overflow-x:auto;max-width:100%;padding-bottom:4px}.filters>.field,.filters>.popover-wrap{flex:0 0 auto}.notice-popover{position:fixed;left:10px;right:10px;top:58px;width:auto}.module-command{align-items:flex-start}.module-actions{width:100%;flex-wrap:wrap}.module-actions button{flex:1 1 160px}.data-modal .modal-header{padding:12px}.modal-title-copy .modal-company{display:none}.tracking-finance-quality-summary article{min-width:0}}

/* 行政办公：用品、快递、食堂共享业务工作台 */
.office-logistics-modal{width:min(1540px,97vw);height:min(950px,95vh);max-width:none;overflow:auto;background:linear-gradient(180deg,#eef6fb 0,#f7fafc 220px,#f8fafc 100%)}.office-logistics-modal>.modal-header{position:sticky;top:0;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid #d8e5ef}.office-kpi-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 22px 4px}.office-kpi-strip article{position:relative;overflow:hidden;min-height:100px;padding:17px 19px;border:1px solid #cfe0ed;border-radius:16px;background:linear-gradient(140deg,#fff,#edf7fb);box-shadow:0 8px 26px rgba(25,69,104,.07);display:flex;flex-direction:column;gap:4px}.office-kpi-strip article::after{content:"";position:absolute;width:86px;height:86px;right:-26px;top:-26px;border-radius:50%;background:rgba(17,126,147,.08)}.office-kpi-strip span{font-size:12px;font-weight:700;color:#557187}.office-kpi-strip strong{font-size:25px;line-height:1.15;color:#123e5e}.office-kpi-strip small{font-size:11px;color:#74899a}.office-logistics-form{margin:14px 22px;padding:0;border:0;background:transparent}.office-logistics-form>.shared-data-notice{margin-bottom:14px}.office-logistics-form>.form-section,.office-ledger{margin:0 0 15px;padding:18px 19px;border:1px solid #d7e4ed;border-radius:17px;background:#fff;box-shadow:0 6px 22px rgba(38,73,99,.055)}.office-edit-banner{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:11px 14px;border:1px solid #93c5d4;border-radius:11px;background:#ecfeff;color:#155e75;font-weight:700}.office-edit-banner .text-button{margin-left:auto}.office-lines{display:grid;gap:10px}.office-line-row,.canteen-purchase-row{display:grid;grid-template-columns:32px minmax(145px,1.35fr) minmax(100px,.9fr) minmax(110px,1fr) 72px 92px 112px 105px 94px minmax(130px,1.2fr) 38px;align-items:end;gap:8px;padding:11px;border:1px solid #dce7ee;border-radius:13px;background:#f9fcfe;transition:border-color .18s,box-shadow .18s,background .18s}.canteen-purchase-row{grid-template-columns:32px minmax(155px,1.35fr) 100px 90px 68px 96px 96px minmax(120px,1fr) 110px minmax(120px,1fr) 38px}.office-line-row:focus-within,.canteen-purchase-row:focus-within{border-color:#67a8ba;box-shadow:0 0 0 3px rgba(40,139,157,.1);background:#fff}.office-line-row.has-shortage{border-color:#f1b6a8;background:#fff8f5}.office-line-row label,.canteen-purchase-row label{min-width:0;display:flex;flex-direction:column;gap:5px}.office-line-row label>span,.canteen-purchase-row label>span{font-size:10px;font-weight:700;color:#607789}.office-line-row input,.canteen-purchase-row :is(input,select){width:100%;height:38px;padding:0 9px;border:1px solid #cbd9e3;border-radius:8px;background:#fff;color:#17364c}.office-line-row input[readonly],.canteen-purchase-row input[readonly]{background:#eef4f7;color:#426275}.office-line-index{align-self:center;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#dbeef3;color:#17677a;font-size:12px;font-weight:800}.office-line-remark{min-width:130px}.danger-soft{color:#b4533f;background:#fff3f0;border-color:#f3cec5}.office-add-line{margin-top:11px}.office-calculation-bar{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin:0 0 15px}.office-calculation-bar>span{padding:10px 14px;border:1px solid #d6e4eb;border-radius:11px;background:#fff;color:#60778a;font-size:12px}.office-calculation-bar strong{margin-left:7px;color:#174d6b;font-size:15px}.office-full-remark{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}.office-full-remark>span{font-size:11px;font-weight:700;color:#526d82}.office-full-remark textarea{min-height:76px;padding:10px 12px;border:1px solid #cddbe4;border-radius:10px;background:#fff}.office-ledger{margin:0 22px 24px}.office-table-scroll{overflow:auto;border:1px solid #e0e8ee;border-radius:12px}.office-table-scroll .data-table{min-width:1080px}.office-table-scroll .data-table td small{display:block;margin-top:4px;color:#78909f}.table-action-button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:6px 9px;border:1px solid #bcd3df;border-radius:8px;background:#f1f8fb;color:#1e617c;font-size:11px;font-weight:700}.canteen-cost-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 15px}.canteen-cost-summary article{padding:14px 16px;border:1px solid #d5e4ec;border-radius:13px;background:linear-gradient(145deg,#fff,#f0f7fa);display:flex;flex-direction:column;gap:4px}.canteen-cost-summary article:nth-child(2),.canteen-cost-summary article:nth-child(5){border-color:#c5dcf3;background:#f5f9ff}.canteen-cost-summary article:nth-child(3),.canteen-cost-summary article:nth-child(6){border-color:#c8e5d1;background:#f4fbf6}.canteen-cost-summary span,.canteen-cost-summary small{font-size:11px;color:#657e8f}.canteen-cost-summary strong{font-size:18px;color:#164d69}.office-document-upload{display:flex!important;flex-direction:column;gap:7px}.office-upload-drop{position:relative;min-height:108px;padding:18px;border:1.5px dashed #88adbd;border-radius:13px;background:linear-gradient(140deg,#f4fbfd,#eef6fa);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;text-align:center;color:#236981;cursor:pointer}.office-upload-drop:hover,.office-upload-drop:focus-within{border-color:#187a91;background:#eefbfe;box-shadow:0 0 0 3px rgba(34,133,151,.1)}.office-upload-drop input{position:absolute!important;inset:0;width:100%!important;height:100%!important;opacity:0;cursor:pointer}.office-upload-drop strong{font-size:13px;color:#19566f}.office-upload-drop small{font-size:11px;color:#6d8595}.office-document-upload>em{font-size:11px;font-style:normal;color:#617b8c}
.canteen-catalog-manager{margin:0 0 15px;border:1px solid #cfe0e9;border-radius:15px;background:linear-gradient(145deg,#f8fcfe,#eef7fa);overflow:hidden}.canteen-catalog-manager>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 17px;color:#174e68}.canteen-catalog-manager>summary::-webkit-details-marker{display:none}.canteen-catalog-manager>summary>span{display:flex;flex:1;flex-direction:column}.canteen-catalog-manager>summary small{margin-top:2px;color:#6d8290;font-weight:400}.canteen-catalog-manager>summary>svg:last-child{transition:transform .18s}.canteen-catalog-manager[open]>summary>svg:last-child{transform:rotate(180deg)}.canteen-catalog-manager-body{padding:0 16px 16px}.canteen-catalog-create{display:grid;grid-template-columns:130px minmax(180px,1fr) minmax(150px,.8fr) 130px auto;align-items:end;gap:9px;padding:13px;border:1px solid #d9e7ed;border-radius:12px;background:#fff}.canteen-catalog-create label{display:flex;flex-direction:column;gap:5px}.canteen-catalog-create label>span{font-size:10px;font-weight:700;color:#5e7687}.canteen-catalog-create :is(input,select){height:38px;border:1px solid #c9d9e2;border-radius:8px;background:#fff;padding:0 9px}.canteen-catalog-groups{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}.canteen-catalog-groups section{min-width:0;padding:12px;border:1px solid #dce8ee;border-radius:12px;background:#fff}.canteen-catalog-groups header{display:flex;justify-content:space-between;color:#214f67}.canteen-catalog-groups header span{font-size:11px;color:#78909d}.canteen-catalog-tags{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;margin-top:9px;overflow:auto}.canteen-catalog-tags>span{display:inline-flex;align-items:center;gap:5px;padding:5px 6px 5px 9px;border:1px solid #d3e2e9;border-radius:999px;background:#f5fafc;color:#315d70;font-size:11px}.canteen-catalog-tags b{font-weight:700}.canteen-catalog-tags em{font-style:normal;color:#78909c;font-size:9px}.canteen-catalog-tags button{width:19px;height:19px;border:0;border-radius:50%;display:grid;place-items:center;background:#e9f2f5;color:#66808c;cursor:pointer}.canteen-catalog-tags button:hover{background:#fee2e2;color:#b04444}.canteen-dish-field{position:relative}.canteen-dish-picker{position:relative;max-width:100%}.canteen-dish-picker>summary{list-style:none;min-height:36px;padding:6px 8px;border:1px solid #cbd9e3;border-radius:8px;background:#fff;display:flex;align-items:center;gap:6px;cursor:pointer;color:#244f64;font-size:11px}.canteen-dish-picker>summary::-webkit-details-marker{display:none}.canteen-dish-picker>summary [data-canteen-dish-summary]{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canteen-dish-picker>summary [data-canteen-dish-count]{min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#dff4f4;color:#126173;font-size:9px}.canteen-dish-picker>summary [data-canteen-dish-count][hidden]{display:none}.canteen-dish-picker[open]>summary{border-color:#4d9caf;box-shadow:0 0 0 3px rgba(37,137,157,.1)}.canteen-dish-panel{position:absolute;z-index:30;top:calc(100% + 5px);left:0;width:min(470px,76vw);max-height:330px;padding:11px;border:1px solid #bfd5df;border-radius:12px;background:#fff;box-shadow:0 18px 44px rgba(26,64,86,.2);overflow:auto}.canteen-dish-panel fieldset{margin:0 0 8px;padding:8px;border:1px solid #e0e9ee;border-radius:9px}.canteen-dish-panel legend{padding:0 5px;color:#2a647b;font-size:10px;font-weight:800}.canteen-dish-panel fieldset>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.canteen-dish-panel fieldset label{min-width:0;display:flex;flex-direction:row;align-items:center;gap:5px;padding:5px 6px;border-radius:7px;background:#f5f9fb;color:#385d6d;font-size:10px;cursor:pointer}.canteen-dish-panel fieldset label:has(input:checked){background:#dff4f4;color:#125b69;font-weight:700}.canteen-dish-panel input{width:auto!important;height:auto!important}.canteen-dish-panel>footer{position:sticky;bottom:-11px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px -11px -11px;padding:9px 11px;border-top:1px solid #dce8ee;background:rgba(255,255,255,.97)}.canteen-dish-panel>footer small{color:#718a98;font-size:9px}.canteen-dish-panel>footer>span{display:flex;gap:6px;white-space:nowrap}.canteen-dish-panel>footer button{min-height:29px;padding:5px 9px;font-size:10px}.canteen-purchase-row select[name=ingredientName]{font-weight:700;color:#20566b}
.editable-record-modal{width:min(1120px,94vw);max-height:92vh;overflow:auto;background:linear-gradient(180deg,#eef7fb,#f8fafc 190px)}.editable-record-modal>.modal-header{position:sticky;top:0;z-index:8;background:rgba(255,255,255,.97);border-bottom:1px solid #d8e6ee}.editable-record-modal>.business-form{margin:18px}.editable-record-modal .form-section{border:1px solid #d6e4ec;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(28,66,92,.06)}
.drawer-document-section{margin:15px 0;padding:14px;border:1px solid #d7e5ed;border-radius:13px;background:#f7fbfd}.drawer-document-section>header{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;color:#244e68}.drawer-document-section>header span{font-size:11px;color:#6b8494}.drawer-document-list{display:grid;gap:12px}.saved-document-preview-card{overflow:hidden;border:1px solid #cfdee7;border-radius:12px;background:#fff;box-shadow:0 7px 20px rgba(30,76,103,.06)}.saved-document-preview-card>header{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid #dbe7ed;background:linear-gradient(135deg,#f7fbfd,#eef7fa);color:#25627c}.saved-document-preview-card>header>div{min-width:0}.saved-document-preview-card>header strong,.saved-document-preview-card>header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-document-preview-card>header strong{font-size:12px;color:#173f5d}.saved-document-preview-card>header small{margin-top:2px;font-size:10px;color:#718896}.saved-document-preview-card>header>a{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:7px;background:#246b9e;color:#fff;font-size:10px;font-weight:800;text-decoration:none}.saved-document-preview-card>header>a:hover{background:#17547f}.saved-document-original-body{min-height:180px;background:#dfe8ed}.saved-document-frame{display:block;width:100%;height:min(72vh,820px);min-height:560px;border:0;background:#fff}.saved-document-image{display:flex;justify-content:center;margin:0;padding:14px;background:repeating-linear-gradient(45deg,#edf3f6,#edf3f6 12px,#e7eef2 12px,#e7eef2 24px)}.saved-document-image img{display:block;max-width:100%;height:auto;max-height:82vh;object-fit:contain;box-shadow:0 5px 20px rgba(20,51,69,.18);background:#fff}.saved-document-office>p{display:flex;align-items:center;gap:6px;margin:0;padding:9px 12px;border-top:1px solid #dbe7ed;background:#f4fafc;color:#597488;font-size:10px}.saved-document-unavailable{display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:22px;text-align:center;color:#6f8491}.saved-document-unavailable strong{color:#274f67}.saved-document-unavailable span{font-size:11px}
@media(max-width:1180px){.office-line-row,.canteen-purchase-row{grid-template-columns:32px repeat(4,minmax(120px,1fr))}.office-line-row .office-line-remark,.canteen-purchase-row .office-line-remark{grid-column:2/span 3}.canteen-cost-summary{grid-template-columns:repeat(2,1fr)}.canteen-catalog-create{grid-template-columns:repeat(2,minmax(0,1fr))}.canteen-catalog-create button{justify-self:start}}@media(max-width:760px){.office-logistics-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.office-kpi-strip{grid-template-columns:1fr;padding:12px 10px 2px}.office-kpi-strip article{min-height:82px}.office-logistics-form,.office-ledger{margin:10px}.office-line-row,.canteen-purchase-row{grid-template-columns:28px 1fr}.office-line-row label,.canteen-purchase-row label,.office-line-row .office-line-remark,.canteen-purchase-row .office-line-remark{grid-column:2}.office-line-row>button,.canteen-purchase-row>button{grid-column:2;justify-self:end}.canteen-cost-summary{grid-template-columns:1fr}.office-calculation-bar{justify-content:stretch}.office-calculation-bar>span{flex:1 1 100%}.canteen-catalog-create,.canteen-catalog-groups{grid-template-columns:1fr}.canteen-dish-panel{position:fixed;inset:90px 12px auto;width:auto;max-height:70vh}.canteen-dish-panel fieldset>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 合同、入库单、出库单唯一二维码与系统来源关联 */
.qr-scan-trigger{color:#0f6faf!important;background:#eef8ff!important}.system-source-field>small{display:block;margin-top:5px;color:#47708e;font-size:11px;line-height:1.45}.system-source-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.system-source-control select{min-width:0}.system-source-control .compact{white-space:nowrap}.document-qr-card{display:flex;align-items:center;gap:14px;margin:14px 0;padding:14px;border:1px solid #bed8ec;border-radius:14px;background:linear-gradient(135deg,#f7fbff,#edf7ff);break-inside:avoid}.document-qr-card.compact{gap:10px;margin:8px 0;padding:9px}.document-qr-image{flex:0 0 auto;padding:7px;border:1px solid #d9e6ef;border-radius:10px;background:#fff;line-height:0;box-shadow:0 4px 12px rgba(15,49,87,.08)}.document-qr-image img,.document-qr-image canvas{display:block;max-width:100%;height:auto!important}.document-qr-card>div:last-child{min-width:0;display:flex;flex-direction:column;gap:4px}.document-qr-card span{font-size:11px;font-weight:700;letter-spacing:.08em;color:#1475bd}.document-qr-card strong{font-size:15px;color:#123b66;overflow-wrap:anywhere}.document-qr-card small{font-family:Consolas,monospace;font-size:9px;color:#718096;overflow-wrap:anywhere}.document-qr-card em{display:flex;align-items:center;gap:4px;font-style:normal;font-size:10px;color:#277459}.document-qr-card.compact strong{font-size:12px}.document-qr-card.compact small,.document-qr-card.compact em{display:none}.qr-scanner-modal{width:min(980px,94vw);max-height:90vh;overflow:auto}.qr-scan-workspace{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px;margin-top:14px}.qr-scan-entry,.qr-resolve-result{min-height:330px;border:1px solid #dbe5ee;border-radius:16px;padding:20px;background:#f8fafc}.qr-scan-entry{display:flex;flex-direction:column;gap:14px}.qr-scan-entry>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.qr-scan-entry strong{color:#123b66;font-size:17px}.qr-scan-entry span{font-size:12px;color:#64748b;line-height:1.55}.qr-scan-entry label{display:flex;flex-direction:column;gap:6px}.qr-scan-entry input{height:44px;border:1px solid #9fc7e5;border-radius:10px;background:#fff;padding:0 12px;font-family:Consolas,monospace}.qr-scan-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0f5c9c,#18a1bb);box-shadow:0 10px 20px rgba(15,92,156,.2)}.qr-resolve-result{display:flex;align-items:center;justify-content:center}.qr-resolve-result.resolved{align-items:stretch;justify-content:flex-start;flex-direction:column;background:#fff}.qr-result-summary{display:flex;flex-direction:column;gap:7px}.qr-result-summary>span{font-size:11px;color:#1475bd}.qr-result-summary h3{margin:0;color:#123b66;font-size:20px}.qr-result-summary p{margin:0;color:#64748b}.qr-result-summary>div{display:flex;align-items:center;justify-content:space-between}.qr-result-summary em{font-style:normal;color:#64748b;font-size:11px}.qr-result-summary button{justify-content:center}.qr-empty-result{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;color:#94a3b8}.qr-empty-result strong{color:#475569}.qr-empty-result span{font-size:11px}.qr-source-mismatch{padding:8px 10px;border-radius:8px;background:#fff7ed;color:#b45309}.qr-security-note{display:flex;align-items:flex-start;gap:7px;margin-top:13px;padding:10px 12px;border-radius:10px;background:#f0fdf4;color:#277459;font-size:11px;line-height:1.5}.qr-registry-panel>.panel-header>div{display:flex;flex-direction:column;gap:3px}.qr-registry-panel>.panel-header span{font-size:11px;color:#64748b}.qr-registry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 18px 18px}.qr-registry-item{min-width:0;border:1px solid #dce7ef;border-radius:13px;padding:8px;background:#fbfdff;cursor:pointer;transition:.18s ease}.qr-registry-item:hover,.qr-registry-item:focus{border-color:#75b5e3;box-shadow:0 6px 16px rgba(15,92,156,.1);outline:0}.qr-registry-item>.document-qr-card{margin:0;border:0;background:transparent;padding:3px}.qr-registry-item>span{display:block;padding:4px 7px 3px;color:#64748b;font-size:10px}.qr-registry-empty{grid-column:1/-1;padding:24px;text-align:center;color:#94a3b8}.tracking-detail-panel>.document-qr-card{max-width:520px}

@media(max-width:980px){.qr-registry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.system-source-control{grid-template-columns:1fr}.qr-scan-workspace{grid-template-columns:1fr}.qr-scan-entry,.qr-resolve-result{min-height:0}.qr-registry-grid{grid-template-columns:1fr}.document-qr-card{align-items:flex-start}.qr-scanner-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0}}
@media print{.document-qr-card{border-color:#9ca3af;background:#fff;box-shadow:none}.qr-scan-trigger,.system-source-control button,.qr-security-note{display:none!important}.document-qr-image{box-shadow:none}}

/* 人力资源：员工实时打卡坐标图与两套小程序码 */
.attendance-live-map-panel{margin:22px 18px;border:1px solid #d8e5ee;border-radius:18px;overflow:hidden;background:linear-gradient(145deg,#f8fbfd,#eef6f8);box-shadow:0 8px 24px rgba(15,49,72,.07)}.attendance-live-map-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #dbe7ed;background:rgba(255,255,255,.78)}.attendance-live-map-head h3{margin:0;color:#143b59;font-size:17px}.attendance-live-map-head p{margin:5px 0 0;color:#647d8d;font-size:11px}.attendance-live-map-head>div:last-child{display:flex;align-items:center;gap:10px}.map-live-badge{padding:6px 10px;border-radius:999px;color:#18794e;background:#e8f8ef;font-size:11px;font-weight:700}.attendance-live-map-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:14px;padding:16px}.attendance-coordinate-map{position:relative;min-width:0;padding:10px;border:1px solid #d9e5ec;border-radius:14px;background:#fff}.attendance-coordinate-map svg{display:block;width:100%;height:auto;min-height:330px}.coordinate-grid line{stroke:#dce8ee;stroke-width:1;stroke-dasharray:4 5}.coordinate-grid text{fill:#8296a2;font-size:10px}.axis-label{fill:#637d8d;font-size:11px;font-weight:700}.attendance-map-fence>circle{fill:rgba(41,164,112,.09);stroke:rgba(33,139,91,.55);stroke-width:2;stroke-dasharray:7 5}.attendance-map-fence .fence-center{fill:#1f8c5d;stroke:#fff;stroke-width:2;stroke-dasharray:none}.attendance-map-fence text{fill:#287052;font-size:11px;font-weight:700}.attendance-map-marker circle{fill:#1d8e62;stroke:#fff;stroke-width:2}.attendance-map-marker .marker-pulse{fill:rgba(29,142,98,.16);stroke:none}.attendance-map-marker.risk circle:not(.marker-pulse){fill:#dc7b2d}.attendance-map-marker.risk .marker-pulse{fill:rgba(220,123,45,.18)}.attendance-map-marker text{fill:#23475f;font-size:11px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.attendance-map-legend{position:absolute;right:17px;bottom:15px;display:flex;gap:13px;padding:7px 10px;border:1px solid #dce7ed;border-radius:9px;background:rgba(255,255,255,.92);font-size:10px;color:#5d7483}.attendance-map-legend span{display:flex;align-items:center;gap:5px}.attendance-map-legend i{width:9px;height:9px;border-radius:50%;background:#1d8e62}.attendance-map-legend i.risk{background:#dc7b2d}.attendance-map-legend i.fence{background:rgba(41,164,112,.1);border:1px dashed #218b5b}.attendance-map-latest{min-width:0;border:1px solid #d9e5ec;border-radius:14px;background:#fff;overflow:hidden}.attendance-map-latest header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid #e3ebf0}.attendance-map-latest header strong{color:#173f5c;font-size:13px}.attendance-map-latest header span{padding:3px 7px;border-radius:999px;color:#2b6c9d;background:#eaf4fb;font-size:10px}.attendance-map-person{display:grid;grid-template-columns:9px minmax(0,1fr);gap:9px;width:100%;padding:11px 13px;border:0;border-bottom:1px solid #edf2f5;background:#fff;text-align:left;cursor:pointer}.attendance-map-person:hover{background:#f4f9fc}.attendance-map-person>i{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#1d8e62}.attendance-map-person>i.risk{background:#dc7b2d}.attendance-map-person div{min-width:0}.attendance-map-person strong,.attendance-map-person span,.attendance-map-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-map-person strong{color:#26485e;font-size:12px}.attendance-map-person span{margin-top:2px;color:#687f8e;font-size:10px}.attendance-map-person small{margin-top:3px;color:#8b9aa4;font:9px Consolas,monospace}.attendance-map-empty{padding:48px;text-align:center;color:#8ba0ad}.mini-install-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 18px 22px}.mini-install-code-grid article{display:flex;align-items:center;gap:18px;min-width:0;padding:18px;border:1px solid #cee1ec;border-radius:17px;background:linear-gradient(135deg,#f9fcfe,#edf7f9);box-shadow:0 7px 20px rgba(20,65,90,.06)}.mini-install-code{flex:0 0 auto;width:156px;height:156px;padding:8px;border:1px solid #cde4d9;border-radius:15px;background:#fff;box-sizing:border-box}.mini-install-code.approval{border-color:#cddbf0}.mini-install-code img{display:block;width:100%;height:100%;object-fit:contain}.mini-install-code-grid article>div:last-child{min-width:0}.mini-install-code-grid span,.mini-install-code-grid strong,.mini-install-code-grid p{display:block}.mini-install-code-grid span{color:#328064;font-size:10px;letter-spacing:.08em;font-weight:700}.mini-install-code-grid strong{margin-top:4px;color:#173e5b;font-size:18px}.mini-install-code-grid p{margin:7px 0;color:#637b8b;font-size:11px;line-height:1.55}.mini-install-code-grid a{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:8px;color:#17699f;background:#e7f3fb;font-size:11px;font-weight:700;text-decoration:none}
@media(max-width:1050px){.attendance-live-map-layout{grid-template-columns:1fr}.attendance-map-latest{display:grid;grid-template-columns:repeat(2,1fr)}.attendance-map-latest header{grid-column:1/-1}.mini-install-code-grid{grid-template-columns:1fr}}
@media(max-width:700px){.attendance-live-map-head{align-items:flex-start;flex-direction:column}.attendance-live-map-head>div:last-child{width:100%;justify-content:space-between}.attendance-live-map-layout{padding:8px}.attendance-map-latest{grid-template-columns:1fr}.attendance-coordinate-map svg{min-height:260px}.attendance-map-legend{position:static;margin-top:5px;flex-wrap:wrap}.mini-install-code-grid{margin:0 8px 16px}.mini-install-code-grid article{align-items:flex-start;flex-direction:column}.mini-install-code{width:180px;height:180px;align-self:center}}

/* 人力资源：人才招聘全流程工作台 */
.recruitment-workspace{min-width:0;padding:0 20px 24px;background:#f3f6f8}.recruitment-hero{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 22px;border:1px solid #d6e1e7;border-radius:15px;background:linear-gradient(120deg,#eaf2f3,#e4edf0 62%,#dae7eb);box-shadow:0 7px 18px rgba(37,65,78,.06)}.recruitment-hero-copy{display:flex;align-items:center;gap:15px;min-width:0}.recruitment-brandmark{flex:0 0 52px}.recruitment-hero-copy>div>span,.recruit-page-header>div>span,.integration-intro>div>span{color:#5d858a;font-size:9px;font-weight:800;letter-spacing:.18em}.recruitment-hero h2{margin:4px 0 3px;color:#173e51;font-size:22px}.recruitment-hero p{margin:0;color:#71838d;font-size:11px}.recruitment-hero-actions{display:flex;gap:9px}.recruitment-tabs{display:flex;align-items:center;gap:5px;margin:12px 0;padding:6px;border:1px solid #dce4e9;border-radius:12px;background:#e9eef1}.recruitment-tabs button{height:38px;display:flex;align-items:center;gap:7px;padding:0 15px;border:0;border-radius:8px;color:#647681;background:transparent;font-size:12px;font-weight:700}.recruitment-tabs button:hover{color:#2d6770;background:rgba(255,255,255,.62)}.recruitment-tabs button.active{color:#1e5e67;background:#f7fafb;box-shadow:0 2px 7px rgba(30,61,72,.09)}.recruitment-tabs button b{min-width:18px;height:18px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#41838a;font-size:9px}.recruitment-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.recruitment-kpis article{min-width:0;display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid #dee6eb;border-radius:13px;background:#f9fbfc;box-shadow:0 4px 12px rgba(35,57,70,.035)}.recruit-kpi-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;color:#326d79;background:#e4f0f2}.recruitment-kpis article[data-tone="violet"] .recruit-kpi-icon{color:#6759a6;background:#ece9f7}.recruitment-kpis article[data-tone="amber"] .recruit-kpi-icon{color:#9b6a25;background:#f7eddc}.recruitment-kpis article[data-tone="green"] .recruit-kpi-icon{color:#397a60;background:#e2f0e9}.recruitment-kpis article>div{min-width:0;display:flex;flex-direction:column;gap:2px}.recruitment-kpis article>div>span{color:#7a8992;font-size:10px}.recruitment-kpis strong{color:#203e4e;font-size:24px;line-height:1}.recruitment-kpis strong small{margin-left:2px;color:#829099;font-size:9px;font-weight:500}.recruitment-overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:12px}.recruit-card,.recruit-page-card,.recruit-candidate-list,.candidate-detail-panel,.integration-intro,.integration-grid article,.integration-flow{border:1px solid #dce4e8;border-radius:14px;background:#fbfcfd;box-shadow:0 5px 16px rgba(33,55,66,.04)}.recruit-card{min-height:260px;padding:17px}.recruit-card>header,.recruit-platform-list>div>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.recruit-card>header>div{display:flex;flex-direction:column;gap:3px}.recruit-card>header>div>span{color:#80909a;font-size:9px;font-weight:700;letter-spacing:.12em}.recruit-card h3{margin:0;color:#274757;font-size:15px}.recruit-card>header em{display:flex;align-items:center;gap:4px;color:#4f8776;font-size:10px;font-style:normal}.recruit-card>header button{display:flex;align-items:center;gap:4px;padding:0;border:0;color:#4c7881;background:transparent;font-size:10px}.recruit-funnel{display:grid;gap:13px;margin-top:21px}.recruit-funnel>div{display:grid;grid-template-columns:60px minmax(0,1fr) 24px 36px;align-items:center;gap:8px}.recruit-funnel span{color:#5f717d;font-size:10px}.recruit-funnel i{height:8px;border-radius:999px;background:#e9eef1;overflow:hidden}.recruit-funnel i b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#397e86,#75aeb1)}.recruit-funnel strong{color:#2c4b59;font-size:12px}.recruit-funnel small{padding:2px 5px;border-radius:999px;color:#718189;background:#edf1f3;font-size:8px;text-align:center}.recruit-platform-list{display:grid;gap:10px;margin-top:16px}.recruit-platform-list>div{position:relative;padding:12px;border:1px solid #e0e7ea;border-radius:11px;background:#f5f8f9}.recruit-platform-list>div>.recruit-platform-badge{margin-right:8px}.recruit-platform-list>div>p{margin:8px 0 3px;color:#5e747e;font-size:10px;line-height:1.45}.recruit-platform-list>div>small{color:#91a0a7;font-size:9px}.recruit-platform-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #d5e3e7;border-radius:7px;color:#276e79;background:#edf6f7;font-size:9px;font-weight:700;white-space:nowrap}.recruit-platform-badge.liepin{color:#8d5c2a;border-color:#ead8c2;background:#fbf3e9}.recruit-status{display:inline-flex;align-items:center;gap:5px;color:#687983;font-size:9px;white-space:nowrap}.recruit-status i{width:6px;height:6px;border-radius:50%;background:#8a9aa2}.recruit-status.success{color:#35745d}.recruit-status.success i{background:#4f9b72}.recruit-status.warning{color:#a06c24}.recruit-status.warning i{background:#d6a047}.recruit-status.danger{color:#aa4b4b}.recruit-status.danger i{background:#cc5d5d}.recruit-schedule-list{display:grid;margin-top:12px}.recruit-schedule-list>button{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center;width:100%;padding:11px 3px;border:0;border-top:1px solid #e8edef;color:inherit;background:transparent;text-align:left}.recruit-schedule-list time{display:flex;flex-direction:column}.recruit-schedule-list time b{color:#315664;font-size:14px}.recruit-schedule-list time span{color:#8b9aa1;font-size:9px}.recruit-schedule-list button>div{min-width:0;display:flex;flex-direction:column;gap:2px}.recruit-schedule-list strong,.recruit-schedule-list span,.recruit-schedule-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recruit-schedule-list strong{font-size:11px}.recruit-schedule-list span{color:#5c7985;font-size:10px}.recruit-schedule-list small{color:#8d9ba2;font-size:9px}.recruit-job-progress{display:grid;margin-top:12px}.recruit-job-progress>button{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(80px,.8fr) 35px;gap:10px;align-items:center;width:100%;padding:11px 3px;border:0;border-top:1px solid #e8edef;color:inherit;background:transparent;text-align:left}.recruit-job-progress button>div{min-width:0;display:flex;flex-direction:column;gap:3px}.recruit-job-progress strong,.recruit-job-progress span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recruit-job-progress strong{font-size:11px}.recruit-job-progress span{color:#87969d;font-size:9px}.recruit-job-progress i{height:7px;border-radius:999px;background:#e7edef;overflow:hidden}.recruit-job-progress i b{display:block;height:100%;border-radius:999px;background:#5a9398}.recruit-job-progress em{color:#607983;font-size:10px;font-style:normal;text-align:right}.recruit-page-card{min-width:0;overflow:hidden}.recruit-page-header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 20px;border-bottom:1px solid #e2e8eb}.recruit-page-header.compact{padding:16px}.recruit-page-header h3{margin:4px 0 2px;color:#244757;font-size:17px}.recruit-page-header p{margin:0;color:#819098;font-size:10px}.recruit-toolbar{display:flex;align-items:center;gap:8px}.recruit-toolbar label{height:36px;display:flex;align-items:center;gap:6px;min-width:220px;padding:0 9px;border:1px solid #d5dfe4;border-radius:8px;color:#819098;background:#f5f8f9}.recruit-toolbar input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:10px}.recruit-toolbar select{height:36px;border:1px solid #d5dfe4;border-radius:8px;color:#536a75;background:#f8fafb;padding:0 8px;font-size:10px}.recruit-job-table-wrap{overflow:auto}.recruit-job-table th{white-space:nowrap}.recruit-job-title{display:flex;align-items:center;gap:9px;min-width:230px}.recruit-job-title>span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;border-radius:9px;color:#3d7c83;background:#e6f1f2}.recruit-job-title>div{display:flex;flex-direction:column;gap:3px}.recruit-job-title strong{color:#254856;font-size:11px}.recruit-job-title small,.table-subcopy{display:block;margin-top:3px;color:#8b999f;font-size:9px}.platform-badge-row,.row-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.muted-copy{color:#95a2a8;font-size:9px}.row-action.primary{color:#fff;border-color:#397b83;background:#397b83}.recruit-candidate-layout{display:grid;grid-template-columns:minmax(430px,.92fr) minmax(470px,1.08fr);gap:12px;min-height:650px}.recruit-candidate-list,.candidate-detail-panel{min-width:0;overflow:hidden}.candidate-list-scroll{max-height:570px;overflow:auto}.candidate-list-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;width:100%;padding:13px 15px;border:0;border-bottom:1px solid #e6ecef;color:inherit;background:#fbfcfd;text-align:left}.candidate-list-item:hover{background:#f3f7f8}.candidate-list-item.active{background:#edf4f5;box-shadow:inset 3px 0 #4a8990}.candidate-avatar{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#487b86,#75a6aa);font-size:14px;font-weight:700}.candidate-avatar.large{width:50px;height:50px;flex-basis:50px;border-radius:14px;font-size:18px}.candidate-main{min-width:0;display:flex;flex-direction:column;gap:3px}.candidate-main>div{display:flex;align-items:center;gap:7px}.candidate-main strong{color:#284a58;font-size:12px}.candidate-main>span{color:#5f7781;font-size:10px}.candidate-main>small{color:#87969d;font-size:9px}.candidate-main p{display:flex;gap:4px;margin:2px 0 0}.candidate-main em{padding:2px 5px;border-radius:5px;color:#5e7882;background:#e9eff1;font-size:8px;font-style:normal}.candidate-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.candidate-side>strong{color:#34717a;font-size:17px}.candidate-side>strong small{font-size:8px}.candidate-side>span{color:#9aa6ab;font-size:8px}.candidate-detail-panel{padding:18px;overflow:auto}.candidate-detail-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid #e2e9ec}.candidate-profile{display:flex;align-items:center;gap:12px}.candidate-profile h3{margin:0;color:#213f4e;font-size:18px}.candidate-profile p{margin:3px 0;color:#637984;font-size:10px}.candidate-profile>div>span{display:flex;align-items:center;gap:6px;color:#8b989e;font-size:9px}.candidate-score{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:62px;border-radius:12px;color:#347078;background:#e8f2f3}.candidate-score strong{font-size:22px}.candidate-score span{font-size:8px}.candidate-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:14px 0}.candidate-facts>span{min-width:0;padding:10px;border:1px solid #e2e9ec;border-radius:9px;background:#f6f9fa}.candidate-facts small,.candidate-facts strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-facts small{color:#8b999f;font-size:8px}.candidate-facts strong{margin-top:4px;color:#395865;font-size:10px}.candidate-summary,.candidate-skills,.candidate-timeline{margin-top:14px}.candidate-summary header{display:flex;align-items:center;justify-content:space-between}.candidate-detail-panel h4{margin:0;color:#294b59;font-size:12px}.candidate-summary p{margin:8px 0 0;color:#607783;font-size:10px;line-height:1.7}.candidate-skills>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.candidate-skills span{padding:4px 7px;border-radius:6px;color:#356a72;background:#e9f2f3;font-size:9px}.candidate-timeline{display:grid;gap:0}.candidate-timeline h4{margin-bottom:10px}.candidate-timeline>div{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding-bottom:12px}.candidate-timeline>div:not(:last-child)::after{content:"";position:absolute;left:10px;top:20px;bottom:0;width:1px;background:#dbe4e8}.candidate-timeline i{position:relative;z-index:1;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;color:#788b93;background:#e8edef}.candidate-timeline i.done{color:#fff;background:#4e9074}.candidate-timeline i.current{color:#fff;background:#4f8990}.candidate-timeline>div>span{display:flex;flex-direction:column;gap:2px}.candidate-timeline strong{color:#3d5965;font-size:10px}.candidate-timeline small{color:#8a989e;font-size:8px}.candidate-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8eb}.candidate-actions button{height:34px;padding:0 10px;font-size:9px}.primary-button.success{border-color:#3d8565;background:#3d8565}.recruit-empty-inline,.recruit-candidate-empty{padding:30px;text-align:center;color:#8c9ca3;font-size:10px}.interview-agenda{padding:0 20px 22px}.interview-agenda>section{display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid #e3e9ec}.interview-agenda>section>header{display:flex;gap:10px;align-items:flex-start}.interview-agenda>section>header time{color:#2f6872;font-size:22px;font-weight:750}.interview-agenda>section>header>div{display:flex;flex-direction:column;gap:2px}.interview-agenda>section>header strong{color:#526a74;font-size:10px}.interview-agenda>section>header span{color:#91a0a6;font-size:8px}.interview-agenda>section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.interview-agenda article{display:grid;grid-template-columns:44px 12px minmax(0,1fr);gap:8px;padding:13px;border:1px solid #dfe7ea;border-radius:11px;background:#f6f9fa}.interview-agenda article>time{color:#355d68;font-size:12px;font-weight:700}.interview-line{position:relative;width:2px;height:100%;background:#d6e1e4}.interview-line::before{content:"";position:absolute;left:-3px;top:3px;width:8px;height:8px;border-radius:50%;background:#4f8c92}.interview-content{min-width:0}.interview-content>header,.interview-content footer{display:flex;justify-content:space-between;gap:9px}.interview-content>header>div{display:flex;align-items:center;gap:6px}.interview-content>header strong{font-size:11px}.interview-content>header>div>span{padding:2px 5px;border-radius:5px;color:#4b7a81;background:#e5eff0;font-size:8px}.interview-content h4{margin:6px 0 3px;color:#345563;font-size:10px}.interview-content p,.interview-content footer span{display:flex;align-items:center;gap:4px;margin:0;color:#7e8f96;font-size:8px}.interview-content footer{margin-top:8px}.interview-content blockquote{position:relative;margin:9px 0 0;padding:8px;border-left:2px solid #73a4a8;color:#617780;background:#edf3f4;font-size:8px;line-height:1.5}.interview-content blockquote strong{float:right;color:#34717a}.integration-layout{display:grid;gap:12px}.integration-intro{display:flex;align-items:center;gap:15px;padding:18px 20px;background:linear-gradient(120deg,#f4f8f8,#eaf1f3)}.integration-intro>span{width:50px;height:50px;display:grid;place-items:center;flex:0 0 50px;border-radius:13px;color:#fff;background:#477e86}.integration-intro h3{margin:4px 0;color:#244a57;font-size:18px}.integration-intro p{margin:0;color:#72858d;font-size:10px}.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-grid article{padding:18px}.integration-grid article>header{display:flex;align-items:center;justify-content:space-between}.integration-grid dl{display:grid;gap:8px;margin:15px 0}.integration-grid dl>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding-bottom:7px;border-bottom:1px solid #e8edef}.integration-grid dt{color:#8a999f;font-size:9px}.integration-grid dd{margin:0;color:#435f69;font-size:10px}.integration-capabilities{display:flex;flex-wrap:wrap;gap:6px}.integration-capabilities span{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:6px;color:#52727b;background:#edf3f4;font-size:8px}.integration-grid article>p{display:flex;align-items:flex-start;gap:6px;margin:13px 0;padding:9px;border-radius:8px;color:#936a2f;background:#faf1e4;font-size:9px;line-height:1.5}.integration-grid article>p.ready{color:#39745c;background:#e9f4ed}.integration-grid article>button{width:100%;justify-content:center}.integration-flow{padding:17px}.integration-flow h3{margin:0 0 13px;color:#294d5a;font-size:13px}.integration-flow>div{display:flex;align-items:center;justify-content:center;gap:13px}.integration-flow>div>svg{color:#a0afb5}.integration-flow span{display:flex;align-items:center;gap:7px}.integration-flow span i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#3f7880;background:#e6f0f1}.integration-flow span strong{color:#506b75;font-size:9px}.recruitment-form-modal{width:min(1040px,94vw);max-height:92vh;overflow:auto}.recruitment-interview-modal{width:min(860px,92vw);max-height:88vh;overflow:auto}.interview-candidate-banner{display:flex;align-items:center;gap:11px;margin:14px 18px;padding:13px 15px;border:1px solid #d7e5e7;border-radius:11px;background:#edf5f5}.interview-candidate-banner>div{min-width:0;flex:1}.interview-candidate-banner strong{color:#294d59;font-size:12px}.interview-candidate-banner p{margin:3px 0 0;color:#72878e;font-size:9px}.interview-candidate-banner>b{color:#39747c;font-size:10px}.form-security-note{display:inline-flex;align-items:center;gap:5px;color:#72858d;font-size:9px}
@media(max-width:1280px){.recruitment-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.recruitment-overview-grid{grid-template-columns:1fr}.recruit-candidate-layout{grid-template-columns:minmax(380px,.9fr) minmax(440px,1.1fr)}.candidate-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-card{margin:auto;transform:none}.recruitment-workspace{padding:0 10px 18px}.recruitment-hero{align-items:flex-start;flex-direction:column}.recruitment-tabs{overflow-x:auto}.recruitment-tabs button{flex:0 0 auto}.recruitment-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.recruit-candidate-layout{grid-template-columns:1fr}.candidate-list-scroll{max-height:420px}.interview-agenda>section{grid-template-columns:1fr}.integration-flow>div{flex-wrap:wrap}.integration-flow>div>svg{transform:rotate(90deg)}}
@media(max-width:680px){.login-card{width:calc(100% - 28px);padding:28px 24px}.recruitment-kpis,.integration-grid,.interview-agenda>section>div{grid-template-columns:1fr}.recruitment-hero-actions,.recruit-toolbar{width:100%;flex-direction:column;align-items:stretch}.recruitment-hero-actions button,.recruit-toolbar label,.recruit-toolbar select{width:100%;min-width:0}.recruit-page-header{align-items:flex-start;flex-direction:column}.candidate-facts{grid-template-columns:1fr}.candidate-actions button{flex:1 1 45%}.integration-flow>div{align-items:stretch;flex-direction:column}.integration-flow>div>svg{align-self:center;transform:rotate(90deg)}}

/* 账号安全防护中心、闲置锁屏与异常登录二次核验 */
.security-lock-trigger,
.face-unlock-button,
.risk-cancel-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.security-lock-trigger {
  height: 34px;
  padding: 0 12px;
  border: 1px solid #cbdde2;
  border-radius: 8px;
  color: #286a73;
  background: #edf5f6;
  font-size: 11px;
  font-weight: 700;
}

.security-lock-trigger:hover {
  border-color: #8dbbc1;
  background: #e2f0f1;
}

body.security-locked {
  overflow: hidden;
}

.security-lock-screen,
.login-risk-layer,
.risk-alert-layer,
.face-verification-layer {
  position: fixed;
  inset: 0;
  z-index: 9995;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(12, 31, 42, 0.76);
  backdrop-filter: blur(12px);
}

.security-lock-screen {
  background: #dcebed;
}

.security-lock-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.34;
  background-image:
    linear-gradient(rgba(51, 112, 120, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(51, 112, 120, 0.08) 1px, transparent 1px);
  background-size: 42px 42px;
}

.lock-screen-brand {
  position: fixed;
  top: 34px;
  left: 52px;
  z-index: 1;
}

.lock-screen-brand .lock-screen-trademark {
  display: block;
  width: 132px;
  height: auto;
}

.lock-screen-card,
.login-risk-card,
.risk-alert-card,
.face-verification-card {
  position: relative;
  z-index: 2;
  width: min(440px, calc(100vw - 48px));
  border: 1px solid rgba(107, 151, 158, 0.38);
  border-radius: 22px;
  background: rgba(246, 251, 252, 0.96);
  box-shadow: 0 28px 70px rgba(25, 61, 70, 0.2);
}

.lock-screen-card {
  padding: 32px 34px 27px;
  text-align: center;
}

.lock-screen-icon {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  margin: 0 auto 13px;
  border-radius: 18px;
  color: #fff;
  background: #2c7b83;
  box-shadow: 0 10px 25px rgba(44, 123, 131, 0.24);
}

.lock-screen-kicker {
  color: #56848a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.lock-screen-card h1 {
  margin: 6px 0 9px;
  color: #173f4b;
  font-size: 25px;
}

.lock-screen-card > p {
  margin: 0 auto 20px;
  color: #6c8188;
  font-size: 12px;
  line-height: 1.7;
}

.lock-screen-user {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  padding: 12px;
  border: 1px solid #d7e5e8;
  border-radius: 13px;
  background: #eef5f6;
  text-align: left;
}

.lock-screen-user .avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: #3f8189;
  font-weight: 800;
}

.lock-screen-user > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.lock-screen-user strong {
  color: #244b56;
  font-size: 13px;
}

.lock-screen-user small {
  overflow: hidden;
  color: #75898f;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lock-screen-user em {
  color: #63838a;
  font-size: 9px;
  font-style: normal;
}

.lock-screen-card form,
.login-risk-card form {
  display: grid;
  gap: 11px;
  margin-top: 18px;
  text-align: left;
}

.lock-screen-card form label,
.login-risk-card form label {
  display: grid;
  gap: 6px;
}

.lock-screen-card form label > span,
.login-risk-card form label > span {
  color: #45666e;
  font-size: 11px;
  font-weight: 700;
}

.lock-screen-card .primary-button,
.login-risk-card .primary-button,
.risk-alert-card .primary-button,
.face-verification-card .primary-button {
  width: 100%;
  justify-content: center;
}

.face-unlock-button {
  width: 100%;
  height: 42px;
  margin-top: 9px;
  border: 1px solid #b6d1d6;
  border-radius: 9px;
  color: #2f7078;
  background: #eef7f7;
  font-size: 11px;
  font-weight: 700;
}

.face-unlock-button:hover {
  border-color: #6fa6ad;
  background: #e1f0f1;
}

.lock-screen-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #e0e9eb;
  color: #7c9297;
  font-size: 9px;
}

.login-risk-card {
  width: min(540px, calc(100vw - 48px));
  padding: 26px;
}

.login-risk-card header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.login-risk-card header > span,
.risk-alert-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  border-radius: 13px;
  color: #b45435;
  background: #f9e8e0;
}

.login-risk-card header small,
.risk-alert-card small {
  color: #b15a3c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.login-risk-card h2,
.risk-alert-card h2 {
  margin: 3px 0 0;
  color: #263f48;
  font-size: 20px;
}

.login-risk-card > p,
.risk-alert-card > p {
  margin: 15px 0;
  color: #687d84;
  font-size: 11px;
  line-height: 1.65;
}

.risk-context-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.risk-context-grid > div {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 2px 7px;
  padding: 10px;
  border: 1px solid #dde7e9;
  border-radius: 10px;
  background: #f4f8f9;
}

.risk-context-grid svg {
  grid-row: 1 / 3;
  color: #66888e;
}

.risk-context-grid span {
  color: #8a9a9f;
  font-size: 8px;
}

.risk-context-grid strong {
  overflow: hidden;
  color: #405e66;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.risk-cancel-button {
  width: 100%;
  margin-top: 11px;
  padding: 6px;
  border: 0;
  color: #849298;
  background: transparent;
  font-size: 10px;
}

.risk-alert-card {
  width: min(460px, calc(100vw - 48px));
  padding: 28px;
}

.risk-alert-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 0 13px;
}

.risk-alert-card > p,
.risk-alert-card > dl,
.risk-alert-card > button {
  grid-column: 1 / -1;
}

.risk-alert-card dl {
  display: grid;
  gap: 7px;
  margin: 2px 0 18px;
}

.risk-alert-card dl > div {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  padding: 9px 11px;
  border-radius: 8px;
  background: #eef4f5;
  font-size: 10px;
}

.risk-alert-card dt {
  color: #829398;
}

.risk-alert-card dd {
  margin: 0;
  color: #365861;
  font-weight: 700;
}

.face-verification-card {
  width: min(510px, calc(100vw - 48px));
  padding: 20px;
}

.face-verification-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.face-verification-card > header span {
  color: #6e9095;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.face-verification-card > header h2 {
  margin: 3px 0 0;
  color: #244b55;
  font-size: 19px;
}

.face-camera-stage {
  position: relative;
  height: 310px;
  overflow: hidden;
  border-radius: 16px;
  background: #183b43;
}

.face-camera-stage video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
}

.face-guide {
  position: absolute;
  inset: 34px 100px 48px;
  border: 2px solid rgba(153, 228, 223, 0.86);
  border-radius: 46% 46% 42% 42%;
  box-shadow: 0 0 0 1000px rgba(6, 25, 31, 0.3);
}

.face-scan-line {
  position: absolute;
  left: 112px;
  right: 112px;
  top: 50%;
  height: 1px;
  background: #9be4df;
  box-shadow: 0 0 12px #9be4df;
}

.face-camera-status {
  position: absolute;
  left: 50%;
  bottom: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: calc(100% - 28px);
  padding: 7px 10px;
  border-radius: 999px;
  color: #e7f2f3;
  background: rgba(7, 29, 35, 0.8);
  font-size: 9px;
  transform: translateX(-50%);
  white-space: nowrap;
}

.face-camera-status.ready {
  color: #b9f0d0;
}

.face-camera-status.error {
  color: #ffd1c7;
}

.face-camera-status.scanning {
  color: #bceeea;
}

.face-liveness-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin: 12px 0 10px;
}

.face-liveness-steps span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 4px;
  border: 1px solid #dfe8ea;
  border-radius: 8px;
  color: #7c9095;
  background: #f3f7f8;
  font-size: 8px;
}

.face-liveness-steps span.active {
  border-color: #a9d4cf;
  color: #2d766d;
  background: #e8f5f1;
}

.face-verification-card > p {
  margin: 0 0 12px;
  color: #819296;
  font-size: 9px;
  text-align: center;
}

.security-center {
  display: grid;
  gap: 13px;
  min-width: 0;
}

.security-command-card {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 15px;
  align-items: center;
  padding: 19px 22px;
  border: 1px solid #d5e3e6;
  border-radius: 15px;
  background: #eaf3f4;
  box-shadow: 0 7px 18px rgba(37, 65, 78, 0.05);
}

.security-command-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: #317a83;
}

.security-command-card > div:nth-child(2) > span {
  color: #60878d;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.security-command-card h2 {
  margin: 4px 0 3px;
  color: #173f4d;
  font-size: 21px;
}

.security-command-card p {
  margin: 0;
  color: #71848b;
  font-size: 10px;
}

.security-command-actions {
  display: flex;
  gap: 8px;
}

.security-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.security-stat-grid article {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid #dee7ea;
  border-radius: 13px;
  background: #fbfcfd;
}

.security-stat-grid article > i {
  width: 39px;
  height: 39px;
  display: grid;
  place-items: center;
  flex: 0 0 39px;
  border-radius: 11px;
  color: #367782;
  background: #e5f0f2;
}

.security-stat-grid article[data-tone="red"] > i {
  color: #b24d45;
  background: #f8e8e6;
}

.security-stat-grid article[data-tone="green"] > i {
  color: #34785c;
  background: #e5f2eb;
}

.security-stat-grid article[data-tone="amber"] > i {
  color: #9c6b26;
  background: #f7eddc;
}

.security-stat-grid article[data-tone="violet"] > i {
  color: #665aa2;
  background: #eceaf6;
}

.security-stat-grid article > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.security-stat-grid span {
  color: #7c8d93;
  font-size: 9px;
}

.security-stat-grid strong {
  color: #254753;
  font-size: 23px;
  line-height: 1;
}

.security-stat-grid strong small {
  margin-left: 2px;
  color: #839399;
  font-size: 9px;
}

.security-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.65fr);
  gap: 12px;
}

.security-policy-panel,
.security-health-panel {
  border: 1px solid #dce5e8;
  border-radius: 14px;
  background: #fbfcfd;
  box-shadow: 0 5px 16px rgba(33, 55, 66, 0.035);
}

.security-policy-panel {
  padding: 17px;
}

.security-policy-panel > header,
.security-health-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.security-policy-panel h3,
.security-health-panel h3 {
  margin: 0;
  color: #294b57;
  font-size: 14px;
}

.security-policy-panel header p {
  margin: 3px 0 0;
  color: #87969b;
  font-size: 9px;
}

.security-policy-panel header > span {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #4e7d84;
  background: #e9f2f3;
  font-size: 8px;
}

.policy-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.policy-section label {
  display: grid;
  gap: 5px;
}

.policy-section label > span {
  color: #506972;
  font-size: 10px;
  font-weight: 700;
}

.policy-section select,
.policy-section input {
  height: 39px;
  border: 1px solid #d3dfe3;
  border-radius: 9px;
  color: #375963;
  background: #fff;
  padding: 0 10px;
  font-size: 10px;
}

.policy-section small {
  color: #8a999e;
  font-size: 8px;
}

.policy-inline {
  grid-template-columns: repeat(2, minmax(150px, 220px));
}

.security-switch {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid #dce6e8;
  border-radius: 10px;
  background: #f2f7f8;
  cursor: pointer;
}

.security-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.security-switch > span {
  position: relative;
  width: 42px;
  height: 23px;
  border-radius: 999px;
  background: #adbdc2;
  transition: background 0.2s ease;
}

.security-switch > span i {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(33, 55, 66, 0.2);
  transition: transform 0.2s ease;
}

.security-switch input:checked + span {
  background: #3d858c;
}

.security-switch input:checked + span i {
  transform: translateX(19px);
}

.security-switch > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.security-switch strong {
  color: #365762;
  font-size: 10px;
}

.security-switch small {
  color: #849499;
  font-size: 8px;
}

.policy-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 11px 0;
}

.policy-summary span {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border-radius: 7px;
  color: #58777f;
  background: #edf3f4;
  font-size: 8px;
}

.security-policy-panel > .primary-button {
  margin-left: auto;
}

.zero-trust-policy-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 11px;
  padding: 13px;
  border: 1px solid #d8e3dc;
  border-radius: 11px;
  background: #f5f8f5;
}

.zero-trust-policy-fields h4,
.zero-trust-environment-lock {
  grid-column: 1 / -1;
}

.zero-trust-policy-fields h4 {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: #315f50;
  font-size: 11px;
}

.zero-trust-policy-fields > label:not(.security-switch) {
  display: grid;
  gap: 5px;
}

.zero-trust-policy-fields > label > span {
  color: #526e64;
  font-size: 9px;
  font-weight: 750;
}

.zero-trust-policy-fields select,
.zero-trust-policy-fields input:not([type="checkbox"]) {
  width: 100%;
  height: 38px;
  border: 1px solid #cedbd3;
  border-radius: 9px;
  padding: 0 10px;
  color: #294f43;
  background: #fff;
  font-size: 10px;
}

.zero-trust-environment-lock {
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  color: #855f24;
  background: #fff3df;
  font-size: 9px;
}

.security-health-panel {
  padding: 17px;
}

.security-health-ok {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #327459;
  font-size: 8px;
}

.security-score {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: end;
  padding: 13px;
  border-radius: 11px;
  background: #eef6f5;
}

.security-score > div {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.security-score strong {
  color: #25655e;
  font-size: 31px;
  line-height: 1;
}

.security-score span {
  color: #718c8b;
  font-size: 9px;
}

.security-score-bar {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #d3e2e0;
}

.security-score-bar i {
  display: block;
  width: 92%;
  height: 100%;
  border-radius: inherit;
  background: #3c8a7d;
}

.security-health-panel ul {
  display: grid;
  gap: 8px;
  margin: 13px 0;
  padding: 0;
  list-style: none;
}

.security-health-panel li {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #526d74;
  font-size: 9px;
}

.security-health-panel li svg {
  color: #3f8b69;
}

.security-advice {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 10px;
  border-radius: 9px;
  color: #806230;
  background: #faf2e5;
  font-size: 8px;
  line-height: 1.55;
}

.managed-device-access-panel {
  overflow: hidden;
  border-color: #d6e1da;
  background: #fbfcfa;
}

.managed-access-mode {
  padding: 6px 10px;
  border-radius: 999px;
  color: #765c28;
  background: #f8eedb;
  font-size: 9px;
  font-weight: 800;
}

.managed-access-mode.enforce {
  color: #2f6e55;
  background: #e5f3ea;
}

.managed-access-mode.disabled {
  color: #8a4d46;
  background: #f8e9e7;
}

.managed-access-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  padding: 0 16px 14px;
}

.managed-access-steps article {
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 11px;
  border: 1px solid #dce6df;
  border-radius: 10px;
  background: #f4f8f5;
}

.managed-access-steps b {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: #4c806c;
  font-size: 10px;
}

.managed-access-steps div,
.managed-device-table td > strong,
.managed-device-table td > small {
  display: block;
}

.managed-access-steps strong {
  color: #345b4d;
  font-size: 10px;
}

.managed-access-steps span {
  display: block;
  margin-top: 3px;
  color: #798b83;
  font-size: 8px;
  line-height: 1.5;
}

.managed-current-access {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  margin: 0 16px 14px;
  padding: 10px 12px;
  border: 1px solid #d4e2d9;
  border-radius: 10px;
  color: #60776d;
  background: #eef5f0;
  font-size: 9px;
}

.managed-current-access > span {
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: 800;
}

.managed-current-access strong { color: #315849; }
.managed-current-access em { font-style: normal; }
.managed-current-access b { color: #39725a; }

.managed-device-form {
  margin: 0 16px 14px;
  padding: 14px;
  border: 1px solid #dce5df;
  border-radius: 11px;
  background: #fff;
}

.managed-device-form > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 11px;
}

.managed-device-form h3 {
  margin: 0;
  color: #315849;
  font-size: 12px;
}

.managed-device-form header span {
  color: #8a9690;
  font-size: 8px;
}

.managed-device-form label {
  display: grid;
  gap: 5px;
}

.managed-device-form label > span {
  color: #536b61;
  font-size: 9px;
  font-weight: 750;
}

.managed-device-form input,
.managed-device-form select {
  min-width: 0;
  height: 37px;
  border: 1px solid #d2ded6;
  border-radius: 8px;
  padding: 0 9px;
  color: #2f5044;
  background: #fff;
  font-size: 9px;
}

.managed-device-form > .primary-button {
  margin: 12px 0 0 auto;
}

.managed-device-table { min-width: 1120px; }
.managed-device-table td > small { margin-top: 3px; color: #87968f; font-size: 8px; }
.managed-device-table code { color: #405e53; font-size: 8px; }

.security-audit-panel {
  overflow: hidden;
}

.security-audit-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 150px 120px auto;
  gap: 8px;
  align-items: center;
  padding: 10px 16px;
  border-top: 1px solid #e6ecee;
  border-bottom: 1px solid #e6ecee;
  background: #f8fafb;
}

.security-audit-filters label {
  height: 36px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 9px;
  border: 1px solid #d5dfe3;
  border-radius: 8px;
  color: #819096;
  background: #fff;
}

.security-audit-filters input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 10px;
}

.security-audit-filters select {
  height: 36px;
  border: 1px solid #d5dfe3;
  border-radius: 8px;
  color: #536a73;
  background: #fff;
  padding: 0 8px;
  font-size: 10px;
}

.security-audit-table {
  min-width: 1160px;
}

.security-audit-table td {
  max-width: 210px;
}

.security-audit-table td > strong,
.security-audit-table td > small {
  display: block;
}

.security-audit-table td > small {
  margin-top: 3px;
  color: #8c9aa0;
  font-size: 8px;
}

.security-event-type,
.security-device-cell,
.security-risk-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.security-event-type {
  color: #3f6872;
  font-size: 9px;
  font-weight: 700;
}

.security-device-cell {
  color: #607a82;
  font-size: 9px;
}

.security-risk-pill {
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 700;
}

.security-risk-pill i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
}

.security-risk-pill.low {
  color: #39705b;
  background: #e8f3ed;
}

.security-risk-pill.low i {
  background: #3f8c69;
}

.security-risk-pill.medium {
  color: #916424;
  background: #f8efdf;
}

.security-risk-pill.medium i {
  background: #c08a36;
}

.security-risk-pill.high {
  color: #a3443f;
  background: #f8e8e6;
}

.security-risk-pill.high i {
  background: #c4554d;
}

.security-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 28px;
  color: #8c9ba0;
  font-size: 10px;
}

.security-bottom-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.security-device-panel,
.security-session-panel {
  overflow: hidden;
}

.security-device-panel .panel-header b,
.security-session-panel .panel-header b {
  color: #39727b;
  font-size: 12px;
}

.security-device-panel article,
.security-session-panel article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px 16px;
  border-top: 1px solid #e8edef;
}

.security-device-panel article > i,
.security-session-panel article > i {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #397681;
  background: #e8f1f2;
}

.security-device-panel article > div,
.security-session-panel article > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.security-device-panel strong,
.security-session-panel strong {
  overflow: hidden;
  color: #355660;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.security-device-panel span,
.security-device-panel small,
.security-session-panel span,
.security-session-panel small {
  overflow: hidden;
  color: #7f9095;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.security-device-panel em {
  padding: 4px 7px;
  border-radius: 999px;
  color: #39745b;
  background: #e8f3ed;
  font-size: 8px;
  font-style: normal;
}

.security-session-panel article > button {
  padding: 5px 8px;
  border: 1px solid #e6c4c0;
  border-radius: 7px;
  color: #aa4a43;
  background: #fbefed;
  font-size: 8px;
}

@media (max-width: 1320px) {
  .security-layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
  }

  .security-audit-filters {
    grid-template-columns: minmax(220px, 1fr) 130px 110px auto;
  }
}

@media (max-width: 1100px) {
  .managed-access-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .managed-current-access { grid-template-columns: auto minmax(0, 1fr); }
}

@media (max-width: 1080px) {
  .security-command-card {
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .security-command-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .security-stat-grid,
  .security-bottom-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .security-layout {
    grid-template-columns: 1fr;
  }

  .security-audit-filters {
    grid-template-columns: 1fr 130px 110px;
  }

  .security-audit-filters button {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

@media (max-width: 980px) {
  .login-workbench {
    width: min(92vw, 720px);
    min-width: 0;
    min-height: 0;
    grid-template-columns: 1fr;
    padding: 22px;
  }

  .login-workbench .login-card {
    width: min(360px, 100%);
    margin: auto;
  }
}

/* 深色登录浮层需要独立于全站浅色表单标签，确保登录字段始终清晰可读 */
.login-logo-lockup {
  background: rgba(232, 250, 247, 0.08);
  border: 1px solid rgba(184, 231, 222, 0.18);
  border-radius: 16px;
  padding: 10px 12px;
}

.login-logo-lockup .login-trademark {
  filter: brightness(1.12) drop-shadow(0 5px 12px rgba(2, 18, 24, 0.24));
}

.login-card form label > span {
  color: #d8eeeb !important;
  font-weight: 720 !important;
  letter-spacing: 0.02em !important;
}

.login-card form input {
  color: #17303a !important;
}

.login-card form input::placeholder {
  color: #6e8588 !important;
  opacity: 1;
}

/* 本机浅色品牌首页：保留凸台层次，同时让标志和登录信息更醒目 */
.login-shell {
  background:
    radial-gradient(circle at 16% 14%, rgba(255, 255, 255, 0.94), transparent 32%),
    radial-gradient(circle at 84% 78%, rgba(147, 218, 209, 0.42), transparent 38%),
    repeating-linear-gradient(94deg, rgba(39, 105, 113, 0.035) 0 1px, transparent 1px 88px),
    linear-gradient(145deg, #f2faf9 0%, #e4f2f2 52%, #d8e9eb 100%);
}

.login-shell::before {
  border-color: rgba(91, 150, 152, 0.24);
  background: rgba(130, 177, 178, 0.1);
  box-shadow: 0 -30px 76px rgba(72, 119, 123, 0.13);
}

.login-shell::after {
  border-color: rgba(47, 154, 143, 0.09);
}

.login-workbench {
  border-color: rgba(119, 178, 174, 0.78);
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.98), transparent 38%),
    linear-gradient(125deg, rgba(248, 254, 253, 0.99), rgba(231, 244, 243, 0.99) 58%, rgba(218, 237, 237, 0.99)),
    #e8f4f3;
  box-shadow:
    0 3px 0 rgba(255, 255, 255, 0.98),
    0 14px 0 -7px rgba(151, 191, 189, 0.72),
    0 34px 74px rgba(54, 99, 105, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

.login-workbench::before {
  border-color: rgba(103, 166, 160, 0.28);
  box-shadow: inset 0 0 34px rgba(255, 255, 255, 0.46);
}

.login-workbench::after {
  background: rgba(65, 104, 108, 0.2);
  filter: blur(20px);
}

.login-logo-lockup {
  top: -8px;
  left: 4px;
  width: 71px;
  height: 66px;
  padding: 3px;
  border: 1px solid rgba(115, 171, 165, 0.5);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow:
    0 8px 18px rgba(62, 107, 108, 0.16),
    inset 0 1px 0 #ffffff;
}

.login-logo-lockup .login-trademark {
  width: 64px;
  height: 59px;
  max-width: 100%;
  object-fit: contain;
  image-rendering: auto;
  filter: none;
  transform: translateZ(0);
}

.login-hero h1 .login-company-name {
  color: #285961;
  font-weight: 760;
  text-shadow: 0 1px 0 #ffffff;
}

.login-hero h1 .login-system-name {
  color: #173b45;
  text-shadow: 0 2px 0 rgba(255, 255, 255, 0.9), 0 8px 22px rgba(57, 107, 110, 0.15);
}

.login-system-intro {
  color: #4f7278;
  font-weight: 650;
}

.login-card {
  border-color: rgba(100, 172, 164, 0.64);
  background:
    linear-gradient(155deg, rgba(255, 255, 255, 0.98), rgba(231, 245, 243, 0.98)),
    #eff8f7;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.96),
    0 18px 38px rgba(62, 110, 112, 0.18),
    inset 0 1px 0 #ffffff;
  backdrop-filter: blur(18px) saturate(106%);
}

.login-brand > span {
  color: #ffffff;
  background: linear-gradient(145deg, #3bb5a6, #248d87);
  box-shadow: 0 9px 20px rgba(37, 122, 120, 0.22);
}

.login-brand h2 {
  color: #173c45;
}

.login-card form label > span {
  color: #294f57 !important;
  font-weight: 760 !important;
}

.login-input {
  border-color: #b5d5d1;
  color: #3f777a;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: inset 0 1px 2px rgba(48, 89, 92, 0.05);
}

.login-input:focus-within {
  border-color: #55b6aa;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(76, 180, 167, 0.16), 0 8px 20px rgba(58, 111, 111, 0.12);
}

.login-card .primary-button {
  border-color: #2b9d91;
  background: linear-gradient(135deg, #3bb8a7, #278f88);
  box-shadow: 0 10px 22px rgba(45, 139, 133, 0.22);
}

/* 主菜单、子菜单与实时业务信息高清排版 */
.app-shell {
  color: #17283a;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-size: 13px;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.nav-item {
  height: 54px;
  color: #e5eef8;
  font-size: 15px !important;
  font-weight: 720;
  line-height: 1.35;
  letter-spacing: 0.012em;
}

.nav-item.is-disabled {
  color: #8795a5;
  font-weight: 650;
}

.submenu-list {
  width: 218px;
  gap: 4px;
  padding: 9px;
  border-color: #bdd2e4;
  background: #f8fcff;
}

.submenu-section {
  margin-block: 8px 3px;
  color: #176b57;
  font-size: 13px !important;
  font-weight: 800;
  line-height: 1.3;
}

.submenu-item {
  min-height: 35px;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  padding: 7px 9px;
  color: #20364d;
  font-size: 13px !important;
  font-weight: 650;
  line-height: 1.4;
}

.collapse-action,
.sidebar-menu {
  font-size: 13px;
  font-weight: 650;
}

.brand .brand-company {
  color: #5c7087;
  font-size: 11.5px !important;
  font-weight: 650;
  line-height: 1.25;
}

.brand .brand-system {
  font-size: 17px !important;
  font-weight: 800;
}

.workspace :where(button, input, select, textarea) {
  font-size: 13px;
  font-weight: 600;
}

.page-copy p,
.page-copy span,
.drawer-header p,
.modal-header p {
  color: #5e7086;
  font-size: 13px !important;
  font-weight: 600;
  line-height: 1.5;
}

.page-copy h1,
.drawer-header h2,
.modal-header h2,
.panel-header h2 {
  color: #172c43;
  font-weight: 800;
  text-rendering: geometricPrecision;
}

.kpi-text > span {
  color: #42566d;
  font-size: 14px !important;
  font-weight: 700;
}

.kpi-text strong {
  color: #152c42;
  font-size: 25px !important;
  font-weight: 800;
}

.kpi-text em,
.metric span {
  font-size: 13px !important;
  font-weight: 700;
}

.metric strong {
  color: #20364c;
  font-size: 17px !important;
  font-weight: 800;
}

.chart-legend {
  color: #425970;
  font-size: 13px !important;
  font-weight: 650;
}

.data-table {
  color: #26394e;
  font-size: 12.5px !important;
  font-weight: 580;
  line-height: 1.5;
  text-rendering: geometricPrecision;
}

.data-table th,
.data-table td {
  padding: 6px 8px;
  color: #30455c;
}

.data-table th,
.data-table th button {
  color: #3c5269;
  font-size: 12.5px !important;
  font-weight: 800;
}

.status-pill,
.tag {
  min-height: 23px;
  font-size: 12px !important;
  font-weight: 700;
}

.message-row,
.notice-row {
  min-height: 38px;
  color: #2f4359;
  font-size: 12.5px !important;
  font-weight: 600;
  line-height: 1.45;
}

.message-row em,
.notice-row em,
.module-command-copy > span,
.module-business-heading p,
.module-business-heading > span,
.module-business-item small,
.report-query-heading span,
.report-result-count,
.attendance-ledger-summary span,
.workflow-final-state,
.table-subcopy,
.muted-copy,
.evidence-file-name {
  font-size: 12px !important;
  font-weight: 650;
  line-height: 1.5;
}

.recruitment-workspace :where(p, small, em, dt, dd, blockquote),
.security-center :where(p, small, em, dt, dd),
.tracking-workspace :where(p, small, em),
.cost-accounting-modal :where(p, small, em) {
  font-size: 12px !important;
  line-height: 1.55;
  text-rendering: geometricPrecision;
}

.security-center :where(input, select, button),
.recruitment-workspace :where(input, select, button) {
  font-size: 12px !important;
  font-weight: 650;
}

/* 消息中心、消息阅读单与系统帮助中心 */
.notice-popover {
  width: 460px;
  overflow: hidden;
  border-color: #d8e3ef;
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(25, 48, 76, 0.18);
}

.notice-popover .popover-title {
  min-height: 58px;
  height: auto;
  padding: 10px 14px;
  background: linear-gradient(135deg, #f9fcff, #edf5ff);
}

.notice-popover .popover-title > span {
  display: grid;
  gap: 2px;
}

.notice-popover .popover-title strong {
  color: #193b60;
  font-size: 15px;
  font-weight: 800;
}

.notice-popover .popover-title small {
  color: #6c8096;
  font-size: 12px;
  font-weight: 650;
}

.notice-popover .popover-title button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #b8d2ef;
  border-radius: 8px;
  color: #1766b2;
  background: #fff;
  font-size: 12px;
  font-weight: 750;
}

.notice-popover .popover-title button:hover:not(:disabled) {
  color: #fff;
  border-color: #216fb8;
  background: #216fb8;
}

.notice-popover .popover-title button:disabled {
  color: #718296;
  border-color: #dbe3eb;
  background: #f4f7fa;
  cursor: default;
}

.notice-popover-list {
  max-height: 440px;
  overflow: auto;
}

.notice-popover .notice-row {
  position: relative;
  width: 100%;
  min-height: 72px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #e6edf4;
  background: #fff;
}

.notice-popover .notice-row.unread {
  background: linear-gradient(90deg, #f2f8ff, #fff 54%);
  box-shadow: inset 3px 0 #2b77bf;
}

.notice-popover .notice-row:hover {
  background: #edf6ff;
}

.notice-type-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #1766ad;
  background: #e7f2ff;
}

.notice-type-icon.warning {
  color: #a35b08;
  background: #fff1d9;
}

.notice-type-icon.todo {
  color: #7352ad;
  background: #f0eaff;
}

.notice-row-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.notice-row-copy strong {
  overflow: hidden;
  color: #233c57;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.notice-row-copy small {
  color: #78899c;
  font-size: 11.5px;
  font-weight: 600;
}

.notice-read-state {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #8b99a8;
  font-size: 11px;
  font-weight: 700;
}

.notice-read-state i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #aab5c1;
}

.notice-row.unread .notice-read-state {
  color: #1766ad;
}

.notice-row.unread .notice-read-state i {
  background: #2479c8;
  box-shadow: 0 0 0 4px rgba(36, 121, 200, 0.12);
}

.notice-popover-foot {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  color: #728397;
  background: #f8fafc;
  font-size: 11px;
  font-weight: 650;
}

.notice-popover-empty {
  min-height: 130px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  color: #8290a1;
  font-size: 13px;
}

.notice-detail-backdrop,
.help-center-backdrop {
  background: rgba(17, 31, 49, 0.5);
  backdrop-filter: blur(3px);
}

.notice-detail-modal {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(930px, calc(100vw - 44px));
  max-height: calc(100vh - 44px);
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%);
  overflow: hidden;
  border: 1px solid #cfdeed;
  border-radius: 18px;
  background: #f4f7fb;
  box-shadow: 0 26px 80px rgba(12, 30, 50, 0.28);
  color: #263d55;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  text-rendering: geometricPrecision;
}

.notice-detail-header {
  min-height: 94px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 22px;
  border-bottom: 1px solid #dce6f0;
  background: linear-gradient(135deg, #fff, #ecf5ff);
}

.notice-detail-heading,
.notice-detail-header-actions {
  display: flex;
  align-items: center;
  gap: 13px;
}

.notice-detail-mark {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  flex: 0 0 52px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, #195d99, #2d82ca);
  box-shadow: 0 7px 18px rgba(35, 112, 180, 0.22);
}

.notice-detail-heading p,
.notice-detail-heading h2,
.notice-detail-heading div > span {
  margin: 0;
}

.notice-detail-heading p {
  color: #617b95;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.notice-detail-heading h2 {
  margin: 3px 0 2px;
  color: #173957;
  font-size: 22px;
  font-weight: 850;
}

.notice-detail-heading div > span {
  color: #76899c;
  font-size: 12px;
  font-weight: 650;
}

.notice-detail-status {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #f2bf75;
  border-radius: 999px;
  color: #9a5d08;
  background: #fff8e8;
  font-size: 12px;
  font-weight: 750;
}

.notice-detail-status.read {
  color: #247251;
  border-color: #a9d9c0;
  background: #ecf9f2;
}

.notice-detail-body {
  min-height: 0;
  display: grid;
  gap: 14px;
  padding: 18px 20px;
  overflow: auto;
}

.notice-form-section {
  overflow: hidden;
  border: 1px solid #d9e4ef;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(30, 57, 84, 0.045);
}

.notice-form-section-title {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 15px;
  border-bottom: 1px solid #d9e6f1;
  color: #204e78;
  background: linear-gradient(90deg, #e8f3ff, #f8fbff);
}

.notice-form-section-title > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 800;
}

.notice-form-section-title small {
  color: #6c8195;
  font-size: 11.5px;
  font-weight: 650;
}

.notice-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.notice-form-grid label {
  min-height: 72px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 11px 14px;
  border-right: 1px solid #e7edf3;
  border-bottom: 1px solid #e7edf3;
}

.notice-form-grid label:nth-child(3n) {
  border-right: 0;
}

.notice-form-grid label:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.notice-form-grid label span {
  color: #76889a;
  font-size: 12px;
  font-weight: 650;
}

.notice-form-grid label strong {
  color: #253e58;
  font-size: 14px;
  font-weight: 750;
  word-break: break-word;
}

.notice-form-grid label strong.notice-emphasis {
  color: #ae5d00;
}

.notice-content-field {
  min-height: 106px;
  padding: 20px;
  color: #172f48;
  background: linear-gradient(145deg, #fff, #fbfdff);
  font-size: 17px;
  font-weight: 750;
  line-height: 1.8;
  letter-spacing: 0.01em;
  white-space: pre-wrap;
}

.notice-handling-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  margin: 14px;
  padding: 15px;
  border: 1px solid #dbe7f2;
  border-radius: 11px;
  background: #f8fbff;
}

.notice-handling-card > span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #226ba8;
  background: #e4f1ff;
}

.notice-handling-card strong {
  color: #214563;
  font-size: 14px;
  font-weight: 800;
}

.notice-handling-card p {
  margin: 6px 0 0;
  color: #4f657b;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.7;
}

.notice-data-flow {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
  margin: 0 14px 14px;
  padding: 12px 14px;
  border-radius: 9px;
  color: #37536d;
  background: #eef4f9;
  font-size: 12.5px;
  line-height: 1.6;
}

.notice-data-flow span {
  color: #6a7d90;
  font-weight: 700;
}

.notice-data-flow strong {
  font-weight: 750;
}

.notice-detail-actions {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  padding: 12px 20px;
  border-top: 1px solid #dce6ef;
  background: #fff;
}

.notice-detail-actions > span {
  margin-right: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #738497;
  font-size: 11.5px;
  font-weight: 650;
}

.help-center-modal {
  position: absolute;
  inset: 18px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #cddceb;
  border-radius: 18px;
  color: #294159;
  background: #f3f6fa;
  box-shadow: 0 28px 90px rgba(12, 30, 50, 0.32);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  text-rendering: geometricPrecision;
}

.help-center-modal [hidden] {
  display: none !important;
}

.help-center-header {
  min-height: 88px;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(360px, 520px) 40px;
  align-items: center;
  gap: 20px;
  padding: 14px 20px;
  border-bottom: 1px solid #d8e4ef;
  background: linear-gradient(135deg, #fff, #edf6ff);
}

.help-center-brand {
  display: flex;
  align-items: center;
  gap: 13px;
}

.help-center-brand > span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  flex: 0 0 50px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, #174f7f, #2b79bb);
  box-shadow: 0 8px 18px rgba(35, 105, 164, 0.2);
}

.help-center-brand :where(p, h2, small) {
  margin: 0;
}

.help-center-brand p {
  color: #58728a;
  font-size: 11px;
  font-weight: 700;
}

.help-center-brand h2 {
  margin: 2px 0;
  color: #183a58;
  font-size: 21px;
  font-weight: 850;
}

.help-center-brand small {
  color: #75889a;
  font-size: 11.5px;
  font-weight: 650;
}

.help-search-box {
  height: 44px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 7px;
  padding: 0 10px 0 13px;
  border: 1px solid #bed0e2;
  border-radius: 11px;
  color: #64809a;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(20, 48, 76, 0.04);
}

.help-search-box:focus-within {
  border-color: #3880bd;
  box-shadow: 0 0 0 3px rgba(56, 128, 189, 0.13);
}

.help-search-box input {
  min-width: 0;
  border: 0;
  outline: 0;
  color: #253f58;
  background: transparent;
  font-size: 13.5px !important;
  font-weight: 650;
}

.help-search-box button {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 7px;
  color: #75889b;
  background: transparent;
}

.help-search-box button:hover {
  color: #194f7d;
  background: #eaf3fb;
}

.help-center-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: 238px minmax(0, 1fr);
  flex: 1;
}

.help-center-nav {
  min-height: 0;
  overflow: auto;
  padding: 16px 12px;
  border-right: 1px solid #d9e3ec;
  background: #eef3f7;
}

.help-center-nav > div {
  display: grid;
  gap: 3px;
  padding: 0 10px 12px;
}

.help-center-nav > div strong {
  color: #203d57;
  font-size: 13px;
  font-weight: 800;
}

.help-center-nav > div span {
  color: #7a8a9a;
  font-size: 11px;
  font-weight: 650;
}

.help-center-nav a {
  width: 100%;
  min-height: 39px;
  display: grid;
  grid-template-columns: 26px 18px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 0 9px;
  border: 0;
  border-radius: 9px;
  color: #4b6176;
  background: transparent;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.help-center-nav a:hover {
  color: #155b97;
  background: #fff;
  box-shadow: 0 3px 10px rgba(29, 66, 100, 0.07);
}

.help-center-nav a i {
  color: #95a4b2;
  font-size: 10px;
  font-style: normal;
  font-weight: 750;
}

.help-center-content {
  min-width: 0;
  min-height: 0;
  overflow: auto;
  padding: 18px 22px 36px;
  scroll-behavior: smooth;
}

.help-downloads {
  margin: 0 0 16px;
  padding: 18px;
  border: 1px solid #b7d8d4;
  border-radius: 18px;
  background: linear-gradient(135deg, #f2fbfa, #edf6fb);
  box-shadow: 0 12px 28px rgba(23, 82, 91, 0.08);
}

.help-downloads > header {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.help-downloads > header > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(145deg, #176b70, #278f84);
}

.help-downloads > header small {
  display: block;
  color: #52807d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.help-downloads > header h3 {
  margin: 2px 0 3px;
  color: #173e5b;
  font-size: 18px;
}

.help-downloads > header p {
  margin: 0;
  color: #5d747e;
  font-size: 12px;
}

.help-downloads > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.help-downloads a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 3px 11px;
  align-items: center;
  padding: 14px;
  border: 1px solid #c8dddf;
  border-radius: 14px;
  color: #183f55;
  background: #fff;
  text-decoration: none;
  transition: 0.18s ease;
}

.help-downloads a:hover {
  transform: translateY(-2px);
  border-color: #63aaa2;
  box-shadow: 0 10px 20px rgba(23, 82, 91, 0.11);
}

.help-downloads a > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #176b70;
  background: #e5f4f1;
}

.help-downloads a > strong {
  font-size: 14px;
}

.help-downloads a > small {
  color: #6c7f89;
  font-size: 11px;
}

.help-downloads a > b {
  grid-column: 3;
  grid-row: 1 / 3;
  display: flex;
  gap: 5px;
  align-items: center;
  color: #176b70;
  font-size: 12px;
}

.help-intro-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.help-intro-card > div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 3px 11px;
  padding: 15px;
  border: 1px solid #d7e3ee;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(31, 59, 86, 0.04);
}

.help-intro-card > div > span {
  grid-row: 1 / 3;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #236da9;
  background: #e8f3ff;
}

.help-intro-card strong {
  color: #264761;
  font-size: 13.5px;
  font-weight: 800;
}

.help-intro-card p {
  margin: 0;
  color: #667a8e;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
}

.help-module-section,
.help-reference-section {
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid #d5e1ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(31, 60, 89, 0.045);
  scroll-margin-top: 14px;
}

.help-module-heading,
.help-reference-section > header {
  min-height: 82px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 17px;
  border-bottom: 1px solid #dce7f1;
  background: linear-gradient(115deg, #eaf4fd, #f9fcff 72%);
}

.help-module-heading > span,
.help-reference-section > header > span {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg, #1c5f96, #3585c5);
}

.help-module-heading :where(small, h3, p),
.help-reference-section > header :where(small, h3, p) {
  margin: 0;
}

.help-module-heading small,
.help-reference-section > header small {
  color: #5d7a94;
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: 0.06em;
}

.help-module-heading h3,
.help-reference-section > header h3 {
  margin: 2px 0;
  color: #193c5b;
  font-size: 18px;
  font-weight: 850;
}

.help-module-heading p,
.help-reference-section > header p {
  color: #60768b;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
}

.help-module-heading em {
  padding: 5px 9px;
  border: 1px solid #c3d9ec;
  border-radius: 999px;
  color: #3b6b93;
  background: #fff;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.help-module-heading-actions {
  display: grid;
  justify-items: end;
  gap: 7px;
}

.help-module-source {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 12px 17px;
  border-bottom: 1px solid #e4ebf2;
  background: #fbfcfe;
}

.help-module-source > div {
  display: grid;
  gap: 3px;
}

.help-module-source > span {
  color: #7290a8;
}

.help-module-source span {
  color: #73879a;
  font-size: 11px;
  font-weight: 700;
}

.help-module-source strong {
  color: #405971;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.5;
}

.help-guide-list {
  display: grid;
  gap: 10px;
  padding: 13px;
  background: #f7f9fc;
}

.help-guide-entry {
  --help-accent: #2b78b8;
  --help-accent-soft: #eaf4fc;
  --help-accent-border: #bdd8ec;
  overflow: hidden;
  border: 1px solid var(--help-accent-border);
  border-left: 4px solid var(--help-accent);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(31, 61, 88, 0.055);
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

.help-guide-entry[data-help-tone="azure"] {
  --help-accent: #2475b9;
  --help-accent-soft: #e9f4ff;
  --help-accent-border: #bad7ed;
}

.help-guide-entry[data-help-tone="cyan"] {
  --help-accent: #168c9d;
  --help-accent-soft: #e7f7f9;
  --help-accent-border: #b7dfe3;
}

.help-guide-entry[data-help-tone="violet"] {
  --help-accent: #7658bd;
  --help-accent-soft: #f1edfc;
  --help-accent-border: #d2c7ee;
}

.help-guide-entry[data-help-tone="amber"] {
  --help-accent: #b87617;
  --help-accent-soft: #fff5df;
  --help-accent-border: #ead3a4;
}

.help-guide-entry[data-help-tone="emerald"] {
  --help-accent: #168368;
  --help-accent-soft: #e8f7f2;
  --help-accent-border: #b9ded2;
}

.help-guide-entry[data-help-tone="blue"] {
  --help-accent: #3b65bb;
  --help-accent-soft: #edf2ff;
  --help-accent-border: #c4d1ee;
}

.help-guide-entry[data-help-tone="rose"] {
  --help-accent: #b75b78;
  --help-accent-soft: #fceef3;
  --help-accent-border: #e8c6d1;
}

.help-guide-entry[data-help-tone="indigo"] {
  --help-accent: #545fba;
  --help-accent-soft: #eef0ff;
  --help-accent-border: #c9cdef;
}

.help-guide-entry[data-help-tone="slate"] {
  --help-accent: #526d86;
  --help-accent-soft: #edf2f6;
  --help-accent-border: #c9d6e0;
}

.help-guide-entry > header {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid color-mix(in srgb, var(--help-accent-border) 72%, #e8edf3);
  background: linear-gradient(105deg, var(--help-accent-soft), #ffffff 72%);
}

.help-guide-entry > header > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: var(--help-accent);
  box-shadow: 0 5px 12px color-mix(in srgb, var(--help-accent) 24%, transparent);
}

.help-guide-entry :where(small, h4) {
  margin: 0;
}

.help-guide-entry small {
  color: #6f8192;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
}

.help-guide-entry h4 {
  margin-top: 2px;
  color: #1d3e58;
  font-size: 15px;
  font-weight: 850;
  letter-spacing: 0.01em;
}

.help-form-type {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: #326ea7;
  background: rgba(255, 255, 255, 0.86);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.help-guide-entry[data-form-kind="input"] .help-form-type {
  color: #a5610b;
  background: #fff9eb;
}

.help-guide-entry[data-form-kind="readonly"] .help-form-type {
  color: #236e9c;
  background: #f1f9ff;
}

.help-entry-description {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 13px 15px;
}

.help-entry-description > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: var(--help-accent);
  background: var(--help-accent-soft);
}

.help-entry-description strong {
  color: #294a63;
  font-size: 12px;
  font-weight: 850;
}

.help-entry-description p {
  margin: 0;
  padding: 3px 0 2px;
  color: #4e657a;
  font-size: 13.5px;
  font-weight: 650;
  line-height: 1.7;
}

.help-entry-description small {
  display: block;
  color: #718295;
  font-size: 11.5px;
  font-weight: 600;
}

.help-field-function-section {
  padding: 0 14px 13px;
}

.help-section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  color: #315874;
}

.help-section-label strong {
  font-size: 12px;
  font-weight: 850;
}

.help-section-label > span {
  color: #7a8b9a;
  font-size: 10.5px;
  font-weight: 650;
}

.help-section-label svg {
  color: var(--help-accent);
}

.help-field-function-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.help-field-function-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 10px;
  border: 1px solid #dde6ed;
  border-radius: 10px;
  background: #fbfcfe;
}

.help-field-function-card > i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--help-accent);
  background: var(--help-accent-soft);
  font-style: normal;
}

.help-field-function-card div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.help-field-function-card strong {
  color: #304f67;
  font-size: 11.5px;
  font-weight: 850;
}

.help-field-function-card small {
  color: #687b8d;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.55;
}

.help-entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  border-top: 1px solid #e0e8ef;
  background: #fbfcfd;
}

.help-entry-layout section {
  min-width: 0;
  padding: 13px 15px;
}

.help-entry-layout section + section {
  border-left: 1px solid #e8edf2;
  background: var(--help-accent-soft);
}

.help-entry-layout section > strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #294f69;
  font-size: 12.5px;
  font-weight: 800;
}

.help-entry-layout section > strong svg {
  color: var(--help-accent);
}

.help-entry-layout ol {
  margin: 9px 0 0;
  padding-left: 22px;
  color: #405b71;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.75;
}

.help-entry-layout li::marker {
  color: var(--help-accent);
  font-weight: 850;
}

.help-entry-flow {
  margin-top: 9px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 11px;
  border: 1px dashed var(--help-accent-border);
  border-radius: 10px;
  color: #294b63;
  background: rgba(255, 255, 255, 0.74);
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.7;
}

.help-entry-flow > span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: var(--help-accent);
}

.help-entry-flow b {
  font-weight: 750;
}

.help-entry-journey {
  margin-top: 9px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr);
  align-items: stretch;
  gap: 5px;
}

.help-entry-journey > article {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 9px;
  border: 1px solid var(--help-accent-border);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.82);
}

.help-entry-journey > article > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--help-accent);
  font-size: 10.5px;
  font-weight: 850;
}

.help-entry-journey > article > b {
  color: #294b63;
  font-size: 11px;
  font-weight: 720;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.help-entry-journey > i {
  display: grid;
  place-items: center;
  color: var(--help-accent);
}

.help-flow-note {
  display: block;
  margin-top: 7px !important;
  color: #5f7384 !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  line-height: 1.55 !important;
}

.help-reference-section > header {
  grid-template-columns: 46px minmax(0, 1fr);
}

.help-flow-table-wrap {
  overflow: auto;
  padding: 14px;
}

.help-flow-table {
  width: 100%;
  border-collapse: collapse;
  color: #3d566d;
  font-size: 12.5px;
  line-height: 1.55;
}

.help-flow-table th,
.help-flow-table td {
  padding: 11px 12px;
  border: 1px solid #dce6ef;
  text-align: left;
  vertical-align: top;
}

.help-flow-table th {
  color: #315572;
  background: #edf5fb;
  font-weight: 800;
}

.help-flow-table td:first-child {
  color: #1f537e;
  font-weight: 800;
  white-space: nowrap;
}

.help-flow-rules {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 0 14px 14px;
}

.help-flow-rules span {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 11px;
  border-radius: 9px;
  color: #476178;
  background: #f3f7fa;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.55;
}

.help-flow-rules svg {
  flex: 0 0 auto;
  color: #2471aa;
}

.help-search-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
}

.help-search-methods article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  padding: 13px;
  border: 1px solid #dce5ed;
  border-radius: 10px;
  background: #fbfcfd;
}

.help-search-methods b {
  color: #7a94aa;
  font-size: 12px;
}

.help-search-methods strong {
  color: #284b67;
  font-size: 13px;
  font-weight: 800;
}

.help-search-methods p {
  margin: 5px 0 0;
  color: #536b80;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.65;
}

.help-search-example {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 10px;
  margin: 0 14px 14px;
  padding: 13px;
  border: 1px solid #bcd6eb;
  border-radius: 10px;
  color: #315671;
  background: #eef7ff;
}

.help-search-example span {
  grid-row: 1 / 3;
  padding: 3px 7px;
  border-radius: 6px;
  color: #fff;
  background: #2d76ae;
  font-size: 11px;
  font-weight: 800;
}

.help-search-example strong {
  font-size: 12.5px;
  font-weight: 800;
}

.help-search-example p {
  margin: 0;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.6;
}

.help-no-results {
  min-height: 240px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  color: #7c8fa1;
}

.help-no-results strong {
  color: #405a72;
  font-size: 15px;
}

.help-no-results span {
  font-size: 12px;
}

@media (max-width: 980px) {
  .help-center-modal {
    inset: 8px;
    border-radius: 12px;
  }

  .help-center-header {
    grid-template-columns: minmax(260px, 1fr) minmax(260px, 380px) 40px;
  }

  .help-center-layout {
    grid-template-columns: 190px minmax(0, 1fr);
  }

  .help-intro-card,
  .help-flow-rules {
    grid-template-columns: 1fr;
  }

  .help-downloads > div {
    grid-template-columns: 1fr;
  }

  .help-entry-layout {
    grid-template-columns: 1fr;
  }

  .help-field-function-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .help-entry-layout section + section {
    border-top: 1px solid #e8edf2;
    border-left: 0;
  }

  .help-entry-journey {
    grid-template-columns: 1fr;
  }

  .help-entry-journey > i {
    transform: rotate(90deg);
  }
}

@media (max-width: 760px) {
  .notice-detail-modal {
    width: 100vw;
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
  }

  .notice-form-grid,
  .help-search-methods {
    grid-template-columns: 1fr;
  }

  .notice-form-grid label,
  .notice-form-grid label:nth-child(3n),
  .notice-form-grid label:nth-last-child(-n + 3) {
    border-right: 0;
    border-bottom: 1px solid #e7edf3;
  }

  .notice-detail-actions > span {
    display: none;
  }

  .help-center-header {
    grid-template-columns: minmax(0, 1fr) 40px;
  }

  .help-center-brand p,
  .help-center-brand small {
    display: none;
  }

  .help-search-box {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  .help-center-layout {
    display: block;
  }

  .help-center-nav {
    display: flex;
    gap: 5px;
    border-right: 0;
    border-bottom: 1px solid #d9e3ec;
    overflow-x: auto;
  }

  .help-center-nav > div {
    display: none;
  }

  .help-center-nav a {
    flex: 0 0 auto;
  }

  .help-center-content {
    height: calc(100vh - 190px);
    padding: 12px;
  }

  .help-module-source {
    grid-template-columns: 1fr;
  }

  .help-module-heading {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .help-module-heading-actions {
    grid-column: 1 / 3;
    grid-auto-flow: column;
    justify-content: start;
    justify-items: start;
  }

  .help-module-source > span {
    transform: rotate(90deg);
  }

  .help-guide-entry > header {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .help-form-type {
    grid-column: 1 / 3;
    justify-self: start;
  }

  .help-field-function-grid {
    grid-template-columns: 1fr;
  }
}

/* 品位收率能耗：实际用量与共享单价自动费用 */
.resource-profile-form {
  background:
    linear-gradient(180deg, rgba(235, 244, 252, 0.62), rgba(255, 255, 255, 0) 360px),
    #f8fbfe;
}

.resource-profile-form .resource-process-section,
.resource-profile-form .resource-usage-section,
.resource-profile-form .resource-fee-section {
  border-color: #a9bfd3;
  box-shadow: 0 8px 24px rgba(31, 69, 103, 0.06);
}

.resource-profile-form .resource-process-section .form-section-title {
  background: linear-gradient(90deg, #eef5fb, #f9fcff);
}

.resource-profile-form .resource-usage-section .form-section-title {
  background: linear-gradient(90deg, #e6f3f1, #f7fbfa);
}

.resource-profile-form .resource-fee-section .form-section-title {
  background: linear-gradient(90deg, #eaf1fa, #f7faff);
}

.resource-process-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.resource-process-grid > label:only-child {
  grid-column: span 1;
}

.resource-usage-grid > label {
  position: relative;
  overflow: hidden;
}

.resource-usage-grid > label::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: #367ca9;
}

.resource-usage-grid > label:nth-child(2)::after {
  background: #b67b2c;
}

.resource-usage-grid > label:nth-child(3)::after {
  background: #2586a7;
}

.resource-usage-grid > label:nth-child(4)::after {
  background: #6f7e4e;
}

.resource-fee-section > .form-section-title > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px;
  border: 1px solid #b9d3c7;
  border-radius: 999px;
  color: #206047;
  background: #edf8f2;
}

.resource-fee-section > .form-section-title > span.is-unmatched {
  border-color: #e5c2b7;
  color: #9a3d2f;
  background: #fff3ef;
}

.resource-fee-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
}

.resource-fee-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #c5d6e5;
  border-radius: 12px;
  background: linear-gradient(145deg, #ffffff, #f4f8fc);
  box-shadow: 0 6px 16px rgba(31, 67, 99, 0.055);
}

.resource-fee-card.is-unmatched {
  border-style: dashed;
  border-color: #d9b9af;
  background: linear-gradient(145deg, #fffdfc, #fff6f2);
}

.resource-fee-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid #d7e2ec;
}

.resource-fee-card-head > i {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 9px;
  color: #176492;
  background: #e3f0f8;
}

.resource-fee-card:nth-child(2) .resource-fee-card-head > i {
  color: #956020;
  background: #fbedd7;
}

.resource-fee-card:nth-child(3) .resource-fee-card-head > i {
  color: #187895;
  background: #def2f7;
}

.resource-fee-card:nth-child(4) .resource-fee-card-head > i {
  color: #5f713b;
  background: #edf1df;
}

.resource-fee-card-head span {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.resource-fee-card-head strong {
  color: #163b5d;
  font-size: 14px;
}

.resource-fee-card-head small {
  color: #6b8094;
  font-size: 11px;
}

.resource-fee-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.resource-fee-values > label {
  display: grid;
  min-width: 0;
  gap: 6px;
  padding: 11px 12px 12px;
}

.resource-fee-values > label + label {
  border-left: 1px solid #d7e2ec;
}

.resource-fee-values > label > span {
  color: #536b82;
  font-size: 11px;
  font-weight: 750;
}

.resource-fee-values .cost-input-unit {
  border: 1px solid #c7d6e4;
  border-radius: 8px;
  background: #fff;
}

.resource-fee-values input[readonly] {
  min-width: 0;
  color: #154b72;
  background: #f9fcff;
  font-size: 14px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.resource-fee-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 14px 14px;
  padding: 12px 15px;
  border: 1px solid #a9c8bb;
  border-radius: 10px;
  color: #315b4b;
  background: linear-gradient(90deg, #edf8f3, #f8fcfa);
}

.resource-fee-total span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 750;
}

.resource-fee-total strong {
  color: #0d6748;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 980px) {
  .resource-fee-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .cost-profile-modal {
    width: calc(100vw - 12px);
    height: calc(100vh - 12px);
    max-height: calc(100vh - 12px);
  }

  .cost-profile-scroll > .governance-ledger {
    margin: 10px 10px 18px;
  }

  .cost-grade-band-help {
    left: 10px;
    right: 10px;
  }

  .resource-process-grid,
  .resource-usage-grid {
    grid-template-columns: 1fr;
  }

  .resource-fee-values {
    grid-template-columns: 1fr;
  }

  .resource-fee-values > label + label {
    border-top: 1px solid #d7e2ec;
    border-left: 0;
  }

  .resource-fee-total {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}

/* 产供销共享成本决策中心 */
.cost-accounting-modal.shared-cost-hub {
  top: 50%;
  width: min(1500px, calc(100vw - 24px));
  height: min(920px, calc(100vh - 24px));
  max-width: 1500px;
  max-height: calc(100vh - 24px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%);
}
.shared-cost-hub > .modal-header {
  position: relative;
  flex: 0 0 auto;
}
.shared-cost-hub-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  display: grid;
  align-content: start;
  grid-auto-rows: max-content;
  gap: 14px;
  padding: 18px 22px 24px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: #f7f9fc;
}
.shared-cost-hub-scroll > .shared-cost-hero,
.shared-cost-hub-scroll > .form-section { margin: 0; }
.shared-cost-hero { margin: 18px 22px 0; }
.shared-cost-source-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}
.shared-cost-source-grid article {
  border: 1px solid #dce6f1;
  border-radius: 14px;
  padding: 7px 11px;
  background: linear-gradient(145deg,#fff,#f6f9fd);
}
.shared-cost-source-grid article > div {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #50647d;
  font-size: 12px;
  line-height: 1.2;
}
.shared-cost-source-grid article > strong {
  display: block;
  margin: 3px 0 0;
  font-size: 22px;
  line-height: 1.05;
  color: #163d72;
}
.shared-cost-source-grid article > small {
  display: block;
  margin-bottom: 4px;
  color: #8190a3;
  font-size: 10px;
  line-height: 1.2;
}
.shared-cost-source-grid article > .outline-button {
  min-height: 27px;
  padding-block: 3px;
}
.shared-cost-workbench-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}
.shared-cost-workbench-grid > button {
  display: grid;
  grid-template-columns: 42px 1fr 20px;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 16px;
  border: 1px solid #d8e4f0;
  border-radius: 14px;
  background: #fff;
  color: #25364a;
  text-align: left;
  cursor: pointer;
  transition: .18s ease;
}
.shared-cost-workbench-grid > button:hover {
  border-color: #6aa1e8;
  box-shadow: 0 8px 22px rgba(46,105,180,.12);
  transform: translateY(-1px);
}
.shared-cost-workbench-grid i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #e9f2ff;
  color: #286cc2;
}
.shared-cost-workbench-grid span,
.shared-cost-workbench-grid small { display: block; }
.shared-cost-workbench-grid small { margin-top: 5px; color: #76869a; line-height: 1.5; }
.shared-analysis-hero { margin-bottom: 16px; }
.shared-cost-result { min-height: 115px; }
.shared-cost-result .negative { color: #c23b3b; }
.grade-band-coverage td small {
  display: block;
  margin-top: 4px;
  color: #72839a;
}
.grade-band-coverage td .status-pill {
  margin-right: 6px;
}
.analysis-grade-rule {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #c8dcef;
  border-radius: 9px;
  background: #f1f7fd;
  color: #315d8d;
  font-size: 12px;
}
.cost-profile-edit-banner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 22px 0;
  padding: 12px 14px;
  border: 1px solid #a9c9ef;
  border-radius: 11px;
  background: #edf6ff;
  color: #205b9c;
}
.cost-profile-edit-banner span,
.cost-profile-edit-banner small { display: block; }
.cost-profile-edit-banner small { margin-top: 3px; color: #607b9a; }
.profile-call-trace {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #b9d5ee;
  border-radius: 12px;
  background: #f1f8ff;
}
.profile-call-trace > strong {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #184e86;
}
.profile-call-trace > div {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  margin: 11px 0 7px;
}
.profile-call-trace span { padding: 10px; border-radius: 9px; background: #fff; }
.profile-call-trace span small,
.profile-call-trace span b,
.profile-call-trace span em { display: block; }
.profile-call-trace span small { color: #73859a; }
.profile-call-trace span b { margin: 4px 0; color: #193b61; }
.profile-call-trace span em { color: #58718c; font-size: 12px; font-style: normal; }
.profile-call-trace > small { color: #647c95; }
.cost-risk-banner.is-danger {
  margin: 14px 22px;
  border-color: #f0b8b8;
  background: #fff3f3;
  color: #a83232;
}
@media (max-width: 900px) {
  .shared-cost-source-grid,
  .shared-cost-workbench-grid,
  .profile-call-trace > div { grid-template-columns: 1fr; }

  .cost-accounting-modal.shared-cost-hub {
    top: 6px;
    width: calc(100vw - 12px);
    height: calc(100vh - 12px);
    max-height: calc(100vh - 12px);
    transform: translateX(-50%);
  }

  .shared-cost-hub-scroll {
    gap: 10px;
    padding: 10px 10px 18px;
  }
}

/* 全系统逐表单说明：每张输入型/只读型表单均可独立展开 */
.system-form-help {
  --form-help-accent: #2674ad;
  --form-help-soft: #eaf5fd;
  --form-help-border: #bcd8e9;
  width: 100%;
  margin: 0 0 14px;
  overflow: hidden;
  border: 1px solid var(--form-help-border);
  border-left: 4px solid var(--form-help-accent);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(24, 54, 79, 0.06);
  grid-column: 1 / -1;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

.system-form-help[data-help-tone="cyan"] {
  --form-help-accent: #168c9d;
  --form-help-soft: #e7f7f9;
  --form-help-border: #b7dfe3;
}

.system-form-help[data-help-tone="violet"] {
  --form-help-accent: #7658bd;
  --form-help-soft: #f1edfc;
  --form-help-border: #d2c7ee;
}

.system-form-help[data-help-tone="amber"] {
  --form-help-accent: #b87617;
  --form-help-soft: #fff5df;
  --form-help-border: #ead3a4;
}

.system-form-help[data-help-tone="emerald"] {
  --form-help-accent: #168368;
  --form-help-soft: #e8f7f2;
  --form-help-border: #b9ded2;
}

.system-form-help[data-help-tone="blue"] {
  --form-help-accent: #3b65bb;
  --form-help-soft: #edf2ff;
  --form-help-border: #c4d1ee;
}

.system-form-help[data-help-tone="rose"] {
  --form-help-accent: #b75b78;
  --form-help-soft: #fceef3;
  --form-help-border: #e8c6d1;
}

.system-form-help[data-help-tone="indigo"] {
  --form-help-accent: #545fba;
  --form-help-soft: #eef0ff;
  --form-help-border: #c9cdef;
}

.system-form-help[data-help-tone="slate"] {
  --form-help-accent: #526d86;
  --form-help-soft: #edf2f6;
  --form-help-border: #c9d6e0;
}

.system-form-help > summary {
  min-height: 54px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto 22px;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  color: #27475f;
  background: linear-gradient(100deg, var(--form-help-soft), #fff 76%);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.system-form-help > summary::-webkit-details-marker {
  display: none;
}

.system-form-help > summary:hover {
  filter: saturate(1.08);
}

.system-form-help-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #fff !important;
  background: var(--form-help-accent);
  box-shadow: 0 4px 10px color-mix(in srgb, var(--form-help-accent) 25%, transparent);
}

.system-form-help > summary > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.system-form-help > summary strong {
  color: #203f57;
  font-size: 13px !important;
  font-weight: 850;
  line-height: 1.4;
}

.system-form-help > summary small {
  color: #6b7f90;
  font-size: 11px !important;
  font-weight: 650;
}

.system-form-help > summary em {
  padding: 4px 8px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: #256f9d;
  background: rgba(255, 255, 255, 0.82);
  font-size: 10.5px !important;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.system-form-help[data-form-kind="input"] > summary em {
  color: #9b620f;
  background: #fff9e9;
}

.system-form-help > summary > i {
  color: var(--form-help-accent);
  font-style: normal;
  transition: transform 0.18s ease;
}

.system-form-help[open] > summary > i {
  transform: rotate(180deg);
}

.system-form-help-body {
  display: grid;
  gap: 11px;
  padding: 13px;
  border-top: 1px solid var(--form-help-border);
  background: #fbfcfe;
}

.system-form-purpose {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid #dde6ed;
  border-radius: 10px;
  background: #fff;
}

.system-form-purpose > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--form-help-accent) !important;
  background: var(--form-help-soft);
}

.system-form-purpose strong,
.system-form-field-guide header strong,
.system-form-help-columns header strong {
  color: #294b63;
  font-size: 12px !important;
  font-weight: 850;
}

.system-form-purpose p {
  margin: 3px 0 0;
  color: #435d72;
  font-size: 12.5px !important;
  font-weight: 650;
  line-height: 1.65;
}

.system-form-field-guide {
  padding: 11px 12px;
  border: 1px solid #dde6ed;
  border-radius: 10px;
  background: #fff;
}

.system-form-field-guide > header,
.system-form-help-columns article > header {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--form-help-accent);
}

.system-form-field-guide > header small {
  margin-left: auto;
  color: #748696;
  font-size: 10.5px !important;
  font-weight: 650;
}

.system-form-field-guide > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 9px;
}

.system-form-field-guide article {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  padding: 9px;
  border: 1px solid #e2e9ef;
  border-radius: 9px;
  background: #f9fbfd;
}

.system-form-field-guide article > span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--form-help-accent) !important;
  background: var(--form-help-soft);
}

.system-form-field-guide article > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.system-form-field-guide article strong {
  overflow: hidden;
  color: #304f67;
  font-size: 11.5px !important;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-form-field-guide article small {
  color: #64788a;
  font-size: 10.5px !important;
  font-weight: 600;
  line-height: 1.5;
}

.system-form-help-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 10px;
}

.system-form-help-columns > article {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #dde6ed;
  border-radius: 10px;
  background: #fff;
}

.system-form-help-columns ol {
  margin: 8px 0 0;
  padding-left: 21px;
  color: #435d72;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.7;
}

.system-form-help-columns li::marker {
  color: var(--form-help-accent);
  font-weight: 850;
}

.system-form-flow {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  margin-top: 8px;
  padding: 10px;
  border: 1px dashed var(--form-help-border);
  border-radius: 9px;
  color: #294b63;
  background: var(--form-help-soft);
  font-size: 12px;
  line-height: 1.65;
}

.system-form-flow svg {
  color: var(--form-help-accent);
}

.system-form-flow b {
  font-weight: 750;
}

.system-form-help-columns > article > small {
  display: block;
  margin-top: 6px;
  color: #667b8d;
  font-size: 10.5px !important;
  font-weight: 650;
  line-height: 1.5;
}

.login-card .system-form-help,
.security-lock-screen .system-form-help {
  margin-top: 2px;
  border-radius: 10px;
}

.login-card .system-form-help > summary,
.security-lock-screen .system-form-help > summary {
  grid-template-columns: 30px minmax(0, 1fr) 20px;
}

.login-card .system-form-help > summary em,
.security-lock-screen .system-form-help > summary em {
  display: none;
}

@media (max-width: 980px) {
  .system-form-field-guide > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .system-form-help-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 660px) {
  .system-form-help > summary {
    grid-template-columns: 34px minmax(0, 1fr) 20px;
  }

  .system-form-help > summary em {
    display: none;
  }

  .system-form-field-guide > header small {
    display: none;
  }

  .system-form-field-guide > div {
    grid-template-columns: 1fr;
  }
}

/* 全系统表单说明书：统一收纳到表单右上角小图标，点击后直接查看 */
.has-system-form-help {
  position: relative !important;
}

.system-form-help-trigger,
.system-form-help-dialog {
  --form-help-accent: #2674ad;
  --form-help-soft: #eaf5fd;
  --form-help-border: #bcd8e9;
}

.system-form-help-trigger[data-help-tone="cyan"],
.system-form-help-dialog[data-help-tone="cyan"] {
  --form-help-accent: #168c9d;
  --form-help-soft: #e7f7f9;
  --form-help-border: #b7dfe3;
}

.system-form-help-trigger[data-help-tone="violet"],
.system-form-help-dialog[data-help-tone="violet"] {
  --form-help-accent: #7658bd;
  --form-help-soft: #f1edfc;
  --form-help-border: #d2c7ee;
}

.system-form-help-trigger[data-help-tone="amber"],
.system-form-help-dialog[data-help-tone="amber"] {
  --form-help-accent: #b87617;
  --form-help-soft: #fff5df;
  --form-help-border: #ead3a4;
}

.system-form-help-trigger[data-help-tone="emerald"],
.system-form-help-dialog[data-help-tone="emerald"] {
  --form-help-accent: #168368;
  --form-help-soft: #e8f7f2;
  --form-help-border: #b9ded2;
}

.system-form-help-trigger[data-help-tone="blue"],
.system-form-help-dialog[data-help-tone="blue"] {
  --form-help-accent: #3b65bb;
  --form-help-soft: #edf2ff;
  --form-help-border: #c4d1ee;
}

.system-form-help-trigger[data-help-tone="rose"],
.system-form-help-dialog[data-help-tone="rose"] {
  --form-help-accent: #b75b78;
  --form-help-soft: #fceef3;
  --form-help-border: #e8c6d1;
}

.system-form-help-trigger[data-help-tone="indigo"],
.system-form-help-dialog[data-help-tone="indigo"] {
  --form-help-accent: #545fba;
  --form-help-soft: #eef0ff;
  --form-help-border: #c9cdef;
}

.system-form-help-trigger[data-help-tone="slate"],
.system-form-help-dialog[data-help-tone="slate"] {
  --form-help-accent: #526d86;
  --form-help-soft: #edf2f6;
  --form-help-border: #c9d6e0;
}

.system-form-help-trigger {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 7;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--form-help-border);
  border-radius: 10px;
  color: var(--form-help-accent);
  background: color-mix(in srgb, var(--form-help-soft) 82%, #fff);
  box-shadow: 0 5px 14px color-mix(in srgb, var(--form-help-accent) 16%, transparent);
  cursor: pointer;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.system-form-help-trigger:hover,
.system-form-help-trigger:focus-visible {
  color: #fff;
  background: var(--form-help-accent);
  box-shadow: 0 7px 18px color-mix(in srgb, var(--form-help-accent) 30%, transparent);
  transform: translateY(-1px);
  outline: none;
}

.system-form-help-trigger::after {
  content: "查看表单说明书";
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  width: max-content;
  max-width: 150px;
  padding: 5px 8px;
  border-radius: 7px;
  color: #fff;
  background: #203f57;
  box-shadow: 0 5px 14px rgba(20, 40, 58, 0.18);
  font-size: 10.5px;
  font-weight: 750;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 0.14s ease, transform 0.14s ease;
}

.system-form-help-trigger:hover::after,
.system-form-help-trigger:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.system-form-help-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(12, 28, 42, 0.54);
  backdrop-filter: blur(4px);
}

.system-form-help-dialog {
  width: min(960px, 94vw);
  max-height: min(850px, 92vh);
  overflow: hidden;
  border: 1px solid var(--form-help-border);
  border-radius: 17px;
  background: #f8fbfd;
  box-shadow: 0 24px 64px rgba(15, 35, 52, 0.28);
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

.system-form-help-header {
  min-height: 76px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto 38px;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  border-bottom: 1px solid var(--form-help-border);
  background: linear-gradient(105deg, var(--form-help-soft), #fff 72%);
}

.system-form-help-header > .system-form-help-icon {
  width: 40px;
  height: 40px;
  border-radius: 11px;
}

.system-form-help-header > div {
  min-width: 0;
}

.system-form-help-header :where(small, h2, p) {
  margin: 0;
}

.system-form-help-header small {
  color: var(--form-help-accent);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.system-form-help-header h2 {
  margin-top: 2px;
  color: #203f57;
  font-size: 18px;
  font-weight: 900;
}

.system-form-help-header p {
  margin-top: 2px;
  color: #6b7f90;
  font-size: 11px;
  font-weight: 650;
}

.system-form-help-header > em {
  padding: 5px 9px;
  border: 1px solid var(--form-help-border);
  border-radius: 999px;
  color: var(--form-help-accent);
  background: rgba(255, 255, 255, 0.84);
  font-size: 10.5px;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}

.system-form-help-dialog[data-form-kind="input"] .system-form-help-header > em {
  color: #9b620f;
  border-color: #ead3a4;
  background: #fff9e9;
}

.system-form-help-dialog > .system-form-help-body {
  max-height: calc(min(850px, 92vh) - 76px);
  overflow: auto;
  border-top: 0;
  padding: 15px;
}

@media (max-width: 660px) {
  .system-form-help-backdrop {
    padding: 10px;
  }

  .system-form-help-dialog {
    width: 100%;
    max-height: 96vh;
  }

  .system-form-help-header {
    grid-template-columns: 40px minmax(0, 1fr) 36px;
  }

  .system-form-help-header > em {
    display: none;
  }

  .system-form-help-header h2 {
    font-size: 15px;
  }

  .system-form-help-dialog > .system-form-help-body {
    max-height: calc(96vh - 76px);
  }
}

/* 浏览页统一采用左右各 2cm 的凸显式内容画布 */
.recruitment-workspace {
  width: calc(100% - 4cm);
  margin: 14px 2cm 26px;
  padding: 16px;
  border: 1px solid #cbdce8;
  border-radius: 20px;
  background:
    radial-gradient(circle at 96% 2%, rgba(66, 166, 142, 0.08), transparent 26%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(247, 251, 254, 0.98));
  box-shadow:
    0 22px 48px rgba(25, 55, 80, 0.14),
    0 4px 12px rgba(25, 55, 80, 0.06);
}

@media (max-width: 720px) {
  .recruitment-workspace {
    width: calc(100% - 20px);
    margin: 8px 10px 16px;
    padding: 10px;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(25, 55, 80, 0.1);
  }
}
.cost-full-title {
  color: #c5161d !important;
  font-weight: 900;
  letter-spacing: .04em;
}

.fullcost-date-only .cost-date-section {
  border: 2px solid rgba(197, 22, 29, .22);
  background: linear-gradient(135deg, rgba(255, 247, 247, .98), rgba(255, 255, 255, .98));
}

.fullcost-only-date {
  min-width: 280px;
}

.fullcost-date-only :is(input, select, textarea):disabled {
  color: #475569;
  background: #f4f7fa;
  border-color: #d8e0e8;
  opacity: 1;
  cursor: not-allowed;
}

.cost-shared-config {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.cost-shared-config-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border: 1px solid #d8e4ee;
  border-radius: 12px;
  background: #f7fafc;
}

.cost-shared-config-head > div {
  display: grid;
  gap: 3px;
}

.cost-shared-config-head span,
.purchase-pricing-cell small {
  color: #64748b;
  font-size: 12px;
}

.purchase-pricing-cell {
  display: grid;
  gap: 4px;
  min-width: 150px;
}

.purchase-pricing-cell small {
  white-space: nowrap;
}

.cost-shared-item-modal {
  max-width: 980px;
}

.cost-shared-item-modal {
  background:
    radial-gradient(circle at 100% 0, rgba(47, 115, 223, .10), transparent 30%),
    #f7fafc;
}

.cost-shared-editor .form-section {
  border: 1px solid #d7e3ef;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(31, 48, 66, .08);
}

.cost-shared-editor.is-editing .form-section {
  border-color: rgba(47, 115, 223, .55);
  box-shadow: 0 14px 32px rgba(47, 115, 223, .14);
}

.cost-shared-editor-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 14px 16px;
  border-radius: 13px;
  color: #17304b;
  background: linear-gradient(135deg, #edf5ff, #f8fbff);
  border: 1px solid #d4e5f8;
}

.cost-shared-editor-banner > div:last-child {
  display: grid;
  gap: 3px;
}

.cost-shared-editor-banner span {
  color: #63758a;
  font-size: 12px;
}

.cost-shared-editor-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg, #2f73df, #245bb4);
  box-shadow: 0 8px 18px rgba(47, 115, 223, .24);
}

.cost-shared-ledger-table tr.is-editing-row td {
  background: #eef6ff;
}

.cost-shared-ledger-table tbody tr:hover td {
  background: #f5f9fd;
}

.procurement-mix-input-table input[readonly][data-purchase-dry-total] {
  min-width: 138px;
  color: #b4232d;
  font-weight: 800;
  background: #fff7f7;
}

.downgrade-cost-modal {
  width: min(1540px, calc(100vw - 36px));
}

.downgrade-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 24px;
  margin: 18px 22px 0;
  padding: 26px 28px;
  border: 1px solid #cbdcf1;
  border-radius: 18px;
  color: #fff;
  background:
    radial-gradient(circle at 90% 10%, rgba(75, 147, 255, .34), transparent 35%),
    linear-gradient(135deg, #102c50, #174f88 62%, #1f68a8);
  box-shadow: 0 18px 42px rgba(19, 63, 105, .2);
}

.downgrade-hero > div:first-child {
  display: grid;
  align-content: center;
  gap: 9px;
}

.downgrade-hero > div:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  color: #b9d8ff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

.downgrade-hero h2 {
  margin: 0;
  max-width: 850px;
  font-size: clamp(22px, 2.2vw, 34px);
  line-height: 1.22;
}

.downgrade-hero p {
  margin: 0;
  max-width: 900px;
  color: #d5e8fc;
  line-height: 1.7;
}

.downgrade-hero-basis {
  display: grid;
  gap: 9px;
  align-content: center;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  background: rgba(6, 29, 54, .25);
}

.downgrade-hero-basis strong {
  margin-bottom: 3px;
  color: #fff;
}

.downgrade-hero-basis span {
  color: #d8eaff;
  font-size: 13px;
}

.downgrade-rule-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.downgrade-rule-strip span {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border: 1px solid #d6e2ef;
  border-radius: 12px;
  background: #f7faff;
}

.downgrade-rule-strip small {
  color: #60748a;
}

.downgrade-rule-strip strong {
  color: #174f88;
  font-size: 18px;
}

.downgrade-plant-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(125px, 1fr));
  gap: 10px;
}

.downgrade-plant-grid article {
  display: grid;
  gap: 6px;
  min-height: 104px;
  align-content: center;
  padding: 14px;
  border: 1px solid #d6e2ef;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff, #f5f9fd);
}

.downgrade-plant-grid span,
.downgrade-plant-grid small {
  color: #6d7f91;
  font-size: 12px;
}

.downgrade-plant-grid strong {
  color: #143f69;
  font-size: 17px;
}

.downgrade-energy-prices {
  margin-top: 16px;
}

.downgrade-total-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 12px 15px;
  border: 1px solid #d3e2f2;
  border-radius: 11px;
  color: #51677e;
  background: #f5f9fd;
}

.downgrade-total-note strong {
  color: #143f69;
}

.downgrade-result-cards {
  grid-template-columns: repeat(6, minmax(150px, 1fr));
}

.downgrade-result-cards article:last-child {
  color: #fff;
  background: linear-gradient(145deg, #0c775a, #0a5d49);
}

.downgrade-result-cards article:last-child span,
.downgrade-result-cards article:last-child strong {
  color: #fff;
}

.downgrade-ledger-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(360px, .8fr);
  gap: 18px;
  margin-top: 18px;
}

.downgrade-ledger-grid .data-table small {
  display: block;
  margin-top: 4px;
  max-width: 390px;
  color: #76899d;
  white-space: normal;
}

.downgrade-history {
  margin: 18px 22px 26px;
}

@media (max-width: 1180px) {
  .downgrade-rule-strip,
  .downgrade-result-cards {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }

  .downgrade-plant-grid {
    grid-template-columns: repeat(4, minmax(140px, 1fr));
  }

  .downgrade-ledger-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .downgrade-hero {
    grid-template-columns: 1fr;
    margin-inline: 12px;
    padding: 20px;
  }

  .downgrade-rule-strip,
  .downgrade-result-cards,
  .downgrade-plant-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.intermediate-inventory-modal {
  width: min(1540px, calc(100vw - 24px));
  height: min(940px, calc(100vh - 24px));
  max-height: calc(100vh - 24px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.intermediate-inventory-scroll {
  min-height: 0;
  overflow: auto;
  padding: 0 18px 20px;
}

.intermediate-summary-hero {
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(0, 1.7fr);
  gap: 16px;
  margin: 14px 0;
  padding: 18px;
  border: 1px solid #c7dcef;
  border-radius: 18px;
  background: linear-gradient(135deg, #eef8ff 0%, #f8fbff 50%, #f2fbf6 100%);
}

.intermediate-summary-hero > div:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #176c91;
  font-weight: 750;
}

.intermediate-summary-hero h3 {
  margin: 9px 0 6px;
  color: #16374d;
  font-size: 21px;
}

.intermediate-summary-hero p {
  margin: 0;
  color: #5b7180;
  line-height: 1.7;
}

.intermediate-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.intermediate-summary-grid article {
  padding: 12px;
  border: 1px solid rgba(108, 151, 178, .22);
  border-radius: 13px;
  background: rgba(255, 255, 255, .84);
  box-shadow: 0 8px 22px rgba(45, 92, 122, .06);
}

.intermediate-summary-grid span,
.intermediate-summary-grid small {
  display: block;
  color: #6d7f8c;
  font-size: 12px;
}

.intermediate-summary-grid strong {
  display: block;
  margin: 6px 0 4px;
  color: #153e58;
  font-size: 20px;
}

.intermediate-entry-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.intermediate-compact-form {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #cbdbe5;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(33, 70, 94, .07);
}

.intermediate-compact-form .form-section {
  margin: 0;
  height: auto;
  padding: 18px;
  border: 0;
  background: #ffffff;
}

.intermediate-compact-form .form-section::after {
  display: none;
}

.intermediate-compact-form .intermediate-form-title {
  min-height: 52px;
  margin: -18px -18px 0;
  padding: 10px 18px;
  border-bottom: 1px solid #bdd2e0;
  background: linear-gradient(135deg, #e8f3fa, #f2f8fc);
}

.intermediate-form-title > div {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.intermediate-form-title > div > em {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: #176c91;
  color: #ffffff;
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  letter-spacing: .02em;
}

.intermediate-form-title > div > strong::before {
  display: none;
}

.intermediate-form-title > span {
  max-width: 48%;
  text-align: right;
  line-height: 1.5;
}

.intermediate-form-guide {
  margin: 14px 0;
  padding: 10px 12px;
  border-left: 4px solid #2e86aa;
  border-radius: 0 9px 9px 0;
  background: #f4f9fc;
  color: #506b7a;
  font-size: 13px;
  line-height: 1.65;
}

.intermediate-form-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--form-line);
  border-left: 1px solid var(--form-line) !important;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) {
  grid-template-columns: minmax(112px, 124px) minmax(90px, 1fr);
  min-width: 0;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  font-size: 14px;
  letter-spacing: normal;
  text-rendering: optimizeLegibility;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) input::placeholder,
.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) textarea::placeholder {
  color: #84949f;
  opacity: 1;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) > span small,
.intermediate-calculation-grid label > span small {
  display: block;
  margin-top: 2px;
  color: #617888;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
}

.intermediate-subsection-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 16px 0 8px;
  color: #284a5e;
}

.intermediate-subsection-title strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
}

.intermediate-subsection-title span {
  color: #6d818e;
  font-size: 12px;
  text-align: right;
}

.intermediate-calculation-panel {
  margin-top: 14px;
  padding: 12px;
  border: 1px solid #bfd8e5;
  border-radius: 12px;
  background: linear-gradient(135deg, #f4fbfe, #f7fbf7);
}

.intermediate-calculation-panel .intermediate-subsection-title {
  margin: 0 0 9px;
}

.intermediate-calculation-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.intermediate-calculation-grid label {
  display: grid;
  grid-template-columns: minmax(100px, 118px) minmax(0, 1fr);
  min-width: 0;
  overflow: hidden;
  border: 1px solid #bfd3df;
  border-radius: 9px;
  background: #ffffff;
}

.intermediate-calculation-grid label > span {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 8px 9px;
  border-right: 1px solid #bfd3df;
  background: #e5f1f7;
  color: #244a61;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
  text-align: center;
}

.intermediate-calculation-grid input[readonly] {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 11px;
  border: 0;
  background: #f7fcfe;
  color: #0f5876;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  font-size: 14px;
  font-weight: 750;
}

.intermediate-form-actions {
  position: static;
  min-height: 48px;
  margin-top: 12px;
  padding: 8px 0 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.intermediate-formula-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 10px;
  padding: 9px 11px;
  color: #456675;
  line-height: 1.55;
  border: 1px dashed #b8d2df;
  border-radius: 10px;
  background: #f4fafc;
}

.intermediate-compact-form input.is-warning {
  color: #b45309;
  border-color: #f59e0b;
  background: #fff8e7;
}

.intermediate-live-ledger {
  margin-top: 14px;
}

.intermediate-workshop-panel {
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid #d9e4ea;
  border-radius: 13px;
  background: #fff;
}

.intermediate-workshop-panel > .form-section-title {
  margin: 0;
  padding: 10px 12px;
  background: #f2f7fa;
}

.intermediate-tank-table td:first-child strong,
.intermediate-tank-table td:first-child small,
.intermediate-tank-table td:nth-child(3) small,
.intermediate-tank-table td:nth-child(9) small {
  display: block;
}

.intermediate-tank-table td:first-child small,
.intermediate-tank-table td:nth-child(3) small {
  margin-top: 3px;
  color: #74838d;
}

.intermediate-tank-table td:nth-child(9).negative small {
  color: #b42318;
}

@media (max-width: 1100px) {
  .intermediate-summary-hero {
    grid-template-columns: 1fr;
  }

  .intermediate-summary-grid {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }

  .intermediate-form-grid,
  .intermediate-calculation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .intermediate-form-grid > .span-4,
  .intermediate-form-grid > .span-2 {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .intermediate-inventory-scroll {
    padding: 0 10px 16px;
  }

  .intermediate-summary-grid {
    grid-template-columns: 1fr;
  }

  .intermediate-form-title,
  .intermediate-subsection-title {
    align-items: flex-start;
    flex-direction: column;
  }

  .intermediate-form-title > span,
  .intermediate-subsection-title span {
    max-width: none;
    text-align: left;
  }

  .intermediate-form-grid,
  .intermediate-calculation-grid {
    grid-template-columns: 1fr;
  }

  .intermediate-form-grid > .span-4,
  .intermediate-form-grid > .span-2 {
    grid-column: span 1;
  }
}

/* 各业务菜单 · 实时审批节点浏览窗口 */
.module-approval-progress-window {
  overflow: hidden;
  padding: 0;
  border-color: #d5e1eb;
}
.module-approval-progress-head {
  align-items: flex-end;
  padding: 17px 19px;
  background: linear-gradient(110deg, #f4f9fd, #eef7f6);
}
.module-approval-progress-head > div:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #26708b;
  font-size: 12px;
  font-weight: 800;
}
.module-approval-progress-head h2 { margin: 4px 0 2px; color: #183e56; }
.module-approval-progress-head p { margin: 0; color: #718292; font-size: 12px; }
.module-approval-progress-head > div:last-child { display: flex; gap: 8px; }
.module-approval-progress-head article {
  min-width: 98px;
  padding: 9px 11px;
  border: 1px solid #d6e4ec;
  border-radius: 11px;
  background: #fff;
}
.module-approval-progress-head article span { display: block; color: #718292; font-size: 11px; }
.module-approval-progress-head article strong { display: block; margin-top: 2px; color: #155d73; font-size: 20px; }
.module-approval-progress-list {
  display: grid;
  gap: 8px;
  max-height: 510px;
  overflow: auto;
  padding: 12px 14px 15px;
  background: #f7fafc;
}
.module-approval-progress-list > article {
  display: grid;
  grid-template-columns: minmax(190px, .72fr) minmax(520px, 2fr) minmax(126px, auto);
  align-items: center;
  gap: 15px;
  padding: 12px 13px;
  border: 1px solid #dce6ed;
  border-radius: 12px;
  background: #fff;
}
.module-approval-progress-list > article.is-rejected { border-color: #e3c787; background: #fffbeb; }
.module-approval-progress-list > article.is-returned { border-color: #e3c787; background: #fffbeb; }
.module-approval-progress-meta span { color: #2a728b; font-size: 11px; font-weight: 800; }
.module-approval-progress-meta strong { display: block; margin-top: 2px; color: #183d55; }
.module-approval-progress-meta p,
.module-approval-progress-meta small { display: block; margin: 2px 0 0; color: #718292; font-size: 11px; }
.module-approval-track {
  display: flex;
  align-items: center;
  min-width: 0;
}
.module-approval-track > span {
  display: grid;
  grid-template-columns: 23px auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0 6px;
  min-width: 92px;
  color: #8897a5;
}
.module-approval-track > span i {
  grid-row: 1 / span 2;
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border: 1px solid #cbd8e2;
  border-radius: 50%;
  background: #f6f9fb;
  font-size: 10px;
  font-style: normal;
}
.module-approval-track > span b { font-size: 11px; white-space: nowrap; }
.module-approval-track > span em { color: #a67821; font-size: 9px; font-style: normal; }
.module-approval-track > u {
  flex: 1 1 26px;
  min-width: 14px;
  height: 1px;
  margin: 0 5px;
  background: #d6e0e8;
  text-decoration: none;
}
.module-approval-track > span.completed { color: #147a61; }
.module-approval-track > span.completed i { border-color: #8dd0bd; color: #137a60; background: #eaf8f3; }
.module-approval-track > span.current { color: #176f9c; }
.module-approval-track > span.current i { border-color: #78b9dd; color: #fff; background: #1680b8; box-shadow: 0 0 0 4px #e5f3fb; }
.module-approval-track > span.current b::after { content: "审批已到这里"; display: block; margin-top: 3px; color: #0d7652; font-size: 9px; font-weight: 850; }
.module-approval-track > span.rejected { color: #956014; }
.module-approval-track > span.rejected i { border-color: #e3c787; color: #fff; background: #b7791f; }
.module-approval-progress-action { display: grid; justify-items: end; gap: 8px; }
.module-approval-recovery-note { max-width: 310px; padding: 7px 9px; border: 1px solid #e7b6ad; border-radius: 8px; color: #873d32; background: #fff5f2; line-height: 1.45; }
.module-current-step { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid #76c6a4; border-radius: 8px; color: #0e6848; background: #ecfaf3; font-size: 11px; }
@media (max-width: 1200px) {
  .module-approval-progress-list > article { grid-template-columns: 1fr; }
  .module-approval-progress-action { display: flex; justify-content: space-between; }
  .module-approval-track { overflow-x: auto; padding: 5px 0; }
}

/* 人力资源 · 员工录入审批与正式员工浏览窗口 */
.hr-employee-review-window {
  overflow: hidden;
  padding: 0;
  border-color: #cfe0ec;
  background: linear-gradient(145deg, #f8fcff, #f3f8fb);
}
.hr-employee-review-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  padding: 20px 22px 17px;
  color: #fff;
  background:
    radial-gradient(circle at 78% 10%, rgba(120, 213, 190, .28), transparent 28%),
    linear-gradient(120deg, #104b72, #126c83 58%, #15866f);
}
.hr-employee-review-head > div > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.8);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
}
.hr-employee-review-head h2 {
  margin: 6px 0 4px;
  color: #fff;
  font-size: 23px;
}
.hr-employee-review-head p {
  margin: 0;
  color: rgba(255,255,255,.76);
  font-size: 13px;
}
.hr-employee-review-tabs {
  display: flex;
  gap: 7px;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 13px;
  background: rgba(5, 43, 62, .28);
}
.hr-employee-review-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 0;
  border-radius: 9px;
  color: rgba(255,255,255,.76);
  background: transparent;
  font-weight: 700;
  cursor: pointer;
}
.hr-employee-review-tabs button b {
  display: grid;
  min-width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 12px;
  background: rgba(255,255,255,.14);
  font-size: 12px;
}
.hr-employee-review-tabs button.active {
  color: #14526c;
  background: #fff;
  box-shadow: 0 7px 18px rgba(6, 34, 48, .18);
}
.hr-employee-review-tabs button.active b { color: #fff; background: #16806e; }
.hr-approval-role-strip {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr) minmax(170px, auto);
  align-items: center;
  gap: 12px;
  margin: 14px 18px 0;
  padding: 12px 14px;
  border: 1px solid #d7e7ef;
  border-radius: 14px;
  background: linear-gradient(100deg, #f7fbfe, #eef8f7);
}
.hr-approval-role-strip article {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.hr-approval-role-strip article > span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #657f91;
  font-size: 11px;
  font-weight: 700;
}
.hr-approval-role-strip article strong {
  color: #174f70;
  font-size: 15px;
}
.hr-approval-role-strip article small {
  overflow: hidden;
  color: #496b7f;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hr-approval-role-strip article.final strong { color: #147a62; }
.hr-approval-role-strip > i { color: #77a8b8; }
.hr-approval-role-strip > em {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: 7px;
  color: #567486;
  font-size: 11px;
  font-style: normal;
  white-space: nowrap;
}
.hr-approval-role-strip > em b {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #19a579;
  box-shadow: 0 0 0 4px rgba(25,165,121,.12);
}
.hr-employee-review-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  padding: 15px 18px 4px;
}
.hr-employee-review-metrics article {
  display: grid;
  gap: 3px;
  padding: 13px 14px;
  border: 1px solid #dce7ee;
  border-radius: 13px;
  background: #fff;
}
.hr-employee-review-metrics span,
.hr-employee-review-metrics small { color: #728394; font-size: 12px; }
.hr-employee-review-metrics strong { color: #153f59; font-size: 24px; }
.hr-employee-review-metrics article[data-tone="success"] strong { color: #11805f; }
.hr-employee-review-metrics article[data-tone="warning"] strong { color: #b06b0b; }
.hr-employee-review-metrics article[data-tone="final"] {
  border-color: #c7dff1;
  background: linear-gradient(145deg, #fff, #f1f8fd);
}
.hr-employee-review-metrics article[data-tone="final"] strong { color: #1479ae; }
.hr-employee-review-metrics article[data-tone="danger"] strong { color: #b94949; }
.hr-employee-review-metrics article[data-tone="mine"] { border-color: #7ab1d4; background: linear-gradient(145deg,#eaf7ff,#f8fcff); box-shadow: 0 7px 18px rgba(23,108,156,.1); }
.hr-employee-review-metrics article[data-tone="mine"] strong { color: #0f6d9f; }
.hr-employee-review-search {
  display: grid;
  grid-template-columns: minmax(260px,1fr) minmax(280px,420px) auto auto auto;
  align-items: center;
  gap: 9px;
  margin: 12px 18px 0;
  padding: 11px 12px;
  border: 1px solid #d5e4eb;
  border-radius: 13px;
  background: #fff;
}
.hr-employee-review-search > div { display: grid; gap: 2px; min-width: 0; }
.hr-employee-review-search > div strong { color: #244f66; font-size: 12px; }
.hr-employee-review-search > div small { color: #718692; font-size: 10px; }
.hr-employee-review-search > label { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 0 9px; border: 1px solid #bdcfd8; border-radius: 9px; background: #fff; }
.hr-employee-review-search > label svg { flex: 0 0 auto; color: #5e7b89; }
.hr-employee-review-search input { width: 100%; min-width: 0; height: 36px; border: 0; outline: 0; color: #294754; background: transparent; }
.hr-employee-review-search > span { color: #527180; font-size: 11px; font-weight: 800; white-space: nowrap; }
.hr-employee-window-table {
  overflow: auto;
  max-height: 430px;
  margin: 12px 18px 18px;
  border: 1px solid #dce6ed;
  border-radius: 13px;
  background: #fff;
}
.hr-employee-window-table table { min-width: 1480px; }
.hr-employee-window-table.formal table { min-width: 1380px; }
.hr-employee-window-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
}
.hr-employee-window-table td small {
  display: block;
  margin-top: 3px;
  color: #748697;
  white-space: nowrap;
}
.hr-employee-window-table .is-rejected { background: #fff5f5; }
.hr-approver-name {
  color: #176b8a;
  font-size: 13px;
  white-space: nowrap;
}
.hr-approver-name.final { color: #14775f; }
.hr-final-mark { color: #168163 !important; font-weight: 700; }
@media (max-width: 1280px) {
  .hr-approval-role-strip { grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr); }
  .hr-approval-role-strip > em { grid-column: 1 / -1; justify-self: start; }
  .hr-employee-review-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
  .hr-employee-review-head { align-items: stretch; flex-direction: column; }
  .hr-employee-review-tabs { align-self: flex-start; }
  .hr-employee-review-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hr-approval-role-strip { grid-template-columns: 1fr; }
  .hr-approval-role-strip > i { transform: rotate(90deg); }
  .hr-employee-review-search { grid-template-columns: 1fr auto auto; }
  .hr-employee-review-search > div { grid-column: 1 / -1; }
  .hr-employee-review-search > label { min-width: 0; }
  .hr-employee-review-search > span { grid-column: 1 / -1; }
}

/* 统一业务浏览：审批流转 / 终审台账双窗口 */
.module-approval-browser-window {
  border-color: #c9dce8;
  background: linear-gradient(145deg, #f8fcff, #f1f7f9);
}
.module-approval-browser-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 19px 21px 17px;
  color: #fff;
  background:
    radial-gradient(circle at 82% 0, rgba(98, 213, 191, .28), transparent 30%),
    linear-gradient(118deg, #174b72, #176d82 58%, #14816f);
}
.module-approval-browser-head > div > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.8);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
}
.module-approval-browser-head h2 {
  margin: 6px 0 4px;
  color: #fff;
  font-size: 22px;
}
.module-approval-browser-head p {
  margin: 0;
  color: rgba(255,255,255,.76);
  font-size: 12px;
}
.module-approval-browser-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 7px;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 13px;
  background: rgba(5,43,62,.26);
}
.module-approval-auto-refresh { display: inline-flex; align-items: center; gap: 5px; padding: 0 5px; color: rgba(255,255,255,.78); font-size: 10px; white-space: nowrap; }
.module-approval-browser-tabs .outline-button { min-height: 32px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.32); color: #fff; background: rgba(255,255,255,.08); }
.module-approval-browser-tabs .outline-button:hover { background: rgba(255,255,255,.18); }
.module-approval-browser-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 12px;
  border: 0;
  border-radius: 9px;
  color: rgba(255,255,255,.78);
  background: transparent;
  font-weight: 750;
  cursor: pointer;
}
.module-approval-browser-tabs button b {
  display: grid;
  min-width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 12px;
  background: rgba(255,255,255,.14);
  font-size: 11px;
}
.module-approval-browser-tabs button.active {
  color: #14526c;
  background: #fff;
  box-shadow: 0 7px 18px rgba(6,34,48,.18);
}
.module-approval-browser-tabs button.active b { color: #fff; background: #16806e; }
.module-approval-browser-tabs button.active.returned { border-color: #e4c27d; color: #6f4c11; background: #fff7df; }
.module-approval-browser-tabs button.active.returned b { background: #a96f15; }
.module-approval-browser-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  padding: 14px 17px 4px;
}
.module-approval-browser-metrics article {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid #dbe7ed;
  border-radius: 12px;
  background: #fff;
}
.module-approval-browser-metrics span,
.module-approval-browser-metrics small { color: #738696; font-size: 11px; }
.module-approval-browser-metrics strong { color: #173e58; font-size: 22px; }
.module-approval-browser-metrics [data-tone="warning"] strong { color: #ac6a0f; }
.module-approval-browser-metrics [data-tone="danger"] strong { color: #b84a4a; }
.module-approval-browser-metrics [data-tone="returned"] strong { color: #9a6518; }
.module-approval-browser-metrics [data-tone="success"] strong { color: #168064; }
.module-approval-browser-metrics [data-tone="mine"] { border-color: #79b4d7; background: linear-gradient(145deg,#e9f7ff,#fff); box-shadow: 0 7px 18px rgba(23,108,156,.1); }
.module-approval-browser-metrics [data-tone="mine"] strong { color: #0f6d9f; }
.module-approval-progress-action small {
  max-width: 180px;
  color: #718696;
  font-size: 10px;
  line-height: 1.35;
  text-align: right;
}
.module-terminal-ledger-wrap {
  overflow: auto;
  max-height: 490px;
  margin: 12px 17px 17px;
  border: 1px solid #dce6ed;
  border-radius: 13px;
  background: #fff;
}
.module-terminal-ledger { min-width: 1120px; }
.module-terminal-ledger thead {
  position: sticky;
  top: 0;
  z-index: 2;
}
.module-terminal-ledger td:nth-child(3) { min-width: 250px; }
.module-final-approver { color: #14775f; white-space: nowrap; }
.module-approval-browser-empty {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 34px 18px;
  color: #78909e;
  text-align: center;
}
.module-approval-browser-empty strong { color: #31566c; }
.module-approval-browser-empty span { font-size: 11px; }

/* 各业务菜单：当前生效审批流程浏览与安全维护 */
.effective-workflow-browser {
  overflow: hidden;
  border-color: #cbdfe3;
  background: #fbfdfd;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.effective-workflow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 17px 20px;
  border-bottom: 1px solid #dce8ea;
  background: linear-gradient(110deg,#edf7f7,#f8fbfc 58%,#eef7f3);
}
.effective-workflow-head > div:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #27747b;
  font-size: 13px;
  font-weight: 700;
}
.effective-workflow-head h2 { margin: 5px 0 3px; color: #224b5a; font-size: 21px; font-weight: 750; }
.effective-workflow-head p { margin: 0; color: #61777f; font-size: 13px; line-height: 1.55; }
.effective-workflow-summary { display: flex; align-items: stretch; gap: 7px; }
.effective-workflow-summary span {
  min-width: 88px;
  display: grid;
  justify-items: center;
  gap: 2px;
  padding: 8px 11px;
  border: 1px solid #d5e4e6;
  border-radius: 10px;
  color: #71858c;
  background: rgba(255,255,255,.86);
  font-size: 12px;
}
.effective-workflow-summary b { color: #246b74; font-size: 19px; }
.effective-workflow-summary .has-pending { border-color: #e8c887; background: #fff9ec; }
.effective-workflow-summary .has-pending b { color: #ae6a12; }
.effective-workflow-table-wrap { overflow: auto; max-height: 540px; }
.effective-workflow-table { min-width: 1320px; table-layout: fixed; }
.effective-workflow-table th { position: sticky; top: 0; z-index: 2; color: #345765; background: #f5f9fa; font-size: 12px; font-weight: 750; }
.effective-workflow-table td { min-width: 0; overflow: hidden; vertical-align: top; font-size: 12px; font-weight: 500; line-height: 1.5; }
.effective-workflow-table td:nth-child(1) { width: 190px; }
.effective-workflow-table td:nth-child(2) { width: 260px; }
.effective-workflow-table td:nth-child(3) { width: 520px; }
.effective-workflow-table td:nth-child(4) { width: 120px; }
.effective-workflow-table td:nth-child(5) { width: 135px; color: #73868e; white-space: nowrap; }
.effective-workflow-name { display: grid; gap: 4px; }
.effective-workflow-name > span { color: #647d86; font-size: 12px; }
.effective-workflow-name strong { color: #173f50; font-size: 15px; font-weight: 750; }
.effective-workflow-name small { display: inline-flex; align-items: center; gap: 4px; color: #3e7b63; font-size: 11px; }
.effective-workflow-matters { display: flex; flex-wrap: wrap; gap: 5px; }
.effective-workflow-matters span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border: 1px solid #d7e6e8;
  border-radius: 7px;
  color: #486b75;
  background: #f3f8f9;
  font-size: 11px;
  font-weight: 600;
}
.effective-workflow-route {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 1px 1px 5px;
  scrollbar-width: thin;
  scrollbar-color: #b7cfd2 transparent;
}
.effective-workflow-route > span {
  flex: 0 0 148px;
  min-width: 148px;
  min-height: 62px;
  display: grid;
  grid-template-columns: 21px minmax(0,1fr);
  align-content: center;
  gap: 1px 6px;
  padding: 7px 8px;
  border: 1px solid #d8e5e8;
  border-radius: 9px;
  background: #fff;
}
.effective-workflow-route > span i {
  grid-row: 1 / 3;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #4d8a92;
  font-size: 11px;
  font-style: normal;
}
.effective-workflow-route > span.initiator { border-color: #bcdce6; background: #f0faff; }
.effective-workflow-route > span.initiator i { background: #2d88aa; }
.effective-workflow-route > span.final { border-color: #a8d7c1; background: #f1fbf5; }
.effective-workflow-route > span.final i { background: #278364; }
.effective-workflow-route b { min-width: 0; color: #244f60; font-size: 12px; font-weight: 750; overflow-wrap: anywhere; }
.effective-workflow-route small { min-width: 0; color: #6d828a; font-size: 11px; overflow-wrap: anywhere; }
.effective-workflow-route > u {
  position: relative;
  flex: 0 0 24px;
  align-self: center;
  width: 24px;
  height: 1px;
  margin: 0;
  border-top: 1px solid #9dbec3;
  text-decoration: none;
}
.effective-workflow-route > u::after {
  position: absolute;
  right: -1px;
  top: -9px;
  color: #568891;
  content: '›';
  font-size: 16px;
  font-weight: 800;
}
.effective-workflow-people { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 7px; color: #647f88; font-size: 11px; overflow-wrap: anywhere; }
.effective-workflow-runtime { display: grid; gap: 4px; }
.effective-workflow-runtime > span { display: inline-flex; align-items: center; gap: 4px; color: #187653; font-size: 12px; font-weight: 750; }
.effective-workflow-runtime strong { color: #365f69; font-size: 13px; }
.effective-workflow-runtime strong.has-pending { color: #b06c15; }
.effective-workflow-runtime small { color: #71868d; font-size: 11px; }
.effective-workflow-actions { display: grid; gap: 6px; min-width: 116px; }
.effective-workflow-actions button { width: 100%; justify-content: center; font-size: 12px; font-weight: 650; }
.effective-workflow-actions .danger { color: #566b73; border-color: #cbd9dd; background: #fff; }
.effective-workflow-actions .danger:hover:not(:disabled) { color: #a23f3f; border-color: #d99191; background: #fff6f6; }
.effective-workflow-actions button:disabled { color: #99a6aa; border-color: #dce3e5; background: #f4f6f7; opacity: 1; cursor: not-allowed; }
.workflow-readonly-badge { display: inline-flex; justify-content: center; padding: 5px 8px; border-radius: 7px; color: #657a82; background: #eef3f4; font-size: 11px; }
.effective-workflow-note { display: flex; align-items: center; gap: 6px; padding: 10px 17px; border-top: 1px solid #e0eaec; color: #657d85; background: #f7fafb; font-size: 11px; }
.effective-workflow-empty { display: grid; justify-items: center; gap: 5px; padding: 30px; color: #8aa0a7; text-align: center; }
.effective-workflow-empty strong { color: #466671; }
.effective-workflow-empty span { font-size: 12px; }
.business-draft-panel { overflow: hidden; border-color: #d8dfeb; background: #fbfcff; }
.business-draft-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; border-bottom: 1px solid #e3e8f0; background: linear-gradient(105deg,#f2f5fb,#fbfcff); }
.business-draft-head > div > span { display: inline-flex; align-items: center; gap: 5px; color: #60749a; font-size: 11px; font-weight: 750; }
.business-draft-head h2 { margin: 3px 0 2px; color: #2f466b; font-size: 18px; }
.business-draft-head p { margin: 0; color: #738096; font-size: 12px; }
.business-draft-head > strong { display: grid; justify-items: center; min-width: 64px; color: #4d6590; font-size: 22px; }
.business-draft-head > strong small { color: #8792a5; font-size: 10px; font-weight: 600; }
.business-draft-list { display: grid; gap: 0; }
.business-draft-list article { display: grid; grid-template-columns: 36px minmax(210px,1fr) auto auto auto; align-items: center; gap: 10px; padding: 11px 16px; border-bottom: 1px solid #edf0f5; }
.business-draft-list article:last-child { border-bottom: 0; }
.business-draft-list article > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #4f6b9b; background: #edf2fb; }
.business-draft-list article > div { display: grid; gap: 1px; min-width: 0; }
.business-draft-list article > div strong { color: #314c71; font-size: 13px; }
.business-draft-list article > div span { overflow: hidden; color: #66758b; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.business-draft-list article > div small { color: #929baa; font-size: 10px; }
.business-draft-list article > em { padding: 3px 7px; border-radius: 999px; color: #8b691f; background: #fff5d9; font-size: 10px; font-style: normal; font-weight: 750; }
.business-draft-list .danger { color: #9a4b4b; border-color: #e6caca; }
.offboarding-business-section { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; padding: 14px; border: 1px solid #d7e2e8; border-radius: 12px; background: #f8fbfc; }
.offboarding-business-section[hidden] { display: none; }
.offboarding-business-section > strong,.offboarding-business-section > small { grid-column: 1 / -1; }
.offboarding-business-section > strong { color: #265369; font-size: 14px; }
.offboarding-business-section > small { margin-top: -7px; color: #6d818b; font-size: 11px; }
.payroll-suspension-notice { display: flex; align-items: center; gap: 10px; margin: 0 18px 12px; padding: 11px 13px; border: 1px solid #e7c77f; border-radius: 11px; color: #8a5c0d; background: #fff8e8; }
.payroll-suspension-notice[hidden] { display: none; }
.payroll-suspension-notice > div { display: grid; gap: 2px; }
.payroll-suspension-notice strong { font-size: 13px; }
.payroll-suspension-notice span { font-size: 11px; }
.is-payroll-suspended [name="grossPay"],.is-payroll-suspended [name="netPay"] { color: #9b5e00; background: #fff6df; font-weight: 800; }
@media (max-width: 820px) {
  .business-draft-list article { grid-template-columns: 34px minmax(0,1fr) auto; }
  .business-draft-list article > button { grid-column: span 1; }
  .offboarding-business-section { grid-template-columns: 1fr 1fr; }
}
.settings-workflow-overview {
  border-color: #b8d4dc;
  box-shadow: 0 12px 30px rgba(39,91,105,.08);
}
.settings-workflow-overview .effective-workflow-head {
  background: linear-gradient(112deg,#e9f6f7,#f8fbfc 55%,#eaf6f0);
}
.effective-workflow-module-row td {
  padding: 0;
  border-top: 8px solid #f2f6f7;
  border-bottom: 1px solid #cbdde1;
  background: #eaf4f5;
}
.effective-workflow-module-row:first-child td { border-top: 0; }
.effective-workflow-module-row div {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 12px;
  color: #2e6570;
}
.effective-workflow-module-row span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg,#3e8792,#2f7567);
}
.effective-workflow-module-row strong { font-size: 15px; font-weight: 750; }
.effective-workflow-module-row small {
  margin-left: auto;
  padding: 3px 7px;
  border-radius: 999px;
  color: #577981;
  background: rgba(255,255,255,.72);
  font-size: 11px;
}
.effective-workflow-module-empty td {
  padding: 18px 24px;
  color: #84979d;
  background: #fbfdfd;
  font-size: 12px;
  text-align: center;
}
.effective-workflow-module-empty svg { margin-right: 6px; vertical-align: -3px; }

/* 一级菜单总浏览页：生效审批方案统一改为自适应卡片，避免侧栏展开后挤压。 */
.effective-workflow-browser .effective-workflow-table-wrap {
  max-height: 650px;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px;
  background: linear-gradient(180deg,#f5f9f9,#fbfdfd);
}
.effective-workflow-browser .effective-workflow-table {
  display: block;
  width: 100%;
  min-width: 0;
  table-layout: auto;
}
.effective-workflow-browser .effective-workflow-table thead { display: none; }
.effective-workflow-browser .effective-workflow-table tbody { display: block; }
.effective-workflow-browser tr[data-effective-workflow-row] {
  display: grid;
  grid-template-columns: 190px minmax(300px,1fr) 135px 142px;
  grid-template-rows: auto auto;
  align-items: stretch;
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px solid #d8e6e8;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(42,82,92,.065);
}
.effective-workflow-browser tr[data-effective-workflow-row]:last-child { margin-bottom: 0; }
.effective-workflow-browser tr[data-effective-workflow-row] > td {
  display: block;
  width: auto !important;
  min-width: 0;
  overflow: visible;
  padding: 11px 12px;
  border-bottom: 0;
  border-right: 1px solid #e4edef;
  background: transparent;
}
.effective-workflow-browser tr[data-effective-workflow-row] > td::before {
  display: block;
  margin-bottom: 5px;
  color: #789097;
  content: attr(data-label);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
}
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(1) { grid-column: 1; grid-row: 1 / 3; background: linear-gradient(145deg,#f8fbfb,#f1f7f6); }
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(2) { grid-column: 2; grid-row: 1; }
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(3) { grid-column: 2; grid-row: 2; border-top: 1px dashed #dfe8ea; }
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(4) { grid-column: 3; grid-row: 1; }
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(5) { grid-column: 3; grid-row: 2; border-top: 1px dashed #dfe8ea; }
.effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(6) {
  grid-column: 4;
  grid-row: 1 / 3;
  border-right: 0;
  background: #f8fbfb;
}
.effective-workflow-browser .effective-workflow-route { max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.effective-workflow-browser .effective-workflow-actions { min-width: 0; }
.effective-workflow-browser .effective-workflow-name,
.effective-workflow-browser .effective-workflow-matters,
.effective-workflow-browser .effective-workflow-runtime { min-width: 0; }
.effective-workflow-browser .effective-workflow-name strong,
.effective-workflow-browser .effective-workflow-name > span,
.effective-workflow-browser .effective-workflow-matters span,
.effective-workflow-browser .effective-workflow-runtime strong,
.effective-workflow-browser .effective-workflow-runtime small { overflow-wrap: anywhere; word-break: break-word; }
.effective-workflow-browser .effective-workflow-module-row { display: block; }
.effective-workflow-browser .effective-workflow-module-row td { display: block; width: 100%; }
.effective-workflow-browser .effective-workflow-module-empty { display: block; }
.effective-workflow-browser .effective-workflow-module-empty td { display: block; width: 100%; }

@media (max-width: 1180px) {
  .effective-workflow-browser tr[data-effective-workflow-row] {
    grid-template-columns: 170px minmax(250px,1fr) 132px;
    grid-template-rows: auto auto auto;
  }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(1) { grid-column: 1; grid-row: 1 / 3; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(3) { grid-column: 2; grid-row: 2; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(4) { grid-column: 1; grid-row: 3; border-top: 1px dashed #dfe8ea; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(5) { grid-column: 2; grid-row: 3; border-top: 1px dashed #dfe8ea; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(6) { grid-column: 3; grid-row: 1 / 4; }
}

@media (max-width: 900px) {
  .effective-workflow-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .effective-workflow-summary { width: 100%; }
  .effective-workflow-summary span { flex: 1 1 0; min-width: 0; }
  .effective-workflow-browser .effective-workflow-table-wrap { max-height: none; padding: 9px; }
  .effective-workflow-browser tr[data-effective-workflow-row] {
    grid-template-columns: minmax(0,1fr) 132px;
    grid-template-rows: auto auto auto auto;
  }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(1) { grid-column: 1; grid-row: 1; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(2) { grid-column: 1; grid-row: 2; border-top: 1px dashed #dfe8ea; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(3) { grid-column: 1 / -1; grid-row: 3; border-top: 1px dashed #dfe8ea; border-right: 0; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(4) { grid-column: 2; grid-row: 1; border-right: 0; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(5) { grid-column: 2; grid-row: 2; border-top: 1px dashed #dfe8ea; border-right: 0; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:nth-child(6) { grid-column: 1 / -1; grid-row: 4; border-top: 1px solid #e1eaec; }
  .effective-workflow-browser .effective-workflow-actions { display: flex; flex-wrap: wrap; }
  .effective-workflow-browser .effective-workflow-actions button { width: auto; min-width: 112px; }
}

@media (max-width: 620px) {
  .effective-workflow-head { padding: 14px; }
  .effective-workflow-head h2 { font-size: 18px; }
  .effective-workflow-summary { gap: 5px; }
  .effective-workflow-summary span { padding: 7px 5px; font-size: 10px; }
  .effective-workflow-browser tr[data-effective-workflow-row] { display: block; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td { border-right: 0; border-top: 1px dashed #dfe8ea; }
  .effective-workflow-browser tr[data-effective-workflow-row] > td:first-child { border-top: 0; }
  .effective-workflow-browser .effective-workflow-actions button { flex: 1 1 120px; }
}
.module-table-scroll {
  width: 100%;
  overflow: auto;
}
.hr-main-ledger .module-table-scroll .data-table { min-width: 1520px; }
.hr-main-ledger .data-table td:nth-child(7),
.hr-main-ledger .data-table td:nth-child(8) {
  color: #176b7f;
  font-weight: 700;
  white-space: nowrap;
}

/* 全系统“查看”统一为正式表单式详情 */
.detail-drawer.detail-form-modal {
  position: absolute;
  inset: 50% auto auto 50%;
  width: min(1240px, calc(100vw - 42px));
  height: min(900px, calc(100vh - 42px));
  max-height: 94vh;
  overflow: hidden;
  transform: translate(-50%, -50%);
  border: 1px solid #c7d9e7;
  border-radius: 20px;
  background: #f3f7fa;
  box-shadow: 0 28px 80px rgba(10,35,53,.28);
}
.detail-form-header {
  min-height: 94px;
  align-items: center;
  padding: 17px 22px;
  border-bottom: 0;
  color: #fff;
  background:
    radial-gradient(circle at 85% -20%, rgba(107,214,193,.32), transparent 34%),
    linear-gradient(118deg, #123f66, #176b83 62%, #13806c);
}
.detail-form-header > div { min-width: 0; }
.detail-form-header p {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: rgba(255,255,255,.75);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}
.detail-form-header h2 {
  margin: 5px 0 2px;
  color: #fff;
  font-size: 23px;
}
.detail-form-header > div > span {
  display: block;
  overflow: hidden;
  color: rgba(255,255,255,.76);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.detail-form-header .icon-button {
  color: #fff;
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.12);
}
.detail-form-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 16px 18px 20px;
}
.detail-form-summary {
  display: grid;
  grid-template-columns: minmax(210px, auto) auto minmax(250px, 1fr);
  align-items: center;
  gap: 14px;
  margin-bottom: 13px;
  padding: 11px 14px;
  border: 1px solid #cde2dd;
  border-radius: 12px;
  background: linear-gradient(100deg, #f2faf7, #f7fbfd);
}
.detail-form-summary span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #246c5c;
  font-size: 11px;
  font-weight: 750;
}
.detail-form-summary strong {
  justify-self: start;
  padding: 4px 9px;
  border-radius: 999px;
  color: #176f5b;
  background: #dff4ec;
  font-size: 11px;
}
.detail-form-summary small {
  justify-self: end;
  color: #718694;
  font-size: 10px;
}
.employee-archive-overview {
  display: grid;
  grid-template-columns: 66px minmax(220px, 1fr) minmax(260px, auto) minmax(220px, .7fr);
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
  padding: 16px 18px;
  overflow: hidden;
  border: 1px solid #c9dfeb;
  border-radius: 16px;
  background:
    radial-gradient(circle at 94% -40%, rgba(49, 173, 145, .17), transparent 45%),
    linear-gradient(120deg, #f8fcff, #eef7fb 54%, #eef9f6);
  box-shadow: 0 7px 22px rgba(25, 73, 102, .06);
}
.employee-archive-avatar {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border: 4px solid rgba(255,255,255,.78);
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, #176c91, #17927a);
  box-shadow: 0 8px 18px rgba(23,108,145,.2);
  font-size: 24px;
  font-weight: 850;
}
.employee-archive-identity span {
  color: #26809a;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
}
.employee-archive-identity h3 {
  margin: 3px 0 2px;
  color: #173e59;
  font-size: 20px;
}
.employee-archive-identity p {
  margin: 0;
  color: #688091;
  font-size: 11px;
}
.employee-archive-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}
.employee-archive-badges span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 6px 9px;
  border: 1px solid #d2e1e9;
  border-radius: 9px;
  color: #416579;
  background: rgba(255,255,255,.8);
  font-size: 10px;
  font-weight: 700;
}
.employee-archive-badges span.approved {
  border-color: #b9dfd2;
  color: #16765e;
  background: #edf9f4;
}
.employee-archive-completeness {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.employee-archive-completeness > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.employee-archive-completeness span,
.employee-archive-completeness small { color: #6d8291; font-size: 10px; }
.employee-archive-completeness strong { color: #187c69; font-size: 15px; }
.employee-archive-completeness > i {
  display: block;
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #dfe9ee;
}
.employee-archive-completeness > i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2182a4, #20a077);
}
.detail-form-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}
.detail-form-section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d5e2ea;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(28,66,92,.045);
}
.detail-form-section > header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 10px 13px;
  border-bottom: 1px solid #dce7ed;
  background: linear-gradient(105deg, #eef6fb, #f4faf8);
}
.detail-form-section > header > i {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 10px;
  color: #176b84;
  background: #dceef5;
  font-style: normal;
}
.detail-form-section > header strong,
.detail-form-section > header small { display: block; }
.detail-form-section > header strong { color: #173f59; font-size: 13px; }
.detail-form-section > header small { margin-top: 2px; color: #758999; font-size: 10px; }
.detail-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.detail-form-field {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  min-height: 43px;
  border-right: 1px solid #e3ebf0;
  border-bottom: 1px solid #e3ebf0;
}
.detail-form-field:nth-child(2n) { border-right: 0; }
.detail-form-field.span-2 {
  grid-column: 1 / -1;
  border-right: 0;
}
.detail-form-field > span {
  display: flex;
  align-items: center;
  padding: 8px 10px;
  border-right: 1px solid #dce6ed;
  color: #5b7283;
  background: #f6f9fb;
  font-size: 11px;
  font-weight: 700;
}
.detail-form-field > strong {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 8px 11px;
  color: #243f54;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.detail-form-field.is-pending > span {
  color: #95671e;
  background: #fff9ec;
}
.detail-form-field.is-pending > strong {
  color: #a26a13;
  background: #fffcf5;
  font-weight: 750;
}
.approval-detail-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 0 13px;
  padding: 12px;
  border: 1px dashed #b9d2df;
  border-radius: 11px;
  color: #386c83;
  background: #f4f9fb;
  font-size: 11px;
  font-weight: 700;
}
.approval-detail-loading svg { animation: approval-detail-spin 1s linear infinite; }
@keyframes approval-detail-spin { to { transform: rotate(360deg); } }
.approval-business-detail {
  display: grid;
  gap: 13px;
  margin: 0 0 14px;
}
.approval-business-detail-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #bcd8e4;
  border-radius: 12px;
  color: #174f69;
  background: linear-gradient(105deg,#eaf5fa,#eef8f4);
}
.approval-business-detail-heading > span {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: #20778d;
}
.approval-business-detail-heading strong,
.approval-business-detail-heading small { display: block; }
.approval-business-detail-heading strong { font-size: 13px; }
.approval-business-detail-heading small { margin-top: 2px; color: #688392; font-size: 10px; }
.hr-approval-profile-summary {
  display: grid;
  grid-template-columns: minmax(210px,.8fr) minmax(0,1.45fr);
  align-items: stretch;
  gap: 10px;
  padding: 12px;
  border: 1px solid #b8d6df;
  border-radius: 14px;
  background: linear-gradient(120deg,#f3fafc,#f5fbf7);
}
.hr-approval-profile-person { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 11px; padding: 7px 9px; }
.hr-approval-profile-person > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(135deg,#176b86,#2c9177); font-size: 20px; font-weight: 850; box-shadow: 0 7px 15px rgba(23,107,134,.18); }
.hr-approval-profile-person small,.hr-approval-profile-person strong,.hr-approval-profile-person p { display: block; margin: 0; }
.hr-approval-profile-person small { color: #688494; font-size: 9px; letter-spacing: .08em; }
.hr-approval-profile-person strong { margin: 3px 0; color: #173f55; font-size: 16px; }
.hr-approval-profile-person p { color: #5f7b8a; font-size: 10px; }
.hr-approval-profile-summary dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 0; }
.hr-approval-profile-summary dl > div { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 10px; border: 1px solid #d8e6eb; border-radius: 10px; background: rgba(255,255,255,.82); }
.hr-approval-profile-summary dl > div[data-tone="contract"] { border-color: #e1d4ae; background: #fffaf0; }
.hr-approval-profile-summary dt { display: flex; align-items: center; gap: 5px; color: #718896; font-size: 9px; }
.hr-approval-profile-summary dd { min-width: 0; margin: 0; color: #254a5e; font-size: 11px; font-weight: 800; overflow-wrap: anywhere; }
.approval-business-section { width: 100%; }
.approval-business-section[data-tone="identity"] > header i { color: #176f82; background: #e4f5f8; }
.approval-business-section[data-tone="contract"] > header i { color: #956817; background: #fff3d6; }
.approval-business-section[data-tone="compensation"] > header i { color: #27764f; background: #e5f7ed; }
.approval-business-section[data-tone="request"] > header i { color: #526a90; background: #edf2fa; }
.approval-business-field.is-emphasis > span { color: #8b641b; background: #fff8e8; }
.approval-business-field.is-emphasis > strong { color: #986316; background: #fffdf7; font-weight: 800; }
.approval-business-table-section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d2e0e8;
  border-radius: 13px;
  background: #fff;
}
.approval-business-table-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border-bottom: 1px solid #dbe6ec;
  color: #1c4d66;
  background: #eff6f9;
}
.approval-business-table-section > header strong { font-size: 12px; }
.approval-business-table-section > header span { color: #718794; font-size: 10px; }
.approval-business-table-scroll { max-height: 420px; overflow: auto; }
.approval-business-table-scroll table { width: max-content; min-width: 100%; border-collapse: collapse; }
.approval-business-table-scroll th,
.approval-business-table-scroll td {
  max-width: 320px;
  padding: 9px 10px;
  border-right: 1px solid #e2eaf0;
  border-bottom: 1px solid #e2eaf0;
  color: #345064;
  font-size: 10px;
  line-height: 1.45;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
  white-space: nowrap;
}
.approval-business-table-scroll th { position: sticky; top: 0; z-index: 1; color: #315b70; background: #f3f8fa; font-weight: 800; }
.approval-business-table-scroll td:first-child { color: #245d74; background: #f9fbfc; font-weight: 750; }
.approval-history-identity-qr {
  display: grid;
  justify-items: center;
  gap: 4px;
  min-width: 92px;
  padding: 6px;
  border: 1px solid rgba(36, 103, 82, 0.16);
  border-radius: 10px;
  background: #fff;
}
.approval-history-identity-qr > span {
  width: 72px;
  height: 72px;
  padding: 3px;
  border-radius: 6px;
  background: #fff;
}
.approval-history-identity-qr small {
  color: #49685d;
  font-size: 11px;
  white-space: nowrap;
}
.approval-business-notes {
  padding: 12px 14px;
  border: 1px solid #e4dac0;
  border-radius: 11px;
  color: #654f2b;
  background: #fffbf1;
}
.approval-business-notes strong { font-size: 11px; }
.approval-business-notes p { margin: 6px 0 0; font-size: 10px; line-height: 1.65; white-space: pre-wrap; }
.detail-form-support-section {
  margin: 13px 0 0;
  border-radius: 14px;
}
.detail-form-modal .drawer-approval-section {
  max-height: none;
  overflow: visible;
}
.detail-form-modal .drawer-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 12px 18px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 -7px 20px rgba(27,58,79,.06);
}
.detail-form-modal .drawer-permission-note { margin-right: auto; }
@media (max-width: 1050px) {
  .module-approval-browser-head { align-items: stretch; flex-direction: column; }
  .module-approval-browser-tabs { align-self: flex-start; }
  .module-approval-browser-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-archive-overview { grid-template-columns: 66px 1fr; }
  .employee-archive-badges,
  .employee-archive-completeness { grid-column: 1 / -1; }
  .detail-form-sections { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .detail-drawer.detail-form-modal {
    width: 100vw;
    height: 100vh;
    max-height: none;
    border: 0;
    border-radius: 0;
  }
  .detail-form-header { min-height: 82px; padding: 13px 14px; }
  .detail-form-header h2 { font-size: 19px; }
  .detail-form-scroll { padding: 10px; }
  .detail-form-summary { grid-template-columns: 1fr; gap: 7px; }
  .detail-form-summary small { justify-self: start; }
  .employee-archive-overview { grid-template-columns: 54px 1fr; padding: 13px; }
  .employee-archive-avatar { width: 50px; height: 50px; border-radius: 14px; font-size: 20px; }
  .detail-form-grid { grid-template-columns: 1fr; }
  .hr-approval-profile-summary { grid-template-columns: 1fr; }
  .hr-approval-profile-summary dl { grid-template-columns: 1fr; }
  .detail-form-field,
  .detail-form-field:nth-child(2n) { border-right: 0; }
  .detail-form-field.span-2 { grid-column: auto; }
  .detail-form-field { grid-template-columns: 112px minmax(0, 1fr); }
  .module-approval-browser-metrics { grid-template-columns: 1fr; }
}

/* 财务核算 · 固定资产明细管理 */
.fixed-asset-backdrop { padding: 18px; }
.fixed-asset-modal {
  width: min(1780px, 98vw);
  max-height: 96vh;
  overflow: hidden;
  border-radius: 22px;
  background: #f4f7fb;
}
.fixed-asset-modal-header {
  background: linear-gradient(120deg, #0b4f93, #1676c7 72%, #2c91da);
  color: #fff;
}
.fixed-asset-modal-header .modal-heading span,
.fixed-asset-modal-header .modal-heading p { color: rgba(255, 255, 255, .78); }
.fixed-asset-modal-header .icon-button {
  color: #fff;
  border-color: rgba(255, 255, 255, .28);
  background: rgba(255, 255, 255, .12);
}
.fixed-asset-scroll {
  max-height: calc(96vh - 78px);
  overflow: auto;
  padding: 18px;
}
.fixed-asset-overview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.fixed-asset-overview article {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 82px;
  padding: 14px 16px;
  border: 1px solid #d9e6f4;
  border-radius: 16px;
  background: linear-gradient(145deg, #fff, #f6faff);
  box-shadow: 0 8px 24px rgba(20, 63, 109, .06);
}
.fixed-asset-overview article > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: #116bb6;
  background: #e6f2ff;
}
.fixed-asset-overview span,
.fixed-asset-overview small {
  display: block;
  color: #708096;
  font-size: 12px;
}
.fixed-asset-overview strong {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin-top: 3px;
  color: #173653;
  font-size: 22px;
}
.fixed-asset-mode-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 8px;
  border: 1px solid #d8e4f0;
  border-radius: 15px;
  background: #fff;
}
.fixed-asset-mode-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 14px;
  border: 0;
  border-radius: 10px;
  color: #49647d;
  background: transparent;
  font-weight: 700;
  cursor: pointer;
}
.fixed-asset-mode-tabs button.active {
  color: #fff;
  background: linear-gradient(120deg, #126bb5, #2088d4);
  box-shadow: 0 6px 16px rgba(21, 111, 184, .2);
}
.fixed-asset-mode-tabs button:disabled { opacity: .42; cursor: not-allowed; }
.fixed-asset-mode-tabs > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  color: #708096;
  font-size: 12px;
}
.fixed-asset-form,
.fixed-asset-batch-form { display: grid; gap: 13px; }
.fixed-asset-form[hidden],
.fixed-asset-batch-form[hidden] { display: none; }
.fixed-asset-section,
.fixed-asset-ledger {
  position: relative;
  margin: 0;
  border: 1px solid #d8e4f0;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(31, 73, 115, .05);
}
.fixed-asset-section::before,
.fixed-asset-ledger::before {
  content: "";
  position: absolute;
  top: 16px;
  bottom: 16px;
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(#2389d8, #74b7e7);
}
.fixed-asset-card-section::before { background: linear-gradient(#0f6fbd, #4aa6e4); }
.fixed-asset-invoice-section::before { background: linear-gradient(#b7791f, #e7b54f); }
.fixed-asset-custody-section::before { background: linear-gradient(#7755b7, #a989df); }
.fixed-asset-depreciation-section::before { background: linear-gradient(#148a68, #55bea0); }
.fixed-asset-section .form-section-title strong,
.fixed-asset-ledger .form-section-title strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #173f63;
}
.fixed-asset-card-section {
  background:
    linear-gradient(135deg, rgba(231, 244, 255, .55), transparent 32%),
    #fff;
}
.fixed-asset-invoice-section {
  background:
    linear-gradient(135deg, rgba(255, 247, 226, .58), transparent 32%),
    #fff;
}
.fixed-asset-custody-section {
  background:
    linear-gradient(135deg, rgba(243, 238, 255, .58), transparent 32%),
    #fff;
}
.fixed-asset-depreciation-section {
  background:
    linear-gradient(135deg, rgba(229, 249, 243, .56), transparent 34%),
    #fff;
}
.fixed-asset-supplement-field {
  padding: 9px;
  border: 1px dashed #cbd8e6;
  border-radius: 11px;
  background: rgba(247,250,253,.82);
}
.fixed-asset-supplement-field > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.fixed-asset-supplement-field > span em {
  padding: 2px 6px;
  border-radius: 999px;
  color: #526b83;
  background: #e8eff6;
  font-size: 9px;
  font-style: normal;
  font-weight: 750;
  white-space: nowrap;
}
.fixed-asset-edit-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
  border: 1px solid #9bc6ec;
  border-radius: 14px;
  color: #0d5795;
  background: #eef7ff;
}
.fixed-asset-edit-banner div { display: grid; gap: 3px; flex: 1; }
.fixed-asset-edit-banner span { color: #52718d; font-size: 12px; }
.fixed-asset-input-unit {
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid #cfdbe7;
  border-radius: 9px;
  background: #fff;
}
.fixed-asset-input-unit input { min-width: 0; border: 0 !important; border-radius: 0 !important; }
.fixed-asset-input-unit em {
  align-self: stretch;
  display: grid;
  place-items: center;
  min-width: 48px;
  padding: 0 9px;
  color: #60768b;
  background: #f0f5fa;
  font-size: 12px;
  font-style: normal;
  white-space: nowrap;
}
.fixed-asset-input-unit.readonly { background: #eef5fb; }
.fixed-asset-tax-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 11px;
  color: #52718d;
  background: #f3f7fb;
}
.fixed-asset-tax-check span { flex: 1; font-size: 12px; }
.fixed-asset-tax-check strong { color: #315c7f; }
.fixed-asset-tax-check.is-ready { color: #18704d; background: #ecf8f2; }
.fixed-asset-tax-check.is-warning { color: #9a5a0a; background: #fff7e8; }
.fixed-asset-form-actions {
  position: sticky;
  bottom: -18px;
  z-index: 4;
  margin: 0 -1px;
  padding: 13px 16px;
  border: 1px solid #d8e4f0;
  border-radius: 14px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 -6px 20px rgba(22, 66, 108, .08);
  backdrop-filter: blur(10px);
}
.fixed-asset-form-actions > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: auto;
  color: #60768b;
  font-size: 12px;
}
.fixed-asset-batch-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.fixed-asset-legacy-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px 20px;
  border: 1px solid #d8e6f2;
  border-radius: 15px;
  background: linear-gradient(135deg, #f5faff 0%, #eef7f5 100%);
}
.fixed-asset-legacy-hero h3 { margin: 0 0 7px; color: #173f62; font-size: 18px; }
.fixed-asset-legacy-hero p { margin: 0; color: #61788d; line-height: 1.7; }
.fixed-asset-legacy-hero > div > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  color: #26745a;
  font-size: 12px;
  font-weight: 800;
}
.fixed-asset-legacy-hero > strong {
  display: grid;
  gap: 3px;
  min-width: 210px;
  padding: 12px 15px;
  border: 1px solid #b9ddcf;
  border-radius: 12px;
  color: #21634e;
  background: rgba(255, 255, 255, .82);
}
.fixed-asset-legacy-hero > strong { font-size: 14px; }
.fixed-asset-legacy-hero > strong small { color: #567b6f; }
.fixed-asset-legacy-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.fixed-asset-legacy-fields span {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid #dce7f0;
  border-radius: 10px;
  color: #3d5870;
  background: #fff;
  font-size: 13px;
}
.fixed-asset-legacy-fields em {
  display: inline-grid;
  place-items: center;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #fff;
  background: #2a7fb9;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}
.fixed-asset-batch-file {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 12px 15px;
  border: 1px dashed #82b4df;
  border-radius: 13px;
  color: #1768aa;
  background: #f2f8ff;
  cursor: pointer;
}
.fixed-asset-batch-file span { display: grid; gap: 4px; }
.fixed-asset-batch-file small { color: #6f8498; }
.fixed-asset-batch-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.fixed-asset-batch-toolbar > div { display: flex; gap: 8px; }
.fixed-asset-batch-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
}
.fixed-asset-batch-summary article {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 11px 12px;
  border-radius: 11px;
  background: #f3f7fb;
}
.fixed-asset-batch-summary span,
.fixed-asset-batch-summary small { color: #6b7e91; font-size: 12px; }
.fixed-asset-batch-summary strong { color: #183f62; font-size: 18px; }
.fixed-asset-batch-summary [data-state="ready"] { color: #18845a; }
.fixed-asset-batch-summary [data-state="error"] { color: #bc3d3d; }
.fixed-asset-batch-form button[type="submit"][data-state="blocked"],
.fixed-asset-batch-form button[type="submit"][data-state="error"] {
  border-color: #d69745;
  background: #a85b19;
}
.fixed-asset-batch-form button[type="submit"][data-state="working"] svg {
  animation: approval-detail-spin 1s linear infinite;
}
.fixed-asset-batch-preview,
.fixed-asset-ledger-scroll {
  overflow: auto;
  max-height: 430px;
  margin-top: 12px;
  border: 1px solid #e0e8f0;
  border-radius: 12px;
}
.fixed-asset-batch-preview table { min-width: 1450px; }
.fixed-asset-ledger table { min-width: 1850px; }
.fixed-asset-batch-preview thead,
.fixed-asset-ledger thead { position: sticky; top: 0; z-index: 2; }
.fixed-asset-batch-preview td small,
.fixed-asset-ledger td small {
  display: block;
  margin-top: 3px;
  color: #718499;
  white-space: nowrap;
}
.fixed-asset-import-error { background: #fff2f2; }
.fixed-asset-import-status { display: inline-flex; max-width: 260px; color: #2c7655; }
.fixed-asset-import-error .fixed-asset-import-status { color: #b83535; }
.fixed-asset-ledger { margin-top: 14px; }
.fixed-asset-ledger-scroll { max-height: 520px; }
.fixed-asset-ledger .is-editing-row { background: #edf7ff; }
@media (min-width: 1180px) {
  .fixed-asset-ledger th:first-child,
  .fixed-asset-ledger td:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 112px;
    background: #fff;
    box-shadow: 1px 0 #e2eaf2;
  }
  .fixed-asset-ledger th:last-child,
  .fixed-asset-ledger td:last-child {
    position: sticky;
    right: 0;
    z-index: 1;
    min-width: 92px;
    background: #fff;
    box-shadow: -1px 0 #e2eaf2;
  }
  .fixed-asset-ledger th:first-child,
  .fixed-asset-ledger th:last-child { z-index: 3; background: #eef5fb; }
  .fixed-asset-ledger .is-editing-row td:first-child,
  .fixed-asset-ledger .is-editing-row td:last-child { background: #edf7ff; }
}
@media (max-width: 1450px) {
  .fixed-asset-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .fixed-asset-overview,
  .fixed-asset-batch-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fixed-asset-legacy-hero { grid-template-columns: 1fr; }
  .fixed-asset-legacy-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fixed-asset-batch-toolbar { grid-template-columns: 1fr; }
  .fixed-asset-mode-tabs > span { display: none; }
}

/* 每日生产投料 v52：字段悬停说明，输入框内不再放解释文字 */
.daily-production-modal .compact-daily-section,
.daily-production-modal .daily-production-split,
.daily-production-modal .compact-daily-grid {
  overflow: visible;
}

.daily-production-modal .daily-field-help {
  position: relative;
  overflow: visible !important;
  isolation: isolate;
}

.daily-production-modal .daily-field-help:hover,
.daily-production-modal .daily-field-help:focus-within {
  z-index: 30;
}

.daily-production-modal .daily-field-help > span:first-child {
  position: relative;
}

.daily-production-modal .daily-field-help::after {
  content: attr(data-field-help);
  position: absolute;
  right: 6px;
  bottom: calc(100% + 7px);
  z-index: 40;
  width: max-content;
  max-width: min(280px, calc(100vw - 48px));
  padding: 8px 10px;
  border: 1px solid rgba(104, 145, 163, .7);
  border-radius: 7px;
  background: rgba(20, 52, 68, .96);
  box-shadow: 0 8px 22px rgba(13, 38, 51, .22);
  color: #fff;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.5;
  white-space: normal;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity .12s ease, transform .12s ease;
}

.daily-production-modal .daily-field-help:hover::after,
.daily-production-modal .daily-field-help:focus-within::after {
  opacity: 1;
  transform: translateY(0);
}

.daily-production-modal .daily-field-help input::placeholder,
.daily-production-modal .daily-field-help textarea::placeholder {
  color: transparent;
}

/* 每日生产防漏填报：紧凑、高密度、逐项销项 */
.daily-coverage-bar {
  display: grid;
  grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr);
  align-items: center;
  gap: 10px;
  margin: 8px 0;
  padding: 8px 11px;
  border: 1px solid #d5a733;
  border-radius: 10px;
  background: #fff9e9;
}

.daily-coverage-bar.is-complete {
  border-color: #8bc6aa;
  background: #edf9f2;
}

.daily-coverage-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px 10px;
}

.daily-coverage-main > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #76510d;
  font-size: 13px;
  font-weight: 750;
}

.daily-coverage-bar.is-complete .daily-coverage-main > span {
  color: #17613d;
}

.daily-coverage-main > strong {
  grid-row: span 2;
  color: #9b5d00;
  font-size: 22px;
}

.daily-coverage-bar.is-complete .daily-coverage-main > strong {
  color: #17613d;
}

.daily-coverage-main > small {
  color: #715f39;
  font-size: 11.5px;
  line-height: 1.35;
}

.daily-missing-tank-list,
.daily-record-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
  overflow-x: auto;
}

.daily-missing-tank-list button,
.daily-record-chips span,
.daily-missing-tank-list > span {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 4px;
  min-height: 29px;
  padding: 4px 9px;
  border: 1px solid #e5c164;
  border-radius: 999px;
  background: #fff;
  color: #7a5208;
  font-size: 11.5px;
}

.daily-missing-tank-list button {
  cursor: pointer;
}

.daily-coverage-bar.is-complete .daily-missing-tank-list > span,
.daily-coverage-bar.is-complete .daily-record-chips span {
  border-color: #a9d8bf;
  color: #17613d;
}

.intermediate-inventory-modal {
  width: min(1380px, calc(100vw - 20px));
  height: min(880px, calc(100vh - 20px));
  max-height: calc(100vh - 20px);
}

.intermediate-inventory-scroll {
  padding: 0 12px 12px;
}

.intermediate-summary-hero {
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.55fr);
  gap: 10px;
  margin: 8px 0;
  padding: 10px;
  border-radius: 11px;
}

.intermediate-summary-hero h3 {
  margin: 4px 0 2px;
  font-size: 16px;
}

.intermediate-summary-hero p {
  font-size: 11.5px;
  line-height: 1.42;
}

.intermediate-summary-grid {
  grid-template-columns: repeat(5, minmax(100px, 1fr));
  gap: 6px;
}

.intermediate-summary-grid article {
  padding: 7px 8px;
  border-radius: 8px;
  box-shadow: none;
}

.intermediate-summary-grid strong {
  margin: 2px 0;
  font-size: 16px;
}

.intermediate-entry-grid {
  gap: 9px;
}

.intermediate-tank-maintenance {
  overflow: hidden;
  border: 1px solid #cbdbe5;
  border-radius: 10px;
  background: #fff;
}

.intermediate-tank-maintenance > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  padding: 6px 11px;
  background: #f2f7fa;
  color: #244a61;
  cursor: pointer;
}

.intermediate-tank-maintenance > summary > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-weight: 750;
}

.intermediate-tank-maintenance > summary em {
  padding: 2px 7px;
  border-radius: 999px;
  background: #2c708e;
  color: #fff;
  font-size: 11px;
  font-style: normal;
}

.intermediate-tank-maintenance > summary small {
  color: #6d818e;
}

.intermediate-compact-form {
  border-radius: 10px;
  box-shadow: 0 5px 14px rgba(33, 70, 94, .05);
}

.intermediate-compact-form .form-section {
  padding: 10px;
}

.intermediate-compact-form .intermediate-form-title {
  min-height: 40px;
  margin: -10px -10px 7px;
  padding: 7px 10px;
}

.intermediate-form-title > div > em {
  padding: 2px 7px;
  font-size: 11px;
}

.intermediate-form-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) {
  grid-template-columns: minmax(86px, 104px) minmax(78px, 1fr);
  min-height: 36px;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) > span {
  padding: 5px 7px;
  font-size: 12px;
  line-height: 1.25;
}

.intermediate-compact-form .intermediate-form-grid > label:not(.sheet-field) :is(input, select, textarea) {
  min-height: 35px;
  padding: 5px 7px;
  font-size: 12.5px;
}

.intermediate-compact-form .intermediate-form-grid textarea {
  min-height: 42px !important;
}

.intermediate-subsection-title {
  margin: 8px 0 5px;
}

.intermediate-calculation-panel {
  margin-top: 7px;
  padding: 7px;
  border-radius: 8px;
}

.intermediate-calculation-grid {
  gap: 6px;
}

.intermediate-calculation-grid label {
  grid-template-columns: minmax(76px, 96px) minmax(0, 1fr);
  border-radius: 7px;
}

.intermediate-calculation-grid label > span,
.intermediate-calculation-grid input[readonly] {
  min-height: 34px;
  padding: 5px 7px;
  font-size: 12px;
}

.intermediate-formula-note {
  margin-top: 6px;
  padding: 5px 8px;
  font-size: 11px;
  line-height: 1.35;
}

.intermediate-form-actions {
  min-height: 38px;
  margin-top: 6px;
  padding-top: 5px;
}

.intermediate-form-actions > span {
  margin-right: auto;
  color: #5d7180;
  font-size: 11.5px;
}

.intermediate-live-ledger,
.intermediate-workshop-panel {
  margin-top: 8px;
}

.compact-daily-table th,
.compact-daily-table td,
.intermediate-tank-table th,
.intermediate-tank-table td {
  padding: 5px 7px !important;
  line-height: 1.28;
  vertical-align: middle;
}

.compact-daily-table td small {
  display: block;
  margin-top: 2px;
  color: #71818b;
}

.daily-production-modal {
  width: min(1440px, calc(100vw - 20px));
  height: min(900px, calc(100vh - 20px));
  max-height: calc(100vh - 20px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.daily-production-scroll {
  min-height: 0;
  overflow: auto;
  padding: 0 12px 12px;
}

.compact-daily-form {
  display: grid;
  gap: 7px;
}

.daily-form-completeness {
  position: sticky;
  top: 0;
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(250px, .4fr) minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 6px 10px;
  border: 1px solid #e0bd67;
  border-radius: 9px;
  background: rgba(255, 249, 231, .96);
  backdrop-filter: blur(8px);
}

.daily-form-completeness.is-complete {
  border-color: #94ccb0;
  background: rgba(237, 249, 242, .96);
}

.daily-form-completeness > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.daily-form-completeness strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #6f4b0a;
}

.daily-form-completeness.is-complete strong {
  color: #17613d;
}

.daily-form-completeness p {
  margin: 0;
  color: #6c5d3f;
  font-size: 11.5px;
  line-height: 1.35;
}

.compact-daily-section,
.compact-daily-ledger {
  margin: 0 !important;
  padding: 8px !important;
  border-radius: 10px !important;
}

.compact-daily-section > .form-section-title,
.compact-daily-ledger > .form-section-title {
  min-height: 30px;
  margin: -8px -8px 6px;
  padding: 5px 9px;
}

.compact-daily-section > .form-section-title strong,
.compact-daily-ledger > .form-section-title strong {
  font-size: 12.5px;
}

.compact-daily-section > .form-section-title span,
.compact-daily-ledger > .form-section-title span {
  font-size: 11px;
}

.compact-daily-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.compact-daily-form .compact-daily-grid > label:not(.sheet-field) {
  grid-template-columns: minmax(92px, 112px) minmax(72px, 1fr);
  min-height: 35px;
}

.compact-daily-form .compact-daily-grid > label:not(.sheet-field) > span {
  padding: 5px 7px;
  font-size: 11.5px;
  line-height: 1.2;
}

.compact-daily-form .compact-daily-grid > label:not(.sheet-field) :is(input, select, textarea) {
  min-height: 34px;
  padding: 5px 7px;
  font-size: 12.5px;
}

.daily-allocation-preview {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid #b9d6ca;
  border-radius: 8px;
  background: #f3faf6;
  color: #315f4d;
  font-size: 11.5px;
}

.daily-allocation-preview span,
.daily-allocation-preview strong {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border-radius: 999px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(48, 111, 84, .14);
}

.daily-allocation-preview span b {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  background: #2f7a5b;
  color: #fff;
  font-size: 10px;
}

.daily-allocation-preview strong {
  margin-left: auto;
  color: #174d37;
}

.daily-allocation-preview.is-warning {
  border-color: #e4a04a;
  background: #fff7e9;
  color: #8a4c0d;
}

.daily-allocation-preview.is-warning strong {
  color: #a23a2b;
}

.compact-daily-form :is(input, select).is-missing {
  border-color: #d99722 !important;
  background: #fff9e8 !important;
  box-shadow: inset 3px 0 0 #d99722;
}

.daily-production-split {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(360px, .8fr);
  gap: 7px;
}

.daily-production-split .compact-daily-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-remark {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  margin-top: 6px;
  border: 1px solid var(--form-line);
}

.compact-remark > span {
  display: grid;
  place-items: center;
  padding: 5px 7px;
  background: var(--form-label-bg);
  font-size: 11.5px;
  font-weight: 700;
}

.compact-remark textarea {
  min-height: 42px !important;
  padding: 6px 8px;
  border: 0;
  font-size: 12px;
}

.compact-daily-actions {
  position: sticky;
  bottom: 0;
  z-index: 4;
  min-height: 44px;
  margin: 0;
  padding: 6px 9px;
  border: 1px solid #cbdbe5;
  border-radius: 9px;
  background: rgba(248, 252, 253, .96);
  backdrop-filter: blur(8px);
}

.compact-daily-actions > span {
  margin-right: auto;
  color: #5f7380;
  font-size: 11.5px;
}

@media (max-width: 1100px) {
  .daily-coverage-bar,
  .daily-form-completeness,
  .daily-production-split {
    grid-template-columns: 1fr;
  }

  .daily-missing-tank-list,
  .daily-record-chips {
    justify-content: flex-start;
  }

  .intermediate-summary-grid,
  .compact-daily-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .intermediate-summary-grid,
  .compact-daily-grid,
  .daily-production-split .compact-daily-grid {
    grid-template-columns: 1fr;
  }
}

/* 每日生产中间体统计 v50：任务清单 + 单罐填报工作台 */
.intermediate-inventory-modal {
  width: min(1320px, calc(100vw - 28px));
  height: min(900px, calc(100vh - 24px));
  background: #f3f7f9;
  border-radius: 15px;
  box-shadow: 0 24px 70px rgba(17, 43, 58, .24);
}

.intermediate-inventory-modal > .modal-header {
  min-height: 68px;
  padding: 9px 18px;
  border-bottom: 1px solid #d9e5eb;
  background: #fff;
}

.intermediate-inventory-scroll {
  padding: 10px 14px 18px;
}

.intermediate-inventory-modal .daily-coverage-bar {
  min-height: 48px;
  margin: 0 0 8px;
  padding: 7px 12px;
  border-color: #e2b74c;
  border-radius: 10px;
  background: linear-gradient(90deg, #fff9e9 0%, #fffdf7 100%);
}

.intermediate-inventory-modal .daily-coverage-bar.is-complete {
  border-color: #85c8a6;
  background: linear-gradient(90deg, #ecf9f2 0%, #f8fcfa 100%);
}

.intermediate-inventory-modal .daily-coverage-main > strong {
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

.intermediate-summary-hero {
  align-items: center;
  grid-template-columns: minmax(250px, .66fr) minmax(0, 1.6fr);
  margin: 0 0 9px;
  padding: 9px 11px;
  border: 1px solid #cfe1ea;
  background: linear-gradient(115deg, #edf7fb 0%, #f9fcfd 100%);
}

.intermediate-summary-hero h3 {
  margin: 2px 0;
  color: #153d53;
  font-size: 15px;
}

.intermediate-summary-hero p {
  margin: 0;
  color: #647985;
  font-size: 11px;
}

.intermediate-summary-grid article {
  min-height: 57px;
  border: 1px solid #d7e5eb;
  background: rgba(255, 255, 255, .9);
}

.intermediate-summary-grid article:nth-child(2) {
  border-color: #efd28b;
  background: #fffaf0;
}

.intermediate-entry-grid {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  grid-template-rows: minmax(0, auto) auto;
  align-items: start;
  gap: 9px 11px;
}

.intermediate-task-rail {
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
  border: 1px solid #cbdde6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(34, 78, 101, .06);
}

.intermediate-task-rail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 12px 9px;
  background: linear-gradient(135deg, #194f6c 0%, #287492 100%);
  color: #fff;
}

.intermediate-task-rail > header > div {
  display: grid;
  gap: 3px;
}

.intermediate-task-rail > header span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  opacity: .88;
}

.intermediate-task-rail > header strong {
  font-size: 17px;
  line-height: 1.2;
}

.intermediate-task-rail > header small {
  padding-top: 2px;
  font-size: 10.5px;
  opacity: .82;
}

.intermediate-task-progress {
  height: 4px;
  background: #dce9ee;
}

.intermediate-task-progress > span {
  display: block;
  width: var(--coverage);
  height: 100%;
  background: #46b87a;
  transition: width .25s ease;
}

.intermediate-task-list {
  display: grid;
  gap: 5px;
  max-height: 342px;
  padding: 8px;
  overflow: auto;
}

.intermediate-task-list button {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 48px;
  padding: 6px 8px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: #f7fafb;
  color: #244755;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.intermediate-task-list button:hover {
  border-color: #9dc5d6;
  background: #eef7fa;
}

.intermediate-task-list button.is-current {
  border-color: #2b7fa0;
  background: #eaf6fa;
  box-shadow: inset 3px 0 #2b7fa0;
}

.intermediate-task-list button.is-done {
  background: #f1faf5;
  color: #2b6f4d;
}

.intermediate-task-list .task-state {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid #dfb650;
  border-radius: 50%;
  background: #fffaf0;
  color: #a76c00;
}

.intermediate-task-list button.is-done .task-state {
  border-color: #83c49f;
  background: #e8f7ee;
  color: #1d7549;
}

.intermediate-task-list .task-name {
  display: grid;
  min-width: 0;
}

.intermediate-task-list .task-name strong {
  overflow: hidden;
  font-size: 12.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.intermediate-task-list .task-name small {
  overflow: hidden;
  color: #70818a;
  font-size: 10.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.intermediate-task-list .task-workshop {
  padding: 3px 6px;
  border-radius: 999px;
  background: #e4eef3;
  color: #526c79;
  font-size: 10px;
  white-space: nowrap;
}

.intermediate-task-empty {
  display: grid;
  place-items: center;
  gap: 5px;
  min-height: 144px;
  padding: 18px;
  color: #6d818b;
  text-align: center;
}

.intermediate-task-empty svg {
  color: #7da5b7;
}

.intermediate-task-empty strong {
  color: #355666;
  font-size: 13px;
}

.intermediate-task-empty span {
  max-width: 190px;
  font-size: 11px;
  line-height: 1.45;
}

.intermediate-task-rail > footer {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 9px 10px;
  border-top: 1px solid #e2eaee;
  background: #f8fafb;
  color: #607580;
  font-size: 10.5px;
  line-height: 1.4;
}

.intermediate-task-rail > footer svg {
  flex: 0 0 auto;
  margin-top: 1px;
  color: #25708f;
}

.intermediate-measurement-form {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  overflow: hidden;
  border: 1px solid #cbdde6;
  background: #fff;
  box-shadow: 0 8px 22px rgba(34, 78, 101, .07);
}

.intermediate-measurement-form .form-section {
  padding: 0 11px 10px;
}

.intermediate-measurement-form .intermediate-form-title {
  margin: 0 -11px 9px;
  padding: 8px 11px;
  border-bottom: 1px solid #d9e7ed;
  background: #f4f9fb;
}

.intermediate-current-tank {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0 0 9px;
  padding: 9px 10px;
  border: 1px solid #9bc8d9;
  border-radius: 10px;
  background: linear-gradient(105deg, #e9f6fa 0%, #f8fcfd 76%);
}

.intermediate-current-tank-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #267895;
  color: #fff;
}

.intermediate-current-tank > div:nth-child(2) {
  display: grid;
  gap: 1px;
}

.intermediate-current-tank > div:nth-child(2) > span {
  color: #66808d;
  font-size: 10.5px;
}

.intermediate-current-tank strong {
  color: #173f53;
  font-size: 15px;
}

.intermediate-current-tank small {
  color: #687d87;
  font-size: 10.5px;
}

.intermediate-current-status {
  padding: 5px 9px;
  border: 1px solid #e4ba57;
  border-radius: 999px;
  background: #fff9e8;
  color: #936100;
  font-size: 10.5px;
  font-weight: 700;
}

.intermediate-current-status.is-done {
  border-color: #8bc8a6;
  background: #ebf8f1;
  color: #216f49;
}

.intermediate-measurement-form .intermediate-form-grid {
  gap: 6px;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  min-height: 58px;
  overflow: hidden;
  border: 1px solid #d5e2e8;
  border-radius: 8px;
  background: #fff;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field):focus-within {
  border-color: #3d8eaa;
  box-shadow: 0 0 0 2px rgba(61, 142, 170, .12);
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) > span {
  min-height: 25px;
  padding: 5px 8px 2px;
  border: 0;
  background: #f6f9fa;
  color: #4e6875;
  font-size: 10.5px;
  font-weight: 650;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) > span small {
  display: inline;
  margin: 0 0 0 4px;
  color: #70838c;
  font-size: 9.5px;
  font-weight: 500;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) :is(input, select, textarea) {
  min-height: 31px;
  padding: 4px 8px 6px;
  border: 0;
  background: #fff;
  color: #183b4c;
  font-size: 12.5px;
  font-weight: 650;
}

.intermediate-measurement-form .intermediate-form-grid > label.span-4 {
  min-height: 58px;
}

.intermediate-measurement-form .intermediate-form-grid textarea {
  min-height: 34px !important;
  resize: vertical;
}

.intermediate-measurement-meta {
  margin-bottom: 7px;
}

.intermediate-measurement-meta > label:not(.sheet-field) {
  height: 56px;
}

.intermediate-measurement-inputs > label:not(.sheet-field):not(.span-4) {
  height: 58px;
}

.intermediate-measurement-inputs > label.span-4 {
  height: 54px;
}

.intermediate-subsection-title {
  margin: 8px 0 6px;
  padding: 0 2px;
}

.intermediate-subsection-title strong {
  color: #214b60;
  font-size: 12.5px;
}

.intermediate-subsection-title span {
  color: #7d6a3c;
  font-size: 10.5px;
}

.intermediate-calculation-panel {
  padding: 6px;
  border: 1px solid #bcdce8;
  background: #edf8fb;
}

.intermediate-calculation-grid label {
  height: 36px;
  overflow: hidden;
  border: 1px solid #c5dce6;
  background: #fff;
}

.intermediate-calculation-grid label > span {
  background: #dceff5;
  color: #315d71;
}

.intermediate-calculation-grid input[readonly] {
  color: #174e68;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.intermediate-formula-note {
  border-color: #c8dce5;
  background: #f8fbfc;
  color: #667b85;
}

.intermediate-measurement-form .intermediate-form-actions {
  min-height: 46px;
  margin: 7px -11px -10px;
  padding: 8px 11px;
  border-top: 1px solid #dce7ec;
  background: #f8fafb;
}

.intermediate-measurement-form .intermediate-form-actions .primary-button {
  min-width: 184px;
  min-height: 36px;
  border-radius: 8px;
  box-shadow: 0 5px 12px rgba(25, 104, 139, .18);
}

.intermediate-tank-maintenance {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  border-radius: 10px;
  box-shadow: none;
}

.intermediate-tank-maintenance > summary {
  min-height: 40px;
  background: #fff;
}

.intermediate-live-ledger {
  margin-top: 10px;
  border-color: #d1e0e7;
  border-radius: 11px;
  background: #fff;
}

.intermediate-workshop-panel {
  overflow: hidden;
  border: 1px solid #dbe6eb;
  border-radius: 9px;
}

.intermediate-workshop-panel .form-section-title {
  margin: 0;
  padding: 7px 9px;
  background: #f5f9fa;
}

@media (max-width: 1120px) {
  .intermediate-entry-grid {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .intermediate-measurement-form .intermediate-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .intermediate-measurement-form .intermediate-form-grid > .span-4,
  .intermediate-measurement-form .intermediate-form-grid > .span-2 {
    grid-column: span 2;
  }
}

@media (max-width: 820px) {
  .intermediate-entry-grid {
    grid-template-columns: 1fr;
  }

  .intermediate-task-rail,
  .intermediate-measurement-form,
  .intermediate-tank-maintenance {
    grid-column: 1;
    grid-row: auto;
  }

  .intermediate-task-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 190px;
  }

  .intermediate-summary-hero,
  .intermediate-inventory-modal .daily-coverage-bar {
    grid-template-columns: 1fr;
  }
}

.employee-contract-renewal-modal { max-width: 900px; }
.contract-renewal-employee { display: flex; align-items: center; gap: 12px; padding: 15px 17px; border: 1px solid #bfdbfe; border-radius: 14px; background: linear-gradient(135deg,#eff6ff,#eef2ff); }
.contract-renewal-employee > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: #fff; background: #2563eb; }
.contract-renewal-employee > div { display: grid; flex: 1; gap: 3px; }
.contract-renewal-employee small { color: #64748b; }
.contract-renewal-employee em { padding: 5px 9px; border-radius: 999px; color: #991b1b; background: #fee2e2; font-style: normal; font-weight: 700; }

/* 每日生产中间体统计 v51：宽幅储罐档案与可达的底部台账 */
.intermediate-inventory-scroll {
  padding-bottom: 64px;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}

.intermediate-entry-grid {
  position: relative;
}

.intermediate-tank-maintenance[open] {
  position: absolute;
  z-index: 12;
  grid-column: 1 / -1;
  grid-row: 1 / -1;
  top: 0;
  right: 0;
  left: 0;
  max-height: min(640px, calc(100vh - 210px));
  overflow: auto;
  border: 1px solid #78aec3;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 22px 54px rgba(20, 55, 72, .28);
}

.intermediate-tank-maintenance[open] > summary {
  position: sticky;
  top: 0;
  z-index: 3;
  min-height: 48px;
  padding: 8px 14px;
  border-bottom: 1px solid #c8dde6;
  background: linear-gradient(100deg, #e8f5fa 0%, #f8fbfc 100%);
}

.intermediate-tank-maintenance[open] > summary > span {
  color: #174c64;
  font-size: 14px;
}

.intermediate-tank-maintenance[open] > summary small {
  color: transparent;
  font-size: 0;
}

.intermediate-tank-maintenance[open] > summary small::after {
  content: "录入完成后，点击此处收起";
  color: #55727f;
  font-size: 11.5px;
}

.intermediate-tank-maintenance[open] .intermediate-tank-form {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.intermediate-tank-maintenance[open] .intermediate-tank-form .form-section {
  padding: 14px;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > label:not(.sheet-field) {
  grid-template-columns: minmax(105px, 126px) minmax(150px, 1fr);
  min-height: 46px;
  overflow: hidden;
  border: 1px solid #cbdde5;
  border-radius: 8px;
  background: #fff;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > label:not(.sheet-field):focus-within {
  border-color: #3589a7;
  box-shadow: 0 0 0 3px rgba(53, 137, 167, .11);
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > label:not(.sheet-field) > span {
  display: grid;
  align-content: center;
  min-height: 44px;
  padding: 7px 10px;
  border-right: 1px solid #d5e3e9;
  background: #f1f7f9;
  color: #355b6d;
  font-size: 12px;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > label:not(.sheet-field) :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 0;
  background: #fff;
  color: #173c4e;
  font-size: 14px;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > .span-4 {
  grid-column: 1 / -1;
}

.intermediate-tank-maintenance[open] .intermediate-form-grid > .span-4 textarea {
  min-height: 68px !important;
  resize: vertical;
}

.intermediate-tank-maintenance[open] .intermediate-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  min-height: 52px;
  margin: 10px -14px -14px;
  padding: 8px 14px;
  border-top: 1px solid #d5e3e9;
  background: rgba(248, 251, 252, .96);
  backdrop-filter: blur(8px);
}

.intermediate-tank-maintenance[open] .intermediate-form-actions .secondary-button {
  min-width: 180px;
  min-height: 36px;
}

.intermediate-recent-ledger {
  margin-top: 10px;
  margin-bottom: 24px;
  padding: 10px;
  border-color: #cfdee6;
  border-radius: 11px;
  background: #fff;
}

.intermediate-ledger-scroll {
  max-height: min(360px, calc(100vh - 330px));
  overflow: auto;
  border: 1px solid #d5e2e8;
  border-radius: 8px;
  scrollbar-gutter: stable;
}

.intermediate-ledger-scroll .data-table {
  min-width: 1080px;
}

.intermediate-ledger-scroll .data-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  border-bottom: 1px solid #bfd2dc;
  background: #edf4f7;
  box-shadow: 0 1px 0 #bfd2dc;
}

.intermediate-ledger-scroll .data-table tbody tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 980px) {
  .intermediate-tank-maintenance[open] .intermediate-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .intermediate-tank-maintenance[open] {
    position: fixed;
    inset: 10px;
    max-height: none;
  }

  .intermediate-tank-maintenance[open] .intermediate-form-grid {
    grid-template-columns: 1fr;
  }

  .intermediate-tank-maintenance[open] .intermediate-form-grid > .span-4 {
    grid-column: 1;
  }
}

/* 出生年月使用独立年、月下拉，兼容不完整支持原生 month 的浏览器 */
.employee-birth-month-field{position:relative}.business-form .form-grid-4>.employee-birth-month-field>.employee-birth-month-control{min-width:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:5px;padding:4px;background:#fff}.business-form .form-grid-4>.employee-birth-month-field>.employee-birth-month-control>select{min-width:0;min-height:32px;padding:0 7px;border:1px solid #c8d7df;border-radius:6px;background:#fff;color:#233e50;font-size:11px}

.canteen-catalog-create{grid-template-columns:minmax(220px,1fr) minmax(170px,.8fr) auto}
.canteen-catalog-groups{grid-template-columns:1fr}
.canteen-menu-memory-field{align-items:start!important}
.canteen-menu-combobox{position:relative;display:block;width:100%}
.canteen-menu-combobox>input{width:100%;padding-right:36px!important}
.canteen-menu-combobox>svg{position:absolute;right:12px;top:50%;color:#527087;pointer-events:none;transform:translateY(-50%)}
.canteen-menu-combobox:focus-within>svg{color:#176b87}
.canteen-field-hint{position:relative}
.canteen-field-hint-tip{position:absolute;left:12px;top:calc(100% + 5px);z-index:30;display:flex;align-items:flex-start;gap:4px;max-width:min(210px,calc(100vw - 48px));padding:5px 7px;border:1px solid rgba(79,112,138,.2);border-radius:6px;background:#17324a;color:#fff;font-size:10px;font-weight:500;line-height:1.3;letter-spacing:0;box-shadow:0 6px 16px rgba(23,50,74,.18);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-3px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}
.canteen-field-hint-tip::before{content:"";position:absolute;left:18px;top:-5px;width:9px;height:9px;background:#17324a;transform:rotate(45deg)}
.canteen-field-hint-tip svg{position:relative;z-index:1;flex:0 0 auto;margin-top:1px}
.canteen-field-hint:hover>.canteen-field-hint-tip,.canteen-field-hint:focus-within>.canteen-field-hint-tip{opacity:1;visibility:visible;transform:translateY(0)}
.canteen-menu-memory-field>.canteen-field-hint-tip{left:calc(25% + 12px)}

@media(max-width:1180px){.canteen-catalog-create{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.canteen-catalog-create{grid-template-columns:1fr}.canteen-menu-memory-field>.canteen-field-hint-tip{left:12px}}

/* Executive-only company operating command center */
.executive-overview {
  width: calc(100% - 4cm);
  max-width: none;
  margin: 14px 2cm 34px;
  display: grid;
  gap: 16px;
  color: #183347;
}

.executive-command-hero {
  position: relative;
  min-height: 172px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  align-items: center;
  gap: 24px;
  padding: 19px 32px;
  border: 1px solid #a8d1d5;
  border-radius: 20px;
  color: #123f54;
  background:
    radial-gradient(circle at 88% 12%, rgba(51, 177, 164, 0.28), transparent 31%),
    radial-gradient(circle at 48% 118%, rgba(58, 139, 188, 0.18), transparent 43%),
    linear-gradient(132deg, #f0fafb 0%, #d9efee 52%, #bfdfde 100%);
  box-shadow: 0 16px 38px rgba(38, 94, 111, 0.15);
}

.executive-command-hero::before,
.executive-command-hero::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(42, 148, 151, 0.13);
  border-radius: 50%;
  pointer-events: none;
}

.executive-command-hero::before {
  width: 430px;
  height: 430px;
  right: -105px;
  top: -208px;
}

.executive-command-hero::after {
  width: 275px;
  height: 275px;
  right: -35px;
  top: -135px;
}

.executive-hero-copy,
.executive-health {
  position: relative;
  z-index: 1;
}

.executive-live-line {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 7px;
}

.executive-live-line > span,
.executive-live-line > b {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
}

.executive-live-line > span {
  padding: 7px 10px;
  border: 1px solid #b7e2d6;
  border-radius: 999px;
  background: rgba(54, 184, 148, 0.1);
  color: #187d62;
}

.executive-live-line > span i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #55e0b2;
  box-shadow: 0 0 0 5px rgba(85, 224, 178, 0.12);
}

.executive-live-line > b {
  color: #4e7788;
}

.executive-hero-copy > small {
  display: block;
  color: #3c899d;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.executive-hero-copy h2 {
  margin: 4px 0 6px;
  font-size: clamp(25px, 1.9vw, 32px);
  line-height: 1.15;
  letter-spacing: 0.04em;
  color: #113f55;
}

.executive-hero-copy > p {
  max-width: 790px;
  margin: 0;
  color: #557888;
  font-size: 12px;
  line-height: 1.55;
}

.executive-hero-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(110px, 1fr));
  gap: 8px;
  max-width: 760px;
  margin-top: 10px;
}

.executive-hero-facts > span {
  padding: 6px 11px;
  border-left: 2px solid #43bba4;
  background: linear-gradient(90deg, rgba(255,255,255,0.8), rgba(255,255,255,0.12));
}

.executive-hero-facts small,
.executive-hero-facts strong {
  display: block;
}

.executive-hero-facts small {
  margin-bottom: 2px;
  color: #648593;
  font-size: 10px;
}

.executive-hero-facts strong {
  color: #153f54;
  font-size: 14px;
}

.executive-health {
  display: flex;
  align-items: center;
  flex-direction: column;
  text-align: center;
}

.executive-health-dial {
  --health-score: 0;
  width: 108px;
  height: 108px;
  padding: 7px;
  border-radius: 50%;
  background: conic-gradient(#34b997 calc(var(--health-score) * 1%), rgba(61, 130, 145, 0.13) 0);
  box-shadow: 0 0 0 1px rgba(65, 164, 163, 0.2), 0 16px 34px rgba(40, 105, 118, 0.16);
}

.executive-health-dial > div {
  width: 100%;
  height: 100%;
  display: grid;
  place-content: center;
  border: 1px solid #cce5e5;
  border-radius: 50%;
  background: rgba(255,255,255,0.94);
}

.executive-health-dial strong {
  font-size: 33px;
  line-height: 1;
  color: #123f54;
}

.executive-health-dial span {
  margin-top: 3px;
  color: #638490;
  font-size: 11px;
}

.executive-health-level {
  margin-top: 6px;
  color: #16816a;
  font-size: 14px;
  letter-spacing: 0.16em;
}

.executive-health > small {
  margin-top: 3px;
  color: #6a8996;
  font-size: 10px;
}

.executive-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 11px;
}

.executive-kpi-card {
  position: relative;
  min-width: 0;
  min-height: 83px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid #d2e1e8;
  border-radius: 13px;
  background: linear-gradient(150deg, #fff, #f7fafc);
  box-shadow: 0 8px 22px rgba(26, 63, 87, 0.065);
}

.executive-kpi-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 54px;
  height: 3px;
  border-radius: 3px 0 16px;
  background: #a9bbc8;
}

.executive-kpi-card.tone-good::after { background: #24a97b; }
.executive-kpi-card.tone-warning::after { background: #e2a33e; }
.executive-kpi-card.tone-danger::after { background: #d5574d; }
.executive-kpi-card.tone-blue::after { background: #2d78c7; }

.executive-kpi-icon,
.executive-pulse-icon {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #eaf3f7;
  color: #1e6a83;
}

.executive-pulse-icon {
  width: 36px;
  height: 36px;
}

.executive-kpi-card > div {
  min-width: 0;
}

.executive-kpi-card small,
.executive-kpi-card strong,
.executive-kpi-card p {
  display: block;
}

.executive-kpi-card small {
  color: #6f8391;
  font-size: 10px;
  font-weight: 700;
}

.executive-kpi-card strong {
  margin-top: 3px;
  color: #173c52;
  font-size: clamp(18px, 1.25vw, 23px);
  line-height: 1.1;
}

.executive-kpi-card p {
  margin: 4px 0 0;
  color: #7b8d99;
  font-size: 9px;
  line-height: 1.3;
}

.executive-operating-matrix {
  overflow: hidden;
  border: 1px solid #d6e5eb;
  border-radius: 19px;
  background: linear-gradient(180deg, #fff, #f8fbfc);
  box-shadow: 0 10px 28px rgba(30, 70, 91, 0.07);
}

.executive-operating-matrix > header {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 19px;
  border-bottom: 1px solid #e4edf1;
  background: linear-gradient(90deg, #f7fcfd, #fff);
}

.executive-operating-matrix > header small {
  display: block;
  margin-bottom: 3px;
  color: #218094;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.executive-operating-matrix > header h3 {
  display: inline;
  margin: 0;
  color: #183f55;
  font-size: 17px;
}

.executive-operating-matrix > header p {
  display: inline;
  margin: 0 0 0 12px;
  color: #81939d;
  font-size: 10px;
}

.executive-operating-matrix > header > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #518092;
  font-size: 10px;
  font-weight: 700;
}

.executive-matrix-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.executive-matrix-card {
  min-width: 0;
  padding: 16px 15px 14px;
  border-right: 1px solid #e5edf1;
  background: #fff;
}

.executive-matrix-card:last-child {
  border-right: 0;
}

.executive-matrix-heading {
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr) 26px;
  align-items: center;
  gap: 9px;
  padding-bottom: 13px;
}

.executive-matrix-heading > span {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #e9f4fb;
  color: #337aa8;
}

.executive-matrix-card.tone-cyan .executive-matrix-heading > span { background: #e8f7f8; color: #1e8794; }
.executive-matrix-card.tone-violet .executive-matrix-heading > span { background: #f0effb; color: #7162b2; }
.executive-matrix-card.tone-amber .executive-matrix-heading > span { background: #fff4e4; color: #ad711d; }
.executive-matrix-card.tone-green .executive-matrix-heading > span { background: #eaf7ef; color: #32845c; }

.executive-matrix-heading > div {
  min-width: 0;
}

.executive-matrix-heading strong,
.executive-matrix-heading small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-matrix-heading strong {
  color: #21475c;
  font-size: 13px;
}

.executive-matrix-heading small {
  margin-top: 3px;
  color: #8a9aa4;
  font-size: 9px;
}

.executive-matrix-heading button {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #d8e5ea;
  border-radius: 8px;
  background: #f8fbfc;
  color: #477d90;
}

.executive-matrix-heading button:hover {
  border-color: #9dc8d1;
  background: #eef8fa;
}

.executive-matrix-items {
  display: grid;
}

.executive-matrix-items > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 9px 2px;
  border-top: 1px dashed #e6edf1;
}

.executive-matrix-items > div > span,
.executive-matrix-items > div > strong {
  min-width: 0;
}

.executive-matrix-items > div > span {
  color: #526f7f;
  font-size: 10px;
  font-weight: 700;
}

.executive-matrix-items > div > span small {
  display: block;
  margin-top: 3px;
  overflow: hidden;
  color: #95a3aa;
  font-size: 9px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-matrix-items > div > strong {
  color: #153f55;
  font-size: 18px;
  text-align: right;
}

.executive-matrix-items > div > strong small {
  margin-left: 3px;
  color: #83959f;
  font-size: 9px;
  font-weight: 600;
}

.executive-main-grid,
.executive-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(390px, 0.85fr);
  gap: 14px;
}

.executive-panel,
.executive-pulse-section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d9e5ec;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 9px 26px rgba(30, 65, 89, 0.065);
}

.executive-panel > header,
.executive-pulse-section > header {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid #e6edf2;
}

.executive-panel header small,
.executive-pulse-section header small {
  display: block;
  margin-bottom: 3px;
  color: #218094;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.executive-panel header h3,
.executive-pulse-section header h3 {
  margin: 0;
  color: #1a3c51;
  font-size: 16px;
}

.executive-chart-legend {
  display: flex;
  gap: 14px;
  color: #70818d;
  font-size: 10px;
}

.executive-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.executive-chart-legend i {
  width: 14px;
  height: 3px;
  border-radius: 3px;
}

.executive-chart-legend .sales { background: #2e80d0; }
.executive-chart-legend .purchase { background: #28a57b; }

.executive-line-canvas {
  height: 255px;
}

.executive-data-empty {
  min-height: 255px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 7px;
  padding: 24px;
  text-align: center;
  color: #9aabb5;
  background: linear-gradient(180deg, #fbfdfe, #f6fafc);
}

.executive-data-empty strong {
  color: #536f80;
  font-size: 14px;
}

.executive-data-empty span {
  max-width: 360px;
  font-size: 11px;
  line-height: 1.6;
}

.executive-risk-count,
.executive-decision-panel > header > span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff4e7;
  color: #a66119;
  font-size: 11px;
  font-weight: 800;
}

.executive-risk-list {
  display: grid;
  padding: 6px 16px 13px;
}

.executive-risk-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 10px;
  padding: 12px 2px;
  border-bottom: 1px solid #edf2f5;
}

.executive-risk-item:last-child {
  border-bottom: 0;
}

.executive-risk-mark {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eff4f7;
  color: #69808e;
  font-size: 10px;
  font-weight: 900;
}

.executive-risk-item.severity-high .executive-risk-mark {
  background: #fff0ed;
  color: #c5483e;
}

.executive-risk-item.severity-medium .executive-risk-mark {
  background: #fff6e8;
  color: #ae6d17;
}

.executive-risk-item > div {
  min-width: 0;
}

.executive-risk-item > div strong,
.executive-risk-item > div p {
  display: block;
}

.executive-risk-item > div strong {
  color: #26495e;
  font-size: 12px;
}

.executive-risk-item > div p {
  margin: 4px 0 0;
  color: #7c8d98;
  font-size: 10px;
  line-height: 1.45;
}

.executive-risk-item > b {
  color: #24495f;
  font-size: 17px;
  text-align: right;
}

.executive-risk-item > b small {
  display: block;
  margin-top: 2px;
  color: #8a9aa4;
  font-size: 9px;
  font-weight: 600;
}

.executive-risk-item > button {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #d9e5eb;
  border-radius: 9px;
  background: #f7fafb;
  color: #387289;
}

.executive-pulse-section > header > p {
  margin: 0;
  color: #8999a3;
  font-size: 10px;
}

.executive-pulse-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
}

.executive-pulse-card {
  min-width: 0;
  min-height: 150px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 16px;
  align-items: start;
  gap: 10px;
  padding: 18px 15px;
  border: 0;
  border-right: 1px solid #e7eef2;
  background: #fff;
  text-align: left;
  transition: background 0.18s, transform 0.18s;
}

.executive-pulse-card:last-child { border-right: 0; }
.executive-pulse-card:hover:not(.is-locked) { background: #f6fbfc; }
.executive-pulse-card.is-locked { cursor: default; opacity: 0.72; }
.executive-pulse-card > span:nth-child(2) { min-width: 0; }
.executive-pulse-card small,
.executive-pulse-card strong,
.executive-pulse-card p { display: block; }
.executive-pulse-card small { min-height: 28px; color: #748894; font-size: 10px; line-height: 1.4; }
.executive-pulse-card strong { margin-top: 8px; color: #183e55; font-size: 23px; }
.executive-pulse-card p { margin: 7px 0 0; color: #8596a0; font-size: 10px; line-height: 1.5; }
.executive-pulse-card > i { color: #8da3ae; }
.executive-pulse-card.tone-good .executive-pulse-icon { background: #e9f7f1; color: #21845f; }
.executive-pulse-card.tone-warning .executive-pulse-icon { background: #fff5e6; color: #ad701e; }
.executive-pulse-card.tone-danger .executive-pulse-icon { background: #fff0ed; color: #c55046; }
.executive-pulse-card.tone-muted .executive-pulse-icon { background: #f0f3f5; color: #7b8d98; }

.executive-lower-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr);
}

.executive-decision-list {
  display: grid;
  padding: 5px 16px 12px;
}

.executive-decision-list > button {
  min-width: 0;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  padding: 12px 3px;
  border: 0;
  border-bottom: 1px solid #edf2f5;
  background: transparent;
  text-align: left;
}

.executive-decision-list > button:last-child { border-bottom: 0; }
.executive-decision-list > button:hover { background: #f8fbfc; }
.executive-decision-module {
  overflow: hidden;
  padding: 6px 8px;
  border-radius: 8px;
  background: #edf6f8;
  color: #28738a;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.executive-decision-list > button > span:nth-child(2) { min-width: 0; }
.executive-decision-list > button strong { display: block; overflow: hidden; color: #28495d; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.executive-decision-list > button small { display: block; margin-top: 5px; overflow: hidden; color: #8797a1; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.executive-decision-list > button > i { color: #91a3ad; }

.executive-decision-empty {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #43a178;
}

.executive-decision-empty strong,
.executive-decision-empty span { display: block; }
.executive-decision-empty strong { color: #446577; font-size: 13px; }
.executive-decision-empty span { margin-top: 4px; color: #8798a2; font-size: 10px; }

.executive-source-panel > header > strong {
  color: #167c8f;
  font-size: 23px;
}

.executive-coverage-track {
  height: 8px;
  overflow: hidden;
  margin: 18px 18px 10px;
  border-radius: 8px;
  background: #eaf0f3;
}

.executive-coverage-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2391a5, #39bd91);
}

.executive-source-panel > p {
  margin: 0 18px 9px;
  color: #798d99;
  font-size: 10px;
  line-height: 1.55;
}

.executive-source-panel ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 13px;
  margin: 0;
  padding: 6px 18px 18px;
  list-style: none;
}

.executive-source-panel li {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #8c9ba4;
  font-size: 10px;
}

.executive-source-panel li.ready { color: #29926b; }
.executive-source-panel li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.executive-source-panel li b { margin-left: auto; color: inherit; font-size: 9px; }

.executive-approval-structure {
  margin: 0 18px 18px;
  padding: 13px 14px;
  border: 1px solid #e1e9ed;
  border-radius: 13px;
  background: #f9fbfc;
}

.executive-approval-structure > div {
  margin-bottom: 10px;
}

.executive-approval-structure > div small,
.executive-approval-structure > div strong {
  display: block;
}

.executive-approval-structure > div small {
  color: #2d8395;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.executive-approval-structure > div strong {
  margin-top: 3px;
  color: #315468;
  font-size: 12px;
}

.executive-approval-structure > section {
  margin-top: 9px;
}

.executive-approval-structure > section > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #617a88;
  font-size: 9px;
}

.executive-approval-structure > section > span strong {
  color: #345669;
  font-size: 10px;
}

.executive-approval-structure > section > i {
  height: 5px;
  display: block;
  overflow: hidden;
  margin-top: 4px;
  border-radius: 5px;
  background: #e8eef1;
}

.executive-approval-structure > section > i em {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: #3987be;
}

.executive-approval-structure > section.tone-amber > i em { background: #dfa13e; }
.executive-approval-structure > section.tone-green > i em { background: #37a877; }
.executive-approval-structure > section.tone-red > i em { background: #d95c53; }

.executive-overview-locked {
  min-height: 58vh;
  place-content: center;
}

.executive-access-card {
  max-width: 660px;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 30px 34px;
  border: 1px solid #d2e2e9;
  border-radius: 21px;
  background: linear-gradient(145deg, #fff, #f1f8fa);
  box-shadow: 0 18px 45px rgba(27, 62, 84, 0.12);
}

.executive-access-card > span {
  flex: 0 0 auto;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: #e7f3f5;
  color: #23768b;
}

.executive-access-card small { color: #398298; font-size: 10px; font-weight: 800; letter-spacing: 0.14em; }
.executive-access-card h2 { margin: 5px 0 7px; color: #193f55; font-size: 20px; }
.executive-access-card p { margin: 0; color: #768b97; font-size: 12px; line-height: 1.7; }

@media (max-width: 1500px) {
  .executive-overview { width: calc(100% - 2.4cm); margin-left: 1.2cm; margin-right: 1.2cm; }
  .executive-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .executive-matrix-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .executive-matrix-card { border-bottom: 1px solid #e5edf1; }
}

@media (max-width: 1180px) {
  .executive-overview { width: calc(100% - 28px); margin: 12px 14px 28px; }
  .executive-command-hero { grid-template-columns: minmax(0, 1fr) 170px; padding: 18px 22px; }
  .executive-main-grid,
  .executive-lower-grid { grid-template-columns: 1fr; }
  .executive-matrix-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .executive-pulse-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .executive-pulse-card { border-bottom: 1px solid #e7eef2; }
}

@media (max-width: 760px) {
  .executive-command-hero { grid-template-columns: 1fr; padding: 17px 16px; }
  .executive-health { display: none; }
  .executive-hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .executive-kpi-grid,
  .executive-matrix-grid,
  .executive-pulse-grid { grid-template-columns: 1fr; }
  .executive-operating-matrix > header { align-items: flex-start; flex-direction: column; }
  .executive-operating-matrix > header p { display: block; margin: 4px 0 0; }
  .executive-matrix-card { border-right: 0; }
  .executive-pulse-card { min-height: 120px; border-right: 0; }
  .executive-risk-item { grid-template-columns: 26px minmax(0, 1fr) auto; }
  .executive-risk-item > button { display: none; }
  .executive-chart-legend { display: none; }
  .executive-source-panel ul { grid-template-columns: 1fr; }
}

/* 手机/iPad拍照归档、车间盘点、财务表单与登录标题 */
.login-hero h1 .login-system-name{
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  font-size:clamp(25px,2.35vw,44px);
}

.office-upload-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.office-upload-heading>span{display:flex;align-items:center;gap:7px;color:#174f69;font-size:12px;font-weight:800}
.office-upload-heading>small{color:#607d8b;font-size:10px;text-align:right}
.office-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.office-upload-camera{border-color:#55a59c;background:linear-gradient(140deg,#effbf8,#e6f7f4)}
.office-upload-camera>svg{color:#17796f}
.office-document-review{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(260px,1.35fr);gap:10px;max-height:310px;margin-top:10px;padding:10px;border:1px solid #c9dce3;border-radius:11px;background:#f7fbfc;overflow:auto}
.office-document-review[hidden]{display:none}
.office-document-review figure{min-width:0;margin:0;display:grid;gap:5px;align-content:start}
.office-document-review figure img{width:100%;max-height:235px;object-fit:contain;border:1px solid #cbd8dd;border-radius:7px;background:#eaf1f3}
.office-document-review figcaption{overflow:hidden;color:#55727d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.office-document-review ul{display:grid;align-content:start;gap:6px;margin:0;padding:0;list-style:none}
.office-document-review li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:8px;border:1px solid #d4e1e5;border-radius:7px;background:#fff;color:#42616d;font-size:10px}
.office-document-review li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-document-review li small{color:#78909a}
.office-document-review li button{display:inline-flex;align-items:center;gap:3px;padding:4px 7px;border:1px solid #d6aaaa;border-radius:5px;background:#fff2f2;color:#a23b3b;font-size:9px;font-weight:800;cursor:pointer}
.office-document-review-icon{display:grid;place-items:center;align-content:center;gap:6px;min-height:130px;color:#5d7c87;background:#eaf2f4;border-radius:7px;font-size:10px}
.office-original-pdf{display:grid;gap:5px;min-height:220px}.office-original-pdf iframe{width:100%;height:230px;border:1px solid #cbd8dd;border-radius:7px;background:#fff}.office-original-pdf span{overflow:hidden;color:#55727d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.office-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.office-preview-toolbar>span{display:inline-flex;align-items:center;gap:5px;color:#1f586e;font-size:10px;font-weight:850}.office-preview-toolbar>button{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #8db5c4;border-radius:7px;background:#f4fbfd;color:#216077;font-size:10px;font-weight:800;cursor:pointer}.office-preview-toolbar>button:hover{border-color:#4f91a8;background:#e7f5f9}.office-original-image{display:grid;gap:6px;min-width:0}.office-original-image figure{margin:0}
.office-administrative-document-upload{padding:15px;border-color:#8eb8c7;background:linear-gradient(145deg,#f8fcfd,#eef7fa)}.office-administrative-document-upload .office-upload-heading{padding-bottom:10px;border-bottom:1px solid #cfe0e6}.office-administrative-document-upload .office-upload-heading>span{font-size:14px}.office-administrative-document-upload .office-document-review{grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);min-height:560px;max-height:none;padding:12px;border-color:#a8c7d2;background:#eaf2f5;overflow:visible}.office-administrative-document-upload .office-original-pdf,.office-administrative-document-upload .office-original-image{min-height:520px;padding:10px;border:1px solid #c6d9e1;border-radius:10px;background:#fff}.office-administrative-document-upload .office-original-pdf iframe{height:520px;border-radius:8px}.office-administrative-document-upload .office-original-image figure{display:flex;min-height:470px;flex-direction:column}.office-administrative-document-upload .office-original-image img{max-height:560px;flex:1;object-fit:contain}.office-administrative-document-upload .office-document-review>ul{max-height:540px;overflow:auto}.office-document-review:fullscreen{width:100vw;height:100vh;max-height:none;padding:18px;background:#dfe9ee}.office-document-review:fullscreen .office-original-pdf,.office-document-review:fullscreen .office-original-image{height:calc(100vh - 36px)}.office-document-review:fullscreen .office-original-pdf iframe{height:calc(100vh - 92px)}.office-document-review:fullscreen .office-original-image figure{height:calc(100vh - 88px)}.office-document-review:fullscreen .office-original-image img{max-height:calc(100vh - 120px)}
.office-document-confirm{justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;margin-top:9px;padding:7px 13px;border:1px solid #b97720;border-radius:8px;color:#fff;background:#c47f24;font-size:11px;font-weight:800;cursor:pointer}
.office-document-confirm:disabled{border-color:#becbd0;color:#778b94;background:#e1e8eb;cursor:not-allowed}
.office-document-upload.is-upload-confirmed{border-color:#75b99d;background:#f2fbf7}
.office-document-upload.is-upload-confirmed .office-document-confirm{border-color:#267553;background:#2b815b}
.payroll-document-review{display:grid;gap:10px;margin-top:10px;padding:11px;border:1px solid #c9dce3;border-radius:12px;background:#f7fbfc}
.payroll-document-review[hidden]{display:none}
.payroll-document-review>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #d9e6eb;color:#315d70}
.payroll-document-review>header strong{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.payroll-document-review>header span{font-size:10px;color:#6b8490}
.payroll-document-review-body{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(280px,1.35fr);gap:10px;min-height:230px;max-height:420px}
.payroll-document-review figure{min-width:0;margin:0;display:grid;gap:5px;align-content:start}
.payroll-document-review figure img{width:100%;max-height:365px;object-fit:contain;border:1px solid #cbd8dd;border-radius:8px;background:#eaf1f3}
.payroll-document-review figcaption{overflow:hidden;color:#55727d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.payroll-document-review pre{min-width:0;margin:0;padding:12px;border:1px solid #d4e1e5;border-radius:8px;background:#fff;color:#294d5d;font:11px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow:auto}
.payroll-document-file-icon{display:grid;place-items:center;align-content:center;gap:7px;min-height:210px;padding:15px;border-radius:8px;background:#eaf2f4;color:#466b7a;text-align:center}
.payroll-document-file-icon strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payroll-document-file-icon small{color:#78909a}
.payroll-document-confirm{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:37px;margin-top:9px;padding:7px 14px;border:1px solid #b97720;border-radius:8px;color:#fff;background:#c47f24;font-size:11px;font-weight:800;cursor:pointer}
.payroll-document-confirm:disabled{border-color:#becbd0;color:#778b94;background:#e1e8eb;cursor:not-allowed}
.payroll-import-file-field.is-upload-confirmed{border-color:#75b99d;background:#f2fbf7}
.payroll-import-file-field.is-upload-confirmed .payroll-document-confirm{border-color:#267553;background:#2b815b}
.employee-mobile-document-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;max-height:245px;margin-top:9px;padding:8px;border:1px solid #c9dce3;border-radius:10px;background:#f7fbfc;overflow:auto}
.employee-mobile-document-preview[hidden]{display:none}
.employee-mobile-document-preview figure{min-width:0;margin:0;display:grid;gap:5px}
.employee-mobile-document-preview img{width:100%;height:150px;object-fit:contain;border:1px solid #cbd8dd;border-radius:7px;background:#eaf1f3}
.employee-mobile-document-preview figcaption{overflow:hidden;color:#55727d;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.employee-mobile-document-file{display:grid;place-items:center;align-content:center;gap:6px;min-height:150px;padding:10px;border-radius:7px;background:#eaf2f4;color:#466b7a;text-align:center}
.employee-mobile-document-file strong{max-width:100%;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.employee-mobile-document-file small{font-size:9px;color:#78909a}
.employee-mobile-document-confirm{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:36px;margin-top:9px;padding:7px 12px;border:1px solid #b97720;border-radius:8px;color:#fff;background:#c47f24;font-size:11px;font-weight:800;cursor:pointer}
.employee-mobile-document-confirm:disabled{border-color:#becbd0;color:#778b94;background:#e1e8eb;cursor:not-allowed}
.employee-mobile-document-card.is-upload-confirmed{border-color:#75b99d;background:#f2fbf7}
.employee-mobile-document-card.is-upload-confirmed .employee-mobile-document-confirm{border-color:#267553;background:#2b815b}

.hr-attendance-share-banner{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:13px 15px;border:1px solid #9fd6c9;border-radius:12px;background:linear-gradient(135deg,#effcf8,#e7f7f5);color:#155e59}
.hr-attendance-share-banner>svg{flex:0 0 auto;margin-top:2px}
.hr-attendance-share-banner>div{display:flex;flex-direction:column;gap:3px}
.hr-attendance-share-banner strong{font-size:13px}
.hr-attendance-share-banner span{color:#47756f;font-size:11px;line-height:1.55}

.workshop-inventory-modal{width:min(1580px,98vw);height:min(960px,96vh);max-width:none;overflow:auto;background:linear-gradient(180deg,#edf5f6,#f8fafb 250px)}
.workshop-check-hero{display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(520px,1.8fr);gap:18px;margin:18px 22px;padding:20px;border:1px solid #bfd7db;border-radius:17px;background:linear-gradient(135deg,#153f4a,#1d6570);color:#fff;box-shadow:0 14px 32px rgba(24,76,84,.15)}
.workshop-check-hero>div:first-child>span{display:flex;align-items:center;gap:7px;color:#aee8df;font-size:12px;font-weight:800}
.workshop-check-hero h3{margin:8px 0 5px;font-size:22px}
.workshop-check-hero p{margin:0;color:#cde4e5;font-size:11px;line-height:1.6}
.workshop-check-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.workshop-check-kpis article{padding:13px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(255,255,255,.08);display:flex;flex-direction:column;gap:5px}
.workshop-check-kpis span{color:#bbd9dc;font-size:10px}.workshop-check-kpis strong{font-size:18px}
.workshop-inventory-form{margin:0 22px}.workshop-inventory-form>.form-section,.workshop-check-ledger{margin-bottom:15px;padding:17px;border:1px solid #d3e1e4;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(34,71,78,.055)}
.workshop-check-summary{position:sticky;top:66px;z-index:5;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 11px;padding:9px;border:1px solid #c7dce0;border-radius:10px;background:rgba(240,248,249,.96);backdrop-filter:blur(8px)}
.workshop-check-summary span{padding:6px 10px;border-radius:8px;background:#fff;color:#55707a;font-size:10px}.workshop-check-summary strong{margin-left:5px;color:#174f5b;font-size:13px}
[data-workshop-check-lines]{display:grid;gap:11px}.workshop-check-line{padding:12px;border:1px solid #d5e2e4;border-radius:13px;background:#f9fcfc;transition:.18s}
.workshop-check-line:focus-within{border-color:#66aab0;background:#fff;box-shadow:0 0 0 3px rgba(46,139,147,.09)}
.workshop-check-line.has-difference{border-color:#eab29e;background:#fff9f6}
.workshop-check-line-head{display:grid;grid-template-columns:32px minmax(320px,1fr) 180px 38px;align-items:end;gap:9px;margin-bottom:9px}
.workshop-check-line-head label,.workshop-check-line-grid label{min-width:0;display:flex;flex-direction:column;gap:4px}
.workshop-check-line :is(label>span){color:#58737d;font-size:9px;font-weight:800}
.workshop-check-line :is(input,select){width:100%;height:36px;padding:0 8px;border:1px solid #c9d8dc;border-radius:7px;background:#fff;color:#183f49}
.workshop-check-line input[readonly]{background:#eaf2f3;color:#285c65;font-weight:700}
.workshop-check-line.has-difference .workshop-auto-field input{background:#fff0e9;color:#a4472b}
.workshop-check-line-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.workshop-check-line-grid .span-2{grid-column:span 2}
.workshop-check-ledger{margin:0 22px 24px}.workshop-check-ledger .data-table{min-width:1100px}

.invoice-entry-hero{display:grid;grid-template-columns:minmax(300px,1.3fr) minmax(500px,1.7fr);gap:20px;margin-bottom:15px;padding:20px;border:1px solid #bfd6e5;border-radius:16px;background:linear-gradient(135deg,#123c5a,#1d6280);color:#fff}
.invoice-entry-hero>div>span{display:flex;align-items:center;gap:7px;color:#a9dff2;font-size:11px;font-weight:800}.invoice-entry-hero h3{margin:8px 0 5px;font-size:21px}.invoice-entry-hero p{margin:0;color:#cbdfe8;font-size:11px;line-height:1.6}
.invoice-entry-hero ol{counter-reset:none;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:7px;margin:0;padding:0}
.invoice-entry-hero li{display:flex;align-items:center;justify-content:center;gap:5px;min-height:46px;padding:7px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(255,255,255,.07);color:#d9e9ee;font-size:10px;font-weight:700}.invoice-entry-hero li.done{background:#dff8ef;color:#145e54}
.invoice-entry-modal .finance-sheet{border-color:#bdd3df;box-shadow:0 10px 28px rgba(26,67,91,.08)}
.invoice-entry-modal .finance-sheet>h3{color:#123f5d;font-size:22px;letter-spacing:.06em}

.fixed-asset-process{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 20px 14px;padding:13px 16px;border:1px solid #cbdde4;border-radius:12px;background:linear-gradient(135deg,#f2f9fb,#fff)}
.fixed-asset-process>div{display:flex;flex-direction:column;gap:4px}.fixed-asset-process>div span{display:flex;align-items:center;gap:6px;color:#267087;font-size:10px;font-weight:800}.fixed-asset-process>div strong{color:#244e60;font-size:12px}
.fixed-asset-process ul{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.fixed-asset-process li{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:8px;background:#e8f4f6;color:#2b6672;font-size:9px;font-weight:700}

@media(max-width:980px){
  .workshop-check-hero,.invoice-entry-hero{grid-template-columns:1fr}
  .workshop-check-line-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fixed-asset-process{align-items:flex-start;flex-direction:column}
}
@media(max-width:760px){
  .login-hero h1 .login-system-name{font-size:clamp(19px,6.2vw,29px)}
  .office-upload-actions{grid-template-columns:1fr}.office-upload-heading{flex-direction:column}.office-upload-heading>small{text-align:left}
  .workshop-inventory-modal{width:100vw;height:100vh;max-height:none;border-radius:0}
  .workshop-check-hero,.workshop-inventory-form,.workshop-check-ledger{margin-left:10px;margin-right:10px}
  .workshop-check-kpis{grid-template-columns:repeat(2,1fr)}
  .workshop-check-line-head{grid-template-columns:28px 1fr}.workshop-check-line-head label,.workshop-check-line-head button{grid-column:2}
  .workshop-check-line-grid{grid-template-columns:1fr}.workshop-check-line-grid .span-2{grid-column:1}
  .workshop-check-summary{top:54px}
  .invoice-entry-hero ol{grid-template-columns:repeat(2,1fr)}
  .topbar{padding:0 8px;gap:6px}
  .topbar .brand{max-width:150px;gap:5px}
  .topbar .brand>svg,.topbar .brand-company{display:none}
  .topbar .brand-system{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
  .top-actions{min-width:0;gap:3px}
  .top-actions>.outline-button{width:34px;min-width:34px;padding:0;font-size:0}
  .top-actions>.outline-button svg{margin:0}
  .top-actions>.qr-scan-trigger,.top-actions>.popover-wrap,.top-actions>.security-lock-trigger,.top-actions>[data-action=logout]{display:none}
  .table-toolbar{width:100%;max-width:100%;flex-wrap:wrap}
  .table-toolbar>*{min-width:0;flex:1 1 120px}
  .module-table-panel>.panel-header{align-items:flex-start;flex-direction:column}
  .ledger-anyword-search{width:100%;min-width:0;flex-basis:100%}
  .ledger-search-hint{display:none}
}

/* Finance approval contract sharing and attachment workspaces. */
.finance-contract-sync{
  display:grid;
  gap:12px;
  margin:0;
  padding:14px;
  border:1px solid #9fc5d4;
  border-radius:14px;
  background:linear-gradient(145deg,#f7fcfe,#edf6f9);
  box-shadow:0 8px 22px rgba(30,82,104,.08);
}
.finance-contract-sync-heading{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px solid #c8dde5}
.finance-contract-sync-heading>span{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:#dcedf3;color:#17617b}
.finance-contract-sync-heading strong,.finance-contract-sync-heading small{display:block}.finance-contract-sync-heading strong{color:#174c62;font-size:15px}.finance-contract-sync-heading small{margin-top:3px;color:#617d89;line-height:1.55}
.finance-contract-sync-heading em{padding:6px 9px;border-radius:999px;background:#dff3eb;color:#28705b;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}
.finance-contract-picker,.finance-contract-text{display:grid;gap:6px}.finance-contract-picker>span,.finance-contract-text>span{color:#294f60;font-size:12px;font-weight:800}
.finance-contract-picker select{min-height:42px;border-color:#91b8c8;background:#fff}.finance-contract-picker small,.finance-contract-text small{color:#68838e;line-height:1.5}
.finance-contract-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.finance-contract-summary span{padding:9px 10px;border:1px solid #c8dde5;border-radius:9px;background:#fff;color:#6a8089;font-size:11px}.finance-contract-summary strong{display:block;overflow:hidden;margin-top:3px;color:#254c5e;text-overflow:ellipsis;white-space:nowrap}
.finance-contract-original{overflow:hidden;border:1px solid #afcbd6;border-radius:12px;background:#dfeaed}.finance-contract-original[hidden]{display:none}
.finance-contract-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid #bfd2da;background:#f8fbfc;color:#315f72;font-size:12px;font-weight:800}.finance-contract-preview-toolbar>span{display:inline-flex;align-items:center;gap:6px}
.finance-contract-original iframe{display:block;width:100%;height:600px;border:0;background:#fff}
.finance-contract-text textarea{min-height:430px;padding:14px;border-color:#afcbd6;background:#fff;color:#263c47;line-height:1.75;resize:vertical;white-space:pre-wrap}
.finance-document-upload{padding:15px;border-color:#9abfce;background:linear-gradient(145deg,#f9fcfd,#edf6f9)}
.finance-document-upload .office-document-review{min-height:520px;max-height:none;overflow:visible}.finance-document-upload .office-original-pdf iframe{height:490px}.finance-document-upload .office-original-image figure{min-height:430px}.finance-document-upload .office-original-image img{max-height:520px}
.finance-draft-attachment-note{display:flex;align-items:center;gap:6px;margin:8px 0 0;padding:8px 10px;border-radius:8px;background:#fff8e6;color:#806326;font-size:11px;line-height:1.5}
@media(max-width:900px){.finance-contract-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-contract-original iframe{height:480px}.finance-contract-text textarea{min-height:330px}}
@media(max-width:620px){.finance-contract-sync{padding:10px}.finance-contract-sync-heading{grid-template-columns:34px minmax(0,1fr)}.finance-contract-sync-heading em{grid-column:2;justify-self:start}.finance-contract-summary{grid-template-columns:1fr}.finance-contract-original iframe{height:390px}.finance-contract-text textarea{min-height:280px}}

@media(max-width:980px){
  .module-browse-guide{grid-template-columns:1fr}
  .module-load-error{grid-template-columns:auto minmax(0,1fr)}
  .module-load-error>.primary-button{grid-column:2;justify-self:start}
}

@media(max-width:640px){
  .module-browse-guide-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .module-load-error{grid-template-columns:1fr}
  .module-load-error>.primary-button{grid-column:1}
}

@media(max-width:980px){
  .settings-setup-sequence,
  .workflow-rule-guide,
  .workflow-permission-explainer{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-function-map{grid-template-columns:repeat(2,minmax(0,1fr))}
  .workflow-designer-heading{align-items:stretch;flex-direction:column}
  .workflow-template-actions{justify-content:flex-start}
  .permission-decision-flow{grid-template-columns:1fr}
  .permission-decision-flow>i{display:none}
  .account-maintenance-guide{grid-template-columns:1fr}
}

@media(max-width:640px){
  .settings-setup-sequence,
  .settings-function-map,
  .workflow-rule-guide,
  .workflow-permission-explainer,
  .account-maintenance-guide.password-guide{grid-template-columns:1fr}
  .workflow-live-preview{grid-template-columns:1fr}
  .workflow-designer-modal,
  .user-account-modal,
  .own-password-modal{top:8px;width:calc(100vw - 16px);max-height:calc(100vh - 16px)}
}

@media(max-width:760px){
  .employee-contract-recognition-workspace{padding:0}
  .employee-contract-recognition-panel{width:100vw;height:100vh;border:0;border-radius:0}
  .employee-contract-recognition-panel>header{padding:14px}
  .employee-contract-recognition-panel>header strong{font-size:17px}
  .employee-contract-recognition-toolbar{align-items:flex-start;flex-direction:column;padding:9px 12px}
  .employee-contract-recognition-editor{padding:10px}
  .employee-contract-recognition-editor textarea{min-height:0;padding:15px 13px;font-size:14px;line-height:1.85}
  .employee-contract-recognition-panel>footer{align-items:stretch;flex-direction:column;padding:10px 12px}
  .employee-contract-recognition-panel>footer>div{display:grid;grid-template-columns:1fr 1fr}
  .employee-contract-recognition-summary{align-items:flex-start;flex-direction:column}
  .employee-mobile-document-card .employee-document-actions{grid-column:1 / -1;grid-row:auto;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .contract-document-actions{grid-template-columns:1fr}
  .contract-scan-review{grid-template-columns:1fr;grid-template-rows:minmax(220px,.9fr) minmax(260px,1.1fr)}
  .contract-scan-review figure{border-right:0;border-bottom:1px solid #c8d5e3}
  .office-document-review{grid-template-columns:1fr;max-height:460px}
  .office-document-confirm{justify-self:stretch}
  .payroll-document-review-body{grid-template-columns:1fr;max-height:620px}
  .payroll-document-confirm{align-self:stretch}
}
.confidential-flow {
  border-color: rgba(180, 83, 9, .28) !important;
  background: linear-gradient(135deg, rgba(255, 251, 235, .98), rgba(254, 243, 199, .72)) !important;
}

.confidential-permission-warning,
.confidential-form-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(180, 83, 9, .28);
  border-radius: 14px;
  color: #92400e;
  background: linear-gradient(135deg, #fffbeb, #fef3c7);
  box-shadow: 0 10px 28px rgba(146, 64, 14, .08);
}

.confidential-permission-warning div,
.confidential-form-notice span {
  display: grid;
  gap: 4px;
}

.confidential-permission-warning span,
.confidential-form-notice small {
  color: #78350f;
  line-height: 1.65;
}

.sensitive-permission-section {
  display: grid;
  gap: 14px;
}

.sensitive-permission-card {
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .06);
}

.sensitive-permission-card > header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid #fde68a;
  background: linear-gradient(135deg, #fff7ed, #fffbeb);
}

.sensitive-permission-card > header > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: #b45309;
}

.sensitive-permission-card > header div {
  display: grid;
  flex: 1;
  gap: 3px;
}

.sensitive-permission-card > header small {
  color: #6b7280;
  line-height: 1.5;
}

.sensitive-permission-card > header em {
  padding: 5px 9px;
  border-radius: 999px;
  color: #92400e;
  background: #fef3c7;
  font-size: 12px;
  font-style: normal;
}

.sensitive-permission-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 16px;
}

.sensitive-check {
  align-items: flex-start !important;
  min-height: 70px;
  padding: 12px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fafc;
}

.sensitive-check > span {
  display: grid;
  gap: 3px;
}

.sensitive-check small {
  color: #64748b;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .sensitive-permission-options { grid-template-columns: 1fr; }
}

.contract-expiry-panel {
  margin: 18px 0;
  overflow: hidden;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(15, 23, 42, .07);
}

.contract-expiry-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px;
  background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 55%, #eef2ff 100%);
}

.contract-expiry-panel > header div > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #1d4ed8;
  font-size: 13px;
  font-weight: 700;
}

.contract-expiry-panel > header h3 { margin: 5px 0 3px; font-size: 21px; }
.contract-expiry-panel > header p { margin: 0; color: #64748b; line-height: 1.6; }
.contract-expiry-panel > header em { padding: 7px 12px; border-radius: 999px; color: #1e40af; background: #dbeafe; font-size: 13px; font-style: normal; font-weight: 700; white-space: nowrap; }

.contract-expiry-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 16px 20px;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.contract-expiry-metrics article { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 13px; background: #f8fafc; }
.contract-expiry-metrics article strong { font-size: 24px; color: #0f172a; }
.contract-expiry-metrics article span,.contract-expiry-metrics article small { color: #64748b; }
.contract-expiry-metrics article.warning { border-color: #fcd34d; background: #fffbeb; }
.contract-expiry-metrics article.danger { border-color: #fca5a5; background: #fef2f2; }
.contract-expiry-metrics article.danger strong { color: #b91c1c; }
.contract-expiry-table { min-width: 1050px; }
.contract-expiry-panel .table-scroll { padding: 0 18px 12px; }
.contract-expiry-panel > footer { display: flex; align-items: center; gap: 7px; padding: 12px 20px; color: #64748b; border-top: 1px solid #e2e8f0; background: #f8fafc; font-size: 13px; }
.contract-urgency,.contract-days { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.contract-urgency.normal,.contract-days.normal { color: #1d4ed8; background: #dbeafe; }
.contract-urgency.warning,.contract-days.warning { color: #92400e; background: #fef3c7; }
.contract-urgency.danger,.contract-days.danger { color: #991b1b; background: #fee2e2; }

@media (max-width: 820px) {
  .contract-expiry-panel > header { align-items: flex-start; flex-direction: column; }
  .contract-expiry-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* release-97：人力资源完整详情修改、合同日期控件与个人待审批数量 */
.approval-business-field.is-date-field > span { color: #176b8f; background: #eaf7fb; }
.approval-business-field.is-date-field > strong { color: #124d69; background: linear-gradient(135deg,#f8fdff,#eef9fc); }
.approval-business-field.is-date-field time { display: inline-flex; align-items: center; gap: 7px; font: 700 13px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; }
.approval-business-field.is-date-field time svg { color: #1684a8; }
.employee-record-edit-hero { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 13px; margin: 16px 0; padding: 15px 17px; border: 1px solid #acd5e7; border-radius: 16px; background: linear-gradient(135deg,#eaf8ff,#f8fcff 58%,#edf9f5); box-shadow: 0 9px 24px rgba(27,105,145,.1); }
.employee-record-edit-hero > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(135deg,#1378a4,#19a17b); }
.employee-record-edit-hero strong,.employee-record-edit-hero small { display: block; }
.employee-record-edit-hero strong { color: #143f59; font-size: 16px; }
.employee-record-edit-hero small { margin-top: 4px; color: #617b8b; line-height: 1.45; }
.employee-record-edit-hero em { padding: 6px 9px; border-radius: 999px; color: #176b8f; background: #fff; font: 700 11px ui-monospace,SFMono-Regular,Consolas,monospace; font-style: normal; }
.employee-record-edit-sections { display: grid; gap: 14px; }
.employee-record-edit-section { margin: 0!important; overflow: hidden; }
.employee-record-edit-section .form-section-title { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-bottom: 1px solid #dce8ee; background: linear-gradient(90deg,#f3f9fc,#fff); }
.employee-record-edit-section .form-section-title > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #187695; background: #e1f2f8; }
.employee-record-edit-section .form-section-title > div { display: grid; gap: 2px; }
.employee-record-edit-section .form-section-title span { color: #6a8190; font-size: 11px; }
.employee-record-edit-section .form-grid-4 { padding: 16px; }
.employee-record-edit-section[data-edit-group="劳动合同日期"] { border-color: #94cbdc; box-shadow: 0 8px 22px rgba(30,118,147,.08); }
.employee-record-edit-section[data-edit-group="劳动合同日期"] .form-section-title { background: linear-gradient(90deg,#e7f8fc,#f8fdff); }
.employee-record-edit-section label > small { display: block; margin-top: 5px; color: #66808f; font-size: 10px; line-height: 1.4; }
.employee-record-date-result input { border-color: #66abc3!important; background: #f1fbfd!important; font-weight: 700; color: #135b75; }
@media (max-width: 1180px) { .hr-employee-review-metrics,.module-approval-browser-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) {
  .effective-workflow-head { align-items: stretch; flex-direction: column; }
  .effective-workflow-summary { overflow-x: auto; }
  .effective-workflow-summary span { flex: 1 0 88px; }
  .employee-record-edit-hero { grid-template-columns: 42px 1fr; }
  .employee-record-edit-hero em { grid-column: 1/-1; justify-self: start; }
  .employee-record-edit-section .form-grid-4 { grid-template-columns: 1fr; padding: 12px; }
  .employee-record-edit-section .form-grid-4 .span-4 { grid-column: auto; }
  .hr-employee-review-metrics,.module-approval-browser-metrics { grid-template-columns: 1fr; }
}

/* release-108：系统设置与单据权限中心高清、无重叠布局 */
.settings-grid,
.permission-modal {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.settings-tabs {
  flex-wrap: wrap;
  gap: 7px;
  min-height: 56px;
  padding: 7px;
}

.settings-tabs button {
  flex: 1 1 150px;
  min-width: 0;
  min-height: 42px;
  padding: 7px 12px;
  font-size: 13px;
  line-height: 1.35;
  white-space: normal;
}

.settings-panel .panel-header {
  align-items: flex-start;
  gap: 18px;
  padding: 16px 18px;
}

.settings-panel .panel-header h2 {
  color: #173b61;
  font-size: 19px;
  line-height: 1.35;
}

.settings-panel .panel-header p {
  max-width: 920px;
  color: #536a82;
  font-size: 13px;
  line-height: 1.7;
}

.settings-panel .data-table {
  font-size: 13px !important;
  line-height: 1.55;
}

.settings-panel .data-table th,
.settings-panel .data-table td {
  padding: 10px 11px;
}

.user-permission-list {
  min-width: 1500px;
}

.user-permission-list th:nth-child(1) { width: 230px; }
.user-permission-list th:nth-child(2) { width: 195px; }
.user-permission-list th:nth-child(3) { width: 195px; }
.user-permission-list th:nth-child(4),
.user-permission-list th:nth-child(5),
.user-permission-list th:nth-child(6) { width: 135px; }
.user-permission-list th:nth-child(7) { width: 90px; }
.user-permission-list th:nth-child(8) { width: 365px; }

.user-identity-cell strong,
.system-account-cell strong,
.user-department-cell strong {
  font-size: 13px;
  line-height: 1.45;
}

.system-account-cell small,
.user-department-cell small {
  font-size: 11px;
  line-height: 1.45;
}

.permission-count-cell {
  display: grid;
  justify-items: start;
  gap: 3px;
  min-width: 0;
}

.permission-count-cell strong {
  color: #205e9d;
  font-size: 20px;
  line-height: 1;
}

.permission-count-cell.initiate strong { color: #1f6f9f; }
.permission-count-cell.approve strong { color: #16805a; }
.permission-count-cell small { color: #64778b; font-size: 11px; white-space: normal; }

.document-permission-summary {
  gap: 12px;
  padding: 15px 16px;
}

.document-permission-summary article {
  min-height: 86px;
  padding: 15px 17px;
}

.document-permission-summary span { color: #405a74; font-size: 13px; font-weight: 750; }
.document-permission-summary small { color: #687d91; font-size: 12px; line-height: 1.5; }
.document-permission-summary strong { font-size: 28px; }

.document-permission-reading-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px solid #d7e2ed;
  background: #fff;
}

.document-permission-reading-guide article {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid #d9e4ef;
  border-radius: 9px;
  background: #f8fbff;
}

.document-permission-reading-guide .guide-number {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #e5efff;
  color: #2764aa;
  font-size: 13px;
  font-weight: 850;
}

.document-permission-reading-guide .guide-number.initiate { background: #e7f6fb; color: #187094; }
.document-permission-reading-guide .guide-number.approve { background: #e9f8f0; color: #16744e; }
.document-permission-reading-guide article div { min-width: 0; display: grid; gap: 3px; }
.document-permission-reading-guide strong { color: #29445f; font-size: 13px; }
.document-permission-reading-guide small { color: #6b7e91; font-size: 12px; line-height: 1.5; }

.permission-editor-reading-guide {
  margin: 0 18px 14px;
  padding: 11px;
  border: 1px solid #d4e2ee;
  border-radius: 11px;
  background: linear-gradient(118deg, #f8fbff, #f3f9f6);
}

.permission-editor-reading-guide article {
  min-height: 68px;
  padding: 10px 11px;
  background: rgba(255, 255, 255, .94);
}

.permission-editor-reading-guide small { font-size: 11px; }

.document-permission-modules { gap: 15px; padding: 16px; }
.document-permission-module { border-radius: 12px; }
.document-permission-module > header { gap: 11px; padding: 14px 16px; }
.document-permission-module > header strong { font-size: 16px; line-height: 1.4; }
.document-permission-module > header small { font-size: 12px; line-height: 1.5; }
.document-permission-cards { grid-template-columns: 1fr; gap: 12px; padding: 13px; }
.document-permission-card { gap: 12px; padding: 15px 16px; border-radius: 10px; }
.document-permission-card-head > div { gap: 5px; }
.document-permission-card-head span { font-size: 12px; }
.document-permission-card-head h3 { font-size: 17px; line-height: 1.4; }
.document-permission-card-head p { max-width: 900px; font-size: 13px; line-height: 1.65; }
.document-permission-card-head em { padding: 5px 9px; font-size: 12px; }

.document-matter-row,
.document-role-row {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding-top: 11px;
  border-top: 1px dashed #d5e0ea;
}

.document-matter-row > label,
.document-role-row > label {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: 6px;
  color: #405c77;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.document-matter-row > label b,
.document-role-row > label b {
  min-width: 22px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #e8f2ff;
  color: #2365ae;
  font-size: 11px;
  text-align: center;
}

.document-matter-row > div,
.document-role-row > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.document-type-chips { gap: 7px; }
.document-type-chips > span { padding: 5px 8px; font-size: 12px; line-height: 1.4; }

.document-permission-person {
  min-width: 180px;
  max-width: 320px;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 8px;
  padding: 7px 9px;
}

.document-permission-person > span { width: 31px; height: 31px; font-size: 12px; }
.document-permission-person i { gap: 2px; }
.document-permission-person strong,
.document-permission-person small { overflow: visible; text-overflow: clip; white-space: normal; }
.document-permission-person strong { font-size: 13px; line-height: 1.35; }
.document-permission-person small { max-width: none; font-size: 11px; line-height: 1.45; }
.document-permission-empty { padding: 9px 0; font-size: 12px; line-height: 1.5; }
.document-permission-card footer { padding: 10px 11px; font-size: 12px; line-height: 1.6; }
.document-permission-card footer span { align-items: flex-start; flex-wrap: wrap; }

/* release-116：员工按每一项具体事项分别勾选发起权和审批权 */
.document-matter-access-list {
  display: grid;
  gap: 8px;
  padding-top: 11px;
  border-top: 1px dashed #d5e0ea;
}

.document-matter-access-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(190px, .7fr) minmax(260px, 1fr) minmax(260px, 1fr);
  gap: 10px;
  padding: 10px;
  border: 1px solid #d7e2ec;
  border-radius: 9px;
  background: #f8fbfe;
}

.document-matter-access-name { min-width: 0; display: flex; align-items: flex-start; gap: 9px; padding: 3px 0; }
.document-matter-access-name b { flex: 0 0 auto; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #e2effd; color: #2767a7; font: 800 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.document-matter-access-name strong { color: #294962; font-size: 13px; line-height: 1.5; }
.document-matter-access-people { min-width: 0; display: grid; gap: 6px; }
.document-matter-access-people > label { display: flex; align-items: center; gap: 5px; color: #536d83; font-size: 11px; font-weight: 750; }
.document-matter-access-people > label b { color: #2167a6; }
.document-matter-access-people > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }

.permission-modal {
  top: 28px;
  width: min(1480px, calc(100vw - 36px));
  max-height: calc(100vh - 56px);
}

.permission-modal form.business-form { gap: 17px; padding: 18px 20px 0; }
.permission-user-summary { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; padding: 14px 16px; }
.permission-user-avatar { width: 48px; height: 48px; font-size: 19px; }
.permission-user-summary > div strong { color: #1d3d5e; font-size: 16px; line-height: 1.4; }
.permission-user-summary > div span,
.permission-user-summary em { font-size: 13px; line-height: 1.55; }

.permission-decision-flow { gap: 8px; padding: 11px; }
.permission-decision-flow article { min-height: 70px; gap: 9px; padding: 10px; }
.permission-decision-flow article b { width: 28px; height: 28px; font-size: 12px; }
.permission-decision-flow article span { font-size: 12px; line-height: 1.55; }
.permission-decision-flow article strong { margin-bottom: 2px; color: #234767; font-size: 13px; }

.permission-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  padding: 7px;
  border: 1px solid #d4e0ec;
  border-radius: 8px;
  background: #f5f8fc;
}

.permission-tabs button {
  min-width: 0;
  min-height: 46px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.35;
  white-space: normal;
}

.permission-pane { min-height: 430px; border-radius: 9px; }
.permission-pane-header { min-height: 68px; align-items: flex-start; padding: 13px 16px; }
.permission-pane-header > div:first-child { gap: 5px; }
.permission-pane-header strong { color: #1f4265; font-size: 15px; line-height: 1.4; }
.permission-pane-header span { max-width: 980px; color: #5c7186; font-size: 12px; line-height: 1.65; }
.permission-pane .permission-section { max-height: min(54vh, 570px); }

.permission-modal .data-table {
  min-width: 1040px;
  table-layout: auto;
  font-size: 13px !important;
  line-height: 1.55;
}

.permission-modal .data-table th,
.permission-modal .data-table td {
  overflow: visible;
  padding: 10px 12px;
  text-overflow: clip;
  white-space: normal;
}

.permission-modal .permission-check { min-height: 34px !important; font-size: 13px !important; }
.permission-modal .permission-check > span { font-size: 13px !important; line-height: 1.4; }

.permission-document-legend {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 11px 14px;
  border-bottom: 1px solid #d7e2ed;
  background: #fff;
}

.permission-document-legend > span {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 10px;
  border-radius: 7px;
  background: #f3f7fb;
  color: #60758a;
  font-size: 12px;
  line-height: 1.45;
}

.permission-document-legend svg { flex: 0 0 auto; color: #2e70b5; }
.permission-document-legend strong { color: #264966; font-size: 13px; }

.permission-pane .document-permission-editor-list {
  display: grid;
  gap: 12px;
  padding: 14px;
  background: #eef3f8;
}

.document-permission-editor-row {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #cfdce8;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(30, 67, 101, .055);
}

.document-permission-editor-row > header {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #dbe5ee;
  background: linear-gradient(110deg, #f5faff, #fff);
}

.document-editor-index {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #dfeeff;
  color: #2363a7;
  font: 800 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.document-permission-editor-row > header > div { min-width: 0; display: grid; gap: 3px; }
.document-permission-editor-row > header > div > span { color: #2870b7; font-size: 12px; font-weight: 800; }
.document-permission-editor-row > header h3 { margin: 0; color: #1f3f5d; font-size: 17px; line-height: 1.4; }
.document-permission-editor-row > header p { margin: 0; color: #60768a; font-size: 12px; line-height: 1.6; }
.document-permission-editor-row > header em { padding: 6px 9px; border-radius: 999px; background: #eaf3ff; color: #235f9d; font-size: 12px; font-style: normal; font-weight: 750; white-space: nowrap; }

.document-editor-matters {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 13px 16px;
  border-bottom: 1px dashed #dbe4ed;
}

.document-editor-matters > strong,
.document-permission-editor-row > footer > strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: 5px;
  color: #3c5873;
  font-size: 13px;
  line-height: 1.4;
}

.document-editor-rights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px dashed #dbe4ed;
}

.permission-choice-card {
  min-width: 0;
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  align-items: center;
  gap: 10px !important;
  min-height: 76px;
  padding: 11px 13px;
  border: 1px solid #cedae6 !important;
  border-radius: 9px;
  background: #f8fafc;
  cursor: pointer;
}

.permission-choice-card input { width: 20px; height: 20px; margin: 0; accent-color: #2771bc; }
.permission-choice-card > span { min-width: 0; display: grid !important; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; padding: 0 !important; color: inherit !important; }
.permission-choice-card > span > svg { width: 28px; height: 28px; padding: 6px; border-radius: 8px; background: #e4effb; color: #2869ab; }
.permission-choice-card > span > i { min-width: 0; display: grid; gap: 3px; font-style: normal; }
.permission-choice-card strong { color: #284763; font-size: 14px; line-height: 1.35; }
.permission-choice-card small { color: #65798c; font-size: 12px; line-height: 1.5; }
.permission-choice-card:has(input:checked) { border-color: #66a4dc !important; background: #eef7ff; box-shadow: inset 4px 0 0 #2a75ba; }
.permission-choice-card.approve:has(input:checked) { border-color: #75c59f !important; background: #eefaf4; box-shadow: inset 4px 0 0 #1c8a5e; }
.permission-choice-card.approve:has(input:checked) > span > svg { background: #dcf3e7; color: #16724e; }

.document-matter-permission-table {
  display: grid;
  padding: 0 16px 14px;
  background: #fff;
}

.document-matter-permission-head,
.document-matter-permission-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(145px, .32fr) minmax(145px, .32fr);
  align-items: stretch;
}

.document-matter-permission-head {
  margin-top: 13px;
  border: 1px solid #c9d8e6;
  border-radius: 9px 9px 0 0;
  background: #eaf2fa;
}

.document-matter-permission-head > span { padding: 9px 12px; color: #3c5872; font-size: 12px; font-weight: 800; text-align: center; }
.document-matter-permission-head > span:first-child { text-align: left; }

.document-matter-permission-row {
  border: 1px solid #d7e2ec;
  border-top: 0;
  background: #fff;
  transition: background .16s ease, box-shadow .16s ease;
}

.document-matter-permission-row:last-child { border-radius: 0 0 9px 9px; }
.document-matter-permission-row:has(input:checked),
.document-matter-permission-row.selected { background: #f4f9ff; box-shadow: inset 4px 0 0 #4b8fc9; }

.document-matter-name { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 11px 12px; }
.document-matter-name > b { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: #e5eff9; color: #2c6aa5; font: 800 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.document-matter-name > span { min-width: 0; display: grid; gap: 2px; }
.document-matter-name strong { color: #294861; font-size: 13px; line-height: 1.4; }
.document-matter-name small { color: #788b9c; font-size: 11px; line-height: 1.4; }

.matter-permission-check {
  min-width: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px !important;
  padding: 10px 12px;
  border-left: 1px solid #dfe7ef;
  cursor: pointer;
}

.matter-permission-check input { width: 19px; height: 19px; margin: 0; accent-color: #2771bc; }
.matter-permission-check > span { display: inline-flex !important; align-items: center; gap: 6px; padding: 0 !important; color: #48637b !important; font-size: 12px !important; font-weight: 750; line-height: 1.4; }
.matter-permission-check:has(input:checked) { background: #e9f4ff; }
.matter-permission-check.approve:has(input:checked) { background: #e9f8f0; }
.matter-permission-check.approve input { accent-color: #1d895d; }
.matter-permission-check.approve:has(input:checked) > span { color: #176e4c !important; }

.document-permission-editor-row > footer {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  padding: 13px 16px 15px;
  background: #fbfdff;
}

.document-flow-large { min-width: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.document-flow-large > span { display: inline-grid; grid-template-columns: 22px auto auto; align-items: center; gap: 6px; min-height: 34px; padding: 5px 8px; border: 1px solid #ccdae8; border-radius: 7px; background: #fff; }
.document-flow-large i { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #e4effb; color: #2364a7; font-size: 11px; font-style: normal; font-weight: 850; }
.document-flow-large b { color: #405a72; font-size: 12px; line-height: 1.35; }
.document-flow-large em { padding: 2px 5px; border-radius: 999px; background: #dcf4e7; color: #16724e; font-size: 10px; font-style: normal; font-weight: 800; }

@media (max-width: 1180px) {
  .permission-decision-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .permission-decision-flow > i { display: none; }
  .permission-user-summary { grid-template-columns: 48px minmax(0, 1fr); }
  .permission-user-summary em { grid-column: 1 / -1; }
  .document-matter-access-row { grid-template-columns: minmax(180px, .7fr) minmax(220px, 1fr); }
  .document-matter-access-people:last-child { grid-column: 2; }
}

@media (max-width: 900px) {
  .document-permission-reading-guide,
  .permission-document-legend { grid-template-columns: 1fr; }
  .permission-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-matter-access-row { grid-template-columns: 1fr; }
  .document-matter-access-people:last-child { grid-column: auto; }
  .document-matter-permission-head,
  .document-matter-permission-row { grid-template-columns: minmax(220px, 1fr) 125px 125px; }
  .document-editor-rights { grid-template-columns: 1fr; }
  .document-permission-editor-row > header { grid-template-columns: 38px minmax(0, 1fr); }
  .document-permission-editor-row > header em { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 720px) {
  .permission-modal { top: 0; width: 100vw; height: 100vh; max-height: none; border-radius: 0; }
  .permission-modal form.business-form { padding: 12px 10px 0; }
  .permission-decision-flow,
  .permission-tabs { grid-template-columns: 1fr; }
  .settings-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; white-space: normal; }
  .settings-tabs button { width: 100%; flex: none; }
  .document-matter-row,
  .document-role-row,
  .document-editor-matters,
  .document-permission-editor-row > footer { grid-template-columns: 1fr; }
  .document-matter-permission-head { display: none; }
  .document-matter-permission-row { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 9px; border-top: 1px solid #d7e2ec; border-radius: 9px; overflow: hidden; }
  .document-matter-name { grid-column: 1 / -1; border-bottom: 1px solid #dfe7ef; }
  .matter-permission-check:first-of-type { border-left: 0; }
}

/* release-109：二级菜单高清彩色图片式图标 */
.submenu-item {
  min-height: 38px;
  grid-template-columns: 17.6px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
}

.submenu-item.is-encrypted {
  grid-template-columns: 17.6px minmax(0, 1fr) auto;
}

.submenu-icon-picture {
  position: relative;
  isolation: isolate;
  width: 15.4px;
  height: 15.4px;
  display: grid !important;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 4.4px;
  box-shadow: 0 2px 4px rgba(27, 68, 105, .18), inset 0 1px 0 rgba(255, 255, 255, .34);
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.submenu-icon-picture::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 25% 18%, rgba(255, 255, 255, .46), transparent 42%);
  content: '';
}

.submenu-icon-picture svg,
.submenu-item.is-encrypted .submenu-icon-picture svg {
  position: relative;
  z-index: 1;
  width: 8.8px;
  height: 8.8px;
  justify-self: center;
  color: #fff !important;
  filter: drop-shadow(0 1px 1px rgba(16, 42, 67, .22));
  shape-rendering: geometricPrecision;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
}

.submenu-item:hover .submenu-icon-picture {
  filter: saturate(1.08) brightness(1.04);
  transform: translateY(-1px) scale(1.04);
  box-shadow: 0 3px 6px rgba(27, 68, 105, .23), inset 0 1px 0 rgba(255, 255, 255, .4);
}

.submenu-icon-picture.tone-ocean { background: linear-gradient(145deg, #2389f4, #1556c0); }
.submenu-icon-picture.tone-teal { background: linear-gradient(145deg, #20b9bd, #087c88); }
.submenu-icon-picture.tone-emerald { background: linear-gradient(145deg, #33bd7a, #14704d); }
.submenu-icon-picture.tone-violet { background: linear-gradient(145deg, #9a6df0, #6540bd); }
.submenu-icon-picture.tone-coral { background: linear-gradient(145deg, #f47c69, #c8464a); }
.submenu-icon-picture.tone-amber { background: linear-gradient(145deg, #f6b73c, #c8740d); }
.submenu-icon-picture.tone-indigo { background: linear-gradient(145deg, #6478e8, #3949ab); }
.submenu-icon-picture.tone-cyan { background: linear-gradient(145deg, #32b7e6, #187ca7); }
.submenu-icon-picture.tone-slate { background: linear-gradient(145deg, #8091a5, #4d5f73); }

.submenu-item > span:not(.submenu-icon-picture) {
  min-width: 0;
  align-self: center;
  color: inherit;
  line-height: 1.45;
}

@media (max-width: 1180px) {
  .submenu-list .submenu-icon-picture { display: grid !important; }
}

/* release-112：系统设置专用浏览说明、高清中文字体与无重叠响应式布局 */
.settings-grid,
.permission-modal,
.settings-grid button,
.settings-grid input,
.settings-grid select,
.settings-grid textarea,
.permission-modal button,
.permission-modal input,
.permission-modal select,
.permission-modal textarea {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.settings-grid { --settings-hd-text: #1f3852; --settings-hd-muted: #587087; }

.settings-grid .module-command-copy,
.settings-grid .module-command-copy > p,
.settings-grid .panel-header > div,
.settings-grid .panel-header p {
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.settings-grid .module-command-copy > p { font-size: 13px; line-height: 1.65; }

.settings-browse-guide {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(300px, .7fr) minmax(0, 1.3fr);
  align-items: stretch;
  gap: 14px;
  overflow: hidden;
  padding: 14px 16px;
  border: 1px solid #c9ddec;
  background: linear-gradient(118deg, #f8fcff 0%, #f2f8fd 58%, #eef9f5 100%);
  box-shadow: 0 10px 26px rgba(38, 84, 122, .07);
}

.settings-browse-guide-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.settings-guide-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #2369a8;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.settings-browse-guide-copy h2 {
  margin: 6px 0 4px;
  color: #163d61;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: .01em;
}

.settings-browse-guide-copy > p {
  max-width: 900px;
  margin: 0;
  color: var(--settings-hd-muted);
  font-size: 12px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.settings-guide-flow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 8px; }

.settings-guide-flow > span {
  min-height: 31px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 9px 5px 6px;
  border: 1px solid #cee0ee;
  border-radius: 8px;
  background: rgba(255, 255, 255, .9);
  color: #36536f;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.45;
  white-space: normal;
}

.settings-guide-flow b {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  flex: 0 0 20px;
  border-radius: 6px;
  background: #2f73b8;
  color: #fff;
  font-size: 11px;
}

.settings-guide-flow > i { display: inline-flex; color: #7e9bb4; }

.settings-browse-guide-copy > small {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 11px;
  color: #60788d;
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.settings-browse-guide-copy > small svg { flex: 0 0 auto; margin-top: 2px; color: #18805c; }

.settings-browse-guide-metrics {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.settings-browse-guide-metrics article {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 70px;
  padding: 9px 10px;
  border: 1px solid #d4e2ee;
  border-radius: 11px;
  background: rgba(255, 255, 255, .94);
}

.settings-browse-guide-metrics article > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #e7f2fd;
  color: #2469a9;
}

.settings-browse-guide-metrics article:nth-child(2) > span { background: #e8f7f1; color: #187858; }
.settings-browse-guide-metrics article:nth-child(3) > span { background: #f1edff; color: #6650b8; }
.settings-browse-guide-metrics article:nth-child(4) > span { background: #fff2df; color: #a76415; }
.settings-browse-guide-metrics article > div { min-width: 0; display: grid; gap: 2px; }
.settings-browse-guide-metrics small,
.settings-browse-guide-metrics em {
  overflow: visible;
  color: #637a8f;
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}
.settings-browse-guide-metrics strong { color: #174f84; font-size: 20px; line-height: 1.12; }

.settings-governance-map .panel-header { align-items: flex-start; }
.settings-governance-map .panel-header h2 { font-size: 19px; line-height: 1.45; }
.settings-governance-map .panel-header p { font-size: 13px; line-height: 1.7; }
.settings-setup-sequence article { min-height: 104px; padding: 15px 14px; }
.settings-setup-sequence strong,
.settings-function-map strong { font-size: 14px; line-height: 1.45; }
.settings-setup-sequence span,
.settings-function-map span {
  overflow: visible;
  font-size: 12px;
  line-height: 1.65;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}
.settings-function-map { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 14px; }
.settings-function-map article { min-width: 0; min-height: 94px; padding: 13px; border-radius: 9px; }

.settings-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  overflow: visible;
  white-space: normal;
}
.settings-tabs button { width: 100%; min-height: 48px; padding: 8px 9px; overflow-wrap: anywhere; }

.permission-logic-strip button strong { font-size: 13px; line-height: 1.45; }
.permission-logic-strip button small {
  overflow: visible;
  color: #60768b;
  font-size: 12px;
  line-height: 1.55;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.settings-panel .data-table th,
.settings-panel .data-table td,
.user-permission-list td,
.user-identity-cell strong,
.system-account-cell strong,
.user-department-cell strong,
.system-account-cell small,
.user-department-cell small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.settings-panel .data-table th { font-size: 13px; line-height: 1.45; }
.settings-panel .data-table td { font-size: 13px; line-height: 1.6; }
.user-permission-list tr { height: auto; }
.user-row-actions { align-items: stretch; flex-wrap: wrap; }
.user-row-actions .row-action { min-height: 34px; white-space: normal; line-height: 1.35; }

@media (max-width: 1240px) {
  .settings-browse-guide { grid-template-columns: 1fr; }
  .settings-browse-guide-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .settings-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .settings-function-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .settings-browse-guide { padding: 15px; }
  .settings-browse-guide-copy h2 { font-size: 18px; }
  .settings-browse-guide-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-setup-sequence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-panel .panel-header,
  .settings-governance-map .panel-header { flex-direction: column; }
}

@media (max-width: 560px) {
  .settings-browse-guide-metrics,
  .settings-tabs,
  .settings-setup-sequence,
  .settings-function-map { grid-template-columns: 1fr; }
  .settings-guide-flow > i { display: none; }
  .settings-guide-flow > span { width: 100%; }
}

/* release-113：消除系统设置总浏览空白轨道，并提升二级菜单矢量图标清晰度 */
.module-grid {
  grid-template-columns: minmax(0, 1fr);
}

.settings-grid > .module-command,
.settings-grid > .module-stats {
  grid-column: 1 / -1;
  width: auto;
}

.settings-grid > .module-stats {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.settings-function-map {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}

.settings-function-map article {
  flex: 1 1 200px;
}

.settings-guide-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.settings-guide-flow > i {
  display: none;
}

.settings-guide-flow > span {
  width: 100%;
}

/* 总菜单台账浏览：统一纵向滚动、功能分区检索与千条级分页 */
.module-ledger-browser {
  display: grid;
  grid-template-columns:minmax(0,1fr);
  min-width: 0;
  overflow: hidden;
  border-color: #bfd6e2;
  border-radius: 17px;
  background: linear-gradient(145deg,#f7fbfd,#eef5f8);
  box-shadow: 0 16px 36px rgba(29,67,90,.1);
}

.module-ledger-browser-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px;
  border-bottom: 1px solid #cadde6;
  background:
    radial-gradient(circle at 94% 15%,rgba(61,174,139,.14),transparent 28%),
    linear-gradient(110deg,#edf7fb,#f8fcfd 62%,#eef8f4);
}

.module-ledger-browser-head > div:first-child > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #22748b;
  font-size: 12px;
  font-weight: 800;
}

.module-ledger-browser-head h2 {
  margin: 4px 0 3px;
  color: #173e56;
  font-size: 21px;
}

.module-ledger-browser-head p {
  margin: 0;
  color: #6b8190;
  font-size: 12px;
}

.module-ledger-overview {
  display: grid;
  grid-template-columns: auto auto auto auto;
  align-items: baseline;
  gap: 4px 7px;
  flex: 0 0 auto;
  padding: 10px 13px;
  border: 1px solid #c9dfe5;
  border-radius: 12px;
  background: rgba(255,255,255,.88);
}

.module-ledger-overview strong { color: #16705f; font-size: 22px; }
.module-ledger-overview span { color: #718792; font-size: 10px; }

.module-ledger-global-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 18px;
  border-bottom: 1px solid #d7e4ea;
  background: #fff;
}

.module-ledger-global-toolbar > div:first-child { display: grid; gap: 3px; }
.module-ledger-global-toolbar > div:first-child strong { color: #2b5065; font-size: 13px; }
.module-ledger-global-toolbar > div:first-child small { color: #7a8d99; font-size: 10px; }
.module-ledger-global-toolbar .table-toolbar { display: flex; align-items: center; gap: 7px; }
.module-ledger-global-toolbar .ledger-result-count { min-width: 72px; margin: 0; text-align: right; }

.ledger-function-stack {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.ledger-function-section {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #cfdee6;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(38,74,96,.06);
  content-visibility: auto;
  contain-intrinsic-size: 520px;
}

.ledger-function-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 76px;
  padding: 12px 14px;
  border-bottom: 1px solid #d9e5ea;
  background: linear-gradient(110deg,#fbfdfe,#f3f8fa);
}

.ledger-function-title {
  display: grid;
  grid-template-columns: 38px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  min-width: 260px;
}

.ledger-function-title > i {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  color: #176d83;
  background: #dff0f4;
  box-shadow: inset 0 0 0 1px #c6e1e8;
}

.ledger-function-title span { color: #278095; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.ledger-function-title h3 { margin: 2px 0; color: #244357; font-size: 15px; }
.ledger-function-title p { margin: 0; color: #748895; font-size: 10px; line-height: 1.45; }

.ledger-function-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex: 1 1 auto;
}

.ledger-section-search {
  display: flex;
  align-items: center;
  gap: 7px;
  width: min(390px,36vw);
  height: 36px;
  padding: 0 10px;
  border: 1px solid #9fc7d3;
  border-radius: 9px;
  color: #28798e;
  background: #f8fcfd;
}

.ledger-section-search:focus-within {
  border-color: #2784a0;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(39,132,160,.12);
}

.ledger-section-search input {
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  color: #23495c;
  background: transparent;
  font-size: 11px;
}

.ledger-function-tools select {
  height: 36px;
  max-width: 150px;
  border: 1px solid #bdcfd8;
  border-radius: 9px;
  padding: 0 9px;
  color: #3d5968;
  background: #fff;
}

.ledger-section-table-wrap {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-gutter: stable;
}

.ledger-section-table { min-width: 960px; }
.ledger-function-section-contracts .ledger-section-table { min-width: 2760px; table-layout: auto; }
.ledger-function-section-contracts .ledger-section-table :is(th,td) { white-space: nowrap; }
.contract-ledger-export { min-height: 36px; white-space: nowrap; }
.contract-ledger-export-controls { display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap; }
.contract-ledger-export-controls label { display:grid;gap:3px;min-width:138px;color:#526773;font-size:12px;font-weight:650; }
.contract-ledger-export-controls input { width:100%;min-height:36px;padding:6px 9px;border:1px solid #c8d6d1;border-radius:8px;background:#fff;color:#203a36;font:600 13px/1.2 "Microsoft YaHei",sans-serif; }
.contract-ledger-export-controls i { align-self:center;color:#73847f;font-size:12px;font-style:normal; }
@media (max-width: 900px) {
  .contract-ledger-export-controls { width:100%;justify-content:flex-start; }
  .contract-ledger-export-controls label { flex:1 1 140px; }
  .contract-ledger-export-controls .contract-ledger-export { flex:1 1 180px; }
}
.ledger-section-table th { position: static; color: #3a5869; background: #f4f8fa; white-space: nowrap; }
.ledger-section-table td { max-width: 320px; vertical-align: middle; }
.ledger-section-table tbody tr:hover { background: #f4fafb; }

/* 员工正式档案字段较多，使用明确列宽和横向浏览，避免编号、姓名、部门岗位互相覆盖。 */
.ledger-function-section-employees .ledger-section-table {
  min-width: 1740px;
  table-layout: fixed;
}

.ledger-function-section-employees .ledger-section-table :is(th,td) {
  overflow: hidden;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(1) { width: 130px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(2) { width: 100px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(3) { width: 190px; white-space: normal; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(4) { width: 110px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(5) { width: 105px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(6) { width: 110px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(7) { width: 160px; white-space: normal; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(8) { width: 135px; white-space: normal; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(9) { width: 135px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(10) { width: 115px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(11) { width: 100px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(12) { width: 100px; }
.ledger-function-section-employees .ledger-section-table :is(th,td):nth-child(13) { width: 110px; }

.ledger-function-section-employees .ledger-section-table td:nth-child(1),
.ledger-function-section-employees .ledger-section-table td:nth-child(2) {
  color: #24495d;
  font-weight: 750;
}

.ledger-section-footer {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 7px 12px;
  border-top: 1px solid #dce7ec;
  background: #f9fbfc;
}

.ledger-section-footer > span { color: #176f83; font-size: 11px; font-weight: 800; }
.ledger-section-footer > small { color: #7b8e99; font-size: 10px; }
.ledger-section-footer nav { display: flex; align-items: center; gap: 7px; }
.ledger-section-footer nav b { min-width: 56px; color: #46616f; font-size: 10px; text-align: center; }
.ledger-section-footer button:disabled { opacity: .45; cursor: not-allowed; }

.ledger-section-submit,
.ledger-section-clear {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 7px 10px;
  white-space: nowrap;
}

/* 台账浏览页只保留页面主滚动条，分区表格仅在必要时横向滚动。 */
.module-grid .module-approval-progress-list,
.module-grid .module-terminal-ledger-wrap,
.module-grid .effective-workflow-table-wrap {
  max-height: none;
  overflow-y: visible;
}

.module-grid .module-terminal-ledger-wrap,
.module-grid .effective-workflow-table-wrap { overflow-x: auto; }

@media (max-width: 1080px) {
  .module-ledger-browser-head,
  .module-ledger-global-toolbar,
  .ledger-function-head { align-items: flex-start; flex-direction: column; }
  .module-ledger-overview { align-self: stretch; justify-content: start; }
  .module-ledger-global-toolbar .table-toolbar,
  .ledger-function-tools { width: 100%; justify-content: stretch; }
  .ledger-section-search { width: 100%; flex: 1 1 auto; }
}

@media (max-width: 680px) {
  .module-ledger-browser-head { padding: 15px; }
  .module-ledger-overview { grid-template-columns: auto 1fr auto 1fr; width: 100%; }
  .ledger-function-stack { gap: 11px; padding: 10px; }
  .ledger-function-head { padding: 11px; }
  .ledger-function-title { min-width: 0; }
  .ledger-function-tools { align-items: stretch; flex-direction: column; }
  .ledger-function-tools select { width: 100%; max-width: none; }
  .ledger-section-submit,.ledger-section-clear { justify-content: center; width: 100%; }
  .ledger-section-footer { grid-template-columns: 1fr auto; }
  .ledger-section-footer > small { grid-column: 1 / -1; grid-row: 2; }
}

.submenu-item,
.submenu-item.is-encrypted {
  grid-template-columns: 18px minmax(0, 1fr);
}

.submenu-item.is-encrypted {
  grid-template-columns: 18px minmax(0, 1fr) auto;
}

.submenu-icon-picture {
  width: 16px;
  height: 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(31, 73, 112, .2);
  image-rendering: auto;
}

.submenu-icon-picture::after {
  display: none;
}

.submenu-icon-picture svg,
.submenu-item.is-encrypted .submenu-icon-picture svg {
  width: 12px !important;
  height: 12px !important;
  display: block;
  filter: none;
  shape-rendering: geometricPrecision;
  stroke-width: 2.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.submenu-icon-picture svg * {
  shape-rendering: geometricPrecision;
  vector-effect: non-scaling-stroke;
}

.submenu-item:hover .submenu-icon-picture {
  filter: saturate(1.12) contrast(1.06);
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px rgba(31, 73, 112, .3);
}

@media (max-width: 1240px) {
  .settings-grid > .module-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .settings-grid > .module-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .settings-grid > .module-stats { grid-template-columns: 1fr; }
  .settings-guide-flow { grid-template-columns: 1fr; }
}

/* Approval node flow builder: keep the everyday path simple and visual. */
.workflow-simple-entry-guide,
.workflow-simple-guide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr) 20px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-top: 1px solid #dfe8f1;
  border-bottom: 1px solid #dfe8f1;
  background: linear-gradient(90deg, #f7fbff, #fbfdff);
}

.workflow-simple-entry-guide > svg,
.workflow-simple-guide > i {
  color: #91a7bb;
  justify-self: center;
}

.workflow-simple-guide > i {
  display: grid;
  place-items: center;
  font-style: normal;
}

.workflow-simple-entry-guide article,
.workflow-simple-guide article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.workflow-simple-entry-guide article > b,
.workflow-simple-guide article > b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e5eef8;
  color: #56738f;
  font-size: 13px;
}

.workflow-simple-entry-guide article:first-child > b,
.workflow-simple-guide article.active > b {
  background: #2f73df;
  color: #fff;
  box-shadow: 0 4px 12px rgba(47, 115, 223, .22);
}

.workflow-simple-entry-guide article > div,
.workflow-simple-guide article > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.workflow-simple-entry-guide strong,
.workflow-simple-guide strong {
  color: #294862;
  font-size: 12px;
}

.workflow-simple-entry-guide span,
.workflow-simple-guide span {
  color: #748697;
  font-size: 10px;
}

.workflow-list-table th:first-child,
.workflow-list-table td:first-child { width: 28%; }
.workflow-list-table th:nth-child(2),
.workflow-list-table td:nth-child(2) { width: 36%; }
.workflow-list-table th:nth-child(3),
.workflow-list-table td:nth-child(3) { width: 18%; }
.workflow-list-table th:last-child,
.workflow-list-table td:last-child { width: 18%; text-align: center; }

.workflow-compact-matters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.workflow-compact-matters span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 8px;
  border: 1px solid #d8e3ed;
  border-radius: 14px;
  background: #f7f9fb;
  color: #64778a;
  font-size: 10px;
}

.workflow-compact-matters span.configured {
  border-color: #bcdaca;
  background: #f0faf5;
  color: #277653;
}

.workflow-compact-matters small {
  flex-basis: 100%;
  color: #8291a0;
  font-size: 9px;
}

.workflow-compact-status {
  display: grid;
  justify-items: center;
  gap: 1px;
}

.workflow-compact-status > strong {
  color: #2468b0;
  font-size: 22px;
  line-height: 1;
}

.workflow-compact-status > strong small {
  color: #8090a0;
  font-size: 11px;
}

.workflow-compact-status > span {
  color: #3c5c76;
  font-size: 10px;
  font-weight: 800;
}

.workflow-compact-status > em {
  color: #8291a0;
  font-size: 9px;
  font-style: normal;
}

.workflow-open-builder {
  min-height: 36px;
  white-space: nowrap;
}

.workflow-designer-modal .business-form {
  max-height: calc(100vh - 130px);
  overflow-y: auto;
  padding: 0 18px 18px;
}

.workflow-designer-modal .workflow-simple-guide {
  margin: 0 -18px 14px;
}

.workflow-matter-selector-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  align-items: end;
  gap: 20px;
  margin-bottom: 10px;
  padding: 14px 16px;
  border: 1px solid #c7dced;
  border-radius: 10px;
  background: #f8fbff;
}

.workflow-matter-selector-copy {
  display: grid;
  gap: 4px;
}

.workflow-matter-selector-copy > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #2f73df;
  font-size: 10px;
  font-weight: 900;
}

.workflow-matter-selector-copy > strong { color: #233f58; font-size: 15px; }
.workflow-matter-selector-copy > small { color: #728497; font-size: 10px; }
.workflow-matter-selector-card label { display: grid; gap: 5px; }
.workflow-matter-selector-card label > span { color: #385875; font-size: 11px; font-weight: 800; }
.workflow-matter-selector-card select { min-height: 42px; border-color: #83acda; background: #fff; color: #254d70; font-weight: 800; }

.workflow-current-context {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  margin-bottom: 10px;
  padding: 10px 13px;
  border-left: 4px solid #2f73df;
  border-radius: 7px;
  background: #edf6ff;
}

.workflow-current-context-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #2f73df;
  box-shadow: 0 2px 8px rgba(48, 100, 153, .12);
}

.workflow-current-context > div { display: grid; gap: 1px; }
.workflow-current-context > div > small { color: #6c8194; font-size: 9px; }
.workflow-current-context > div > strong { color: #1f4e79; font-size: 14px; }
.workflow-current-context p { margin: 0; color: #557086; font-size: 10px; }
.workflow-current-context p b { color: #2e5d87; }

.workflow-simple-help {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 6px;
  background: #fff9e9;
  color: #6e633e;
  font-size: 10px;
  line-height: 1.55;
}

.workflow-builder-section {
  padding: 0 !important;
  overflow: visible;
  border: 0 !important;
  background: transparent !important;
}

.workflow-simple-builder {
  padding: 14px !important;
  overflow: visible;
  border-color: #c7d9e9;
  background: #fbfdff;
}

.workflow-builder-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.workflow-builder-title > div:first-child { display: grid; gap: 3px; }
.workflow-builder-title > div:first-child > span { display: inline-flex; align-items: center; gap: 5px; color: #2f73df; font-size: 9px; font-weight: 900; }
.workflow-builder-title h3 { margin: 0; color: #233f58; font-size: 16px; }
.workflow-builder-title p { max-width: 650px; margin: 0; color: #718295; font-size: 10px; line-height: 1.45; }

.workflow-simple-templates {
  flex: 0 0 auto;
  padding: 5px;
  border: 1px solid #d7e3ef;
  border-radius: 7px;
  background: #f5f8fc;
}

.workflow-node-canvas {
  display: flex;
  align-items: stretch;
  gap: 34px;
  padding: 8px 5px 12px;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-color: #b8cbe0 #edf3f8;
}

.workflow-node-card {
  position: relative;
  z-index: 1;
  flex: 0 0 286px;
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 11px;
  padding: 12px;
  border: 1px solid #cbdbe9;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(42, 76, 110, .08);
}

.workflow-node-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -27px;
  width: 19px;
  height: 8px;
  border-top: 2px solid #8fb0ce;
  border-right: 2px solid #8fb0ce;
  transform: translateY(-50%) rotate(45deg);
}

.workflow-node-card > header {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding-bottom: 9px;
  border-bottom: 1px solid #e2e9f0;
}

.workflow-node-card > header > div { display: grid; gap: 1px; }
.workflow-node-card > header > div > span { color: #294b68; font-size: 12px; font-weight: 900; }
.workflow-node-card > header > div > small { color: #8291a0; font-size: 9px; }
.workflow-node-card .workflow-final-state { padding: 3px 6px; border-radius: 10px; background: #f1f4f7; color: #758696; font-size: 9px; }
.workflow-node-card .workflow-final-state.active { background: #e9f8f0; color: #16784b; }

.workflow-node-name,
.workflow-node-assignee-label { display: grid; gap: 5px; }
.workflow-node-name > span,
.workflow-node-assignee-label > span { color: #385875; font-size: 10px; font-weight: 800; }
.workflow-node-name input { min-height: 38px; }

.workflow-node-card .workflow-assignee-picker {
  position: relative;
  min-width: 0;
}

.workflow-node-card .workflow-assignee-options {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  margin-top: 0;
  box-shadow: 0 14px 32px rgba(31, 65, 98, .2);
}

.workflow-node-card .workflow-step-actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 5px;
  margin-top: 1px;
}

.workflow-node-card .workflow-step-actions button {
  width: auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 0 5px;
  font-size: 10px;
}

.workflow-add-node-button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 2px 0 0 5px;
  padding: 0 13px;
  border: 1px dashed #6f9fd1;
  border-radius: 7px;
  background: #f3f8fe;
  color: #2564a7;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.workflow-simple-preview { margin: 10px 5px 0; }

.workflow-advanced-settings,
.workflow-group-advanced {
  margin-top: 10px;
  border: 1px solid #dce5ed;
  border-radius: 7px;
  background: #f8fafc;
}

.workflow-advanced-settings > summary,
.workflow-group-advanced > summary {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  color: #667b8f;
  font-size: 10px;
  cursor: pointer;
  list-style: none;
}

.workflow-advanced-settings > summary::-webkit-details-marker,
.workflow-group-advanced > summary::-webkit-details-marker { display: none; }
.workflow-advanced-settings .workflow-scheme-fields { margin: 0; padding: 10px; border-top: 1px solid #dce5ed; }
.workflow-advanced-note { align-self: end; margin: 0; color: #7d8d9c; font-size: 9px; line-height: 1.5; }
.workflow-group-advanced .workflow-scope-path { margin: 0; border: 0; border-top: 1px solid #dce5ed; border-radius: 0; }

@media (max-width: 820px) {
  .workflow-simple-entry-guide,
  .workflow-simple-guide { grid-template-columns: 1fr; }
  .workflow-simple-entry-guide > svg,
  .workflow-simple-guide > i { display: none; }
  .workflow-matter-selector-card { grid-template-columns: 1fr; }
  .workflow-current-context { grid-template-columns: 40px minmax(0, 1fr); }
  .workflow-current-context > button { grid-column: 1 / -1; justify-self: start; }
  .workflow-builder-title { flex-direction: column; }
  .workflow-simple-templates { width: 100%; justify-content: flex-start; }
  .workflow-node-card { flex-basis: min(286px, calc(100vw - 74px)); }
}

.business-form .workflow-builder-section {
  overflow: visible !important;
}

.workflow-main-inputs {
  display: grid;
  grid-template-columns: minmax(280px, 1.15fr) minmax(310px, .85fr);
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid #b9d1e7;
  border-radius: 9px;
  background: #eef6ff;
}

.workflow-main-inputs > label,
.workflow-template-field {
  display: grid;
  align-content: start;
  gap: 6px;
}

.workflow-main-inputs > label > span,
.workflow-template-field > span,
.workflow-node-name > span,
.workflow-node-assignee-label > span {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #254f75;
  font-size: 11px;
  font-weight: 900;
}

.workflow-main-inputs input {
  min-height: 43px;
  border: 1px solid #72a3d6 !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #203d58;
  font-size: 13px;
  font-weight: 750;
}

.workflow-main-inputs input::placeholder { color: #93a3b3; font-weight: 500; }

.workflow-template-field .workflow-simple-templates {
  min-height: 43px;
  justify-content: flex-start;
  padding: 5px;
  border-color: #9fbedc;
  background: #fff;
}

.workflow-template-field .workflow-simple-templates button {
  min-height: 31px;
  flex: 1;
}

.workflow-node-input-heading {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 2px 5px 0;
  color: #60788e;
  font-size: 10px;
}

.workflow-node-input-heading > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #2f73df;
  font-weight: 900;
}

.workflow-node-input-heading > strong { color: #385875; font-size: 10px; }

.workflow-node-card .workflow-node-name input,
.workflow-node-card .workflow-assignee-picker select {
  min-height: 42px;
  border: 1px solid #7da9d4 !important;
  border-radius: 7px !important;
  background-color: #fff !important;
  color: #213f5c;
  font-size: 12px;
  font-weight: 750;
}

.workflow-node-card .workflow-node-name input[readonly] {
  border-color: #b9cad9 !important;
  background: #f3f6f9 !important;
  color: #50677c;
}

.workflow-node-card .workflow-assignee-picker select {
  padding-right: 30px;
  cursor: pointer;
}

.workflow-assignee-field-help {
  display: block;
  margin-top: 4px;
  color: #738699;
  font-size: 9px;
  line-height: 1.35;
}

.workflow-step-missing-assignee .workflow-assignee-picker select {
  border-color: #d6935d !important;
  background-color: #fff9f2 !important;
}

@media (max-width: 820px) {
  .workflow-main-inputs { grid-template-columns: 1fr; }
  .workflow-node-input-heading { align-items: flex-start; flex-direction: column; }
}

.settings-workflow-shortcut-button {
  min-height: 42px;
  padding: 0 16px;
  border-color: #1f64c3;
  background: linear-gradient(135deg, #2368c8, #2f7ae4);
  box-shadow: 0 6px 16px rgba(35, 104, 200, .24);
  font-weight: 850;
  white-space: nowrap;
}

.settings-workflow-shortcut-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 19px rgba(35, 104, 200, .3);
}

[data-workflow-settings-center] {
  scroll-margin-top: 18px;
}

.workflow-settings-row {
  cursor: pointer;
}

.workflow-settings-row:hover > td {
  background: #f4f9ff;
}

.workflow-settings-row:hover .workflow-open-builder {
  border-color: #1f64c3;
  box-shadow: 0 3px 10px rgba(35, 104, 200, .16);
}

/* Workflow form fit: one scroll container, complete controls, names-only selects. */
.workflow-designer-modal {
  width: min(1240px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: hidden;
}

.workflow-designer-modal > .modal-header {
  flex: 0 0 auto;
}

.workflow-designer-modal .business-form {
  min-width: 0;
  max-height: calc(100vh - 112px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.workflow-designer-modal :where(input, select, button, label, details, section, div) {
  min-width: 0;
  box-sizing: border-box;
}

.workflow-matter-selector-card {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
}

.workflow-matter-selector-card label,
.workflow-matter-selector-card select,
.workflow-main-inputs > label,
.workflow-main-inputs input,
.workflow-node-name,
.workflow-node-name input,
.workflow-node-assignee-label,
.workflow-node-card .workflow-assignee-picker,
.workflow-node-card .workflow-assignee-picker select {
  width: 100%;
  max-width: 100%;
}

.workflow-matter-selector-card select,
.workflow-node-card .workflow-assignee-picker select,
.workflow-advanced-settings select {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workflow-simple-builder {
  width: 100%;
  min-width: 0;
  overflow: visible !important;
}

.workflow-node-canvas {
  width: 100%;
  max-width: 100%;
  align-items: stretch;
  padding: 10px 8px 18px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-padding-inline: 8px;
}

.workflow-node-card {
  flex-basis: 320px;
  width: 320px;
  max-width: 320px;
}

.workflow-node-card .workflow-assignee-picker select {
  height: 42px;
  padding: 8px 34px 8px 10px;
}

.workflow-node-card .workflow-assignee-picker select option {
  color: #213f5c;
  font-weight: 650;
}

.workflow-advanced-settings .workflow-scheme-fields {
  grid-template-columns: minmax(180px, .55fr) minmax(320px, 1.45fr) minmax(190px, .65fr);
}

.workflow-advanced-settings .workflow-scheme-fields > label {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 980px) {
  .workflow-matter-selector-card,
  .workflow-main-inputs,
  .workflow-advanced-settings .workflow-scheme-fields {
    grid-template-columns: 1fr;
  }

  .workflow-advanced-settings .workflow-scheme-fields > .span-2 {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .workflow-designer-modal {
    top: 8px;
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }

  .workflow-designer-modal .business-form {
    max-height: calc(100vh - 88px);
  }

  .workflow-node-card {
    flex-basis: calc(100vw - 70px);
    width: calc(100vw - 70px);
    max-width: calc(100vw - 70px);
  }
}

/* Raised workflow input treatment without colored top bars. */
.workflow-node-card,
.workflow-node-card[data-start-node="true"],
.workflow-node-card:has(.workflow-final-state.active) {
  border: 1px solid #c4d2df;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  box-shadow:
    0 10px 24px rgba(35, 65, 95, .12),
    0 2px 5px rgba(35, 65, 95, .08),
    inset 0 1px 0 rgba(255, 255, 255, .95);
}

.workflow-node-card .workflow-node-name input,
.workflow-node-card .workflow-assignee-picker select {
  border: 1px solid #a9bbcc !important;
  border-bottom-color: #879db2 !important;
  background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%) !important;
  box-shadow:
    0 4px 9px rgba(35, 65, 95, .13),
    inset 0 1px 0 #ffffff;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.workflow-node-card .workflow-node-name input:hover,
.workflow-node-card .workflow-assignee-picker select:hover {
  border-color: #7f9ebc !important;
  box-shadow:
    0 6px 12px rgba(35, 65, 95, .16),
    inset 0 1px 0 #ffffff;
  transform: translateY(-1px);
}

.workflow-node-card .workflow-node-name input:focus,
.workflow-node-card .workflow-assignee-picker select:focus {
  border-color: #397bd2 !important;
  box-shadow:
    0 7px 15px rgba(47, 115, 223, .19),
    0 0 0 3px rgba(47, 115, 223, .12),
    inset 0 1px 0 #ffffff;
  transform: translateY(-1px);
}

.workflow-node-card .workflow-node-name input[readonly] {
  border-color: #b9c7d4 !important;
  background: linear-gradient(180deg, #f7f9fb 0%, #eef3f7 100%) !important;
  box-shadow:
    0 3px 7px rgba(35, 65, 95, .09),
    inset 0 1px 0 rgba(255, 255, 255, .9);
}

.workflow-step-missing-assignee .workflow-assignee-picker select {
  border-color: #d6935d !important;
  background: linear-gradient(180deg, #fffdf9 0%, #fff7ee 100%) !important;
}

.workflow-assignee-mode-label {
  display: grid;
  gap: 5px;
}
.workflow-assignee-mode-label > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #385875;
  font-size: 10px;
  font-weight: 800;
}
.workflow-assignee-mode-label select {
  width: 100%;
  min-height: 40px;
  padding: 8px 30px 8px 10px;
  border: 1px solid #9cb8c5;
  border-radius: 9px;
  background: linear-gradient(180deg,#fff,#f3f8f9);
  color: #244e5f;
  font-size: 11px;
  font-weight: 750;
}
.workflow-department-assignee {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #b8d4c4;
  border-radius: 11px;
  background: linear-gradient(145deg,#f4fbf6,#fbfdf9);
  box-shadow: inset 0 1px 0 #fff;
}
.workflow-department-assignee[hidden] { display: none !important; }
.workflow-node-assignee-label[hidden] { display: none !important; }
.workflow-department-assignee > header {
  display: grid;
  gap: 2px;
  padding-bottom: 7px;
  border-bottom: 1px solid #d7e5dc;
}
.workflow-department-assignee > header strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #285e43;
  font-size: 11px;
}
.workflow-department-assignee > header small,
.workflow-department-assignee > p {
  margin: 0;
  color: #668072;
  font-size: 9px;
  line-height: 1.5;
}
.workflow-department-role-picker {
  position: relative;
}
.workflow-department-role-picker > summary {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid #abc9b7;
  border-radius: 8px;
  background: #fff;
  color: #315d45;
  cursor: pointer;
  list-style: none;
  font-size: 10px;
  font-weight: 800;
}
.workflow-department-role-picker > summary span { flex: 1; }
.workflow-department-role-picker > summary::-webkit-details-marker { display: none; }
.workflow-department-role-picker > div {
  position: absolute;
  z-index: 35;
  top: calc(100% + 5px);
  right: 0;
  left: 0;
  max-height: 230px;
  overflow: auto;
  padding: 6px;
  border: 1px solid #aac5b4;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 13px 28px rgba(39,82,58,.18);
}
.workflow-department-role-picker > div label {
  display: grid;
  grid-template-columns: 16px minmax(0,1fr);
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 5px 7px;
  border-radius: 6px;
  color: #385848;
  font-size: 10px;
}
.workflow-department-role-picker > div label:hover { background: #eff7f1; }
.workflow-department-role-picker input { width: 15px; height: 15px; margin: 0; accent-color: #2f8054; }
.workflow-department-person-picker > div label > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.workflow-department-person-picker > div label strong {
  overflow: hidden;
  color: #294f3c;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.workflow-department-person-picker > div label small {
  color: #718179;
  font-size: 9px;
  line-height: 1.35;
}
.workflow-department-person-picker > div label.is-unbound {
  background: #f7f5f1;
  color: #8b8175;
  opacity: .78;
}
.workflow-direct-assignee-picker > summary {
  border-color: #a9c6b5;
  background: linear-gradient(145deg,#fff,#f4faf6);
}
.workflow-direct-assignee-note {
  display: block;
  margin-top: 5px;
  color: #60796b;
  font-size: 9px;
  line-height: 1.45;
}
.workflow-step-missing-assignee .workflow-department-assignee {
  border-color: #dcad77;
  background: #fff9f1;
}

/* Editable node-name combobox with persistent custom options. */
.workflow-node-name-control {
  position: relative;
  width: 100%;
}

.workflow-node-card .workflow-node-name-control input {
  width: 100%;
  padding-right: 34px;
}

.workflow-node-name-toggle {
  position: absolute;
  top: 21px;
  right: 11px;
  display: inline-flex;
  width: 24px;
  height: 28px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #607e99;
  cursor: pointer;
  transform: translateY(-50%);
}

.workflow-node-name-menu {
  position: relative;
  z-index: 12;
  display: grid;
  max-height: 190px;
  margin-top: 5px;
  padding: 5px;
  overflow-y: auto;
  border: 1px solid #aebfce;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 10px 22px rgba(35, 65, 95, .16);
}

.workflow-node-name-menu[hidden] {
  display: none;
}

.workflow-node-name-menu button {
  min-height: 32px;
  padding: 6px 9px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #294b68;
  font-size: 11px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.workflow-node-name-menu button:hover,
.workflow-node-name-menu button:focus-visible {
  background: #edf5ff;
  color: #1f64c3;
  outline: none;
}

.workflow-node-name-help {
  display: block;
  min-height: 13px;
  margin-top: 5px;
  color: #6b8094;
  font-size: 9px;
  line-height: 1.4;
}

.workflow-node-name-control.is-saving input {
  border-color: #7f9ebc !important;
}

.workflow-node-name-control.is-saved input {
  border-color: #72a88d !important;
}

.workflow-node-name-control.is-error input {
  border-color: #c97878 !important;
  background: #fffafa !important;
}

/* Refined one-line guidance for system settings forms. */
.settings-form-brief {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #c7d8e7;
  border-radius: 9px;
  background: linear-gradient(135deg, #f7fbff 0%, #f1f7fc 100%);
  color: #315775;
  box-shadow: 0 4px 12px rgba(35, 65, 95, .07);
}

.settings-form-brief > svg {
  flex: 0 0 auto;
  color: #2f73c9;
}

.settings-form-brief > div {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 9px;
}

.settings-form-brief strong {
  color: #244966;
  font-size: 12px;
  white-space: nowrap;
}

.settings-form-brief span {
  color: #60788e;
  font-size: 11px;
  line-height: 1.45;
}

.settings-grid .panel-header p,
.security-center .panel-header p,
.security-command-card p,
.security-policy-panel header p {
  margin-top: 3px;
  margin-bottom: 0;
  color: #647b90;
  font-size: 11px;
  line-height: 1.5;
}

.workflow-current-context > div > b {
  color: #58748d;
  font-size: 10px;
  font-weight: 700;
}

.permission-modal .settings-form-brief,
.user-account-modal .settings-form-brief,
.workflow-designer-modal .settings-form-brief {
  margin-bottom: 2px;
}

@media (max-width: 640px) {
  .settings-form-brief > div {
    display: grid;
    gap: 2px;
  }

  .settings-form-brief strong {
    white-space: normal;
  }
}

.canteen-status-field{min-height:74px;padding:10px 12px;border:1px solid #d5e2ea;border-radius:11px;background:#f8fbfd;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:4px}.canteen-status-field>span{font-size:10px;font-weight:700;color:#60788a}.canteen-status-field small{font-size:9px;color:#7b909d}.canteen-status-badge,.canteen-table-status{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border:1px solid #b9d4df;border-radius:999px;background:#edf7fa;color:#236276;font-size:11px;font-weight:800}.canteen-status-badge[data-status="草稿"],.canteen-table-status[data-status="草稿"]{border-color:#d6dde4;background:#f4f6f8;color:#5d6b78}.canteen-status-badge[data-status="已驳回"],.canteen-table-status[data-status="已驳回"]{border-color:#efb8ae;background:#fff2ef;color:#a64336}.canteen-status-badge[data-status="已批准"],.canteen-status-badge[data-status="已确认"],.canteen-status-badge[data-status="已核算"],.canteen-table-status[data-status="已批准"],.canteen-table-status[data-status="已确认"],.canteen-table-status[data-status="已核算"]{border-color:#b7dfc3;background:#effaf2;color:#24703b}.canteen-approval-route{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:2px 0 15px;padding:13px 15px;border:1px solid #c6dfe8;border-radius:13px;background:linear-gradient(120deg,#f3fbfd,#f7fafc);color:#426779}.canteen-approval-route>span{display:inline-flex;align-items:center;gap:6px;margin-right:4px;color:#1c667b;font-weight:800}.canteen-approval-route strong{padding:5px 9px;border-radius:8px;background:#fff;color:#22536b;box-shadow:0 2px 7px rgba(31,76,101,.08)}.canteen-approval-route i{font-style:normal;color:#7aa0b1}.canteen-approval-route small{flex:1 1 260px;text-align:right;color:#68808e}.canteen-approval-actions .outline-button{margin-left:auto}.canteen-approval-actions .primary-button{margin-left:0}.canteen-locked-label{display:inline-flex;align-items:center;gap:5px;color:#667d8b;font-size:11px;font-weight:700;white-space:nowrap}

.office-security-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:14px;border:1px solid #d6e3ec;border-radius:14px;background:#f8fbfd}.office-security-selector legend{padding:0 7px;color:#254b63;font-size:13px;font-weight:800}.office-security-selector legend small{margin-left:7px;color:#7a8f9d;font-size:10px;font-weight:600}.office-security-option{position:relative;display:flex!important;align-items:flex-start!important;gap:10px;padding:14px 15px;border:1px solid #cbdce7;border-radius:12px;background:#fff;cursor:pointer;transition:.18s}.office-security-option:hover{border-color:#73a5bc;box-shadow:0 5px 18px rgba(26,91,122,.08)}.office-security-option:has(input:checked){border-color:#277891;box-shadow:0 0 0 3px rgba(39,120,145,.1)}.office-security-option.is-confidential:has(input:checked){border-color:#b4533f;background:#fff8f6;box-shadow:0 0 0 3px rgba(180,83,63,.1)}.office-security-option input{width:17px!important;height:17px!important;margin-top:3px;accent-color:#26788f}.office-security-option>span{display:flex;flex-direction:column;gap:5px}.office-security-option strong{display:flex;align-items:center;gap:7px;color:#173f58;font-size:13px}.office-security-option.is-confidential strong{color:#984631}.office-security-option small{color:#687f90;font-size:11px;line-height:1.55}@media(max-width:760px){.office-security-selector{grid-template-columns:1fr}.office-security-selector legend small{display:block;margin:4px 0 0}}

.vehicle-kpi-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.vehicle-kpi-strip article.has-risk{border-color:#efc2b6;background:linear-gradient(140deg,#fff,#fff5f2)}.vehicle-kpi-strip article.has-risk strong{color:#a44332}.vehicle-ledger .data-table{min-width:1420px}.vehicle-status{display:inline-flex;padding:4px 9px;border-radius:999px;border:1px solid #b8d9c2;background:#eff9f2;color:#226d3b;font-size:11px;font-weight:800}.vehicle-status[data-status="使用中"]{border-color:#bed2ec;background:#f1f6fc;color:#2b5f96}.vehicle-status[data-status="维修中"]{border-color:#efc1a6;background:#fff5ed;color:#a45222}.vehicle-status[data-status="停用"],.vehicle-status[data-status="已处置"]{border-color:#d5dce2;background:#f4f6f8;color:#687681}.vehicle-alerts{display:flex;flex-direction:column;gap:4px}.vehicle-alerts span{display:inline-flex;width:max-content;max-width:220px;padding:3px 7px;border-radius:7px;background:#fff0eb;color:#a14332;font-size:10px;font-weight:700}.vehicle-risk-normal{color:#2f7a49;font-size:11px;font-weight:800}.vehicle-energy-form{padding:18px 19px!important;border:1px solid #cce0e9!important;border-radius:17px!important;background:linear-gradient(145deg,#fff,#f2f9fb)!important;box-shadow:0 8px 26px rgba(38,73,99,.07)}.vehicle-energy-identity{display:flex;align-items:center;gap:10px;margin:0 0 15px;padding:12px 14px;border:1px solid #c4dce6;border-radius:12px;background:#edf8fb;color:#245b71}.vehicle-energy-identity>svg{flex:none}.vehicle-energy-identity>div{display:grid;gap:2px;margin-right:auto}.vehicle-energy-identity strong{color:#123f58}.vehicle-energy-identity small{color:#6d8391}.vehicle-energy-identity>span{padding:5px 9px;border-radius:999px;background:#fff;color:#3b6578;font-size:10px;font-weight:800}.vehicle-energy-ledger .data-table{min-width:1500px}.vehicle-energy-type{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf7ff;color:#23649a;font-size:10px;font-weight:800}.vehicle-energy-type[data-type$="充值"]{background:#eef9f0;color:#297342}.vehicle-row-actions{display:flex;gap:6px}.workflow-dynamic-initiator{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:72px;padding:11px;border:1px solid #b9d9e5;border-radius:12px;background:linear-gradient(135deg,#effbff,#f7fbff)}.workflow-dynamic-initiator-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#d6f0f5;color:#176b7b}.workflow-dynamic-initiator>div{display:grid;gap:3px}.workflow-dynamic-initiator strong{color:#164d64;font-size:11px}.workflow-dynamic-initiator small{color:#688193;font-size:9px;line-height:1.45}.workflow-dynamic-initiator em{padding:4px 7px;border-radius:999px;background:#dff4e8;color:#23724b;font-size:9px;font-style:normal;font-weight:800}.workflow-final-state.is-identity{background:#e8f5fb!important;color:#236b84!important}.workflow-live-preview span.is-identity{border-color:#bcdce7;background:#f1fbfe}@media(max-width:1250px){.vehicle-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.vehicle-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-energy-identity{align-items:flex-start;flex-wrap:wrap}.vehicle-energy-identity>div{min-width:calc(100% - 54px)}}

.inventory-control-workbench{overflow:hidden;padding:0;border-color:#bfd8d2;background:linear-gradient(145deg,#f9fffd,#eef8f5);box-shadow:0 14px 34px rgba(28,91,76,.08)}
.inventory-control-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid #d1e4df;background:linear-gradient(120deg,rgba(35,123,101,.08),rgba(255,255,255,.82))}.inventory-control-heading>div>span{display:flex;align-items:center;gap:7px;color:#23705f;font-size:11px;font-weight:800;letter-spacing:.08em}.inventory-control-heading h2{margin:6px 0 3px;color:#173f36;font-size:20px}.inventory-control-heading p{margin:0;color:#607e76;font-size:11px;line-height:1.55}.inventory-control-heading>em{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #b7d9cf;border-radius:999px;background:#fff;color:#246b5a;font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}
.inventory-control-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:16px}.inventory-control-group{display:grid;gap:14px;padding:16px;border:1px solid #c9ddd8;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(37,82,72,.06)}.inventory-control-group header{display:flex;align-items:center;gap:10px}.inventory-control-group header>i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e6f5f0;color:#23745f}.inventory-control-group header>div{display:grid;gap:3px;min-width:0;margin-right:auto}.inventory-control-group header strong{color:#193f36;font-size:13px}.inventory-control-group header small{overflow:hidden;color:#71877f;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.inventory-control-group header>b{display:grid;color:#215f50;font-size:17px;text-align:right}.inventory-control-group header>b small{color:#80958f;font-size:8px;font-weight:600}.inventory-control-group>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inventory-control-group>div>span{display:grid;gap:3px;padding:8px 10px;border-radius:9px;background:#f3f8f6;color:#6c817a;font-size:9px}.inventory-control-group>div strong{color:#2c5f53;font-size:12px}.inventory-control-group footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inventory-control-group footer button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid #b8d7ce;border-radius:9px;background:#eef8f5;color:#226c59;font-size:10px;font-weight:800;cursor:pointer}.inventory-control-group footer button+button{border-color:#cbd8e5;background:#f4f7fb;color:#48647e}.inventory-control-group footer button:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(35,91,76,.1)}
@media(max-width:1050px){.inventory-control-groups{grid-template-columns:1fr}.inventory-control-group header small{white-space:normal}}@media(max-width:680px){.inventory-control-heading{align-items:flex-start;flex-direction:column}.inventory-control-heading>em{align-self:flex-start}.inventory-control-groups{padding:11px}.inventory-control-group footer{grid-template-columns:1fr}}

/* 20260818-inventory-ledger-entry-release-338：进销管控默认显示台账，右上角进入独立仓库扫码作业。 */
.inventory-standalone-page{width:calc(100% - 24px);margin:12px 12px 28px;display:grid;gap:12px}.inventory-view-switcher{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border:1px solid #cdd9d2;border-radius:14px;background:linear-gradient(110deg,#fffdf8,#edf5f0);box-shadow:0 8px 22px rgba(43,67,55,.07)}.inventory-view-switcher>div:first-child{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 9px}.inventory-view-switcher>div:first-child>span{grid-row:1 / span 2;display:flex;align-items:center;gap:6px;color:#31705c;font-size:11px;font-weight:800}.inventory-view-switcher>div:first-child>strong{padding-left:9px;border-left:1px solid #cfd9d3;color:#24483b;font-size:16px}.inventory-view-switcher>div:first-child>small{grid-column:2;padding-left:9px;color:#74867d;font-size:9px}.inventory-view-switcher>div:last-child{display:flex;gap:7px}.inventory-view-switcher button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 14px;border:1px solid #cbd7d0;border-radius:10px;background:#fff;color:#53675e;font-size:12px;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.inventory-view-switcher .inventory-enter-scan{min-height:48px;padding:10px 21px;border-color:#236b55;background:linear-gradient(135deg,#34846a,#236650);color:#fff;font-size:14px;box-shadow:0 11px 23px rgba(35,102,80,.3),inset 0 1px 0 rgba(255,255,255,.28);transform:translateY(-1px)}.inventory-view-switcher .inventory-enter-scan:hover,.inventory-view-switcher .inventory-enter-scan:focus-visible{border-color:#174e3c;box-shadow:0 15px 29px rgba(35,102,80,.36),0 0 0 3px rgba(52,132,106,.13);transform:translateY(-3px)}.inventory-view-switcher .inventory-return-ledger{border-color:#b9c9c0;background:linear-gradient(180deg,#fff,#f1f5f2);color:#365b4d;box-shadow:0 5px 12px rgba(49,81,67,.1)}.inventory-view-switcher .inventory-return-ledger:hover,.inventory-view-switcher .inventory-return-ledger:focus-visible{border-color:#6f9c89;box-shadow:0 8px 17px rgba(49,81,67,.16);transform:translateY(-2px)}.inventory-ledger-entry{grid-column:1 / -1;position:relative;z-index:2}
.inventory-inline-workbench{grid-column:1/-1;overflow:hidden;padding:0;border:1px solid #c9d8cf;background:linear-gradient(145deg,#f8f7f2,#eef5f0);box-shadow:0 18px 46px rgba(35,63,50,.12)}
.inventory-module-grid{width:calc(100% - 24px);margin:12px 12px 26px;padding:13px;gap:13px}
.inventory-inline-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 26px;border-bottom:1px solid #d1dbd5;background:linear-gradient(115deg,#edf5f0,#fffaf1)}.inventory-inline-heading>div>span{display:flex;align-items:center;gap:7px;color:#286b56;font-size:12px;font-weight:850;letter-spacing:.06em}.inventory-inline-heading h2{margin:5px 0 3px;color:#173d31;font-size:25px}.inventory-inline-heading p{margin:0;color:#67756e;font-size:12px}.inventory-inline-heading aside{display:grid;min-width:116px;padding:10px 14px;border:1px solid #c4d6cd;border-radius:11px;background:#fff;text-align:right}.inventory-inline-heading aside strong{color:#285f4d;font-size:22px}.inventory-inline-heading aside small{color:#758078;font-size:10px}
.inventory-inline-workbench>.inventory-simple-home{display:block;overflow:visible;padding:22px 26px 27px;background:transparent}.inventory-inline-workbench .inventory-simple-hero{padding:21px 24px}.inventory-inline-workbench .inventory-simple-hero>span{flex-basis:62px;width:62px;height:62px}.inventory-inline-workbench .inventory-simple-hero h3{font-size:28px}.inventory-inline-workbench .inventory-simple-hero p{font-size:13px}.inventory-inline-workbench .inventory-unified-workflow{gap:16px;margin-top:16px}.inventory-inline-workbench .inventory-unified-section{padding:18px;border-radius:17px}.inventory-inline-workbench .inventory-workflow-heading{padding-bottom:14px}.inventory-inline-workbench .inventory-workflow-heading strong{font-size:18px}.inventory-inline-workbench .inventory-workflow-heading small{font-size:12px}.inventory-inline-workbench .inventory-formal-document-grid{gap:13px;margin-top:14px}.inventory-inline-workbench .inventory-formal-document-grid>article{padding:15px}.inventory-inline-workbench .inventory-formal-document-grid>article strong{font-size:15px}.inventory-inline-workbench .inventory-formal-document-grid>article small{font-size:11px}.inventory-inline-workbench .inventory-formal-document-grid nav button{min-height:42px;font-size:13px}.inventory-inline-workbench .inventory-workflow-decision{min-height:42px;padding:10px 13px;font-size:12px}.inventory-inline-workbench .inventory-simple-task-grid{gap:14px;margin-top:14px}.inventory-inline-workbench .inventory-simple-task-grid>button{min-height:154px;padding:19px 21px}.inventory-inline-workbench .inventory-simple-task-grid>button>strong{font-size:20px}.inventory-inline-workbench .inventory-simple-task-grid>button>em,.inventory-inline-workbench .inventory-simple-task-grid>button>small{font-size:12px}.inventory-inline-workbench .inventory-label-entry{margin-top:14px;padding:16px 18px}.inventory-inline-workbench .inventory-label-entry strong{font-size:17px}.inventory-inline-workbench .inventory-label-entry button{min-height:45px;font-size:13px}
@media(max-width:1050px){.inventory-inline-heading{padding:18px 20px}.inventory-inline-workbench>.inventory-simple-home{padding:18px 20px 22px}.inventory-inline-workbench .inventory-formal-document-grid{grid-template-columns:1fr}.inventory-inline-workbench .inventory-simple-task-grid{grid-template-columns:1fr}.inventory-inline-workbench .inventory-simple-task-grid>button{min-height:138px}}
@media(max-width:700px){.inventory-standalone-page{width:calc(100% - 12px);margin:6px 6px 18px;gap:8px}.inventory-view-switcher{align-items:stretch;flex-direction:column;padding:10px}.inventory-view-switcher>div:last-child{display:grid;grid-template-columns:1fr}.inventory-view-switcher button,.inventory-view-switcher .inventory-enter-scan{width:100%;justify-content:center}.inventory-module-grid{width:calc(100% - 12px);margin:6px 6px 18px;padding:7px}.inventory-inline-heading{align-items:flex-start;flex-direction:column;padding:15px}.inventory-inline-heading h2{font-size:21px}.inventory-inline-heading aside{width:100%;text-align:left}.inventory-inline-workbench>.inventory-simple-home{padding:12px}.inventory-inline-workbench .inventory-simple-hero{padding:15px}.inventory-inline-workbench .inventory-simple-hero>span{flex-basis:46px;width:46px;height:46px}.inventory-inline-workbench .inventory-simple-hero h3{font-size:21px}.inventory-inline-workbench .inventory-unified-section{padding:12px}.inventory-inline-workbench .inventory-simple-task-grid>button{min-height:122px;padding:14px}}

/* Release 143: editable drafts, offboarding handover ledger and production multi-line selectors */
.addable-choice-control{display:grid;gap:5px;min-width:0}.addable-choice-new{display:grid;gap:2px;padding:6px;border:1px dashed #a9c5d4;border-radius:8px;background:#f5fafc}.addable-choice-new[hidden]{display:none}.addable-choice-new small{color:#718895;font-size:9px}.draft-edit-button{display:inline-flex!important;align-items:center;gap:5px;min-height:30px;padding:5px 10px!important;border-radius:8px!important;font-size:10px!important}.business-draft-list article{grid-template-columns:36px minmax(210px,1fr) auto auto auto}
.offboarding-handover-ledger{overflow:hidden;border:1px solid #bfd7df;border-radius:13px;background:#f8fcfd}.offboarding-handover-ledger[hidden]{display:none}.offboarding-handover-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border-bottom:1px solid #d7e6eb;background:linear-gradient(115deg,#edf8fa,#f9fcfd)}.offboarding-handover-head>div{display:grid;gap:3px}.offboarding-handover-head strong{color:#24586a;font-size:13px}.offboarding-handover-head small{color:#6f8790;font-size:10px}.offboarding-handover-head>span{display:flex;align-items:center;gap:5px;color:#287189;font-size:10px;font-weight:800;white-space:nowrap}.offboarding-handover-columns,.handover-detail-row{display:grid;grid-template-columns:42px minmax(150px,1.1fr) minmax(170px,1.2fr) minmax(130px,1fr) 70px minmax(105px,.8fr) 95px minmax(140px,1fr) 38px;align-items:start;gap:8px;min-width:1260px}.offboarding-handover-columns{padding:8px 12px;background:#eaf3f6;color:#526f7c;font-size:9px;font-weight:800}.offboarding-handover-columns span{text-align:center}.offboarding-handover-ledger>[data-offboarding-handover-lines]{overflow-x:auto}.handover-detail-row{padding:10px 12px;border-top:1px solid #e1ebee;background:#fff}.handover-detail-row:first-child{border-top:0}.handover-detail-row label{display:grid;gap:4px}.handover-detail-row label>span{color:#607782;font-size:9px;font-weight:750}.handover-line-index,.production-line-index{display:grid;place-items:center;width:30px;height:30px;margin-top:18px;border-radius:9px;background:#e5f1f5;color:#29677b;font-size:10px;font-weight:900}.handover-detail-row>.icon-button{margin-top:18px}.offboarding-add-line,.production-add-line{margin:10px 12px 13px}
.production-multi-detail-section{overflow:hidden!important;border-color:#c6dce5!important;background:linear-gradient(145deg,#fbfeff,#f3f9fb)!important}.production-detail-columns,.production-detail-row{display:grid;align-items:start;gap:8px;min-width:1220px}.production-detail-columns{padding:8px 12px;background:#e7f1f5;color:#4c6b79;font-size:9px;font-weight:850;text-align:center}.production-detail-row{padding:11px 12px;border-top:1px solid #dfe9ed;background:#fff}.production-detail-row label{display:grid;gap:4px}.production-detail-row label>span{color:#5e7783;font-size:9px;font-weight:750}.production-detail-row>.icon-button{margin-top:18px}.production-line-wide{min-width:0}.production-multi-detail-section>[data-draft-repeat-container]{overflow-x:auto}.purchase-material-columns,.purchase-material-row{grid-template-columns:42px minmax(155px,1.2fr) minmax(125px,1fr) minmax(125px,1fr) 84px 84px minmax(146px,.9fr) minmax(115px,.9fr) minmax(170px,1.3fr) 38px;min-width:1410px}.purchase-material-row select[name="procurementMode"]{width:100%;min-width:0;padding-right:31px;font-weight:750;color:#215947;background-color:#f5faf7}.production-plan-columns,.production-plan-row{grid-template-columns:42px minmax(150px,1.1fr) minmax(115px,.9fr) minmax(120px,.9fr) 82px 90px 118px 118px 105px minmax(155px,1.2fr) 38px}.daily-material-columns,.daily-material-row{grid-template-columns:42px 95px minmax(165px,1.2fr) 90px 88px 95px 95px minmax(150px,1.1fr) 38px}.daily-output-columns,.daily-output-row{grid-template-columns:42px minmax(180px,1.3fr) 100px 90px 105px minmax(220px,1.5fr) 38px;min-width:920px}.daily-production-split{grid-template-columns:1fr}.compact-daily-actions .business-draft-save,.intermediate-form-actions .business-draft-save{margin-left:auto}.compact-daily-actions .business-draft-save+.primary-button,.intermediate-form-actions .business-draft-save+.primary-button{margin-left:0}
.workshop-check-line .addable-choice-control select,.workshop-check-line .addable-choice-new input{min-width:0}.workshop-check-line-grid{align-items:start}
@media(max-width:900px){.business-draft-list article{grid-template-columns:34px minmax(0,1fr) auto}.business-draft-list article>button{grid-column:auto}.offboarding-handover-head{align-items:flex-start;flex-direction:column}.production-multi-detail-section,.offboarding-handover-ledger{margin-left:-4px;margin-right:-4px}.compact-daily-actions,.intermediate-form-actions{align-items:stretch;flex-direction:column}.compact-daily-actions .business-draft-save,.intermediate-form-actions .business-draft-save{margin-left:0}}

.master-data-form [data-master-data-code][readonly]{border-color:#a8cfbe;background:linear-gradient(135deg,#f0faf5,#f7fcf9);color:#277050;font-weight:800}.master-data-form label>small{display:block;margin-top:4px;color:#708891;font-size:9px;line-height:1.4}.master-data-form [data-material-category-field]{padding:8px 10px;border:1px solid #cae1d7;border-radius:10px;background:#f4fbf7}.master-data-form [data-material-category-field][hidden]{display:none}.table-subtext{display:block;margin-top:3px;color:#38745d;font-size:9px;font-weight:800}

/* Release 144: wide production applications and refined daily workbenches */
.production-application-modal{display:flex;flex-direction:column;width:min(1580px,calc(100vw - 18px));height:auto;max-height:calc(100vh - 18px);overflow:hidden;background:#f3f7f9}.production-application-modal>.modal-header{border-bottom-color:#bfd5df;background:linear-gradient(110deg,#fff 0%,#eef7fa 100%)}.production-application-modal>form{min-height:0;max-height:calc(100vh - 92px);overflow:auto;padding:17px 21px 20px}.production-application-modal .shared-data-strip{margin:0;border-color:#b9d9d1;background:linear-gradient(100deg,#effaf6,#f7fbfd)}.production-application-modal .form-section{border-color:#cbdde5;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(31,76,96,.055)}.production-application-modal .form-section-title{border-bottom-color:#d6e5ea;background:linear-gradient(100deg,#f1f8fa,#fbfdfe)}.production-application-modal .form-section-title strong{color:#174c62;font-size:14px}.production-application-modal .form-section-title span{color:#6d818c}.production-application-modal .production-multi-detail-section{border-color:#a9cedb!important;box-shadow:0 9px 24px rgba(27,92,116,.08)}.production-application-modal .modal-actions{position:sticky;bottom:-20px;z-index:5;margin:0 -21px -20px;padding:11px 21px;border-top:1px solid #bfd3dc;background:rgba(247,251,252,.97);backdrop-filter:blur(9px)}
.application-flow-strip{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:7px 14px;border:1px solid #c4dce5;border-radius:12px;background:#fff;color:#58727e}.application-flow-strip span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9px;font-size:11px;font-weight:800}.application-flow-strip span.is-current{background:#dff2f5;color:#176779}.application-flow-strip i{display:flex;color:#8ba2ad}.stock-application-columns,.stock-application-row{grid-template-columns:42px minmax(170px,1.2fr) minmax(135px,.9fr) minmax(135px,.9fr) minmax(125px,.8fr) 88px 100px minmax(150px,1fr) minmax(210px,1.35fr) 38px;min-width:1440px}.stock-application-detail-section>[data-stock-application-lines]{overflow-x:auto}.stock-application-row [data-auto-material-code]{border-color:#aed3c1;background:#f1faf5;color:#27704f;font-weight:800}.stock-application-form .addable-choice-control select{min-width:0}.stock-application-form .addable-choice-new input{min-width:0}
.daily-production-modal{width:min(1580px,calc(100vw - 18px));height:min(940px,calc(100vh - 18px));background:#f2f6f8}.daily-production-modal>.modal-header{border-bottom:1px solid #bcd4de;background:linear-gradient(110deg,#fff,#eaf5f8)}.daily-production-scroll{padding:12px 18px 18px}.production-day-hero{margin:0 0 10px;padding:13px 16px;border-radius:14px;box-shadow:0 7px 20px rgba(38,84,102,.07)}.production-day-hero .daily-coverage-main{grid-template-columns:minmax(220px,auto) auto minmax(300px,1fr)}.production-day-hero .daily-coverage-main>strong{font-size:22px}.compact-daily-form{gap:10px}.daily-form-completeness{top:6px;min-height:48px;border-radius:12px;box-shadow:0 6px 18px rgba(94,73,25,.09)}.compact-daily-section{padding:11px!important;border:1px solid #c8dce4!important;border-radius:13px!important;background:#fff!important;box-shadow:0 6px 18px rgba(38,78,96,.055)}.compact-daily-section>.form-section-title{margin:-11px -11px 9px!important;padding:8px 12px!important;background:linear-gradient(100deg,#eef7fa,#fbfdfe)!important}.daily-identity-section{border-left:4px solid #3f88a3!important}.daily-input-section{border-left:4px solid #3b9278!important}.daily-output-section{border-left:4px solid #6d75b8!important}.daily-energy-section{border-left:4px solid #d09a42!important}.daily-energy-section .compact-daily-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.daily-energy-section .daily-field-help{min-height:48px!important;border-radius:9px;overflow:hidden}.compact-daily-actions{bottom:6px;min-height:54px;border-radius:12px;box-shadow:0 7px 20px rgba(33,75,94,.1)}.compact-daily-ledger{margin-top:11px!important;border:1px solid #ccdce3!important;border-radius:13px!important;background:#fff!important}
.intermediate-inventory-modal{width:min(1580px,calc(100vw - 18px));height:min(940px,calc(100vh - 18px));max-height:calc(100vh - 18px);background:#f1f5f7}.intermediate-inventory-modal>.modal-header{border-bottom:1px solid #bcd5df;background:linear-gradient(110deg,#fff,#eaf5f8)}.intermediate-inventory-scroll{padding:12px 18px 18px}.intermediate-day-hero{margin:0 0 10px;border-radius:14px;box-shadow:0 7px 20px rgba(34,80,99,.07)}.intermediate-dashboard-hero{grid-template-columns:minmax(330px,.75fr) minmax(0,1.45fr);padding:15px 17px;border:1px solid #bdd8e2;border-radius:14px;background:linear-gradient(120deg,#eaf6f9,#fff);box-shadow:0 8px 22px rgba(37,86,106,.07)}.intermediate-dashboard-hero .intermediate-summary-grid{gap:9px}.intermediate-dashboard-hero .intermediate-summary-grid article{min-height:74px;border:1px solid #cae0e7;border-radius:11px;background:rgba(255,255,255,.9)}.intermediate-entry-grid{grid-template-columns:minmax(270px,310px) minmax(0,1fr);gap:11px}.intermediate-task-rail,.intermediate-measurement-form,.intermediate-tank-maintenance,.intermediate-live-ledger,.intermediate-recent-ledger{border-radius:13px!important;box-shadow:0 7px 20px rgba(34,77,96,.055)}.intermediate-measurement-form .form-section{padding:0 14px 13px}.intermediate-measurement-form .intermediate-form-title{margin:0 -14px 11px;padding:10px 14px}.intermediate-current-tank{padding:11px 12px;border-radius:12px}.intermediate-measurement-form .intermediate-form-grid{gap:8px}.intermediate-measurement-form .intermediate-form-grid>label:not(.sheet-field){border-radius:10px}.intermediate-calculation-panel{margin-top:9px;padding:8px;border-radius:11px}.intermediate-measurement-form .intermediate-form-actions{margin:9px -14px -13px;padding:10px 14px}
@media(max-width:1180px){.production-application-modal{width:calc(100vw - 12px)}.production-application-modal .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.application-flow-strip{justify-content:flex-start;overflow-x:auto}.intermediate-dashboard-hero{grid-template-columns:1fr}.intermediate-entry-grid{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:820px){.production-application-modal .form-grid-4{grid-template-columns:1fr}.production-application-modal .span-2,.production-application-modal .span-3,.production-application-modal .span-4{grid-column:span 1}.production-day-hero .daily-coverage-main{grid-template-columns:1fr}.daily-energy-section .compact-daily-grid{grid-template-columns:1fr}.intermediate-entry-grid{grid-template-columns:1fr}.intermediate-dashboard-hero{padding:11px}.intermediate-inventory-scroll,.daily-production-scroll{padding:8px}.production-application-modal>form{padding:11px}.production-application-modal .modal-actions{margin:0 -11px -11px;padding:10px 11px}}

/* Release 145: in-form draft modification table */
.business-draft-modify{display:inline-flex!important;align-items:center;gap:6px;border-color:#85b9b2!important;background:#eef9f7!important;color:#236d66!important;font-weight:800!important}.business-draft-modify:hover,.business-draft-modify:focus-visible{border-color:#4c968c!important;background:#dff3ef!important;box-shadow:0 0 0 3px rgba(50,133,122,.11)}.business-form-draft-editor{overflow:hidden;margin:2px 0 10px;border:1px solid #a9cec8;border-radius:13px;background:#fff;box-shadow:0 8px 24px rgba(30,94,86,.08)}.business-form-draft-editor>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #cfe3df;background:linear-gradient(105deg,#eaf7f4,#f8fcfb)}.business-form-draft-editor>header>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 9px}.business-form-draft-editor>header span{display:inline-flex;align-items:center;gap:5px;grid-row:span 2;color:#27746b;font-size:10px;font-weight:850}.business-form-draft-editor>header strong{color:#20584f;font-size:13px}.business-form-draft-editor>header small{color:#6d847f;font-size:10px}.business-form-draft-table-wrap{overflow-x:auto}.business-form-draft-editor table{width:100%;min-width:720px;border-collapse:collapse}.business-form-draft-editor th{padding:7px 10px;border-bottom:1px solid #d8e7e3;background:#f3f8f7;color:#58726c;font-size:9px;text-align:left}.business-form-draft-editor td{padding:8px 10px;border-bottom:1px solid #e7efed;color:#536c67;font-size:10px}.business-form-draft-editor tbody tr:last-child td{border-bottom:0}.business-form-draft-editor tbody tr.is-current{background:#f0faf7}.business-form-draft-editor td strong{color:#285d55;font-size:11px}.business-form-draft-editor td>span{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eaf5f2;color:#2f756c;font-size:9px;font-weight:800}.business-form-draft-empty{display:flex;align-items:center;justify-content:center;gap:11px;min-height:82px;padding:12px;color:#72908a}.business-form-draft-empty>div{display:grid;gap:2px}.business-form-draft-empty strong{color:#3e6b63;font-size:12px}.business-form-draft-empty span{font-size:10px}.compact-daily-actions .business-draft-modify,.intermediate-form-actions .business-draft-modify{margin-left:0}@media(max-width:720px){.business-form-draft-editor>header{align-items:flex-start}.business-form-draft-editor>header>div{grid-template-columns:1fr}.business-form-draft-editor>header span{grid-row:auto}.modal-actions .business-draft-save,.modal-actions .business-draft-modify{flex:1 1 130px;justify-content:center}}

/* 采购合同整屏框架：表单正文独立滚动，草稿与提交按钮始终留在可视区 */
.data-modal.purchase-contract-modal{top:10px;display:grid;grid-template-rows:auto minmax(0,1fr);height:calc(100vh - 20px);max-height:calc(100vh - 20px);overflow:hidden}
.purchase-contract-modal>form.business-form{min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding-bottom:92px}
.purchase-contract-modal .modal-actions{position:absolute;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-height:68px;margin:0;padding:12px 20px;border-top:2px solid #b7ccd8;background:rgba(250,253,255,.985);box-shadow:0 -10px 25px rgba(25,67,89,.13);backdrop-filter:blur(10px)}
.purchase-contract-modal .modal-actions .form-submit-note{margin-right:auto}.purchase-contract-modal .modal-actions button{flex:0 0 auto;min-height:40px;white-space:nowrap}
@media(max-width:900px){.data-modal.purchase-contract-modal{top:6px;width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}.purchase-contract-modal>form.business-form{padding-bottom:132px}.purchase-contract-modal .contract-document-panel{grid-template-columns:1fr}.purchase-contract-modal .modal-actions .form-submit-note{flex:1 1 100%;margin-right:0}.office-administrative-document-upload .office-document-review{grid-template-columns:1fr;min-height:500px}.office-administrative-document-upload .office-original-pdf iframe{height:460px}}
@media(max-width:620px){.purchase-contract-modal>form.business-form{padding-bottom:174px}.purchase-contract-modal .modal-actions{padding:9px 10px}.purchase-contract-modal .modal-actions button{flex:1 1 130px;justify-content:center}.office-administrative-document-upload .office-document-review{min-height:430px;padding:8px}.office-administrative-document-upload .office-original-pdf,.office-administrative-document-upload .office-original-image{min-height:390px;padding:7px}.office-administrative-document-upload .office-original-pdf iframe{height:390px}.office-preview-toolbar{align-items:flex-start;flex-direction:column}.office-preview-toolbar>button{width:100%;justify-content:center}}

/* 采购合同单窗口浏览：业务信息、明细、条款和文档按顺序纵向浏览。 */
.purchase-contract-modal>form.business-form{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0;min-height:0;padding:0;overflow:hidden;background:#edf3f6}
.purchase-contract-window-body{display:block;min-width:0;min-height:0;padding:12px 14px 18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:linear-gradient(145deg,#f4f8fa,#e9f1f5)}
.purchase-contract-window-fields{position:static;display:grid;align-content:start;gap:12px;width:100%;min-width:0;min-height:auto;padding:0;overflow:visible}
.purchase-contract-window-fields .form-grid-4{width:100%;min-width:0}
.purchase-contract-window-fields .form-grid-4>label{min-width:0;max-width:100%;overflow:hidden}
.purchase-contract-status-field{min-width:0;overflow:hidden}
.purchase-contract-status-field input{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.purchase-contract-document-window{position:relative;width:100%;min-width:0;min-height:0;margin-top:12px;border:1px solid #8fb0c2!important;border-radius:14px!important;background:#fff!important;box-shadow:0 10px 28px rgba(28,70,94,.1)!important;overflow:hidden!important}
.purchase-contract-document-window>.form-section-title{border-bottom:1px solid #a9c5d3;background:linear-gradient(100deg,#e4f2f7,#f8fcfd)}
.purchase-contract-document-window .contract-document-panel{grid-template-columns:minmax(0,1fr);border-bottom-color:#aebfca}
.purchase-contract-document-window .contract-document-upload{align-content:start;padding:16px;border-right:0;border-bottom:1px solid #aebfca;background:linear-gradient(145deg,#f5fbfd,#edf6fa)}
.purchase-contract-document-window .contract-document-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.purchase-contract-document-window .contract-document-preview{height:min(58vh,560px);min-height:420px}
.purchase-contract-document-window .contract-scan-review{grid-template-columns:1fr}
.purchase-contract-document-window .contract-scan-review figure{border-right:0;border-bottom:1px solid #c8d5e3}
.purchase-contract-document-window>label{margin:12px;border:1px solid #bfd0da;border-radius:9px;overflow:hidden}
.purchase-contract-modal .modal-actions{position:static;right:auto;bottom:auto;left:auto;z-index:12;grid-row:2;min-height:68px;margin:0;padding:11px 18px}
@media(max-width:1180px){.purchase-contract-window-fields .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-contract-window-fields .form-grid-4>.span-2,.purchase-contract-window-fields .form-grid-4>.span-3,.purchase-contract-window-fields .form-grid-4>.span-4{grid-column:span 2}.purchase-contract-status-field{grid-column:span 1}}
@media(max-width:760px){.purchase-contract-window-body{padding:8px}.purchase-contract-window-fields .form-grid-4{grid-template-columns:minmax(0,1fr)}.purchase-contract-window-fields .form-grid-4>.span-2,.purchase-contract-window-fields .form-grid-4>.span-3,.purchase-contract-window-fields .form-grid-4>.span-4,.purchase-contract-status-field{grid-column:1}.purchase-contract-document-window .contract-document-actions{grid-template-columns:1fr}.purchase-contract-document-window .contract-document-preview{height:400px;min-height:320px}.purchase-contract-modal .modal-actions .form-submit-note{flex-basis:100%}}
@media(max-width:620px){.purchase-contract-window-body{padding:6px}.purchase-contract-document-window .contract-document-preview{height:300px;min-height:250px}.purchase-contract-modal .modal-actions{padding:8px}.purchase-contract-modal .modal-actions button{flex:1 1 120px}}

/* 零星物资采购：增加资产归类后仍保持桌面、笔记本与 iPad 可用。 */
.office-line-row{grid-template-columns:32px minmax(140px,1.3fr) minmax(94px,.85fr) minmax(104px,.95fr) 68px 86px 106px 98px 88px minmax(112px,.95fr) minmax(122px,1.05fr) 38px}
.office-line-row :is(input,select){width:100%;height:38px;padding:0 9px;border:1px solid #cbd9e3;border-radius:8px;background:#fff;color:#17364c}
@media(max-width:1180px){.office-line-row{grid-template-columns:32px repeat(4,minmax(120px,1fr))}.office-line-row .office-line-asset-class,.office-line-row .office-line-remark{grid-column:auto}}
@media(max-width:760px){.office-line-row{grid-template-columns:28px 1fr}.office-line-row label,.office-line-row .office-line-asset-class,.office-line-row .office-line-remark{grid-column:2}}

/* 全系统上传表单：单一纵向浏览窗口，业务信息和上传预览共用一个滚动区域。 */
.data-modal.system-upload-window-modal{top:10px;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1480px,calc(100vw - 20px));height:calc(100vh - 20px);max-height:calc(100vh - 20px);overflow:hidden;background:#eef3f6}
.system-upload-window-modal>form.system-upload-window-form{min-height:0;height:100%;padding:0;overflow:hidden}
.system-upload-window-form{display:grid!important;grid-template-rows:minmax(0,1fr) auto;gap:0!important;min-width:0;background:#eef3f6}
.system-upload-window-body{display:block;min-width:0;min-height:0;padding:12px 14px 18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:linear-gradient(145deg,#f4f8fa,#e9f1f5)}
.system-upload-window-fields{display:grid;align-content:start;gap:12px;width:100%;min-width:0;min-height:auto;padding:0;overflow:visible}
.system-upload-window-pane{display:grid;align-content:start;gap:12px;width:100%;min-width:0;min-height:0;margin-top:12px;border:1px solid #8fb0c2;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(28,70,94,.1);overflow:hidden}
.system-upload-window-heading{position:static;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:62px;padding:10px 12px;border-bottom:1px solid #aac4d1;background:linear-gradient(110deg,#e4f2f7,#fbfdfe);box-shadow:0 5px 13px rgba(35,78,99,.07)}
.system-upload-window-heading>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#d4eaf2;color:#17647c}.system-upload-window-heading>div{display:grid;gap:2px;min-width:0}.system-upload-window-heading strong{color:#17465c;font-size:13px}.system-upload-window-heading small{color:#657e8a;font-size:9px;line-height:1.45}.system-upload-window-heading em{padding:4px 7px;border:1px solid #9dc4d2;border-radius:999px;background:#f7fcfd;color:#287087;font-size:9px;font-style:normal;font-weight:850;white-space:nowrap}
.system-upload-window-modal .modal-actions{position:static!important;right:auto!important;bottom:auto!important;left:auto!important;z-index:10;grid-row:2;min-height:68px;margin:0!important;padding:11px 18px!important;border-top:2px solid #b7ccd8;background:rgba(250,253,255,.985);box-shadow:0 -10px 25px rgba(25,67,89,.13)}
.system-upload-window-modal .modal-actions .form-submit-note{margin-right:auto}.system-upload-window-modal .modal-actions button{flex:0 0 auto;min-height:40px;white-space:nowrap}
.system-upload-window-pane>.form-section,.system-upload-window-pane>[data-office-document-upload],.system-upload-window-pane>[data-evidence-field],.system-upload-window-pane>.employee-single-upload-window{margin:0 12px 12px}.system-upload-window-pane>.form-section:first-of-type,.system-upload-window-pane>[data-office-document-upload]:nth-child(2),.system-upload-window-pane>[data-evidence-field]:nth-child(2),.system-upload-window-pane>.employee-single-upload-window:nth-child(2){margin-top:12px}
.system-upload-window-pane .contract-document-panel{grid-template-columns:1fr}.system-upload-window-pane .contract-document-upload{align-content:start;border-right:0;border-bottom:1px solid #aebfca}.system-upload-window-pane .contract-document-preview{height:min(58vh,560px);min-height:420px}.system-upload-window-pane .contract-scan-review{grid-template-columns:1fr}.system-upload-window-pane .contract-scan-review figure{border-right:0;border-bottom:1px solid #c8d5e3}
.system-upload-window-pane .office-document-upload{grid-column:auto;width:auto;padding:13px}.system-upload-window-pane .office-document-review{grid-template-columns:1fr;min-height:430px;max-height:none}.system-upload-window-pane .office-original-pdf iframe{height:410px}.system-upload-window-pane .office-original-image figure{min-height:360px}.system-upload-window-pane .office-original-image img{max-height:460px}.system-upload-window-pane .office-document-review>ul{max-height:330px;overflow:auto}
.system-upload-window-pane .office-administrative-document-upload .office-document-review{min-height:560px}.system-upload-window-pane .office-administrative-document-upload .office-original-pdf iframe{height:520px}.system-upload-window-pane .office-administrative-document-upload .office-original-image figure{min-height:470px}
.system-upload-window-pane .payroll-evidence-field{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:13px;border:1px solid #b6ccd7;border-radius:11px;background:#f7fbfc}.system-upload-window-pane .payroll-evidence-field>span,.system-upload-window-pane .payroll-evidence-field>.evidence-control,.system-upload-window-pane .payroll-evidence-field>.evidence-status,.system-upload-window-pane .payroll-evidence-field>.payroll-document-review,.system-upload-window-pane .payroll-evidence-field>.upload-review-actions{grid-column:1!important}.system-upload-window-pane .payroll-document-review-body{grid-template-columns:1fr;max-height:none}.system-upload-window-pane .payroll-document-review figure img{max-height:420px}
.employee-single-upload-window{display:grid;gap:12px}.employee-single-upload-window[hidden]{display:none}.employee-single-upload-window>.employee-photo-upload{width:100%;min-height:250px;margin:0}.employee-single-upload-window>.form-section{margin:0}.employee-single-upload-window .employee-document-grid{grid-template-columns:1fr}.system-upload-window-fields .employee-identity-layout{grid-template-columns:1fr}.system-upload-window-fields .employee-core-fields{grid-column:1}
.fixed-asset-batch-form.system-upload-window-form,.master-data-form.system-upload-window-form{height:auto;min-height:460px;padding:0!important;border:1px solid #a9c5d2;border-radius:15px;overflow:hidden;background:#edf4f7}.fixed-asset-batch-form .system-upload-window-body,.master-data-form .system-upload-window-body{min-height:460px;max-height:min(760px,calc(100vh - 180px))}.fixed-asset-batch-form .system-upload-window-pane,.master-data-form .system-upload-window-pane{margin-top:12px}.fixed-asset-batch-form .fixed-asset-batch-toolbar,.fixed-asset-batch-form .fixed-asset-batch-summary,.fixed-asset-batch-form .fixed-asset-batch-preview{margin:0 12px}.fixed-asset-batch-form .fixed-asset-batch-toolbar{margin-top:12px}.fixed-asset-batch-form .fixed-asset-batch-preview{max-height:440px;overflow:auto}.master-data-form .system-upload-window-pane>.master-import-button{display:flex;align-items:center;justify-content:center;min-height:120px;margin:15px;border:1px dashed #6fa8bb;border-radius:12px;background:#eef9fc;color:#1e687d}.master-data-form .master-data-actions{grid-column:1 / -1}
@media(max-width:1100px){.system-upload-window-body{padding:8px}.system-upload-window-pane .contract-document-actions,.system-upload-window-pane .office-upload-actions{grid-template-columns:1fr}.system-upload-window-pane .contract-document-preview{height:min(50vh,460px);min-height:350px}}
@media(max-width:900px){.data-modal.system-upload-window-modal{top:6px;width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}.system-upload-window-modal .modal-actions{flex-wrap:wrap}.system-upload-window-modal .modal-actions .form-submit-note{flex-basis:100%;margin-right:0}.fixed-asset-batch-form.system-upload-window-form,.master-data-form.system-upload-window-form{height:auto}.fixed-asset-batch-form .system-upload-window-body,.master-data-form .system-upload-window-body{min-height:0;max-height:min(680px,calc(100vh - 150px))}.system-upload-window-pane .office-document-review{min-height:390px}}
@media(max-width:620px){.system-upload-window-body{padding:6px}.system-upload-window-heading{grid-template-columns:34px 1fr}.system-upload-window-heading em{display:none}.system-upload-window-modal .modal-actions{padding:8px!important}.system-upload-window-modal .modal-actions button{flex:1 1 120px}.system-upload-window-pane .contract-document-preview{height:290px;min-height:240px}.system-upload-window-pane .office-document-review{min-height:340px;padding:7px}}

/* Release 146: every standard editable form uses a full-height input window. */
.data-modal.system-input-window-modal{
  top:10px;
  transform:translateX(-50%)!important;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  width:min(1380px,calc(100vw - 20px));
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  overflow:hidden;
  background:#edf3f6;
}
.data-modal.production-application-modal.system-input-window-modal{
  width:min(1580px,calc(100vw - 18px));
}
.system-input-window-modal>form.system-input-window-form{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto;
  gap:0!important;
  min-width:0;
  min-height:0;
  height:100%;
  padding:0!important;
  overflow:hidden;
  background:#edf3f6;
}
.system-input-window-body{
  display:grid;
  align-content:start;
  gap:13px;
  min-width:0;
  min-height:0;
  padding:14px 16px 18px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  background:linear-gradient(145deg,#f4f8fa 0%,#eaf1f5 100%);
}
.system-input-window-body>.form-section,
.system-input-window-body>.panel,
.system-input-window-body>.business-form-draft-editor{
  min-width:0;
  margin:0;
  border-color:#b8ccd7;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 20px rgba(29,70,92,.07);
}
.system-input-window-body>.form-section>.form-section-title{
  border-bottom-color:#c9d9e1;
  background:linear-gradient(105deg,#eaf4f8,#fbfdfe);
}
.system-input-window-modal .modal-actions{
  position:static!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  z-index:12;
  grid-row:2;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  min-width:0;
  min-height:68px;
  margin:0!important;
  padding:11px 18px!important;
  border-top:2px solid #b7ccd8;
  background:rgba(250,253,255,.985);
  box-shadow:0 -10px 25px rgba(25,67,89,.13);
}
.system-input-window-modal .modal-actions .form-submit-note{min-width:0;margin-right:auto}
.system-input-window-modal .modal-actions button{flex:0 0 auto;min-height:40px;white-space:nowrap}

/* Every full-height input/upload form keeps its primary buttons in a dedicated
   grid row. This also covers forms using .form-actions instead of .modal-actions. */
:is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions{
  position:static!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  z-index:12!important;
  grid-row:2;
  display:flex!important;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
  flex-wrap:wrap;
  gap:9px;
  width:100%;
  min-width:0;
  min-height:64px;
  max-height:min(132px,30vh);
  margin:0!important;
  padding:10px 18px calc(10px + env(safe-area-inset-bottom))!important;
  overflow-x:hidden;
  overflow-y:auto;
  border:0!important;
  border-top:2px solid #b7ccd8!important;
  border-radius:0!important;
  background:rgba(250,253,255,.99)!important;
  box-shadow:0 -10px 25px rgba(25,67,89,.13)!important;
  box-sizing:border-box;
}
:is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions .form-submit-note,
:is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions>span:first-child{min-width:180px;margin-right:auto}
:is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions button{flex:0 0 auto;min-height:38px;white-space:nowrap}

/* Shared anti-overlap rules for standard and specialised business forms. */
.business-form,
.business-form *{box-sizing:border-box}
.business-form,
.business-form :is(.form-section,.form-grid-4,.line-grid,.form-row,.modal-actions,.form-section-title){min-width:0}
.business-form :is(.form-grid-4,.line-grid,.form-row) > *{min-width:0;max-width:100%}
.business-form :is(label,fieldset,.sheet-field,.addable-choice-control,.evidence-control,.contract-field){min-width:0;max-width:100%}
.business-form :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-width:0;max-width:100%}
.business-form :is(.form-section-title,.modal-actions){flex-wrap:wrap}
.business-form .form-section-title>*{min-width:0;max-width:100%}
.business-form :is(.form-section-title,.form-submit-note,label,small,p,span){overflow-wrap:anywhere}
.business-form img,.business-form iframe,.business-form video,.business-form canvas{max-width:100%}

@media(max-width:1180px){
  .system-input-window-body .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .system-input-window-body .span-3,.system-input-window-body .span-4{grid-column:1 / -1}
}
@media(max-width:760px){
  .data-modal.system-input-window-modal{top:6px;width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}
  .system-input-window-body{gap:9px;padding:8px}
  .system-input-window-body :is(.form-grid-4,.line-grid,.form-row){grid-template-columns:minmax(0,1fr)}
  .system-input-window-body :is(.span-2,.span-3,.span-4){grid-column:1}
  .system-input-window-modal .modal-actions{align-items:stretch;padding:8px!important}
  .system-input-window-modal .modal-actions .form-submit-note{flex:1 1 100%;margin-right:0}
  .system-input-window-modal .modal-actions button{flex:1 1 130px;justify-content:center}
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions{align-items:stretch;padding:8px!important}
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions .form-submit-note,
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions>span:first-child{flex:1 1 100%;min-width:0;margin-right:0}
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions button{flex:1 1 130px;justify-content:center}
}

/* Remaining complex business forms: one modal scroll area with sticky form actions. */
.data-modal.system-business-unified-modal{
  top:10px;
  transform:translateX(-50%)!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  height:calc(100vh - 20px)!important;
  max-height:calc(100vh - 20px)!important;
  overflow:hidden!important;
}
.system-business-unified-modal>.modal-header{
  position:relative!important;
  top:auto!important;
  z-index:40;
  grid-row:1;
  flex:0 0 auto;
}
.system-business-unified-body{
  position:relative;
  grid-row:2;
  display:block;
  min-width:0;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-bottom:max(8px,env(safe-area-inset-bottom));
}
.system-business-unified-body>.fixed-asset-scroll,
.system-business-unified-body>.daily-production-scroll,
.system-business-unified-body>.intermediate-inventory-scroll{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.system-business-unified-body .system-upload-window-body{
  max-height:none!important;
  overflow:visible!important;
}
.governance-modal .system-business-unified-body>.business-form,
.governance-modal .system-business-unified-body>.form-section{
  margin:16px 20px;
}
.system-business-unified-form{min-width:0}
.system-business-unified-form .system-business-sticky-actions{
  position:sticky!important;
  right:auto!important;
  bottom:0!important;
  left:auto!important;
  z-index:35!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
  gap:9px!important;
  min-width:0;
  min-height:62px;
  margin-top:10px!important;
  padding:10px 14px!important;
  border:1px solid #b8cdd8!important;
  border-radius:11px!important;
  background:rgba(250,253,255,.985)!important;
  box-shadow:0 -9px 24px rgba(25,67,89,.13)!important;
  backdrop-filter:blur(10px);
}
.system-business-unified-form .system-business-sticky-actions .form-submit-note,
.system-business-unified-form .system-business-sticky-actions>span:first-child{margin-right:auto}
.system-business-unified-form .system-business-sticky-actions button{flex:0 0 auto;min-height:38px;white-space:nowrap}
.system-business-unified-form.system-business-contained-form{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  height:min(760px,calc(100vh - 130px));
  min-height:min(420px,calc(100vh - 130px));
  overflow:hidden!important;
}
.system-business-unified-form>:is(.system-business-unified-form-body,.system-input-window-body,.system-upload-window-body){
  min-width:0;
  min-height:0!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.system-business-unified-form>.system-business-sticky-actions{
  position:static!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  grid-row:2;
  flex:0 0 auto;
  max-height:min(132px,30vh);
  margin:0!important;
  overflow-x:hidden;
  overflow-y:auto;
  border-right:0!important;
  border-bottom:0!important;
  border-left:0!important;
  border-radius:0!important;
}
.intermediate-measurement-form.system-business-unified-form{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  height:min(760px,calc(100vh - 118px));
  min-height:520px;
  overflow:hidden;
}
.intermediate-measurement-form.system-business-unified-form>.form-section{
  display:block;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.intermediate-measurement-form.system-business-unified-form>.system-business-sticky-actions{
  position:relative!important;
  bottom:auto!important;
  margin:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-left:0!important;
  border-radius:0 0 13px 13px!important;
}
@media(max-width:760px){
  .data-modal.system-business-unified-modal{top:6px;width:calc(100vw - 12px)!important;height:calc(100vh - 12px)!important;max-height:calc(100vh - 12px)!important}
  .governance-modal .system-business-unified-body>.business-form,.governance-modal .system-business-unified-body>.form-section{margin:10px}
  .system-business-unified-form .system-business-sticky-actions{align-items:stretch!important;padding:8px!important}
  .system-business-unified-form .system-business-sticky-actions .form-submit-note,.system-business-unified-form .system-business-sticky-actions>span:first-child{flex:1 1 100%;margin-right:0}
  .system-business-unified-form .system-business-sticky-actions button{flex:1 1 130px;justify-content:center}
  .intermediate-measurement-form.system-business-unified-form{height:min(720px,calc(100vh - 106px));min-height:480px}
}

/* 采购合同 · 联网询价 */
.purchase-contract-modal .procurement-ai-inquiry-button{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:8px;
  min-width:196px;
  min-height:46px!important;
  padding:6px 14px;
  border:1px solid #167b79;
  border-radius:10px;
  color:#075b5b;
  background:linear-gradient(135deg,#e0f8f4,#f5fffd);
  box-shadow:0 5px 14px rgba(13,112,108,.14);
  cursor:pointer;
}
.purchase-contract-modal .procurement-ai-inquiry-button svg{grid-row:1/3;color:#0b8580}
.purchase-contract-modal .procurement-ai-inquiry-button span{font-size:14px;font-weight:800;line-height:1.15;text-align:left}
.purchase-contract-modal .procurement-ai-inquiry-button small{font-size:10px;color:#4f7777;line-height:1.15;text-align:left}
.purchase-contract-modal .procurement-ai-inquiry-button:hover{border-color:#086f6b;background:#d3f5ef;transform:translateY(-1px)}
.procurement-inquiry-backdrop{
  position:fixed;
  inset:0;
  z-index:1600;
  display:grid;
  place-items:center;
  padding:12px;
  background:rgba(8,25,34,.58);
  backdrop-filter:blur(4px);
}
.procurement-inquiry-modal{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(1420px,calc(100vw - 24px));
  height:min(900px,calc(100vh - 24px));
  min-height:0;
  overflow:hidden;
  border:1px solid #8fb9bf;
  border-radius:18px;
  background:#edf4f5;
  box-shadow:0 28px 80px rgba(0,20,30,.32);
}
.procurement-inquiry-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 20px;
  border-bottom:1px solid #98bac2;
  background:linear-gradient(110deg,#073f49,#0c6d6c 56%,#138c80);
  color:#fff;
}
.procurement-inquiry-heading{display:flex;align-items:center;gap:13px;min-width:0}
.procurement-ai-mark{display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;border:1px solid rgba(255,255,255,.35);border-radius:13px;background:rgba(255,255,255,.12)}
.procurement-inquiry-heading small{display:block;margin-bottom:2px;color:#bfe4df;font-size:10px;letter-spacing:.12em}
.procurement-inquiry-heading h2{margin:0;font-size:21px;line-height:1.2}
.procurement-inquiry-heading p{margin:3px 0 0;color:#d8efec;font-size:12px}
.procurement-inquiry-header .icon-button{color:#fff;background:rgba(255,255,255,.11)}
.procurement-inquiry-scroll{min-height:0;padding:14px 16px 24px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.procurement-inquiry-status{
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin-bottom:12px;
  padding:11px 13px;
  border:1px solid #b8ccd1;
  border-radius:11px;
  color:#355864;
  background:#f8fbfc;
}
.procurement-inquiry-status[data-inquiry-config-state="ready"]{border-color:#85c6ad;color:#126342;background:#eaf8f1}
.procurement-inquiry-status[data-inquiry-config-state="missing"],.procurement-inquiry-status[data-inquiry-config-state="error"]{border-color:#e3bd78;color:#7a4e0a;background:#fff8e9}
.procurement-inquiry-status strong{display:block;font-size:13px}
.procurement-inquiry-status p{margin:2px 0 0;font-size:11px;line-height:1.5}
.procurement-inquiry-status[data-inquiry-config-state="loading"]>svg,.procurement-inquiry-run:disabled svg{animation:procurement-spin 1s linear infinite}
@keyframes procurement-spin{to{transform:rotate(360deg)}}
.procurement-inquiry-section{margin-bottom:13px;border:1px solid #a9c1c8;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(28,73,87,.07);overflow:hidden}
.procurement-inquiry-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #bed0d5;background:linear-gradient(100deg,#e4f3f3,#f9fcfc)}
.procurement-inquiry-section-title>div{display:flex;align-items:center;gap:10px}
.procurement-inquiry-section-title b{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;color:#fff;background:#0a7673;font-size:11px}
.procurement-inquiry-section-title span strong,.procurement-inquiry-section-title span small{display:block}
.procurement-inquiry-section-title span strong{color:#183f4b;font-size:13px}.procurement-inquiry-section-title span small{margin-top:2px;color:#6b8189;font-size:10px}
.procurement-inquiry-section-title em{padding:4px 9px;border-radius:999px;color:#176660;background:#d8f1ec;font-size:10px;font-style:normal;font-weight:700}
.procurement-inquiry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:13px 14px}
.procurement-inquiry-grid label{display:grid;gap:5px;min-width:0}.procurement-inquiry-grid label.span-2{grid-column:span 2}
.procurement-inquiry-grid label>span{color:#4a626b;font-size:11px;font-weight:700}
.procurement-inquiry-grid input,.procurement-inquiry-grid select,.procurement-inquiry-draft-table input{width:100%;min-width:0;height:36px;padding:0 10px;border:1px solid #afc4ca;border-radius:8px;color:#203d46;background:#fff;font:inherit}
.procurement-inquiry-grid input:focus,.procurement-inquiry-grid select:focus,.procurement-inquiry-draft-table input:focus{outline:2px solid rgba(8,133,128,.18);border-color:#168681}
.procurement-inquiry-table-wrap{overflow:auto}
.procurement-inquiry-draft-table{width:100%;min-width:920px;border-collapse:collapse;font-size:12px}
.procurement-inquiry-draft-table th{padding:9px 11px;color:#48636d;background:#f1f6f7;text-align:left;white-space:nowrap}
.procurement-inquiry-draft-table td{padding:9px 11px;border-top:1px solid #d5e0e3;color:#294650;vertical-align:middle}
.procurement-inquiry-draft-table td:first-child b{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#0b6f6b;background:#daf2ee}
.procurement-inquiry-draft-table td strong,.procurement-inquiry-draft-table td small{display:block}.procurement-inquiry-draft-table td small{margin-top:2px;color:#74868c;font-size:10px}
.procurement-inquiry-result-section{scroll-margin-top:12px}
.procurement-inquiry-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid #c9d9dd;background:#f8fbfb}
.procurement-inquiry-summary div>span{display:flex;align-items:center;gap:6px;color:#16706b;font-size:10px;font-weight:800}.procurement-inquiry-summary div>strong{display:block;margin-top:4px;color:#24434c;font-size:13px;line-height:1.55}
.procurement-inquiry-summary>small{flex:0 0 auto;color:#71868d;font-size:10px}
.procurement-inquiry-result-list{display:grid;gap:11px;padding:12px}
.procurement-inquiry-result-card{overflow:hidden;border:1px solid #bdced3;border-radius:11px;background:#fff}
.procurement-inquiry-result-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #d1dde0;background:#f7fafb}
.procurement-inquiry-result-card>header>div{display:flex;align-items:center;gap:9px}.procurement-inquiry-result-card>header>div>b{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;color:#fff;background:#226f79}.procurement-inquiry-result-card>header span strong,.procurement-inquiry-result-card>header span small{display:block}.procurement-inquiry-result-card>header span small{margin-top:2px;color:#74858b;font-size:10px}
.procurement-inquiry-result-card>header em{padding:4px 8px;border-radius:999px;color:#7b5613;background:#fff2c9;font-size:10px;font-style:normal}.procurement-inquiry-result-card>header em[data-confidence="高"]{color:#176544;background:#daf3e6}.procurement-inquiry-result-card>header em[data-confidence="低"]{color:#8a3f2a;background:#ffe5dc}
.procurement-inquiry-price-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #d5e0e3}
.procurement-inquiry-price-band>div{min-width:0;padding:11px 12px;border-right:1px solid #d5e0e3}.procurement-inquiry-price-band>div:last-child{border-right:0}.procurement-inquiry-price-band>div.reference{background:linear-gradient(145deg,#e2f7f1,#f5fcfa)}
.procurement-inquiry-price-band span,.procurement-inquiry-price-band strong,.procurement-inquiry-price-band small{display:block}.procurement-inquiry-price-band span{margin-bottom:4px;color:#71858c;font-size:10px}.procurement-inquiry-price-band strong{color:#294750;font-size:13px}.procurement-inquiry-price-band strong.is-reference{color:#05716b;font-size:17px}.procurement-inquiry-price-band small{margin-top:2px;color:#73868c;font-size:10px}
.inquiry-price-missing{color:#9a6f38!important;font-weight:700}.procurement-inquiry-note{display:flex;gap:6px;margin:0;padding:9px 12px;color:#5a6970;background:#fffaf0;font-size:11px;line-height:1.5}
.procurement-inquiry-sources{display:grid;gap:6px;padding:9px 12px;background:#f9fbfc}
.procurement-inquiry-sources a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid #d3e0e3;border-radius:8px;color:#245b67;text-decoration:none;background:#fff}.procurement-inquiry-sources a:hover{border-color:#55a9a4;background:#f1fbf9}.procurement-inquiry-sources a>b{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;color:#0d716d;background:#dff3ef;font-size:9px}.procurement-inquiry-sources a span strong,.procurement-inquiry-sources a span small{display:block}.procurement-inquiry-sources a span strong{font-size:11px}.procurement-inquiry-sources a span small{margin-top:2px;color:#73868c;font-size:9px;line-height:1.35}
.inquiry-no-source{padding:5px 0;color:#9b5a2d;font-size:10px;font-weight:700}
.procurement-inquiry-additional{margin:0 12px 12px;border:1px solid #ccdadd;border-radius:9px;overflow:hidden}.procurement-inquiry-additional summary{padding:9px 11px;color:#45616a;background:#f3f7f8;cursor:pointer;font-size:11px;font-weight:700}
.procurement-inquiry-result-disclaimer{margin:0 12px 12px;padding:9px 11px;border-left:3px solid #d69b36;color:#6c5225;background:#fff8e8;font-size:10px;line-height:1.5}
.procurement-inquiry-disclaimer{display:flex;gap:9px;padding:11px 13px;border:1px solid #dfc58c;border-radius:10px;color:#624b22;background:#fff9ec;font-size:11px;line-height:1.55}.procurement-inquiry-disclaimer strong{display:block}
.procurement-inquiry-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px;min-height:66px;padding:10px 16px;border-top:1px solid #9ebbc1;background:rgba(250,253,253,.985);box-shadow:0 -8px 22px rgba(15,56,68,.12)}
.procurement-inquiry-actions>span{display:flex;align-items:center;gap:6px;margin-right:auto;color:#527078;font-size:11px}.procurement-inquiry-actions button{min-height:39px;white-space:nowrap}.procurement-inquiry-run{min-width:190px}.procurement-inquiry-actions button:disabled{opacity:.55;cursor:not-allowed}
.procurement-inquiry-print-sheet{display:none}
@media(max-width:900px){
  .procurement-inquiry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.procurement-inquiry-price-band{grid-template-columns:repeat(2,minmax(0,1fr))}.procurement-inquiry-price-band>div:nth-child(2){border-right:0}.procurement-inquiry-price-band>div:nth-child(-n+2){border-bottom:1px solid #d5e0e3}
  .procurement-inquiry-summary{display:block}.procurement-inquiry-summary>small{display:block;margin-top:7px}
}
@media(max-width:620px){
  .procurement-inquiry-backdrop{padding:4px}.procurement-inquiry-modal{width:calc(100vw - 8px);height:calc(100vh - 8px);border-radius:12px}.procurement-inquiry-header{padding:11px 12px}.procurement-inquiry-heading p{display:none}.procurement-inquiry-scroll{padding:8px 8px 18px}.procurement-inquiry-grid{grid-template-columns:1fr}.procurement-inquiry-grid label.span-2{grid-column:1}.procurement-inquiry-price-band{grid-template-columns:1fr}.procurement-inquiry-price-band>div{border-right:0;border-bottom:1px solid #d5e0e3}.procurement-inquiry-price-band>div:last-child{border-bottom:0}.procurement-inquiry-actions{align-items:stretch;padding:8px}.procurement-inquiry-actions>span{flex:1 1 100%;margin-right:0}.procurement-inquiry-actions button{flex:1 1 140px}.purchase-contract-modal .procurement-ai-inquiry-button{min-width:145px}
}

/* Release 574: 三张除杂表单统一取消字段悬停说明，并保持独立窗口边界。 */
body :is(.auxiliary-b-modal,.sodium-aluminate-modal,.lithium-carbonate-purification-modal)
  :is(.form-field-help-icon,label.form-field-help::after,.form-control-hover-help::after){display:none!important;content:none!important}
body :is(.auxiliary-b-modal,.sodium-aluminate-modal,.lithium-carbonate-purification-modal)
  :is(label.form-field-help,.form-control-hover-help){cursor:default!important}
body .modal-backdrop>.data-modal.lithium-carbonate-purification-modal{
  position:relative;inset:auto!important;top:auto!important;right:auto!important;left:auto!important;transform:none!important;
  box-sizing:border-box;width:min(1420px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;
  height:min(900px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);margin:auto!important;overflow:hidden;
  display:flex;flex-direction:column;background:#f3f7f4
}
body .lithium-carbonate-purification-modal>.modal-header{flex:0 0 auto}
body .lithium-carbonate-purification-modal>.edta-modal-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}
body .lithium-carbonate-purification-modal .edta-form-layout{align-items:start}
body .lithium-carbonate-purification-modal .edta-field-grid.compact{height:auto}
body .lithium-carbonate-purification-modal .edta-form-layout>main{display:flex;flex-direction:column;gap:14px;min-width:0}
body .lithium-carbonate-purification-modal .edta-form-section{flex:0 0 auto;box-sizing:border-box;min-height:max-content;overflow:visible}
body .lithium-carbonate-purification-modal .lithium-carbonate-hero{background:linear-gradient(125deg,#173f35 0%,#2f7658 58%,#b08a45 100%);border-bottom-color:#dcc283}
body .lithium-carbonate-purification-modal .edta-form-section>header>span{background:#2f7658}
@media(max-width:620px){body .modal-backdrop>.data-modal.lithium-carbonate-purification-modal{width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}}

/* Release 575: 生产管理二级菜单在桌面窗口内完整可见，避免新增表单藏在滚动区。 */
.nav-group[data-nav-group-id="materials"] > .submenu-list{
  width:min(420px,calc(100vw - 198px));
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:4px 6px;
}
.nav-group[data-nav-group-id="materials"] > .submenu-list > .submenu-section{grid-column:1 / -1}
@media(max-width:700px){
  .nav-group[data-nav-group-id="materials"] > .submenu-list{width:min(218px,calc(100vw - 86px));grid-template-columns:minmax(0,1fr)}
  .nav-group[data-nav-group-id="materials"] > .submenu-list > .submenu-section{grid-column:1}
}

/* Release 576: 除杂计算使用一个二级入口，三个业务表单作为三级菜单。 */
.materials-purification-menu-group{grid-column:1 / -1;display:grid;gap:4px;min-width:0;padding:3px;border:1px solid #bfd6cc;border-radius:9px;background:#f3f9f6}
.materials-purification-menu-entry{width:100%;min-height:40px;grid-template-columns:18px minmax(0,1fr) 14px!important;background:linear-gradient(135deg,#edf8f3,#dfeee8);color:#174f40;font-weight:850}
.materials-purification-menu-entry>svg{color:#547d70}
.materials-purification-menu-group.is-expanded .materials-purification-menu-entry{background:linear-gradient(135deg,#dcefe7,#c9e3d8);box-shadow:inset 3px 0 #2f8568}
.materials-purification-third-menu{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:3px 2px 2px 18px;border-left:2px solid #a8cdbf}
.materials-purification-menu-group.is-expanded>.materials-purification-third-menu{display:grid}
.submenu-item.materials-purification-third-level{min-height:36px;padding:5px 7px;border-radius:6px;background:rgba(255,255,255,.82);font-size:12px!important;font-weight:750}
.submenu-item.materials-purification-third-level:hover{background:#e2f3eb}
@media(max-width:700px){
  .materials-purification-menu-group{grid-column:1}
  .materials-purification-third-menu{grid-template-columns:minmax(0,1fr);padding-left:12px}
}
@media print{
  body.printing-procurement-inquiry>*:not(.procurement-inquiry-print-sheet){display:none!important}
  body.printing-procurement-inquiry .procurement-inquiry-print-sheet{display:block!important;width:100%;margin:0;padding:0;color:#111;background:#fff;font-family:"Microsoft YaHei",sans-serif}
  .procurement-inquiry-print-sheet .print-trademark-header{margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid #174e58}
  .procurement-inquiry-print-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:10px;border:1px solid #777}.procurement-inquiry-print-meta span{padding:7px 8px;border-right:1px solid #999;font-size:9pt}.procurement-inquiry-print-meta span:last-child{border-right:0}
  .procurement-inquiry-print-summary{margin:0 0 10px;padding:8px;border:1px solid #999;font-size:9pt;line-height:1.5}
  .procurement-inquiry-print-table{width:100%;border-collapse:collapse;font-size:8.5pt}.procurement-inquiry-print-table th,.procurement-inquiry-print-table td{padding:6px 5px;border:1px solid #777;vertical-align:top}.procurement-inquiry-print-table th{background:#eef2f3}.procurement-inquiry-print-table td small{display:block;margin-top:2px;color:#555}
  .procurement-inquiry-print-sources{margin-top:11px}.procurement-inquiry-print-sources h3{margin:0 0 6px;font-size:10pt}.procurement-inquiry-print-sources ol{margin:0;padding-left:22px}.procurement-inquiry-print-sources li{margin-bottom:6px;font-size:8pt;line-height:1.35;word-break:break-all}.procurement-inquiry-print-sources li span{color:#244f59}.procurement-inquiry-print-sources li small{color:#555}
  .procurement-inquiry-print-warning{margin-top:10px;padding:7px;border:1px solid #a47c2a;background:#fff8e8;font-size:8.5pt;line-height:1.4}.procurement-inquiry-print-signatures{display:flex;justify-content:space-between;margin-top:22px;padding-top:9px;border-top:1px solid #777;font-size:9pt}
}

/* 薪酬核算专用布局：三列宽表、分组取数和醒目的自动汇总结果。 */
.payroll-calculation-modal.system-input-window-modal{width:min(1480px,calc(100vw - 20px))}
.payroll-calculation-form .system-input-window-body{align-content:start;grid-auto-rows:max-content}
.payroll-calculation-form .payroll-form-section{min-height:max-content;overflow:visible;border-color:#b8ccd8}
.payroll-calculation-form .payroll-profile-grid,
.payroll-calculation-form .payroll-attendance-grid,
.payroll-calculation-form .payroll-amount-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.payroll-calculation-form :is(.payroll-profile-grid,.payroll-attendance-grid,.payroll-amount-grid)>.span-4{grid-column:1 / -1}
.payroll-calculation-form .payroll-grid-heading{display:flex;align-items:center;gap:9px;min-height:42px;padding:7px 12px;border-bottom:1px solid #cbd9e1;background:#f4f8fa}
.payroll-calculation-form .payroll-grid-heading>span{display:grid;flex:0 0 28px;width:28px;height:28px;place-items:center;border-radius:8px;color:#267563;background:#e4f3ef}
.payroll-calculation-form .payroll-grid-heading>div{display:grid;gap:1px;min-width:0}
.payroll-calculation-form .payroll-grid-heading strong{color:#28485a;font-size:12px}
.payroll-calculation-form .payroll-grid-heading small{color:#718793;font-size:10px!important}
.payroll-calculation-form .payroll-grid-heading-deduction>span{color:#a46822;background:#fff0d9}
.payroll-calculation-form .payroll-grid-heading-result>span{color:#226d8b;background:#dfeff6}
.payroll-calculation-form .payroll-total-field{border-top:2px solid #8eb8c8!important}
.payroll-calculation-form .payroll-total-field>span{color:#174f65!important;background:#dff0f5!important}
.payroll-calculation-form .payroll-total-field input{color:#174f65!important;font-size:15px!important;font-weight:850!important;background:#f4fbfd!important}
.payroll-calculation-form .payroll-net-field>span{color:#176452!important;background:#dcf2eb!important}
.payroll-calculation-form .payroll-net-field input{color:#176452!important;background:#f1fbf8!important}

@media(max-width:1320px){
  .payroll-calculation-form .payroll-profile-grid,
  .payroll-calculation-form .payroll-attendance-grid,
  .payroll-calculation-form .payroll-amount-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payroll-calculation-form :is(.payroll-profile-grid,.payroll-attendance-grid,.payroll-amount-grid)>.span-4{grid-column:1 / -1}
}
@media(max-width:760px){
  .payroll-calculation-form .payroll-profile-grid,
  .payroll-calculation-form .payroll-attendance-grid,
  .payroll-calculation-form .payroll-amount-grid{grid-template-columns:minmax(0,1fr)}
  .payroll-calculation-form :is(.payroll-profile-grid,.payroll-attendance-grid,.payroll-amount-grid)>.span-2,
  .payroll-calculation-form :is(.payroll-profile-grid,.payroll-attendance-grid,.payroll-amount-grid)>.span-4{grid-column:1}
}
.quality-report-section {
  border: 1px solid rgba(21, 128, 61, .22);
  background: linear-gradient(145deg, rgba(240, 253, 244, .84), rgba(255, 255, 255, .96));
}

.required-pill {
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  color: #fff;
  background: #c2410c;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}

.quality-report-source-row,
.quality-report-toolbar {
  display: flex;
  align-items: end;
  gap: 12px;
  margin-bottom: 12px;
}

.quality-report-source-row > label { min-width: 240px; }
.quality-report-toolbar .grow { flex: 1; }
.quality-report-sync-state { color: #166534; font-size: 13px; padding-bottom: 11px; }
.quality-report-manual[hidden], [data-quality-report-library][hidden] { display: none !important; }

.quality-report-preview-card,
.quality-report-empty {
  margin-top: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(15, 118, 110, .18);
  border-radius: 12px;
  background: rgba(255, 255, 255, .9);
}

.quality-report-preview-card > div:first-child { display: flex; align-items: center; gap: 10px; }
.quality-report-preview-card dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.quality-report-preview-card dt { color: var(--muted, #64748b); font-size: 12px; }
.quality-report-preview-card dd { margin: 3px 0 0; font-weight: 600; }
.quality-report-preview-card p { margin: 8px 0 0; line-height: 1.7; }
.quality-report-metrics { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.quality-report-metrics span { padding: 4px 8px; border-radius: 8px; background: #ecfdf5; color: #166534; font-size: 12px; }
.quality-report-empty { color: var(--muted, #64748b); text-align: center; }

@media (max-width: 820px) {
  .quality-report-source-row, .quality-report-toolbar { align-items: stretch; flex-direction: column; }
  .quality-report-source-row > label { min-width: 0; width: 100%; }
  .quality-report-sync-state { padding-bottom: 0; }
  .quality-report-preview-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Release 151: 原料入库、产品出库表单按实际内容撑高，避免窄屏网格被等高压缩后相互覆盖。 */
.stock-document-modal {
  width: min(1420px, calc(100vw - 20px));
}

.stock-document-form > .system-input-window-body {
  grid-auto-rows: max-content;
}

.stock-document-form .form-section {
  align-content: start;
}

.stock-document-form :is(.form-grid-4, .line-grid) > *,
.stock-document-form :is(.stock-master-control, .quality-report-source-row, .quality-report-toolbar) > * {
  min-width: 0;
}

.stock-document-form .form-section-title {
  align-items: flex-start;
}

.stock-document-form .form-section-title > strong {
  flex: 0 0 auto;
}

.stock-document-form .form-section-title > span {
  flex: 1 1 320px;
  text-align: right;
}

.stock-document-form .required-pill {
  flex: 0 0 auto;
  margin-left: 5px;
  white-space: nowrap;
}

.stock-document-form .quality-report-section {
  overflow: visible;
}

.stock-document-form .quality-report-source-row {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
  align-items: stretch;
  gap: 10px;
  margin: 12px 14px;
}

.stock-document-form .quality-report-source-row > label {
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr);
  min-width: 0;
  min-height: 46px;
  border: 1px solid var(--form-line);
  background: #fff;
}

.stock-document-form .quality-report-source-row > label > span {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 9px 10px;
  border-right: 1px solid var(--form-line);
  background: linear-gradient(135deg, #eaf2fa, var(--form-label-bg));
  color: var(--form-label);
  font-weight: 750;
  text-align: center;
}

.stock-document-form .quality-report-source-row select {
  min-width: 0;
  min-height: 44px;
  border: 0;
  border-radius: 0;
}

.stock-document-form .quality-report-sync-state {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #b8dcc7;
  border-radius: 8px;
  background: #f1fbf5;
  overflow-wrap: anywhere;
}

.stock-document-form [data-quality-report-library],
.stock-document-form .quality-report-manual {
  min-width: 0;
  padding: 0 14px 14px;
}

.stock-document-form .quality-report-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  margin-bottom: 10px;
}

.stock-document-form .quality-report-toolbar > label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.stock-document-form .quality-report-toolbar > label > span {
  color: var(--form-label);
  font-size: 12px;
  font-weight: 750;
}

.stock-document-form .quality-report-toolbar button {
  min-height: 44px;
  white-space: nowrap;
}

.stock-document-form .quality-report-preview-card dl > div {
  min-width: 0;
}

.stock-document-form .quality-report-preview-card dd {
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .stock-document-form .form-grid-4,
  .stock-document-form .line-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-document-form :is(.form-grid-4, .line-grid) > :is(.span-3, .span-4) {
    grid-column: 1 / -1;
  }

  .stock-document-form .quality-report-preview-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .stock-document-form .form-section-title > span {
    flex-basis: 100%;
    text-align: left;
  }

  .stock-document-form .quality-report-source-row,
  .stock-document-form .quality-report-toolbar {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .stock-document-modal {
    width: calc(100vw - 12px);
  }

  .stock-document-form .form-grid-4,
  .stock-document-form .line-grid,
  .stock-document-form .quality-report-manual-grid,
  .stock-document-form .quality-report-preview-card dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-document-form :is(.form-grid-4, .line-grid) > :is(.span-2, .span-3, .span-4),
  .stock-document-form .quality-report-manual-grid > :is(.span-2, .span-3, .span-4) {
    grid-column: 1;
  }

  .stock-document-form .quality-report-source-row > label {
    grid-template-columns: 106px minmax(0, 1fr);
  }

  .stock-document-form .quality-report-source-row,
  .stock-document-form [data-quality-report-library],
  .stock-document-form .quality-report-manual {
    margin-right: 8px;
    margin-left: 8px;
    padding-right: 0;
    padding-left: 0;
  }
}

/* 检测中心：原料、中间体、产品共用检测、指标、审核和共享报告库。 */
.quality-analysis-workbench {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-color: #b8d8df;
  background: linear-gradient(145deg,#f4fbfc,#edf6f8);
}

.quality-analysis-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(135deg,#164e63,#0e7490 58%,#0891b2);
  box-shadow: 0 12px 26px rgba(14,116,144,.2);
}

.quality-analysis-heading > div { min-width: 0; }
.quality-analysis-heading > div > span { display: flex; align-items: center; gap: 7px; color: #c9f4ff; font-size: 12px; font-weight: 800; }
.quality-analysis-heading h2 { margin: 5px 0 3px; font-size: 22px; }
.quality-analysis-heading p { margin: 0; color: rgba(255,255,255,.78); font-size: 12px; }
.quality-analysis-heading .primary-button { flex: 0 0 auto; border-color: #fff; color: #075985; background: #fff; }

.quality-analysis-category-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
}

.quality-analysis-category-grid article {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 11px;
  padding: 15px;
  border: 1px solid #c5dde3;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(22,78,99,.07);
}

.quality-analysis-category-grid article > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #0e7490;
  background: #e0f5f8;
}

.quality-analysis-category-grid article > div { display: grid; gap: 3px; min-width: 0; }
.quality-analysis-category-grid article span { color: #527080; font-size: 11px; font-weight: 750; }
.quality-analysis-category-grid article strong { color: #164e63; font-size: 18px; }
.quality-analysis-category-grid article small { color: #718b97; font-size: 11px; line-height: 1.5; }
.quality-analysis-category-grid article button { grid-column: 1 / -1; min-height: 36px; border: 1px solid #aed6df; border-radius: 9px; color: #0e7490; background: #f2fbfc; font-weight: 750; cursor: pointer; }

.quality-analysis-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px;
  border: 1px solid #c8dce2;
  border-radius: 12px;
  color: #5d7480;
  background: #fff;
}

.quality-analysis-flow span { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.quality-analysis-flow b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #0e7490; }
.quality-analysis-flow > svg { flex: 0 0 auto; color: #90aab5; }

.quality-review-panel { overflow: hidden; border: 1px solid #c5d9e0; border-radius: 13px; background: #fff; }
.quality-review-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid #d5e3e8; background: #f5fafb; }
.quality-review-panel header span { color: #66808d; font-size: 11px; }
.quality-review-panel header h3 { margin: 3px 0 0; color: #244c5c; font-size: 15px; }
.quality-review-list { display: grid; }
.quality-review-list > button { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 11px 15px; border: 0; border-bottom: 1px solid #e3ecef; color: #365665; background: #fff; text-align: left; cursor: pointer; }
.quality-review-list > button:last-child { border-bottom: 0; }
.quality-review-list > button:hover { background: #f1fafb; }
.quality-review-list > button span { display: grid; gap: 2px; min-width: 0; }
.quality-review-list > button strong { color: #164e63; }
.quality-review-list > button small,.quality-review-list > button em { color: #718894; font-size: 11px; font-style: normal; }
.quality-review-empty,.quality-review-modal-empty { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 84px; color: #5a7c87; }

.quality-center-report-list { overflow: hidden; border: 1px solid #c5d9e0; border-radius: 13px; background: #fff; }
.quality-center-report-list > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid #d5e3e8; background: #f5fafb; }
.quality-center-report-list > header span { color: #66808d; font-size: 11px; }
.quality-center-report-list > header h3 { margin: 3px 0 0; color: #244c5c; font-size: 15px; }
.quality-center-report-list > header b { padding: 5px 10px; border-radius: 999px; color: #0e7490; background: #dff4f7; font-size: 12px; }
.quality-center-report-list > div { display: grid; }
.quality-center-report-list > div > article { display: grid; grid-template-columns: 96px minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid #e3ecef; }
.quality-center-report-list > div > article:last-child { border-bottom: 0; }
.quality-center-report-list article > div { display: grid; gap: 2px; min-width: 0; }
.quality-center-report-list article strong { color: #174d60; overflow-wrap: anywhere; }
.quality-center-report-list article small { color: #718894; }
.quality-center-report-list article button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 32px; padding: 5px 10px; border: 1px solid #bdd5dc; border-radius: 8px; color: #17657a; background: #f8fcfd; cursor: pointer; }
.quality-center-report-list > p { margin: 0; padding: 28px; color: #708793; text-align: center; }

.quality-analysis-modal { width: min(1480px,calc(100vw - 20px)); }
.quality-analysis-form > .system-input-window-body { grid-auto-rows: max-content; }
.quality-analysis-form .form-section { align-content: start; }
.quality-source-picker { display: grid; grid-template-columns: minmax(210px,.7fr) minmax(340px,1.25fr) minmax(330px,1fr); align-items: end; gap: 10px; }
.quality-source-picker > label { min-width: 0; }
.quality-source-inline-add { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 7px; min-width: 0; }
.quality-source-inline-add > label { min-width: 0; }
.quality-source-inline-actions { display: flex; align-items: center; gap: 6px; }
.quality-source-inline-actions > button { min-height: 42px; padding-inline: 10px; white-space: nowrap; }
.quality-source-inline-actions > button:disabled { cursor: not-allowed; opacity: .5; }
.quality-source-grid { margin-top: 10px; }
.quality-source-grid label { background: #f8fbfc; }
.quality-source-grid input[readonly] { color: #305765; background: #eef6f8 !important; }
.quality-standard-section { border-color: #bdd9e0 !important; background: #f7fcfd !important; }
.quality-standard-upload { display: grid; grid-template-columns: minmax(220px,320px) minmax(0,1fr); gap: 12px; align-items: start; }
.quality-standard-upload > label { display: flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 14px !important; border: 1px dashed #75b5c4 !important; border-radius: 10px; color: #0d6c83; background: #e9f7f9 !important; font-weight: 800; cursor: pointer; }
.quality-standard-upload > label input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.quality-standard-upload > div { display: flex; align-items: center; min-height: 48px; padding: 9px 12px; border: 1px solid #cadde2; border-radius: 10px; color: #506e7a; background: #fff; overflow-wrap: anywhere; }
.quality-standard-upload > div a { color: #087891; font-weight: 750; }
.quality-standard-upload iframe { grid-column: 1 / -1; width: 100%; height: min(48vh,520px); border: 1px solid #bcd2d9; border-radius: 10px; background: #fff; }
.quality-entry-actions { position: sticky; bottom: 0; z-index: 2; padding: 11px 16px !important; border-top: 1px solid #c6d9df; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }
.quality-metrics-section { overflow: visible !important; }
/* release-185: quality judgement scope and report footer refinement */
.quality-judgement-section { border-color: #b8d4dc !important; background: linear-gradient(135deg,#f8fcfc,#edf7f8) !important; }
.quality-judgement-help { margin: 9px 0 0; padding: 9px 12px; border-left: 3px solid #37879a; color: #365d6b; background: rgba(255,255,255,.72); font-size: 12px; line-height: 1.65; }
.quality-metric-head,.quality-metric-row { display: grid; grid-template-columns: 86px 52px minmax(150px,1.1fr) minmax(120px,.8fr) 90px minmax(170px,1.2fr) 128px; align-items: stretch; min-width: 1010px; }
.quality-metric-head { color: #365666; background: #e9f3f6; font-size: 11px; font-weight: 800; }
.quality-metric-head span { display: grid; place-items: center; min-height: 38px; padding: 6px; border-right: 1px solid #b9ced6; }
.quality-metric-rows,.quality-review-metrics { overflow-x: auto; }
.quality-metric-row > * { min-width: 0; min-height: 42px; margin: 0; padding: 8px 9px; border: 0; border-right: 1px solid #c5d7dd; border-bottom: 1px solid #c5d7dd; border-radius: 0; background: #fff; }
.quality-metric-row > span:nth-child(2) { display: grid; place-items: center; color: #607b87; background: #f5f9fa; font-weight: 800; }
.quality-metric-row > :last-child { border-right: 0; }
.quality-metric-scope { display: flex !important; align-items: center; justify-content: center; gap: 6px; color: #256678; background: #f2f9fa !important; font-size: 11px; font-weight: 800; }
.quality-metric-scope input { width: 17px; height: 17px; margin: 0; accent-color: #19788e; }
.quality-metric-scope input:disabled { opacity: .6; }
.quality-metric-row-excluded > * { color: #788b92 !important; background: #f3f5f5 !important; }

.quality-review-modal { top: 10px; display: grid; grid-template-rows: auto minmax(0,1fr) auto; width: min(1320px,calc(100vw - 20px)); height: calc(100vh - 20px); max-height: calc(100vh - 20px); }
.quality-review-modal-body { display: grid; align-content: start; gap: 13px; min-height: 0; padding: 15px 17px; overflow: auto; background: #eef5f7; }
.quality-review-selector { display: flex; align-items: center; gap: 12px; }
.quality-review-selector label { flex: 1; display: grid; grid-template-columns: 120px minmax(0,1fr); min-width: 0; border: 1px solid #bdd1d8; background: #fff; }
.quality-review-selector label span { display: grid; place-items: center; padding: 9px; border-right: 1px solid #bdd1d8; color: #345667; background: #e7f1f4; font-weight: 800; }
.quality-review-selector select { min-width: 0; min-height: 44px; border: 0; }
.quality-review-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid #bdd1d8; border-radius: 10px; background: #fff; }
.quality-review-summary > div { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border-right: 1px solid #d4e1e5; border-bottom: 1px solid #d4e1e5; }
.quality-review-summary span { color: #6e8690; font-size: 11px; }
.quality-review-summary strong { color: #244b5a; overflow-wrap: anywhere; }
.quality-review-source { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 12px; border: 1px solid #c7d9df; border-radius: 10px; background: #fff; }
.quality-review-source span,.quality-review-source a { padding: 5px 8px; border-radius: 7px; color: #3d6170; background: #eef6f8; font-size: 12px; }
.quality-review-source a { color: #087891; font-weight: 800; }
.quality-review-conclusion,.quality-review-opinion { display: grid; gap: 7px; padding: 13px; border: 1px solid #c7d9df; border-radius: 10px; background: #fff; }
.quality-review-conclusion > span,.quality-review-opinion > span { color: #436475; font-size: 12px; font-weight: 800; }
.quality-review-conclusion p { margin: 0; color: #334f5d; line-height: 1.7; }
.quality-review-opinion textarea { min-height: 76px; }
.quality-review-actions { margin: 0 !important; }

.quality-report-preview-modal { top: 8px; display: grid; grid-template-rows: auto minmax(0,1fr) auto; width: min(1280px,calc(100vw - 18px)); height: calc(100vh - 16px); max-height: calc(100vh - 16px); }
.quality-report-preview-body { min-height: 0; padding: 18px; overflow: auto; background: #dbe6e9; }
.quality-official-report { width: min(100%,210mm); min-height: 286mm; margin: 0 auto; padding: 15mm 14mm; box-sizing: border-box; color: #172d36; background: #fff; box-shadow: 0 8px 28px rgba(25,58,69,.18); font-family: "Microsoft YaHei","Noto Sans SC",sans-serif; }
.quality-official-report > header { display: grid; grid-template-columns: 58px minmax(0,1fr); align-items: center; gap: 12px; padding-bottom: 10px; border-bottom: 3px solid #146c7f; text-align: center; }
.quality-official-report > header > span { display: grid; place-items: center; }
.quality-official-report .quality-report-logo { max-width: 52px; max-height: 52px; object-fit: contain; }
.quality-official-report h1 { margin: 0; color: #143e4c; font-family: SimSun,"Songti SC",serif; font-size: 23px; letter-spacing: 1px; }
.quality-official-report h2 { margin: 5px 0 2px; color: #143e4c; font-family: SimSun,"Songti SC",serif; font-size: 21px; letter-spacing: 8px; text-indent: 8px; }
.quality-official-report header p { margin: 2px 0 0; color: #55717c; font-size: 9px; letter-spacing: .55px; }
.quality-report-number { display: flex; justify-content: space-between; gap: 10px; padding: 8px 2px; color: #34525e; font-size: 11px; }
.quality-report-info,.quality-report-result { width: 100%; border-collapse: collapse; table-layout: fixed; }
.quality-report-info th,.quality-report-info td,.quality-report-result th,.quality-report-result td { padding: 7px 8px; border: 1px solid #6f8993; overflow-wrap: anywhere; }
.quality-report-info th { width: 14%; color: #234b5a; background: #eaf2f4; font-size: 11px; }
.quality-report-info td { width: 36%; font-size: 11px; }
.quality-report-result { margin-top: 10px; }
.quality-report-result th { color: #173f4d; background: #dcecef; font-size: 11px; }
.quality-report-result td { font-size: 11px; text-align: center; }
.quality-report-result .quality-report-metric-excluded td { color: #71848b; background: #f4f6f6; }
.quality-trace-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 10px 0; padding: 9px 10px; border: 1px solid #9ebbc4; border-radius: 7px; background: #f3f9fa; font-size: 10px; }
.quality-trace-chain strong { color: #15576a; }
.quality-trace-chain span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 5px; color: #244e5d; background: #dceff2; }
.quality-trace-chain span small { color: #62818c; font-size: 9px; font-weight: 750; }
.quality-trace-chain i { color: #5c7d88; font-style: normal; }
.quality-official-report > section { margin-top: 10px; padding: 10px; border: 1px solid #78919a; min-height: 58px; }
.quality-official-report > section p { margin: 6px 0; line-height: 1.6; }
.quality-official-report > section b { display: block; margin-top: 7px; color: #0f6175; }
.quality-judgement-scope-note { display: block; padding: 7px 9px; color: #496b77; background: #f1f7f8; line-height: 1.55; }
.quality-official-report > footer { display: grid; grid-template-columns: minmax(0,1fr) 250px; align-items: start; gap: 22px; margin-top: 18px; padding-top: 10px; border-top: 0; font-size: 11px; }
.quality-report-signatures { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 26px; align-self: stretch; padding-top: 9px; }
.quality-report-signatures span:last-child { grid-column: 1 / -1; }
.quality-report-company-seal { display: grid; justify-items: center; gap: 7px; margin-top: 2.2em; text-align: center; }
.quality-report-company-seal > strong { color: #243e49; font-family: SimSun,"Songti SC",serif; font-size: 12px; white-space: nowrap; }
.quality-report-company-seal > span { position: relative; display: grid; place-items: center; width: 78px; height: 78px; border: 2px dashed #c98787; border-radius: 50%; color: #a75555; background: repeating-radial-gradient(circle,rgba(180,66,66,.035) 0 4px,transparent 4px 8px); }
.quality-report-company-seal > span::before,.quality-report-company-seal > span::after { position: absolute; background: #d9a7a7; content: ''; }
.quality-report-company-seal > span::before { width: 56px; height: 1px; }
.quality-report-company-seal > span::after { width: 1px; height: 56px; }
.quality-report-company-seal b,.quality-report-company-seal small { position: relative; z-index: 1; padding: 1px 4px; background: #fff; }
.quality-report-company-seal b { font-size: 10px; }
.quality-report-company-seal small { font-size: 9px; }
.quality-report-print-sheet { display: none; }

@media print {
  body.printing-quality-report > *:not(.quality-report-print-sheet) { display: none !important; }
  body.printing-quality-report { margin: 0 !important; background: #fff !important; }
  body.printing-quality-report .quality-report-print-sheet { display: block !important; width: 210mm; min-height: 297mm; margin: 0; padding: 12mm; box-shadow: none; }
  @page { size: A4 portrait; margin: 0; }
}

@media(max-width:1100px){
  .quality-analysis-category-grid{grid-template-columns:1fr}
  .quality-source-picker{grid-template-columns:1fr 1fr}
  .quality-source-inline-add{grid-column:1/-1}
  .quality-analysis-flow{justify-content:flex-start;overflow-x:auto}
  .quality-review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  .quality-analysis-heading{align-items:flex-start;flex-direction:column;padding:14px}
  .quality-analysis-heading .primary-button{width:100%;justify-content:center}
  .quality-analysis-workbench{padding:9px}
  .quality-review-panel>header{align-items:flex-start;flex-direction:column}
  .quality-review-list>button{grid-template-columns:minmax(0,1fr) auto}
  .quality-review-list>button em{grid-column:1}
  .quality-review-summary{grid-template-columns:1fr}
  .quality-review-selector{align-items:stretch;flex-direction:column}
  .quality-review-selector label{grid-template-columns:100px minmax(0,1fr)}
  .quality-center-report-list>div>article{grid-template-columns:minmax(0,1fr) auto auto}
  .quality-center-report-list article>span{grid-column:1/-1}
  .quality-standard-upload{grid-template-columns:1fr}
  .quality-source-picker{grid-template-columns:1fr}
  .quality-source-inline-add{grid-column:1}
  .quality-standard-upload iframe{grid-column:1;height:360px}
  .quality-report-preview-body{padding:6px}
  .quality-official-report{min-height:0;padding:8mm 6mm}
  .quality-official-report h1{font-size:17px}
  .quality-official-report h2{font-size:16px}
  .quality-official-report>footer{grid-template-columns:1fr}
  .quality-report-company-seal{justify-self:end}
  .quality-report-number{flex-direction:column;gap:3px}
}

/* release-160：二级菜单浅蓝紫玻璃浮层与卡片式交互 */
@keyframes submenu-popout {
  from {
    opacity: 0;
    filter: brightness(.97) saturate(.9);
  }
  to {
    opacity: 1;
    filter: brightness(1) saturate(1);
  }
}

.submenu-list {
  width: 224px;
  gap: 6px;
  padding: 12px 9px 11px;
  overflow-x: visible;
  border: 1px solid rgba(109, 123, 191, .82);
  border-top: 4px solid #5167c9;
  border-radius: 14px;
  background:
    linear-gradient(145deg, rgba(252,253,255,.99), rgba(231,237,255,.98) 56%, rgba(238,246,255,.98)),
    #f1f4ff;
  box-shadow:
    0 3px 0 rgba(255,255,255,.95) inset,
    0 -1px 0 rgba(70,82,155,.11) inset,
    0 8px 18px rgba(48,61,126,.2),
    0 22px 48px rgba(21,31,80,.27);
  outline: 1px solid rgba(255,255,255,.72);
  outline-offset: -2px;
  transform-origin: left 48px;
  backdrop-filter: blur(12px) saturate(1.08);
}

.nav-group:hover .submenu-list,
.nav-group:focus-within .submenu-list,
.nav-group.submenu-hovering .submenu-list {
  animation: submenu-popout 160ms cubic-bezier(.2,.72,.2,1) both;
}

.submenu-list::-webkit-scrollbar { width: 7px; }
.submenu-list::-webkit-scrollbar-track { margin: 8px 0; background: transparent; }
.submenu-list::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #9aa7de; background-clip: padding-box; }

.submenu-section {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 8px 4px 2px;
  color: #4256a8;
  font-size: 12px !important;
  letter-spacing: .04em;
}

.submenu-section::before {
  width: 4px;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(#8292eb,#5167c9);
  box-shadow: 0 2px 5px rgba(64,82,181,.3);
  content: '';
}

.submenu-item {
  position: relative;
  min-height: 40px;
  padding: 7px 10px;
  border: 1px solid rgba(190, 199, 231, .86);
  border-radius: 10px;
  color: #263653;
  background: linear-gradient(135deg,#fff,#f2f4ff);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 2px 5px rgba(45,59,121,.1);
  transform-origin: left center;
  transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease, background 140ms ease, color 140ms ease;
}

.submenu-item:hover {
  z-index: 1;
  color: #243f8f;
  border-color: #8796dd;
  background: linear-gradient(135deg,#fbfcff,#e4e9ff);
  box-shadow:
    0 1px 0 rgba(255,255,255,.98) inset,
    0 5px 10px rgba(63,78,164,.18),
    5px 7px 16px rgba(37,48,112,.16);
  transform: translateY(-2px) scale(1.01);
}

.submenu-item:active {
  box-shadow: 0 1px 3px rgba(16,69,76,.16) inset;
  transform: translateY(0) scale(1);
}

.submenu-item.is-encrypted {
  border-color: #e9c78e;
  box-shadow: inset 3px 0 0 #d97706, 0 2px 5px rgba(21,58,78,.08);
}

.submenu-item.is-encrypted:hover {
  box-shadow: inset 3px 0 0 #d97706, 0 5px 10px rgba(126,78,14,.13), 5px 7px 16px rgba(9,45,65,.12);
}

.submenu-item:focus-visible {
  outline: 2px solid #6377d5;
  outline-offset: 1px;
}

@media (prefers-reduced-motion: reduce) {
  .nav-group:hover .submenu-list,
  .nav-group:focus-within .submenu-list,
  .nav-group.submenu-hovering .submenu-list { animation: none; }
  .submenu-item { transition: none; }
}

/* Release 405：在岗员工即时读取、综合班及生产三班两倒六天自动轮转 */
.attendance-shift-config-section,
.attendance-patrol-config-section {
  border-color: #c3d7e8 !important;
  background: linear-gradient(145deg,#f8fbff,#eef5fb) !important;
}

.attendance-shift-config-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
}

.attendance-shift-config-card {
  overflow: hidden;
  border: 1px solid #c4d8e7;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(29,72,104,.08);
}

.attendance-shift-config-card > header {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 12px;
  color: #fff;
  background: linear-gradient(135deg,#315f91,#4b7fb0);
}

.attendance-shift-config-card[data-schedule-key="administrative"] > header { background: linear-gradient(135deg,#5866b7,#7685db); }
.attendance-shift-config-card[data-schedule-key="comprehensive"] > header { background: linear-gradient(135deg,#9a6124,#c4853b); }
.attendance-shift-config-card[data-schedule-key="production_day"] > header { background: linear-gradient(135deg,#087f75,#12a08f); }
.attendance-shift-config-card[data-schedule-key="production_night"] > header { background: linear-gradient(135deg,#263b70,#455c9d); }
.attendance-shift-config-card > header > span { display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.15); }
.attendance-shift-config-card > header div { display:grid;gap:2px;min-width:0; }
.attendance-shift-config-card > header strong { font-size:13px; }
.attendance-shift-config-card > header small { color:rgba(255,255,255,.78);font-size:9px;line-height:1.4; }
.attendance-shift-config-card > div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px; }
.attendance-shift-config-card label { display:grid;gap:5px;min-width:0; }
.attendance-shift-config-card label span { color:#526d80;font-size:10px;font-weight:750; }
.attendance-shift-config-card input,.attendance-shift-config-card select { min-width:0;min-height:38px;border:1px solid #c8d8e3;border-radius:8px;background:#f9fcfe; }
.attendance-shift-config-note { margin:11px 0 0;padding:9px 11px;border-left:4px solid #5f74cc;border-radius:7px;color:#4b6275;background:#edf1ff;font-size:11px;line-height:1.65; }
.attendance-rotation-config { display:grid;grid-template-columns:minmax(190px,.45fr) minmax(0,1fr);align-items:end;gap:12px;margin-top:11px;padding:12px;border:1px solid #c8d9e5;border-radius:11px;background:#fff; }
.attendance-rotation-config label,.attendance-rotation-config > div { display:grid;gap:5px; }
.attendance-rotation-config span,.attendance-rotation-config strong { color:#395c74;font-size:11px;font-weight:800; }
.attendance-rotation-config input { min-height:38px;border:1px solid #c5d5e1;border-radius:8px;background:#f8fbfd; }
.attendance-rotation-config small { color:#738593;font-size:10px;line-height:1.55; }
.attendance-rotation-preview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px; }
.attendance-rotation-preview span { padding:9px 10px;border:1px solid #d6e0e7;border-radius:9px;color:#526b7b;background:#f9fbfc;font-size:10px;white-space:nowrap; }
.attendance-rotation-preview b { margin-right:7px;color:#254f6b; }
.attendance-patrol-safety-note { display:flex;align-items:center;gap:7px;margin-top:10px;padding:9px 11px;border:1px solid #e7d39b;border-radius:9px;color:#80591c;background:#fff9e9;font-size:11px; }

.attendance-assignment-section { border-color:#ccd9ce !important;background:linear-gradient(145deg,#fffefa,#f0f5ef) !important; }
.attendance-assignment-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:11px; }
.attendance-assignment-summary > span { display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:4px;padding:9px 10px;border:1px solid #d2ded3;border-radius:10px;background:#fff; }
.attendance-assignment-summary b { overflow:hidden;color:#53675b;font-size:10px;text-overflow:ellipsis;white-space:nowrap; }
.attendance-assignment-summary strong { color:#2c6d52;font-size:18px; }
.attendance-assignment-summary small { color:#829086;font-size:9px; }
.attendance-assignment-summary .attendance-unconfirmed-count { border-color:#ead6ad;background:#fff9eb; }
.attendance-assignment-summary .attendance-unconfirmed-count strong { color:#a66616; }
.attendance-assignment-toolbar { display:flex;align-items:center;gap:9px;margin-bottom:10px;padding:10px 12px;border:1px solid #c9d7cb;border-radius:11px;background:#f7faf6; }
.attendance-assignment-toolbar > div { display:flex;align-items:center;gap:7px;margin-right:auto;color:#3f5e4e;font-size:11px; }
.attendance-assignment-toolbar select { min-width:150px;min-height:36px;border-color:#bfcfc1;background:#fff; }
.attendance-assignment-toolbar > small { color:#7b877f;font-size:9px; }
.attendance-employee-picker[hidden] { display:none !important; }
.attendance-employee-picker { flex:1 0 100%;overflow:hidden;margin-top:2px;border:1px solid #b8cbbd;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(38,68,52,.18),0 4px 12px rgba(38,68,52,.09);transform-origin:top center; }
.attendance-employee-picker.is-opening { animation:attendancePickerDrop .18s ease-out both; }
@keyframes attendancePickerDrop { from{opacity:0;transform:translateY(-7px) scale(.99)} to{opacity:1;transform:none} }
.attendance-employee-picker > header { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #d8e2da;background:linear-gradient(135deg,#eef5ef,#fafbf8); }
.attendance-employee-picker > header > div { display:grid;gap:2px; }
.attendance-employee-picker > header strong { display:flex;align-items:center;gap:7px;color:#294d3a;font-size:13px; }
.attendance-employee-picker > header small { color:#7b8b81;font-size:9px; }
.attendance-employee-picker-tools { display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #e1e7e2;background:#fcfdfb; }
.attendance-employee-picker-tools > label { display:flex;align-items:center;gap:7px;flex:1 1 260px;min-width:180px;color:#617268; }
.attendance-employee-picker-tools input { width:100%;min-height:36px;border:1px solid #c8d5cb;border-radius:9px;background:#fff; }
.attendance-employee-picker-tools > span { color:#687a70;font-size:10px;white-space:nowrap; }
.attendance-employee-picker-tools > span strong { color:#276b4d;font-size:15px; }
.attendance-employee-picker-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:360px;overflow:auto;padding:11px;background:#f5f8f4; }
.attendance-employee-picker-department { overflow:hidden;border:1px solid #d3ded5;border-radius:11px;background:#fff; }
.attendance-employee-picker-department-head { display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid #e0e7e1;background:#edf4ee;cursor:pointer; }
.attendance-employee-picker-department-head input,.attendance-employee-picker-option input { width:17px;height:17px;flex:0 0 auto;accent-color:#39785a; }
.attendance-employee-picker-department-head strong { overflow:hidden;color:#355945;font-size:11px;text-overflow:ellipsis;white-space:nowrap; }
.attendance-employee-picker-department-head small { margin-left:auto;color:#77877d;font-size:9px;white-space:nowrap; }
.attendance-employee-picker-department > div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:5px;background:#eef2ee; }
.attendance-employee-picker-option { display:flex;align-items:center;gap:9px;min-width:0;padding:9px 10px;background:#fff;cursor:pointer;transition:background .15s ease,box-shadow .15s ease; }
.attendance-employee-picker-option:hover { position:relative;background:#f2f8f3;box-shadow:inset 3px 0 #4c8967; }
.attendance-employee-picker-option:has(input:checked) { background:#eaf5ed;box-shadow:inset 3px 0 #357b57; }
.attendance-employee-picker-option > span { display:grid;min-width:0;gap:2px; }
.attendance-employee-picker-option strong,.attendance-employee-picker-option small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.attendance-employee-picker-option strong { color:#283f33;font-size:11px; }
.attendance-employee-picker-option small { color:#7b8980;font-size:9px; }
.attendance-employee-picker > footer { display:flex;justify-content:flex-end;gap:9px;padding:10px 12px;border-top:1px solid #dfe6e0;background:#fff; }
.attendance-assignment-registry { display:none !important; }
.attendance-roster-tools { display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:9px 10px;border:1px solid #d2ddd4;border-radius:10px;background:#fbfcfa; }
.attendance-roster-tools > label { display:flex;align-items:center;gap:7px;flex:1 1 310px;min-width:220px;color:#617268; }
.attendance-roster-tools input { width:100%;min-height:36px;border:1px solid #c8d5cb;border-radius:8px;background:#fff; }
.attendance-roster-tools > span { color:#6c7b72;font-size:10px;white-space:nowrap; }
.attendance-roster-tools > span strong { color:#2c6d52;font-size:14px; }
.attendance-assignment-departments { display:grid;gap:8px;max-height:430px;overflow:auto;padding-right:3px; }
.attendance-assignment-departments.is-guided-open { outline:3px solid rgba(69,139,99,.18);outline-offset:4px;border-radius:12px; }
.attendance-assignment-department { overflow:hidden;border:1px solid #d4ddd5;border-radius:11px;background:#fff; }
.attendance-assignment-department > summary { display:flex;align-items:center;gap:9px;padding:10px 12px;cursor:pointer;list-style:none;background:#f5f8f4; }
.attendance-assignment-department > summary::-webkit-details-marker { display:none; }
.attendance-assignment-department > summary label { display:flex;align-items:center;gap:7px;color:#385747;font-size:12px;font-weight:800;cursor:pointer; }
.attendance-assignment-department > summary input,.attendance-assignment-table input { width:16px;height:16px;accent-color:#39785a; }
.attendance-assignment-department > summary small { margin-left:auto;color:#7b8a80;font-size:9px; }
.attendance-assignment-department > summary > svg { color:#6d8074;transition:transform .18s ease; }
.attendance-assignment-department[open] > summary { border-bottom:1px solid #dde4de;background:#eef4ee; }
.attendance-assignment-department[open] > summary > svg { transform:rotate(180deg); }
.attendance-assignment-table { min-width:820px; }
.attendance-assignment-table th,.attendance-assignment-table td { padding:8px 9px;font-size:10px; }
.attendance-assignment-table th:first-child,.attendance-assignment-table td:first-child { width:48px;text-align:center; }
.attendance-assignment-table td strong,.attendance-assignment-table td small { display:block; }
.attendance-assignment-table td small { margin-top:2px;color:#839087;font-size:9px; }
.attendance-assignment-table select { min-width:132px;min-height:34px;border:1px solid #c9d5cc;border-radius:7px;background:#fff; }
.attendance-assignment-source { display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap; }
.attendance-assignment-source.confirmed { color:#27704d;background:#e9f5ed; }
.attendance-assignment-source.suggested { color:#98611d;background:#fff4dc; }
.attendance-assignment-source.pending { color:#315f91;background:#eaf2fa; }

.attendance-patrol-panel {
  margin: 20px 18px;
  overflow: hidden;
  border: 1px solid #b8d4e4;
  border-radius: 18px;
  background: linear-gradient(145deg,#f8fbfe,#edf5fa);
  box-shadow: 0 10px 28px rgba(20,57,84,.09);
}

.attendance-history-query {
  display: grid;
  box-sizing:border-box;
  width:auto;
  min-width:0;
  grid-template-columns:minmax(180px,1.15fr) repeat(3,minmax(110px,.72fr)) minmax(240px,1.5fr);
  align-items: end;
  gap: 10px;
  margin: 18px;
  padding: 14px;
  border: 1px solid #d7d1c5;
  border-radius: 14px;
  background: linear-gradient(125deg,#fffefa,#f6f3ec 72%,#edf3eb);
  box-shadow: 0 7px 19px rgba(71,65,53,.07);
}
.attendance-history-query.compact { width:auto;margin:12px 14px;grid-template-columns:minmax(180px,1.1fr) repeat(3,minmax(105px,.7fr)) minmax(240px,1.5fr); }
.attendance-history-query-title { display:flex;align-items:center;gap:9px;min-width:0;align-self:center; }
.attendance-history-query-title > span { display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border:1px solid #c9d8cb;border-radius:10px;color:#39715a;background:#eef5ed; }
.attendance-history-query-title > div { display:grid;gap:2px;min-width:0; }
.attendance-history-query-title strong { color:#304d3d;font-size:13px; }
.attendance-history-query-title small { display:block;max-width:100%;overflow:hidden;color:#7a776f;font-size:9px;line-height:1.4;pointer-events:none;text-overflow:ellipsis;white-space:nowrap; }
.attendance-history-query label { display:grid;gap:5px;min-width:0; }
.attendance-history-query label span { color:#64665e;font-size:10px;font-weight:750; }
.attendance-history-query input { width:100%;min-width:0;min-height:37px;border:1px solid #d6d1c8;border-radius:8px;background:#fffefa; }
.attendance-employee-scope{position:relative;align-self:end;min-width:210px;border:1px solid #d6d1c8;border-radius:8px;background:#fffefa;font-size:10px}
.attendance-history-query>.attendance-employee-scope{grid-column:1/-1;grid-row:2}.attendance-history-query>.attendance-history-query-actions{grid-column:5;grid-row:1;justify-content:flex-end}
.attendance-employee-scope summary{padding:11px 10px;color:#4f5f54;font-weight:750;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attendance-employee-scope>div{position:absolute;z-index:12;right:0;top:calc(100% + 5px);display:grid;width:320px;max-height:260px;padding:8px;overflow:auto;border:1px solid #d8d2c8;border-radius:10px;background:#fff;box-shadow:0 14px 34px #32362f24}
.attendance-employee-scope>div label{display:flex;grid-template-columns:none;align-items:center;gap:8px;padding:6px;border-radius:7px;cursor:pointer}
.attendance-employee-scope>div label:hover{background:#f3f6f0}.attendance-employee-scope input{width:15px;min-height:15px;flex:0 0 15px}
.attendance-employee-scope>div span{display:grid}.attendance-employee-scope>div small{color:#858078;font-size:9px;font-weight:500}
.attendance-history-query-actions { display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;white-space:normal; }
.attendance-history-query-result { grid-column:1/-1;grid-row:3;display:flex;align-items:center;gap:8px;padding-top:9px;border-top:1px dashed #ddd7cc;color:#77746d;font-size:10px; }
.attendance-history-query-result span { margin-right:auto; }
.attendance-history-query-result b { padding:4px 8px;border-radius:999px;color:#496354;background:#edf3eb;font-size:10px; }
.attendance-history-query-result b.has-risk { color:#a14d1c;background:#fff1e6; }
.attendance-statistics-panel{margin:12px 14px;padding:12px;border:1px solid #ddd7cc;border-radius:12px;background:#faf9f5}
.attendance-statistics-panel .attendance-ledger-summary{grid-template-columns:repeat(7,minmax(84px,1fr));margin:0 0 10px}
.attendance-statistics-panel details>summary{color:#4a6253;font-size:11px;font-weight:800;cursor:pointer}
.attendance-statistics-panel details .table-scroll{margin-top:9px;max-height:300px}.attendance-statistics-panel td small{display:block;color:#888;font-size:9px}
.attendance-monthly-table-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 8px;color:#40594a;font-size:11px}
.attendance-monthly-table-title span{color:#7d7a72;font-size:10px}
.attendance-monthly-table-scroll{max-height:440px;border:1px solid #e1ddd4;border-radius:10px;background:#fff}
.attendance-monthly-summary-table{min-width:1240px}
.attendance-monthly-summary-table th,.attendance-monthly-summary-table td{padding:7px 6px;text-align:center;white-space:nowrap}
.attendance-monthly-summary-table th:nth-child(2),.attendance-monthly-summary-table th:nth-child(3),.attendance-monthly-summary-table td:nth-child(2),.attendance-monthly-summary-table td:nth-child(3){text-align:left}
.attendance-monthly-summary-note{display:flex;align-items:center;gap:7px;margin:0 14px 12px;padding:9px 11px;border:1px solid #d9dfd7;border-radius:9px;color:#5f6c62;background:#f4f7f2;font-size:10px}
.attendance-statistics-panel .attendance-detail-table-scroll{max-height:360px;border:1px solid #e1ddd4;border-radius:10px;background:#fff}
.attendance-statistics-panel .attendance-detail-table{min-width:1180px}
.attendance-statistics-panel .attendance-detail-table th,.attendance-statistics-panel .attendance-detail-table td{padding:8px 7px;vertical-align:top;white-space:normal;line-height:1.5}
.attendance-statistics-panel .attendance-detail-table td:first-child{min-width:132px}
.attendance-statistics-panel .attendance-detail-table td:first-child small{margin-top:2px}
.attendance-statistics-panel .attendance-specific-dates{min-width:220px;max-width:330px;color:#315b47;font-weight:700;word-break:break-word}
.attendance-statistics-panel .attendance-daily-punch-scroll{max-height:430px;margin-bottom:12px;border:1px solid #d9ded8;border-radius:10px;background:#fff}
.attendance-statistics-panel .attendance-daily-punch-table{min-width:1080px}
.attendance-statistics-panel .attendance-daily-punch-table th,.attendance-statistics-panel .attendance-daily-punch-table td{padding:8px 9px;vertical-align:top;line-height:1.45}
.attendance-statistics-panel .attendance-daily-punch-table td:nth-child(2) small{display:block;margin-top:2px}
.attendance-daily-records{display:grid;min-width:350px;gap:4px;white-space:normal}
.attendance-daily-records>span{display:block;padding:4px 7px;border-radius:6px;color:#43584c;background:#f3f6f2;font-weight:650}
.attendance-exception-value{color:#a23f24;font-weight:800;background:#fff7f1}
.executive-overview-loading .executive-access-card>span{animation:hh-overview-loading 1.15s linear infinite}
@keyframes hh-overview-loading{to{transform:rotate(360deg)}}

.attendance-patrol-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  color:#fff;
  background:linear-gradient(125deg,#183f64,#226d83 60%,#248d84);
}

.attendance-patrol-head > div:first-child > span { display:flex;align-items:center;gap:7px;color:#bdeff0;font-size:11px;font-weight:800;letter-spacing:.04em; }
.attendance-patrol-head h3 { margin:4px 0 3px;font-size:19px; }
.attendance-patrol-head p { margin:0;color:rgba(255,255,255,.75);font-size:11px; }
.attendance-patrol-head > div:last-child { display:flex;align-items:center;gap:9px;flex:0 0 auto; }
.attendance-patrol-head .outline-button { border-color:rgba(255,255,255,.75);color:#154d64;background:#fff; }
.attendance-patrol-state { padding:6px 10px;border-radius:999px;font-size:10px;font-weight:800; }
.attendance-patrol-state.is-running { color:#d8fff3;background:rgba(34,197,139,.2); }
.attendance-patrol-state.is-paused { color:#ffe8b7;background:rgba(219,144,31,.22); }

.attendance-patrol-metrics {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  padding:14px;
}
.attendance-patrol-metrics article { display:grid;gap:4px;min-width:0;padding:12px;border:1px solid #cbdde8;border-radius:11px;background:#fff;box-shadow:0 4px 11px rgba(27,67,92,.06); }
.attendance-patrol-metrics span,.attendance-patrol-metrics small { color:#6b8291;font-size:10px; }
.attendance-patrol-metrics strong { color:#1d4e68;font-size:18px;overflow-wrap:anywhere; }
.attendance-patrol-metrics article.has-risk { border-color:#edbb8b;background:#fff8ef; }
.attendance-patrol-metrics article.has-risk strong { color:#b34f16; }
.attendance-patrol-schedules { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 14px 14px; }
.attendance-patrol-schedules > span { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:9px 11px;border:1px solid #c9d9e8;border-radius:10px;background:#fdfefe; }
.attendance-patrol-schedules b { color:#31536b;font-size:11px; }
.attendance-patrol-schedules em { color:#2f68a0;font-size:11px;font-style:normal;font-weight:800; }
.attendance-patrol-schedules small { grid-column:1/-1;color:#788b98;font-size:9px; }
.attendance-patrol-alerts { margin:0 14px 14px;overflow:hidden;border:1px solid #cbdbe5;border-radius:12px;background:#fff; }
.attendance-patrol-alerts .subsection-header { margin:0;border-bottom:1px solid #dbe6ec; }
.attendance-patrol-alert-table td > small { display:block;margin-top:3px;color:#768b99;font-size:9px;line-height:1.45; }
.attendance-patrol-history { margin:0 14px 14px;border:1px solid #cbdbe5;border-radius:11px;background:#fff; }
.attendance-patrol-history summary { padding:11px 13px;color:#315b75;font-size:11px;font-weight:800;cursor:pointer; }
.attendance-patrol-history[open] summary { border-bottom:1px solid #dce7ed;background:#f3f8fb; }

@media(max-width:1200px){
  .attendance-history-query,.attendance-history-query.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
  .attendance-history-query-title{grid-column:1/-1}
  .attendance-history-query>.attendance-employee-scope,.attendance-history-query>.attendance-history-query-actions,.attendance-history-query-result{grid-column:1/-1;grid-row:auto}
  .attendance-history-query>.attendance-history-query-actions{justify-content:flex-start}
  .attendance-shift-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-assignment-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .attendance-assignment-toolbar{align-items:stretch;flex-wrap:wrap}
  .attendance-assignment-toolbar>div{width:100%}
  .attendance-employee-picker-tools{flex-wrap:wrap}
  .attendance-employee-picker-tools>label{flex-basis:100%;min-width:0}
  .attendance-employee-picker-list{grid-template-columns:1fr}
  .attendance-roster-tools{flex-wrap:wrap}
  .attendance-roster-tools>label{flex-basis:100%;min-width:0}
  .attendance-rotation-preview{grid-template-columns:1fr}
  .attendance-patrol-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .attendance-patrol-schedules{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .attendance-history-query,.attendance-history-query.compact{grid-template-columns:1fr;margin:10px;padding:10px}
  .attendance-history-query-title,.attendance-history-query-result{grid-column:1;grid-row:auto}
  .attendance-history-query-actions{flex-wrap:wrap}
  .attendance-history-query>.attendance-employee-scope,.attendance-history-query>.attendance-history-query-actions{grid-column:1;grid-row:auto}
  .attendance-history-query-result{align-items:flex-start;flex-wrap:wrap}
  .attendance-history-query-result span{width:100%;margin-right:0}
  .attendance-employee-scope{width:100%}.attendance-employee-scope>div{position:static;width:100%;box-shadow:none;border-width:1px 0 0}
  .attendance-statistics-panel .attendance-ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-shift-config-grid{grid-template-columns:1fr}
  .attendance-rotation-config{grid-template-columns:1fr}
  .attendance-assignment-summary{grid-template-columns:1fr 1fr}
  .attendance-assignment-toolbar select,.attendance-assignment-toolbar button{flex:1 1 150px}
  .attendance-assignment-toolbar>small{width:100%}
  .attendance-employee-picker-tools>button{flex:1 1 130px}
  .attendance-employee-picker-department>div{grid-template-columns:1fr}
  .attendance-employee-picker>footer button{flex:1 1 130px}
  .attendance-roster-tools>button{flex:1 1 140px}
  .attendance-patrol-head{align-items:flex-start;flex-direction:column}
  .attendance-patrol-head>div:last-child{width:100%;justify-content:space-between}
  .attendance-patrol-metrics{grid-template-columns:1fr 1fr;padding:9px}
  .attendance-patrol-schedules{grid-template-columns:1fr;padding:0 9px 9px}
  .attendance-patrol-alerts,.attendance-patrol-history{margin:0 9px 9px}
}

/* release-161：总览与一级菜单浏览页改用暖灰白、浅砂金和鼠尾草绿背景 */
.workspace {
  background:
    radial-gradient(circle at 88% 4%, rgba(112, 145, 117, .08), transparent 28%),
    linear-gradient(180deg, #f7f5f1 0%, #f1eee8 100%);
}

.filterbar {
  border-bottom-color: #ddd8cf;
  background: linear-gradient(90deg, rgba(255, 254, 251, .98), rgba(248, 246, 241, .96));
  box-shadow: 0 3px 12px rgba(73, 66, 54, .045);
}

.module-grid,
.content-grid {
  border-color: #d9d3c9;
  background:
    radial-gradient(circle at 96% 2%, rgba(104, 143, 110, .10), transparent 27%),
    radial-gradient(circle at 2% 98%, rgba(190, 151, 91, .07), transparent 25%),
    linear-gradient(145deg, rgba(255, 254, 251, .995), rgba(246, 243, 237, .985));
  box-shadow:
    0 22px 48px rgba(68, 62, 51, .11),
    0 4px 12px rgba(68, 62, 51, .055);
}

.module-command {
  border-color: #d9d4ca;
  background:
    radial-gradient(circle at 93% 12%, rgba(111, 151, 116, .12), transparent 27%),
    linear-gradient(108deg, #fffefa, #f8f5ee 68%, #eef3eb);
  box-shadow: 0 9px 24px rgba(72, 67, 56, .075);
}

.module-brandmark {
  border-color: #d9d5ca;
  background: rgba(255, 254, 250, .97);
  box-shadow: 0 5px 14px rgba(71, 67, 57, .09);
}

.module-command-copy > span,
.module-browse-guide-copy > span {
  color: #55745e;
}

.module-browse-guide {
  border-color: #dcd6ca;
  background: linear-gradient(115deg, #fffefa, #f5f2ea 61%, #edf3eb);
}

.module-browse-guide-metrics article {
  border-color: #e0dbd1;
  background: rgba(255, 254, 250, .92);
}

.module-browse-guide-metrics strong,
.module-business-item > b {
  color: #356b55;
}

.stat-tile {
  border-color: #dfdad0;
  background: #fffefa;
  box-shadow: 0 4px 12px rgba(74, 68, 56, .045);
}

.stat-tile:hover {
  border-color: #aebfab;
  background: #fbfcf8;
}

.module-business-heading {
  border-bottom-color: #e2ddd4;
  background: #f8f6f1;
}

.module-ledger-browser {
  border-color: #d8d2c7;
  background: linear-gradient(145deg, #faf8f3, #f1eee8);
  box-shadow: 0 16px 36px rgba(68, 62, 51, .085);
}

.module-ledger-browser-head {
  border-bottom-color: #ddd7cc;
  background:
    radial-gradient(circle at 94% 15%, rgba(102, 148, 107, .14), transparent 29%),
    linear-gradient(110deg, #f5f2ea, #fffefa 62%, #edf3eb);
}

.module-ledger-browser-head > div:first-child > span {
  color: #4f765d;
}

.module-ledger-overview {
  border-color: #d9d5ca;
  background: rgba(255, 254, 250, .9);
}

.module-ledger-global-toolbar {
  border-bottom-color: #e1dcd3;
  background: #fffefa;
}

.ledger-function-stack {
  background: #f4f1eb;
}

.ledger-function-section {
  border-color: #ddd7cd;
  background: #fffefa;
  box-shadow: 0 7px 18px rgba(69, 63, 52, .055);
}

.executive-command-hero {
  border-color: #c8c9b8;
  color: #283b33;
  background:
    radial-gradient(circle at 88% 12%, rgba(103, 153, 111, .25), transparent 31%),
    radial-gradient(circle at 48% 118%, rgba(193, 154, 92, .13), transparent 43%),
    linear-gradient(132deg, #fffdf7 0%, #eeeede 53%, #dce7d8 100%);
  box-shadow: 0 16px 38px rgba(72, 77, 58, .14);
}

.executive-command-hero::before,
.executive-command-hero::after {
  border-color: rgba(83, 126, 91, .14);
}

.executive-hero-copy > small,
.executive-operating-matrix > header small,
.executive-panel header small,
.executive-pulse-section header small {
  color: #54765f;
}

.executive-hero-copy h2,
.executive-hero-facts strong,
.executive-health-dial strong,
.executive-kpi-card strong,
.executive-operating-matrix > header h3,
.executive-panel header h3,
.executive-pulse-section header h3 {
  color: #263d34;
}

.executive-hero-copy > p,
.executive-live-line > b,
.executive-health > small {
  color: #64746a;
}

.executive-kpi-card {
  border-color: #ddd8ce;
  background: linear-gradient(150deg, #fffefa, #f7f4ee);
  box-shadow: 0 8px 22px rgba(68, 63, 53, .06);
}

.executive-kpi-card.tone-blue::after {
  background: #56836f;
}

.executive-kpi-icon,
.executive-pulse-icon {
  color: #3f7059;
  background: #eaf0e7;
}

.executive-operating-matrix {
  border-color: #ddd8ce;
  background: linear-gradient(180deg, #fffefa, #f8f5ef);
  box-shadow: 0 10px 28px rgba(69, 64, 53, .065);
}

.executive-operating-matrix > header {
  border-bottom-color: #e1dcd3;
  background: linear-gradient(90deg, #f7f5ef, #fffefa);
}

.executive-matrix-card,
.executive-panel,
.executive-pulse-section,
.executive-pulse-card {
  border-color: #e1dcd3;
  background: #fffefa;
}

.executive-panel,
.executive-pulse-section {
  box-shadow: 0 9px 26px rgba(68, 62, 52, .06);
}

.executive-data-empty,
.executive-approval-structure {
  border-color: #e2ddd4;
  background: linear-gradient(180deg, #fbfaf6, #f5f2ec);
}

.executive-pulse-card:hover:not(.is-locked),
.executive-decision-list > button:hover {
  background: #f6f7f1;
}

.executive-decision-module {
  color: #3e7058;
  background: #eaf1e8;
}

.executive-access-card {
  border-color: #d9d4ca;
  background: linear-gradient(145deg, #fffefa, #f1f2e9);
  box-shadow: 0 18px 45px rgba(69, 64, 53, .11);
}

/* release-162：登录工作台改为暖白、浅灰米色的大面积背景 */
.login-shell {
  background:
    radial-gradient(circle at 17% 14%, rgba(255, 255, 255, .98), transparent 33%),
    radial-gradient(circle at 84% 78%, rgba(154, 169, 139, .20), transparent 39%),
    repeating-linear-gradient(94deg, rgba(111, 101, 83, .025) 0 1px, transparent 1px 88px),
    linear-gradient(145deg, #f8f6f1 0%, #efebe3 54%, #e4e3da 100%);
}

.login-shell::before {
  border-color: rgba(137, 133, 116, .22);
  background: rgba(178, 177, 158, .10);
  box-shadow: 0 -30px 76px rgba(92, 86, 71, .11);
}

.login-shell::after {
  border-color: rgba(104, 139, 107, .08);
}

.login-workbench {
  border-color: rgba(180, 171, 153, .82);
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .99), transparent 39%),
    linear-gradient(125deg, rgba(255, 254, 250, .995), rgba(245, 241, 233, .995) 58%, rgba(233, 235, 225, .99)),
    #f5f2ea;
  box-shadow:
    0 3px 0 rgba(255, 255, 255, .98),
    0 14px 0 -7px rgba(184, 177, 159, .72),
    0 34px 74px rgba(76, 70, 58, .20),
    inset 0 1px 0 rgba(255, 255, 255, .98);
}

.login-workbench::before {
  border-color: rgba(151, 145, 127, .26);
  box-shadow: inset 0 0 34px rgba(255, 255, 255, .56);
}

.login-workbench::after {
  background: rgba(76, 70, 58, .18);
}

.login-logo-lockup {
  border-color: rgba(181, 173, 154, .66);
  background: rgba(255, 254, 250, .96);
  box-shadow: 0 8px 18px rgba(79, 73, 60, .13), inset 0 1px 0 #fff;
}

.login-hero h1 .login-company-name {
  color: #59665b;
  text-shadow: 0 1px 0 #fff;
}

.login-hero h1 .login-system-name {
  color: #293a32;
  text-shadow: 0 2px 0 rgba(255, 255, 255, .92), 0 8px 22px rgba(74, 76, 60, .12);
}

.login-system-intro {
  color: #68736a;
}

.login-card {
  border-color: rgba(184, 174, 155, .72);
  background:
    linear-gradient(155deg, rgba(255, 255, 252, .99), rgba(245, 241, 232, .985)),
    #faf7f0;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, .98),
    0 18px 38px rgba(75, 69, 57, .15),
    inset 0 1px 0 #fff;
}

.login-brand > span {
  color: #fff;
  background: linear-gradient(145deg, #769878, #4e7157);
  box-shadow: 0 9px 20px rgba(69, 101, 74, .20);
}

.login-brand h2 {
  color: #2d4036;
}

.login-card form label > span {
  color: #3e4d44 !important;
}

.login-input {
  border-color: #d7d0c3;
  color: #637166;
  background: rgba(255, 254, 250, .98);
  box-shadow: inset 0 1px 2px rgba(78, 72, 59, .045);
}

.login-input:focus-within {
  border-color: #78977c;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(112, 148, 116, .15), 0 8px 20px rgba(70, 78, 61, .10);
}

.login-card form input::placeholder {
  color: #8b9088 !important;
}

.login-card .primary-button {
  border-color: #587c60;
  background: linear-gradient(135deg, #739878, #4d7157);
  box-shadow: 0 10px 22px rgba(67, 99, 72, .20);
}

/* release-163：登录页底部采用 Windows 经典草原感的清新绿色 */
.login-shell {
  background:
    radial-gradient(circle at 18% 13%, rgba(255, 255, 255, .98), transparent 32%),
    radial-gradient(ellipse at 68% 66%, rgba(225, 239, 151, .34), transparent 25%),
    repeating-linear-gradient(94deg, rgba(111, 101, 83, .022) 0 1px, transparent 1px 88px),
    linear-gradient(180deg,
      #f8f6f1 0%,
      #f1ede5 54%,
      #dfe5bd 63%,
      #a8cf59 72%,
      #6eb33a 86%,
      #3f8d2b 100%);
}

.login-shell::before {
  border-color: rgba(83, 143, 50, .24);
  background: linear-gradient(180deg, rgba(148, 199, 75, .42), rgba(49, 127, 34, .88));
  box-shadow: 0 -24px 64px rgba(111, 157, 55, .18), inset 0 1px 0 rgba(225, 244, 171, .38);
}

.login-shell::after {
  border-color: rgba(91, 145, 58, .08);
}

/* release-164：直接使用微软官方发布的 Windows XP Bliss 怀旧高清背景 */
.login-shell {
  background-color: #f3f1ec;
  background-image:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .98), transparent 34%),
    linear-gradient(135deg, #f8f6f1 0%, #eef1eb 58%, #e3ebe5 100%);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.login-shell::before,
.login-shell::after {
  display: none;
}

/* release-165：登录页采用 Windows 自带的高山雪景、河湖与草原风景 */
.login-shell {
  background-color: #f3f1ec;
  background-image:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .98), transparent 34%),
    linear-gradient(135deg, #f8f6f1 0%, #eef1eb 58%, #e3ebe5 100%);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* release-166：登录页功能说明精炼为固定单行 */
.login-system-intro {
  width: 100%;
  max-width: none;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* release-167：登录卡片可视面积缩小约 50%，保留清晰可用的输入尺寸 */
.login-workbench {
  grid-template-columns: minmax(0, 1fr) 210px;
  gap: 16px;
}

.login-card {
  width: 210px;
  padding: 14px;
  border-radius: 14px;
}

.login-brand {
  gap: 8px;
  margin-bottom: 10px;
}

.login-brand > span {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
  border-radius: 9px;
}

.login-brand h2 {
  font-size: 17px;
}

.login-card form {
  gap: 9px;
}

.login-card label {
  gap: 4px;
  font-size: 12.5px;
}

.login-input {
  height: 38px;
  gap: 7px;
  padding: 0 9px;
  border-radius: 9px;
}

.login-card input {
  height: 34px;
  font-size: 13px;
}

.login-card .primary-button {
  height: 38px;
  border-radius: 9px;
}

/* release-168：撤销登录卡片单独缩小，外层主工作台整体按 50% 等比例显示 */
.login-workbench {
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 20px;
  transform: translateY(-1vh) scale(.5) perspective(1200px) rotateX(.45deg);
  transform-origin: center center;
}

.login-card {
  width: 100%;
  padding: 26px 28px 22px;
  border-radius: 18px;
}

.login-brand {
  gap: 10px;
  margin-bottom: 20px;
}

.login-brand > span {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-radius: 11px;
}

.login-brand h2 {
  font-size: 19px;
}

.login-card form {
  gap: 13px;
}

.login-card label {
  gap: 7px;
  font-size: 13px;
}

.login-input {
  height: 42px;
  gap: 9px;
  padding: 0 12px;
  border-radius: 11px;
}

.login-card input {
  height: 38px;
  font-size: 14px;
}

.login-card .primary-button {
  height: 42px;
  border-radius: 11px;
}

/* release-169：主工作台采用清晰文字缩放并移除模糊透视 */
.login-workbench {
  zoom: .5;
  transform: none;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

/* release-170：外层主工作台由 50% 调整为 70% 等比例显示 */
.login-workbench {
  zoom: .7;
}

/* release-171：登录文字与矢量图标高清显示，并启用 4K 雪山河流背景 */
.login-shell {
  background-color: #f3f1ec;
  background-image:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .98), transparent 34%),
    linear-gradient(135deg, #f8f6f1 0%, #eef1eb 58%, #e3ebe5 100%);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.login-workbench,
.login-workbench :where(h1, h2, p, label, input, button, span, strong) {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: auto;
}

.login-brand h2,
.login-card label > span,
.login-card .primary-button {
  font-weight: 760;
  letter-spacing: .015em;
}

.login-brand h2 {
  font-size: 21px;
}

.login-card label {
  font-size: 14px;
}

.login-card .primary-button {
  font-size: 15px;
}

.login-workbench svg,
.login-workbench svg * {
  shape-rendering: geometricPrecision;
  vector-effect: non-scaling-stroke;
}

.login-input > svg,
.login-brand > span > svg,
.login-card .primary-button > svg {
  stroke-width: 2.25;
}

/* release-172：欢迎登录窗口向左移动两个中文字符宽度 */
.login-card {
  left: -2em;
}

/* release-173：登录页浩海科技标志采用 4K 透明图片并提高可视尺寸 */
.login-logo-lockup {
  top: -14px;
  left: -4px;
  width: 124px;
  height: 122px;
  padding: 5px;
  border-radius: 14px;
}

.login-logo-lockup .login-trademark {
  width: 114px;
  height: 112px;
  image-rendering: auto;
}

/* release-174：二级菜单改用暖象牙白、米灰与鼠尾草绿协调配色 */
.submenu-list {
  border-color: rgba(181, 174, 158, .9);
  border-top-color: #6f8a72;
  background:
    linear-gradient(145deg, rgba(255, 254, 250, .995), rgba(244, 241, 233, .99) 58%, rgba(236, 241, 232, .99)),
    #f6f3ec;
  box-shadow:
    0 3px 0 rgba(255, 255, 255, .96) inset,
    0 -1px 0 rgba(103, 96, 79, .09) inset,
    0 8px 18px rgba(77, 70, 56, .14),
    0 22px 46px rgba(48, 50, 40, .2);
  outline-color: rgba(255, 255, 255, .78);
  backdrop-filter: blur(12px) saturate(1.02);
}

.submenu-list::-webkit-scrollbar-thumb {
  background-color: #a6ae9d;
}

.submenu-section {
  color: #526755;
}

.submenu-section::before {
  background: linear-gradient(#95aa93, #657f69);
  box-shadow: 0 2px 5px rgba(79, 108, 84, .24);
}

.submenu-item {
  border-color: rgba(218, 212, 199, .94);
  color: #303b34;
  background: linear-gradient(135deg, #fffefa, #f3f1e9);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .98) inset,
    0 2px 5px rgba(76, 70, 57, .08);
}

.submenu-item:hover {
  color: #315840;
  border-color: #9cad9d;
  background: linear-gradient(135deg, #fffefa, #e8efe5);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .98) inset,
    0 5px 10px rgba(76, 94, 74, .13),
    5px 7px 15px rgba(65, 72, 57, .11);
}

.submenu-item:active {
  color: #294b36;
  background: #e1e9de;
  box-shadow: 0 1px 3px rgba(68, 82, 64, .14) inset;
}

.submenu-item.is-encrypted {
  border-color: #dfc99f;
  box-shadow: inset 3px 0 0 #c58a35, 0 2px 5px rgba(76, 70, 57, .08);
}

.submenu-item.is-encrypted:hover {
  box-shadow: inset 3px 0 0 #c58a35, 0 5px 10px rgba(112, 85, 42, .12), 5px 7px 15px rgba(65, 72, 57, .1);
}

.submenu-item:focus-visible {
  outline-color: #6f8f75;
}

.login-workbench :where(h1, h2, p, label, input, button, span, strong) {
  font-family: inherit;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

/* release-175：二级菜单收窄、移除左侧装饰符，并以清晰蓝色反馈功能按钮悬停 */
.submenu-list {
  width: calc(224px - 2em);
}

.submenu-section {
  gap: 0;
}

.submenu-section::before {
  display: none;
  content: none;
}

.submenu-item:hover {
  color: #165fbd;
  border-color: #78a8e8;
  background: linear-gradient(135deg, #ffffff, #e7f1ff);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .98) inset,
    0 5px 11px rgba(43, 105, 181, .18),
    5px 7px 15px rgba(54, 91, 137, .11);
}

.submenu-item:hover .submenu-icon-picture {
  background: linear-gradient(145deg, #4698ee, #1765c2);
  border-color: rgba(255, 255, 255, .84);
  box-shadow: 0 3px 8px rgba(31, 103, 188, .28);
}

.submenu-item.is-encrypted:hover {
  box-shadow:
    inset 3px 0 0 #c58a35,
    0 5px 11px rgba(43, 105, 181, .18),
    5px 7px 15px rgba(54, 91, 137, .11);
}

.submenu-item:focus-visible {
  outline-color: #2878cf;
}

/* release-176：二级菜单进一步收窄，移除全部左侧装饰线，加密状态改为小锁图标 */
.submenu-list {
  width: calc(224px - 4em);
}

.submenu-list::before,
.submenu-section::before,
.submenu-item::before {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  content: none !important;
  box-shadow: none !important;
}

.submenu-item.is-encrypted {
  grid-template-columns: 17.6px minmax(0, 1fr) 16px;
  border-color: #dfc99f;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .98) inset,
    0 2px 5px rgba(76, 70, 57, .08);
}

.submenu-item.is-encrypted:hover,
.submenu-item.is-locked:hover {
  color: #165fbd;
  border-color: #78a8e8;
  background: linear-gradient(135deg, #ffffff, #e7f1ff);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .98) inset,
    0 5px 11px rgba(43, 105, 181, .18),
    5px 7px 15px rgba(54, 91, 137, .11);
}

.submenu-encryption-badge {
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 1px solid #d6a554;
  border-radius: 50%;
  color: #9a5b0b;
  background: #fff8e8;
  line-height: 1;
}

.submenu-encryption-badge svg {
  width: 10px;
  height: 10px;
  color: currentColor;
  stroke-width: 2.6;
}

.submenu-item:hover .submenu-encryption-badge {
  border-color: #78a8e8;
  color: #165fbd;
  background: #f2f7ff;
}

/* release-177：储罐档案批量录入工作台 */
.intermediate-tank-batch-section {
  padding: 0 14px 14px !important;
  background: #f5f8f9;
}

.tank-batch-hero {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 -14px 10px;
  padding: 13px 15px;
  border-bottom: 1px solid #bfd8e1;
  background: linear-gradient(110deg, #e4f3f7 0%, #f8fbfc 64%, #eef7f3 100%);
}

.tank-batch-hero-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: linear-gradient(145deg, #1f7593, #285f7a);
  color: #fff;
  box-shadow: 0 7px 16px rgba(33, 102, 129, .2);
}

.tank-batch-hero > div {
  display: grid;
  gap: 3px;
}

.tank-batch-hero strong {
  color: #164b62;
  font-size: 16px;
}

.tank-batch-hero p {
  margin: 0;
  color: #5b737e;
  font-size: 12px;
  line-height: 1.5;
}

.tank-batch-hero > em {
  padding: 6px 10px;
  border: 1px solid #9bcdb7;
  border-radius: 999px;
  background: #edf9f3;
  color: #277153;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.tank-batch-guidance {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 9px;
  padding: 8px 10px;
  border: 1px solid #d8dfbd;
  border-radius: 9px;
  background: #fffdf1;
  color: #6f632d;
  font-size: 11.5px;
}

.intermediate-tank-batch-scroll {
  overflow: auto;
  max-height: min(54vh, 520px);
  border: 1px solid #bdd2dc;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(34, 78, 101, .06);
}

.intermediate-tank-batch-columns,
.intermediate-tank-batch-row {
  display: grid;
  grid-template-columns: 46px 130px 155px 175px 105px 130px 90px minmax(190px, 1fr) 46px;
  align-items: stretch;
  min-width: 1120px;
}

.intermediate-tank-batch-columns {
  position: sticky;
  top: 0;
  z-index: 2;
  border-bottom: 1px solid #aec8d3;
  background: linear-gradient(100deg, #dcecf2, #edf5f7);
  color: #355a6b;
  font-size: 11px;
  font-weight: 800;
}

.intermediate-tank-batch-columns > span {
  display: grid;
  place-items: center;
  min-height: 34px;
  padding: 5px 7px;
  border-right: 1px solid #c6d9e0;
  text-align: center;
}

.intermediate-tank-batch-row {
  border-bottom: 1px solid #e0e8eb;
  background: #fff;
  transition: background .15s ease, box-shadow .15s ease;
}

.intermediate-tank-batch-row:nth-child(even) {
  background: #f9fbfc;
}

.intermediate-tank-batch-row:focus-within {
  position: relative;
  z-index: 1;
  background: #f0f8fb;
  box-shadow: inset 3px 0 0 #2f83a0;
}

.tank-batch-index {
  display: grid;
  place-items: center;
  border-right: 1px solid #e0e8eb;
  color: #55717d;
  font-size: 11px;
  font-weight: 800;
}

.intermediate-tank-batch-row > label {
  display: block;
  min-width: 0;
  padding: 5px;
  border-right: 1px solid #e0e8eb;
}

.intermediate-tank-batch-row :is(input, select) {
  width: 100%;
  min-width: 0;
  height: 34px;
  padding: 5px 8px;
  border: 1px solid #c7d6dd;
  border-radius: 7px;
  background: #fff;
  color: #243f4c;
  font-family: "Microsoft YaHei UI", "Segoe UI", sans-serif;
  font-size: 12px;
  font-weight: 650;
  outline: none;
}

.intermediate-tank-batch-row :is(input, select):focus {
  border-color: #2f83a0;
  box-shadow: 0 0 0 3px rgba(47, 131, 160, .12);
}

.intermediate-tank-batch-row input::placeholder {
  color: #94a3aa;
  font-weight: 500;
}

.tank-batch-remove {
  align-self: center;
  justify-self: center;
  width: 30px;
  height: 30px;
}

.tank-batch-actions {
  gap: 8px;
  margin: 10px -14px -14px !important;
  padding: 10px 14px !important;
  border-top-color: #c4d8e0 !important;
  background: rgba(248, 251, 252, .97) !important;
}

.tank-batch-actions .secondary-button {
  min-width: 190px !important;
  background: linear-gradient(135deg, #226f8c, #245b75);
  box-shadow: 0 6px 14px rgba(31, 98, 123, .18);
}

@media (max-width: 720px) {
  .tank-batch-hero {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .tank-batch-hero-icon {
    width: 40px;
    height: 40px;
  }

  .tank-batch-hero > em {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .tank-batch-actions > span {
    flex-basis: 100%;
  }
}

/* release-178：储罐档案文件选择、识别预览与批量保存 */
.tank-file-import-panel {
  display: grid;
  gap: 10px;
}

.tank-file-import-toolbar {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) auto;
  gap: 12px;
  align-items: stretch;
}

.tank-file-import-dropzone {
  position: relative;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 68px;
  padding: 12px 15px;
  border: 1px dashed #68a2b5;
  border-radius: 11px;
  background: linear-gradient(110deg, #eff9fb, #fbfdfc);
  color: #175d74;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.tank-file-import-dropzone:hover {
  border-color: #267c98;
  background: #eaf7fa;
  box-shadow: 0 6px 16px rgba(32, 111, 139, .09);
}

.tank-file-import-dropzone strong {
  white-space: nowrap;
}

.tank-file-import-dropzone small {
  overflow: hidden;
  color: #617b86;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tank-file-import-dropzone input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.tank-file-import-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 8px;
}

.tank-file-import-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  white-space: nowrap;
}

.tank-file-import-actions [data-action="chooseIntermediateTankBatchFile"] {
  grid-column: 1 / -1;
  min-width: 330px;
  background: linear-gradient(135deg, #1f7895, #245e76);
  box-shadow: 0 6px 14px rgba(31, 98, 123, .2);
}

.tank-file-import-summary {
  display: grid;
  grid-template-columns: 120px 120px 120px minmax(230px, 1fr);
  border: 1px solid #bfd3da;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.tank-file-import-summary > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 4px;
  min-height: 55px;
  padding: 9px 12px;
  border-right: 1px solid #d6e2e6;
}

.tank-file-import-summary > div:last-child {
  border-right: 0;
}

.tank-file-import-summary span,
.tank-file-import-summary small {
  color: #637984;
  font-size: 11px;
}

.tank-file-import-summary strong {
  color: #204d5e;
  font-size: 19px;
}

.tank-file-import-summary [data-tone="ready"] strong,
[data-intermediate-tank-import-status][data-state="ready"] {
  color: #277657;
}

.tank-file-import-summary [data-tone="error"] strong,
[data-intermediate-tank-import-status][data-state="error"] {
  color: #b33b35;
}

.tank-file-import-state strong {
  grid-column: 1 / -1;
  font-size: 12px;
}

.tank-file-import-preview {
  overflow: auto;
  max-height: min(36vh, 350px);
  border: 1px solid #c4d6dd;
  border-radius: 10px;
  background: #fff;
}

.tank-file-import-preview table {
  min-width: 980px;
}

.tank-file-import-preview thead {
  position: sticky;
  top: 0;
  z-index: 1;
}

.tank-file-import-preview td small {
  display: block;
}

.tank-import-ready {
  background: #fbfefc;
}

.tank-import-error {
  background: #fff7f5;
}

.tank-import-result {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 260px;
  color: #277657;
  line-height: 1.45;
}

.tank-import-error .tank-import-result {
  color: #ae3e37;
}

.tank-manual-entry {
  margin-top: 2px;
  border: 1px solid #ccdce1;
  border-radius: 10px;
  background: #f8fbfc;
}

.tank-manual-entry > summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 12px;
  color: #486672;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.tank-manual-entry-body {
  padding: 0 10px 10px;
}

@media (max-width: 980px) {
  .tank-file-import-toolbar {
    grid-template-columns: 1fr;
  }

  .tank-file-import-actions [data-action="chooseIntermediateTankBatchFile"] {
    min-width: 0;
  }
}

@media (max-width: 720px) {
  .tank-file-import-dropzone {
    grid-template-columns: auto 1fr;
  }

  .tank-file-import-dropzone small {
    grid-column: 1 / -1;
  }

  .tank-file-import-actions,
  .tank-file-import-summary {
    grid-template-columns: 1fr;
  }

  .tank-file-import-summary > div {
    border-right: 0;
    border-bottom: 1px solid #d6e2e6;
  }
}

/* release-179：每日生产投料尾渣实绩与宽松表单布局 */
.daily-production-modal .production-line-index {
  display: none !important;
}

.daily-production-modal .daily-record-chips span,
.daily-production-modal .compact-daily-table .status-pill {
  border-radius: 5px;
}

.daily-material-row {
  grid-template-columns: 94px minmax(170px, 1.25fr) 92px 84px 94px 94px minmax(170px, 1.15fr) 38px;
  min-width: 1030px;
}

.daily-output-row {
  grid-template-columns: minmax(190px, 1.35fr) 105px 90px 108px minmax(240px, 1.65fr) 38px;
  min-width: 820px;
}

.daily-production-split {
  grid-template-columns: minmax(0, 1.05fr) minmax(500px, .95fr);
  gap: 10px;
}

.daily-energy-section,
.daily-tailings-section {
  min-width: 0;
}

.daily-tailings-section {
  border-left: 4px solid #8a7a4b !important;
  background: linear-gradient(145deg, #fffefb, #f8f6ed) !important;
}

.daily-tailings-section > .form-section-title {
  background: linear-gradient(100deg, #f4f0df, #fffef9) !important;
}

.daily-tailings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.daily-tailings-grid > label:not(.sheet-field) {
  grid-template-columns: minmax(116px, 138px) minmax(78px, 1fr) !important;
  border: 1px solid #d9d2b7;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.daily-tailings-grid > label > span {
  background: #f4f0df !important;
  color: #625a38 !important;
}

.daily-tailings-grid > label > span small {
  color: #877b4f;
}

.daily-tailings-derived input[readonly],
.daily-tailings-loss input[readonly] {
  background: #f8faf8 !important;
  color: #3e6952 !important;
  font-weight: 800;
}

/* release-184: intermediate analysis-report batch recognition */
.intermediate-report-batch-panel {
  margin: 10px 12px 14px;
  overflow: hidden;
  border: 1px solid #c9dce5;
  border-radius: 12px;
  background: linear-gradient(145deg,#fbfeff,#f3f8fa);
  box-shadow: 0 8px 20px rgba(35,78,96,.08);
}

.intermediate-report-batch-hero {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
  border-bottom: 1px solid #d5e3e9;
  background: linear-gradient(100deg,#e7f4f6,#f8fbf9);
}

.intermediate-report-batch-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 9px;
  color: #17677a;
  background: #fff;
  box-shadow: inset 0 0 0 1px #bcd8df;
}

.intermediate-report-batch-hero strong { display:block;color:#164d60;font-size:14px; }
.intermediate-report-batch-hero p { margin:3px 0 0;color:#627982;font-size:11px; }
.intermediate-report-batch-hero em { color:#287285;font-size:10px;font-style:normal;font-weight:800; }

.intermediate-report-batch-toolbar {
  display: grid;
  grid-template-columns: minmax(300px,1fr) auto;
  align-items: stretch;
  gap: 10px;
  padding: 12px 14px;
}

.intermediate-report-batch-dropzone {
  display: grid!important;
  grid-template-columns: 34px minmax(0,1fr)!important;
  gap: 2px 10px!important;
  align-content: center;
  min-height: 62px;
  padding: 9px 12px!important;
  border: 1px dashed #7db4c2!important;
  border-radius: 9px;
  background: #fff!important;
  cursor: pointer;
}

.intermediate-report-batch-dropzone>span { grid-row:1/3;align-self:center;color:#26758a; }
.intermediate-report-batch-dropzone>strong { color:#214f5d;font-size:12px; }
.intermediate-report-batch-dropzone>small { color:#6b7f86;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.intermediate-report-batch-dropzone>input { position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none; }
.intermediate-report-batch-actions { display:flex;align-items:center;gap:8px; }

.intermediate-report-batch-summary {
  display: grid;
  grid-template-columns: repeat(4,minmax(90px,120px)) minmax(240px,1fr);
  margin: 0 14px 10px;
  overflow: hidden;
  border: 1px solid #d7e4e9;
  border-radius: 9px;
  background: #fff;
}

.intermediate-report-batch-summary>div { padding:8px 10px;border-right:1px solid #e2eaee; }
.intermediate-report-batch-summary span { display:block;color:#6f838b;font-size:9px; }
.intermediate-report-batch-summary strong { color:#254f5c;font-size:15px; }
.intermediate-report-batch-summary small { margin-left:3px;color:#7e9096;font-size:9px; }
.intermediate-report-batch-summary [data-tone="ready"] strong { color:#227154; }
.intermediate-report-batch-summary [data-tone="error"] strong { color:#b74d3e; }
.intermediate-report-batch-state { border-right:0!important; }
.intermediate-report-batch-state strong { font-size:11px!important; }

.intermediate-report-batch-guidance {
  margin: 0 14px 10px;
  padding: 8px 10px;
  border-left: 3px solid #3c8798;
  color: #526f79;
  background: #edf7f8;
  font-size: 10px;
}

.intermediate-report-batch-preview { margin:0 14px 14px;overflow-x:auto;border:1px solid #d8e4e8;border-radius:9px;background:#fff; }
.intermediate-report-batch-preview table { min-width:1480px; }
.intermediate-report-batch-preview th { white-space:nowrap;background:#e9f2f5; }
.intermediate-report-batch-preview td { min-width:118px;vertical-align:top; }
.intermediate-report-batch-preview td:first-child { min-width:190px; }
.intermediate-report-batch-preview td:nth-child(4) { min-width:230px; }
.intermediate-report-batch-preview td:nth-child(9) { min-width:190px; }
.intermediate-report-batch-preview td :is(input,select) { width:100%;min-height:31px;margin-bottom:5px;padding:5px 7px!important;border:1px solid #c8d7dd!important;border-radius:5px!important;background:#fff!important;font-size:10px!important; }
.intermediate-report-batch-preview td :is(input,select):last-child { margin-bottom:0; }
.intermediate-report-batch-preview tr.report-import-error { background:#fff8f6; }
.intermediate-report-batch-preview tr.report-import-error [data-intermediate-report-issues] { color:#a64032; }
.intermediate-report-batch-preview tr.report-import-ready { background:#f7fcf9; }
.intermediate-report-batch-preview tr.report-import-ready [data-intermediate-report-issues] { color:#247252; }
.intermediate-report-batch-preview [data-intermediate-report-issues] span { display:block;font-size:10px;font-weight:750;line-height:1.5; }
.intermediate-recent-ledger td a { display:inline-flex;align-items:center;gap:3px;color:#236d80;font-weight:750;text-decoration:none; }
.intermediate-recent-ledger td a:hover { text-decoration:underline; }

@media (max-width: 1100px) {
  .intermediate-report-batch-hero { grid-template-columns:42px minmax(0,1fr); }
  .intermediate-report-batch-hero em { grid-column:2; }
  .intermediate-report-batch-toolbar { grid-template-columns:1fr; }
  .intermediate-report-batch-actions { flex-wrap:wrap; }
  .intermediate-report-batch-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .intermediate-report-batch-state { grid-column:1/-1; }
}

.daily-remark-section {
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.daily-remark-section .compact-remark {
  margin-top: 0;
  border-radius: 9px;
  overflow: hidden;
  background: #fff;
}

.daily-production-modal .production-detail-columns {
  font-size: 10px;
}

.daily-production-modal .production-detail-row {
  gap: 7px;
  padding: 10px 11px;
}

@media (max-width: 1180px) {
  .daily-production-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .daily-tailings-grid {
    grid-template-columns: 1fr !important;
  }
}

/* release-180：每日生产投料字段名称不显示圆形信息符号 */
.daily-production-modal .form-field-help-icon {
  display: none !important;
}

.daily-production-modal form.has-hover-field-help label.form-field-help > span:first-child {
  gap: 3px;
}

/* release-181：生产中间体统计移除字段圆形信息符号并优化字段排版 */
.intermediate-inventory-modal .form-field-help-icon {
  display: none !important;
}

.intermediate-inventory-modal form.has-hover-field-help label.form-field-help > span:first-child {
  justify-content: flex-start;
  gap: 3px;
}

.intermediate-measurement-form .intermediate-form-grid {
  gap: 9px;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) {
  border-color: #cbdde4;
  border-radius: 9px;
  box-shadow: 0 2px 7px rgba(33, 79, 98, .035);
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field) > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 10px;
  background: #f3f7f9;
  color: #385868;
  letter-spacing: .01em;
}

.intermediate-measurement-form .intermediate-form-grid > label:not(.sheet-field):focus-within > span {
  background: #eaf5f8;
  color: #1f627a;
}

.intermediate-measurement-form .intermediate-subsection-title {
  margin: 10px 0 7px;
  padding: 6px 9px;
  border-left: 3px solid #3687a2;
  border-radius: 0 7px 7px 0;
  background: linear-gradient(90deg, #edf7fa, rgba(237, 247, 250, 0));
}

.intermediate-measurement-form .intermediate-calculation-grid label > span {
  justify-content: flex-start;
  padding-left: 9px;
}

.intermediate-measurement-form .intermediate-formula-note {
  border-color: #c7dce4;
  border-radius: 8px;
  background: #f5f9fa;
  color: #526c78;
}

/* release-195：欢迎登录小窗口改为清新草绿色，并保持文字与输入控件清晰 */
.login-card {
  border-color: rgba(112, 168, 76, .92);
  background:
    radial-gradient(circle at 12% 7%, rgba(255, 255, 255, .78), transparent 34%),
    linear-gradient(145deg, rgba(237, 249, 220, .985) 0%, rgba(203, 235, 165, .98) 58%, rgba(171, 218, 123, .975) 100%),
    #cbeaab;
  box-shadow:
    0 2px 0 rgba(255, 255, 255, .88),
    0 18px 44px rgba(52, 96, 31, .24),
    inset 0 1px 0 rgba(255, 255, 255, .96);
  backdrop-filter: blur(20px) saturate(112%);
}

.login-brand > span {
  color: #fff;
  background: linear-gradient(145deg, #8ed35a, #4c9b35);
  box-shadow: 0 9px 20px rgba(57, 118, 36, .25);
}

.login-brand h2 {
  color: #315d24;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .84);
}

.login-card form label > span {
  color: #3b672d !important;
}

.login-input {
  border-color: #9acb78;
  color: #4b7f36;
  background: rgba(255, 255, 255, .90);
  box-shadow: inset 0 1px 2px rgba(54, 106, 32, .06);
}

.login-input:focus-within {
  border-color: #63aa43;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(99, 170, 67, .17), 0 8px 20px rgba(54, 116, 35, .13);
}

.login-card .primary-button {
  border-color: #4b9635;
  background: linear-gradient(135deg, #73bf4c, #3f8d31);
  box-shadow: 0 10px 22px rgba(52, 111, 34, .25);
}

/* release-197: login hero feature copy HD text */
.login-system-intro {
  color: #294c3f;
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-size: clamp(16px, 1.08vw, 19px);
  font-weight: 760;
  line-height: 1.45;
  letter-spacing: .04em;
  opacity: 1;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .96), 0 2px 8px rgba(39, 79, 57, .10);
  font-synthesis: none;
  font-kerning: normal;
  font-feature-settings: "kern" 1;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* release-199 final cascade: keep responsive login and transient field help above legacy releases */
/* release-249: keep the login form instant, then reveal the optimized original snow-mountain landscape */
body.is-login-screen .login-shell {
  background-color: #f3f1ec;
  background-image:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .98), transparent 34%),
    linear-gradient(135deg, #f8f6f1 0%, #eef1eb 58%, #e3ebe5 100%);
  background-attachment: scroll;
}

body.is-login-screen.login-landscape-ready .login-shell {
  background-image:
    linear-gradient(90deg, rgba(244, 248, 245, .30), rgba(244, 248, 245, .06)),
    var(--login-landscape-image);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.quality-analysis-workbench,
.quality-analysis-modal,
.quality-analysis-form,
.quality-review-modal,
.quality-report-preview-modal,
.quality-draft-preview-layer,
.quality-center-report-list,
.quality-review-panel,
.quality-report-section,
.quality-official-report,
:is(
  .quality-analysis-workbench,
  .quality-analysis-modal,
  .quality-analysis-form,
  .quality-review-modal,
  .quality-report-preview-modal,
  .quality-draft-preview-layer,
  .quality-center-report-list,
  .quality-review-panel,
  .quality-report-section,
  .quality-official-report
) :where(input, select, textarea, button, label, span, strong, small, p, h1, h2, h3, th, td) {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif !important;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body :is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help)::after,
body .daily-production-modal .daily-field-help::after {
  border-color: #c7dbe5 !important;
  background: rgba(248, 252, 254, .985) !important;
  box-shadow: 0 8px 20px rgba(55, 92, 109, .12) !important;
  color: #3f6272 !important;
  font-weight: 600 !important;
  visibility: hidden !important;
  opacity: 0 !important;
  transform: translateY(3px) !important;
  transition: opacity .08s ease, transform .08s ease, visibility .08s ease !important;
}

body :is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help):hover::after,
body .daily-production-modal .daily-field-help:hover::after {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateY(0) !important;
}

body :is(.daily-production-modal, .intermediate-inventory-modal) form.has-hover-field-help
  :is(label.form-field-help, .form-control-hover-help):focus-within:not(:hover)::after,
body .daily-production-modal .daily-field-help:focus-within:not(:hover)::after {
  visibility: hidden !important;
  opacity: 0 !important;
  transform: translateY(3px) !important;
}

@media (min-width: 821px) and (max-width: 1100px) {
  body.is-login-screen .login-workbench {
    zoom: 1;
    width: min(94vw, 900px);
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: 16px;
    padding: 20px;
    transform: none;
  }

  body.is-login-screen .login-card {
    left: 0;
  }
}

@media (max-width: 820px) {
  body.is-login-screen .login-shell {
    place-items: center;
    background-position: 48% center;
  }

  body.is-login-screen .login-workbench {
    zoom: 1;
    width: min(94vw, 620px);
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border-radius: 20px;
    transform: none;
  }

  body.is-login-screen .login-hero {
    display: flex;
    min-height: 0;
    padding: 72px 10px 8px;
  }

  body.is-login-screen .login-logo-lockup {
    top: -4px;
    left: 0;
    width: 76px;
    height: 74px;
    padding: 4px;
  }

  body.is-login-screen .login-logo-lockup .login-trademark {
    width: 68px;
    height: 66px;
  }

  body.is-login-screen .login-hero h1 .login-company-name {
    font-size: clamp(15px, 3.6vw, 20px);
  }

  body.is-login-screen .login-hero h1 .login-system-name {
    margin-top: 10px;
    font-size: clamp(24px, 6vw, 34px);
  }

  body.is-login-screen .login-system-intro {
    width: auto;
    margin-top: 12px;
    font-size: clamp(12px, 3vw, 15px);
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  body.is-login-screen .login-card {
    left: 0;
    width: min(100%, 380px);
    margin: 0 auto;
    padding: 18px 20px 17px;
  }
}

@media (max-width: 520px) {
  body.is-login-screen .login-shell {
    padding:
      max(8px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(8px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left));
  }

  body.is-login-screen .login-workbench {
    width: calc(100vw - 16px);
    gap: 8px;
    padding: 11px;
    border-radius: 17px;
  }

  body.is-login-screen .login-hero {
    padding: 58px 4px 4px;
  }

  body.is-login-screen .login-logo-lockup {
    width: 60px;
    height: 58px;
  }

  body.is-login-screen .login-logo-lockup .login-trademark {
    width: 52px;
    height: 50px;
  }

  body.is-login-screen .login-hero h1 .login-company-name {
    font-size: 13px;
    line-height: 1.35;
  }

  body.is-login-screen .login-hero h1 .login-system-name {
    margin-top: 7px;
    font-size: clamp(21px, 6.5vw, 28px);
  }

  body.is-login-screen .login-system-intro {
    margin-top: 8px;
    font-size: 11.5px;
    letter-spacing: .02em;
  }

  body.is-login-screen .login-card {
    width: 100%;
    padding: 15px 16px 14px;
    border-radius: 14px;
  }

  body.is-login-screen .login-brand {
    margin-bottom: 11px;
  }

  body.is-login-screen .login-card form {
    gap: 9px;
  }

  body.is-login-screen .login-card label {
    gap: 4px;
  }
}

/* Release 212 final cascade: all target forms stay within the main workspace. */
:where(
  .stock-document-modal,
  .stock-application-modal,
  .quality-analysis-modal,
  .quality-review-modal,
  .quality-report-preview-modal,
  .compact-seal-approval-modal,
  .compact-finance-entry-modal,
  .compact-employee-advance-modal
) {
  --workspace-modal-rail: 184px;
  --workspace-modal-gutter: 16px;
  --workspace-modal-clearance: 216px;
  --workspace-modal-width: 1120px;
  right: var(--workspace-modal-gutter) !important;
  left: calc(var(--workspace-modal-rail) + var(--workspace-modal-gutter)) !important;
  width: min(var(--workspace-modal-width), calc(100vw - var(--workspace-modal-clearance))) !important;
  max-width: calc(100vw - var(--workspace-modal-clearance)) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
  border: 1px solid #b9c8c5;
  border-radius: 15px;
  box-shadow: 0 22px 54px rgba(28, 45, 48, .2);
}

.stock-document-modal,
.stock-application-modal {
  --workspace-modal-width: 1160px;
  background: #f1f5f2 !important;
}

.stock-document-modal > .modal-header,
.stock-application-modal > .modal-header {
  border-bottom-color: #bcd4cc;
  background: linear-gradient(110deg, #fff, #e9f4ef) !important;
}

.stock-document-form > .system-input-window-body,
.stock-application-form > .system-input-window-body {
  padding: 12px 14px 18px;
  background: linear-gradient(145deg, #f7faf8, #eaf2ee);
}

.stock-document-form .form-grid-4,
.stock-document-form .line-grid,
.stock-application-form .form-grid-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stock-document-form :is(.form-grid-4, .line-grid) > :is(.span-2, .span-3, .span-4),
.stock-application-form .form-grid-4 > :is(.span-2, .span-3, .span-4) {
  grid-column: 1 / -1;
}

.stock-document-form .system-input-window-body > .form-section,
.stock-application-form .system-input-window-body > .form-section {
  border-color: #bfd2cb;
  box-shadow: 0 7px 18px rgba(43, 78, 67, .07);
}

.quality-analysis-modal {
  --workspace-modal-width: 1160px;
}

.quality-review-modal,
.quality-report-preview-modal {
  --workspace-modal-width: 1080px;
}

.quality-analysis-modal,
.quality-review-modal,
.quality-report-preview-modal {
  border-color: #b9d0d3;
  background: #eef5f4 !important;
}

.quality-analysis-modal > .modal-header,
.quality-review-modal > .modal-header,
.quality-report-preview-modal > .modal-header {
  border-bottom-color: #bad5d6;
  background: linear-gradient(110deg, #fff, #e8f5f3) !important;
}

.quality-analysis-form > .system-input-window-body,
.quality-review-modal-body,
.quality-report-preview-body {
  background: linear-gradient(145deg, #f5faf9, #e7f1f0);
}

.quality-analysis-form .form-grid-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quality-analysis-form .form-grid-4 > :is(.span-2, .span-3, .span-4) {
  grid-column: 1 / -1;
}

.quality-source-picker {
  grid-template-columns: minmax(190px, .72fr) minmax(280px, 1.18fr) minmax(260px, 1fr);
}

.compact-seal-approval-modal,
.compact-finance-entry-modal {
  --workspace-modal-width: 980px;
  background: #f3f2ed !important;
}

.compact-employee-advance-modal {
  --workspace-modal-width: 1100px;
  background: #f3f2ed !important;
}

.compact-seal-approval-modal > .modal-header,
.compact-finance-entry-modal > .modal-header,
.compact-employee-advance-modal > .modal-header {
  border-bottom-color: #d6cdbb;
  background: linear-gradient(110deg, #fff, #f4efe4) !important;
}

.compact-approval-entry-modal .system-upload-window-body,
.compact-employee-advance-modal .employee-advance-workbench {
  background: linear-gradient(145deg, #faf9f5, #eeeae1);
}

.compact-approval-entry-modal .system-upload-window-fields .form-section,
.compact-employee-advance-modal .employee-advance-entry-grid > .business-form,
.compact-employee-advance-modal .employee-advance-ledger {
  border-color: #d4cdbc;
  box-shadow: 0 7px 18px rgba(83, 70, 48, .07);
}

@media (max-width: 1180px) {
  :where(
    .stock-document-modal,
    .stock-application-modal,
    .quality-analysis-modal,
    .quality-review-modal,
    .quality-report-preview-modal,
    .compact-seal-approval-modal,
    .compact-finance-entry-modal,
    .compact-employee-advance-modal
  ) {
    --workspace-modal-rail: 74px;
    --workspace-modal-gutter: 10px;
    --workspace-modal-clearance: 94px;
  }

  .quality-source-picker {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quality-source-inline-add {
    grid-column: 1 / -1;
  }
}

@media (max-width: 820px) {
  :where(
    .stock-document-modal,
    .stock-application-modal,
    .quality-analysis-modal,
    .quality-review-modal,
    .quality-report-preview-modal,
    .compact-seal-approval-modal,
    .compact-finance-entry-modal,
    .compact-employee-advance-modal
  ) {
    --workspace-modal-gutter: 7px;
    --workspace-modal-clearance: 88px;
    border-radius: 12px;
  }

  .quality-source-picker,
  .quality-standard-upload {
    grid-template-columns: minmax(0, 1fr);
  }

  .quality-source-inline-add {
    grid-column: 1;
  }
}

@media (max-width: 720px) {
  :where(
    .stock-document-modal,
    .stock-application-modal,
    .quality-analysis-modal,
    .quality-review-modal,
    .quality-report-preview-modal,
    .compact-seal-approval-modal,
    .compact-finance-entry-modal,
    .compact-employee-advance-modal
  ) {
    --workspace-modal-rail: 0px;
    --workspace-modal-gutter: 6px;
    --workspace-modal-clearance: 12px;
  }

  .stock-document-form .form-grid-4,
  .stock-document-form .line-grid,
  .stock-application-form .form-grid-4,
  .quality-analysis-form .form-grid-4,
  .compact-approval-entry-modal .form-grid-4,
  .compact-finance-entry-modal .finance-sheet .sheet-grid,
  .compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 {
    grid-template-columns: minmax(0, 1fr);
  }

  .stock-document-form :is(.form-grid-4, .line-grid) > :is(.span-2, .span-3, .span-4),
  .stock-application-form .form-grid-4 > :is(.span-2, .span-3, .span-4),
  .quality-analysis-form .form-grid-4 > :is(.span-2, .span-3, .span-4),
  .compact-approval-entry-modal .form-grid-4 > :is(.span-2, .span-3, .span-4),
  .compact-finance-entry-modal .finance-sheet .sheet-grid > :is(.span-2, .span-3, .span-4),
  .compact-employee-advance-modal .employee-advance-entry-grid.is-single-form .form-grid-4 > :is(.span-2, .span-3, .span-4) {
    grid-column: 1;
  }
}

.quality-analysis-form .quality-metrics-section {
  overflow: hidden !important;
}

.quality-metric-table-scroll {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.quality-metric-table-scroll .quality-metric-rows {
  overflow-x: visible;
}

/* Release 212 final position lock: outrank legacy full-window translate rules. */
body .data-modal:is(
  .stock-document-modal,
  .stock-application-modal,
  .quality-analysis-modal,
  .quality-review-modal,
  .quality-report-preview-modal,
  .compact-seal-approval-modal,
  .compact-finance-entry-modal,
  .compact-employee-advance-modal
) {
  right: var(--workspace-modal-gutter) !important;
  left: calc(var(--workspace-modal-rail) + var(--workspace-modal-gutter)) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
}

/* Release 213: automatically keep every system form inside the workspace rail. */
.data-modal.workspace-bound-form-modal {
  --workspace-modal-rail: 184px;
  --workspace-modal-gutter: 16px;
  --workspace-modal-clearance: 216px;
  max-width: min(1160px, calc(100vw - var(--workspace-modal-clearance))) !important;
  border-color: #bac9c6;
  border-radius: 15px;
  box-shadow: 0 22px 54px rgba(28, 45, 48, .2);
}

body .data-modal.workspace-bound-form-modal {
  right: var(--workspace-modal-gutter) !important;
  left: calc(var(--workspace-modal-rail) + var(--workspace-modal-gutter)) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
}

@media (max-width: 1180px) {
  .data-modal.workspace-bound-form-modal {
    --workspace-modal-rail: 74px;
    --workspace-modal-gutter: 10px;
    --workspace-modal-clearance: 94px;
  }
}

@media (max-width: 820px) {
  .data-modal.workspace-bound-form-modal {
    --workspace-modal-gutter: 7px;
    --workspace-modal-clearance: 88px;
    border-radius: 12px;
  }
}

@media (max-width: 720px) {
  .data-modal.workspace-bound-form-modal {
    --workspace-modal-rail: 0px;
    --workspace-modal-gutter: 6px;
    --workspace-modal-clearance: 12px;
  }
}

.workspace-bound-form-modal .office-logistics-form {
  width: auto !important;
  max-width: calc(100% - 44px);
  box-sizing: border-box;
}

.workspace-bound-form-modal .office-lines {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.workspace-bound-form-modal .office-line-row,
.workspace-bound-form-modal .canteen-purchase-row {
  min-width: 1120px;
}

@media (max-width: 760px) {
  .workspace-bound-form-modal .office-logistics-form {
    max-width: calc(100% - 20px);
  }

  .workspace-bound-form-modal .office-line-row,
  .workspace-bound-form-modal .canteen-purchase-row {
    min-width: 0;
  }
}

.data-modal.workspace-bound-form-modal form.office-logistics-form {
  width: calc(100% - 44px) !important;
  max-width: none;
  margin-right: 22px;
  margin-left: 22px;
  padding: 0 !important;
  box-sizing: border-box;
}

.workspace-bound-form-modal .canteen-purchase-lines {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.workspace-bound-form-modal .office-add-line,
.workspace-bound-form-modal .production-add-line,
.workspace-bound-form-modal .offboarding-add-line {
  justify-self: start;
  width: auto !important;
  max-width: calc(100% - 24px);
}

/* Repeatable business details: make a successful add operation unmistakable. */
.repeat-row-newly-added {
  position: relative;
  z-index: 1;
  border-color: #4f9470 !important;
  background: #eef9f1 !important;
  box-shadow: 0 0 0 4px rgba(79,148,112,.17),0 9px 24px rgba(53,105,77,.13) !important;
  animation: repeat-row-added-pulse .72s ease-out 2;
}
@keyframes repeat-row-added-pulse {
  0% { transform: translateY(3px); }
  45% { transform: translateY(0); }
  100% { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .repeat-row-newly-added { animation: none; }
}

/* All entry forms use one compact, readable approval journey. */
.business-form .form-approval-live-card {
  margin: 7px 0 5px;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(53,70,58,.07),inset 0 1px 0 #fff;
}
.business-form .form-approval-live-card > header {
  min-height: 40px;
  padding: 7px 10px;
  gap: 8px;
}
.business-form .form-approval-live-card > header > div {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}
.business-form .form-approval-live-card > header span {
  flex: 0 0 auto;
  font-size: 10px;
}
.business-form .form-approval-live-card > header strong {
  min-width: 0;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.business-form .form-approval-live-card > header > em {
  flex: 0 0 auto;
  padding: 3px 6px;
  font-size: 9px;
}
.business-form .form-approval-live-summary {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 5px;
  padding: 6px 8px;
}
.business-form .form-approval-live-summary > span {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 1px 6px;
  min-height: 34px;
  padding: 5px 7px;
  border-radius: 7px;
}
.business-form .form-approval-live-summary small { font-size: 9px; }
.business-form .form-approval-live-summary strong {
  margin: 0;
  font-size: 10.5px;
}
.business-form .form-approval-live-summary em {
  grid-column: 2;
  margin: 0;
  font-size: 8.5px;
}
.business-form .approval-live-track {
  gap: 5px;
  padding: 5px 8px 8px;
}
.business-form .approval-live-node {
  grid-template-columns: 20px minmax(98px,1fr);
  gap: 5px;
  flex-basis: 132px;
  min-width: 132px;
  padding: 6px;
  border-radius: 7px;
}
.business-form .approval-live-node > i {
  width: 20px;
  height: 20px;
  font-size: 9px;
}
.business-form .approval-live-node strong { font-size: 10px; }
.business-form .approval-live-node span { margin-top: 1px;font-size: 9px;line-height: 1.25; }
.business-form .approval-live-node em { margin-top: 2px;padding: 1px 4px;font-size: 8px; }
.business-form .approval-live-node > small { padding-top: 3px;font-size: 8px; }
.business-form .approval-live-track > u { flex-basis: 10px; }
@media (max-width: 680px) {
  .business-form .form-approval-live-card > header { align-items: flex-start; }
  .business-form .form-approval-live-card > header > div { display: grid;gap: 2px; }
  .business-form .form-approval-live-summary { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .data-modal.workspace-bound-form-modal form.office-logistics-form {
    width: calc(100% - 20px) !important;
    margin-right: 10px;
    margin-left: 10px;
  }
}
/* 财务管理：财务报表、银行日记账与科目映射 */
.finance-management-modal,.bank-management-modal,.bank-ledger-modal,.finance-mapping-modal{width:min(1240px,calc(100vw - 300px));max-width:calc(100vw - 300px)}
.bank-entry-modal{width:min(760px,calc(100vw - 300px));max-width:calc(100vw - 300px)}
.financial-report-workbench,.bank-ledger-workbench,.bank-management-layout,.finance-mapping-layout{display:grid;gap:16px;padding:18px;background:#f4f1e9;max-height:calc(100vh - 120px);overflow:auto}
.finance-report-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid #d9d8cf;border-radius:14px;background:#fff}
.finance-report-filter label{display:grid;gap:5px;min-width:145px;color:#53605b;font-size:12px;font-weight:700}
.finance-report-filter input,.finance-report-filter select{height:36px;border:1px solid #cfd8d2;border-radius:9px;background:#fbfcfa;padding:0 10px;color:#1f2e29}
.finance-report-filter .finance-search-field{flex:1;min-width:190px}
.finance-operating-kpis,.finance-report-audit-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.finance-operating-kpis article{position:relative;overflow:hidden;display:grid;gap:4px;padding:15px 16px;border:1px solid #cddad2;border-radius:14px;background:linear-gradient(145deg,#fdfefd,#edf5f0);box-shadow:0 7px 19px rgba(36,76,59,.06)}
.finance-operating-kpis article:after{content:"";position:absolute;right:-18px;top:-24px;width:72px;height:72px;border-radius:50%;background:rgba(54,119,87,.08)}.finance-operating-kpis span{font-size:12px;color:#607169}.finance-operating-kpis strong{font-size:21px;color:#1f4938;font-variant-numeric:tabular-nums}.finance-operating-kpis small{font-size:11px;color:#87918c}
.finance-report-audit-strip article{display:grid;gap:3px;padding:13px 14px;border:1px solid #d9ded9;border-radius:13px;background:#fff;box-shadow:0 6px 18px rgba(45,61,53,.05)}
.finance-report-audit-strip span{font-size:12px;color:#68736e}.finance-report-audit-strip strong{font-size:20px;color:#273c34}.finance-report-audit-strip small{font-size:11px;color:#87918c}
.finance-report-audit-strip article.is-ok{border-color:#aad3bd;background:#f2faf5}.finance-report-audit-strip article.is-alert{border-color:#e5bf8b;background:#fff8ec}.finance-report-audit-strip article.is-alert strong{color:#a45918}
.finance-report-sheet{padding:22px;border:1px solid #d7d8d0;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(53,61,56,.07)}
.finance-report-sheet>header{text-align:center;margin-bottom:15px}.finance-report-sheet>header h3{margin:0;font-size:18px;color:#243c33}.finance-report-sheet>header>strong{display:block;margin-top:5px;font-size:25px;letter-spacing:.18em;color:#172a23}.finance-report-sheet>header p{margin:7px 0 0;color:#6a746f;font-size:12px}
.finance-balance-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.finance-balance-columns section{min-width:0}.finance-balance-columns h4{margin:0;padding:9px 12px;background:#e4eee8;color:#345246;border-radius:9px 9px 0 0}
.finance-report-table,.bank-ledger-table{width:100%;border-collapse:collapse;font-size:12px}.finance-report-table th,.finance-report-table td,.bank-ledger-table th,.bank-ledger-table td{padding:9px 8px;border:1px solid #dfe3df;vertical-align:middle}.finance-report-table th,.bank-ledger-table th{background:#eef3ef;color:#43534c;text-align:left;white-space:nowrap}.finance-report-table td small,.bank-ledger-table td small{display:block;margin-top:3px;color:#88908c;font-size:10px}.finance-report-table .amount-cell,.bank-ledger-table .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.finance-report-table .report-total-row td{background:#f4f6f3;font-weight:700}.finance-report-table .report-grand-row td{background:#dfece4;color:#1f3c30;font-weight:800}.finance-report-table .table-link{white-space:nowrap}
.finance-trace-panel,.finance-unmapped-panel,.bank-account-list,.mapping-rule-list{border:1px solid #d8ddd8;border-radius:14px;background:#fff;overflow:hidden}.finance-trace-panel>header,.bank-account-list>header,.mapping-rule-list>header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#e7eee9}.finance-trace-panel>header div{display:flex;align-items:center;gap:8px}.finance-trace-panel>header span{display:flex;align-items:center;gap:5px;color:#557064}.finance-unmapped-panel summary{padding:12px 14px;cursor:pointer;font-weight:700;color:#9a5b20}.finance-report-loading{padding:40px;text-align:center;border:1px dashed #bdc8c1;border-radius:14px;background:#fff;color:#63716a}
.finance-source-count-link{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;font-weight:750}
.finance-source-detail-page{display:grid;gap:0;min-height:420px;background:#fbfaf6;border-color:#cfd8d2}
.finance-source-detail-page>header{position:sticky;top:0;z-index:2;background:#e8efe9;border-bottom:1px solid #d3ddd6}
.finance-source-detail-page .finance-trace-back{min-height:34px;padding:6px 11px;background:#fff}
.finance-source-detail-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;padding:22px 24px 18px;background:linear-gradient(135deg,#f5f8f4 0%,#eee9dc 100%);border-bottom:1px solid #d8ddd8}
.finance-source-detail-heading>div:first-child>span{color:#5c7367;font-size:12px;font-weight:750;letter-spacing:.08em}
.finance-source-detail-heading h3{margin:4px 0 3px;color:#183f32;font-size:25px;line-height:1.15}
.finance-source-detail-heading p{margin:0;color:#66736c;font-size:13px}
.finance-source-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px;min-width:min(420px,45%)}
.finance-source-detail-summary article{display:grid;gap:2px;padding:12px 14px;border:1px solid #d6ddd8;border-radius:12px;background:rgba(255,255,255,.86)}
.finance-source-detail-summary span,.finance-source-detail-summary small{color:#64736b;font-size:12px}.finance-source-detail-summary strong{color:#183f32;font-size:18px}
.finance-source-detail-table{min-width:1180px}.finance-source-detail-table td strong,.finance-source-detail-table td small{display:block}.finance-source-detail-table td small{margin-top:3px;color:#738078;font-size:11px}
.capital-save-receipt{display:grid;gap:6px;padding:13px 16px;border:1px solid #98bea9;border-radius:13px;background:#edf7f0;color:#214c3a;box-shadow:0 8px 22px rgba(34,78,58,.07)}
.capital-save-receipt>div{display:flex;align-items:center;gap:8px}.capital-save-receipt>div span{font-weight:800}.capital-save-receipt>div strong{font-size:16px}.capital-save-receipt p{margin:0;color:#526b5e;font-size:13px;line-height:1.55}
@media(max-width:900px){.finance-source-detail-heading{align-items:stretch;flex-direction:column}.finance-source-detail-summary{min-width:0;width:100%}}
.bank-management-layout,.finance-mapping-layout{grid-template-columns:minmax(340px,.8fr) minmax(0,1.4fr);align-items:start}.bank-management-layout .business-form,.finance-mapping-layout .business-form{margin:0;min-width:0}.bank-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.bank-account-grid article{display:grid;gap:5px;padding:14px;border:1px solid #dde3de;border-radius:12px;background:#fbfcfa}.bank-account-grid article span,.bank-account-grid article small{font-size:11px;color:#77827d}.bank-account-grid article h4,.bank-account-grid article p{margin:0}.bank-account-grid article strong{font-size:20px;color:#214738}.bank-ledger-table .income{color:#17734a}.bank-ledger-table .expense{color:#a34834}.table-link.danger{color:#a13d32;margin-left:6px}.finance-mapping-layout .mapping-rule-list{min-width:0}.mapping-rule-list .data-table td small{display:block;color:#7f8984;margin-top:3px}
@media (max-width:1100px){.finance-management-modal,.bank-management-modal,.bank-ledger-modal,.finance-mapping-modal,.bank-entry-modal{width:calc(100vw - 220px);max-width:calc(100vw - 220px)}.finance-balance-columns,.bank-management-layout,.finance-mapping-layout{grid-template-columns:1fr}.finance-operating-kpis,.finance-report-audit-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.finance-management-modal,.bank-management-modal,.bank-ledger-modal,.finance-mapping-modal,.bank-entry-modal{width:94vw;max-width:94vw}.finance-operating-kpis,.finance-report-audit-strip,.bank-account-grid{grid-template-columns:1fr}.finance-report-sheet{padding:12px}.financial-report-workbench,.bank-ledger-workbench,.bank-management-layout,.finance-mapping-layout{padding:10px}}

/* Approval-flow diagnostics: compact node badges with transient hover details. */
.workflow-diagnostic-route-head{display:flex;align-items:center;justify-content:flex-end;min-height:25px;margin:2px 0 4px}
.workflow-route-hover-guide,.workflow-route-scheme-diagnostic{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid #d9d4ca;border-radius:999px;background:#f8f5ef;color:#786f63;font-size:10px;font-weight:750}
.workflow-route-scheme-diagnostic{cursor:help}.workflow-route-scheme-diagnostic.error{border-color:#dfaaa0;background:#fff1ee;color:#a23f31}.workflow-route-scheme-diagnostic.warning{border-color:#e2c386;background:#fff8e8;color:#8b621b}.workflow-route-scheme-diagnostic:focus-visible{outline:3px solid rgba(66,122,94,.22);outline-offset:2px}
.workflow-diagnostic-node{position:relative;cursor:help;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.workflow-diagnostic-node:hover,.workflow-diagnostic-node:focus-visible{z-index:2;transform:translateY(-1px);outline:0;box-shadow:0 8px 20px rgba(43,63,52,.14)}.workflow-diagnostic-node.error{border-color:#d69082;background:#fff7f5}.workflow-diagnostic-node.warning{border-color:#dfbe7d;background:#fffaf0}.workflow-diagnostic-node.passed{border-color:#b9d5c2;background:#f9fdfa}
.workflow-node-diagnostic-badge{position:absolute;top:-8px;right:7px;display:inline-flex;align-items:center;min-height:17px;padding:1px 6px;border:1px solid #bfd5c5;border-radius:999px;background:#edf7f0;color:#39704b;font-size:9px;font-style:normal;font-weight:850;white-space:nowrap;box-shadow:0 2px 7px rgba(44,71,55,.08)}.workflow-diagnostic-node.error .workflow-node-diagnostic-badge{border-color:#dfa99e;background:#fff0ed;color:#a33f31}.workflow-diagnostic-node.warning .workflow-node-diagnostic-badge{border-color:#e2c285;background:#fff7e5;color:#8b621b}.workflow-diagnostic-node.initiator .workflow-node-diagnostic-badge{border-color:#b7cddd;background:#eef6fb;color:#37667f}
.workflow-diagnostic-hovercard{position:fixed;z-index:320;width:min(460px,calc(100vw - 20px));max-height:min(680px,calc(100vh - 20px));overflow:auto;padding:0;border:1px solid #b9c9c0;border-radius:15px;background:#fff;box-shadow:0 24px 64px rgba(20,38,30,.28);pointer-events:none;color:#33433a}.workflow-diagnostic-hovercard[data-pinned="true"]{pointer-events:auto}.workflow-diagnostic-hovercard[data-tone="error"]{border-color:#d69a8e}.workflow-diagnostic-hovercard[data-tone="warning"]{border-color:#d9b873}.workflow-diagnostic-hovercard>header{position:relative;display:grid;gap:2px;padding:13px 62px 13px 15px;border-bottom:1px solid #dce5df;background:linear-gradient(120deg,#edf6f0,#fff)}.workflow-diagnostic-hovercard[data-tone="error"]>header{background:linear-gradient(120deg,#fff0ed,#fff)}.workflow-diagnostic-hovercard[data-tone="warning"]>header{background:linear-gradient(120deg,#fff6e5,#fff)}.workflow-diagnostic-hovercard>header>span{color:#64806f;font-size:9px;font-weight:850;letter-spacing:.09em}.workflow-diagnostic-hovercard>header>strong{font-size:15px;color:#263a2f}.workflow-diagnostic-hovercard>header>small{color:#748078;font-size:10px}.workflow-diagnostic-hovercard>header>button{position:absolute;top:11px;right:11px;min-height:28px;padding:4px 9px;border:1px solid #b8c9bf;border-radius:8px;background:#fff;color:#405c4c;font-size:10px;font-weight:800;cursor:pointer}
.workflow-diagnostic-hovercard section{margin:0;padding:11px 14px;border-bottom:1px solid #e7ece8}.workflow-diagnostic-hovercard section:last-child{border-bottom:0}.workflow-diagnostic-hovercard h4{margin:0 0 7px;color:#45564c;font-size:11px}.workflow-tooltip-issues{display:grid;gap:6px}.workflow-tooltip-issues>h4{margin-bottom:1px}.workflow-tooltip-issues article{padding:8px 9px;border-left:3px solid #d4ab62;border-radius:7px;background:#fffaf0}.workflow-tooltip-issues article.error{border-left-color:#c96553;background:#fff5f3}.workflow-tooltip-issues strong{font-size:11px}.workflow-tooltip-issues p{margin:3px 0;color:#626b65;font-size:10px;line-height:1.5}.workflow-tooltip-issues em{color:#39704b;font-size:9px;font-style:normal;font-weight:750}
.workflow-tooltip-approvers{display:grid;gap:7px}.workflow-tooltip-approvers>h4{margin-bottom:0}.workflow-tooltip-approvers>article{display:grid;gap:7px;padding:9px;border:1px solid #d8e2dc;border-radius:9px;background:#fbfdfb}.workflow-tooltip-approvers>article.missing{border-color:#e2c48c;background:#fffaf1}.workflow-tooltip-approvers article>header{display:flex;align-items:start;justify-content:space-between;gap:10px}.workflow-tooltip-approvers article>header div{display:flex;align-items:center;gap:6px}.workflow-tooltip-approvers article>header strong{font-size:12px}.workflow-tooltip-approvers article>header span{padding:2px 5px;border-radius:5px;background:#e7f0ea;color:#447056;font-size:9px}.workflow-tooltip-approvers article>header small{color:#7c857f;font-size:9px;text-align:right}.workflow-tooltip-approvers article>p{margin:0;color:#9a5b22;font-size:9px;line-height:1.45}
.workflow-tooltip-permission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.workflow-tooltip-permission{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:2px;padding:4px 5px;border-radius:6px;background:#edf6f0;color:#416a50;font-size:9px}.workflow-tooltip-permission.missing{background:#fff0ec;color:#9b4638}.workflow-tooltip-permission b{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#4f8b63;color:#fff;font-size:8px}.workflow-tooltip-permission.missing b{background:#c45d4b}.workflow-tooltip-permission i{overflow:hidden;font-style:normal;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.workflow-tooltip-permission small{grid-column:2;color:inherit;font-size:8px}
.workflow-tooltip-initiator{color:#4b6656;font-size:10px;line-height:1.6;background:#f7fbf8}.workflow-tooltip-initiator.missing{color:#9a4b3d;background:#fff7f5}.workflow-tooltip-operations{background:#f7f4ed}.workflow-tooltip-operations ol{display:grid;gap:4px;margin:0;padding-left:19px}.workflow-tooltip-operations li{color:#5e625d;font-size:10px;line-height:1.55}.workflow-tooltip-operations li::marker{color:#6c806f;font-weight:800}
@media(max-width:620px){.workflow-tooltip-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-diagnostic-hovercard{max-height:calc(100vh - 12px)}}

@supports (height:100dvh){
  .data-modal.system-input-window-modal,
  .data-modal.system-upload-window-modal,
  .data-modal.system-business-unified-modal{height:calc(100dvh - 20px)!important;max-height:calc(100dvh - 20px)!important}
  .system-business-unified-form.system-business-contained-form{height:min(760px,calc(100dvh - 130px));min-height:min(420px,calc(100dvh - 130px))}
  .workflow-diagnostic-hovercard{max-height:min(680px,calc(100dvh - 20px))}
}
@media (max-width:900px){
  .system-input-window-body{padding:10px}
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions,
  .system-business-unified-form>.system-business-sticky-actions{gap:7px!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important}
  :is(.system-input-window-modal,.system-upload-window-modal) .system-window-fixed-actions button,
  .system-business-unified-form>.system-business-sticky-actions button{flex:1 1 145px;justify-content:center}
}

/* Release 238: high-definition approval-node typography on every module browse page. */
.module-approval-browser-window {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.module-approval-browser-window .module-approval-track {
  gap: 5px;
  padding: 4px 0;
}
.module-approval-browser-window .module-approval-track > span {
  grid-template-columns: 28px minmax(70px,auto);
  min-width: 112px;
  min-height: 45px;
  padding: 7px 8px;
  border: 1px solid #d7e0dc;
  border-radius: 11px;
  background: linear-gradient(145deg,#ffffff,#f4f7f5);
  color: #56675f;
  box-shadow: 0 4px 11px rgba(42,66,54,.07),inset 0 1px 0 rgba(255,255,255,.92);
}
.module-approval-browser-window .module-approval-track > span i {
  width: 28px;
  height: 28px;
  border-width: 1.5px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}
.module-approval-browser-window .module-approval-track > span i svg {
  width: 13px;
  height: 13px;
  stroke-width: 2.35;
}
.module-approval-browser-window .module-approval-track > span b {
  color: inherit;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .01em;
  white-space: nowrap;
}
.module-approval-browser-window .module-approval-track > span em {
  margin-top: 2px;
  color: #8a6418;
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.2;
}
.module-approval-browser-window .module-approval-track > u {
  min-width: 18px;
  height: 2px;
  margin: 0 1px;
  border-radius: 999px;
  background: linear-gradient(90deg,#ced9d3,#9eb9aa);
}
.module-approval-browser-window .module-approval-track > span.completed {
  border-color: #9bcab5;
  color: #176b51;
  background: linear-gradient(145deg,#f7fcf9,#eaf7f0);
}
.module-approval-browser-window .module-approval-track > span.current {
  border-color: #76b1d2;
  color: #125f89;
  background: linear-gradient(145deg,#f8fcff,#e8f5fc);
  box-shadow: 0 0 0 3px rgba(29,126,177,.10),0 7px 16px rgba(27,102,141,.12);
}
.module-approval-browser-window .module-approval-track > span.rejected {
  border-color: #dda39a;
  color: #a84239;
  background: linear-gradient(145deg,#fffafa,#fff0ed);
}
.module-approval-browser-window .approval-live-track {
  gap: 8px;
  padding: 8px 2px;
}
.module-approval-browser-window .approval-live-node {
  grid-template-columns: 26px minmax(104px,1fr);
  gap: 7px;
  flex: 1 0 150px;
  min-width: 150px;
  min-height: 54px;
  padding: 9px;
  border-radius: 11px;
  box-shadow: 0 4px 11px rgba(42,66,54,.07),inset 0 1px 0 rgba(255,255,255,.92);
}
.module-approval-browser-window .approval-live-node > i {
  width: 26px;
  height: 26px;
  font-size: 10px;
  font-weight: 900;
}
.module-approval-browser-window .approval-live-node strong {
  color: #263e33;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .01em;
}
.module-approval-browser-window .approval-live-node span {
  margin-top: 3px;
  color: #52665b;
  font-size: 10.5px;
  font-weight: 650;
  line-height: 1.4;
}
.module-approval-browser-window .approval-live-node em {
  font-size: 9.5px;
  font-weight: 800;
}
.module-approval-browser-window .approval-live-node > small {
  color: #697a71;
  font-size: 9.5px;
  font-weight: 650;
}
.module-approval-browser-window .approval-live-node[data-state="current"] {
  border-color: #2e9b70;
  box-shadow: 0 0 0 3px rgba(46,155,112,.16),0 8px 18px rgba(29,111,79,.14);
}
.module-approval-browser-window .module-approval-progress-action small {
  color: #536b60;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
}
.effective-workflow-browser .effective-workflow-route > span {
  grid-template-columns: 24px minmax(0,1fr);
  flex-basis: auto;
  min-width: 108px;
  min-height: 42px;
  gap: 2px 7px;
  padding: 8px 9px;
  border-radius: 10px;
  box-shadow: 0 4px 11px rgba(42,66,54,.07),inset 0 1px 0 rgba(255,255,255,.92);
}
.effective-workflow-browser .effective-workflow-route > span i {
  width: 23px;
  height: 23px;
  font-size: 11px;
  font-weight: 900;
}
.effective-workflow-browser .effective-workflow-route b {
  color: #1f4656;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .01em;
  white-space: nowrap;
}
.effective-workflow-browser .effective-workflow-route small {
  color: #536f78;
  font-size: 11.5px;
  font-weight: 650;
  line-height: 1.4;
}
.effective-workflow-browser .effective-workflow-route > u {
  width: 24px;
  height: 1px;
  margin: 0;
  border-left: 0;
  border-top-width: 2px;
}
@media (max-width:1200px) {
  .module-approval-browser-window .module-approval-track > span {
    flex: 0 0 112px;
  }
}

/* Business entry remarks stay compact by default and can still expand when needed. */
.data-modal form label.compact-business-remark-field {
  min-height: 46px !important;
}
.data-modal form textarea.compact-business-remark-input {
  height: 43px !important;
  min-height: 43px !important;
  max-height: 180px;
  overflow-y: auto;
  resize: vertical;
}

/* Release 232: compact approval journeys and a dedicated employee-entry scroller. */
.business-form .form-approval-live-card {
  margin: 4px 0 3px;
  border-radius: 8px;
}
.business-form .form-approval-live-card > header {
  min-height: 30px;
  padding: 4px 7px;
  gap: 6px;
}
.business-form .form-approval-live-card > header > div {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  gap: 5px;
}
.business-form .form-approval-live-card > header span {
  font-size: 8.5px;
  white-space: nowrap;
}
.business-form .form-approval-live-card > header strong {
  max-width: min(54vw,460px);
  font-size: 9.5px;
}
.business-form .form-approval-live-card > header > em {
  padding: 2px 5px;
  font-size: 7.5px;
}
.business-form .form-approval-live-summary {
  display: flex;
  grid-template-columns: none;
  gap: 4px;
  padding: 4px 6px;
}
.business-form .form-approval-live-summary > span {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  min-height: 24px;
  align-items: center;
  gap: 4px;
  padding: 3px 5px;
}
.business-form .form-approval-live-summary :is(small,strong,em) {
  min-width: 0;
  margin: 0;
  font-size: 8px;
  line-height: 1.2;
}
.business-form .form-approval-live-summary small { flex: 0 0 auto; }
.business-form .form-approval-live-summary strong { font-size: 8.5px; }
.business-form .form-approval-live-summary em { grid-column: auto; }
.business-form .approval-live-track {
  gap: 3px;
  padding: 3px 6px 5px;
}
.business-form .approval-live-node {
  grid-template-columns: 16px minmax(76px,1fr);
  gap: 4px;
  flex: 1 0 104px;
  min-width: 104px;
  min-height: 34px;
  padding: 4px;
  border-radius: 6px;
}
.business-form .approval-live-node > i {
  width: 16px;
  height: 16px;
  font-size: 7px;
}
.business-form .approval-live-node strong { font-size: 8px;line-height:1.2; }
.business-form .approval-live-node span {
  margin-top: 1px;
  overflow: hidden;
  font-size: 7.5px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.business-form .approval-live-node em { margin-top:1px;padding:1px 3px;font-size:7px; }
.business-form .approval-live-node > small { display:none; }
.business-form .approval-live-track > u { flex-basis:6px; }

.employee-entry-modal.employee-entry-scroll-modal {
  height: calc(100vh - 20px) !important;
  max-height: calc(100vh - 20px) !important;
  overflow: hidden !important;
}
.employee-entry-scroll-modal > form.employee-entry-upload-form {
  display: grid !important;
  grid-template-rows: minmax(0,1fr) auto !important;
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}
.employee-entry-scroll-modal .system-upload-window-body {
  display: block;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  scroll-behavior: auto;
  scroll-padding-block: 14px 24px;
  overscroll-behavior-y: contain;
}
.employee-entry-scroll-modal :is(.system-upload-window-fields,[data-employee-single-panel],.employee-single-upload-window) {
  min-height: max-content;
  overflow: visible !important;
}
.employee-entry-scroll-modal .system-upload-window-body:focus-visible {
  outline: 3px solid rgba(39,113,149,.22);
  outline-offset: -4px;
}

.workflow-node-hover-callout {
  position: absolute;
  right: 7px;
  bottom: -8px;
  z-index: 3;
  padding: 1px 5px;
  border: 1px solid #c7d6cc;
  border-radius: 999px;
  background: #fff;
  color: #557061;
  font-size: 7.5px;
  font-weight: 800;
  line-height: 1.4;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(42,65,51,.08);
}
.workflow-diagnostic-node:hover .workflow-node-hover-callout,
.workflow-diagnostic-node:focus-visible .workflow-node-hover-callout {
  border-color: #74a98a;
  background: #edf8f1;
  color: #2d6f45;
}

@supports (height:100dvh) {
  .employee-entry-modal.employee-entry-scroll-modal {
    height: calc(100dvh - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
  }
}
@media (max-width:900px) {
  .business-form .form-approval-live-summary { display:flex;grid-template-columns:none; }
  .business-form .form-approval-live-summary > span { min-width:0; }
  .employee-entry-modal.employee-entry-scroll-modal {
    height: calc(100vh - 12px) !important;
    max-height: calc(100vh - 12px) !important;
  }
}

/* Release 235: Chinese-accounting-standard finance workbench. */
.finance-ar-ap-modal {
  width: min(1760px,calc(100vw - 32px));
  max-width: calc(100vw - 32px);
}
body .data-modal.finance-ar-ap-modal.workspace-bound-form-modal {
  width:calc(100vw - var(--workspace-modal-clearance)) !important;
  max-width:calc(100vw - var(--workspace-modal-clearance)) !important;
}
.accounting-standard-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 1px solid #d8d2c5;
  border-radius: 10px;
  background: linear-gradient(105deg,#f5f0e6,#fffdfa 58%,#f2f5ef);
  color: #6a6255;
  font-size: 11px;
  font-weight: 700;
}
.accounting-standard-strip span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding-right: 8px;
  border-right: 1px solid #ddd6ca;
}
.accounting-standard-strip span:first-child { color:#355c49;font-weight:850; }
.accounting-standard-strip span:last-child { border-right:0; }
.accounting-section-title {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
  padding-bottom:10px;
  border-bottom:1px solid #dfddd6;
}
.accounting-section-title span,.bank-account-list>header>div>span,.accounting-rule-list>header>div>span {
  display:block;
  margin-bottom:3px;
  color:#8b7653;
  font-size:10px;
  font-weight:850;
  letter-spacing:.1em;
}
.accounting-section-title h3,.bank-account-list>header h3,.accounting-rule-list>header h3 { margin:0;color:#263e33;font-size:16px; }
.accounting-section-title small { max-width:250px;color:#7b817d;text-align:right;font-size:10px;line-height:1.45; }
.accounting-entry-form .finance-sheet { border-color:#d8d5cc;background:#fffdfa;box-shadow:0 8px 24px rgba(60,55,46,.06); }
.accounting-entry-form .sheet-grid { gap:11px 12px; }
.accounting-entry-form .sheet-grid label span { color:#4d5b54;font-size:11px;font-weight:750; }
.accounting-entry-form .sheet-grid :is(input,select) { border-color:#ced6d0;background:#fff; }
.accounting-entry-form .sheet-grid :is(input,select):focus { border-color:#728f7e;box-shadow:0 0 0 3px rgba(74,113,91,.12); }
.debit-credit-preview {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:8px;
  margin-top:13px;
  padding:10px 12px;
  border-left:3px solid #76927f;
  border-radius:7px;
  background:#f1f5f1;
  color:#5c6761;
  font-size:11px;
}
.debit-credit-preview span { color:#315641;font-weight:850; }
.debit-credit-preview p { margin:0;line-height:1.55; }
.bank-account-card-head { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.bank-account-card-head .table-link { font-size:10px; }
.bank-account-grid article { position:relative;border-color:#d7d7cf;background:linear-gradient(145deg,#fff,#f7f6f1); }
.bank-account-grid article:before { content:"";position:absolute;top:0;left:12px;right:12px;height:3px;border-radius:0 0 6px 6px;background:#587663; }
.bank-account-grid article.is-disabled { opacity:.64;filter:saturate(.55); }
.bank-account-grid article footer { display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:6px;padding-top:8px;border-top:1px dashed #d8ddd8; }
.bank-account-grid article footer span { color:#68736d;font-size:9px; }
.accounting-official-sheet { position:relative;border-color:#cfc9bb;border-radius:5px;background:#fff;box-shadow:0 8px 26px rgba(56,48,35,.08); }
.accounting-official-sheet>header { position:relative;padding:3px 80px 4px; }
.accounting-report-code { position:absolute;top:0;right:0;color:#6f746f;font-size:11px;font-weight:700;letter-spacing:.04em; }
.accounting-statement-table { table-layout:auto; }
.accounting-statement-table th { background:#eee9dd;color:#4f504b;border-color:#ccc8bd;text-align:center; }
.accounting-statement-table td { border-color:#d5d1c7; }
.accounting-statement-table th:nth-child(n+3),.accounting-statement-table td.amount-cell { text-align:right; }
.accounting-line-no { width:42px;color:#777a76;text-align:center!important;font-variant-numeric:tabular-nums; }
.accounting-report-signatures { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:13px;padding-top:11px;border-top:1px solid #d1cdc3;color:#626963;font-size:11px; }
.accounting-balance-warning { display:flex;align-items:center;gap:7px;margin:0 0 12px;padding:9px 11px;border:1px solid #e2b580;border-radius:8px;background:#fff6e9;color:#94571c;font-size:11px;font-weight:750; }
.accounting-ledger-scroll { border:1px solid #d8d6ce;border-radius:10px;background:#fff; }
.accounting-ledger-table { min-width:1420px; }
.accounting-ledger-table tbody tr:nth-child(even),.ar-ap-ledger-table tbody tr:nth-child(even) { background:#fbfaf7; }
.accounting-ledger-table tbody tr:hover,.ar-ap-ledger-table tbody tr:hover { background:#f1f5f1; }
.accounting-rule-list>header,.bank-account-list>header { align-items:flex-start; }
.account-catalog-panel { border-top:1px solid #d8ddd8;background:#fbfaf7; }
.account-catalog-panel summary { padding:11px 14px;color:#425c4e;font-size:11px;font-weight:800;cursor:pointer; }
.account-catalog-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 12px 12px; }
.account-catalog-grid article { display:grid;gap:3px;padding:9px;border:1px solid #deddd6;border-radius:8px;background:#fff; }
.account-catalog-grid strong { color:#2f4338;font-size:11px; }
.account-catalog-grid span,.account-catalog-grid small { color:#778079;font-size:9px; }
.ar-ap-workbench { display:grid;gap:13px;max-height:calc(100vh - 120px);overflow:auto;padding:18px;background:#f4f1e9; }
.ar-ap-account-picker { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.ar-ap-account-group { overflow:hidden;border:1px solid #d8d7cf;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(55,63,57,.055); }
.ar-ap-account-group>header { display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid #e3e1da;background:linear-gradient(105deg,#f7f5ef,#fff); }
.ar-ap-account-group>header span { color:#315441;font-size:13px;font-weight:850; }
.ar-ap-account-group>header small { color:#848078;font-size:9px; }
.ar-ap-account-group>div { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:9px; }
.ar-ap-account-option { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;min-width:0;min-height:54px;padding:8px 10px;border:1px solid #d8ddd9;border-radius:10px;background:#fbfcfa;color:#536259;text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease; }
.ar-ap-account-option b { display:grid;place-items:center;min-width:39px;height:26px;padding:0 6px;border-radius:7px;background:#e8eee9;color:#3f6752;font-size:10px;font-variant-numeric:tabular-nums; }
.ar-ap-account-option strong { min-width:0;color:#34483d;font-size:11px;white-space:nowrap; }
.ar-ap-account-option small { color:#8a7654;font-size:9px;white-space:nowrap; }
.ar-ap-account-option:hover:not(:disabled) { border-color:#8ead9b;background:#f3f8f4;box-shadow:0 7px 14px rgba(54,92,71,.09);transform:translateY(-1px); }
.ar-ap-account-option.selected { border-color:#4e8267;background:linear-gradient(135deg,#eaf5ee,#f8fbf9);box-shadow:inset 0 0 0 1px rgba(63,119,87,.18),0 8px 17px rgba(56,100,76,.11); }
.ar-ap-account-option.selected b { background:#3f775b;color:#fff; }
.ar-ap-account-option:disabled { opacity:.55;cursor:not-allowed; }
.bank-management-layout,.finance-mapping-layout { grid-template-columns:minmax(420px,.86fr) minmax(0,1.42fr); }
.bank-management-layout .accounting-entry-form .sheet-grid,
.finance-mapping-layout .accounting-entry-form .sheet-grid,
.ar-ap-layout .accounting-entry-form .sheet-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.bank-management-layout .accounting-entry-form .sheet-grid .full,
.finance-mapping-layout .accounting-entry-form .sheet-grid .full,
.ar-ap-layout .accounting-entry-form .sheet-grid .full { grid-column:1 / -1; }
.accounting-rule-list .data-table { min-width:960px; }
.ar-ap-layout { display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px; }
.ar-ap-layout>.business-form { min-width:0;margin:0; }
.ar-ap-ledger-panel { min-width:0;overflow:hidden;border:1px solid #d8d6ce;border-radius:13px;background:#fff; }
.ar-ap-ledger-panel>.finance-report-filter { border:0;border-bottom:1px solid #dedbd2;border-radius:0;background:#fbfaf7; }
.ar-ap-ledger-list { min-width:1000px;background:#fff; }
.ar-ap-ledger-grid { display:grid;grid-template-columns:minmax(124px,.9fr) 96px minmax(140px,1.18fr) minmax(150px,1.3fr) minmax(130px,.92fr) minmax(104px,.76fr) minmax(120px,.86fr) minmax(110px,.8fr);align-items:stretch; }
.ar-ap-ledger-head { position:sticky;top:0;z-index:2;border-bottom:1px solid #d8d6ce;background:#eee9dd;color:#55584f;font-size:10px;font-weight:800;letter-spacing:.02em; }
.ar-ap-ledger-head>span { padding:9px 10px;border-right:1px solid #d8d6ce; }
.ar-ap-ledger-head>span:last-child { border-right:0; }
.ar-ap-ledger-row { border-bottom:1px solid #e2e0d9;background:#fff;color:#34433b;font-size:10px;line-height:1.42;transition:background .2s ease,box-shadow .2s ease; }
.ar-ap-ledger-row:nth-child(odd) { background:#fbfaf7; }
.ar-ap-ledger-row:hover { position:relative;background:#f1f5f1;box-shadow:inset 3px 0 #66816f; }
.ar-ap-ledger-row.is-overdue { background:#fff9f2; }
.ar-ap-ledger-cell { min-width:0;padding:10px;border-right:1px solid #e5e3dc;overflow-wrap:anywhere;word-break:break-word; }
.ar-ap-ledger-cell:last-child { border-right:0; }
.ar-ap-ledger-cell strong { display:block;color:#253c31;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums; }
.ar-ap-ledger-cell>span,.ar-ap-ledger-cell>small { display:block;margin-top:4px;color:#747e78;font-size:9px; }
.ar-ap-ledger-cell>span:first-child,.ar-ap-ledger-cell>small:first-child { margin-top:0; }
.ar-ap-ledger-cell b { margin-right:4px;color:#8a7654;font-size:8px;font-weight:850;letter-spacing:.04em; }
.ar-ap-ledger-amounts strong { text-align:right; }
.ar-ap-ledger-amounts span { display:flex;justify-content:space-between;gap:7px;font-variant-numeric:tabular-nums; }
.ar-ap-ledger-amounts span:last-child { padding-top:4px;border-top:1px dashed #d9d5ca;color:#2f5943;font-weight:800; }
.ar-ap-ledger-list>.empty-state { padding:28px;text-align:center; }
.ar-ap-settle-control { display:flex;align-items:center;gap:5px;min-width:125px; }
.ar-ap-settle-control input { width:76px;height:29px;padding:0 6px;border:1px solid #ccd4ce;border-radius:6px;font-size:10px; }
.ar-ap-ledger-cell .ledger-row-actions { align-items:flex-start;white-space:normal; }
.ar-ap-ledger-cell .ar-ap-settle-control { width:100%;min-width:0;flex-wrap:wrap; }
.ar-ap-ledger-cell .ar-ap-settle-control input { min-width:52px;flex:1 1 64px; }
.ar-ap-kpis article { min-height:86px; }
@media (max-width:1180px) {
  .finance-ar-ap-modal { width:calc(100vw - 24px);max-width:calc(100vw - 24px); }
  .ar-ap-layout { grid-template-columns:1fr; }
  .ar-ap-account-picker { grid-template-columns:1fr; }
  .bank-management-layout,.finance-mapping-layout { grid-template-columns:1fr; }
  .account-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .accounting-report-signatures { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1280px) {
  .ar-ap-layout .accounting-entry-form .sheet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.repeatable-finance-table .sheet-band{display:flex;align-items:center;justify-content:space-between;gap:12px}
.repeatable-finance-table .sheet-band .outline-button{min-height:28px;padding:4px 10px;border-color:rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.12)}
.repeatable-finance-table td:first-child{position:relative;padding-right:34px}
.repeatable-finance-table .finance-row-remove{position:absolute;top:50%;right:4px;width:25px;height:25px;transform:translateY(-50%)}
@media (max-width:760px) {
  .finance-ar-ap-modal { width:94vw;max-width:94vw; }
  .ar-ap-workbench { padding:9px; }
  .accounting-section-title { align-items:flex-start;flex-direction:column; }
  .accounting-section-title small { max-width:none;text-align:left; }
  .account-catalog-grid,.accounting-report-signatures { grid-template-columns:1fr; }
  .ar-ap-account-group>header { align-items:flex-start;flex-direction:column;gap:3px; }
  .ar-ap-account-group>div { grid-template-columns:1fr; }
  .accounting-official-sheet>header { padding-right:0;padding-left:0; }
  .accounting-report-code { position:static;margin-bottom:4px; }
}

/* Release 245 final overrides: keep approval nodes compact after all legacy style layers. */
.submenu-item.is-permission-locked,
.submenu-item.is-permission-locked:hover,
.submenu-item.is-permission-locked:active {
  opacity:.68;
  cursor:not-allowed;
  filter:saturate(.35);
  transform:none;
  border-color:rgba(125,134,142,.35);
  background:rgba(239,241,242,.94);
  color:#6d757b;
  box-shadow:none;
}
.approval-flow-diagram { gap:7px; }
.approval-flow-node { min-width:132px;max-width:154px;padding:8px 9px;border-radius:10px; }
.approval-flow-node>header { gap:5px; }
.approval-flow-node>header strong { font-size:11px; }
.approval-flow-node>footer { padding-top:6px; }
.workflow-diagnostic-route { gap:4px; }
.workflow-diagnostic-node { min-width:128px;padding:6px 7px;gap:5px;border-radius:8px; }
.workflow-diagnostic-node>i { width:18px;height:18px;font-size:9px; }
.workflow-diagnostic-node strong { font-size:11px; }
.workflow-diagnostic-node small { max-width:145px;font-size:9px; }
.workflow-diagnostic-operation-guide{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;margin:12px 0;padding:12px 14px;border:1px solid #d7e4da;border-radius:12px;background:linear-gradient(135deg,#f5f8f3,#fffaf0);color:#334b3e}
.workflow-diagnostic-operation-guide>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-content:start}.workflow-diagnostic-operation-guide>div>svg{grid-row:1/3;margin-top:2px;color:#35734e}.workflow-diagnostic-operation-guide strong{font-size:14px}.workflow-diagnostic-operation-guide p{margin:4px 0 0;font-size:12px;line-height:1.7;color:#637269}
.workflow-diagnostic-operation-guide ol{margin:0;padding-left:21px;display:grid;gap:5px;font-size:12px;line-height:1.55}.workflow-diagnostic-operation-guide li::marker{font-weight:900;color:#397651}
.workflow-node-canvas { gap:26px; }
.workflow-node-card { flex:0 0 268px;width:268px;max-width:268px;gap:8px;padding:10px;border-radius:10px; }
.workflow-node-card.workflow-required-department-node { border-color:#9fcab8;box-shadow:0 10px 24px rgba(45,116,88,.12);background:linear-gradient(180deg,#f4fbf7 0%,#fff 100%); }
.workflow-required-department-node .workflow-assignee-mode-label select:disabled { opacity:1;color:#246a50;background:#e9f6ef;border-color:#a9d2c0;cursor:default; }
.workflow-required-department-node .workflow-node-name-help { color:#287256;line-height:1.45; }
.workflow-node-card:not(:last-child)::after { right:-20px;width:13px; }
.workflow-node-card>header { grid-template-columns:28px minmax(0,1fr) auto;gap:6px;padding-bottom:7px; }
@media (max-width:640px) {
  .workflow-node-card { flex-basis:calc(100vw - 70px);width:calc(100vw - 70px);max-width:calc(100vw - 70px); }
  .workflow-diagnostic-operation-guide{grid-template-columns:1fr}
}

/* 公文定向投递：紧凑检索和按部门多选 */
.office-document-recipient-selector{border:1px solid #d8e2dc;border-radius:12px;background:#f8faf8;padding:10px;min-width:0}
.office-document-recipient-selector legend{padding:0 6px;font-weight:800;color:#263c34}
.office-recipient-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:10px;margin-bottom:8px}
.office-recipient-toolbar>label{display:flex;align-items:center;gap:7px;min-width:0}
.office-recipient-toolbar input{width:100%;min-width:120px;height:34px}
.office-recipient-toolbar>[data-office-recipient-count]{white-space:nowrap;font-size:12px;font-weight:800;color:#347454}
.office-recipient-select-actions{display:flex;align-items:center;gap:5px}
.office-recipient-select-actions button{min-height:32px;padding:5px 9px;font-size:11px}
.office-recipient-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:220px;overflow:auto}
.office-recipient-groups section{border:1px solid #e1e8e3;border-radius:9px;background:#fff;padding:7px}
.office-recipient-groups section>header{display:flex;align-items:center;justify-content:space-between;margin:0 0 5px;font-size:12px;color:#415b50}
.office-recipient-groups section>header>span{display:flex;align-items:center;gap:6px}
.office-recipient-groups section>header button{border:0;background:#e8f3ec;color:#2f704c;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;cursor:pointer}
.office-recipient-groups label{display:flex;align-items:center;gap:6px;padding:4px;border-radius:6px;font-size:12px}
.office-recipient-groups label:hover{background:#eef7f1}
.office-recipient-groups label input{width:auto;min-width:auto;margin:0}

/* 库存期初基数：完整财务录入区在上、账面台账在下，避免输入框被窄栏挤没 */
.inventory-opening-modal{display:flex;flex-direction:column;width:min(1480px,calc(100vw - 34px));max-width:1480px;height:min(900px,calc(100dvh - 28px));overflow:hidden}
.inventory-opening-modal>.modal-header{flex:0 0 auto}
.inventory-opening-layout{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;height:0;padding:12px;min-height:0;overflow:auto;scrollbar-gutter:stable}
.inventory-opening-batch-panel{flex:0 0 auto;border:1px solid #c8ddd0;border-radius:12px;background:#f7faf8;box-shadow:0 7px 18px rgba(35,67,50,.06);overflow:hidden}
.inventory-opening-batch-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 13px;cursor:pointer;background:linear-gradient(110deg,#e8f4ec,#f8fbf9 68%,#edf6f1);color:#315c43;list-style:none}
.inventory-opening-batch-panel>summary::-webkit-details-marker{display:none}.inventory-opening-batch-panel>summary>span{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:8px;min-width:0}.inventory-opening-batch-panel>summary>span>svg{grid-row:1/3;color:#31734d}.inventory-opening-batch-panel>summary strong{font-size:14px}.inventory-opening-batch-panel>summary small{grid-column:2;color:#6a7e70;font-size:11.5px;font-weight:600}.inventory-opening-batch-panel>summary>em{display:flex;align-items:center;gap:5px;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}.inventory-opening-batch-panel[open]>summary>em svg{transform:rotate(180deg)}
.inventory-opening-batch-form{display:grid;gap:10px;padding:11px;border-top:1px solid #d4e3d9}.inventory-opening-file-panel{display:grid;gap:9px}.inventory-opening-file-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) auto;align-items:center;gap:10px}.inventory-opening-file-dropzone{display:grid;grid-template-columns:34px auto;column-gap:9px;align-items:center;min-height:64px;padding:9px 11px;border:1px dashed #9ebdad;border-radius:10px;background:#fff;cursor:pointer}.inventory-opening-file-dropzone>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e5f2e9;color:#2f7049}.inventory-opening-file-dropzone strong{font-size:13px;color:#2f5940}.inventory-opening-file-dropzone small{color:#718078;font-size:11px}.inventory-opening-file-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inventory-opening-file-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.inventory-opening-file-actions button{min-height:36px}
.inventory-opening-file-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 9px;border-radius:9px;background:#edf3ef;color:#52675a;font-size:11.5px}.inventory-opening-file-summary>span{padding:4px 7px;border-radius:7px;background:#fff}.inventory-opening-file-summary [data-tone="ready"]{color:#27724b}.inventory-opening-file-summary [data-tone="error"]{color:#a44337}.inventory-opening-file-summary .inventory-opening-import-status{margin-left:auto;background:transparent;font-weight:750}.inventory-opening-import-status[data-state="ready"]{color:#27724b}.inventory-opening-import-status[data-state="error"]{color:#a44337}.inventory-opening-file-preview{max-height:250px;overflow:auto;border:1px solid #d5e1d9;border-radius:9px;background:#fff}.inventory-opening-file-preview table{min-width:1040px}.inventory-opening-file-preview th{position:sticky;top:0;z-index:1}.inventory-opening-file-preview td small{display:block;margin-top:2px;color:#758079}.inventory-opening-import-error{background:#fff4f1!important}.inventory-opening-import-error .inventory-opening-import-result{color:#a33f34;font-weight:700}.inventory-opening-import-ready .inventory-opening-import-result{display:inline-flex;align-items:center;gap:4px;color:#2f7650;font-weight:700}
.inventory-opening-manual-panel{border:1px solid #d5e1d9;border-radius:9px;background:#fff;overflow:hidden}.inventory-opening-manual-panel>summary{display:flex;align-items:center;gap:7px;padding:9px 11px;cursor:pointer;color:#3c6250;font-size:12px;font-weight:800;list-style:none}.inventory-opening-manual-panel>summary::-webkit-details-marker{display:none}.inventory-opening-manual-body{display:grid;gap:8px;padding:0 9px 9px}.inventory-opening-manual-body>p{margin:0;padding:7px 9px;border-radius:7px;background:#f5f3e8;color:#716738;font-size:11px}.inventory-opening-batch-scroll{max-height:410px;overflow:auto;border:1px solid #cfddd4;border-radius:9px}.inventory-opening-batch-columns,.inventory-opening-batch-row{display:grid;grid-template-columns:46px 82px 118px 122px 180px 175px 175px 105px 78px 110px 116px minmax(160px,1fr) 42px;min-width:1550px;align-items:stretch}.inventory-opening-batch-columns{position:sticky;top:0;z-index:2;background:#dfebe3;color:#3f6250;font-size:10.5px;font-weight:800}.inventory-opening-batch-columns>span{display:grid;place-items:center;min-height:32px;padding:4px;border-right:1px solid #c9d8ce;text-align:center}.inventory-opening-batch-row{border-top:1px solid #e0e8e3;background:#fff}.inventory-opening-batch-row:nth-child(even){background:#fafcfb}.inventory-opening-batch-row:focus-within{background:#f0f7f2;box-shadow:inset 3px 0 0 #3b8158}.inventory-opening-batch-index{display:grid;place-items:center;color:#5c7063;font-size:11px;font-weight:800;border-right:1px solid #dce5df}.inventory-opening-batch-row>label{display:grid;align-content:center;gap:3px;min-width:0;padding:4px;border-right:1px solid #dce5df}.inventory-opening-batch-row>label>span{display:none}.inventory-opening-batch-row :is(input,select){width:100%;min-width:0;height:32px;padding:4px 6px;border:1px solid #c9d7cf;border-radius:6px;background:#fff;font-size:11px;font-weight:650}.inventory-opening-batch-row label:has(input+input){grid-template-columns:1fr 1fr}.inventory-opening-batch-row label:has(input+input) input{min-width:0}.inventory-opening-batch-amount output{display:grid;place-items:center;height:32px;border-radius:6px;background:#e9f4ec;color:#286440;font-size:11px;font-weight:850}.inventory-opening-batch-row>.icon-button{align-self:center;justify-self:center;width:30px;height:30px;color:#9a453d}.inventory-opening-batch-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.inventory-opening-batch-actions>span{margin-right:auto;color:#697a70;font-size:11px}.inventory-opening-batch-actions button{min-height:36px}
.inventory-opening-form{--inventory-action-clearance:4em;flex:0 0 auto;display:grid;grid-template-rows:minmax(0,1fr) auto;height:clamp(330px,calc(100dvh - 200px - var(--inventory-action-clearance)),620px);min-height:0;max-height:calc(100dvh - 112px);overflow:hidden;border:1px solid #d8e4dc;border-radius:12px;background:#fbfcfb;padding:0;box-shadow:0 7px 18px rgba(35,67,50,.06)}
.inventory-opening-form-body{min-height:0;overflow:auto;padding:12px 12px 18px;scrollbar-gutter:stable}
.inventory-opening-form .form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 11px}
.inventory-opening-form .form-section-title{margin:11px 0 7px;padding:7px 10px;border-radius:8px;background:#eef4ef}
.inventory-opening-form .form-actions{position:sticky;bottom:0;z-index:20;display:flex;flex:0 0 auto;min-height:62px;margin:0;background:rgba(251,252,251,.995);padding:10px 12px;border-top:1px solid #dce6df;box-shadow:0 -9px 18px rgba(31,55,43,.09)}
.inventory-opening-form .form-actions button{min-height:40px}
.inventory-opening-guide{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid #cfe1d5;border-radius:9px;background:linear-gradient(135deg,#edf7f0,#fbfcf7);color:#345a43}
.inventory-opening-guide svg{flex:0 0 auto;margin-top:1px}.inventory-opening-guide strong,.inventory-opening-guide span{display:block}.inventory-opening-guide span{margin-top:2px;font-size:12px;color:#607468}
.inventory-opening-core-fields{padding:13px;border:1px solid #d6e2da;border-radius:12px;background:#fbfdfb}
.inventory-opening-optional-panel{margin-top:12px;border:1px solid #ddd8cc;border-radius:11px;background:#faf9f5;overflow:hidden}
.inventory-opening-optional-panel>summary{display:flex;align-items:center;gap:7px;padding:11px 13px;color:#54645c;font-size:12px;font-weight:800;cursor:pointer;list-style:none}
.inventory-opening-optional-panel>summary::-webkit-details-marker{display:none}
.inventory-opening-optional-panel[open]>summary{border-bottom:1px solid #e4dfd5;background:#f2f5f1}
.inventory-opening-optional-panel>.form-grid-4{padding:12px}
.inventory-opening-amount-field input{font-size:16px!important;font-weight:850;color:#245f3b;background:#edf7f0!important}
.inventory-opening-ledger{min-width:0;min-height:330px;display:flex;flex-direction:column;border:1px solid #dce5df;border-radius:12px;background:#fff;overflow:hidden}
.inventory-opening-ledger>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;background:#edf4ef;border-bottom:1px solid #dce5df}
.inventory-opening-ledger>header div{display:flex;align-items:center;gap:8px;min-width:0}
.inventory-opening-ledger>header div:first-child{display:block}
.inventory-opening-ledger>header strong,.inventory-opening-ledger>header small{display:block}
.inventory-opening-ledger>header small{margin-top:2px;color:#67766e}
.inventory-opening-ledger>header input{width:min(260px,26vw);height:34px}
.inventory-opening-ledger .office-table-scroll{flex:1;min-height:0;overflow:auto}
.inventory-opening-ledger td small{display:block;color:#78827c;margin-top:3px}

/* 零星物资、办公用品采购：主按钮始终固定在当前窗口底部 */
.office-supply-entry-modal.system-business-unified-modal .system-business-unified-body{padding-bottom:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.office-supply-entry-form.system-business-unified-form{--office-supply-action-clearance:calc(3em + 12px);height:calc(100dvh - 106px - var(--office-supply-action-clearance))!important;max-height:calc(820px - var(--office-supply-action-clearance));min-height:min(520px,calc(100dvh - 106px - var(--office-supply-action-clearance)))!important;margin-bottom:var(--office-supply-action-clearance)!important}
.office-supply-entry-form .system-business-unified-form-body{padding-bottom:18px}
.office-supply-entry-form>.system-business-sticky-actions{position:relative!important;bottom:auto!important;z-index:30;min-height:64px;background:#fff!important;border-top:1px solid #d9e4dc;box-shadow:0 -10px 22px rgba(28,53,39,.12)}
.office-supply-entry-kpis{flex:0 0 auto}
.office-supply-entry-form .form-section-title strong::before,
.inventory-opening-form .form-section-title strong::before,
.inventory-opening-batch-form .form-section-title strong::before,
.stock-application-form .form-section-title strong::before,
.stock-document-form .form-section-title strong::before,
.workshop-inventory-form .form-section-title strong::before,
.inventory-scan-hub .form-section-title strong::before{display:none!important;content:none!important}
.office-supply-entry-kpis article::after{display:none!important;content:none!important}
.inventory-opening-form::before,.inventory-opening-form::after,
.inventory-opening-form-body::before,.inventory-opening-form-body::after,
.inventory-opening-form .form-section-title::before,.inventory-opening-form .form-section-title::after,
.inventory-opening-form .form-section-title strong::after,
.inventory-opening-guide::before,.inventory-opening-guide::after{display:none!important;content:none!important}
.inventory-opening-guide>svg{display:none!important}

/* 审批详情操作区始终保留在抽屉底部，审批权限和按钮不会被长明细挤出视口。 */
.detail-form-modal .drawer-actions{position:relative;z-index:20;flex:0 0 auto;min-height:62px;overflow-x:auto;overflow-y:hidden;background:#fff;box-shadow:0 -8px 18px rgba(31,55,43,.08)}
.detail-form-modal .drawer-actions button{min-height:38px;flex:0 0 auto}

@media (max-width:960px){
  .office-recipient-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-recipient-toolbar{grid-template-columns:1fr auto}.office-recipient-toolbar>[data-office-recipient-count]{grid-column:1/-1}
  .inventory-opening-file-toolbar{grid-template-columns:1fr}.inventory-opening-file-actions{justify-content:flex-start}.inventory-opening-file-summary .inventory-opening-import-status{width:100%;margin-left:0}.inventory-opening-batch-actions{align-items:stretch;flex-direction:column}.inventory-opening-batch-actions>span{margin:0}.inventory-opening-batch-actions button{width:100%}
  .inventory-opening-form .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inventory-opening-ledger{min-height:420px}
  .office-supply-entry-form.system-business-unified-form{height:calc(100dvh - 86px - var(--office-supply-action-clearance))!important;max-height:none}
}
@media (max-width:640px){
  .office-recipient-groups{grid-template-columns:1fr}
  .office-recipient-toolbar{grid-template-columns:1fr}.office-recipient-toolbar>[data-office-recipient-count]{grid-column:auto}.office-recipient-select-actions{flex-wrap:wrap}
  .inventory-opening-modal{width:96vw;height:94dvh}
  .inventory-opening-form .form-grid-4{grid-template-columns:1fr}
  .inventory-opening-ledger>header{align-items:flex-start;flex-direction:column}
  .inventory-opening-ledger>header input{width:min(72vw,300px)}
}
@media print{
  body.printing-inventory-opening>*{display:none!important}
  body.printing-inventory-opening .modal-backdrop{display:block!important;position:static!important;background:#fff!important}
  body.printing-inventory-opening .inventory-opening-modal{display:block!important;position:static!important;width:100%!important;height:auto!important;max-width:none!important;box-shadow:none!important;border:0!important}
  body.printing-inventory-opening .modal-header button,
  body.printing-inventory-opening .inventory-opening-batch-panel,
  body.printing-inventory-opening .inventory-opening-form,
  body.printing-inventory-opening .inventory-opening-ledger>header>div:last-child,
  body.printing-inventory-opening .inventory-opening-ledger td:last-child,
  body.printing-inventory-opening .inventory-opening-ledger th:last-child{display:none!important}
  body.printing-inventory-opening .inventory-opening-layout{display:block!important;padding:0!important;overflow:visible!important}
  body.printing-inventory-opening .inventory-opening-ledger{border:0!important;overflow:visible!important}
  body.printing-inventory-opening .office-table-scroll{overflow:visible!important}
}
/* 库存批次二维码：仓库扫码收发与共享来源单据 */
.inventory-scan-hub{width:min(1180px,calc(100vw - 34px));max-height:min(880px,calc(100vh - 28px));overflow:hidden;display:flex;flex-direction:column;background:#f8f6f0}
.inventory-scan-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 18px 10px;background:#eee9df;border-bottom:1px solid #d9d2c5}
.inventory-scan-tabs button{min-height:46px;border:1px solid #d1c8b8;border-radius:12px;background:#fff;color:#34443d;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px #5c493512}
.inventory-scan-tabs button.active{background:#225d4b;color:#fff;border-color:#225d4b;box-shadow:0 8px 20px #225d4b35;transform:translateY(-1px)}
.inventory-scan-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:14px;padding:14px 18px;min-height:0;flex:1}
.inventory-scan-entry-panel,.inventory-lot-ledger{min-width:0;border:1px solid #ddd5c8;border-radius:15px;background:#fff;box-shadow:0 8px 24px #54472e12;overflow:hidden}
.inventory-scan-entry-panel{padding:15px;overflow:auto}
.inventory-scan-scope-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 18px;border-bottom:1px solid #ddd7ca;background:#f8f5ee}.inventory-scan-scope-strip span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #d3dbd5;border-radius:999px;background:#fff;color:#315e50;font-size:11px;font-weight:750;box-shadow:0 2px 7px #4d625916}.inventory-scan-scope-strip span:nth-child(3){border-color:#d9c993;color:#72570d;background:#fffaf0}.inventory-scan-scope-strip span:nth-child(4){border-color:#c9d5e2;color:#305a79;background:#f7fbff}.inventory-scan-scope-strip small{margin-left:auto;color:#6f756f;font-size:10px}
.inventory-prelabel-panel{margin-bottom:13px;border:1px solid #c9d8cf;border-radius:13px;background:#fbfdfb;overflow:hidden}.inventory-prelabel-panel>header{padding:11px 12px;border-bottom:1px solid #d8e3dd;background:linear-gradient(90deg,#e9f4ee,#f7f3e9)}.inventory-prelabel-panel>header>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#225d4b}.inventory-prelabel-panel>header strong{display:flex;align-items:center;gap:6px}.inventory-prelabel-panel>header small{margin-left:auto;color:#66736c}.inventory-prelabel-source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:11px 12px}.inventory-prelabel-source select{min-width:0;height:40px}.inventory-prelabel-empty{padding:4px 12px 12px;color:#7a7e78;font-size:11px}.inventory-prelabel-lines{display:grid;gap:7px;padding:0 12px 12px}.inventory-prelabel-lines article{display:grid;grid-template-columns:minmax(0,1fr) 145px 142px;gap:9px;align-items:end;padding:10px;border:1px solid #dde4df;border-radius:10px;background:#fff}.inventory-prelabel-lines article>div{display:flex;min-width:0;flex-direction:column}.inventory-prelabel-lines article>div strong{color:#203e34}.inventory-prelabel-lines article>div span,.inventory-prelabel-lines article>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6e756f;font-size:10px}.inventory-prelabel-lines label{display:grid;gap:4px}.inventory-prelabel-lines label>span{font-size:10px;font-weight:750;color:#52635b}.inventory-prelabel-lines input{height:39px}.inventory-prelabel-lines button{min-height:39px}.inventory-prelabel-arrival{padding:11px;border:1px solid #dfc27d;border-radius:10px;background:#fff8e8;display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center}.inventory-prelabel-arrival strong{color:#74500d}.inventory-prelabel-arrival small{color:#806f4d}.inventory-prelabel-arrival button{grid-column:2;grid-row:1/3}
.inventory-prelabel-pending-action{display:flex;align-items:center;gap:10px;padding-top:0}.inventory-prelabel-pending-action small{color:#6f746f;font-size:11px}.inventory-prelabel-generate-placeholder{min-height:39px;padding:0 15px;border:1px solid #c9ccc9;border-radius:9px;background:#e4e6e4;color:#8a8f8b;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:not-allowed;box-shadow:none}
.inventory-prelabel-lines article{grid-template-columns:minmax(220px,1fr) 120px 145px;align-items:start}.inventory-prelabel-material{grid-row:span 2}.inventory-prelabel-code-fields{grid-column:2/-1;display:grid!important;grid-template-columns:minmax(210px,1fr) 130px 132px;gap:8px}.inventory-prelabel-code-fields label{min-width:0}.inventory-prelabel-lines article>button{grid-column:3;justify-self:stretch}
.inventory-scanner-input{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px;border-radius:13px;background:linear-gradient(135deg,#e8f3ee,#f5f1e8);border:1px solid #bfd4ca}
.inventory-scanner-input>div{grid-column:1/-1;display:flex;align-items:center;gap:10px;color:#225d4b}.inventory-scanner-input>div span{display:flex;flex-direction:column}.inventory-scanner-input small{font-weight:400;color:#65746d}
.inventory-scanner-input input{height:44px;border:2px solid #7ca595;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;letter-spacing:.02em}
.inventory-lot-card{margin-top:14px;padding:15px;border:1px solid #ded7ca;border-radius:14px;background:#fffdf8}.inventory-lot-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.inventory-lot-card-head>span{font:700 13px ui-monospace,SFMono-Regular,Consolas,monospace;color:#316855}.inventory-lot-card>strong{display:block;margin-top:8px;font-size:20px;color:#23352e}.inventory-lot-card>p{margin:5px 0 12px;color:#6f756f}.inventory-lot-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.inventory-lot-card dl div{padding:9px 10px;border-radius:10px;background:#f5f3ed}.inventory-lot-card dt{font-size:12px;color:#777}.inventory-lot-card dd{margin:3px 0 0;font-weight:750;color:#2d4339}
.inventory-scan-match{display:flex;align-items:flex-start;gap:6px;margin-top:9px;padding:8px 10px;border-radius:9px;background:#eaf5ef;color:#27634f;font-size:11px}.inventory-code-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.inventory-code-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 7px;border:1px solid #bcd1c7;border-radius:8px;background:#f5faf7;color:#315d4e;font:11px ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.inventory-code-chip b{font:700 10px system-ui,sans-serif;color:#245846}.inventory-code-chip button{width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#e4eee9;color:#5d746a;display:grid;place-items:center}.inventory-code-empty{color:#8a8173;font-size:11px}.inventory-code-binding-panel{padding:11px;border:1px solid #b8d3c6;border-radius:11px;background:linear-gradient(135deg,#eef7f2,#fffaf0)}.inventory-code-binding-panel header{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px;color:#225d4b}.inventory-code-binding-panel header strong{display:flex;align-items:center;gap:5px}.inventory-code-binding-panel header small{color:#64766e}.inventory-code-binding-panel>div{display:grid;grid-template-columns:minmax(190px,1.4fr) 130px 130px minmax(145px,1fr) auto;gap:7px;align-items:end}.inventory-code-binding-panel label{display:grid;gap:4px}.inventory-code-binding-panel label span{font-size:10px;font-weight:750;color:#52635b}.inventory-code-binding-panel input,.inventory-code-binding-panel select{min-width:0;height:39px}.inventory-code-binding-panel button{white-space:nowrap}
.inventory-scan-operation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.inventory-scan-operation label{min-width:0}.inventory-scan-operation .span-2{grid-column:span 2}.inventory-scan-operation button{min-height:43px}
.inventory-lot-ledger{display:flex;flex-direction:column}.inventory-lot-ledger>header{padding:14px;border-bottom:1px solid #e3ddd2;background:#fbfaf7}.inventory-lot-ledger>header>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.inventory-lot-ledger>header small{color:#7a776f}.inventory-lot-ledger>header input{margin-top:9px;width:100%;height:39px}.inventory-lot-list{padding:9px;overflow:auto;display:grid;gap:7px}.inventory-lot-list-row{width:100%;text-align:left;border:1px solid #e2ddd3;border-radius:11px;background:#fff;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;color:#303d37}.inventory-lot-list-row>span{grid-row:1/3;font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace;color:#4d7a68}.inventory-lot-list-row>strong{font-size:14px}.inventory-lot-list-row>em,.inventory-lot-list-row>small{grid-column:2;font-style:normal;color:#76736d}.inventory-lot-list-row.selected{border-color:#3f8069;background:#edf6f1;box-shadow:0 0 0 2px #3f806923}.inventory-scan-empty{padding:28px 15px;text-align:center;color:#7e7b73}.inventory-scan-footnote{margin:0 18px 14px;padding:9px 12px;border-radius:10px;background:#eee9df;color:#536159;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.inventory-scan-footnote>span{display:flex;align-items:center;gap:7px;min-width:0}.inventory-scan-footnote .outline-button{min-height:32px;padding:6px 10px;white-space:nowrap;text-decoration:none}
.stock-scan-entry-section{background:#f0f7f3!important;border-color:#c9ddd3!important}.stock-inline-scanner{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:9px}.stock-inline-scanner input{border:2px solid #79a48f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.stock-inbound-qr-shortcut{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(100deg,#edf6f1,#fbf8f0)!important;border-color:#bfd7cb!important}.stock-inbound-qr-shortcut>div{display:flex;min-width:0;flex-direction:column;gap:3px}.stock-inbound-qr-shortcut strong{display:flex;align-items:center;gap:7px;color:#205f4b}.stock-inbound-qr-shortcut small{color:#66736c}.stock-inbound-qr-shortcut>button{flex:0 0 auto;min-height:40px;white-space:nowrap}
.inventory-opening-qr-ref{display:flex!important;align-items:center;gap:4px;color:#2b725b!important;font-weight:700}.inventory-opening-row-actions{display:flex;align-items:stretch;gap:5px;flex-direction:column}.inventory-opening-row-actions .table-action-button{white-space:nowrap}.inventory-opening-row-actions .table-action-button.qr{border-color:#9bc7b4;background:#edf7f2;color:#1f634d}
.stock-scan-cart-list,.stock-shared-lines{display:grid;gap:7px}.stock-scan-cart-row{display:grid;grid-template-columns:30px minmax(220px,1fr) 160px 120px 38px;gap:9px;align-items:center;padding:9px;border:1px solid #d8ddd9;border-radius:11px;background:#fff}.stock-scan-cart-row>span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#225d4b;color:#fff;font-weight:700}.stock-scan-cart-row>div{display:flex;flex-direction:column}.stock-scan-cart-row small{color:#737a75}.stock-scan-cart-row label span{font-size:11px}.stock-scan-cart-row em{font-style:normal;color:#56665e;font-size:12px}
.stock-shared-source-section{border-color:#cfc4aa!important;background:#fcfaf4!important}.stock-shared-line{display:grid;grid-template-columns:54px minmax(210px,1.4fr) minmax(110px,.7fr) minmax(130px,.75fr) minmax(130px,.75fr) minmax(130px,.8fr);gap:7px;align-items:center;padding:8px;border:1px solid #e2dacb;border-radius:10px;background:#fff}.stock-shared-line-head{background:#eee8dc;font-size:12px;font-weight:700;color:#5f5a50}.stock-shared-line>div{display:flex;flex-direction:column}.stock-shared-line small{color:#777268}.stock-shared-check{display:flex!important;align-items:center;gap:5px}.stock-shared-check input{width:18px;height:18px}.stock-shared-line input,.stock-shared-line select{min-width:0;height:39px}.stock-shared-line label:has(input[data-field="quantity"]){display:grid;grid-template-columns:1fr auto;align-items:center}.stock-shared-line label:has(input[data-field="quantity"]) small{padding-left:5px}
.inventory-label-modal{width:min(780px,calc(100vw - 30px));max-height:calc(100vh - 28px);overflow:auto}.inventory-label-settings{display:grid;grid-template-columns:180px 130px minmax(250px,1fr);gap:10px;align-items:end;margin:14px 18px 0;padding:12px;border:1px solid #d6d0c3;border-radius:12px;background:#f4f1e9}.inventory-label-settings label{display:grid;gap:5px}.inventory-label-settings label>span{font-size:11px;font-weight:750;color:#4e5d56}.inventory-label-settings select,.inventory-label-settings input{height:40px;min-width:0}.inventory-label-settings>div{min-height:40px;display:flex;flex-direction:column;justify-content:center}.inventory-label-settings>div strong{display:flex;align-items:center;gap:6px;color:#234f40}.inventory-label-settings>div small{margin-top:3px;color:#6f756f;font-size:10px}.inventory-label-print-sheet{--label-width:80mm;--label-height:50mm;display:grid;gap:12px;padding:14px 18px}.inventory-label-print-sheet.label-size-70x50{--label-width:70mm;--label-height:50mm}.inventory-label-print-sheet.label-size-60x40{--label-width:60mm;--label-height:40mm}.inventory-qr-label-print{width:100%;margin:0 auto;padding:18px;border:2px solid #1e4739;border-radius:14px;background:#fff;color:#16251f;box-sizing:border-box}.inventory-qr-label-print header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #1e4739;padding-bottom:8px}.inventory-qr-label-print header strong{font-size:17px}.inventory-qr-label-print header span{font-weight:800}.inventory-qr-label-body{display:grid;grid-template-columns:170px 1fr;gap:15px;padding:14px 0}.inventory-label-qr{display:grid;place-items:center}.inventory-label-qr canvas,.inventory-label-qr img{max-width:100%;height:auto}.inventory-qr-label-body dl{margin:0;display:grid;gap:3px}.inventory-qr-label-body dl div{display:grid;grid-template-columns:78px 1fr;border-bottom:1px solid #ddd;padding:3px 0}.inventory-qr-label-body dt{color:#66716c}.inventory-qr-label-body dd{margin:0;font-weight:700;overflow-wrap:anywhere}.inventory-qr-label-print footer{text-align:center;border-top:1px solid #bcc8c2;padding-top:7px;font-size:11px;color:#56635d}
@media (max-width:900px){.inventory-scan-hub{width:calc(100vw - 18px);max-height:calc(100vh - 18px)}.inventory-scan-layout{grid-template-columns:1fr;overflow:auto}.inventory-scan-entry-panel,.inventory-lot-ledger{overflow:visible}.inventory-lot-list{max-height:360px}.stock-shared-line{grid-template-columns:42px minmax(170px,1.4fr) repeat(4,minmax(115px,.8fr));overflow:auto}.stock-scan-cart-row{grid-template-columns:28px minmax(180px,1fr) 140px 100px 38px}.stock-inline-scanner{grid-template-columns:1fr 1fr}.stock-inline-scanner input{grid-column:1/-1}.inventory-code-binding-panel>div{grid-template-columns:1fr 1fr}.inventory-code-binding-panel>div>button{grid-column:1/-1}}
@media (max-width:640px){.inventory-scan-tabs{grid-template-columns:repeat(2,1fr)}.inventory-scan-layout{padding:10px}.inventory-scan-operation,.inventory-lot-card dl{grid-template-columns:1fr}.inventory-scan-operation .span-2{grid-column:auto}.inventory-prelabel-source,.inventory-prelabel-lines article,.inventory-prelabel-code-fields{grid-template-columns:1fr}.inventory-prelabel-material,.inventory-prelabel-code-fields,.inventory-prelabel-lines article>button{grid-column:1;grid-row:auto}.inventory-prelabel-panel>header small{margin-left:0}.inventory-prelabel-pending-action,.stock-inbound-qr-shortcut{align-items:stretch;flex-direction:column}.inventory-prelabel-generate-placeholder,.stock-inbound-qr-shortcut>button{width:100%}.inventory-prelabel-arrival{grid-template-columns:1fr}.inventory-prelabel-arrival button{grid-column:1;grid-row:auto}.stock-scan-cart-row{grid-template-columns:28px 1fr 38px}.stock-scan-cart-row label,.stock-scan-cart-row em{grid-column:2}.inventory-label-settings{grid-template-columns:1fr 1fr}.inventory-label-settings>div{grid-column:1/-1}.inventory-qr-label-body{grid-template-columns:135px 1fr}.inventory-qr-label-print{padding:12px}.inventory-code-binding-panel>div{grid-template-columns:1fr}.inventory-code-binding-panel>div>button{grid-column:1}}
@media print{body.printing-inventory-label>*:not(.app-shell){display:none!important}body.printing-inventory-label .app-shell>*:not(.workspace){display:none!important}body.printing-inventory-label .workspace>*{display:none!important}body.printing-inventory-label .modal-backdrop{display:block!important;position:static!important;background:#fff!important}body.printing-inventory-label .inventory-label-modal{display:block!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important}body.printing-inventory-label .inventory-label-modal>.modal-header,body.printing-inventory-label .inventory-label-modal>.form-actions,body.printing-inventory-label .inventory-label-settings{display:none!important}body.printing-inventory-label .inventory-label-print-sheet{display:block!important;padding:0!important}body.printing-inventory-label .inventory-qr-label-print{width:var(--label-width)!important;height:var(--label-height)!important;margin:0!important;padding:3mm!important;border:1px solid #000!important;border-radius:0!important;break-after:page;break-inside:avoid;overflow:hidden}body.printing-inventory-label .inventory-qr-label-print:last-child{break-after:auto}body.printing-inventory-label .inventory-qr-label-print header{padding-bottom:1.2mm}body.printing-inventory-label .inventory-qr-label-print header strong{font-size:3.1mm}body.printing-inventory-label .inventory-qr-label-print header span{font-size:2.8mm}body.printing-inventory-label .inventory-qr-label-body{grid-template-columns:22mm 1fr;gap:2.5mm;padding:2mm 0}body.printing-inventory-label .inventory-label-qr canvas,body.printing-inventory-label .inventory-label-qr img{width:21mm!important;height:21mm!important}body.printing-inventory-label .inventory-qr-label-body dl{gap:0}body.printing-inventory-label .inventory-qr-label-body dl div{grid-template-columns:16mm 1fr;padding:.45mm 0;font-size:2.35mm;line-height:1.15}body.printing-inventory-label .inventory-qr-label-print footer{padding-top:1mm;font-size:2mm}.printing-inventory-label .label-size-60x40 .inventory-qr-label-print{padding:2mm!important}.printing-inventory-label .label-size-60x40 .inventory-qr-label-body{grid-template-columns:18mm 1fr;gap:2mm;padding:1.4mm 0}.printing-inventory-label .label-size-60x40 .inventory-label-qr canvas,.printing-inventory-label .label-size-60x40 .inventory-label-qr img{width:17mm!important;height:17mm!important}.printing-inventory-label .label-size-60x40 .inventory-qr-label-body dl div{grid-template-columns:13mm 1fr;font-size:2.1mm}.printing-inventory-label .label-size-60x40 .inventory-qr-label-body dl div:nth-child(6),.printing-inventory-label .label-size-60x40 .inventory-qr-label-body dl div:nth-child(7){display:none}.printing-inventory-label .label-size-60x40 .inventory-qr-label-print footer{font-size:1.7mm}}
.stock-shared-line-locked input[readonly],.stock-shared-line-locked select:disabled{border-color:#c7d6cf;background:#edf4f0;color:#315e50;opacity:1}
@media (max-width:640px){.inventory-scan-scope-strip{padding:8px 10px}.inventory-scan-scope-strip small{flex:1 1 100%;margin-left:0}}

/* Release 328: 六类正式进出库单统一为“来源/扫码—核对—提交”三步办理。 */
.stock-document-simple-flow .stock-document-guide{
  margin:12px 14px 2px;
  padding:14px 16px;
  border:1px solid #b8cec3;
  border-radius:16px;
  background:linear-gradient(135deg,#f8fbf9 0%,#eef5f1 62%,#f8f2e7 100%);
  box-shadow:0 10px 24px rgba(39,72,61,.08);
}
.stock-document-guide-title{display:flex;align-items:center;gap:10px;min-width:0}
.stock-document-guide-title>span{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#2c7059,#1e5947);box-shadow:0 7px 16px rgba(31,91,71,.2)}
.stock-document-guide-title>div{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}
.stock-document-guide-title strong{font-size:16px;color:#213e34}
.stock-document-guide-title small{color:#63736c;line-height:1.45}
.stock-document-guide-title>em{flex:0 0 auto;padding:5px 9px;border:1px solid #c5d8cf;border-radius:999px;background:#fff;color:#326c57;font-size:11px;font-style:normal;font-weight:750}
.stock-document-guide ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 0;padding:0}
.stock-document-guide li{position:relative;display:flex;align-items:center;gap:9px;min-width:0;padding:10px 12px;border:1px solid #d7e1dc;border-radius:12px;background:rgba(255,255,255,.84)}
.stock-document-guide li:not(:last-child)::after{content:'›';position:absolute;right:-9px;z-index:2;color:#82968d;font-size:22px;font-weight:800}
.stock-document-guide li>b,.stock-document-step .form-section-title strong>i,.stock-document-submit-guide b{flex:0 0 27px;width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:#e3eee8;color:#285f4c;font-style:normal;font-size:12px}
.stock-document-guide li.active{border-color:#8fb9a7;background:#fff;box-shadow:0 5px 12px rgba(39,99,77,.09)}
.stock-document-guide li.active>b{color:#fff;background:#2c7059}
.stock-document-guide li>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.stock-document-guide li strong{font-size:12px;color:#2f423b}
.stock-document-guide li small{font-size:10px;color:#7a817d}
.stock-document-simple-flow .stock-document-step{border-color:#c9d7d0!important;background:#fff!important}
.stock-document-step .form-section-title strong{display:flex;align-items:center;gap:8px}
.stock-document-simple-flow .system-source-field{padding:10px 12px;border:1px solid #d5dfda;border-radius:11px;background:#f8faf9}
.stock-document-simple-flow .system-source-field>small{margin-top:6px;color:#62756c}
.stock-document-simple-flow .stock-inbound-qr-shortcut{margin-top:0}
.stock-document-simple-flow .stock-scan-entry-section{border-width:1px!important}
.stock-manual-entry-panel,.stock-document-notes{padding:0!important;overflow:hidden;background:#fbfaf6!important;border-style:dashed!important}
.stock-manual-entry-panel>summary,.stock-document-notes>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 14px;cursor:pointer;color:#46564f}
.stock-manual-entry-panel>summary::-webkit-details-marker,.stock-document-notes>summary::-webkit-details-marker{display:none}
.stock-manual-entry-panel>summary>span,.stock-document-notes>summary>span{display:grid;place-items:center;color:#326c57}
.stock-manual-entry-panel>summary strong,.stock-document-notes>summary strong{font-size:13px}
.stock-manual-entry-panel>summary small,.stock-document-notes>summary small{margin-left:auto;color:#7c817e;text-align:right}
.stock-manual-entry-panel>summary::after,.stock-document-notes>summary::after{content:'展开';margin-left:8px;padding:4px 7px;border-radius:7px;background:#e9efeb;color:#4b685c;font-size:10px;font-weight:750}
.stock-manual-entry-panel[open]>summary::after,.stock-document-notes[open]>summary::after{content:'收起'}
.stock-manual-entry-body,.stock-document-notes>div{padding:0 14px 14px;border-top:1px solid #e2e4df;background:#fff}
.stock-document-notes textarea{min-height:72px;max-height:110px}
.stock-document-submit-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 14px 0;padding:10px 13px;border:1px solid #d3ddd8;border-radius:12px;background:#f7faf8}
.stock-document-submit-guide>span{display:flex;align-items:center;gap:8px;color:#294c3f}
.stock-document-submit-guide small{color:#6c7772;text-align:right}
.stock-document-simple-flow>.form-actions{box-shadow:0 -8px 22px rgba(38,64,55,.08)}

@media (max-width:900px){
  .stock-document-guide ol{grid-template-columns:1fr}
  .stock-document-guide li:not(:last-child)::after{content:'⌄';right:14px;bottom:-15px}
  .stock-document-guide-title{align-items:flex-start;flex-wrap:wrap}
  .stock-document-guide-title>em{margin-left:48px}
  .stock-document-submit-guide{align-items:flex-start;flex-direction:column}
  .stock-document-submit-guide small{text-align:left}
}
@media (max-width:640px){
  .stock-document-simple-flow .stock-document-guide{margin:8px 8px 0;padding:12px}
  .stock-document-guide-title>em{margin-left:0}
  .stock-manual-entry-panel>summary,.stock-document-notes>summary{align-items:flex-start;flex-wrap:wrap}
  .stock-manual-entry-panel>summary small,.stock-document-notes>summary small{width:100%;margin-left:24px;text-align:left}
  .stock-manual-entry-panel>summary::after,.stock-document-notes>summary::after{margin-left:auto}
  .stock-document-submit-guide{margin-right:8px;margin-left:8px}
}

/* Release 329: 正式出入库单显示扫码自动回写的仓库实际收发全过程。 */
.stock-execution-link-preview{display:flex;align-items:center;gap:10px;margin:4px 14px;padding:11px 13px;border:1px solid #b9d1c5;border-radius:13px;background:linear-gradient(105deg,#edf6f1,#faf7ef);box-shadow:0 6px 16px rgba(43,80,65,.06)}
.stock-execution-link-preview>span{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#fff;background:#32745c}
.stock-execution-link-preview>div{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}
.stock-execution-link-preview strong{color:#254b3c;font-size:13px}.stock-execution-link-preview small{color:#66766f;line-height:1.45}
.stock-execution-link-preview>em{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#fff;color:#396b59;font-size:10px;font-style:normal;font-weight:750;white-space:nowrap}
.stock-warehouse-execution{margin:16px 0;border:1px solid #b9cec4;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 26px rgba(34,66,54,.08)}
.stock-warehouse-execution>header{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid #d9e3de;background:linear-gradient(105deg,#eef6f2,#faf7ef)}
.stock-warehouse-execution>header>span:first-child{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#fff;background:#2f7058}
.stock-warehouse-execution>header>div{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}.stock-warehouse-execution>header strong{color:#24493b;font-size:15px}.stock-warehouse-execution>header small{color:#6c7973}
.stock-warehouse-execution[data-execution-tone="done"]>header{background:linear-gradient(105deg,#e7f5ed,#f8fbf9)}
.stock-warehouse-execution[data-execution-tone="partial"]>header{background:linear-gradient(105deg,#fff7df,#fffaf0)}
.stock-execution-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px 14px;background:#fbfcfb}
.stock-execution-kpis article{min-width:0;padding:10px 12px;border:1px solid #dce4e0;border-radius:11px;background:#fff}.stock-execution-kpis span{display:block;color:#68766f;font-size:10px}.stock-execution-kpis strong{display:block;margin-top:3px;color:#284c3e;font-size:18px}.stock-execution-kpis small{display:block;color:#7a837f;font-size:10px}.stock-execution-kpis .has-difference{border-color:#e2bd91;background:#fff9ef}.stock-execution-kpis .has-difference strong{color:#a4551d}
.stock-execution-table-wrap{max-width:100%;overflow:auto;padding:0 14px 12px}.stock-execution-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;border:1px solid #dce4e0;border-radius:11px;overflow:hidden}.stock-execution-table th{padding:8px 9px;background:#eef2ef;color:#4d6057;font-size:10px;text-align:left;white-space:nowrap}.stock-execution-table td{padding:9px;border-top:1px solid #e5e9e6;color:#34443d;font-size:11px;vertical-align:top}.stock-execution-table td>strong,.stock-execution-table td>small{display:block}.stock-execution-table td>small{margin-top:3px;color:#77817c;line-height:1.4}.stock-execution-table .stock-execution-difference{color:#a4551d;font-weight:750}
.stock-warehouse-execution>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid #e0e7e3;background:#f8faf9;color:#547066;font-size:10px}.stock-warehouse-execution>footer span{display:flex;align-items:center;gap:5px}.stock-warehouse-execution>footer small{color:#7c8580}
.formal-document-sheet>.stock-warehouse-execution{margin:16px 0;box-shadow:none}.formal-document-sheet>.stock-warehouse-execution.compact>header{padding:10px 12px}.formal-document-sheet>.stock-warehouse-execution.compact .stock-execution-kpis{padding:9px 11px}.formal-document-sheet>.stock-warehouse-execution.compact .stock-execution-table-wrap{padding:0 11px 10px}
@media(max-width:820px){.stock-execution-link-preview{align-items:flex-start;flex-wrap:wrap}.stock-execution-link-preview>em{margin-left:44px}.stock-execution-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-warehouse-execution>footer{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.stock-execution-link-preview{margin-right:8px;margin-left:8px}.stock-execution-link-preview>em{margin-left:0}.stock-execution-kpis{grid-template-columns:1fr 1fr;padding:9px}.stock-execution-table-wrap{padding-right:9px;padding-left:9px}}
@media print{.formal-print-sheet .stock-warehouse-execution{break-inside:avoid;border-color:#777;background:#fff}.formal-print-sheet .stock-warehouse-execution>header,.formal-print-sheet .stock-execution-kpis,.formal-print-sheet .stock-warehouse-execution>footer{background:#fff!important}.formal-print-sheet .stock-execution-table{min-width:0;font-size:8px}.formal-print-sheet .stock-execution-table th,.formal-print-sheet .stock-execution-table td{padding:4px}.formal-print-sheet .stock-execution-table-wrap{overflow:visible}.formal-print-sheet .stock-execution-kpis strong{font-size:13px}}

/* 简易扫码收发：仓库人员只选择任务、扫描包装、填写数量并确认。 */
.inventory-simple-shell{width:min(1040px,calc(100vw - 34px));background:#f5f3ed}
.inventory-simple-home{padding:18px;overflow:auto}
.inventory-simple-hero{display:flex;align-items:center;gap:14px;padding:17px 19px;border:1px solid #c8d9cf;border-radius:16px;background:linear-gradient(120deg,#eaf4ee,#fffaf0);box-shadow:0 9px 24px rgba(47,75,61,.08)}
.inventory-simple-hero>span{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:15px;background:#236b54;color:#fff;box-shadow:0 8px 18px rgba(35,107,84,.22)}
.inventory-simple-hero small{color:#557064;font-size:11px;font-weight:750;letter-spacing:.08em}
.inventory-simple-hero h3{margin:2px 0 3px;color:#193d31;font-size:23px}
.inventory-simple-hero p{margin:0;color:#68756f;font-size:12px}
.inventory-entry-choice{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:12px}
.inventory-entry-choice>article{min-width:0;padding:13px 15px;border:1px solid #d8d4ca;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(57,50,39,.06)}
.inventory-entry-choice header{display:flex;flex-direction:column;gap:3px}.inventory-entry-choice header span{color:#7b6750;font-size:11px;font-weight:800;letter-spacing:.04em}.inventory-entry-choice header strong{color:#263d34;font-size:15px;line-height:1.4}
.inventory-entry-choice p{margin:7px 0 10px;color:#68736d;font-size:12px;line-height:1.55}.inventory-entry-choice .formal-document-choice{border-left:4px solid #9a7149;background:linear-gradient(105deg,#fffaf3,#fff)}.inventory-entry-choice .warehouse-scan-choice{border-left:4px solid #2d7a60;background:linear-gradient(105deg,#eef7f2,#fff)}
.inventory-formal-links{display:flex;flex-wrap:wrap;gap:6px}.inventory-formal-links button{min-height:30px;padding:5px 9px;border:1px solid #d7c5ae;border-radius:7px;background:#fff;color:#695037;font-size:11px;font-weight:750;cursor:pointer}.inventory-formal-links button:hover,.inventory-formal-links button:focus-visible{border-color:#9a7149;background:#fff7ec}
.inventory-choice-result{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;padding:9px 10px;border:1px solid #c9ded4;border-radius:9px;background:rgba(255,255,255,.75);font-size:11px}.inventory-choice-result b{grid-row:1/3;align-self:center;color:#25634e}.inventory-choice-result span{color:#52675e}
.inventory-unified-workflow{display:grid;gap:12px;margin-top:12px}.inventory-unified-section{min-width:0;padding:13px;border:1px solid #d8d3c8;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(58,51,39,.065)}
.inventory-workflow-heading{display:flex;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px solid #e3dfd6}.inventory-workflow-heading>b{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:#796044;color:#fff;font-size:13px}.inventory-warehouse-section .inventory-workflow-heading>b{background:#286f58}.inventory-workflow-heading>div{display:flex;min-width:0;flex:1;flex-direction:column}.inventory-workflow-heading strong{color:#293d35;font-size:16px}.inventory-workflow-heading small{margin-top:2px;color:#707a74;font-size:11px}.inventory-workflow-heading em{padding:5px 8px;border:1px solid #d9d2c5;border-radius:7px;background:#faf7f1;color:#74624e;font-size:10px;font-style:normal;font-weight:750}
.inventory-formal-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}.inventory-formal-document-grid>article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;padding:11px;border:1px solid #ded8cd;border-radius:11px;background:linear-gradient(115deg,#fffaf3,#fff)}.inventory-formal-document-grid>article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#efe6d8;color:#7a5b38}.inventory-formal-document-grid>article>div{display:flex;min-width:0;flex-direction:column}.inventory-formal-document-grid>article strong{color:#3e392f;font-size:13px}.inventory-formal-document-grid>article small{margin-top:2px;color:#7b776f;font-size:10px;line-height:1.35}.inventory-formal-document-grid nav{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:6px}.inventory-formal-document-grid nav button{min-height:34px;padding:6px 8px;border:1px solid #ceb999;border-radius:8px;background:#fff;color:#654c30;font-size:11px;font-weight:800;cursor:pointer}.inventory-formal-document-grid nav button:hover,.inventory-formal-document-grid nav button:focus-visible{border-color:#8c673e;background:#fff7e9;box-shadow:0 4px 10px rgba(105,76,43,.1)}
.inventory-workflow-decision{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid #cbded5;border-radius:9px;background:#f0f7f3;color:#52665d;font-size:10px}.inventory-workflow-decision span{padding-right:8px;border-right:1px solid #cbded5}.inventory-workflow-decision strong{margin-left:auto;color:#22634d}.inventory-warehouse-section>.inventory-simple-task-grid{margin-top:10px}.inventory-warehouse-section>.inventory-simple-rule{margin-top:10px}
.inventory-simple-task-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.inventory-simple-task-grid>button{position:relative;display:flex;min-width:0;min-height:184px;flex-direction:column;align-items:flex-start;padding:16px;border:1px solid #d9d4c9;border-radius:15px;background:#fff;color:#293a34;text-align:left;box-shadow:0 8px 22px rgba(58,51,39,.08);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;overflow:hidden}
.inventory-simple-task-grid>button::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--task-color)}
.inventory-simple-task-grid>button:hover,.inventory-simple-task-grid>button:focus-visible{transform:translateY(-3px);border-color:var(--task-color);box-shadow:0 14px 30px rgba(40,75,60,.16)}
.inventory-simple-task-grid>button>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#edf3ef;color:var(--task-color)}
.inventory-simple-task-grid strong{margin-top:12px;color:#22362e;font-size:18px}
.inventory-simple-task-grid em{margin-top:2px;color:#5f6c66;font-size:12px;font-style:normal}
.inventory-simple-task-grid small{margin-top:11px;color:#7b817d;line-height:1.5}
.inventory-simple-task-grid b{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:12px;color:var(--task-color);font-size:12px}
.inventory-simple-rule{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px;padding:12px;border:1px solid #ddd7ca;border-radius:13px;background:#fff;color:#506159;font-size:12px}
.inventory-simple-rule span{display:flex;align-items:center;gap:7px;font-weight:700}.inventory-simple-rule b,.inventory-simple-toolbar b{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#286f58;color:#fff;font-size:11px}.inventory-simple-rule i,.inventory-simple-toolbar i{display:grid;color:#96a098}
.inventory-simple-help{margin-top:10px;padding:0 12px;border:1px solid #dfd7c7;border-radius:11px;background:#fbfaf6;color:#59645e}.inventory-simple-help summary{display:flex;align-items:center;gap:6px;padding:10px 0;cursor:pointer;font-weight:700}.inventory-simple-help p{margin:0;padding:0 0 11px;font-size:12px;line-height:1.65}
.inventory-simple-toolbar{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid #dcd6ca;background:#eeeae1;color:#4e5d56;font-size:12px;overflow-x:auto}
.inventory-simple-toolbar>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid #cec7ba;border-radius:9px;background:#fff;color:#405047;white-space:nowrap;font-weight:700}.inventory-simple-toolbar>button.text-button{margin-right:auto;border-color:transparent;background:transparent}.inventory-simple-toolbar>button.active{border-color:#2c735c;background:#2c735c;color:#fff}.inventory-simple-toolbar>span{display:flex;align-items:center;gap:6px;white-space:nowrap}
.inventory-quick-opening{margin:15px 18px 18px;border:1px solid #d5cec1;border-radius:16px;background:#fff;box-shadow:0 9px 26px rgba(66,57,42,.08);overflow:auto}
.inventory-quick-opening>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border-bottom:1px solid #dbe4de;background:linear-gradient(100deg,#edf6f1,#fbf7ef)}.inventory-quick-opening>header>div{display:flex;flex-direction:column}.inventory-quick-opening>header small{color:#687970;font-size:11px}.inventory-quick-opening>header strong{color:#1f4f3e;font-size:17px}.inventory-quick-opening>header>span{display:flex;align-items:center;gap:6px;color:#517064;font-size:11px}
.inventory-quick-opening form{padding:15px;background:#f8f7f3}
.inventory-quick-section{margin-bottom:11px;border:1px solid #ded8cc;border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(65,57,43,.045);overflow:hidden}.inventory-quick-section>header{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid #e7e2d9;background:linear-gradient(100deg,#f2f6f2,#fbfaf6)}.inventory-quick-section>header>b,.inventory-quick-scan>b{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#286f58;color:#fff;font-size:12px;box-shadow:0 5px 12px rgba(40,111,88,.18)}.inventory-quick-section>header>div{display:flex;flex-direction:column}.inventory-quick-section>header strong{color:#28483d;font-size:13px}.inventory-quick-section>header small{color:#768078;font-size:10px}
.inventory-quick-core{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:12px}.inventory-quick-item-fields .wide-field{grid-column:span 2}.inventory-quick-stock-fields{grid-template-columns:repeat(5,minmax(0,1fr))}.inventory-quick-core label,.inventory-quick-advanced label{display:grid;gap:5px;min-width:0}.inventory-quick-core label>span,.inventory-quick-advanced label>span{font-size:11px;font-weight:750;color:#526159}.inventory-quick-core input,.inventory-quick-core select,.inventory-quick-advanced input,.inventory-quick-advanced select{width:100%;min-width:0;height:41px;border-color:#cbd4ce;background:#fff}.inventory-quick-core input:focus,.inventory-quick-core select:focus{border-color:#3d8169;box-shadow:0 0 0 3px rgba(61,129,105,.12)}
.inventory-quick-scan{display:grid;grid-template-columns:auto minmax(250px,.9fr) minmax(280px,1.1fr);gap:12px;align-items:center;margin-top:12px;padding:13px;border:1px solid #accdbe;border-radius:13px;background:linear-gradient(110deg,#edf7f2,#f8fbf7);box-shadow:0 6px 18px rgba(37,96,75,.07)}.inventory-quick-scan>div{display:flex;align-items:center;gap:10px;color:#24644f}.inventory-quick-scan>div>span{display:flex;flex-direction:column}.inventory-quick-scan small{margin-top:2px;color:#64766d;font-size:10px;line-height:1.45}.inventory-quick-scan>input{height:46px;border:2px solid #6d9f89;background:#fff;font:14px ui-monospace,SFMono-Regular,Consolas,monospace;box-shadow:inset 0 1px 3px rgba(38,68,56,.06)}
.inventory-quick-advanced{margin-top:11px;border:1px solid #e1ddd4;border-radius:11px;background:#faf9f5}.inventory-quick-advanced summary{padding:10px 12px;display:flex;align-items:center;gap:6px;color:#5c6761;font-size:11px;font-weight:700;cursor:pointer}.inventory-quick-advanced>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:0 12px 12px}
.inventory-quick-actions{position:sticky;bottom:-15px;display:flex;justify-content:flex-end;gap:9px;margin:14px -15px -15px;padding:11px 15px;border-top:1px solid #d9d5cc;background:rgba(250,249,245,.97);box-shadow:0 -8px 20px rgba(60,52,40,.06);z-index:2}.inventory-quick-actions button{min-height:40px}
.inventory-quick-result{margin:0 18px 18px;padding:13px;border:1px solid #b9d4c6;border-radius:14px;background:#f5faf7}.inventory-quick-result>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.inventory-quick-result>header strong{display:flex;align-items:center;gap:6px;color:#27634f}.inventory-quick-result>header small{color:#68766f}.inventory-quick-result>.outline-button{margin-top:10px}
.inventory-quick-result-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:11px}.inventory-quick-result-actions>button{min-height:40px}.inventory-quick-result-actions>.primary-button{box-shadow:0 7px 17px rgba(40,111,88,.18)}
.inventory-prelabel-simple>header>div{display:grid!important;grid-template-columns:auto 1fr;column-gap:8px}.inventory-prelabel-simple>header small{grid-row:1/3;margin:0!important;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#2d745d;color:#fff}.inventory-prelabel-simple>header span{color:#68766f;font-size:11px}.inventory-prelabel-simple .inventory-prelabel-source{padding:13px}.inventory-prelabel-simple .inventory-prelabel-lines article{grid-template-columns:minmax(210px,1.35fr) minmax(130px,.7fr) minmax(165px,.85fr) minmax(210px,1fr);gap:9px;align-items:end}.inventory-prelabel-simple .inventory-prelabel-material{grid-row:auto}.inventory-prelabel-simple .inventory-simple-confirm{grid-column:4;min-height:41px}.inventory-prelabel-simple .inventory-simple-code-input{grid-column:4;grid-row:1}.inventory-prelabel-simple .inventory-simple-confirm{grid-row:2}.inventory-prelabel-simple .inventory-simple-quantity{grid-row:1/3;align-self:center}.inventory-prelabel-simple .inventory-simple-code-mode{grid-row:1/3;align-self:center}.inventory-prelabel-simple .inventory-prelabel-material{grid-row:1/3;align-self:center}.inventory-prelabel-pending-action{padding:14px!important}.inventory-prelabel-pending-action>span{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#edf4ef;color:#2a7158}.inventory-prelabel-pending-action>strong{color:#344b42}.inventory-prelabel-pending-action>small{margin-left:auto}

@media (max-width:980px){.inventory-simple-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-simple-task-grid>button{min-height:152px}.inventory-quick-core,.inventory-quick-stock-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-quick-item-fields .wide-field{grid-column:span 1}.inventory-quick-scan{grid-template-columns:auto minmax(0,1fr)}.inventory-quick-scan>input{grid-column:1/-1}.inventory-prelabel-simple .inventory-prelabel-lines article{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-prelabel-simple .inventory-prelabel-material,.inventory-prelabel-simple .inventory-simple-quantity,.inventory-prelabel-simple .inventory-simple-code-mode,.inventory-prelabel-simple .inventory-simple-code-input,.inventory-prelabel-simple .inventory-simple-confirm{grid-column:auto;grid-row:auto;align-self:auto}.inventory-prelabel-simple .inventory-simple-confirm{grid-column:2}}
@media (max-width:700px){.inventory-simple-shell{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.inventory-simple-home{padding:11px}.inventory-simple-hero{align-items:flex-start;padding:13px}.inventory-simple-hero>span{flex-basis:42px;width:42px;height:42px}.inventory-simple-hero h3{font-size:19px}.inventory-simple-task-grid{grid-template-columns:1fr;gap:9px}.inventory-simple-task-grid>button{min-height:132px;padding:13px}.inventory-simple-task-grid small{margin-top:6px}.inventory-simple-rule{gap:7px;justify-content:flex-start;overflow-x:auto}.inventory-simple-rule span{white-space:nowrap}.inventory-simple-toolbar{padding:8px 10px}.inventory-simple-toolbar>span,.inventory-simple-toolbar>i{display:none}.inventory-quick-opening{margin:10px}.inventory-quick-opening>header{align-items:flex-start;flex-direction:column}.inventory-quick-opening form{padding:11px}.inventory-quick-core,.inventory-quick-stock-fields{grid-template-columns:1fr}.inventory-quick-scan{grid-template-columns:auto minmax(0,1fr)}.inventory-quick-scan>input{grid-column:1/-1}.inventory-quick-advanced>div{grid-template-columns:1fr}.inventory-quick-actions{bottom:-11px;margin:12px -11px -11px;padding:9px 11px}.inventory-quick-actions button{flex:1;white-space:normal}.inventory-quick-result{margin:0 10px 10px}.inventory-quick-result>header{align-items:flex-start;flex-direction:column}.inventory-prelabel-simple .inventory-prelabel-lines article{grid-template-columns:1fr}.inventory-prelabel-simple .inventory-simple-confirm{grid-column:1}.inventory-prelabel-pending-action{align-items:flex-start!important}.inventory-prelabel-pending-action>small{margin-left:0}.inventory-scan-footnote{margin:0 10px 10px;align-items:flex-start;flex-direction:column}.inventory-scan-footnote .outline-button{width:100%;justify-content:center}}

/* release-307：库存扫码收发工作台防挤压、固定操作区和二维码标签入口。 */
.inventory-scan-hub{height:min(850px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);border:1px solid #d7d0c4;border-radius:19px;background:linear-gradient(145deg,#f7f5ef,#eef4ef);box-shadow:0 26px 70px rgba(28,47,38,.24)}
.inventory-scan-hub>.modal-header{flex:0 0 auto;padding:15px 19px;border-bottom:1px solid #d5ddd7;background:rgba(253,253,250,.96)}
.inventory-scan-hub>.inventory-simple-toolbar,.inventory-scan-hub>.inventory-scan-scope-strip,.inventory-scan-hub>.inventory-scan-footnote{flex:0 0 auto}
.inventory-simple-home{flex:1 1 auto;min-height:0;padding:16px 18px 12px}
.inventory-simple-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.inventory-simple-task-grid>button{display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:13px;min-height:126px;padding:15px 17px}
.inventory-simple-task-grid>button>span{grid-row:1/4;align-self:start;width:46px;height:46px}
.inventory-simple-task-grid>button>strong{grid-column:2;margin:0;font-size:18px}
.inventory-simple-task-grid>button>em{grid-column:2;margin-top:2px}
.inventory-simple-task-grid>button>small{grid-column:2;margin-top:7px;line-height:1.45}
.inventory-simple-task-grid>button>b{grid-column:3;grid-row:1/4;align-self:center;margin:0;padding:0 0 0 8px;white-space:nowrap}
.inventory-label-entry{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:11px;padding:13px 15px;border:1px solid #c2d6cd;border-radius:14px;background:linear-gradient(105deg,#e9f4ef,#fffaf0);box-shadow:0 8px 22px rgba(45,83,67,.08)}
.inventory-label-entry>span{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#315f72;color:#fff;box-shadow:0 7px 16px rgba(49,95,114,.22)}
.inventory-label-entry>div{display:flex;min-width:0;flex-direction:column}.inventory-label-entry strong{color:#25473c;font-size:15px}.inventory-label-entry small{margin-top:3px;color:#68766f}.inventory-label-entry button{min-height:40px;padding-inline:16px;white-space:nowrap}
.inventory-scan-duty-strip{display:flex;align-items:center;gap:10px;margin:10px 16px 0;padding:9px 12px;border:1px solid #c9d9d0;border-left:4px solid #2d7a60;border-radius:10px;background:#f0f7f3;color:#52665d;font-size:12px}.inventory-scan-duty-strip strong{flex:0 0 auto;color:#215d49}.inventory-scan-duty-strip span{line-height:1.45}
.inventory-approved-source-panel{display:grid;gap:8px;padding:11px 13px;border:1px solid #b9d4c5;border-left:5px solid #28785b;border-radius:12px;background:linear-gradient(135deg,#f7fbf8 0%,#edf6f1 100%);box-shadow:0 10px 24px rgba(38,91,70,.1)}
.inventory-approved-source-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.inventory-approved-source-panel>header>div{display:grid;gap:3px}.inventory-approved-source-panel>header small{color:#28785b;font-weight:800;letter-spacing:.06em}.inventory-approved-source-panel>header strong{font-size:17px;color:#173f31}.inventory-approved-source-panel>header span{font-size:12px;color:#63756d}.inventory-approved-source-panel>header>b{padding:7px 11px;border:1px solid #a8ccb9;border-radius:7px;background:#fff;color:#25684f;font-size:12px;white-space:nowrap}
.inventory-approved-source-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.inventory-approved-source-control select{min-width:0;height:42px;border-color:#9fc4b1;background:#fff;font-weight:700;color:#24483a}.inventory-approved-source-control button{min-width:132px}
.inventory-approved-source-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.inventory-approved-source-summary>div{display:grid;gap:3px;padding:9px 11px;border:1px solid #d2e3da;border-radius:8px;background:rgba(255,255,255,.86)}.inventory-approved-source-summary span{font-size:11px;color:#718078}.inventory-approved-source-summary strong{font-size:13px;color:#213f34;overflow-wrap:anywhere}
.inventory-approved-source-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:74px;overflow:auto;scrollbar-gutter:stable}.inventory-approved-source-lines>span{display:grid;gap:2px;padding:6px 9px;border:1px solid #d5e2dc;border-left:4px solid #c28a35;border-radius:7px;background:#fff}.inventory-approved-source-lines>span.done{border-left-color:#3f8a67;background:#f5faf7}.inventory-approved-source-lines b{font-size:12px;color:#263f35}.inventory-approved-source-lines small{font-size:11px;color:#6a7771}
.inventory-approved-source-empty{display:grid;gap:3px;padding:12px;border:1px dashed #b9ccc2;border-radius:8px;background:rgba(255,255,255,.66);text-align:center}.inventory-approved-source-empty strong{color:#3d5148}.inventory-approved-source-empty span{font-size:12px;color:#748078}.inventory-scanner-input.is-locked{opacity:.68;background:#f2f4f3}.inventory-scanner-input.is-locked input,.inventory-scanner-input.is-locked button{cursor:not-allowed}
.inventory-execution-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.inventory-execution-methods>.inventory-scanner-input,.inventory-manual-execution{min-width:0;align-content:start;border-radius:13px;box-shadow:0 8px 20px rgba(43,75,61,.07)}.inventory-manual-execution{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px;border:1px solid #d2c4aa;background:linear-gradient(135deg,#fffaf1,#f4eee2)}.inventory-manual-execution>header{grid-column:1/-1;display:flex;align-items:center;gap:10px;color:#765523}.inventory-manual-execution>header>span{display:grid;gap:2px}.inventory-manual-execution>header strong{font-size:14px}.inventory-manual-execution>header small{font-size:11px;font-weight:500;color:#81735c}.inventory-manual-execution>label{min-width:0;display:grid;gap:5px}.inventory-manual-execution>label>span{font-size:11px;font-weight:800;color:#665b4a}.inventory-manual-execution select{width:100%;min-width:0;height:44px;border-color:#c9b897;background:#fff;font-weight:700;color:#4d4538}.inventory-manual-execution>button{align-self:end;min-height:44px}.inventory-manual-execution>em,.inventory-execution-methods>.inventory-scanner-input>em{grid-column:1/-1;font-size:11px;font-style:normal;color:#776f62}.inventory-manual-execution.is-locked{opacity:.68;background:#f4f3f0}.inventory-execution-methods>.inventory-scanner-input{height:100%}.inventory-approved-source-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.inventory-approved-execution-note{display:grid;gap:3px;padding:9px 11px;border:1px solid #d1dfd8;border-radius:8px;background:#f7faf8}.inventory-approved-execution-note span,.inventory-approved-execution-note small{font-size:11px;color:#6c7973}.inventory-approved-execution-note strong{color:#245f49}
@media(max-width:900px){.inventory-approved-source-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-approved-source-lines{grid-template-columns:1fr}}
@media(max-width:900px){.inventory-execution-methods{grid-template-columns:1fr}}
@media(max-width:620px){.inventory-approved-source-control{grid-template-columns:1fr}.inventory-approved-source-control button{width:100%}.inventory-approved-source-panel>header{flex-direction:column}.inventory-approved-source-summary{grid-template-columns:1fr 1fr}.inventory-manual-execution{grid-template-columns:1fr}.inventory-manual-execution>button{width:100%}}

.stock-document-duty-note{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #d6d1c5;border-left:4px solid #9a7149;border-radius:12px;background:linear-gradient(105deg,#fffaf2,#f7fbf8)}.stock-document-duty-note>div{display:grid;gap:3px;min-width:0}.stock-document-duty-note span{color:#806447;font-size:11px;font-weight:800}.stock-document-duty-note strong{color:#30453c;font-size:15px}.stock-document-duty-note p{margin:0;color:#65716a;font-size:12px;line-height:1.5}.stock-document-duty-note>button{flex:0 0 auto;max-width:260px;white-space:normal;text-align:center}
.inventory-opening-workspace{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:4px;scrollbar-gutter:stable}
.inventory-opening-workspace .inventory-quick-opening{overflow:visible}
.inventory-opening-workspace .inventory-quick-actions{bottom:0;margin-bottom:0;border-radius:0 0 15px 15px;box-shadow:0 -10px 26px rgba(46,58,51,.12)}
.inventory-opening-workspace .inventory-quick-result{background:#fff;border-width:2px;box-shadow:0 10px 28px rgba(45,88,69,.09)}
.inventory-scan-layout{overflow:hidden}
.inventory-scan-entry-panel{display:block;min-height:0;overflow:auto;scrollbar-gutter:stable;padding-bottom:22px}
.inventory-lot-ledger{min-height:0}
.inventory-scan-operation{padding:12px;border:1px solid #c6d8cf;border-radius:13px;background:linear-gradient(120deg,#f0f7f3,#fffaf2);box-shadow:0 9px 24px rgba(46,78,64,.08)}
.inventory-scan-operation>button.primary-button,.inventory-prelabel-arrival>button.primary-button{position:sticky;bottom:0;z-index:4;box-shadow:0 8px 22px rgba(35,105,82,.22)}
.inventory-label-action-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #aecbc0;border-radius:12px;background:#fff}
.inventory-label-action-card>span{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#315f72;color:#fff}.inventory-label-action-card>div{display:flex;min-width:0;flex-direction:column}.inventory-label-action-card strong{color:#25473c}.inventory-label-action-card small{margin-top:3px;color:#6b756f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-label-action-card button{min-height:42px;white-space:nowrap}
.inventory-scan-footnote{margin-top:0;background:#e9ece7;border:1px solid #d2d9d3}
@media (max-width:900px){.inventory-scan-hub{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.inventory-scan-layout{overflow:auto}.inventory-scan-entry-panel,.inventory-lot-ledger{overflow:visible}.inventory-entry-choice{grid-template-columns:1fr}.inventory-formal-document-grid{grid-template-columns:1fr}.inventory-workflow-decision{align-items:flex-start;flex-direction:column}.inventory-workflow-decision span{padding:0;border:0}.inventory-workflow-decision strong{margin-left:0}.inventory-simple-task-grid{grid-template-columns:1fr}.inventory-label-entry{grid-template-columns:42px minmax(0,1fr)}.inventory-label-entry>button{grid-column:1/-1;width:100%}.inventory-label-action-card{grid-template-columns:42px minmax(0,1fr)}.inventory-label-action-card button{grid-column:1/-1;width:100%}.stock-document-duty-note{align-items:stretch;flex-direction:column}.stock-document-duty-note>button{max-width:none;width:100%}}
@media (max-width:640px){.inventory-scan-hub{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);border-radius:15px}.inventory-simple-home{padding:10px}.inventory-unified-section{padding:10px}.inventory-workflow-heading{align-items:flex-start;flex-wrap:wrap}.inventory-workflow-heading em{margin-left:44px}.inventory-formal-document-grid nav{grid-template-columns:1fr}.inventory-entry-choice>article{padding:11px}.inventory-choice-result{grid-template-columns:1fr}.inventory-choice-result b{grid-row:auto}.inventory-simple-task-grid>button{grid-template-columns:42px minmax(0,1fr);min-height:118px}.inventory-simple-task-grid>button>b{grid-column:2;grid-row:auto;justify-self:start;padding:7px 0 0}.inventory-label-entry{padding:11px}.inventory-opening-workspace{padding-bottom:0}.inventory-quick-actions{position:sticky;bottom:0;z-index:8;display:grid;grid-template-columns:1fr 1fr}.inventory-scan-duty-strip{align-items:flex-start;flex-direction:column;margin:8px 10px 0}.inventory-scan-operation{padding:9px}.inventory-scan-operation>button.primary-button{width:100%;min-height:44px}.inventory-scan-footnote{display:none}}

/* release-308：库存工作台统一在显示屏正中央，四周等距留白。 */
.inventory-scan-backdrop{display:grid;place-items:center;padding:clamp(8px,2.2vh,24px) clamp(8px,2.2vw,28px);overflow:hidden;background:rgba(16,29,24,.38);backdrop-filter:blur(3px)}
.inventory-scan-backdrop>.data-modal{--inventory-modal-shift-x:0px;position:relative;inset:auto;left:auto;right:auto;top:auto;transform:translateX(var(--inventory-modal-shift-x));margin:0 auto;max-width:calc(100vw - 32px);animation:inventory-centered-modal-in .18s ease-out}
.inventory-scan-backdrop>.inventory-scan-hub{width:min(1040px,calc(100vw - 40px));height:min(800px,calc(100dvh - 40px));max-height:calc(100dvh - 40px)}
.inventory-scan-backdrop>.inventory-opening-modal{width:min(1240px,calc(100vw - 40px));height:min(820px,calc(100dvh - 40px));max-height:calc(100dvh - 40px)}
.inventory-scan-backdrop>.inventory-label-modal{width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 40px);border-radius:17px;box-shadow:0 26px 68px rgba(26,44,36,.26)}
@keyframes inventory-centered-modal-in{from{opacity:0;transform:translateX(var(--inventory-modal-shift-x)) translateY(10px) scale(.988)}to{opacity:1;transform:translateX(var(--inventory-modal-shift-x))}}
@media (min-width:1500px){.inventory-scan-backdrop>.inventory-scan-home-modal{--inventory-modal-shift-x:min(96px,calc((100vw - 1280px)/2))}.inventory-scan-backdrop>.inventory-scan-business-modal{--inventory-modal-shift-x:0px}}
@media (max-width:1499px){.inventory-scan-backdrop>.inventory-scan-home-modal,.inventory-scan-backdrop>.inventory-scan-business-modal{--inventory-modal-shift-x:0px}}
@media (max-width:900px){.inventory-scan-backdrop{padding:8px}.inventory-scan-backdrop>.inventory-scan-hub,.inventory-scan-backdrop>.inventory-opening-modal{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.inventory-scan-backdrop>.inventory-label-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}}
@media (prefers-reduced-motion:reduce){.inventory-scan-backdrop>.data-modal{animation:none}}

/* release-312：库存扫码业务使用独立居中工作区，避免通用表单左侧栏规则造成200px横向裁切。 */
body .inventory-scan-backdrop{
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  padding:12px 16px!important;
  box-sizing:border-box;
  overflow:hidden;
  overscroll-behavior:contain;
}
body .inventory-scan-backdrop>.data-modal,
body .inventory-scan-backdrop>.data-modal.workspace-bound-form-modal{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  margin:0 auto!important;
  transform:none!important;
  justify-self:center!important;
  align-self:center!important;
  max-width:calc(100vw - 32px)!important;
  box-sizing:border-box;
}
body .inventory-scan-backdrop>.inventory-scan-hub{
  display:flex;
  width:min(980px,calc(100vw - 32px))!important;
  height:min(760px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  border-radius:18px;
}
body .inventory-scan-backdrop>.inventory-scan-business-modal{
  width:min(960px,calc(100vw - 32px))!important;
}
body .inventory-scan-backdrop>.inventory-opening-modal{
  display:flex!important;
  flex-direction:column;
  width:min(1180px,calc(100vw - 32px))!important;
  height:min(800px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
}
body .inventory-scan-backdrop>.inventory-label-modal{
  display:flex;
  flex-direction:column;
  width:min(720px,calc(100vw - 32px))!important;
  max-height:calc(100dvh - 24px)!important;
  overflow:hidden;
}
.inventory-scan-business-modal>.modal-header{padding:12px 16px}
.inventory-scan-business-modal>.inventory-simple-toolbar{padding:8px 14px;flex-wrap:wrap;overflow:visible}
.inventory-scan-business-modal .inventory-opening-workspace{padding:10px 12px 0}
.inventory-scan-business-modal .inventory-quick-opening{margin:0 0 12px;border-radius:14px;overflow:hidden}
.inventory-scan-business-modal .inventory-quick-opening form{padding:12px}
.inventory-scan-opening-modal .inventory-quick-item-fields{grid-template-columns:minmax(150px,.8fr) minmax(240px,1.5fr) minmax(180px,1fr)}
.inventory-scan-opening-modal .inventory-quick-item-fields .wide-field{grid-column:auto}
.inventory-scan-opening-modal .inventory-quick-stock-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.inventory-scan-opening-modal .inventory-quick-scan{grid-template-columns:auto minmax(0,1fr);margin-top:10px}
.inventory-scan-opening-modal .inventory-quick-actions{position:sticky;bottom:0;margin:12px -12px -12px;padding:10px 12px;background:rgba(251,250,247,.985);box-shadow:0 -10px 24px rgba(46,58,51,.12)}
.inventory-label-modal .inventory-label-print-sheet{min-height:0;overflow:auto;scrollbar-gutter:stable}
.inventory-label-modal>.form-actions{position:sticky;bottom:0;z-index:8;flex:0 0 auto;background:#fff;box-shadow:0 -8px 20px rgba(39,58,49,.1)}
@media (max-width:1399px){
  body .inventory-scan-backdrop>.inventory-scan-home-modal,
  body .inventory-scan-backdrop>.inventory-scan-business-modal{--inventory-modal-shift-x:0px}
  .inventory-scan-business-modal .inventory-scan-layout{grid-template-columns:1fr;overflow:auto;padding:10px 12px 12px}
  .inventory-scan-business-modal .inventory-scan-entry-panel{overflow:visible;padding:12px}
  .inventory-scan-business-modal .inventory-lot-ledger{max-height:250px;overflow:hidden}
  .inventory-scan-business-modal .inventory-lot-list{max-height:190px}
}
@media (max-width:820px){
  body .inventory-scan-backdrop{padding:7px!important}
  body .inventory-scan-backdrop>.inventory-scan-hub,
  body .inventory-scan-backdrop>.inventory-opening-modal,
  body .inventory-scan-backdrop>.inventory-label-modal{width:calc(100vw - 14px)!important;height:calc(100dvh - 14px)!important;max-width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important;border-radius:14px}
  .inventory-scan-opening-modal .inventory-quick-item-fields,
  .inventory-scan-opening-modal .inventory-quick-stock-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inventory-scan-opening-modal .inventory-quick-item-fields .wide-field{grid-column:span 1}
  .inventory-label-settings{grid-template-columns:1fr 1fr;margin:10px 12px 0}
  .inventory-label-settings>div{grid-column:1/-1}
}
@media (max-width:560px){
  .inventory-scan-opening-modal .inventory-quick-item-fields,
  .inventory-scan-opening-modal .inventory-quick-stock-fields{grid-template-columns:1fr}
  .inventory-scan-opening-modal .inventory-quick-scan{grid-template-columns:1fr}
  .inventory-scan-opening-modal .inventory-quick-actions{display:grid;grid-template-columns:1fr}
}
/* 合同文本编写、版本与逐页二维码打印 */
.contract-text-authoring{border:1px solid #c8d7d2;border-radius:14px;background:linear-gradient(145deg,#fbfdfb,#f1f6f3);box-shadow:0 10px 28px rgba(30,63,53,.08);overflow:hidden}
.contract-text-authoring-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid #d7e1dd;background:linear-gradient(90deg,#e9f3ed,#f8fbf9)}
.contract-text-authoring-head>div:first-child{display:grid;grid-template-columns:36px 1fr;column-gap:9px;align-items:center}.contract-text-authoring-head>div:first-child>span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#176f5b;color:#fff}.contract-text-authoring-head strong{font-size:15px;color:#183c32}.contract-text-authoring-head small{font-size:11px;color:#61756e}
.contract-text-version-badge{padding:6px 10px;border:1px solid #bdd1c8;border-radius:999px;background:#fff;color:#2d6254;font-size:11px;font-weight:750;white-space:nowrap}
.contract-text-party-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 14px 4px}.contract-text-party-row label{display:grid;gap:5px}.contract-text-party-row label>span{font-size:12px;font-weight:750;color:#314e45}.contract-text-party-row input{height:40px;border:1px solid #c4d5ce;border-radius:9px;background:#f3f7f5;color:#23483d;font-weight:750}.contract-text-party-row label:first-child input{border-color:#9fc5b5;background:#eaf5ef;color:#155f4b}.contract-text-party-row small{min-height:16px;color:#58756b;font-size:10px;line-height:1.45}
.contract-text-keyword-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px;padding:12px 14px 8px}.contract-text-keyword-row label,.contract-text-editor-field{display:grid;gap:5px}.contract-text-keyword-row label>span,.contract-text-editor-field>span{font-size:12px;font-weight:750;color:#314e45}.contract-text-keyword-row textarea{min-height:58px!important;resize:vertical}
.contract-ai-generate-button{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:8px;min-height:68px;padding:9px 12px;border:1px solid #b99742;border-radius:11px;background:linear-gradient(145deg,#fff9e8,#f4e2aa);color:#6b4d0a;cursor:pointer}.contract-ai-generate-button>svg{grid-row:1/3}.contract-ai-generate-button span{font-weight:800}.contract-ai-generate-button small{font-size:10px;color:#806a35}.contract-ai-generate-button:hover{filter:brightness(.98);transform:translateY(-1px)}.contract-ai-generate-button:disabled{opacity:.65;cursor:wait}
.contract-text-editor-field{padding:4px 14px 10px}.contract-text-editor-field textarea{min-height:340px!important;padding:18px!important;border-color:#bacdc5!important;background:#fff!important;font-family:"Noto Serif SC","Songti SC",SimSun,serif!important;font-size:14px!important;line-height:1.85!important;letter-spacing:.02em;resize:vertical}.contract-text-authoring.is-editing .contract-text-editor-field textarea{border-color:#1b8068!important;box-shadow:0 0 0 3px rgba(27,128,104,.12)}
.contract-text-authoring-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid #d7e1dd;background:#f7faf8}.contract-text-authoring-actions>span{margin-right:auto;color:#667970;font-size:11px}.contract-text-history{display:flex;gap:5px;align-items:center}.contract-text-history select{max-width:260px;min-width:190px}
.danger-outline-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 12px;border:1px solid #d7a4a0;border-radius:8px;background:#fff7f6;color:#a2332b;font-size:12px;font-weight:750;cursor:pointer}.danger-outline-button:hover{border-color:#c4473d;background:#fff0ee}.danger-outline-button:disabled{opacity:.45;cursor:not-allowed}
.contract-text-preview-overlay{position:fixed;inset:0;z-index:10080;padding:10px;background:rgba(12,25,22,.72);overflow:auto}.contract-text-preview-shell{width:min(1100px,100%);margin:0 auto;border-radius:14px;background:#e5e9e7;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}.contract-text-preview-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;background:#173f35;color:#fff}.contract-text-preview-toolbar>div{display:flex;align-items:center;gap:10px}.contract-text-preview-toolbar strong{font-size:15px}.contract-text-preview-toolbar span{font-size:11px;color:#c6ddd5}.contract-text-print-pages{display:grid;gap:18px;justify-content:center;padding:20px}.contract-text-print-page{box-sizing:border-box;position:relative;width:210mm;min-height:297mm;padding:17mm 18mm 20mm;background:#fff;color:#111;box-shadow:0 4px 22px rgba(0,0,0,.18);font-family:"Noto Serif SC","Songti SC",SimSun,serif}.contract-text-print-page>header{text-align:center;border-bottom:1px solid #999;padding-bottom:7px}.contract-text-print-page>header strong{display:block;font-size:18px;letter-spacing:.08em}.contract-text-print-page>header span{font-size:12px;color:#555}.contract-text-print-page h1{text-align:center;font-size:22px;margin:18px 0}.contract-text-print-page pre{margin:0 0 25mm;white-space:pre-wrap;word-break:break-word;font:14px/1.8 "Noto Serif SC","Songti SC",SimSun,serif}.contract-text-print-page>footer{position:absolute;left:18mm;right:18mm;bottom:10mm;display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:10px;padding-top:7px;border-top:1px solid #aaa}.contract-text-print-page>footer>div:nth-child(2){display:grid;gap:3px}.contract-text-print-page>footer b{font-size:11px}.contract-text-print-page>footer small{font-size:9px;color:#555}.contract-text-print-page>footer em{font-style:normal;font-size:10px}.contract-page-qr{width:76px;height:76px}.contract-page-qr img,.contract-page-qr canvas{max-width:100%;height:auto!important}
@media(max-width:900px){.contract-text-party-row,.contract-text-keyword-row{grid-template-columns:1fr}.contract-ai-generate-button{min-height:58px}.contract-text-editor-field textarea{min-height:280px!important}.contract-text-preview-overlay{padding:4px}.contract-text-print-pages{display:block;padding:5px;overflow:auto}.contract-text-print-page{transform-origin:top left}.contract-text-authoring-actions>span{flex:1 1 100%;order:2}.contract-text-history{flex:1 1 100%}.contract-text-history select{max-width:none;flex:1}}
@media print{
  body.contract-text-printing{background:#fff!important}
  body.contract-text-printing>*:not(.contract-text-preview-overlay){display:none!important}
  body.contract-text-printing .contract-text-preview-overlay{position:static!important;display:block!important;padding:0!important;background:#fff!important;overflow:visible!important}
  body.contract-text-printing .contract-text-preview-shell{width:auto!important;margin:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;overflow:visible!important}
  body.contract-text-printing .contract-text-preview-toolbar{display:none!important}
  body.contract-text-printing .contract-text-print-pages{display:block!important;padding:0!important}
  body.contract-text-printing .contract-text-print-page{width:210mm!important;height:297mm!important;min-height:297mm!important;margin:0!important;box-shadow:none!important;page-break-after:always;break-after:page}
  body.contract-text-printing .contract-text-print-page:last-child{page-break-after:auto;break-after:auto}
  @page{size:A4;margin:0}
}

.drawer-document-group{display:grid;gap:8px;margin-top:12px}.drawer-document-group>h4{display:flex;align-items:center;justify-content:space-between;margin:0;padding:8px 10px;border-left:3px solid #3f7e67;border-radius:7px;background:#edf6f1;color:#234f43;font-size:12px}.drawer-document-group>h4 small{font-size:10px;color:#688377}

/* Cash procurement: approved request -> cash execution -> warehouse/finance shared source */
.cash-purchase-modal{width:min(1380px,calc(100vw - 24px));background:#f4f7f5}.cash-purchase-modal>.modal-header{background:linear-gradient(105deg,#fff,#edf7f2);border-bottom:1px solid #c9ddd4}.cash-purchase-modal>form{padding:14px 18px 0}.cash-purchase-modal .form-section{border-color:#cbded5;border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(30,80,62,.055)}.cash-purchase-pool{border-color:#a9cdbd!important}.cash-purchase-table{min-width:1080px}.cash-purchase-table th:first-child,.cash-purchase-table td:first-child{width:54px;text-align:center}.cash-purchase-table input[type="checkbox"]{width:18px;height:18px;accent-color:#23745b}.cash-purchase-table input[type="number"]{min-width:92px;height:36px;padding:6px 8px;border:1px solid #c7d9d0;border-radius:8px;background:#fff;text-align:right}.cash-purchase-table tr:has([data-cash-purchase-select]:checked){background:#edf8f2}.cash-mode-switch{display:block!important;margin-top:5px!important;color:#8a5e18!important;background:#fff8e7!important;border-color:#ead6a8!important;white-space:nowrap}.cash-purchase-return-button{border-width:1.5px!important;background:#fff5f3!important;box-shadow:0 4px 10px rgba(148,51,42,.08)}.cash-purchase-modal .modal-actions{margin:0 -18px;padding:11px 18px;gap:8px;border-top:2px solid #bfd3c9;background:rgba(250,253,251,.985);box-shadow:0 -9px 22px rgba(25,78,58,.11)}.cash-purchase-recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.cash-purchase-recent-grid article{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 12px;border:1px solid #d5e4dc;border-radius:10px;background:#fbfdfc}.cash-purchase-recent-grid article strong,.cash-purchase-recent-grid article span,.cash-purchase-recent-grid article small{grid-column:1}.cash-purchase-recent-grid article b{grid-column:2;grid-row:1/3;align-self:center;color:#1f6e56}.cash-purchase-recent-grid article span,.cash-purchase-recent-grid article small{font-size:10px;color:#687c73}@media(max-width:900px){.mini-account-searchbar{align-items:stretch;flex-direction:column}.mini-account-searchbar>span{white-space:normal}.mini-account-window thead{top:102px}.cash-purchase-recent-grid{grid-template-columns:1fr}.cash-purchase-modal>form{padding:10px 10px 0}.cash-purchase-modal .modal-actions{margin:0 -10px;padding:9px 10px}.cash-purchase-modal .modal-actions .form-submit-note{flex-basis:100%;margin-right:0}.cash-purchase-modal .modal-actions button{flex:1 1 150px}}
.procurement-mode-picker{display:grid;gap:4px;min-width:190px;margin:0}.procurement-mode-picker>span{font-size:10px;font-weight:700;color:#5a6a62}.procurement-mode-control{display:grid;grid-template-columns:minmax(112px,1fr) 58px;gap:6px;align-items:center}.procurement-mode-picker select{width:100%;min-width:0;height:35px;padding:4px 28px 4px 9px;border:1px solid #b9cec3;border-radius:8px;background:#f7fbf9;color:#174f3d;font-size:12px;font-weight:700;cursor:pointer}.procurement-mode-picker select:focus{outline:2px solid rgba(35,116,91,.22);border-color:#23745b}.procurement-mode-picker select:disabled{cursor:wait;opacity:.65}.procurement-mode-confirm{height:35px;padding:0 8px;border:1px solid #23745b;border-radius:8px;background:#23745b;color:#fff;font-size:11px;font-weight:800;white-space:nowrap}.procurement-mode-confirm:disabled{border-color:#cbd3ce;background:#e7ebe8;color:#929b96;cursor:not-allowed}.procurement-mode-picker>small{min-height:14px;color:#748079;font-size:9px;white-space:nowrap}.procurement-mode-picker.pending>small{color:#9b6414;font-weight:750}.procurement-mode-picker.pending select{border-color:#cf8b2d;background:#fff9ea}.procurement-mode-picker.compact{min-width:180px;gap:2px}.procurement-mode-picker.compact>span{display:none}.purchase-contract-modal .purchase-request-pick-table{min-width:1290px}.purchase-contract-modal .purchase-request-pick-table th:nth-child(9),.purchase-contract-modal .purchase-request-pick-table td:nth-child(9){width:210px}.cash-purchase-table th:nth-child(9),.cash-purchase-table td:nth-child(9){width:195px}.cash-purchase-table{min-width:1260px}.cash-payment-method-field{min-width:0}.cash-payment-method-field select{width:100%;min-width:0;padding-right:32px}

/* Long-term attachment storage health: content-addressed objects and reference integrity. */
.storage-health-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;padding:14px;border:1px solid #d8e3ec;border-radius:15px;background:#f8fafc}.storage-health-summary article{min-width:0;padding:14px 15px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:5px}.storage-health-summary article span,.storage-health-summary article small{font-size:11px;color:#64748b}.storage-health-summary article strong{font-size:17px;line-height:1.3;color:#17385c;overflow-wrap:anywhere}.storage-health-summary[data-tone="success"]{border-color:#bbdcc9;background:#f2faf5}.storage-health-summary[data-tone="warning"]{border-color:#ead6ad;background:#fffaf0}.storage-health-summary[data-tone="danger"]{border-color:#efb8b8;background:#fff5f5}.storage-health-details{margin-top:12px;padding:12px 15px;border:1px solid #e1b5b5;border-radius:12px;background:#fff}.storage-health-details summary{cursor:pointer;font-weight:700;color:#8a2f2f}.storage-health-details div{margin-top:9px;max-height:220px;overflow:auto}.storage-health-details p{margin:5px 0;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;color:#5f2630;overflow-wrap:anywhere}
@media(max-width:1050px){.storage-health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.storage-health-summary{grid-template-columns:1fr}}

/* 行政办公：AI公文、协议、合同编辑中心 */
.office-ai-document-backdrop{padding:10px;background:rgba(21,32,28,.56);backdrop-filter:blur(4px)}
.office-ai-document-modal{width:min(1380px,calc(100vw - 20px));height:min(900px,calc(100dvh - 20px));max-height:none;display:flex;flex-direction:column;overflow:hidden;border:1px solid #cbd7d0;background:#f5f3ed;box-shadow:0 30px 90px rgba(24,43,36,.28)}
.office-ai-document-header{flex:0 0 auto;border-bottom:1px solid #d7ddd8;background:linear-gradient(100deg,#f9faf7,#eef4ef)}
.office-ai-document-header>div:last-child{display:flex;align-items:center;gap:12px}.office-ai-document-header>div:last-child>span{display:inline-flex;align-items:center;gap:6px;color:#4a675d;font-size:11px;font-weight:700}
.office-ai-document-workbench{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0;flex:1}
.office-ai-document-library{display:flex;min-width:0;min-height:0;flex-direction:column;border-right:1px solid #d8ddd8;background:#eeece5}
.office-ai-document-library>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid #d9d7cf}.office-ai-document-library>header>div{display:flex;flex-direction:column}.office-ai-document-library>header strong{color:#203e34}.office-ai-document-library>header small{margin-top:2px;color:#768079;font-size:10px}.compact-button{min-height:34px!important;padding:6px 10px!important;font-size:11px!important}
.office-ai-document-search{display:flex;align-items:center;gap:7px;margin:10px 12px;padding:0 10px;border:1px solid #cfd6d1;border-radius:10px;background:#fff;color:#64746e}.office-ai-document-search input{width:100%;height:38px;border:0!important;outline:0;background:transparent!important;font-size:11px}
.office-ai-document-list{display:grid;gap:7px;padding:0 10px 12px;overflow:auto}.office-ai-document-list-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;width:100%;padding:10px;border:1px solid #d6d8d2;border-radius:11px;background:#faf9f6;color:#293b35;text-align:left;cursor:pointer}.office-ai-document-list-item:hover{border-color:#92ad9f;background:#fff}.office-ai-document-list-item.active{border-color:#32725d;background:#edf6f1;box-shadow:0 0 0 2px rgba(50,114,93,.12)}.office-ai-document-list-item>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e3ece7;color:#28634f;font-size:10px;font-weight:800}.office-ai-document-list-item>span[data-document-type="协议"]{background:#f1eadb;color:#765d22}.office-ai-document-list-item>span[data-document-type="合同"]{background:#e8eaf4;color:#4d5984}.office-ai-document-list-item>div{min-width:0}.office-ai-document-list-item strong,.office-ai-document-list-item small,.office-ai-document-list-item p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-ai-document-list-item strong{font-size:12px}.office-ai-document-list-item small{margin-top:3px;color:#718078;font-size:9px}.office-ai-document-list-item p{margin:4px 0 0;color:#69736e;font-size:10px}.office-ai-document-list-item>em{align-self:start;padding:3px 6px;border-radius:999px;background:#f1eee6;color:#716c61;font-size:9px;font-style:normal;font-weight:700}.office-ai-document-list-item>em[data-status="已定稿"]{background:#dcefe5;color:#226249}.office-ai-document-empty{margin:14px;padding:24px 12px;border:1px dashed #c8ccc6;border-radius:11px;color:#777e79;text-align:center;font-size:11px}
.office-ai-document-editor{position:relative;display:grid;grid-template-rows:auto minmax(300px,1fr) auto auto;min-width:0;min-height:0;overflow:hidden;background:#fbfbf8}.office-ai-document-editor>.system-form-help-trigger{position:absolute;top:9px;right:12px;z-index:4}.office-ai-document-editor>.office-ai-editor-meta{grid-row:1}.office-ai-document-editor>.office-ai-editor-body{grid-row:2}.office-ai-document-editor>.office-ai-version-panel{grid-row:3}.office-ai-document-editor>.office-ai-document-actions{grid-row:4}
.office-ai-editor-meta{display:grid;grid-template-columns:150px minmax(260px,1.5fr) minmax(220px,1fr) minmax(210px,.8fr);gap:10px;padding:13px 15px;border-bottom:1px solid #dde3de;background:#f8faf7}.office-ai-editor-meta label{display:grid;gap:5px;min-width:0}.office-ai-editor-meta label>span{color:#52665d;font-size:10px;font-weight:800}.office-ai-editor-meta input,.office-ai-editor-meta select,.office-ai-editor-meta textarea{width:100%;min-width:0;border:1px solid #cbd7d0;border-radius:9px;background:#fff}.office-ai-editor-meta input,.office-ai-editor-meta select{height:39px}.office-ai-editor-meta textarea{min-height:58px!important;padding:9px 11px!important;resize:vertical}.office-ai-title-field{grid-column:span 2}.office-ai-keywords-field{grid-column:1 / span 2}.office-ai-instruction-field{grid-column:3 / span 2}
.office-ai-editor-body{display:flex;min-height:0;flex-direction:column;padding:12px 15px 10px;overflow:hidden}.office-ai-editor-body>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.office-ai-editor-body>header>div{display:flex;align-items:center;gap:7px;color:#244a3d}.office-ai-editor-body>header>div small{color:#71817a;font-size:10px}.office-ai-import-button{position:relative;overflow:hidden;cursor:pointer}.office-ai-import-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.office-ai-editor-body>textarea{width:100%;min-height:280px;flex:1;padding:18px 20px!important;border:1px solid #bfcfc6!important;border-radius:12px!important;background:#fff!important;color:#18251f;font:14px/1.85 "Noto Serif SC","Songti SC",SimSun,serif!important;letter-spacing:.015em;resize:none;box-shadow:inset 0 1px 3px rgba(28,52,43,.05)}.office-ai-editor-body>textarea:focus{border-color:#33745e!important;box-shadow:0 0 0 3px rgba(51,116,94,.12)!important;outline:0}
.office-ai-version-panel{padding:0 15px 10px}.office-ai-version-panel>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.office-ai-version-panel>header strong{color:#345248;font-size:11px}.office-ai-version-panel>header small{color:#7a847f;font-size:9px}.office-ai-version-panel>div{display:flex;gap:6px;overflow:auto}.office-ai-version-panel>div>button{display:grid;grid-template-columns:auto auto;gap:2px 6px;min-width:185px;padding:7px 9px;border:1px solid #d8ddd9;border-radius:9px;background:#fff;color:#354a42;text-align:left;cursor:pointer}.office-ai-version-panel>div>button:hover{border-color:#6f9b89;background:#f3f8f5}.office-ai-version-panel>div>button span{font-weight:800;color:#2b7058}.office-ai-version-panel>div>button strong{font-size:10px}.office-ai-version-panel>div>button small{grid-column:1/-1;color:#7a827e;font-size:8px}.office-ai-version-panel>div>p{margin:0;color:#888;font-size:10px}
.office-ai-document-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px;border-top:1px solid #d7ded9;background:#f0f3ef;box-shadow:0 -8px 24px rgba(33,55,46,.06)}.office-ai-document-actions>span{display:flex;align-items:center;gap:6px;max-width:460px;color:#66746e;font-size:9px;line-height:1.45}.office-ai-document-actions>div{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.office-ai-document-actions button{min-height:36px;padding:7px 11px;font-size:11px}.office-ai-document-actions .danger-button{border:1px solid #d9aaa5;border-radius:8px;background:#fff5f3;color:#a03b32;font-weight:750}
@media(max-width:1120px){.office-ai-document-workbench{grid-template-columns:250px minmax(0,1fr)}.office-ai-editor-meta{grid-template-columns:130px minmax(220px,1fr) minmax(190px,1fr)}.office-ai-title-field{grid-column:span 2}.office-ai-editor-meta label:nth-child(4){grid-column:span 1}.office-ai-keywords-field{grid-column:1 / span 2}.office-ai-instruction-field{grid-column:3}.office-ai-document-actions>span{max-width:300px}}
@media(max-width:820px){.office-ai-document-backdrop{padding:5px}.office-ai-document-modal{width:calc(100vw - 10px);height:calc(100dvh - 10px)}.office-ai-document-header>div:last-child>span{display:none}.office-ai-document-workbench{display:block!important;overflow:auto}.office-ai-document-library{height:min(210px,26dvh);min-height:155px;border-right:0;border-bottom:1px solid #d8ddd8}.office-ai-document-list{grid-template-columns:repeat(2,minmax(0,1fr))}.office-ai-document-editor{display:flex!important;min-height:690px;overflow:visible;flex-direction:column}.office-ai-document-editor>.office-ai-editor-meta,.office-ai-document-editor>.office-ai-editor-body,.office-ai-document-editor>.office-ai-version-panel,.office-ai-document-editor>.office-ai-document-actions{grid-row:auto}.office-ai-editor-meta{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}.office-ai-title-field,.office-ai-keywords-field,.office-ai-instruction-field{grid-column:span 2}.office-ai-editor-body{min-height:330px;flex:1;overflow:visible}.office-ai-editor-body>textarea{min-height:300px;resize:vertical}.office-ai-document-actions{position:sticky;bottom:0;z-index:5;align-items:stretch;flex-direction:column}.office-ai-document-actions>span{max-width:none}.office-ai-document-actions>div{justify-content:stretch}.office-ai-document-actions button{flex:1 1 120px}.office-ai-version-panel{display:none}}
@media(max-width:560px){.office-ai-document-list{grid-template-columns:1fr}.office-ai-editor-meta{grid-template-columns:1fr}.office-ai-title-field,.office-ai-keywords-field,.office-ai-instruction-field{grid-column:auto}.office-ai-editor-body>header>div small{display:none}.office-ai-editor-body>textarea{padding:13px!important;font-size:13px!important}.office-ai-document-actions>span{display:none}}

/* release-276 candidate: login frame recovery and always-visible AI document actions. */
body.is-login-screen .login-shell {
  min-height: 100vh;
  min-height: 100dvh;
}
body.is-login-screen .login-workbench {
  max-height: calc(100dvh - 24px);
  overflow: auto;
}
@media (max-width: 820px) {
  body.is-login-screen .login-hero {
    display: flex !important;
  }
}

.office-ai-document-workbench,
.office-ai-document-editor,
.office-ai-editor-body {
  min-height: 0;
}
.office-ai-document-modal.workspace-bound-form-modal {
  top: 10px !important;
  height: calc(100vh - 20px) !important;
  height: calc(100dvh - 20px) !important;
  max-height: calc(100vh - 20px) !important;
  max-height: calc(100dvh - 20px) !important;
}
body .data-modal.office-ai-document-modal.workspace-bound-form-modal {
  --office-ai-left-shift: 5em;
  left: calc(var(--workspace-modal-rail) + var(--workspace-modal-gutter) + var(--office-ai-left-shift)) !important;
  right: var(--workspace-modal-gutter) !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  border-color: #afc4b9;
  box-shadow: -10px 22px 58px rgba(25,52,43,.16), 0 22px 58px rgba(25,52,43,.2);
}
.office-ai-document-workbench {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.office-ai-document-editor {
  width: 100%;
  max-width: 100%;
  padding: 0 !important;
  gap: 0 !important;
  grid-template-rows: auto minmax(150px,1fr) auto auto;
}
.office-ai-document-editor > * {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.office-ai-editor-meta {
  grid-template-columns: 140px minmax(0,1.5fr) minmax(0,1fr) minmax(0,.8fr);
}
.office-ai-editor-body > textarea {
  min-height: 140px;
}
.office-ai-document-actions {
  position: relative;
  z-index: 8;
  flex: 0 0 auto;
}
@media (max-width: 820px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal {
    --office-ai-left-shift: 3em;
  }
  .office-ai-document-workbench {
    display: grid !important;
    grid-template-rows: minmax(120px,26dvh) minmax(0,1fr);
    overflow: hidden;
  }
  .office-ai-document-library {
    height: auto;
    min-height: 0;
  }
  .office-ai-document-editor {
    display: grid !important;
    grid-template-rows: minmax(82px,auto) minmax(120px,1fr) auto;
    min-height: 0;
    overflow: hidden;
  }
  .office-ai-editor-meta {
    max-height: 152px;
    overflow: auto;
  }
  .office-ai-editor-body {
    min-height: 0;
    overflow: hidden;
  }
  .office-ai-editor-body > textarea {
    min-height: 110px !important;
    resize: none;
  }
  .office-ai-version-panel {
    display: none;
  }
  .office-ai-document-actions {
    position: relative;
    bottom: auto;
    display: block;
    padding: 8px 10px;
  }
  .office-ai-document-actions > span {
    display: none;
  }
  .office-ai-document-actions > div {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 6px;
  }
  .office-ai-document-actions button {
    width: 100%;
    min-width: 0;
    min-height: 34px;
    padding: 6px;
    font-size: 10px;
  }
}
@media (max-width: 520px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal {
    --office-ai-left-shift: 0em;
  }
  .office-ai-document-actions > div {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

/* release-278 final cascade: AI document form must never be squeezed by legacy modal rules. */
body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 5em; }
.office-ai-document-workbench { grid-template-columns: 270px minmax(0,1fr); }
.office-ai-editor-meta { grid-template-columns: 140px minmax(0,1.35fr) minmax(0,1fr); align-items: start; }
.office-ai-editor-meta .office-ai-title-field { grid-column: span 2; }
.office-ai-editor-meta .office-ai-keywords-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-instruction-field { grid-column: 3; }
.office-ai-document-actions > div { min-width: 0; }
.office-ai-document-actions button { white-space: nowrap; }
@media (max-width: 1220px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 2em; }
  .office-ai-document-workbench { grid-template-columns: 215px minmax(0,1fr); }
  .office-ai-editor-meta { grid-template-columns: minmax(120px,.7fr) minmax(0,1.3fr); }
  .office-ai-editor-meta > label:nth-child(1) { grid-column: 1; }
  .office-ai-editor-meta .office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta > label:nth-child(3) { grid-column: 1; }
  .office-ai-editor-meta > label:nth-child(4) { grid-column: 2; }
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 / -1; }
  .office-ai-document-actions { align-items: flex-start; flex-direction: column; }
  .office-ai-document-actions > span { max-width: none; }
  .office-ai-document-actions > div { width: 100%; justify-content: flex-end; }
}
@media (max-width: 900px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 1em; }
  .office-ai-document-workbench { display: grid !important; grid-template-columns: 1fr; grid-template-rows: minmax(118px,22dvh) minmax(0,1fr); }
  .office-ai-document-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .office-ai-document-editor { display: grid !important; grid-template-rows: auto minmax(84px,1fr) auto !important; min-height: 0; overflow: hidden; }
  .office-ai-editor-meta { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; overflow: visible; gap: 6px 9px; padding: 8px 12px; }
  .office-ai-editor-meta .office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta .office-ai-keywords-field { grid-column: 1; }
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 2; }
  .office-ai-editor-meta textarea { min-height: 45px !important; padding: 6px 8px !important; }
  .office-ai-editor-body { padding: 8px 12px; }
  .office-ai-editor-body > header { margin-bottom: 5px; }
  .office-ai-editor-body > textarea { min-height: 70px !important; }
  .office-ai-document-actions > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .office-ai-document-actions button { white-space: normal; line-height: 1.25; }
}
@media (max-width: 520px) {
  body .data-modal.office-ai-document-modal.workspace-bound-form-modal { --office-ai-left-shift: 0em; }
  .office-ai-document-list { grid-template-columns: 1fr; }
  .office-ai-editor-meta { grid-template-columns: 1fr; max-height: 180px; overflow: auto; }
  .office-ai-editor-meta > label,
  .office-ai-editor-meta .office-ai-title-field,
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 !important; }
  .office-ai-document-actions > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* release-292: AiCEO explainable executive intelligence cockpit. */
.aiceo-shell {
  display: grid;
  gap: 15px;
  min-width: 0;
  padding: 0 18px 38px;
  color: #23362f;
}

.aiceo-loading {
  min-height: 360px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  border: 1px solid #d5ddd7;
  border-radius: 22px;
  background: #fbfcf8;
  color: #416356;
  box-shadow: 0 18px 42px rgba(39,64,53,.09);
}

.aiceo-loading svg { color: #338063; }
.aiceo-loading span { color: #718078; font-size: 13px; }

.aiceo-command-hero {
  position: relative;
  isolation: isolate;
  min-height: 278px;
  display: grid;
  grid-template-columns: minmax(0,1fr) 238px;
  align-items: center;
  gap: 28px;
  overflow: hidden;
  padding: 30px 34px;
  border: 1px solid rgba(119,148,132,.56);
  border-radius: 24px;
  color: #f4f7f2;
  background:
    radial-gradient(circle at 78% 18%,rgba(212,176,83,.19),transparent 30%),
    linear-gradient(128deg,#172b25 0%,#24473a 58%,#315a46 100%);
  box-shadow: 0 22px 52px rgba(29,51,42,.18);
}

.aiceo-command-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: auto 30px 0;
  height: 4px;
  border-radius: 6px 6px 0 0;
  background: linear-gradient(90deg,#d9b759,#77b18f,#d7dccb);
}

.aiceo-hero-copy { min-width: 0; }
.aiceo-live-state { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.aiceo-live-state > span,
.aiceo-live-state > b { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: .06em; }
.aiceo-live-state > span { color: #d8ebdf; }
.aiceo-live-state > span i { width: 7px; height: 7px; border-radius: 50%; background: #80d09f; box-shadow: 0 0 0 5px rgba(128,208,159,.12); }
.aiceo-live-state > b { padding: 6px 10px; border: 1px solid rgba(224,236,225,.22); border-radius: 999px; color: #f3e2a6; background: rgba(255,255,255,.07); }
.aiceo-hero-copy > small { color: #a9c1b5; font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.aiceo-hero-copy h2 { margin: 10px 0 8px; color: #fff; font-size: clamp(25px,2.2vw,35px); line-height: 1.2; letter-spacing: .02em; }
.aiceo-hero-copy > p { margin: 0; color: #dbe9e0; font-size: 15px; font-weight: 650; }
.aiceo-hero-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin-top: 24px; }
.aiceo-hero-facts span { min-width: 0; padding: 10px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; background: rgba(255,255,255,.06); }
.aiceo-hero-facts small,
.aiceo-hero-facts strong { display: block; }
.aiceo-hero-facts small { color: #a9c1b5; font-size: 11px; }
.aiceo-hero-facts strong { margin-top: 4px; color: #fff; font-size: 18px; }
.aiceo-hero-facts strong.danger { color: #ffb7a9; }
.aiceo-hero-facts strong.warning { color: #f5d98d; }

.aiceo-health-card {
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 18px 14px 14px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.09);
  backdrop-filter: blur(12px);
}
.aiceo-health-ring { width: 128px; height: 128px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#7fc798 calc(var(--aiceo-score) * 1%),rgba(255,255,255,.11) 0); }
.aiceo-health-ring::before { content:""; width: 101px; height: 101px; grid-area: 1/1; border-radius: 50%; background: #25473b; box-shadow: inset 0 0 0 1px rgba(255,255,255,.13); }
.aiceo-health-ring > span { z-index: 1; grid-area: 1/1; display: grid; justify-items: center; }
.aiceo-health-ring strong { color:#fff; font-size:32px; line-height:1; }
.aiceo-health-ring small { margin-top:5px; color:#bcd1c5; font-size:11px; }
.aiceo-health-card > b { color:#fff; font-size:16px; }
.aiceo-health-card > small { color:#b6c8bf; font-size:10px; text-align:center; }
.aiceo-health-card > button { display:inline-flex; align-items:center; gap:5px; margin-top:4px; padding:6px 10px; border:1px solid rgba(255,255,255,.2); border-radius:8px; color:#ecf4ef; background:rgba(255,255,255,.08); cursor:pointer; }

.aiceo-risk-banner {
  display: grid;
  grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr);
  align-items: center;
  gap: 20px;
  padding: 14px 18px;
  border: 1px solid #d7d5c9;
  border-radius: 15px;
  background: #fbfaf5;
}
.aiceo-risk-banner > div { display:flex; align-items:center; gap:11px; }
.aiceo-risk-banner > div > span { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:10px; }
.aiceo-risk-banner small,.aiceo-risk-banner strong { display:block; }
.aiceo-risk-banner small { color:#7c847e; font-size:11px; }
.aiceo-risk-banner strong { margin-top:2px; font-size:14px; }
.aiceo-risk-banner p { margin:0; color:#5d6c64; font-size:12px; line-height:1.65; }
.aiceo-risk-banner.has-danger { border-color:#e1b5ac; background:#fff6f3; }
.aiceo-risk-banner.has-danger > div > span { color:#a94235; background:#fbe3dd; }
.aiceo-risk-banner.has-warning { border-color:#dfcf9c; background:#fffaf0; }
.aiceo-risk-banner.has-warning > div > span { color:#9a6a18; background:#f8ecc9; }
.aiceo-risk-banner.is-stable { border-color:#bcd6c4; background:#f5fbf6; }
.aiceo-risk-banner.is-stable > div > span { color:#2f7c54; background:#def1e4; }

.aiceo-dimension-section,
.aiceo-prediction-section,
.aiceo-assistant,
.aiceo-panel {
  min-width:0;
  border:1px solid #d7ded9;
  border-radius:18px;
  background:#fbfcf9;
  box-shadow:0 10px 28px rgba(43,65,55,.07);
}
.aiceo-dimension-section,.aiceo-prediction-section,.aiceo-assistant { padding:18px; }
.aiceo-dimension-section > header,
.aiceo-prediction-section > header,
.aiceo-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.aiceo-dimension-section header small,.aiceo-prediction-section header small,.aiceo-panel header small { color:#758078; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.aiceo-dimension-section header h3,.aiceo-prediction-section header h3,.aiceo-panel header h3 { margin:3px 0 0; color:#243c32; font-size:17px; }
.aiceo-dimension-section header p,.aiceo-prediction-section header p { margin:4px 0 0; color:#7a847e; font-size:12px; }
.aiceo-dimension-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:14px; }
.aiceo-dimension-grid article { position:relative; min-width:0; display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; padding:13px 12px 16px; border:1px solid #dce2de; border-radius:13px; background:#fff; }
.aiceo-dimension-grid article > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:#3e6957; background:#e8f1eb; }
.aiceo-dimension-grid article small { color:#6e7a73; font-size:11px; }
.aiceo-dimension-grid article strong { display:block; margin:2px 0; color:#23392f; font-size:23px; line-height:1; }
.aiceo-dimension-grid article strong i { margin-left:2px; font-size:10px; font-style:normal; color:#809087; }
.aiceo-dimension-grid article p { margin:5px 0 0; color:#718078; font-size:10px; line-height:1.4; }
.aiceo-dimension-grid article > em { position:absolute; right:12px; bottom:8px; left:12px; height:3px; overflow:hidden; border-radius:5px; background:#edf0ed; }
.aiceo-dimension-grid article > em i { display:block; height:100%; border-radius:inherit; background:#69a57e; }
.aiceo-dimension-grid article.tone-warning > em i { background:#d2a643; }
.aiceo-dimension-grid article.tone-danger > em i { background:#c75b4e; }

.aiceo-main-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr); gap:15px; align-items:start; }
.aiceo-panel { padding:17px; }
.aiceo-panel > header > span { padding:5px 8px; border-radius:8px; color:#5d6d64; background:#eef2ee; font-size:11px; }
.aiceo-risk-list { display:grid; gap:10px; margin-top:13px; }
.aiceo-risk-list > article { display:grid; grid-template-columns:86px minmax(210px,1.2fr) minmax(160px,.7fr) minmax(210px,1fr); gap:12px; align-items:start; padding:13px; border:1px solid #dedfd8; border-left:4px solid #8aae97; border-radius:13px; background:#fff; }
.aiceo-risk-list > article.level-red { border-left-color:#bf4d40; background:linear-gradient(90deg,#fff7f5,#fff 25%); }
.aiceo-risk-list > article.level-yellow { border-left-color:#d0a336; background:linear-gradient(90deg,#fffaf0,#fff 25%); }
.aiceo-risk-list > article.level-green { border-left-color:#559b6d; }
.aiceo-risk-level span,.aiceo-risk-level b { display:block; }
.aiceo-risk-level span { width:max-content; padding:4px 7px; border-radius:7px; color:#9c3f34; background:#f9e0da; font-size:10px; }
.level-yellow .aiceo-risk-level span { color:#8b6615; background:#f7eccd; }
.level-green .aiceo-risk-level span { color:#2f7750; background:#dff0e4; }
.aiceo-risk-level b { margin-top:8px; color:#6c766f; font-size:11px; }
.aiceo-risk-copy h4 { margin:0 0 5px; color:#243b31; font-size:14px; }
.aiceo-risk-copy p,.aiceo-risk-forecast p,.aiceo-risk-action p { margin:0; color:#53635a; font-size:11px; line-height:1.55; }
.aiceo-risk-copy small { display:flex; align-items:flex-start; gap:5px; margin-top:7px; color:#7b8780; font-size:10px; line-height:1.45; }
.aiceo-risk-forecast,.aiceo-risk-action { padding-left:11px; border-left:1px solid #e1e5e2; }
.aiceo-risk-forecast small,.aiceo-risk-action small { display:block; margin-bottom:5px; color:#8a8171; font-size:10px; font-weight:700; }
.aiceo-risk-action button { display:inline-flex; align-items:center; gap:4px; margin-top:7px; padding:5px 8px; border:1px solid #b8cdc0; border-radius:7px; color:#356c54; background:#f1f8f3; font-size:10px; cursor:pointer; }

.aiceo-side-stack { display:grid; gap:15px; min-width:0; }
.aiceo-brief-panel > header > span { background:transparent; padding:0; font-size:9px; }
.aiceo-brief-panel > p { margin:13px 0 10px; color:#53635b; font-size:12px; line-height:1.65; }
.aiceo-brief-panel ol { display:grid; gap:7px; margin:0; padding:0 0 0 20px; color:#344d41; font-size:11px; line-height:1.55; }
.aiceo-source-panel > header strong { color:#2f6f53; font-size:25px; }
.aiceo-source-panel > div { display:grid; gap:6px; margin-top:13px; }
.aiceo-source-panel > div > span { display:grid; grid-template-columns:18px 1fr auto; align-items:center; gap:6px; padding:7px 8px; border-radius:8px; color:#866a2a; background:#faf4e5; font-size:11px; }
.aiceo-source-panel > div > span.ready { color:#3f6c55; background:#eef7f0; }
.aiceo-source-panel > div > span em { font-style:normal; font-size:10px; }
.aiceo-source-panel > p { display:flex; align-items:flex-start; gap:5px; margin:11px 0 0; color:#7d8781; font-size:9px; line-height:1.5; }

.aiceo-prediction-section > div { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:13px; }
.aiceo-prediction-section article { display:grid; grid-template-columns:36px minmax(0,1fr); gap:9px; padding:13px; border:1px solid #dfe4e0; border-radius:12px; background:#fff; }
.aiceo-prediction-section article > span { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; color:#4b6e5c; background:#edf3ef; }
.aiceo-prediction-section article small { color:#748078; font-size:10px; }
.aiceo-prediction-section article strong { display:block; margin:3px 0; color:#2f473b; font-size:18px; }
.aiceo-prediction-section article p { margin:0; color:#738078; font-size:10px; line-height:1.45; }
.aiceo-prediction-section article.tone-danger > span { color:#a74337; background:#f9e5e0; }
.aiceo-prediction-section article.tone-warning > span { color:#947020; background:#f8edcf; }

.aiceo-assistant { background:linear-gradient(145deg,#f8faf6,#f3f0e8); }
.aiceo-assistant-heading { display:flex; align-items:center; gap:11px; }
.aiceo-assistant-heading > span { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:13px; color:#f0d991; background:#274c3e; box-shadow:0 8px 18px rgba(38,73,59,.18); }
.aiceo-assistant-heading small { color:#7c857e; font-size:10px; letter-spacing:.12em; }
.aiceo-assistant-heading h3 { margin:2px 0 0; color:#253e33; font-size:18px; }
.aiceo-assistant-heading p { margin:3px 0 0; color:#6d7a72; font-size:11px; }
.aiceo-prompt-chips { display:flex; flex-wrap:wrap; gap:7px; margin:13px 0 10px; }
.aiceo-prompt-chips button { padding:6px 9px; border:1px solid #cad7cf; border-radius:999px; color:#496457; background:#fff; font-size:10px; cursor:pointer; }
.aiceo-assistant > form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.aiceo-assistant > form label { display:flex; align-items:center; gap:8px; min-width:0; padding:0 12px; border:1px solid #bdcec3; border-radius:11px; color:#4d7460; background:#fff; }
.aiceo-assistant > form input { width:100%; min-width:0; height:42px; border:0; outline:0; background:transparent; }
.aiceo-assistant > form button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:120px; border:0; border-radius:11px; color:#fff; background:#315f4b; font-weight:700; cursor:pointer; }
.aiceo-answer { margin-top:14px; padding:15px; border:1px solid #c9d6ce; border-radius:13px; background:#fff; }
.aiceo-answer > header { display:flex; align-items:center; gap:9px; }
.aiceo-answer > header > span { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:#2f6b50; background:#e6f1e9; }
.aiceo-answer header small,.aiceo-answer header strong { display:block; }
.aiceo-answer header small { color:#7d8982; font-size:9px; }
.aiceo-answer header strong { margin-top:2px; color:#2d463a; font-size:12px; }
.aiceo-answer header em { margin-left:auto; color:#8a938d; font-size:9px; font-style:normal; }
.aiceo-answer > p { margin:12px 0; color:#334d40; font-size:13px; font-weight:650; line-height:1.7; }
.aiceo-answer > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.aiceo-answer section { padding:10px 12px; border-radius:10px; background:#f5f7f4; }
.aiceo-answer h4 { margin:0 0 6px; color:#56685f; font-size:10px; }
.aiceo-answer ul { display:grid; gap:4px; margin:0; padding-left:16px; color:#53635b; font-size:10px; line-height:1.5; }
.aiceo-answer > small { display:flex; align-items:center; gap:5px; margin-top:10px; color:#808b84; font-size:9px; }

@media (max-width: 1260px) {
  .aiceo-dimension-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .aiceo-risk-list > article { grid-template-columns:76px minmax(190px,1fr) minmax(180px,1fr); }
  .aiceo-risk-action { grid-column:2 / -1; }
  .aiceo-prediction-section > div { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 980px) {
  .aiceo-shell { padding-right:12px; padding-left:12px; }
  .aiceo-command-hero { grid-template-columns:1fr; }
  .aiceo-health-card { grid-template-columns:auto 1fr; justify-items:start; align-items:center; }
  .aiceo-health-ring { grid-row:1 / span 3; width:100px; height:100px; }
  .aiceo-health-ring::before { width:78px; height:78px; }
  .aiceo-health-ring strong { font-size:25px; }
  .aiceo-health-card > button { justify-self:start; }
  .aiceo-main-grid { grid-template-columns:1fr; }
  .aiceo-side-stack { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .aiceo-risk-banner { grid-template-columns:1fr; gap:7px; }
}

@media (max-width: 760px) {
  .aiceo-command-hero { padding:22px 20px; }
  .aiceo-hero-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .aiceo-dimension-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .aiceo-risk-list > article { grid-template-columns:1fr; }
  .aiceo-risk-forecast,.aiceo-risk-action { grid-column:auto; padding:9px 0 0; border-top:1px solid #e1e5e2; border-left:0; }
  .aiceo-side-stack { grid-template-columns:1fr; }
  .aiceo-answer > div { grid-template-columns:1fr; }
}

/* release-291: replace login text glyphs with clear, colored Lucide field icons. */
body.is-login-screen .gateway-login-shell .login-input > .login-field-icon {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 8px;
  font-style: normal;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
}

body.is-login-screen .gateway-login-shell .login-input > .login-user-icon {
  color: #0b7e8b;
  border-color: rgba(52,150,157,.32);
  background: linear-gradient(145deg,#e3fbf7,#d9efff);
}

body.is-login-screen .gateway-login-shell .login-input > .login-key-icon {
  color: #9a4d16;
  border-color: rgba(166,106,67,.30);
  background: linear-gradient(145deg,#fff1d6,#eee5ff);
}

body.is-login-screen .gateway-login-shell .login-field-icon > i,
body.is-login-screen .gateway-login-shell .login-field-icon > svg {
  width: 15px;
  height: 15px;
  display: block;
  flex: 0 0 15px;
  stroke: currentColor;
  stroke-width: 2.25;
}

/* release-287：按修正方向将宽屏品牌文字右移、登录区左移，并保留湖蓝色主操作。 */
@media (min-width: 1101px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    grid-template-columns: minmax(0, 1fr) 434px;
  }

  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    width: 420px;
    max-width: 420px;
    transform: translateX(91px);
  }

  body.is-login-screen .gateway-login-shell .login-card {
    padding-right: 24px;
    padding-left: 24px;
  }
}

body.is-login-screen .gateway-login-shell .login-card .primary-button {
  border: 1px solid rgba(72, 139, 187, .62);
  color: #135b91;
  background: linear-gradient(180deg, #f2f9ff 0%, #dceefb 100%);
  box-shadow: 0 9px 20px rgba(44, 105, 150, .18), inset 0 1px 0 rgba(255, 255, 255, .96);
  text-shadow: 0 1px 0 rgba(255, 255, 255, .92);
}

body.is-login-screen .gateway-login-shell .login-card .primary-button:hover {
  border-color: rgba(45, 116, 169, .78);
  color: #0b4777;
  background: linear-gradient(180deg, #e8f5ff 0%, #cfe7f8 100%);
  box-shadow: 0 11px 24px rgba(38, 98, 143, .24), inset 0 1px 0 #fff;
}

/* release-290：商标置于品牌区左上角，品牌文字垂直居中，登录小框缩小并增强悬浮凸起。 */
@media (min-width: 1101px) {
  body.is-login-screen .gateway-login-shell .login-hero .login-logo-lockup {
    position: absolute;
    top: 28px;
    right: auto;
    bottom: auto;
    left: 34px;
    margin: 0;
    transform: none;
  }

  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    transform: translateX(91px);
  }

  body.is-login-screen .gateway-login-shell .login-card {
    width: 304px;
    max-width: 304px;
    min-height: 273px;
    height: 273px;
    align-self: center;
    justify-self: center;
    padding: 16px 18px;
    border: 1px solid rgba(105, 150, 174, .52);
    border-radius: 22px;
    background: linear-gradient(155deg, rgba(255, 255, 255, .98), rgba(240, 248, 252, .92));
    box-shadow:
      0 5px 0 rgba(154, 180, 193, .48),
      0 25px 48px rgba(29, 69, 91, .25),
      0 9px 19px rgba(29, 69, 91, .16),
      inset 0 2px 0 rgba(255, 255, 255, 1),
      inset 0 -1px 0 rgba(94, 141, 166, .16);
    transform: translateY(-4px);
  }

  body.is-login-screen .gateway-login-shell .login-card .login-brand {
    margin-bottom: 10px;
  }

  body.is-login-screen .gateway-login-shell .login-card .login-brand h2 {
    margin: 0;
    font-size: 22px;
  }

  body.is-login-screen .gateway-login-shell .login-card form {
    gap: 10px;
  }

  body.is-login-screen .gateway-login-shell .login-card label {
    gap: 4px;
  }

  body.is-login-screen .gateway-login-shell .login-card .login-input,
  body.is-login-screen .gateway-login-shell .login-card .login-input input {
    min-height: 40px;
    height: 40px;
  }

  body.is-login-screen .gateway-login-shell .login-card .primary-button {
    min-height: 40px;
    height: 40px;
  }
}

/* release-284：登录品牌文字统一居中，公司首字与商标“技”字左边线对齐。 */
body.is-login-screen .gateway-login-shell .login-hero > h1,
body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
  width: min(100%, 610px);
  max-width: 610px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
  transform: translateX(-61px);
}

body.is-login-screen .gateway-login-shell .login-hero > h1 {
  justify-items: center;
}

body.is-login-screen .gateway-login-shell .login-hero .login-company-name,
body.is-login-screen .gateway-login-shell .login-hero .login-system-name,
body.is-login-screen .gateway-login-shell .login-hero .login-system-intro {
  text-align: center;
}

body.is-login-screen .gateway-login-shell .login-hero .login-system-name {
  margin-top: 12px;
}

body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
  margin-top: 16px;
}

@media (min-width: 821px) and (max-width: 1100px) {
  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    transform: translateX(-32px);
  }
}

@media (max-width: 820px) {
  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    width: 100%;
    transform: none;
  }
}

/* release-282：登录介绍与欢迎登录合并为同一张响应式卡片。 */
body.is-login-screen .gateway-login-shell .login-workbench {
  width: min(1180px, 94vw);
  min-width: 0;
  min-height: 390px;
  max-height: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 370px);
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 30px;
  background:
    radial-gradient(circle at 62% 14%, rgba(198, 232, 207, .26), transparent 32%),
    linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(242, 247, 242, .90));
  box-shadow:
    0 34px 78px rgba(31, 61, 48, .22),
    0 10px 26px rgba(31, 61, 48, .14),
    inset 0 1px 0 #fff;
  backdrop-filter: blur(16px) saturate(108%);
  transform: translateY(-4px);
  zoom: 1;
}

body.is-login-screen .gateway-login-shell .login-workbench::before,
body.is-login-screen .gateway-login-shell .login-workbench::after {
  display: none;
  content: none;
}

body.is-login-screen .gateway-login-shell .login-hero {
  min-height: 390px;
  padding: 44px 50px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

body.is-login-screen .gateway-login-shell .login-hero::after {
  left: 50px;
  right: 50px;
}

body.is-login-screen .gateway-login-shell .login-card {
  left: 0;
  width: auto;
  min-height: 390px;
  align-self: stretch;
  justify-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: 32px 30px;
  border: 0;
  border-left: 1px solid rgba(104, 129, 113, .22);
  border-radius: 0;
  background: rgba(255, 255, 255, .48);
  box-shadow: inset 1px 0 0 rgba(255, 255, 255, .72);
  backdrop-filter: blur(12px);
}

body.is-login-screen .gateway-login-shell .login-card-loading {
  grid-column: 2;
  width: auto !important;
  max-width: none !important;
  min-height: 390px;
  padding: 32px 30px !important;
}

@media (min-width: 821px) and (max-width: 1100px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    width: min(94vw, 920px);
    grid-template-columns: minmax(0, 1fr) minmax(290px, 320px);
  }

  body.is-login-screen .gateway-login-shell .login-hero { padding: 40px 34px; }
  body.is-login-screen .gateway-login-shell .login-card { padding: 28px 24px; }
}

@media (max-width: 820px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    width: min(94vw, 620px);
    min-height: 0;
    max-height: calc(100dvh - 24px);
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 0;
    overflow: auto;
    border-radius: 22px;
    transform: none;
  }

  body.is-login-screen .gateway-login-shell .login-hero {
    min-height: 180px;
    padding: 82px 24px 22px;
    border-bottom: 1px solid rgba(104, 129, 113, .18);
  }

  body.is-login-screen .gateway-login-shell .login-hero::after {
    left: 24px;
    right: 24px;
    height: 4px;
  }

  body.is-login-screen .gateway-login-shell .login-card {
    width: 100%;
    min-height: 0;
    padding: 22px 24px 24px;
    border-left: 0;
    background: rgba(255, 255, 255, .58);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .76);
  }

  body.is-login-screen .gateway-login-shell .login-card-loading {
    grid-column: 1;
    min-height: 180px;
  }
}

@media (max-width: 520px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    width: calc(100vw - 16px);
    border-radius: 18px;
  }

  body.is-login-screen .gateway-login-shell .login-hero { padding: 68px 16px 16px; }
  body.is-login-screen .gateway-login-shell .login-card { padding: 17px 16px 18px; }
}

/* release-279 final authority: polished AI document studio and responsive field hierarchy. */
.office-ai-document-header .office-ai-document-header-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
}
.office-ai-document-header > .office-ai-document-header-actions > .office-ai-document-help-host {
  display: inline-flex !important;
  min-width: 0;
}
.office-ai-document-workbench {
  grid-template-columns: 250px minmax(0,1fr);
  gap: 12px;
  padding: 12px;
  background: linear-gradient(145deg,#e8ede8,#f3f0e9);
}
.office-ai-document-library,
.office-ai-document-editor {
  border: 1px solid #cad6cf;
  border-radius: 15px;
  background: #fbfcf9;
  box-shadow: 0 10px 28px rgba(37,64,53,.09);
  overflow: hidden;
}
.office-ai-document-library {
  border-right: 1px solid #cad6cf;
  background: #f7f4ec;
}
.office-ai-document-editor {
  grid-template-rows: auto minmax(120px,1fr) auto auto;
  background: #fbfcfa;
}
.office-ai-editor-meta {
  grid-template-columns: 140px minmax(0,1.35fr) minmax(0,1fr);
  gap: 9px 10px;
  padding: 11px 14px 13px;
  align-items: start;
  border-bottom: 1px solid #dbe3dd;
  background: linear-gradient(145deg,#f8faf7,#f1f5f1);
}
.office-ai-editor-meta .office-ai-type-field { grid-column: 1; }
.office-ai-editor-meta .office-ai-title-field { grid-column: 2 / span 2; }
.office-ai-editor-meta .office-ai-recipient-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-current-version-field { grid-column: 3; }
.office-ai-editor-meta .office-ai-keywords-field { grid-column: 1 / span 2; }
.office-ai-editor-meta .office-ai-instruction-field { grid-column: 3; }
.office-ai-editor-body { padding: 11px 14px 12px; background: #fff; }
.office-ai-version-panel { padding: 9px 14px 10px; background: #f7f8f5; }
.office-ai-document-actions {
  padding: 10px 14px;
  background: linear-gradient(100deg,#eef3ef,#f8f8f4);
  box-shadow: 0 -8px 22px rgba(31,57,47,.06);
}
.office-ai-document-actions > div { min-width: 0; }
.office-ai-document-actions button { white-space: nowrap; }
.office-ai-document-actions .office-ai-footer-import-button {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 11px;
  white-space: nowrap;
}
@media (max-width: 1220px) {
  .office-ai-document-workbench { grid-template-columns: 215px minmax(0,1fr); gap: 9px; padding: 9px; }
  .office-ai-editor-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .office-ai-editor-meta > label.office-ai-type-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-recipient-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-current-version-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-keywords-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-instruction-field { grid-column: 2; }
  .office-ai-document-actions { align-items: flex-start; flex-direction: column; }
  .office-ai-document-actions > span { max-width: none; }
  .office-ai-document-actions > div { width: 100%; justify-content: flex-end; }
}
@media (max-width: 900px) {
  .office-ai-document-header .office-ai-document-header-actions { gap: 6px; }
  .office-ai-document-workbench {
    display: grid !important;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(96px,18dvh) minmax(0,1fr);
    gap: 8px;
    padding: 8px;
  }
  .office-ai-document-library { border-right: 1px solid #cad6cf; border-bottom: 1px solid #cad6cf; }
  .office-ai-document-editor { display: grid !important; grid-template-rows: auto minmax(84px,1fr) auto !important; min-height: 0; overflow: hidden; }
  .office-ai-editor-meta { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 9px; padding: 8px 11px 9px; max-height: none; overflow: visible; }
  .office-ai-editor-meta > label.office-ai-type-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-title-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-recipient-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-current-version-field { grid-column: 2; }
  .office-ai-editor-meta > label.office-ai-keywords-field { grid-column: 1; }
  .office-ai-editor-meta > label.office-ai-instruction-field { grid-column: 2; }
  .office-ai-editor-body { padding: 8px 11px; }
  .office-ai-document-actions > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
  .office-ai-document-actions button,
  .office-ai-document-actions .office-ai-footer-import-button { width: 100%; white-space: normal; line-height: 1.25; }
}
@media (max-width: 620px) {
  .office-ai-document-header .office-ai-document-header-actions { gap: 5px; }
  .office-ai-document-workbench { grid-template-rows: minmax(90px,17dvh) minmax(0,1fr); }
}
@media (max-width: 900px) and (max-height: 700px) {
  .office-ai-document-workbench { grid-template-rows: minmax(82px,16dvh) minmax(0,1fr); }
  .office-ai-editor-meta { gap: 4px 8px; padding: 6px 10px 7px; }
  .office-ai-section-heading { min-height: 26px; gap: 7px; }
  .office-ai-section-heading > span { width: 24px; height: 24px; flex-basis: 24px; border-radius: 7px; }
  .office-ai-section-heading small { display: none; }
  .office-ai-editor-meta input,
  .office-ai-editor-meta select { height: 34px; }
  .office-ai-editor-meta textarea { min-height: 46px !important; padding: 5px 7px !important; }
  .office-ai-editor-body > textarea { min-height: 58px !important; }
  .office-ai-document-actions { padding: 8px 10px; }
}
@media (max-width: 520px) {
  .office-ai-editor-meta { grid-template-columns: 1fr; max-height: 210px; overflow: auto; }
  .office-ai-editor-meta .office-ai-type-field,
  .office-ai-editor-meta .office-ai-title-field,
  .office-ai-editor-meta .office-ai-recipient-field,
  .office-ai-editor-meta .office-ai-current-version-field,
  .office-ai-editor-meta .office-ai-keywords-field,
  .office-ai-editor-meta .office-ai-instruction-field { grid-column: 1 !important; }
  .office-ai-document-actions > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.module-progressive-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:10px;
  padding:7px 11px;
  border:1px solid rgba(38,119,91,.2);
  border-radius:10px;
  color:#45675b;
  background:rgba(242,249,246,.88);
  font-size:12px;
}
.module-progressive-status svg{animation:haohai-progressive-spin 1.1s linear infinite}
@keyframes haohai-progressive-spin{to{transform:rotate(360deg)}}

/* 登录合并大框横向缩短25%，不改变iPad和窄屏的纵向自适应布局。 */
@media (min-width: 821px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    width: min(885px, 94vw);
  }
}
@media (min-width: 1101px) {
  body.is-login-screen .gateway-login-shell .login-workbench {
    grid-template-columns: minmax(0, 1fr) 326px;
  }
  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    transform: translateX(68px);
  }
}

/* release-297：登录大框中的浩海科技图片等比例缩小30%，保留左上角定位和文字布局。 */
@media (min-width: 821px) {
  body.is-login-screen .gateway-login-shell .login-logo-lockup {
    width: 87px;
    height: 85px;
    padding: 4px;
  }

  body.is-login-screen .gateway-login-shell .login-logo-lockup .login-trademark {
    width: 78px;
    height: 77px;
    max-width: 78px;
    max-height: 77px;
  }
}

/* 20260817-desktop-login-clipping-release-303：台式机登录框防挤压。保留885px紧凑总框，取消历史位移并让品牌文字在自身栏内完整排版。 */
@media (min-width: 821px) {
  body.is-login-screen .gateway-login-shell .login-hero {
    padding-right: 30px;
    padding-left: 30px;
  }

  body.is-login-screen .gateway-login-shell .login-hero > h1,
  body.is-login-screen .gateway-login-shell .login-hero > .login-system-intro {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
    transform: none;
    overflow: visible;
    text-overflow: clip;
  }

  body.is-login-screen .gateway-login-shell .login-company-name,
  body.is-login-screen .gateway-login-shell .login-system-name,
  body.is-login-screen .gateway-login-shell .login-system-intro {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

/* 20260818-icp-footer-transparent-release-326：备案信息使用透明底和高对比文字，不遮挡登录背景。 */
/* 20260818-stock-document-simple-flow-release-328：库存期初“瓶”单位及六类正式进出库三步办理。 */
.site-compliance-footer{display:none}
body.is-login-screen .site-compliance-footer{position:fixed;z-index:30;right:16px;bottom:12px;left:16px;display:flex;align-items:center;justify-content:center;gap:12px;width:fit-content;max-width:calc(100vw - 32px);min-height:30px;margin:0 auto;padding:3px 6px;border:0;color:#fff;background:transparent;box-shadow:none;font-size:12px;line-height:1.45;text-align:center;text-shadow:0 1px 3px rgba(0,26,17,.95),0 0 10px rgba(0,20,12,.72);pointer-events:none;backdrop-filter:none}
body.is-login-screen .site-compliance-footer>span,body.is-login-screen .site-compliance-footer>a{pointer-events:auto}
body.is-login-screen .site-compliance-footer>span{color:#fff;font-weight:650;white-space:nowrap}
body.is-login-screen .site-compliance-footer>a{display:inline-flex;align-items:center;gap:5px;padding:3px 2px;border:0;border-radius:0;color:#dff3ff;background:transparent;box-shadow:none;font-weight:750;text-decoration:none;backdrop-filter:none}
body.is-login-screen .site-compliance-footer>a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media(max-height:560px) and (min-width:821px){body.is-login-screen .gateway-login-shell{padding-bottom:58px}body.is-login-screen .site-compliance-footer{bottom:6px}}
@media(max-width:620px){body.is-login-screen .site-compliance-footer{flex-wrap:wrap;gap:4px 8px;bottom:6px;font-size:11px}body.is-login-screen .site-compliance-footer>a{padding:4px 8px}}

/* release-330：六类正式入库、出库单只保留工厂必要字段，其余资料自动识别或扫码回写。 */
.stock-document-essential-form .stock-document-step{padding:13px 14px!important}
.stock-document-essential-form .stock-document-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.stock-document-essential-form .stock-document-core-grid>.system-source-field{grid-column:1/-1;grid-row:2}
.stock-document-auto-context{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border:1px solid #dbe5df;border-radius:10px;background:#f7faf8;color:#5e6f67;font-size:11px}
.stock-document-auto-context>span{display:inline-flex;align-items:center;gap:5px}.stock-document-auto-context strong{color:#294d3f}
.stock-document-essential-form .stock-document-party-grid{grid-template-columns:minmax(250px,1.2fr) minmax(270px,.8fr);gap:11px}
.stock-document-essential-form .stock-document-party-grid>.span-2{grid-column:auto}
.stock-document-party-note{min-height:63px;padding:10px 12px;border:1px solid #d8e4de;border-radius:11px;background:linear-gradient(115deg,#f1f7f3,#faf8f2);color:#597068;display:flex;align-items:center;gap:9px;font-size:11px;line-height:1.5}.stock-document-party-note svg{flex:0 0 auto;color:#33745d}
.stock-document-essential-form .stock-shared-line{grid-template-columns:54px minmax(230px,1.7fr) minmax(150px,.8fr) minmax(150px,.8fr)}
.stock-document-essential-form .stock-manual-essential-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stock-quality-report-compact{border-color:#c9ddd3!important;background:#fbfdfb!important}
.stock-quality-report-essential{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;gap:9px;align-items:end}.stock-quality-report-essential>label{display:grid;gap:5px}.stock-quality-report-essential>label>span{font-size:11px;font-weight:750;color:#52635b}.stock-quality-report-essential>button{min-height:40px}.stock-quality-report-essential>.quality-report-sync-state{min-height:40px;padding:9px 11px;display:flex;align-items:center;border:1px solid #d7e3dd;border-radius:9px;background:#edf6f1;color:#356550;font-size:11px;white-space:nowrap}
.stock-quality-report-more{margin-top:9px;border:1px dashed #d8dfdb;border-radius:10px;background:#fff}.stock-quality-report-more>summary{padding:9px 11px;cursor:pointer;color:#617069;font-size:11px;font-weight:700}.stock-quality-report-more>.quality-report-toolbar,.stock-quality-report-more>[data-quality-report-preview]{margin:0 11px 11px}
@media(max-width:900px){.stock-document-essential-form .stock-document-party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-document-essential-form .stock-manual-essential-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-quality-report-essential{grid-template-columns:minmax(0,1fr) auto}.stock-quality-report-essential>.quality-report-sync-state{grid-column:1/-1;min-height:32px}}
@media(max-width:620px){.stock-document-essential-form .stock-document-core-grid,.stock-document-essential-form .stock-document-party-grid,.stock-document-essential-form .stock-manual-essential-grid{grid-template-columns:1fr}.stock-document-essential-form .stock-document-core-grid>.system-source-field{grid-column:1;grid-row:3}.stock-document-essential-form .stock-document-party-grid>.span-2{grid-column:1}.stock-document-auto-context{align-items:flex-start;flex-direction:column}.stock-quality-report-essential{grid-template-columns:1fr}.stock-quality-report-essential>button{width:100%}.stock-quality-report-essential>.quality-report-sync-state{grid-column:1}.stock-document-essential-form .stock-shared-line-head{display:none}.stock-document-essential-form .stock-shared-line{grid-template-columns:38px minmax(0,1fr);gap:7px}.stock-document-essential-form .stock-shared-line>.stock-shared-check{grid-row:1/4}.stock-document-essential-form .stock-shared-line>div,.stock-document-essential-form .stock-shared-line>input[data-field="batchNo"],.stock-document-essential-form .stock-shared-line>label:has(input[data-field="quantity"]){grid-column:2}.stock-document-party-note{min-height:52px}}

/* release-332：精炼六类收发单说明，取消字段旁圆形提示图标。 */
.stock-document-essential-form .form-field-help-icon{display:none!important}
.stock-document-essential-form .form-section-title>span{max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-document-essential-form .stock-document-guide-title small,.stock-document-essential-form .stock-document-guide li small{line-height:1.35}
@media(max-width:700px){.stock-document-essential-form .form-section-title>span{max-width:none;white-space:normal}}

/* release-339：读取到货来源时隔离旧批次，并让多项合同明细在可用宽度内完整显示。 */
.inventory-scan-layout.inventory-source-entry-active{grid-template-columns:minmax(0,1fr)}
.inventory-source-entry-active>.inventory-scan-entry-panel{width:100%;max-width:none}
.inventory-source-entry-active .inventory-prelabel-lines article{grid-template-columns:minmax(0,1.45fr) minmax(170px,.75fr);gap:10px 12px;align-items:end}
.inventory-source-entry-active .inventory-prelabel-material{grid-column:1;grid-row:1;align-self:center}
.inventory-source-entry-active .inventory-simple-quantity{grid-column:2;grid-row:1;align-self:center}
.inventory-source-entry-active .inventory-simple-code-mode{grid-column:1;grid-row:2;align-self:auto}
.inventory-source-entry-active .inventory-simple-code-input{grid-column:2;grid-row:2}
.inventory-source-entry-active .inventory-simple-confirm{grid-column:1/-1;grid-row:3;min-height:41px}
@media(max-width:700px){
  .inventory-source-entry-active .inventory-prelabel-lines article{grid-template-columns:1fr}
  .inventory-source-entry-active .inventory-prelabel-material,.inventory-source-entry-active .inventory-simple-quantity,.inventory-source-entry-active .inventory-simple-code-mode,.inventory-source-entry-active .inventory-simple-code-input,.inventory-source-entry-active .inventory-simple-confirm{grid-column:1;grid-row:auto;align-self:auto}
}

/* 20260818-stock-source-multiline-release-340：正式出入库来源单据完整呈现全部明细，表单自身滚动而不裁切行。 */
/* 20260819-approved-warehouse-gate-release-341：仓库仅接收审批完成的正式出入库单，扫码实绩回写并防止串单。 */

/* 20260819-stock-party-terminology-release-342：正式入库单、出库单按方向明确收货对象、发货对象及仓库实际收货/发货语义。 */

/* 20260819-stock-object-semantics-release-343：收货/发货对象专指物品明细，供应商、客户与领用部门改为发货/收货单位。 */

/* 20260819-jwei-approval-purchase-flow-release-346：修复终审按钮、旧通知只读访问与采购审批节点显示。 */
.stock-document-essential-form .stock-document-party-grid{
  grid-template-columns:minmax(520px,1.65fr) minmax(250px,.75fr);
  align-items:stretch;
  gap:12px;
}
.business-form .stock-document-party-grid>label.stock-counterparty-field:not(.sheet-field){
  grid-template-columns:170px minmax(0,1fr);
  align-items:stretch;
  min-height:58px;
  overflow:hidden;
  border:1px solid #cbd9d2;
  border-radius:11px;
  box-shadow:0 5px 14px rgba(43,73,61,.045);
}
.business-form .stock-document-party-grid>label.stock-counterparty-field:not(.sheet-field)>span{
  align-content:center;
  gap:3px;
  min-width:0;
  padding:9px 13px;
  border-right:1px solid #cbd9d2;
  background:linear-gradient(135deg,#e7f1ec,#f2f6f0);
  color:#284b3d;
  font-size:13px;
  line-height:1.2;
  white-space:normal;
}
.business-form .stock-document-party-grid>label.stock-counterparty-field:not(.sheet-field)>span>small{
  display:block;
  color:#75877f;
  font-size:10px;
  font-weight:650;
  letter-spacing:.04em;
}
.stock-document-party-grid .stock-counterparty-field .stock-master-control,
.stock-document-party-grid .stock-counterparty-field .stock-master-control>select{
  min-height:56px;
}
.stock-document-party-grid .stock-counterparty-field .stock-master-control>select{
  padding-inline:14px 34px;
  color:#263b33;
  font-weight:650;
}
.stock-document-party-grid .stock-document-party-note{
  min-height:58px;
  border-color:#d1ded7;
  box-shadow:0 5px 14px rgba(43,73,61,.035);
}
.stock-document-step-two .form-section-title{
  align-items:center;
}
.stock-document-step-two .form-section-title>span{
  max-width:min(64%,720px);
}
@media(max-width:900px){
  .stock-document-essential-form .stock-document-party-grid{grid-template-columns:1fr}
  .stock-document-essential-form .stock-document-party-grid>.span-2{grid-column:1}
  .stock-document-step-two .form-section-title{align-items:flex-start}
  .stock-document-step-two .form-section-title>span{max-width:62%}
}
@media(max-width:620px){
  .business-form .stock-document-party-grid>label.stock-counterparty-field:not(.sheet-field){grid-template-columns:124px minmax(0,1fr)}
  .business-form .stock-document-party-grid>label.stock-counterparty-field:not(.sheet-field)>span{padding-inline:8px;font-size:12px}
  .stock-document-step-two .form-section-title>span{max-width:none}
}
.stock-document-essential-form .stock-shared-source-section{overflow:visible;max-height:none}
.stock-document-essential-form .stock-shared-lines{overflow:visible;max-height:none;align-content:start}
.stock-document-essential-form .stock-shared-source-section>.form-section-title>span{max-width:70%;white-space:normal;text-align:right}
@media(max-width:700px){.stock-document-essential-form .stock-shared-source-section>.form-section-title{align-items:flex-start;flex-direction:column}.stock-document-essential-form .stock-shared-source-section>.form-section-title>span{max-width:none;text-align:left}}
/* 锂辉石焙烧与重构料批次链路 */
.spodumene-roasting-backdrop{--roasting-modal-rail:184px;--roasting-modal-clearance:216px;left:0;display:grid;place-items:center;box-sizing:border-box;padding:12px 16px}.spodumene-roasting-backdrop.is-sidebar-collapsed{--roasting-modal-rail:74px;--roasting-modal-clearance:94px;left:0}.spodumene-roasting-backdrop>.spodumene-roasting-modal{position:absolute!important;top:50%!important;right:auto!important;bottom:auto!important;left:calc((var(--roasting-modal-rail) + 100vw)/2)!important;box-sizing:border-box;width:min(1160px,calc(100vw - var(--roasting-modal-clearance)))!important;max-width:min(1160px,calc(100vw - var(--roasting-modal-clearance)))!important;max-height:calc(100dvh - 24px);margin:0!important;transform:translate(-50%,-50%)!important}
.spodumene-roasting-modal{overflow:hidden;background:#f6f4ee;font-family:"Geist","Microsoft YaHei","PingFang SC",sans-serif}
.spodumene-roasting-modal>.modal-header{min-height:58px;padding-top:8px;padding-bottom:8px;background:linear-gradient(112deg,#fff,#f2eee4);border-bottom:1px solid #ded8ca}
.roasting-workbench{height:auto;max-height:min(680px,calc(100dvh - 92px));overflow:auto;padding:9px 11px 8px;scroll-padding-bottom:58px}
.roasting-task-home{display:grid;gap:9px}
.roasting-home-intro{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:12px 18px;overflow:hidden;border:1px solid #dcd6c9;background:radial-gradient(circle at 78% 0%,rgba(93,134,109,.14),transparent 34%),linear-gradient(105deg,#fff 0%,#f7f3ea 72%,#eef4ef 100%)}
.roasting-home-intro:before{position:absolute;inset:0 auto 0 0;width:4px;background:#4e7a60;content:""}.roasting-home-intro>div:first-child{position:relative;max-width:780px}.roasting-home-intro h3{margin:0 0 4px;color:#203229;font-size:22px;line-height:1.15;letter-spacing:-.02em}.roasting-home-intro p{margin:0;color:#665f54;font-size:12px;line-height:1.45}
.roasting-home-date{display:grid;gap:1px;min-width:122px;padding-left:14px;border-left:1px solid #d4ccbd;color:#335c48;font-size:14px;font-weight:800;text-align:right}.roasting-home-date small{color:#887d6c;font-size:10px;font-weight:600}
.roasting-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0;background:#fff;border:1px solid #dedbd3}
.roasting-kpis article{min-height:57px;padding:8px 11px;border:0;border-right:1px solid #e5e1d8;background:transparent;box-shadow:none}.roasting-kpis article:last-child{border-right:0}
.roasting-kpis span,.roasting-kpis small{display:block;color:#786f61;font-size:10px}.roasting-kpis strong{display:block;margin:2px 0;color:#27352d;font-size:19px;font-variant-numeric:tabular-nums}
.roasting-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.roasting-kpis article.needs-attention{border-color:#e3b786;background:#fff9ef}.roasting-kpis article.needs-attention strong{color:#a45d25}
.roasting-task-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(2,88px);grid-auto-flow:dense;gap:1px;padding:1px;overflow:hidden;border:1px solid #d9d6ce;background:#d9d6ce}.roasting-task-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:10px;min-width:0;min-height:0;height:auto;padding:12px 14px;border:0;background:#fff;color:#26372f;text-align:left;box-shadow:none;animation:roastingTaskIn .42s cubic-bezier(.2,.7,.2,1) both;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}.roasting-task-card:nth-child(2){animation-delay:.04s}.roasting-task-card:nth-child(3){animation-delay:.08s}.roasting-task-card:nth-child(4){animation-delay:.12s}.roasting-task-card:nth-child(5){animation-delay:.16s}.roasting-task-card.task-log{grid-column:span 4;grid-row:span 2;align-content:center;padding:20px;background:radial-gradient(circle at 90% 10%,rgba(82,126,96,.16),transparent 38%),linear-gradient(145deg,#f9fcf9,#edf4ee)}.roasting-task-card.task-qr,.roasting-task-card.task-dispatch,.roasting-task-card.task-quality,.roasting-task-card.task-inventory{grid-column:span 3;grid-row:span 1}.roasting-task-card:hover{z-index:1;background:#f7faf7;box-shadow:inset 0 0 0 2px #7fa08b}.roasting-task-card:active{transform:scale(.992)}.roasting-task-card:focus-visible{z-index:2;outline:3px solid rgba(70,115,90,.3);outline-offset:-3px}.roasting-task-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d2ded4;background:#edf4ee;color:#356a4a}.roasting-task-copy{display:grid;gap:2px;min-width:0}.roasting-task-copy strong{overflow:hidden;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.roasting-task-copy small{overflow:hidden;color:#71695d;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.roasting-task-copy em{color:#996331;font-size:10px;font-style:normal;font-weight:750}.roasting-task-arrow{display:grid;place-items:center;color:#6b8c78}.task-log .roasting-task-icon{width:52px;height:52px}.task-log .roasting-task-copy{gap:7px}.task-log .roasting-task-copy strong{font-size:21px;letter-spacing:-.02em}.task-log .roasting-task-copy small{max-width:270px;font-size:11px;line-height:1.55;white-space:normal}.task-log .roasting-task-copy em{font-size:11px}.roasting-data-sharing-note{display:flex;align-items:center;gap:8px;padding:7px 10px;border-top:1px solid #d8ded9;background:transparent;color:#687169;font-size:10px;line-height:1.45}.roasting-data-sharing-note>svg{flex:0 0 auto;color:#46735a}.roasting-data-sharing-note strong{margin-right:6px;color:#31543f}@keyframes roastingTaskIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.roasting-task-header{position:sticky;top:-9px;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 9px;padding:8px 12px;border:1px solid #d9d4c8;background:rgba(250,248,243,.97);backdrop-filter:blur(12px);box-shadow:0 7px 18px rgba(55,47,34,.07)}.roasting-back-button{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 11px;border:1px solid #cfd9d1;background:#fff;color:#3a684e;font-weight:800}.roasting-task-header>div{display:grid;gap:1px;min-width:0}.roasting-task-header>div>span{color:#8b7e6b;font-size:9px;font-weight:800;letter-spacing:.1em}.roasting-task-header>div>strong{color:#26372f;font-size:15px}.roasting-task-header>div>small{overflow:hidden;color:#71695d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.roasting-task-header>em{padding:5px 8px;background:#f2eadc;color:#8b5a2e;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}
.roasting-tab-panel{display:grid;width:100%;gap:9px;min-width:0}.roasting-tab-panel>*,.roasting-tab-panel form,.roasting-tab-panel .form-section{box-sizing:border-box;min-width:0;max-width:100%}.roasting-tab-panel .table-scroll{box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:auto}.roasting-tab-panel .roasting-ledger .data-table{min-width:760px}.roasting-tab-panel :is(input,select,textarea){box-sizing:border-box;min-width:0;width:100%}.roasting-shift-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.roasting-arrival-action-panel{display:grid;gap:10px;padding:13px 15px;border:1px solid #c9e1d2;border-radius:12px;background:linear-gradient(135deg,#f5fbf7,#eef8f3)}.roasting-arrival-action-heading{display:flex;align-items:center;gap:12px}.roasting-arrival-action-heading>div{display:grid;gap:3px;min-width:0;margin-right:auto}.roasting-arrival-action-heading strong{font-size:14px;color:#1f5a3c}.roasting-arrival-action-heading small{font-size:11px;line-height:1.45;color:#5e7769}.roasting-arrival-action-heading>span{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#e0f2e7;color:#267047;font-size:11px;font-weight:800}.roasting-arrival-action-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:8px}.roasting-arrival-action-card{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 11px;border:1px solid #d8e8dd;border-radius:10px;background:#fff}.roasting-arrival-action-meta{display:grid;gap:3px;min-width:0;margin-right:auto}.roasting-arrival-action-meta strong,.roasting-arrival-action-meta span,.roasting-arrival-action-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roasting-arrival-action-meta strong{font-size:12px;color:#294d3a}.roasting-arrival-action-meta span{font-size:11px;color:#3c7656}.roasting-arrival-action-meta small{font-size:10px;color:#789184}.roasting-arrival-action-card .primary-button{flex:0 0 auto;white-space:nowrap;padding:8px 10px}
.roasting-shift-status span{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #e1d8c8;border-radius:9px;background:#fff;color:#8d6c45;font-weight:700}.roasting-shift-status span b{margin-left:auto;font-size:11px}.roasting-shift-status span.done{border-color:#a9d2b8;background:#f0f8f2;color:#2f714a}
.roasting-log-form,.restructured-dispatch-form{display:grid;gap:8px;min-width:0}.roasting-log-form .form-section,.restructured-dispatch-form .form-section,.roasting-ledger{min-width:0;margin:0;border:1px solid #e2ded4;border-radius:10px;background:#fff;box-shadow:0 5px 14px rgba(52,45,35,.04)}
.restructured-quality-form{display:grid;gap:8px;min-width:0}.restructured-quality-form .form-section{min-width:0;margin:0;border:1px solid #e2ded4;border-radius:10px;background:#fff;box-shadow:0 5px 14px rgba(52,45,35,.04)}.roasting-tab-panel .form-section-title{min-height:38px;padding:7px 11px}.roasting-tab-panel .form-section-title strong{font-size:13px!important}.roasting-tab-panel .form-section-title>span{font-size:10px!important;line-height:1.35}.roasting-log-form label>small,.restructured-quality-form label>small{margin-top:3px;color:#927d60;font-size:10px}
.roasting-log-form .form-grid-4,.restructured-dispatch-form .form-grid-4,.restructured-quality-form .form-grid-4{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row dense}.roasting-log-form .form-grid-4>.span-2,.restructured-dispatch-form .form-grid-4>.span-2,.restructured-quality-form .form-grid-4>.span-2{grid-column:span 2}.roasting-log-form .form-grid-4>.span-3,.roasting-log-form .form-grid-4>.span-4,.restructured-dispatch-form .form-grid-4>.span-3,.restructured-dispatch-form .form-grid-4>.span-4,.restructured-quality-form .form-grid-4>.span-3,.restructured-quality-form .form-grid-4>.span-4{grid-column:1/-1}.roasting-log-form .form-grid-4>label:not(.sheet-field),.restructured-dispatch-form .form-grid-4>label:not(.sheet-field),.restructured-quality-form .form-grid-4>label:not(.sheet-field){grid-template-columns:112px minmax(0,1fr)}
.roasting-live-stock-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 11px 8px;padding:8px 10px;border:1px solid #c9ded0;border-radius:9px;background:linear-gradient(105deg,#f2f8f3,#fbfcf8);color:#496456}.roasting-live-stock-panel>div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:8px;min-width:0}.roasting-live-stock-panel span{color:#718177;font-size:10px;font-weight:750;white-space:nowrap}.roasting-live-stock-panel strong{overflow:hidden;color:#286946;font-size:16px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.roasting-live-stock-panel small{grid-column:1/-1;margin-top:2px;color:#8b978e;font-size:9px;line-height:1.3}.henda-auxiliary-stock{border-color:#c9ded0!important;background:linear-gradient(180deg,#fff,#f5fbf7)!important}.henda-auxiliary-stock .form-section-title strong{color:#286946}
.roasting-correction-banner{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #d6b170;border-radius:14px;background:linear-gradient(135deg,#fffaf0,#f4ead7);box-shadow:0 9px 22px rgba(112,75,28,.1);color:#6b4b24}.roasting-correction-banner>svg{flex:0 0 auto;color:#9c6127}.roasting-correction-banner div{display:grid;gap:3px;min-width:0}.roasting-correction-banner strong{font-size:14px}.roasting-correction-banner span{color:#7d6a52;font-size:12px}.roasting-correction-banner button{margin-left:auto;flex:0 0 auto}.roasting-log-form.is-correcting{outline:2px solid rgba(166,108,45,.18);outline-offset:4px;border-radius:17px}.correction-reason-field{padding:10px;border:1px dashed #d4aa71;border-radius:12px;background:#fffaf1}.henda-spodumene-stock{border-color:#a9ccb7!important;background:linear-gradient(180deg,#fff,#f5fbf7)!important}.henda-spodumene-stock .form-section-title strong{color:#286946}
.roasting-form-actions{position:sticky;bottom:0;z-index:5;flex-wrap:wrap;min-height:50px!important;margin-top:0;padding-top:7px!important;padding-bottom:7px!important;border:1px solid #ded6c8;border-radius:9px;background:rgba(255,255,255,.985);box-shadow:0 -6px 16px rgba(60,50,35,.08)}.roasting-form-actions>span{min-width:0;margin-right:auto;color:#6d685f;font-size:10px;line-height:1.35}.roasting-form-actions button{min-height:36px;padding-top:7px;padding-bottom:7px;white-space:nowrap}
.daily-restructured-source{border-color:#c9dacb!important;background:linear-gradient(135deg,#f7fbf7,#eef6ef)!important}
@media(max-width:1180px){.spodumene-roasting-backdrop{--roasting-modal-rail:74px;--roasting-modal-clearance:94px;left:0}}
@media(max-width:1050px){.spodumene-roasting-backdrop>.spodumene-roasting-modal{width:calc(100% - 12px);max-height:calc(100dvh - 18px)}.roasting-workbench{height:auto;max-height:calc(100dvh - 86px);padding:8px 9px 7px}.roasting-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.roasting-kpis article:nth-child(3){border-right:0}.roasting-kpis article:nth-child(-n+3){border-bottom:1px solid #e5e1d8}.roasting-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.roasting-task-card.task-log{grid-column:1/-1;grid-row:auto;min-height:98px}.roasting-task-card.task-qr,.roasting-task-card.task-dispatch,.roasting-task-card.task-quality,.roasting-task-card.task-inventory{grid-column:span 1;grid-row:auto;min-height:82px}.roasting-log-form .form-grid-4,.restructured-dispatch-form .form-grid-4,.restructured-quality-form .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.roasting-log-form .form-grid-4>.span-2,.roasting-log-form .form-grid-4>.span-3,.roasting-log-form .form-grid-4>.span-4,.restructured-dispatch-form .form-grid-4>.span-2,.restructured-dispatch-form .form-grid-4>.span-3,.restructured-dispatch-form .form-grid-4>.span-4,.restructured-quality-form .form-grid-4>.span-2,.restructured-quality-form .form-grid-4>.span-3,.restructured-quality-form .form-grid-4>.span-4{grid-column:1/-1}.roasting-form-actions>span{flex:1 1 100%}}
@media(max-width:720px){.spodumene-roasting-backdrop{--roasting-modal-rail:0px;--roasting-modal-clearance:12px;left:0;padding:6px}.spodumene-roasting-backdrop>.spodumene-roasting-modal{max-height:calc(100dvh - 12px)}.roasting-workbench{height:auto;max-height:calc(100dvh - 78px);padding:8px 8px 10px}.roasting-home-intro{align-items:flex-start;flex-direction:column;padding:12px 14px}.roasting-home-intro h3{font-size:19px}.roasting-home-date{min-width:0;padding:0;border:0;text-align:left}.roasting-kpis,.roasting-shift-status,.roasting-task-grid{grid-template-columns:1fr}.roasting-kpis article{border-right:0;border-bottom:1px solid #e5e1d8}.roasting-task-card.task-log,.roasting-task-card.task-qr,.roasting-task-card.task-dispatch,.roasting-task-card.task-quality,.roasting-task-card.task-inventory{grid-column:auto;grid-row:auto;min-height:76px;padding:10px 12px}.roasting-task-card{grid-template-columns:38px minmax(0,1fr)}.roasting-task-icon,.task-log .roasting-task-icon{width:38px;height:38px}.task-log .roasting-task-copy{gap:2px}.task-log .roasting-task-copy strong{font-size:15px}.roasting-task-copy small,.task-log .roasting-task-copy small{max-width:none;white-space:normal}.roasting-task-arrow{display:none}.roasting-task-header{top:-10px;grid-template-columns:1fr auto;gap:10px}.roasting-task-header>div{grid-column:1/-1;grid-row:2}.roasting-task-header>div>small{white-space:normal}.roasting-log-form .form-grid-4,.restructured-dispatch-form .form-grid-4,.restructured-quality-form .form-grid-4{grid-template-columns:1fr}.roasting-log-form .form-grid-4>.span-2,.roasting-log-form .form-grid-4>.span-3,.roasting-log-form .form-grid-4>.span-4,.restructured-dispatch-form .form-grid-4>.span-2,.restructured-dispatch-form .form-grid-4>.span-3,.restructured-dispatch-form .form-grid-4>.span-4,.restructured-quality-form .form-grid-4>.span-2,.restructured-quality-form .form-grid-4>.span-3,.restructured-quality-form .form-grid-4>.span-4{grid-column:1}}
@media(prefers-reduced-motion:reduce){.roasting-task-card{animation:none;transition:none}}
@media(max-width:720px){.roasting-correction-banner{align-items:flex-start;flex-wrap:wrap}.roasting-correction-banner button{margin-left:30px}}
@media(max-width:720px){.roasting-live-stock-panel{grid-template-columns:1fr;margin-inline:8px}.roasting-live-stock-panel strong{font-size:15px}}
.roasting-home-stock-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:8px 12px;border:1px solid #c9ded0;border-radius:9px;background:linear-gradient(105deg,#f2f8f3,#fbfcf8);color:#496456}.roasting-home-stock-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#dfeee3;color:#286946}.roasting-home-stock-strip>div:nth-child(2){display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:8px;min-width:0}.roasting-home-stock-strip strong{color:#286946;font-size:12px;white-space:nowrap}.roasting-home-stock-strip span{overflow:hidden;color:#496456;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.roasting-home-stock-strip>small{color:#7b8b81;font-size:10px;text-align:right;white-space:nowrap}@media(max-width:720px){.roasting-home-stock-strip{grid-template-columns:auto minmax(0,1fr);gap:8px}.roasting-home-stock-strip>small{grid-column:2;text-align:left;white-space:normal}.roasting-home-stock-strip>div:nth-child(2){grid-template-columns:1fr;gap:2px}.roasting-home-stock-strip span{white-space:normal}}
.roasting-task-grid{grid-template-rows:repeat(2,76px)}
.roasting-kpi-material{position:relative;overflow:visible}.roasting-kpi-material>.roasting-kpi-primary,.roasting-kpi-material>.roasting-kpi-secondary{display:flex!important;align-items:center;justify-content:space-between;gap:6px;min-width:0}.roasting-kpi-material>.roasting-kpi-primary{margin-top:1px}.roasting-kpi-material>.roasting-kpi-primary span,.roasting-kpi-material>.roasting-kpi-secondary span{display:block!important;color:#6c7c71!important;font-size:10px!important;white-space:nowrap}.roasting-kpi-material>.roasting-kpi-primary b{color:#27352d;font-size:18px;line-height:1.1;white-space:nowrap;font-variant-numeric:tabular-nums}.roasting-kpi-material>.roasting-kpi-secondary{margin-top:4px;padding-top:4px;border-top:1px solid #cfe0d3}.roasting-kpi-material>.roasting-kpi-secondary span{color:#286946!important;font-size:10px!important;font-weight:800}.roasting-kpi-material>.roasting-kpi-secondary b{color:#286946;font-size:14px;line-height:1.1;white-space:nowrap;font-variant-numeric:tabular-nums}@media(max-width:720px){.roasting-kpi-material>.roasting-kpi-secondary{max-width:220px}}
@media print{body.printing-spodumene-roasting .app-shell>*:not(.modal-backdrop){display:none!important}body.printing-spodumene-roasting .spodumene-roasting-modal{position:static;width:100%;max-height:none;box-shadow:none}body.printing-spodumene-roasting .roasting-workbench{height:auto;overflow:visible;padding:0}body.printing-spodumene-roasting .roasting-task-home,body.printing-spodumene-roasting .roasting-task-header,body.printing-spodumene-roasting form,body.printing-spodumene-roasting .modal-header button{display:none!important}}

/* release-359：焙烧管理内独立的重构料二维码生成、扫码、上架与发货衔接工作区。 */
/* 20260820-secondary-menu-visibility-release-362：恢复已授权一级菜单的二级菜单悬停显示，保留权限精简与浏览页工作台。 */

/* 20260821-draft-actions-finance-workbench-release-368：草稿操作文案统一、财务表单动作补齐及权限工作台紧凑化。 */

/* 20260821-mobile-qr-readonly-release-369：系统唯一二维码升级为微信、支付宝可识别的 HTTPS 只读身份入口。 */

/* 所有输入型业务表单标题栏右侧的小型只读二维码；查询、打印等只读表单不显示。 */
/* 20260821-form-qr-titlebar-alignment-release-386：表单身份码统一迁入页面标题栏右侧。 */
.has-system-form-qr{position:relative!important}
.system-form-qr-titlebar-host{position:relative;z-index:8;display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:5px;margin-left:auto;overflow:visible}
.modal-header.has-system-form-titlebar-qr>.modal-title-block{flex:1 1 auto;min-width:0}
.modal-header-actions>.system-form-qr-titlebar-host,.office-ai-document-header-actions>.system-form-qr-titlebar-host{margin-left:0}
.has-system-form-titlebar-qr{display:flex;align-items:center}
.system-form-qr-inline-titlebar-host{width:100%;min-height:54px;padding:5px 7px;border-bottom:1px solid #d7e2dd;background:linear-gradient(90deg,#f8fbf9,#eef5f1)}
.system-form-qr-corner{position:relative;z-index:7;top:auto;right:auto;flex:0 0 78px;width:78px;display:grid;justify-items:center;gap:1px;padding:2px;border:1px solid #c7d9d2;border-radius:10px;background:rgba(255,255,255,.98);box-shadow:0 5px 14px rgba(30,83,67,.14);color:#166b54;line-height:1;transition:transform .16s ease,box-shadow .16s ease}
.system-form-qr-corner:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(30,83,67,.22)}
.system-form-qr-mini{width:72px;height:72px;display:grid;place-items:center;overflow:hidden;border:4px solid #fff;border-radius:6px;background:#fff}
.system-form-qr-mini canvas,.system-form-qr-mini img{display:block!important;width:64px!important;height:64px!important;max-width:none!important;image-rendering:pixelated}
.system-form-qr-corner small{max-width:74px;overflow:hidden;color:#2d6656;font-size:9px;font-weight:850;line-height:12px;white-space:nowrap;text-overflow:ellipsis}
.system-form-qr-corner[data-status="loading"] .system-form-qr-mini{background:#eef4f1;color:#6d887f}
.system-form-qr-corner[data-status="submitted"]{border-color:#83bea9;background:#f4fbf8}
.system-form-qr-corner[data-status="error"]{border-color:#d9b8ae;background:#fff8f5;color:#a94d39}
.system-form-qr-corner[data-status="ready"],.system-form-qr-corner[data-status="submitted"]{cursor:zoom-in}
.system-form-qr-corner:focus-visible{outline:3px solid rgba(35,124,96,.3);outline-offset:2px}
.system-form-qr-corner.is-expanded{z-index:18;width:250px;padding:5px 5px 7px;cursor:zoom-out;transform:none;box-shadow:0 18px 46px rgba(19,57,46,.28)}
.system-form-qr-titlebar-host .system-form-qr-corner.is-expanded,.office-ai-document-help-host .system-form-qr-corner.is-expanded{position:absolute;top:calc(100% + 6px);right:0}
.system-form-qr-corner.is-expanded .system-form-qr-mini{width:240px;height:240px}
.system-form-qr-corner.is-expanded .system-form-qr-mini canvas,.system-form-qr-corner.is-expanded .system-form-qr-mini img{width:232px!important;height:232px!important}
.system-form-qr-corner.is-expanded small{max-width:240px;font-size:11px;line-height:14px}
.office-ai-document-help-host{position:relative}.office-ai-document-help-host .system-form-qr-corner{position:relative;top:auto;right:auto;order:-1;flex:0 0 78px}
@media(max-width:760px){.system-form-qr-titlebar-host{gap:2px}.system-form-qr-corner{transform:none;transform-origin:center right}.system-form-qr-corner:hover{transform:translateY(-1px)}}

/* 两家公司为二级菜单；每家公司展开自己完整、独立的三级财务功能。 */
.finance-company-menu-tree{display:none;align-content:start;width:148px;gap:7px;padding:6px;overflow:visible!important;overscroll-behavior:contain}
.finance-company-menu-group{position:static;display:grid;gap:0;border:1px solid #c8d8d2;border-radius:13px;background:#f8fbfa;box-shadow:0 6px 16px rgba(25,66,54,.09);overflow:visible}
.finance-company-menu-group.is-expanded{border-color:#7fb7a4;background:#f5fbf8;box-shadow:0 10px 24px rgba(25,84,67,.16)}
.submenu-item.finance-company-ledger-entry{width:100%;min-height:46px;margin:0;padding:7px;border:0;border-radius:0;background:linear-gradient(135deg,#fafdfc,#e8f3ee);box-shadow:none;font-weight:850}
.submenu-item.finance-company-ledger-entry>span:nth-child(2){display:flex;align-items:center;min-width:0;text-align:left;white-space:nowrap}.submenu-item.finance-company-ledger-entry strong{display:block;overflow:visible;font-size:clamp(13px,.78vw,15px);font-weight:900;line-height:1.2;letter-spacing:-.02em;white-space:nowrap}.submenu-item.finance-company-ledger-entry small{color:#71847d;font-size:8px;font-weight:700}
.submenu-item.finance-company-ledger-entry>svg{margin-left:auto;color:#5f7f74;flex:0 0 auto}
.submenu-item.finance-company-ledger-entry.active{border:0;background:linear-gradient(135deg,#e7f5ef,#cfe8de);color:#145944;box-shadow:inset 4px 0 #2f8b70}
.finance-company-third-menu{position:absolute;z-index:48;left:calc(100% + 5px);top:0;display:none;width:178px;max-height:min(740px,calc(100dvh - var(--submenu-top,72px) - 18px));padding:5px 4px 8px;overflow:auto;border:1px solid #9fb8ae;border-top:4px solid #318469;border-radius:12px;background:linear-gradient(145deg,#fbfefd,#edf7f3);box-shadow:0 18px 44px rgba(20,57,47,.26);overscroll-behavior:contain}
.finance-company-menu-tree:not(:hover) .finance-company-menu-group.is-expanded>.finance-company-third-menu,
.finance-company-menu-group:hover>.finance-company-third-menu,
.finance-company-menu-group:focus-within>.finance-company-third-menu{display:grid}
.finance-company-menu-tree:hover .finance-company-menu-group.is-expanded:not(:hover):not(:focus-within)>.finance-company-third-menu{display:none}
.finance-company-third-menu .finance-third-section{margin:7px 5px 3px;padding:0;color:#72867f;font-size:8px;letter-spacing:.05em}
.submenu-item.finance-company-third-level{width:calc(100% - 6px);min-height:32px;margin:1px 3px;padding:5px 6px 5px 8px;border-left:2px solid #c9ded6;border-radius:7px;background:rgba(255,255,255,.8);font-size:10px;line-height:1.25;white-space:normal}
.finance-company-third-menu::before{position:absolute;top:25px;left:-9px;width:16px;height:16px;border-left:1px solid #9fb8ae;border-bottom:1px solid #9fb8ae;background:#f7fcfa;content:"";transform:rotate(45deg)}
.finance-company-third-menu::-webkit-scrollbar{width:7px}.finance-company-third-menu::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#80a798;background-clip:padding-box}
.finance-accounting-book-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 18px;border:1px solid #b8d4ca;border-radius:16px;background:linear-gradient(120deg,#f7fcfa,#e5f2ed);box-shadow:0 9px 24px rgba(27,77,61,.12)}
.finance-accounting-book-banner>div{display:grid;gap:3px}.finance-accounting-book-banner span{display:flex;align-items:center;gap:6px;color:#52746a;font-size:11px;font-weight:800}.finance-accounting-book-banner strong{color:#174f3e;font-size:18px}.finance-accounting-book-banner small{color:#687d76;font-size:11px}.finance-accounting-book-banner.is-shenzhen{border-color:#abc8da;background:linear-gradient(120deg,#f8fcff,#e8f3fa)}.finance-accounting-book-banner.is-shenzhen strong{color:#245f83}
.finance-accounting-book-banner>.finance-ledger-load-state{grid-column:1/-1;display:flex;grid-template-columns:none;align-items:center;gap:10px;padding:9px 11px;border:1px solid #b9d6ca;border-radius:11px;background:rgba(255,255,255,.72)}
.finance-ledger-load-state>svg{flex:0 0 auto;color:#2d8568}.finance-ledger-load-state.is-loading>svg{animation:spin 1.2s linear infinite}.finance-ledger-load-state>div{display:grid;gap:2px;min-width:0;flex:1}.finance-ledger-load-state>div strong{font-size:13px}.finance-ledger-load-state>div small{font-size:11px}.finance-ledger-load-state.is-error{border-color:#e2b1a9;background:#fff7f4}.finance-ledger-load-state.is-error>svg,.finance-ledger-load-state.is-error>div strong{color:#a44435}.finance-ledger-load-state>button{flex:0 0 auto}

/* 20260821-finance-guangdong-ledger-recovery-release-387：广东账套同菜单强制刷新，完整台账加载状态可见且可重试。 */
/* 20260821-business-form-helper-copy-cleanup-release-388：采购、领用及产品申请表删除可直接录入的重复解释文字，保留原输入功能。 */
/* 20260822-six-application-readable-single-row-release-391：六类申请明细仍固定单行，扩大文字型字段和输入控件以便完整录入查看。 */
.production-application-modal .production-multi-detail-section{min-width:0;overflow:hidden!important}
.production-application-modal .production-detail-table-scroll{width:100%;min-width:0;max-height:min(52vh,520px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid #cbdde4;border-radius:10px;background:#fff;scrollbar-color:#79a4b4 #e8f1f4;scrollbar-width:thin}
.production-application-modal .production-detail-table-scroll>.production-detail-columns{position:sticky;top:0;z-index:3}
.production-application-modal .production-detail-table-scroll>:is([data-production-request-lines],[data-stock-application-lines]){min-height:0!important;max-height:none!important;padding:0!important;overflow:visible!important;background:#fff!important}
.production-application-modal .production-detail-table-scroll :is(.production-detail-columns,.production-detail-row){align-items:start;gap:6px;padding:7px 8px}
.production-application-modal .production-detail-table-scroll .production-detail-columns{font-size:9px;line-height:1.25;white-space:nowrap}
.production-application-modal .production-detail-table-scroll .production-detail-row{box-sizing:border-box;min-height:72px;margin:0;border-top:1px solid #dfe9ed;background:#fff}
.production-application-modal .production-detail-table-scroll .production-detail-row:first-child{border-top:0}
.production-application-modal .production-detail-table-scroll .production-detail-row>label{display:grid;align-content:start;gap:2px;min-width:0}
.production-application-modal .production-detail-table-scroll .production-detail-row label>span{overflow:hidden;color:#5e7783;font-size:9px;line-height:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.production-application-modal .production-detail-table-scroll .production-detail-row :is(input,select,textarea){box-sizing:border-box;width:100%;min-width:0;min-height:38px;height:38px;padding:6px 9px;border-radius:8px;font-size:12px;line-height:1.25}
.production-application-modal .production-detail-table-scroll .production-detail-row input::placeholder{font-size:10px}
.production-application-modal .production-detail-table-scroll .production-detail-row .addable-choice-control{min-width:0}
.production-application-modal .production-detail-table-scroll .production-line-index{display:grid;place-items:center;align-self:stretch;min-height:62px;border-radius:8px;background:#e7f2f5;color:#226d80;font-size:11px;font-weight:900}
.production-application-modal .production-detail-table-scroll .production-detail-row>.icon-button{align-self:start;width:34px;height:34px;margin-top:16px;padding:0}
.production-application-modal .production-detail-table-scroll .application-identity-qr{display:grid!important;align-self:start!important;align-content:start;justify-items:center;gap:1px!important;min-width:0;min-height:0;height:auto;padding:0;border:0;background:transparent}
.production-application-modal .production-detail-table-scroll .application-identity-qr>span{display:none}
.production-application-modal .production-detail-table-scroll .application-identity-qr>[data-qr-payload]{width:76px;height:76px;margin:0;padding:2px;border:1px solid #b8d4ca;border-radius:6px;background:#fff;cursor:zoom-in}
.production-application-modal .production-detail-table-scroll .application-identity-qr :is(img,canvas){width:70px!important;height:70px!important;image-rendering:pixelated}
.production-application-modal .production-detail-table-scroll .application-identity-qr small{display:none}
.production-application-modal .purchase-material-columns,.production-application-modal .purchase-material-row{grid-template-columns:34px 190px 125px 145px 75px 90px 130px 120px 220px 34px!important;min-width:1208px!important}
.production-application-modal .stock-application-columns,.production-application-modal .stock-application-row{grid-template-columns:34px 190px 125px 145px 110px 75px 90px 155px 230px 88px 34px!important;min-width:1349px!important}
.production-application-modal .production-add-line{width:100%;margin-top:7px}
.finance-book-identity{min-width:180px;padding-left:18px;border-left:1px solid rgba(74,116,101,.22);text-align:right}.finance-book-identity span{justify-content:flex-end}.finance-book-identity strong{font-size:15px}
.finance-contract-review-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.finance-contract-review-mode button{min-height:42px;border:1px solid #c9d9d3;border-radius:10px;background:#f7faf9;color:#35584c;font-weight:800;cursor:pointer}
.finance-contract-review-mode button.active{border-color:#2e8b70;background:#e4f3ed;color:#145b46;box-shadow:0 5px 14px rgba(35,115,89,.16)}
.finance-contract-review-panel[hidden]{display:none!important}
.finance-company-context{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;border:1px solid #bcd6cc;border-radius:12px;background:linear-gradient(135deg,#f8fcfa,#e5f1ec);color:#214f41;box-shadow:0 5px 16px rgba(25,83,66,.1)}
.finance-company-context span{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800}.finance-company-context strong{font-size:16px}.finance-company-context small{color:#5d766d}
.ar-ap-form-actions,.ledger-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ar-ap-form-actions{position:sticky;z-index:8;bottom:0;justify-content:flex-end;margin-top:8px;padding:10px 8px;border-top:1px solid #d9ddd8;background:rgba(248,247,242,.96);box-shadow:0 -8px 18px rgba(52,68,60,.08);backdrop-filter:blur(8px)}
@media(max-width:760px){.finance-contract-review-mode{grid-template-columns:1fr}.finance-company-menu-tree{padding:5px}.submenu-item.finance-company-third-level{width:calc(100% - 6px);margin-left:3px}.finance-company-context{grid-template-columns:1fr}.finance-company-context small{display:none}.finance-accounting-book-banner{grid-template-columns:1fr}.finance-book-identity{padding-top:8px;padding-left:0;border-top:1px solid rgba(74,116,101,.22);border-left:0;text-align:left}.finance-book-identity span{justify-content:flex-start}}

/* 20260821-canteen-department-routing-release-373：食堂审批发起人快照与部门负责人节点自动路由修复。 */
/* 20260821-finance-dual-company-arap-release-376：双公司财务、往来核销与明细纠错正式发布版。 */
/* 20260821-cash-return-workflow-compact-release-377：现金采购执行整单回转与生效审批流程负责人名单精简。 */
/* 20260821-finance-company-ledger-hierarchy-release-378：广东现有账套与深圳全新账套的二级/三级菜单及独立核算。 */

/* 财务分项明细账与审批式纠错 */
.ledger-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.ledger-row-actions .row-action{margin:0}.finance-special-correction{border-color:#d8b16b!important;color:#85550d!important;background:#fff8e8!important}.finance-special-correction:hover{border-color:#c78e2f!important;background:#fff1ce!important}.finance-correction-banner{border-color:#e4b85f!important;color:#794c08!important;background:linear-gradient(90deg,#fff4d8,#fffaf0)!important}.finance-correction-reason{border-color:#ead09a!important;background:#fffdf6!important}.finance-correction-reason textarea{min-height:86px}.ledger-function-section-bank-accounts .ledger-function-head,.ledger-function-section-bank-journal .ledger-function-head{background:linear-gradient(110deg,#f5fbf8,#fffdf7)}.ledger-function-section-account-mappings .ledger-function-head{background:linear-gradient(110deg,#f7f4ff,#fffdf8)}.ledger-function-section-ar-ap-ledger .ledger-function-head{background:linear-gradient(110deg,#fff8ed,#fffdf8)}.ledger-function-section-special-corrections{border-color:#e0c386}.ledger-function-section-special-corrections .ledger-function-head{background:linear-gradient(110deg,#fff4d8,#fffdf7)}.ledger-function-section-special-corrections .ledger-function-title>i{color:#8a570c;background:#ffedc1;box-shadow:inset 0 0 0 1px #e8cd92}.ledger-function-section-bank-accounts .ledger-section-table,.ledger-function-section-bank-journal .ledger-section-table,.ledger-function-section-ar-ap-ledger .ledger-section-table{min-width:1500px}@media(max-width:900px){.ledger-row-actions{flex-direction:column;align-items:stretch}.ledger-row-actions .row-action{justify-content:center}.finance-correction-reason textarea{min-height:110px}}
.office-ai-editor-body>header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px}
.office-ai-document-identity-qr,.saved-document-identity-qr{display:grid;place-items:center;gap:1px;margin:0;padding:2px;border:1px solid #bfd2ca;border-radius:9px;background:#fff;color:#276b57;box-shadow:0 5px 13px rgba(31,83,66,.12);font:inherit;line-height:1;cursor:zoom-in}
.office-ai-document-identity-qr>span,.saved-document-identity-qr>span{display:grid;width:68px;height:68px;place-items:center;overflow:hidden;border:3px solid #fff;border-radius:6px;background:#fff}
.office-ai-document-identity-qr canvas,.office-ai-document-identity-qr img,.saved-document-identity-qr canvas,.saved-document-identity-qr img{display:block!important;width:62px!important;height:62px!important;max-width:none!important;image-rendering:pixelated}
.office-ai-document-identity-qr small,.saved-document-identity-qr small{color:#55766b;font-size:8px;font-weight:800;line-height:10px;white-space:nowrap}
.office-ai-document-identity-qr.pending{width:62px;min-height:53px;cursor:default;color:#789088;background:#f2f6f4}
.office-ai-document-identity-qr.pending small{max-width:56px;white-space:normal;text-align:center;line-height:9px}
.office-ai-document-identity-qr.is-expanded,.saved-document-identity-qr.is-expanded{position:absolute;z-index:28;width:250px;padding:5px 5px 7px;cursor:zoom-out;box-shadow:0 18px 48px rgba(20,59,47,.3)}
.office-ai-document-identity-qr.is-expanded{top:8px;right:8px}
.saved-document-identity-qr.is-expanded{top:7px;right:86px}
.office-ai-document-identity-qr.is-expanded>span,.saved-document-identity-qr.is-expanded>span{width:240px;height:240px}
.office-ai-document-identity-qr.is-expanded canvas,.office-ai-document-identity-qr.is-expanded img,.saved-document-identity-qr.is-expanded canvas,.saved-document-identity-qr.is-expanded img{width:232px!important;height:232px!important}
.office-ai-document-identity-qr.is-expanded small,.saved-document-identity-qr.is-expanded small{font-size:10px;line-height:13px}
.saved-document-preview-card>header{position:relative;grid-template-columns:25px minmax(0,1fr) auto auto}
.saved-document-preview-card>header>.saved-document-identity-qr{align-self:center}
@media(max-width:700px){.office-ai-document-identity-qr{transform:scale(.9);transform-origin:right center}.saved-document-preview-card>header{grid-template-columns:23px minmax(0,1fr) auto}.saved-document-preview-card>header>.saved-document-identity-qr{grid-column:3;grid-row:1}.saved-document-preview-card>header>a{grid-column:2/-1;justify-self:end}.saved-document-identity-qr.is-expanded{right:8px}}
.office-ai-document-header-actions{position:relative}.office-ai-document-header-actions .office-ai-document-identity-qr.is-expanded{top:calc(100% + 6px);right:40px}
.drawer-permission-note.final-rollback-note {
  border-color: #e3b9a8;
  background: #fff7f2;
  color: #8c3d25;
}

/* 20260821-finance-context-menu-dismiss-release-379：公司账套只属于财务管理；选择二、三级菜单后立即收起，避免覆盖其他一级模块。 */
/* 20260821-shenzhen-finance-scope-label-release-380：深圳账套工商全称仅在财务表单、报表、打印及导出中生效。 */
/* 20260821-finance-real-three-level-menu-release-381：财务一级菜单下设双公司二级入口，各自右侧展开完整三级功能。 */
/* 20260821-finance-compact-three-level-menu-release-382：财务二、三级菜单显示框缩小约40%。 */
/* 20260821-finance-company-label-legibility-release-385：公司二级菜单文字自适应放大并强制单行显示。 */
.nav-group.submenu-dismissed > .submenu-list,
.nav-group.submenu-dismissed:hover > .submenu-list,
.nav-group.submenu-dismissed:focus-within > .submenu-list,
.nav-group.submenu-dismissed.submenu-hovering > .submenu-list {
  display: none !important;
  animation: none !important;
  pointer-events: none !important;
}
.accounting-entry-form input[data-finance-signed] {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.accounting-entry-form input[data-ar-ap-account-preview] {
  color: #245b4c;
  background: #f0f7f4;
}
.restructured-qr-workbench{min-width:0}.restructured-qr-hero{display:flex;align-items:center;gap:14px;padding:17px 19px;border:1px solid #bfd5c8;border-radius:17px;background:linear-gradient(130deg,#edf7f1,#fff8ea);box-shadow:0 10px 24px rgba(43,75,59,.08)}.restructured-qr-hero>span{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,#357a5a,#245a45);color:#fff;box-shadow:0 9px 18px rgba(39,99,72,.22)}.restructured-qr-hero>div{display:grid;gap:3px;min-width:0}.restructured-qr-hero small{color:#6c8879;font-size:10px;font-weight:800;letter-spacing:.08em}.restructured-qr-hero strong{color:#244d3a;font-size:20px}.restructured-qr-hero p{margin:0;color:#65756c;font-size:12px}.restructured-qr-steps{display:flex;align-items:center;justify-content:center;gap:12px;padding:11px 14px;border:1px solid #ded8ca;border-radius:13px;background:#fff;color:#635d52;font-size:12px;font-weight:750}.restructured-qr-steps span{display:flex;align-items:center;gap:7px;white-space:nowrap}.restructured-qr-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#3b785d;color:#fff;font-size:10px}.restructured-qr-steps i{color:#b0a28d}.restructured-qr-scanner{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1.15fr) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid #b7cfbf;border-radius:15px;background:linear-gradient(145deg,#f4fbf7,#fff);box-shadow:0 8px 20px rgba(45,79,61,.07)}.restructured-qr-scanner>div{display:flex;align-items:center;gap:11px;min-width:0;color:#347155}.restructured-qr-scanner>div span{display:grid;gap:2px}.restructured-qr-scanner>div strong{font-size:14px}.restructured-qr-scanner>div small{color:#718078;font-size:10px}.restructured-qr-scanner input{width:100%;min-height:44px;border:1px solid #aec9b9;border-radius:11px;background:#fff;padding:0 13px;font-size:14px;box-shadow:inset 0 1px 3px rgba(36,72,54,.05)}.restructured-qr-scanner button{min-height:44px}.restructured-qr-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.55fr);gap:13px;min-width:0}.restructured-qr-list,.restructured-qr-detail{min-width:0;border:1px solid #ddd8ce;border-radius:16px;background:#fff;box-shadow:0 8px 21px rgba(54,48,39,.055)}.restructured-qr-list{overflow:hidden}.restructured-qr-list>header{padding:13px 15px;border-bottom:1px solid #e8e3da;background:#f7f5ef}.restructured-qr-list>header div{display:flex;align-items:center;justify-content:space-between;gap:10px}.restructured-qr-list>header strong{color:#38483f;font-size:13px}.restructured-qr-list>header small{color:#858078;font-size:10px}.restructured-qr-list>div{display:grid;max-height:470px;overflow:auto}.restructured-qr-list>div>button{display:grid;grid-template-columns:1fr auto;gap:4px 10px;width:100%;padding:12px 15px;border:0;border-bottom:1px solid #ece8df;background:#fff;text-align:left;color:#4f554f}.restructured-qr-list>div>button:hover,.restructured-qr-list>div>button.selected{background:#edf7f1}.restructured-qr-list>div>button.selected{box-shadow:inset 4px 0 #347557}.restructured-qr-list button span{color:#8c857a;font-size:9px}.restructured-qr-list button strong{color:#305744;font-size:13px}.restructured-qr-list button small{grid-column:1/-1;color:#686f69;font-size:10px}.restructured-qr-list button em{grid-column:1/-1;color:#8b7455;font-size:9px;font-style:normal}.restructured-qr-detail{display:grid;align-content:start;gap:12px;padding:14px}.restructured-qr-detail .inventory-lot-card{margin:0}.restructured-qr-location{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;border:1px solid #d7e2da;border-radius:12px;background:#f7fbf8}.restructured-qr-location label{display:grid;gap:5px}.restructured-qr-location label>span{color:#637268;font-size:10px;font-weight:750}.restructured-qr-location input{width:100%;min-height:40px;border:1px solid #c6d7cc;border-radius:9px;background:#fff;padding:0 11px}.restructured-qr-detail .inventory-code-binding-panel{grid-column:auto}.restructured-qr-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.restructured-qr-placeholder{display:grid;place-items:center;align-content:center;gap:7px;min-height:330px;color:#8b918c;text-align:center}.restructured-qr-placeholder svg{color:#7da48f}.restructured-qr-placeholder strong{color:#526159;font-size:14px}.restructured-qr-placeholder span{max-width:420px;font-size:11px}.restructured-qr-source-ledger{min-width:0}.restructured-qr-source-ledger button[disabled]{color:#aaa;cursor:not-allowed}.restructured-qr-source-ledger .form-section-title>span{max-width:68%;text-align:right}
@media(max-width:1000px){.restructured-qr-scanner{grid-template-columns:1fr auto}.restructured-qr-scanner>div{grid-column:1/-1}.restructured-qr-layout{grid-template-columns:1fr}.restructured-qr-list>div{max-height:260px}}
@media(max-width:720px){.restructured-qr-hero{align-items:flex-start;padding:14px}.restructured-qr-hero strong{font-size:17px}.restructured-qr-steps{justify-content:flex-start;overflow:auto}.restructured-qr-scanner{grid-template-columns:1fr}.restructured-qr-scanner>div{grid-column:auto}.restructured-qr-location{grid-template-columns:1fr}.restructured-qr-actions{display:grid;grid-template-columns:1fr}.restructured-qr-source-ledger .form-section-title>span{max-width:none;text-align:left}}

/* 20260820-inventory-two-submenus-release-353：中材亨达、碳酸锂厂仓库与生产车间AI收发对账。 */
.three-unit-reconciliation{display:grid;gap:14px;min-width:0}.reconciliation-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 142px 142px auto auto;align-items:end;gap:10px;padding:15px 16px;border:1px solid #ded8ca;border-radius:16px;background:linear-gradient(135deg,#fffdf8,#f3f0e7);box-shadow:0 10px 24px rgba(63,54,38,.07)}.reconciliation-toolbar>div{display:grid;align-self:center;gap:4px}.reconciliation-toolbar>div strong{display:flex;align-items:center;gap:8px;color:#3d493f;font-size:16px}.reconciliation-toolbar>div strong svg{color:#987044}.reconciliation-toolbar>div span,.reconciliation-toolbar label>span{color:#7c786e;font-size:11px}.reconciliation-toolbar label{display:grid;gap:5px}.reconciliation-toolbar input{width:100%;min-height:38px;border:1px solid #d8d2c4;border-radius:9px;background:#fff;padding:0 9px;color:#49463f}.reconciliation-overview{display:grid;grid-template-columns:1.25fr repeat(3,minmax(0,1fr));gap:11px}.reconciliation-overview article{display:grid;gap:5px;min-height:100px;padding:15px;border:1px solid #dedbd3;border-radius:15px;background:#fff;box-shadow:0 8px 19px rgba(58,52,43,.055)}.reconciliation-overview article>span{color:#7a776e;font-size:11px}.reconciliation-overview article>strong{color:#313d37;font-size:25px;line-height:1}.reconciliation-overview article>small{color:#777970;font-size:10px}.reconciliation-result-card.active{border-color:#9bc7ad;background:linear-gradient(145deg,#f8fffa,#eaf6ee)}.reconciliation-result-card.warning{border-color:#e8c88b;background:linear-gradient(145deg,#fffdf7,#fff3dc)}.reconciliation-result-card.danger{border-color:#e4aaa2;background:linear-gradient(145deg,#fffafa,#fae9e6)}.reconciliation-unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reconciliation-unit{overflow:hidden;border:1px solid #ded9ce;border-radius:17px;background:#fff;box-shadow:0 11px 25px rgba(51,46,38,.07)}.reconciliation-unit header{display:flex;align-items:center;gap:10px;padding:14px 15px;border-bottom:1px solid rgba(60,60,60,.08)}.reconciliation-unit header>b{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.7);font-size:14px}.reconciliation-unit header>div{display:grid;gap:2px}.reconciliation-unit header strong{font-size:14px}.reconciliation-unit header span{font-size:10px;opacity:.72}.reconciliation-unit>div{display:grid;gap:0;padding:5px 15px 10px}.reconciliation-unit p{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:9px 0;border-bottom:1px dashed #e6e2da;color:#6e716b;font-size:11px}.reconciliation-unit p:last-child{border-bottom:0}.reconciliation-unit p strong{color:#313d38;font-size:14px;white-space:nowrap}.reconciliation-unit p small{font-size:9px;font-weight:600}.reconciliation-unit.unit-1 header{background:linear-gradient(120deg,#faecd9,#f5dcb8);color:#75451f}.reconciliation-unit.unit-2 header{background:linear-gradient(120deg,#e5f3e9,#cfe8d7);color:#2d6241}.reconciliation-unit.unit-3 header{background:linear-gradient(120deg,#e8eef8,#d4e0f3);color:#345377}.reconciliation-flow-arrow{display:flex;align-items:center;justify-content:center;gap:13px;padding:10px 14px;border:1px dashed #cfc7b7;border-radius:13px;background:#f8f6f1;color:#666157;font-size:11px;font-weight:800}.reconciliation-flow-arrow svg{color:#aa7a49}.reconciliation-content-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:12px;min-width:0}.reconciliation-insights,.reconciliation-history{overflow:hidden;border:1px solid #dfdbd2;border-radius:15px;background:#fff}.reconciliation-insights>.form-section-title,.reconciliation-history>.form-section-title{margin:0;padding:13px 15px;background:#f8f6f1}.reconciliation-insights>article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:11px;padding:12px 15px;border-top:1px solid #ece8df}.reconciliation-insights>article>span{align-self:start;padding:4px 7px;border-radius:999px;text-align:center;font-size:9px;font-weight:850}.reconciliation-insights>article.active>span{background:#e3f3e8;color:#34704a}.reconciliation-insights>article.pending>span{background:#eef0f2;color:#5d6670}.reconciliation-insights>article.warning>span{background:#fff1d7;color:#956018}.reconciliation-insights>article.danger>span{background:#f9e3df;color:#9d4237}.reconciliation-insights>article div{display:grid;gap:4px}.reconciliation-insights>article strong{color:#3b413d;font-size:12px}.reconciliation-insights>article p{margin:0;color:#696c67;font-size:11px}.reconciliation-insights>article small{display:flex;align-items:center;gap:5px;color:#7e674e;font-size:10px}.reconciliation-history>article{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:11px 14px;border-top:1px solid #ece8df}.reconciliation-history>article strong{color:#44504a;font-size:11px}.reconciliation-history>article>span{color:#85847d;font-size:9px}.reconciliation-history>article em{grid-column:2;grid-row:1/span 2;align-self:center;font-style:normal}.reconciliation-loading{display:grid;place-items:center;gap:6px;min-height:280px;border:1px solid #ded9ce;border-radius:17px;background:#fff;color:#817d73}.reconciliation-loading svg{animation:spin 1s linear infinite;color:#9b7148}.reconciliation-loading strong{color:#4e554f;font-size:14px}.reconciliation-loading span{font-size:11px}.reconciliation-match-ledger td>small{display:block;margin-top:3px;color:#8a887f;font-size:9px}.reconciliation-difference{color:#b2493e!important;font-weight:850}
@media(max-width:1180px){.reconciliation-toolbar{grid-template-columns:minmax(240px,1fr) 135px 135px}.reconciliation-toolbar button{width:100%}.reconciliation-toolbar .primary-button{grid-column:2}.reconciliation-toolbar .outline-button{grid-column:3}.reconciliation-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.reconciliation-toolbar{grid-template-columns:1fr 1fr}.reconciliation-toolbar>div{grid-column:1/-1}.reconciliation-toolbar button{grid-column:auto!important}.reconciliation-unit-grid{grid-template-columns:1fr}.reconciliation-flow-arrow{justify-content:flex-start;overflow-x:auto}.reconciliation-flow-arrow span{white-space:nowrap}.reconciliation-content-grid{grid-template-columns:1fr}}
@media(max-width:620px){.reconciliation-toolbar,.reconciliation-overview{grid-template-columns:1fr}.reconciliation-toolbar label,.reconciliation-toolbar button{grid-column:auto!important}.reconciliation-flow-arrow{display:grid;grid-template-columns:1fr auto;justify-content:stretch}.reconciliation-flow-arrow span{white-space:normal}.reconciliation-flow-arrow svg:nth-of-type(2){display:none}.reconciliation-match-ledger .table-scroll{max-width:calc(100vw - 40px)}}
@media print{body.printing-spodumene-reconciliation .app-shell>*:not(.modal-backdrop){display:none!important}body.printing-spodumene-reconciliation .spodumene-roasting-modal{position:static;width:100%;max-height:none;box-shadow:none}body.printing-spodumene-reconciliation .modal-header button,body.printing-spodumene-reconciliation .roasting-process-strip,body.printing-spodumene-reconciliation .roasting-kpis,body.printing-spodumene-reconciliation .roasting-tabs,body.printing-spodumene-reconciliation .reconciliation-toolbar button{display:none!important}body.printing-spodumene-reconciliation .roasting-workbench{height:auto;overflow:visible;padding:0}body.printing-spodumene-reconciliation .reconciliation-toolbar{grid-template-columns:1fr 120px 120px;box-shadow:none}body.printing-spodumene-reconciliation .reconciliation-unit-grid{grid-template-columns:repeat(3,1fr)}body.printing-spodumene-reconciliation .reconciliation-content-grid{grid-template-columns:1fr}body.printing-spodumene-reconciliation .reconciliation-history{display:none}body.printing-spodumene-reconciliation .three-unit-reconciliation{font-size:10px}}

/* AI收发对账迁入进销管控，禁用该页面字段悬停解释。 */
.inventory-view-switcher .inventory-enter-reconciliation{min-height:48px;padding:10px 18px;border-color:#af8955;background:linear-gradient(135deg,#fff8ec,#f1dfc2);color:#6f4c22;font-size:13px;box-shadow:0 9px 19px rgba(119,82,37,.17),inset 0 1px 0 rgba(255,255,255,.8)}.inventory-view-switcher .inventory-enter-reconciliation:hover,.inventory-view-switcher .inventory-enter-reconciliation:focus-visible{border-color:#8c642f;background:linear-gradient(135deg,#fffaf1,#ead2ab);box-shadow:0 13px 25px rgba(119,82,37,.24),0 0 0 3px rgba(175,137,85,.12);transform:translateY(-2px)}.inventory-reconciliation-modal{width:min(1480px,calc(100vw - 28px));height:min(900px,calc(100dvh - 28px));max-height:none}.inventory-reconciliation-scroll{height:calc(100% - 61px);overflow:auto;padding:16px 18px 92px;background:linear-gradient(180deg,#f7f5ef,#efede7)}.inventory-reconciliation-modal :is(.form-field-help-icon,label.form-field-help::after,.form-control-hover-help::after){display:none!important}.inventory-reconciliation-modal :is(label.form-field-help,.form-control-hover-help){cursor:default!important}.inventory-reconciliation-modal .three-unit-reconciliation{margin:0 auto;max-width:1380px}.inventory-reconciliation-modal .reconciliation-toolbar>div>span,.inventory-reconciliation-modal .form-section-title>span{display:none}
@media(max-width:900px){.inventory-reconciliation-modal{width:calc(100vw - 12px);height:calc(100dvh - 12px)}.inventory-reconciliation-scroll{padding:10px 10px 84px}}
@media(max-width:700px){.inventory-view-switcher>div:last-child{grid-template-columns:1fr 1fr}.inventory-view-switcher .inventory-enter-reconciliation{width:100%}.inventory-reconciliation-modal{width:100vw;height:100dvh;border-radius:0}.inventory-reconciliation-scroll{height:calc(100dvh - 55px)}}
@media print{body.printing-spodumene-reconciliation .inventory-reconciliation-modal{position:static;width:100%;height:auto;max-height:none;box-shadow:none}body.printing-spodumene-reconciliation .inventory-reconciliation-scroll{height:auto;overflow:visible;padding:0}}

/* release-354: AI收发对账始终约束在右侧业务工作区，不覆盖左侧一级菜单。 */
@media (min-width:1181px){
  .inventory-reconciliation-modal{left:calc(50% + 92px);width:min(1160px,calc(100vw - 216px));height:min(880px,calc(100dvh - 28px))}
}

/* release-355：库存正式单据与仓库现场执行拆分为两个独立、高识别度的业务中心。 */
.inventory-document-center-modal,.inventory-warehouse-center-modal{width:min(1120px,calc(100vw - 190px));height:auto;max-height:min(850px,calc(100dvh - 28px));border-color:#ccd8d1;background:linear-gradient(145deg,#faf9f4,#eef4f0);box-shadow:0 28px 78px rgba(30,53,43,.28)}
@media(min-width:821px){body .inventory-scan-backdrop>.inventory-document-center-modal,body .inventory-scan-backdrop>.inventory-warehouse-center-modal{width:min(1100px,calc(100vw - 190px))!important}}
.inventory-document-center-modal .inventory-simple-home,.inventory-warehouse-center-modal .inventory-simple-home{min-height:0;padding:18px 20px 14px;overflow:auto;scrollbar-gutter:stable}
.inventory-document-center-modal .inventory-simple-hero{background:linear-gradient(125deg,#f7f1e5,#eef5f1);border-color:#d9d1c1}
.inventory-warehouse-center-modal .inventory-simple-hero{background:linear-gradient(125deg,#e8f4ee,#f8f3e8);border-color:#bfd5ca}
.inventory-center-workflow{display:block}
.inventory-center-workflow>.inventory-unified-section{margin:0;border-radius:16px;box-shadow:0 11px 30px rgba(44,65,55,.08)}
.inventory-center-workflow .inventory-formal-document-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.inventory-center-workflow .inventory-formal-document-grid article{min-height:170px;border:1px solid #d7d1c5;border-radius:14px;background:linear-gradient(155deg,#fff,#f7f5ef);box-shadow:0 7px 19px rgba(67,56,39,.07)}
.inventory-center-handoff{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:11px 14px;border:1px solid #bcd3c7;border-radius:11px;background:#edf6f1;color:#2d654f;font-size:12px;font-weight:750;text-align:center}
.inventory-warehouse-center-section .inventory-simple-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.inventory-warehouse-center-section .inventory-simple-task-grid>button{grid-template-columns:46px minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:12px;min-height:112px;padding:14px 16px;align-items:start}
.inventory-warehouse-center-section .inventory-simple-task-grid>button>span{grid-column:1;grid-row:1/4;width:44px;height:44px}
.inventory-warehouse-center-section .inventory-simple-task-grid>button>strong{grid-column:2;grid-row:1;margin:0;font-size:17px;line-height:1.35}
.inventory-warehouse-center-section .inventory-simple-task-grid>button>em{grid-column:2;grid-row:2;margin:3px 0 0;line-height:1.35}
.inventory-warehouse-center-section .inventory-simple-task-grid>button>small{grid-column:2;grid-row:3;margin:6px 0 0;line-height:1.4}
.inventory-warehouse-center-section .inventory-simple-task-grid>button>b{grid-column:3;grid-row:1/4;align-self:center;margin:0;padding:0 0 0 8px;white-space:nowrap}
.inventory-warehouse-center-section .inventory-label-entry{margin-top:13px}
@media(max-width:1050px){.inventory-document-center-modal,.inventory-warehouse-center-modal{width:calc(100vw - 132px)}.inventory-center-workflow .inventory-formal-document-grid{grid-template-columns:1fr}.inventory-center-workflow .inventory-formal-document-grid article{min-height:auto}.inventory-warehouse-center-section .inventory-simple-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-warehouse-center-section .inventory-simple-task-grid>button{grid-template-columns:42px minmax(0,1fr);min-height:118px}.inventory-warehouse-center-section .inventory-simple-task-grid>button>b{grid-column:2;grid-row:auto;justify-self:start;padding:7px 0 0}}
@media(max-width:760px){.inventory-document-center-modal,.inventory-warehouse-center-modal{width:calc(100vw - 14px);max-height:calc(100dvh - 14px)}.inventory-document-center-modal .inventory-simple-home,.inventory-warehouse-center-modal .inventory-simple-home{padding:10px}.inventory-warehouse-center-section .inventory-simple-task-grid{grid-template-columns:1fr}.inventory-warehouse-center-section .inventory-simple-task-grid>button{min-height:108px}.inventory-center-handoff{align-items:flex-start;text-align:left}}
@media (min-width:701px) and (max-width:1180px){
  .inventory-reconciliation-modal{left:calc(50% + 37px);width:min(980px,calc(100vw - 94px));height:min(900px,calc(100dvh - 18px))}
}
.inventory-reconciliation-modal .three-unit-reconciliation{max-width:1120px;gap:11px}
.inventory-reconciliation-modal .reconciliation-toolbar{padding:12px 13px;border-radius:14px}
.inventory-reconciliation-modal .reconciliation-overview article{min-height:84px;padding:12px}
.inventory-reconciliation-modal .reconciliation-unit-grid{gap:9px}
.inventory-reconciliation-modal .reconciliation-unit{border-radius:14px}
.inventory-reconciliation-modal .reconciliation-unit header{padding:11px 12px}
.inventory-reconciliation-modal .reconciliation-unit>div{padding:4px 12px 8px}
.inventory-reconciliation-modal .reconciliation-content-grid{grid-template-columns:minmax(0,1.65fr) minmax(245px,.7fr);gap:9px}
@media(max-width:900px){.inventory-reconciliation-modal .reconciliation-content-grid{grid-template-columns:1fr}}
.stock-spodumene-warehouse-link{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 13px;border:1px solid #d7e5d3;border-radius:12px;background:linear-gradient(135deg,#f6faf3 0%,#fffaf0 100%);color:#49604a;font-size:13px;line-height:1.55}
.stock-spodumene-warehouse-link svg{flex:0 0 auto;color:#b56b2d}.stock-spodumene-warehouse-link strong{margin:0 3px;color:#285f43}
/* 20260820-roasting-controlled-correction-release-350：已确认焙烧日记受控更正与中材亨达锂辉石库存台账。 */
/* 申请明细唯一身份二维码：申请、采购、入库、库存沿用同一码。 */
.purchase-material-columns,.purchase-material-row{grid-template-columns:34px 190px 125px 145px 75px 90px 130px 120px 220px 34px!important;min-width:1208px!important}
.stock-application-columns,.stock-application-row{grid-template-columns:34px 190px 125px 145px 110px 75px 90px 155px 230px 88px 34px!important;min-width:1349px!important}
.office-line-row.has-identity-qr{grid-template-columns:32px minmax(140px,1.3fr) minmax(94px,.85fr) minmax(104px,.95fr) 68px 86px 106px 98px 88px minmax(112px,.95fr) minmax(122px,1.05fr) 92px 38px!important;min-width:1420px}
.application-identity-qr{display:flex!important;align-items:center;justify-content:flex-start;gap:2px!important;align-self:stretch;text-align:center}.application-identity-qr>span{align-self:stretch}.application-identity-qr>[data-qr-payload]{width:58px;height:58px;margin:0 auto;padding:2px;border:1px solid #b8d4ca;border-radius:6px;background:#fff}.application-identity-qr img,.application-identity-qr canvas{display:block!important;width:54px!important;height:54px!important}.application-identity-qr small{font-size:8px;color:#28705a;white-space:nowrap}.production-detail-row>.application-identity-qr{margin-top:0}
@media(max-width:1180px){.office-line-row.has-identity-qr{grid-template-columns:32px repeat(4,minmax(120px,1fr))!important;min-width:0}.office-line-row.has-identity-qr .application-identity-qr{grid-column:auto}}
@media(max-width:760px){.office-line-row.has-identity-qr{grid-template-columns:28px 1fr!important}.office-line-row.has-identity-qr label,.office-line-row.has-identity-qr .application-identity-qr{grid-column:2}}

/* 20260822-universal-mobile-qr-readability-release-392：全系统二维码点击打开统一高清微信扫码核验窗口。 */
[data-qr-payload][role="button"]{cursor:zoom-in;outline-offset:3px}
[data-qr-payload][role="button"]:focus-visible{outline:3px solid rgba(35,124,96,.34)}
.universal-qr-preview-backdrop{z-index:12080;display:grid;place-items:center;padding:14px;background:rgba(12,31,27,.72);backdrop-filter:blur(7px)}
.universal-qr-preview{width:min(420px,calc(100vw - 28px));overflow:hidden;border:1px solid #b7d3c7;border-radius:24px;background:linear-gradient(155deg,#fff,#f1f7f4);box-shadow:0 28px 76px rgba(10,45,35,.34)}
.universal-qr-preview>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid #d7e4de;background:#f8fcfa}
.universal-qr-preview>header>div{display:flex;align-items:center;gap:10px;color:#217158}.universal-qr-preview>header span{display:grid;gap:2px}.universal-qr-preview>header strong{color:#174d3d;font-size:16px}.universal-qr-preview>header small{max-width:270px;overflow:hidden;color:#70867d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.universal-qr-preview-image{display:grid;width:256px;height:256px;margin:22px auto 13px;padding:8px;place-items:center;border:1px solid #cbdcd5;border-radius:14px;background:#fff;box-shadow:0 10px 25px rgba(31,82,65,.13);cursor:default!important}
.universal-qr-preview-image canvas,.universal-qr-preview-image img{display:block!important;width:240px!important;height:240px!important;max-width:none!important;image-rendering:pixelated}
.universal-qr-preview>p{margin:0 20px 9px;color:#255c4b;font-size:13px;font-weight:800;text-align:center}.universal-qr-preview>code{display:block;max-height:58px;margin:0 18px 14px;padding:9px 10px;overflow:auto;border:1px solid #dce7e2;border-radius:9px;background:#fff;color:#536f65;font:10px/1.45 Consolas,monospace;overflow-wrap:anywhere;white-space:normal}.universal-qr-preview>footer{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 15px;border-top:1px solid #dbe7e2;background:#edf6f2;color:#4f7467;font-size:10px;text-align:center}
.contract-text-print-page>footer{grid-template-columns:96px 1fr auto}.contract-page-qr{width:96px;height:96px}.contract-page-qr img,.contract-page-qr canvas{width:96px!important;height:96px!important;image-rendering:pixelated}
@media(max-width:520px){.universal-qr-preview{border-radius:18px}.universal-qr-preview-image{width:236px;height:236px}.universal-qr-preview-image canvas,.universal-qr-preview-image img{width:220px!important;height:220px!important}}

/* 20260822-historical-procurement-and-inbound-identity-release-399
   redesign-existing-projects + gpt-taste：仅统一视觉层级与响应式密度，不改变业务结构、事件和数据。 */
:root{
  --hh-ink:#20362f;
  --hh-muted:#697a73;
  --hh-sage:#2f7059;
  --hh-sage-deep:#245a48;
  --hh-sage-soft:#e7f0eb;
  --hh-sand:#f2eee5;
  --hh-paper:#fffefa;
  --hh-line:#d8d5cc;
  --hh-focus:rgba(47,112,89,.22);
  --hh-shadow:0 14px 34px rgba(52,58,50,.09),0 2px 7px rgba(52,58,50,.045);
}

html,body,button,input,select,textarea{
  font-family:ui-sans-serif,"Segoe UI Variable Display","Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;
}

:where(.modal-header,.detail-form-header,.module-command,.module-browse-guide) :is(h1,h2,h3),
:where(.business-form,.module-grid,.content-grid) .form-section-title strong{
  text-wrap:balance;
}

:where(.modal-header,.detail-form-header,.module-command,.module-browse-guide) p{
  text-wrap:pretty;
}

.app-shell,
.business-form,
.data-table,
.finance-table,
.stat-tile,
.executive-kpi-card{
  font-variant-numeric:tabular-nums;
}

button,
.nav-item,
.stat-tile,
.module-business-item,
.outline-button,
.primary-button,
.icon-button{
  transition:transform .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease;
}

button:active:not(:disabled),
.nav-item:active,
.stat-tile:active{
  transform:translateY(1px);
}

button:disabled,
.primary-button:disabled,
.outline-button:disabled{
  cursor:not-allowed;
  opacity:.56;
  box-shadow:none!important;
  transform:none!important;
}

:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--hh-focus);
  outline-offset:2px;
}

/* 左侧目录：深色框架保留，激活态改为克制的品牌绿。 */
.sidebar{
  border-right-color:rgba(255,255,255,.09);
  background:linear-gradient(180deg,#172d34 0%,#14262d 58%,#112229 100%);
  box-shadow:8px 0 24px rgba(16,34,40,.07);
}

.nav-item.active{
  border-left-color:#8bc4a5;
  color:#fff;
  background:linear-gradient(90deg,rgba(53,128,97,.95),rgba(43,101,82,.88));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 7px 17px rgba(8,30,23,.14);
}

.nav-item:hover:not(.active):not(.is-disabled){
  color:#f1f7f4;
  background:rgba(87,142,119,.16);
}

.sidebar .submenu-list{
  border-color:#d9ded8;
  border-radius:12px;
  background:rgba(255,254,250,.98);
  box-shadow:0 18px 45px rgba(18,39,31,.20),0 3px 10px rgba(18,39,31,.08);
}

/* 顶部栏：优先保留业务操作，笔记本/iPad 自动收拢装饰性文字。 */
.topbar{
  gap:14px;
  padding:0 18px;
  border-bottom-color:#ddd9d0;
  background:rgba(255,254,251,.96);
  box-shadow:0 4px 14px rgba(57,61,54,.045);
  backdrop-filter:blur(12px);
}

.brand{
  min-width:0;
  flex:1 1 auto;
}

.brand svg{
  flex:0 0 auto;
  color:var(--hh-sage);
}

.brand .brand-company{
  color:#718078;
}

.brand .brand-system{
  color:var(--hh-ink);
}

.top-actions{
  min-width:0;
  flex:0 0 auto;
  gap:6px;
}

.top-actions .icon-button:hover,
.top-actions .user-menu:hover,
.top-actions .outline-button:hover,
.top-actions .security-lock-trigger:hover{
  border-color:#c8d7cf;
  color:var(--hh-sage-deep);
  background:#edf4f0;
  box-shadow:0 5px 13px rgba(48,85,68,.08);
}

.user-menu{
  gap:7px;
  border-left-color:#ddd9d0;
  color:var(--hh-ink);
}

.avatar{
  color:#245d49;
  background:linear-gradient(145deg,#dcece4,#edf5f1);
}

/* 主内容使用可读宽度，不再固定占用左右 2cm。 */
.content-grid,
.module-grid{
  width:min(1440px,calc(100% - 32px))!important;
  margin:14px auto 28px!important;
  border-color:var(--hh-line);
  border-radius:18px;
  box-shadow:var(--hh-shadow);
}

.filterbar{
  padding-right:18px;
  padding-left:18px;
  background:linear-gradient(90deg,rgba(255,254,251,.98),rgba(246,244,238,.96));
}

.module-command,
.module-browse-guide,
.module-ledger-browser,
.executive-command-hero{
  border-color:var(--hh-line);
  box-shadow:0 10px 26px rgba(62,65,57,.075);
}

.stat-tile,
.executive-kpi-card,
.ledger-function-section{
  border-color:#dfdbd2;
  box-shadow:0 4px 12px rgba(62,65,57,.045);
}

.stat-tile:hover,
.executive-kpi-card:hover{
  transform:translateY(-1px);
  border-color:#b8c9bf;
  box-shadow:0 10px 22px rgba(52,76,64,.09);
}

/* 录入表单：标题、章节、字段、底部动作形成四级层次。 */
.data-modal{
  border-color:#c9d3cd;
  border-radius:18px;
  box-shadow:0 28px 72px rgba(24,48,39,.22),0 6px 18px rgba(24,48,39,.10);
}

.data-modal>.modal-header,
.detail-form-header{
  min-height:62px;
  border-top:4px solid var(--hh-sage);
  border-bottom-color:#d8ddd8;
  background:linear-gradient(105deg,#fffefa 0%,#f4f1e9 64%,#e9f1ed 100%);
}

.modal-header h2,
.detail-form-header h2{
  color:var(--hh-ink);
  letter-spacing:.015em;
}

.modal-header p,
.detail-form-header p{
  color:#6f7b75;
}

.business-form{
  color:var(--hh-ink);
  background:#f5f3ee;
}

.business-form .form-section{
  border-color:#c7cec8;
  border-radius:10px;
  background:var(--hh-paper);
  box-shadow:0 3px 10px rgba(52,61,54,.035);
}

.business-form .form-section-title,
.form-section-title{
  min-height:44px;
  border-bottom-color:#d4dbd6;
  background:linear-gradient(90deg,#e8f0ec 0%,#f5f3ec 72%,#fffefa 100%);
}

.form-section-title strong{
  color:#285a48;
  font-size:14px!important;
  letter-spacing:.01em;
}

.form-section-title strong::before{
  width:4px;
  height:18px;
  border-radius:4px;
  background:var(--hh-sage);
}

.form-section-title>span,
.business-form .form-section-title>span{
  color:#6c7972;
  font-size:11px!important;
}

.business-form :is(.form-grid-4,.line-grid,.form-section,.form-row)>label:not(.sheet-field)>span,
.business-form>label:not(.sheet-field)>span,
.data-modal label.sheet-field>span{
  border-color:#d3d8d4;
  color:#3b5148;
  background:#f0f1ed;
}

.business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]),
.data-modal label.sheet-field :is(input,select,textarea){
  border-color:#cfd6d1;
  color:#263a32;
  background:#fff;
}

.business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]):focus,
.data-modal label.sheet-field :is(input,select,textarea):focus{
  border-color:#65967f!important;
  box-shadow:0 0 0 3px var(--hh-focus)!important;
}

.business-form :is(input[readonly],textarea[readonly],select:disabled){
  color:#6d7772;
  background:#f2f1ed!important;
}

.business-form .modal-actions,
.data-modal>.modal-actions{
  border-top-color:#d4dad5;
  background:rgba(255,254,251,.97);
  box-shadow:0 -8px 24px rgba(50,61,54,.075);
  backdrop-filter:blur(10px);
}

.business-form .primary-button,
.data-modal .primary-button{
  border-color:var(--hh-sage-deep);
  color:#fff;
  background:linear-gradient(180deg,#397b62,#2d6853);
  box-shadow:0 7px 16px rgba(39,99,75,.18),inset 0 1px 0 rgba(255,255,255,.16);
}

.business-form .primary-button:hover,
.data-modal .primary-button:hover{
  background:linear-gradient(180deg,#34735b,#255b48);
  box-shadow:0 9px 20px rgba(39,99,75,.24);
}

.business-form .outline-button,
.data-modal .outline-button{
  border-color:#cbd3ce;
  color:#40564c;
  background:#fffefa;
}

/* 登录区：保留原构图，弱化过重阴影和无意义菱形。 */
body.is-login-screen .gateway-login-shell .login-card{
  border-color:rgba(105,150,174,.42)!important;
  box-shadow:0 4px 0 rgba(154,180,193,.34),0 19px 38px rgba(29,69,91,.18),0 6px 15px rgba(29,69,91,.11),inset 0 2px 0 #fff!important;
}

body.is-login-screen .gateway-login-shell .gateway-lock{
  display:none!important;
}

body.is-login-screen .gateway-login-shell .login-brand{
  padding-left:2px;
}

body.is-login-screen .gateway-login-shell .login-input:focus-within{
  border-color:#6b9db3;
  box-shadow:0 0 0 3px rgba(66,131,164,.15);
}

@media(min-width:821px) and (max-width:1180px){
  .topbar{gap:8px;padding-right:10px;padding-left:12px}
  .brand .brand-company{display:none}
  .brand .brand-system{font-size:15px!important;white-space:nowrap}
  .top-actions{gap:3px}
  .top-actions>.icon-button{width:34px;height:34px}
  .user-menu{padding-left:6px;border-left:0}
  .user-menu>span:not(.avatar),.user-menu>em{display:none}
  .top-actions>.outline-button.compact,.top-actions>.security-lock-trigger{
    width:34px;min-width:34px;height:34px;padding:0;font-size:0;justify-content:center;
  }
  .top-actions>.outline-button.compact svg,.top-actions>.security-lock-trigger svg{width:16px;height:16px;margin:0}
}

@media(max-width:900px){
  .brand>span{display:none}
  .topbar{padding-right:8px;padding-left:10px}
  .top-actions{gap:3px}
  .top-actions>.icon-button{width:34px;height:34px}
  .user-menu{padding-left:5px;border-left:0}
  .user-menu>span:not(.avatar),.user-menu>em{display:none}
  .top-actions>.outline-button.compact,.top-actions>.security-lock-trigger{
    width:34px;min-width:34px;height:34px;padding:0;font-size:0;justify-content:center;
  }
  .top-actions>.outline-button.compact svg,.top-actions>.security-lock-trigger svg{width:16px;height:16px;margin:0}
  .content-grid,.module-grid{width:calc(100% - 18px)!important;margin:9px auto 18px!important;border-radius:14px}
  .filterbar{padding-right:10px;padding-left:10px}
  .data-modal>.modal-header,.detail-form-header{min-height:56px;border-top-width:3px}
}

@media(max-width:620px){
  .top-actions>.icon-button:nth-of-type(2),
  .top-actions>.icon-button.notification-status-trigger{display:none}
  .content-grid,.module-grid{width:calc(100% - 10px)!important;margin:5px auto 12px!important;border-radius:12px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

.attendance-print-sheet{display:none;color:#111;background:#fff;font-family:"Microsoft YaHei",Arial,sans-serif}
.attendance-print-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;padding:8px 10px;border:1px solid #777;font-size:12px}
.attendance-print-sheet table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}
.attendance-print-sheet th,.attendance-print-sheet td{padding:4px 3px;border:1px solid #555;text-align:center;word-break:break-word}
.attendance-print-sheet th{font-weight:700;background:#f2f2f2}
.attendance-print-sheet footer{display:flex;justify-content:space-between;gap:18px;margin-top:14px;font-size:11px}
@media print{
  body.printing-attendance-ledger>*:not(.attendance-print-sheet){display:none!important}
  body.printing-attendance-ledger .attendance-print-sheet{display:block!important}
  body.printing-attendance-ledger .attendance-print-sheet thead{display:table-header-group}
  body.printing-attendance-ledger .attendance-print-sheet tr{break-inside:avoid}
}

/* 20260825-attendance-employee-dropdown-release-407：考勤员工下拉选择面板。 */

/* 20260823-daily-production-input-regression-release-401：每日生产投料隔离回归、计量单位统一及前后端校验加固。 */

/* 20260823-premium-interface-production-release-402
   redesign-existing-projects + gpt-taste：生产型业务系统视觉复核，仅优化层级、密度和反馈，不改变字段、事件或流程。 */
:root{
  --hh-canvas:#f1f2ee;
  --hh-canvas-warm:#f6f2e9;
  --hh-panel:#fffefa;
  --hh-panel-muted:#f6f6f1;
  --hh-ink-strong:#18362d;
  --hh-line-soft:#dedfd8;
  --hh-elevation:0 16px 38px rgba(37,55,46,.075),0 3px 9px rgba(37,55,46,.04);
}

html,body,button,input,select,textarea{
  font-family:"Cabinet Grotesk","MiSans","HarmonyOS Sans SC","Segoe UI Variable Display","Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif;
}

body:not(.is-login-screen){
  color:var(--hh-ink);
  background:
    radial-gradient(circle at 84% 4%,rgba(118,155,133,.10),transparent 26rem),
    radial-gradient(circle at 18% 96%,rgba(204,181,132,.09),transparent 30rem),
    var(--hh-canvas);
}

.workspace{
  background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(242,239,232,.58));
}

.filterbar strong,
.module-command h1,
.module-command h2,
.executive-command-copy h1,
.modal-header h2,
.detail-form-header h2{
  color:var(--hh-ink-strong);
  letter-spacing:-.018em;
  text-wrap:balance;
}

.executive-command-hero{
  overflow:hidden;
  border-color:#d7d8cf;
  background:
    radial-gradient(circle at 82% 16%,rgba(89,142,113,.18),transparent 16rem),
    linear-gradient(118deg,#fffdf7 0%,#f2efe5 52%,#e7f0e8 100%);
  box-shadow:0 20px 44px rgba(52,67,57,.09),inset 0 1px 0 rgba(255,255,255,.9);
}

.executive-command-copy>span{
  color:#4e7463;
  font-weight:750;
  letter-spacing:.11em;
}

.executive-kpi-card,
.stat-tile,
.ledger-function-section,
.module-business-item{
  border-color:var(--hh-line-soft);
  background:linear-gradient(155deg,rgba(255,254,250,.98),rgba(247,247,242,.96));
  box-shadow:0 5px 15px rgba(42,58,49,.045),inset 0 1px 0 rgba(255,255,255,.9);
}

.executive-kpi-card:hover,
.stat-tile:hover,
.module-business-item:hover{
  transform:translateY(-2px);
  border-color:#b8cabf;
  box-shadow:0 13px 28px rgba(45,75,60,.10),inset 0 1px 0 #fff;
}

.executive-kpi-card strong,
.stat-tile strong,
.module-business-item>b,
.data-table .amount-cell,
.finance-table .amount-cell{
  font-variant-numeric:tabular-nums lining-nums;
}

.shared-data-notice,
.shared-data-strip{
  border-color:#c9ddd2!important;
  color:#365d4d!important;
  background:linear-gradient(100deg,#f2f8f4 0%,#f8f6ef 72%,#fffefa 100%)!important;
  box-shadow:inset 4px 0 0 rgba(52,119,88,.72);
}

.shared-data-strip svg{color:var(--hh-sage)!important}
.shared-data-strip>span{color:#275d48!important}
.shared-data-strip>strong{color:#49675a!important}

.office-logistics-modal{
  background:linear-gradient(180deg,#eef3ef 0,#f7f6f1 220px,#f4f3ee 100%)!important;
}

.office-line-row,
.canteen-purchase-row{
  border-color:#d9dfda;
  background:#fafbf8;
}

.office-line-row:focus-within,
.canteen-purchase-row:focus-within{
  border-color:#7ca18f;
  background:#fffefa;
  box-shadow:0 0 0 3px rgba(57,112,87,.09);
}

:is(.office-logistics-modal,.production-application-modal,.stock-application-modal) .form-section-title{
  border-bottom-color:#d2dad5!important;
  background:linear-gradient(90deg,#e8f0ec 0%,#f5f3ec 72%,#fffefa 100%)!important;
}

.office-kpi-strip article,
.canteen-cost-summary article{
  border-color:#d8ddd6;
  background:linear-gradient(145deg,#fffefa,#f2f5ef);
  box-shadow:0 8px 22px rgba(44,67,55,.055);
}

.office-kpi-strip article::after{
  background:rgba(60,125,96,.075);
}

.office-kpi-strip span,
.office-kpi-strip small,
.canteen-cost-summary span,
.canteen-cost-summary small{
  color:#667970;
}

.office-kpi-strip strong,
.canteen-cost-summary strong{
  color:#245a48;
}

.data-modal>.modal-header,
.detail-form-header{
  padding-right:22px;
  padding-left:22px;
  background:
    radial-gradient(circle at 88% 20%,rgba(84,139,112,.10),transparent 17rem),
    linear-gradient(105deg,#fffefa 0%,#f4f1e9 66%,#edf3ef 100%);
}

.modal-header h2,
.detail-form-header h2{
  font-weight:800;
  line-height:1.22;
}

.business-form .form-section{
  border-color:#d0d3cc;
  background:var(--hh-panel);
  box-shadow:0 4px 13px rgba(46,59,51,.038),inset 0 1px 0 #fff;
}

.business-form .form-section:focus-within{
  border-color:#a9beb2;
  box-shadow:0 7px 20px rgba(45,81,62,.07),0 0 0 2px rgba(57,112,87,.055);
}

.business-form .form-section-title,
.form-section-title{
  background:linear-gradient(90deg,#e9f0ec 0%,#f5f3ed 70%,#fffefa 100%);
}

.business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]),
.data-modal label.sheet-field :is(input,select,textarea){
  min-width:0;
  caret-color:var(--hh-sage-deep);
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

.business-form :is(input,textarea)::placeholder{
  color:#87928c;
  opacity:1;
}

.data-table,
.finance-table,
.bank-ledger-table{
  color:#293d35;
  background:var(--hh-panel);
}

:is(.data-table,.finance-table,.bank-ledger-table) thead th{
  color:#405a4f;
  background:linear-gradient(180deg,#eef2ee,#e7ece8);
  font-weight:750;
  letter-spacing:.012em;
}

:is(.data-table,.finance-table,.bank-ledger-table) tbody tr{
  transition:background-color .16s ease,box-shadow .16s ease;
}

:is(.data-table,.finance-table,.bank-ledger-table) tbody tr:hover{
  background:#f4f8f5;
  box-shadow:inset 3px 0 0 rgba(47,112,89,.52);
}

.empty-state{
  color:#64766d;
  background:
    radial-gradient(circle at 50% 12%,rgba(66,128,99,.08),transparent 12rem),
    linear-gradient(180deg,#fbfcf9,#f5f5ef);
}

.business-form .modal-actions,
.data-modal>.modal-actions{
  border-top-color:#d3d8d3;
  background:rgba(255,254,250,.975);
  box-shadow:0 -10px 28px rgba(43,59,50,.085),inset 0 1px 0 rgba(255,255,255,.95);
}

.business-form :is(.primary-button,.outline-button,.secondary-button),
.data-modal :is(.primary-button,.outline-button,.secondary-button){
  min-height:38px;
  font-weight:750;
  letter-spacing:.005em;
}

.business-form :is(.outline-button,.secondary-button):hover,
.data-modal :is(.outline-button,.secondary-button):hover{
  border-color:#9fb8ab;
  color:#285d49;
  background:#eef5f1;
  box-shadow:0 6px 14px rgba(44,80,62,.08);
}

@media(max-width:1024px){
  .data-modal>.modal-header,.detail-form-header{padding-right:14px;padding-left:14px}
  .executive-command-hero{border-radius:16px}
  .content-grid,.module-grid{width:calc(100% - 18px)!important}
}

@media(prefers-reduced-motion:reduce){
  .executive-kpi-card,.stat-tile,.module-business-item,
  .business-form .form-section,
  :is(.data-table,.finance-table,.bank-ledger-table) tbody tr{transition:none!important;transform:none!important}
}

/* 全系统业务弹窗短屏适配：按弹窗正文的实际高度约束表单，避免较高标题栏把底部主操作区挤出窗口。 */
.system-business-unified-body > .system-business-unified-form.system-business-contained-form{
  height:min(760px,calc(100% - 32px),calc(100dvh - 190px))!important;
  min-height:min(420px,calc(100% - 32px),calc(100dvh - 190px))!important;
}
.system-business-unified-form.system-business-contained-form{
  max-height:calc(100dvh - 190px)!important;
}
@supports not (height:100dvh){
  .system-business-unified-body > .system-business-unified-form.system-business-contained-form{
    height:min(760px,calc(100% - 32px),calc(100vh - 190px))!important;
    min-height:min(420px,calc(100% - 32px),calc(100vh - 190px))!important;
  }
  .system-business-unified-form.system-business-contained-form{max-height:calc(100vh - 190px)!important}
}
@media(max-height:700px){
  .intermediate-measurement-form.system-business-unified-form{
    height:min(760px,calc(100dvh - 190px))!important;
    min-height:min(520px,calc(100dvh - 190px))!important;
    max-height:calc(100dvh - 190px)!important;
  }
  @supports not (height:100dvh){
    .intermediate-measurement-form.system-business-unified-form{
      height:min(760px,calc(100vh - 190px))!important;
      min-height:min(520px,calc(100vh - 190px))!important;
      max-height:calc(100vh - 190px)!important;
    }
  }
}

/* 20260826-oa-six-issue-correction-release-409：微信打卡配置专属视觉与防挤压布局。 */

/* 20260826-finance-attendance-ledger-release-410：财务固定资产与考勤台账发布标记。 */
/* 20260826-approval-inventory-finance-release-411：审批、进销管控与财务自动映射本机候选。 */
/* 20260827-arap-ledger-layout-release-414：财务完整性修复与应收应付往来记录单行分组布局。 */
/* 20260827-canteen-employee-meal-code-release-417：员工出示限时用餐码、食堂扫码设备、两天报餐、实时人数及工资扣款联动。 */

/* 20260827-systemwide-regression-ui-release-418
   redesign-existing-projects + gpt-taste：全系统隔离回归后的低风险视觉校准；不改变字段、事件、权限或业务流程。 */
/* 20260827-approved-inbound-source-race-release-420：已审批正式入库单来源池在模块后台加载期间保持一致。 */
.module-ledger-browser{
  isolation:isolate;
  border-color:#d8ddd7;
  background:linear-gradient(155deg,rgba(255,254,250,.99),rgba(247,247,242,.97));
  box-shadow:0 16px 38px rgba(37,55,46,.075),0 3px 9px rgba(37,55,46,.04);
}
.module-ledger-browser-head{
  border-bottom-color:#d7ddd8;
  background:
    radial-gradient(circle at 86% 12%,rgba(83,139,111,.10),transparent 17rem),
    linear-gradient(112deg,#fffefa,#f3f1e9 72%,#edf3ef);
}
.ledger-function-section{
  overflow:hidden;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ledger-function-section:focus-within{
  border-color:#a9beb2;
  box-shadow:0 10px 24px rgba(45,81,62,.08),0 0 0 2px rgba(57,112,87,.055);
}
.ledger-section-search:focus-within{
  border-color:#65967f;
  box-shadow:0 0 0 3px var(--hh-focus);
}
.ledger-section-table-wrap,
.table-scroll,
.business-form{
  scrollbar-color:#9fb5aa #edf0eb;
  scrollbar-width:thin;
}
@media(hover:hover){
  .ledger-function-section:hover{
    border-color:#c0cec6;
    box-shadow:0 10px 25px rgba(43,70,56,.075);
  }
}

/* 小尺寸笔记本窗口：压缩AI文书标题与元数据，保证固定功能栏始终留在窗口内。 */
@media(max-width:700px) and (max-height:700px){
  .office-ai-document-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    min-height:68px;
    padding:6px 9px;
    align-items:center;
    gap:7px;
  }
  .office-ai-document-header .modal-title-block{
    grid-template-columns:42px minmax(0,1fr);
    gap:7px;
  }
  .office-ai-document-header .form-trademark{width:40px;height:40px}
  .office-ai-document-header .modal-company{display:none}
  .office-ai-document-header .modal-title-row{display:grid;gap:1px}
  .office-ai-document-header .modal-title-row p{
    min-width:0;
    padding:0;
    border:0;
    font-size:10px;
    line-height:1.2;
  }
  .office-ai-document-header .modal-title-row h2{
    font-size:16px;
    line-height:1.18;
    text-wrap:balance;
  }
  .office-ai-document-header-actions{gap:4px}
  .office-ai-document-header-actions .office-ai-document-identity-qr.pending{
    width:36px;
    min-height:36px;
    padding:0;
  }
  .office-ai-document-header-actions .office-ai-document-identity-qr.pending small{display:none}
  .office-ai-document-header-actions .office-ai-document-identity-qr.pending svg{width:18px;height:18px}
  .office-ai-document-workbench{grid-template-rows:minmax(74px,14dvh) minmax(0,1fr)}
  .office-ai-document-library>header{min-height:42px;padding:5px 8px}
  .office-ai-document-search{min-height:30px;margin:4px 7px}
  .office-ai-document-editor{grid-template-rows:minmax(0,auto) minmax(66px,1fr) auto!important}
  .office-ai-editor-meta{gap:3px 6px;padding:4px 8px 5px}
  .office-ai-section-heading{min-height:24px;margin:0;gap:6px}
  .office-ai-section-heading>span{width:22px;height:22px;flex-basis:22px;border-radius:6px}
  .office-ai-section-heading small{display:none}
  .office-ai-editor-meta label>span{font-size:9px;line-height:1.15}
  .office-ai-editor-meta input,
  .office-ai-editor-meta select{height:32px;min-height:32px}
  .office-ai-editor-meta textarea{min-height:39px!important;padding:4px 7px!important}
  .office-ai-editor-body{padding:5px 8px}
  .office-ai-editor-body>header{margin-bottom:3px}
  .office-ai-editor-body>textarea{min-height:52px!important}
  .office-ai-document-actions{padding:6px 8px}
  .office-ai-document-actions button,
  .office-ai-document-actions .office-ai-footer-import-button{min-height:32px;padding:5px 6px}
}
@media(max-width:700px){
  .toast-stack{
    right:10px;
    bottom:calc(env(safe-area-inset-bottom,0px) + 72px);
    left:84px;
    justify-items:end;
  }
  .toast{max-width:min(360px,100%);min-height:38px;padding:8px 11px;line-height:1.4}
}
.attendance-config-modal{
  top:10px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  width:min(1260px,calc(100vw - 24px));
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  overflow:hidden;
  border:1px solid #b9cbbf;
  border-radius:20px;
  color:#22372e;
  background:#f3f3ed;
  box-shadow:0 28px 76px rgba(24,49,38,.24),0 6px 20px rgba(24,49,38,.12);
  font-family:Outfit,"Microsoft YaHei UI","Microsoft YaHei",sans-serif;
}
.attendance-config-modal>.modal-header{
  position:relative;
  top:auto;
  z-index:8;
  min-height:90px;
  padding:14px 20px;
  border-bottom:1px solid #cdd8d0;
  background:
    radial-gradient(circle at 78% 20%,rgba(125,165,139,.12),transparent 24%),
    linear-gradient(110deg,#fffefa 0%,#f2f5ef 100%);
  box-shadow:0 7px 20px rgba(40,65,52,.07);
}
.attendance-config-modal .modal-title-block{max-width:100%;}
.attendance-config-modal .modal-title-row h2{color:#153d2d;font-size:22px;letter-spacing:-.02em;}
.attendance-config-modal .modal-title-row p{color:#43715d;font-weight:800;}
.attendance-config-modal>.modal-header>.icon-button{border:1px solid #cbd6cf;background:#fff;box-shadow:0 5px 13px rgba(45,70,56,.09);}
.attendance-config-scroll{
  min-width:0;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-behavior:smooth;
  scrollbar-gutter:stable;
  padding-bottom:18px;
}
.attendance-config-form{
  width:min(1180px,100%);
  margin:0 auto;
  gap:12px!important;
  padding:14px 18px 0!important;
}
.attendance-config-form>.shared-data-strip{
  min-height:36px;
  margin:0;
  border-color:#c9d8cf;
  border-radius:10px;
  color:#345b49;
  background:rgba(255,255,252,.88);
  box-shadow:0 4px 12px rgba(42,75,57,.045);
}
.attendance-config-command{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  min-height:126px;
  padding:20px 24px;
  overflow:hidden;
  border:1px solid #244f3e;
  border-radius:18px;
  color:#f7fbf7;
  background:
    radial-gradient(circle at 78% 10%,rgba(132,197,156,.22),transparent 24%),
    linear-gradient(125deg,#163f30 0%,#245e48 58%,#2f765b 100%);
  box-shadow:0 14px 34px rgba(26,73,54,.16);
}
.attendance-config-command>div{display:grid;gap:5px;min-width:0;}
.attendance-config-command span{display:flex;align-items:center;gap:7px;color:#cce8d8;font-size:11px;font-weight:800;letter-spacing:.04em;}
.attendance-config-command h3{max-width:880px;margin:0;color:#fff;font-size:clamp(22px,2.5vw,34px);line-height:1.12;letter-spacing:-.035em;}
.attendance-config-command p{max-width:820px;margin:2px 0 0;color:rgba(244,252,247,.76);font-size:12px;line-height:1.65;}
.attendance-config-command>strong{display:flex;align-items:center;justify-content:center;min-width:170px;min-height:42px;padding:9px 13px;border:1px solid rgba(224,247,232,.32);border-radius:11px;color:#f7fff9;background:rgba(255,255,255,.1);font-size:11px;text-align:center;backdrop-filter:blur(8px);}
.attendance-config-task-rail{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-flow:dense;
  overflow:hidden;
  border:1px solid #c8d5cd;
  border-radius:13px;
  background:#fffefa;
  box-shadow:0 7px 18px rgba(42,68,54,.055);
}
.attendance-config-task-rail>span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 12px;border-right:1px solid #d8dfda;color:#3c5e4e;background:linear-gradient(180deg,#fffefa,#f5f5ef);}
.attendance-config-task-rail>span:last-child{border-right:0;}
.attendance-config-task-rail svg{color:#3f7d61;}
.attendance-config-task-rail b{font-size:12px;white-space:nowrap;}
.attendance-config-modal .form-section{
  min-width:0;
  overflow:hidden;
  padding:14px!important;
  border:1px solid #cbd7d0!important;
  border-radius:15px!important;
  background:#fffefa!important;
  box-shadow:0 7px 22px rgba(43,69,55,.055)!important;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.attendance-config-modal .form-section:focus-within{
  border-color:#84aa96!important;
  box-shadow:0 10px 28px rgba(42,91,67,.1),0 0 0 3px rgba(75,132,101,.08)!important;
}
.attendance-config-modal .form-section-title{
  align-items:center;
  min-height:44px;
  margin:-14px -14px 13px!important;
  padding:10px 14px!important;
  border-bottom:1px solid #d8e0db!important;
  background:linear-gradient(100deg,#edf3ee,#fbfcf8)!important;
}
.attendance-config-modal .form-section-title strong{color:#234d3b!important;font-size:14px!important;letter-spacing:-.01em;}
.attendance-config-modal .form-section-title span{max-width:58%;color:#6c7a72!important;font-size:10px!important;line-height:1.45;text-align:right;}
.attendance-config-modal .form-grid-4{gap:10px;}
.attendance-config-modal .form-grid-4>label:not(.sheet-field){display:grid;grid-template-columns:1fr;align-content:start;gap:6px;min-width:0;padding:0;border:0;background:transparent;}
.attendance-config-modal .form-grid-4>label:not(.sheet-field)>span{
  display:block;
  width:auto;
  min-height:0;
  padding:0 2px;
  border:0!important;
  color:#476054!important;
  background:transparent!important;
  font-size:11px!important;
  font-weight:750!important;
  text-align:left;
}
.attendance-config-modal .form-grid-4>label :is(input,select){width:100%;min-width:0;min-height:42px;padding:8px 11px;border:1px solid #c8d4cd;border-radius:10px;background:#fff;}
.attendance-shift-config-section,.attendance-patrol-config-section{background:#fbfcf8!important;}
.attendance-shift-config-grid{gap:12px;grid-auto-flow:dense;}
.attendance-shift-config-card{
  min-width:0;
  border-color:#d0d9d3;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 19px rgba(37,67,52,.06);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.attendance-shift-config-card:hover{border-color:#9ab9a7;box-shadow:0 12px 26px rgba(38,77,57,.1);transform:translateY(-2px);}
.attendance-shift-config-card>header{min-height:62px;padding:12px 14px;color:#28463a;background:#f1f4ef;box-shadow:inset 4px 0 #648c76;}
.attendance-shift-config-card[data-schedule-key="administrative"]>header{color:#344a63;background:#f1f4f8;box-shadow:inset 4px 0 #6b819d;}
.attendance-shift-config-card[data-schedule-key="comprehensive"]>header{color:#654b28;background:#f8f3e9;box-shadow:inset 4px 0 #b68a49;}
.attendance-shift-config-card[data-schedule-key="production_day"]>header{color:#255347;background:#edf6f2;box-shadow:inset 4px 0 #4a9078;}
.attendance-shift-config-card[data-schedule-key="production_night"]>header{color:#39425f;background:#f0f1f7;box-shadow:inset 4px 0 #66709d;}
.attendance-shift-config-card>header>span{width:34px;height:34px;border:1px solid rgba(77,104,88,.16);border-radius:9px;color:inherit;background:rgba(255,255,255,.72);}
.attendance-shift-config-card>header strong{color:inherit;font-size:14px;}
.attendance-shift-config-card>header small{color:currentColor;font-size:10px;opacity:.7;}
.attendance-shift-config-card>div{gap:10px;padding:12px 13px 13px;}
.attendance-shift-config-card label span{color:#52695d;font-size:11px;}
.attendance-shift-config-card input,.attendance-shift-config-card select{min-height:42px;border-color:#cbd5cf;border-radius:9px;color:#263c32;background:#fff;}
.attendance-rotation-config{margin-top:12px;padding:13px 14px;border-color:#d2dad5;border-radius:12px;background:#f7f8f3;}
.attendance-rotation-preview{gap:0;overflow:hidden;border:1px solid #d4ddd7;border-radius:11px;background:#fff;}
.attendance-rotation-preview span{border:0;border-right:1px solid #dce3de;border-radius:0;background:#fff;font-size:11px;text-align:center;}
.attendance-rotation-preview span:last-child{border-right:0;}
.attendance-assignment-section{background:#fafbf7!important;}
.attendance-assignment-summary{gap:8px;grid-auto-flow:dense;}
.attendance-assignment-summary>span{min-height:54px;padding:10px 11px;border-color:#d2dcd6;border-radius:11px;background:#fff;}
.attendance-assignment-summary b{font-size:11px;}
.attendance-assignment-summary strong{font-size:21px;}
.attendance-assignment-summary small{font-size:10px;}
.attendance-assignment-toolbar{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(190px,240px) auto minmax(150px,1fr);
  align-items:center;
  gap:10px;
  margin:0;
  padding:12px;
  border-color:#cbd8d0;
  border-radius:12px;
  background:#f2f6f1;
}
.attendance-assignment-toolbar>div{width:auto!important;margin:0;color:#355747;font-size:12px;white-space:nowrap;}
.attendance-assignment-toolbar select{width:100%;min-width:0;min-height:40px;border-radius:9px;}
.attendance-assignment-toolbar>button{min-height:40px;white-space:nowrap;}
.attendance-assignment-toolbar>small{font-size:10px;line-height:1.45;}
.attendance-employee-picker{grid-column:1/-1;width:100%;margin:2px 0 0;border-color:#adc3b5;border-radius:14px;box-shadow:0 20px 48px rgba(31,72,51,.16),0 5px 14px rgba(31,72,51,.08);}
.attendance-employee-picker>header{padding:13px 15px;background:linear-gradient(110deg,#e9f3ed,#fafbf7);}
.attendance-employee-picker>header strong{font-size:14px;}
.attendance-employee-picker>header small{font-size:10px;}
.attendance-employee-picker-tools{gap:10px;padding:11px 13px;}
.attendance-employee-picker-tools input{min-height:40px;border-radius:9px;}
.attendance-employee-picker-tools>span{font-size:11px;}
.attendance-employee-picker-list{gap:10px;max-height:min(380px,48vh);padding:12px;background:#f0f4f0;}
.attendance-employee-picker-department{border-color:#d0dbd4;border-radius:12px;}
.attendance-employee-picker-department-head{min-height:44px;padding:10px 12px;background:#eaf2ed;}
.attendance-employee-picker-department-head strong{font-size:12px;}
.attendance-employee-picker-department-head small{font-size:10px;}
.attendance-employee-picker-option{min-height:46px;padding:10px 11px;}
.attendance-employee-picker-option strong{font-size:12px;}
.attendance-employee-picker-option small{font-size:10px;}
.attendance-employee-picker>footer{padding:11px 13px;background:#fffefa;}
.attendance-patrol-safety-note{min-height:40px;margin-top:11px;padding:10px 12px;border-color:#dfd0a6;border-radius:10px;color:#76571f;background:#fff9e9;font-size:11px;line-height:1.5;}
.attendance-rules-section{opacity:.94;}
.attendance-rules-section .form-section-title{background:#f3f3ee!important;}
.attendance-config-form .modal-actions{
  bottom:10px;
  z-index:7;
  min-height:62px;
  margin:0;
  padding:10px 12px;
  border:1px solid #c5d2ca;
  border-radius:13px;
  background:rgba(255,254,250,.96);
  box-shadow:0 13px 30px rgba(35,65,49,.13);
}
.attendance-config-form.is-employee-picker-open .modal-actions{position:static;box-shadow:0 6px 18px rgba(35,65,49,.07);}
.attendance-config-form .modal-actions .form-submit-note{margin-right:auto;}
.attendance-geofence-management,
.attendance-config-modal .mini-geofence-form{
  width:min(1180px,calc(100% - 36px));
  margin:14px auto 0;
}
.attendance-geofence-management{padding:14px!important;}
.attendance-geofence-management .table-scroll{overflow:auto;border:1px solid #d1dad4;border-radius:11px;}
.attendance-config-modal .mini-geofence-form{padding:0!important;}
.attendance-config-modal .mini-geofence-form>.form-section{margin:0;}
.attendance-config-modal .mini-geofence-form .modal-actions{position:static;margin:10px 0 0;border:1px solid #cdd7d1;border-radius:12px;}

@media(max-width:1080px){
  .attendance-config-modal{width:calc(100vw - 16px);}
  .attendance-config-form{padding:12px 12px 0!important;}
  .attendance-config-command{grid-template-columns:minmax(0,1fr);gap:10px;min-height:0;padding:17px 18px;}
  .attendance-config-command>strong{justify-self:start;min-width:0;min-height:36px;}
  .attendance-config-modal .form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .attendance-config-modal .form-grid-4>.span-2,
  .attendance-config-modal .form-grid-4>.span-3,
  .attendance-config-modal .form-grid-4>.span-4{grid-column:span 2;}
  .attendance-assignment-toolbar{grid-template-columns:minmax(0,1fr) minmax(190px,.8fr);}
  .attendance-assignment-toolbar>div{white-space:normal;}
  .attendance-assignment-toolbar>small{align-self:center;}
  .attendance-geofence-management,.attendance-config-modal .mini-geofence-form{width:calc(100% - 24px);}
}
@media(max-width:820px){
  .attendance-config-modal{top:6px;width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px);border-radius:15px;}
  .attendance-config-modal>.modal-header{min-height:72px;padding:10px 12px;}
  .attendance-config-modal .modal-title-row h2{font-size:18px;}
  .attendance-config-task-rail{grid-template-columns:repeat(2,minmax(0,1fr));}
  .attendance-config-task-rail>span:nth-child(2){border-right:0;}
  .attendance-config-task-rail>span:nth-child(-n+2){border-bottom:1px solid #d8dfda;}
  .attendance-shift-config-grid{grid-template-columns:1fr;}
  .attendance-rotation-config{grid-template-columns:1fr;}
  .attendance-rotation-preview{grid-template-columns:1fr;}
  .attendance-rotation-preview span{border-right:0;border-bottom:1px solid #dce3de;}
  .attendance-rotation-preview span:last-child{border-bottom:0;}
  .attendance-assignment-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .attendance-assignment-toolbar{grid-template-columns:1fr;align-items:stretch;}
  .attendance-assignment-toolbar>button,.attendance-assignment-toolbar select{width:100%;}
  .attendance-employee-picker-list{grid-template-columns:1fr;max-height:min(340px,45vh);}
  .attendance-config-modal .form-section-title{align-items:flex-start;flex-direction:column;}
  .attendance-config-modal .form-section-title span{max-width:100%;text-align:left;}
  .attendance-config-form .modal-actions{bottom:6px;flex-wrap:wrap;}
  .attendance-config-form .modal-actions .form-submit-note{flex-basis:100%;margin:0;}
}
@media(max-width:620px){
  .attendance-config-form{padding:8px 8px 0!important;}
  .attendance-config-command{padding:15px;border-radius:14px;}
  .attendance-config-command h3{font-size:22px;}
  .attendance-config-task-rail b{font-size:11px;}
  .attendance-config-modal .form-section{padding:11px!important;border-radius:12px!important;}
  .attendance-config-modal .form-section-title{margin:-11px -11px 11px!important;padding:9px 11px!important;}
  .attendance-config-modal .form-grid-4{grid-template-columns:1fr;}
  .attendance-config-modal .form-grid-4>.span-2,
  .attendance-config-modal .form-grid-4>.span-3,
  .attendance-config-modal .form-grid-4>.span-4{grid-column:1;}
  .attendance-shift-config-card>div{grid-template-columns:1fr;}
  .attendance-assignment-summary{grid-template-columns:1fr;}
  .attendance-employee-picker-tools>button{flex:1 1 120px;}
  .attendance-employee-picker>footer{display:grid;grid-template-columns:1fr 1fr;}
  .attendance-config-form .modal-actions .primary-button{width:100%;justify-content:center;}
  .attendance-geofence-management,.attendance-config-modal .mini-geofence-form{width:calc(100% - 16px);margin-top:8px;}
}
@media(prefers-reduced-motion:reduce){
  .attendance-config-scroll{scroll-behavior:auto;}
  .attendance-config-modal .form-section,.attendance-shift-config-card{transition:none;transform:none!important;}
}

/* 食堂报餐：暖中性色后台工作台，四餐自由选择、分餐截止、日报与明细共屏。 */
.canteen-meal-modal{
  top:10px;
  width:min(1480px,calc(100vw - 24px));
  max-width:min(1480px,calc(100vw - 24px));
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  overflow:hidden;
  border:1px solid #d4c9b8;
  border-radius:20px;
  color:#342f27;
  background:#f5f1e9;
  box-shadow:0 28px 74px rgba(67,53,34,.22),0 7px 22px rgba(67,53,34,.1);
}
body .data-modal.canteen-meal-modal.workspace-bound-form-modal{
  width:auto!important;
  max-width:none!important;
}
.canteen-meal-modal>.modal-header{
  min-height:82px;
  padding:13px 20px;
  border-bottom:1px solid #ded5c8;
  background:linear-gradient(112deg,#fffdf8,#f6f0e5 66%,#eef3ea);
  box-shadow:0 6px 18px rgba(70,56,37,.06);
}
.canteen-meal-modal>.modal-header .modal-title-row h2{color:#3d362b;font-size:22px;}
.canteen-meal-modal>.modal-header .modal-title-row p{color:#827155;font-weight:800;}
.canteen-meal-workbench{
  display:grid;
  gap:12px;
  height:calc(100% - 82px);
  padding:14px 16px 20px;
  overflow:auto;
  scrollbar-gutter:stable;
}
.canteen-meal-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,410px);
  align-items:center;
  gap:24px;
  min-height:126px;
  padding:20px 24px;
  border:1px solid #4d654f;
  border-radius:18px;
  color:#fbfcf7;
  background:radial-gradient(circle at 86% 14%,rgba(222,188,114,.22),transparent 25%),linear-gradient(125deg,#2f4937,#49644d 64%,#6d7553);
  box-shadow:0 15px 34px rgba(52,75,57,.15);
}
.canteen-meal-hero>div:first-child{display:grid;gap:5px;min-width:0;}
.canteen-meal-hero>div:first-child>span{color:#e9d8ad;font-size:10px;font-weight:900;letter-spacing:.18em;}
.canteen-meal-hero h3{margin:0;color:#fff;font-size:clamp(22px,2.6vw,34px);line-height:1.12;letter-spacing:-.035em;}
.canteen-meal-hero p{max-width:870px;margin:0;color:rgba(255,255,249,.76);font-size:12px;line-height:1.65;}
.canteen-meal-window-status{display:grid;gap:6px;justify-items:start;padding:14px 16px;border:1px solid rgba(255,255,255,.25);border-radius:13px;background:rgba(255,255,255,.11);backdrop-filter:blur(7px);}
.canteen-meal-window-status strong{font-size:16px;}
.canteen-meal-window-status small{color:rgba(255,255,249,.75);font-size:10px;line-height:1.6;}
.canteen-meal-window-status.is-closed{border-color:rgba(255,216,193,.32);background:rgba(117,57,38,.22);}
.canteen-meal-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.canteen-meal-kpis article{display:grid;gap:3px;min-height:82px;padding:13px 15px;border:1px solid #ddd4c6;border-radius:13px;background:#fffdf8;box-shadow:0 6px 16px rgba(74,58,39,.045);}
.canteen-meal-kpis span{color:#776a58;font-size:11px;font-weight:800;}
.canteen-meal-kpis strong{color:#3f4f3f;font-size:25px;line-height:1.1;}
.canteen-meal-kpis article.is-alert{border-color:#e2c39a;background:#fff9ec;}
.canteen-meal-kpis article.is-alert strong{color:#9a5a23;}
.canteen-meal-settings{display:grid!important;gap:12px!important;padding:14px!important;border:1px solid #ddd2c2!important;border-radius:15px!important;background:#fffdf8!important;box-shadow:0 8px 20px rgba(67,52,33,.05)!important;}
.canteen-meal-settings .form-section-title{margin:0!important;padding:0 0 11px!important;border-bottom:1px solid #e6ded2!important;background:transparent!important;}
.canteen-rule-table{overflow:hidden;border:1px solid #ddd3c5;border-radius:12px;background:#fff;}
.canteen-rule-head,.canteen-rule-row{display:grid;grid-template-columns:70px repeat(5,minmax(112px,1fr));align-items:center;gap:8px;padding:8px 10px;}
.canteen-rule-head{color:#746753;background:#f2ede4;font-size:10px;font-weight:900;text-align:center;}
.canteen-rule-row{border-top:1px solid #eee7dc;}
.canteen-rule-row>strong{color:#3d5845;font-size:13px;text-align:center;}
.canteen-rule-row label{display:grid;gap:4px;min-width:0;}
.canteen-rule-row label>span{display:none;color:#746753;font-size:9px;font-weight:800;}
.canteen-rule-row input{width:100%;min-width:0;min-height:38px;padding:6px 8px;border:1px solid #d8cfc1;border-radius:8px;background:#fff;box-sizing:border-box;font-size:11px;}
.canteen-rule-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;}
.canteen-rule-actions>span{margin-right:auto;color:#7b6e5c;font-size:10px;font-weight:800;}
.canteen-rule-actions .canteen-meal-switch{display:grid;grid-template-columns:auto auto!important;gap:6px 9px!important;min-width:145px;}
.canteen-meal-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(130px,.9fr) minmax(150px,1fr) auto;align-items:end;gap:10px;}
.canteen-meal-settings-grid>label{display:grid;gap:6px;min-width:0;}
.canteen-meal-settings-grid>label>span{color:#695f51;font-size:10px;font-weight:800;}
.canteen-meal-settings-grid :is(input,select){width:100%;min-width:0;min-height:40px;border-color:#d6ccbd;border-radius:9px;background:#fff;}
.canteen-meal-settings-grid>.primary-button{min-height:40px;white-space:nowrap;}
.canteen-meal-switch{grid-template-columns:1fr auto!important;align-items:center;min-height:40px;padding:6px 10px;border:1px solid #d6ccbd;border-radius:9px;background:#f8f4ec;}
.canteen-meal-switch>span{grid-column:1/-1;}
.canteen-meal-switch input{width:18px!important;min-height:18px!important;}
.canteen-meal-switch strong{color:#44634d;font-size:11px;}
.canteen-checkin-console{display:grid;gap:12px;padding:14px;border:1px solid #d5cbbd;border-radius:15px;background:linear-gradient(120deg,#fffdf8,#f3f5ed);box-shadow:0 8px 20px rgba(67,52,33,.05);}
.canteen-checkin-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:11px;border-bottom:1px solid #e1d9cd;}
.canteen-checkin-heading>div{display:flex;align-items:center;gap:10px;min-width:0;}
.canteen-checkin-heading>div>span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:11px;color:#3f6e52;background:#e4efe5;}
.canteen-checkin-heading strong,.canteen-checkin-heading small{display:block;}
.canteen-checkin-heading strong{color:#3f493d;font-size:14px;}
.canteen-checkin-heading small{margin-top:3px;color:#7e725f;font-size:10px;line-height:1.5;}
.canteen-checkin-heading ol{display:flex;gap:5px;margin:0;padding:0;list-style:none;counter-reset:checkin-step;}
.canteen-checkin-heading li{counter-increment:checkin-step;padding:7px 9px;border:1px solid #d9d0c3;border-radius:9px;color:#6f6250;background:#fff;font-size:9px;white-space:nowrap;}
.canteen-checkin-heading li::before{margin-right:5px;color:#497158;font-weight:900;content:counter(checkin-step);}
.canteen-checkin-layout{display:grid;grid-template-columns:minmax(0,1.25fr) 220px minmax(300px,.85fr);gap:12px;align-items:stretch;}
.canteen-device-scan-form,.canteen-scan-result{display:grid;align-content:start;gap:9px;padding:14px;border:1px solid #ded5c9;border-radius:12px;background:#fff;}
.canteen-device-scan-form label{display:grid;gap:5px;min-width:0;}
.canteen-device-scan-form label>span{color:#736654;font-size:10px;font-weight:800;}
.canteen-device-scan-form input{width:100%;min-width:0;min-height:40px;border:1px solid #d7cdbf;border-radius:9px;background:#fff;box-sizing:border-box;}
.canteen-device-scan-form .canteen-scan-input input{min-height:50px;border:2px solid #73947d;background:#f4faf5;font-size:14px;font-weight:800;}
.canteen-device-scan-form button{min-height:42px;}
.canteen-device-scan-form>small{color:#827561;font-size:9px;line-height:1.55;}
.canteen-scan-result{align-content:center;justify-items:center;min-height:210px;color:#766957;background:#faf7f1;text-align:center;}
.canteen-scan-result>span{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;color:#597964;background:#e8f0e9;}
.canteen-scan-result strong{font-size:12px;}
.canteen-scan-result small{color:#8c7d69;font-size:9px;line-height:1.5;}
.canteen-scan-result.has-result{border-color:#9cbea6;color:#315d40;background:#eff7f0;}
.canteen-scan-result.has-error{border-color:#d9a49d;color:#8a3f36;background:#fff3f1;}
.canteen-scan-result.has-error>span{color:#a34e43;background:#f8deda;}
.canteen-meal-charge-table-scroll{max-height:320px;border:1px solid #ddd4c7;border-radius:12px;background:#fff;}
.canteen-meal-charge-table{min-width:980px;}
.canteen-meal-charge-table thead th{position:sticky;top:0;z-index:2;color:#51483d;background:#eee8de;}
.canteen-meal-charge-table td small{display:block;margin-top:3px;color:#887b68;font-size:9px;}
.canteen-checkin-code-form,.canteen-checkin-manual{display:grid;align-content:start;gap:9px;padding:12px;border:1px solid #ded5c9;border-radius:12px;background:#fff;}
.canteen-checkin-code-form{grid-template-columns:repeat(3,minmax(110px,1fr));}
.canteen-checkin-code-form label,.canteen-checkin-manual label{display:grid;gap:5px;min-width:0;}
.canteen-checkin-code-form label span,.canteen-checkin-manual label span{color:#736654;font-size:10px;font-weight:800;}
.canteen-checkin-code-form :is(input,select),.canteen-checkin-manual :is(input,select){width:100%;min-width:0;min-height:39px;border:1px solid #d7cdbf;border-radius:9px;background:#fff;}
.canteen-checkin-code-form button{grid-column:1/-1;min-height:40px;}
.canteen-checkin-qr{display:grid;align-content:center;justify-items:center;gap:7px;min-height:202px;padding:12px;border:1px dashed #b9aa94;border-radius:12px;color:#6b604f;background:#fffaf1;text-align:center;}
.canteen-checkin-qr>[data-qr-payload]{display:flex;align-items:center;justify-content:center;width:168px;height:168px;padding:5px;border:1px solid #ddd2c3;border-radius:8px;background:#fff;box-sizing:border-box;}
.canteen-checkin-qr img,.canteen-checkin-qr canvas{max-width:100%;height:auto!important;}
.canteen-checkin-qr>strong{font-size:12px;}
.canteen-checkin-qr>small{max-width:190px;color:#8c7d69;font-size:9px;line-height:1.4;}
.canteen-checkin-manual>strong{color:#51483d;font-size:12px;}
.canteen-checkin-manual>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.canteen-checkin-manual button{min-height:40px;}
.canteen-report-actions{display:flex;justify-content:flex-end;margin-top:-3px;}
.canteen-report-actions button{min-height:36px;}
.canteen-meal-report{display:grid;gap:12px;padding:14px;border:1px solid #ddd2c2;border-radius:15px;background:#fffdf8;box-shadow:0 8px 20px rgba(67,52,33,.05);}
.canteen-meal-filter{display:grid!important;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(180px,1.35fr) auto auto!important;align-items:end;gap:9px!important;padding:0!important;border:0!important;background:transparent!important;}
.canteen-meal-filter label{display:grid;gap:5px;min-width:0;}
.canteen-meal-filter label>span{color:#6d6253;font-size:10px;font-weight:800;}
.canteen-meal-filter :is(input,select){width:100%;min-width:0;min-height:40px;border:1px solid #d6ccbd;border-radius:9px;background:#fff;}
.canteen-meal-filter>button{min-height:40px;white-space:nowrap;}
.canteen-meal-daily-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:10px;}
.canteen-meal-daily-grid>article{overflow:hidden;border:1px solid #dcd3c7;border-radius:13px;background:#fff;box-shadow:0 5px 14px rgba(68,52,35,.045);}
.canteen-meal-daily-grid article header{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid #ebe4da;background:#f5f1e9;}
.canteen-meal-daily-grid article header strong{color:#3d4f40;font-size:13px;}
.canteen-meal-daily-grid article header span{color:#7a6e5d;font-size:10px;font-weight:800;}
.canteen-meal-daily-grid article>div{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:11px 9px;}
.canteen-meal-daily-grid article b{padding:3px 6px;border-right:1px solid #eee7dd;color:#4b674f;font-size:11px;text-align:center;white-space:nowrap;}
.canteen-meal-daily-grid article b small{display:block;margin-top:4px;color:#9b6e39;font-size:9px;font-weight:800;}
.canteen-meal-daily-grid article b:last-child{border-right:0;}
.canteen-meal-daily-grid article footer{padding:9px 13px;border-top:1px solid #eee7dd;color:#7b6e5c;background:#fbf9f4;font-size:10px;line-height:1.5;}
.canteen-meal-daily-grid article footer.has-gap{color:#8e5829;background:#fff8e9;}
.canteen-meal-table-scroll{max-height:380px;border:1px solid #ddd4c7;border-radius:12px;background:#fff;}
.canteen-meal-table{min-width:1120px;}
.canteen-meal-table thead th{position:sticky;top:0;z-index:2;color:#51483d;background:#eee8de;}
.canteen-meal-table tbody tr:hover{background:#fbf7ed;}
.canteen-meal-table td small{display:block;margin-top:3px;color:#887b68;font-size:9px;}
.canteen-meal-table th:nth-child(n+5):nth-child(-n+8),.canteen-meal-table td:nth-child(n+5):nth-child(-n+8){width:62px;text-align:center;}
.canteen-meal-checkin-table-scroll{max-height:300px;border:1px solid #ddd4c7;border-radius:12px;background:#fff;}
.canteen-meal-checkin-table{min-width:900px;}
.canteen-meal-checkin-table thead th{position:sticky;top:0;z-index:2;color:#51483d;background:#f0ebe2;}
.canteen-meal-checkin-table td small{display:block;margin-top:3px;color:#887b68;font-size:9px;}

@media(max-width:1180px){
  .canteen-meal-settings-grid{grid-template-columns:repeat(4,minmax(120px,1fr));}
  .canteen-meal-settings-grid>.primary-button{grid-column:span 1;}
  .canteen-meal-filter{grid-template-columns:repeat(3,minmax(150px,1fr))!important;}
  .canteen-checkin-layout{grid-template-columns:minmax(0,1fr) 210px;}
  .canteen-device-scan-form{grid-column:1/-1;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.5fr) auto;align-items:end;}
  .canteen-device-scan-form>small{grid-column:1/-1;}
  .canteen-checkin-manual{grid-column:1/-1;}
}
@media(max-width:820px){
  .canteen-meal-modal{top:6px;width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px);border-radius:15px;}
  .canteen-meal-workbench{height:calc(100% - 72px);padding:10px;}
  .canteen-meal-hero{grid-template-columns:1fr;gap:12px;padding:17px;}
  .canteen-meal-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .canteen-meal-settings-grid,.canteen-meal-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .canteen-rule-head{display:none;}
  .canteen-rule-row{grid-template-columns:60px repeat(2,minmax(0,1fr));}
  .canteen-rule-row label>span{display:block;}
  .canteen-rule-actions{align-items:stretch;flex-direction:column;}
  .canteen-rule-actions>span{margin:0;}
  .canteen-meal-filter>button{width:100%;}
  .canteen-checkin-heading{align-items:flex-start;flex-direction:column;}
  .canteen-checkin-heading ol{flex-wrap:wrap;}
  .canteen-checkin-layout{grid-template-columns:1fr;}
  .canteen-device-scan-form{grid-column:1;grid-template-columns:1fr;}
  .canteen-device-scan-form>small{grid-column:1;}
  .canteen-checkin-manual{grid-column:1;}
}
@media(max-width:560px){
  .canteen-meal-kpis,.canteen-meal-settings-grid,.canteen-meal-filter{grid-template-columns:1fr!important;}
  .canteen-meal-settings-grid>.primary-button{grid-column:1;}
  .canteen-meal-daily-grid{grid-template-columns:1fr;}
  .canteen-meal-hero h3{font-size:22px;}
  .canteen-checkin-code-form{grid-template-columns:1fr;}
  .canteen-checkin-code-form button{grid-column:1;}
  .canteen-rule-row{grid-template-columns:1fr 1fr;}
  .canteen-rule-row>strong{grid-column:1/-1;text-align:left;}
}
.capital-financing-modal{width:min(1260px,calc(100vw - 56px));max-height:calc(100vh - 36px);overflow:hidden}
.capital-financing-workbench{display:grid;gap:16px;padding:16px 18px 26px;overflow:auto;background:linear-gradient(180deg,#f7f5ef 0%,#f3f1eb 100%)}
.capital-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
.capital-entry-form{margin:0;border:1px solid #d9ddd5;border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(44,55,48,.08);overflow:visible}
.capital-entry-form .finance-sheet{padding:18px 20px 6px}
.capital-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}
.capital-entry-grid label.full{grid-column:1/-1}
.capital-entry-grid .computed-field{min-height:72px;padding:12px 14px;border:1px solid #ceddd5;border-radius:13px;background:#edf6f1}
.capital-entry-grid .computed-field span{display:block;margin-bottom:8px;color:#5c6a62;font-size:12px}
.capital-entry-grid .computed-field output{display:block;color:#1f5e48;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.capital-entry-grid .computed-field.is-accent{border-color:#ead0a0;background:#fff4dd}
.capital-entry-grid .computed-field.is-accent output{color:#9a5b08}
.capital-ledger-panel{border:1px solid #d9ddd5;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(44,55,48,.06);overflow:hidden}
.capital-ledger-panel>header,.loan-repayment-form>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid #e5e8e2;background:#fbfcfa}
.capital-ledger-panel>header span,.loan-repayment-form>header span{display:block;margin-bottom:4px;color:#69756d;font-size:12px;letter-spacing:.08em}
.capital-ledger-panel>header h3,.loan-repayment-form>header h3{margin:0;color:#20352d;font-size:18px}
.capital-ledger-panel>header small{color:#6d756f}
.capital-ledger-panel .table-scroll{max-height:300px}
.finance-capital-table th,.finance-capital-table td,.short-loan-table th,.short-loan-table td{white-space:nowrap}
.loan-repayment-form{padding:0 18px 16px;border:1px solid #d9c9a8;border-radius:18px;background:#fffaf0;box-shadow:0 12px 28px rgba(92,66,27,.08)}
.loan-repayment-form>header{margin:0 -18px 15px;background:#fff7e8}
.loan-repayment-form .sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.loan-repayment-form .form-actions{padding:14px 0 0}
.repayment-ledger .table-scroll{max-height:220px}
@media(max-width:1100px){.capital-financing-modal{width:calc(100vw - 28px)}.capital-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capital-kpis{grid-template-columns:repeat(3,minmax(150px,1fr));overflow:auto}.loan-repayment-form .sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.capital-financing-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.capital-financing-workbench{padding:10px}.capital-entry-grid,.loan-repayment-form .sheet-grid{grid-template-columns:1fr}.capital-kpis{grid-template-columns:1fr}.capital-entry-grid label.full{grid-column:auto}.capital-ledger-panel>header,.loan-repayment-form>header{align-items:flex-start;flex-direction:column}}

/* Release 430：每日生产投料四项主操作始终固定可见，笔记本与 iPad 不再纵向挤出视口。 */
.daily-production-modal{top:10px!important;max-height:calc(100vh - 20px)!important}
.daily-production-modal>.compact-daily-form{display:flex;flex:1;flex-direction:column;gap:0;min-height:0;padding:0!important;overflow:hidden}
.daily-production-modal>.compact-daily-form>.daily-production-scroll{flex:1;min-height:0;overflow:auto}
.daily-production-modal .compact-daily-actions{position:sticky!important;right:auto!important;bottom:0!important;left:auto!important;flex:0 0 auto;display:grid!important;grid-template-columns:minmax(260px,1fr) repeat(4,max-content);align-items:center;gap:8px;margin:0!important;border-radius:0!important}
.daily-production-modal .compact-daily-actions>span{min-width:0;margin:0}
.daily-production-modal .compact-daily-actions>button{min-width:92px;justify-content:center;white-space:nowrap}
@media(max-width:900px){.daily-production-modal .compact-daily-actions{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.daily-production-modal .compact-daily-actions>span{grid-column:1/-1}.daily-production-modal .compact-daily-actions>button{width:100%;min-height:38px}}
/* 客餐码与工作代领/送餐 */
.canteen-special-meal-console{display:grid;gap:16px;padding:20px;border:1px solid #d8d2c6;border-radius:22px;background:#fbf9f4;box-shadow:0 12px 30px rgba(71,61,47,.07)}
.canteen-special-meal-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(460px,1.28fr);gap:16px;align-items:stretch}
.canteen-guest-pass-form,.canteen-guest-pass-preview,.canteen-work-meal-board{display:grid;align-content:start;gap:12px;min-width:0;padding:18px;border:1px solid #ded7cb;border-radius:18px;background:#fff}
.canteen-guest-pass-form label{display:grid;gap:6px}.canteen-guest-pass-form label>span{color:#6f6454;font-size:12px;font-weight:700}.canteen-guest-pass-form input,.canteen-guest-pass-form select{width:100%;min-height:38px;padding:7px 10px;border:1px solid #d8d0c3;border-radius:10px;background:#fff;box-sizing:border-box}
.canteen-special-title{display:flex;align-items:center;gap:10px}.canteen-special-title>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#315b42;background:#e9f2e9}.canteen-special-title>div{display:grid;gap:2px}.canteen-special-title strong{color:#34493a;font-size:16px}.canteen-special-title small{color:#827665;font-size:12px}
.canteen-guest-pass-preview{place-items:center;align-content:center;text-align:center;background:linear-gradient(145deg,#edf5ee,#fffdf7)}.canteen-guest-pass-preview>header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.canteen-guest-pass-preview>header>div{display:grid;gap:3px}.canteen-guest-pass-preview>header small{color:#746b5e}.canteen-guest-code-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;max-height:370px;overflow:auto;padding:2px}.canteen-guest-code-grid article{display:grid;justify-items:center;gap:7px;padding:12px;border:1px solid #d8e2d8;border-radius:14px;background:#fff}.canteen-guest-code-grid img{width:min(150px,100%);aspect-ratio:1;border:6px solid #fff;border-radius:12px;box-shadow:0 7px 18px rgba(49,91,66,.12)}.canteen-guest-code-grid strong{font-size:12px;color:#2d4938}.canteen-guest-code-grid small{color:#746b5e}.canteen-guest-pass-preview>span{color:#52705d}.canteen-guest-pass-preview>small{color:#7b7060;line-height:1.5}.canteen-work-meal-board{grid-column:1/-1;grid-template-rows:auto minmax(180px,1fr)}.canteen-work-meal-board .table-scroll{max-height:330px}.canteen-guest-ledger-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.canteen-guest-ledger-toolbar strong{color:#34493a;font-size:16px}
@media(max-width:1180px){.canteen-special-meal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.canteen-work-meal-board{grid-column:1/-1}}
@media(max-width:760px){.canteen-special-meal-grid{grid-template-columns:1fr}.canteen-work-meal-board{grid-column:auto}.canteen-special-meal-console{padding:14px}.canteen-guest-pass-form,.canteen-guest-pass-preview,.canteen-work-meal-board{padding:14px}}

/* Release 455：客户用餐与工作送餐改为紧凑操作台，保留完整录入、暂存、打印和送餐链路。 */
.canteen-special-meal-console{gap:10px;padding:14px 16px;border-radius:18px}
.canteen-special-meal-grid{grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);grid-template-areas:"guest-form guest-preview" "guest-form guest-drafts" "work-meals work-meals";gap:10px;align-items:start}
.canteen-guest-pass-form{grid-area:guest-form}.canteen-guest-pass-preview{grid-area:guest-preview}.canteen-guest-draft-board{grid-area:guest-drafts}.canteen-work-meal-board{grid-area:work-meals}
.canteen-guest-pass-form,.canteen-guest-pass-preview,.canteen-work-meal-board,.canteen-guest-draft-board{display:grid;align-content:start;gap:9px;min-width:0;padding:13px 14px;border:1px solid #ded7cb;border-radius:14px;background:#fff}
.canteen-guest-pass-form{grid-template-columns:repeat(2,minmax(0,1fr))}.canteen-guest-pass-form>.canteen-special-title,.canteen-guest-pass-form>.form-grid-2,.canteen-guest-pass-form>.canteen-guest-form-actions{grid-column:1/-1}
.canteen-guest-pass-form label{gap:4px}.canteen-guest-pass-form input,.canteen-guest-pass-form select{min-height:34px;padding:5px 9px;border-radius:8px}
.canteen-guest-form-actions,.canteen-guest-print-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.canteen-guest-form-actions .text-button{min-height:34px}
.canteen-guest-print-actions label{display:inline-flex;align-items:center;gap:5px;color:#6f6454;font-size:12px;font-weight:700;white-space:nowrap}
.canteen-guest-print-actions input{width:54px;min-height:32px;padding:4px 6px;border:1px solid #d8d0c3;border-radius:8px;text-align:center}
.canteen-guest-pass-preview{min-height:0;place-items:stretch;text-align:left}
.canteen-guest-pass-preview>span,.canteen-guest-pass-preview>strong,.canteen-guest-pass-preview>small{justify-self:center;text-align:center}
.canteen-guest-code-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:8px;max-height:210px}
.canteen-guest-code-grid article{gap:5px;padding:8px;border-radius:10px}.canteen-guest-code-grid img{width:min(104px,100%);border-width:4px;border-radius:8px}
.canteen-guest-draft-board{max-height:170px}.canteen-guest-draft-list{display:grid;gap:6px;overflow:auto}.canteen-guest-draft-list .empty-state{min-height:58px;padding:12px}.canteen-guest-draft-list article{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid #ece7dd;border-radius:10px;background:#fbfaf6}.canteen-guest-draft-list article>div:first-child{display:grid;gap:2px;min-width:0}.canteen-guest-draft-list article>div:last-child{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.canteen-guest-draft-list strong,.canteen-guest-draft-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canteen-guest-draft-list small{color:#7c7366}
.canteen-work-meal-board{grid-column:auto;grid-template-rows:auto minmax(0,1fr);max-height:190px}.canteen-work-meal-board .table-scroll{max-height:130px}
.canteen-guest-ledger-toolbar{min-height:38px}.canteen-guest-ledger-scroll{max-height:220px}
@media(max-width:1180px){.canteen-special-meal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.canteen-special-meal-grid{grid-template-columns:1fr;grid-template-areas:"guest-form" "guest-preview" "guest-drafts" "work-meals"}.canteen-special-meal-console{padding:10px}.canteen-guest-pass-form{grid-template-columns:1fr}.canteen-guest-pass-form>.canteen-special-title,.canteen-guest-pass-form>.form-grid-2,.canteen-guest-pass-form>.canteen-guest-form-actions{grid-column:auto}.canteen-guest-pass-form,.canteen-guest-pass-preview,.canteen-work-meal-board,.canteen-guest-draft-board{padding:11px}.canteen-guest-print-actions{justify-content:flex-start}}

.canteen-guest-pass-print-sheet{display:none;background:#fff;color:#16291f;padding:12mm;font-family:"Microsoft YaHei",sans-serif}.canteen-guest-pass-print-sheet>header{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:5mm;border-bottom:2px solid #2f684a}.canteen-guest-pass-print-sheet>header strong{font-size:20px}.canteen-guest-pass-print-sheet>header span{font-size:15px;color:#52665a}.canteen-guest-print-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8mm;margin-top:8mm}.canteen-guest-print-grid article{break-inside:avoid;display:grid;justify-items:center;gap:2.5mm;padding:7mm;border:1px solid #9eb6a7;border-radius:5mm;text-align:center}.canteen-guest-print-grid img{width:54mm;height:54mm;object-fit:contain}.canteen-guest-print-title{width:100%;display:flex;justify-content:space-between;gap:6mm}.canteen-guest-print-title strong{font-size:17px;color:#254b36}.canteen-guest-print-title span{font-size:11px}.canteen-guest-print-grid h3{margin:0;font-size:16px}.canteen-guest-print-grid p,.canteen-guest-print-grid small{margin:0;color:#59665d}.canteen-guest-print-grid small{font-size:11px}
@media print{body.printing-canteen-guest-passes>*:not(.canteen-guest-pass-print-sheet){display:none!important}body.printing-canteen-guest-passes .canteen-guest-pass-print-sheet{display:block!important}body.printing-canteen-guest-passes{background:#fff!important}.canteen-guest-pass-print-sheet{padding:0}.canteen-guest-print-grid{grid-template-columns:repeat(2,1fr)}}

/* 20260830-interface-audit-polish-release-443
   redesign-existing-projects + gpt-taste：全系统低风险视觉一致性校准。
   只统一字体、层级、表格、滚动与交互反馈，不改变字段、事件、权限、审批或数据。 */
:root{
  --hh-ui-font:"Geist","MiSans","HarmonyOS Sans SC","Segoe UI Variable Display","Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif;
  --hh-paper-strong:#fffefb;
  --hh-paper-muted:#f5f4ef;
  --hh-border-quiet:#dde1dc;
  --hh-shadow-soft:0 10px 26px rgba(35,55,46,.065),0 2px 7px rgba(35,55,46,.035);
  --hh-shadow-hover:0 15px 32px rgba(36,69,54,.105),0 3px 9px rgba(36,69,54,.05);
}

html,body,button,input,select,textarea{
  font-family:var(--hh-ui-font);
}

html{
  scrollbar-color:#9fb5aa #edf0ec;
  scrollbar-width:thin;
}

body:not(.is-login-screen) .workspace{
  overflow-x:clip;
  background:
    radial-gradient(circle at 88% 2%,rgba(93,142,118,.075),transparent 24rem),
    radial-gradient(circle at 10% 96%,rgba(196,173,128,.07),transparent 27rem),
    linear-gradient(145deg,rgba(255,255,255,.34),rgba(242,239,232,.58));
}

:where(.module-grid,.content-grid,.module-ledger-browser,.panel,.form-section,.table-card){
  min-width:0;
}

:where(.module-command,.module-browse-guide,.module-ledger-browser,.executive-command-hero){
  overflow:hidden;
  border-color:var(--hh-border-quiet);
  background-color:var(--hh-paper-strong);
  box-shadow:var(--hh-shadow-soft);
}

:where(.module-command,.module-browse-guide,.module-ledger-browser) :is(h1,h2,h3),
:where(.modal-header,.detail-form-header) :is(h1,h2,h3){
  max-width:min(100%,72rem);
  line-height:1.24;
  text-wrap:balance;
}

:where(.module-command,.module-browse-guide,.module-ledger-browser,.modal-header,.detail-form-header) p{
  max-width:72ch;
  line-height:1.55;
  text-wrap:pretty;
}

:where(.stat-tile,.executive-kpi-card,.module-business-item,.ledger-function-section){
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-color:var(--hh-border-quiet);
  box-shadow:0 4px 14px rgba(40,60,51,.045);
}

:where(.stat-tile,.executive-kpi-card,.module-business-item):hover{
  transform:translateY(-2px);
  border-color:#b3c8bd;
  box-shadow:var(--hh-shadow-hover);
}

:where(.stat-tile,.executive-kpi-card,.module-business-item):focus-within{
  border-color:#7da18f;
  box-shadow:0 0 0 3px rgba(47,112,89,.11),var(--hh-shadow-soft);
}

:where(.data-modal,.search-modal,.approval-detail-drawer){
  overscroll-behavior:contain;
}

.data-modal{
  background:var(--hh-paper-muted);
}

.data-modal>.modal-header,
.detail-form-header{
  flex:0 0 auto;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 5px 16px rgba(45,62,53,.04);
}

.data-modal>.modal-header :where(h2,p),
.detail-form-header :where(h2,p){
  min-width:0;
}

.business-form,
.system-business-unified-body,
.system-input-window-body,
.system-upload-window-body{
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}

.business-form .form-section{
  overflow:clip;
  border-color:#d2d7d2;
  box-shadow:0 4px 13px rgba(46,59,51,.035),inset 0 1px 0 #fff;
}

.business-form .form-section:focus-within{
  border-color:#a7beb2;
  box-shadow:0 8px 22px rgba(45,81,62,.07),0 0 0 2px rgba(57,112,87,.055);
}

.business-form .form-section-title,
.form-section-title{
  gap:12px;
  min-width:0;
}

.form-section-title>span,
.business-form .form-section-title>span{
  max-width:64ch;
  line-height:1.45;
  text-wrap:pretty;
}

.business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]),
.data-modal label.sheet-field :is(input,select,textarea){
  min-height:38px;
  line-height:1.35;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

.business-form textarea,
.data-modal label.sheet-field textarea{
  min-height:68px;
}

.business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]):hover:not(:disabled):not([readonly]),
.data-modal label.sheet-field :is(input,select,textarea):hover:not(:disabled):not([readonly]){
  border-color:#aebfb6;
}

:where(.table-scroll,.table-wrap,.module-table-wrap,.module-terminal-ledger-wrap,.effective-workflow-table-wrap,.approval-inbox-table-wrap,.purchase-request-table-wrap){
  max-width:100%;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}

:is(.data-table,.finance-table,.bank-ledger-table,.permission-table,.workflow-list-table) thead th{
  color:#385248;
  background:linear-gradient(180deg,#eff3ef 0%,#e7ece8 100%);
  font-weight:750;
  font-variant-numeric:tabular-nums;
}

:is(.data-table,.finance-table,.bank-ledger-table,.permission-table,.workflow-list-table) tbody tr{
  transition:background-color .16s ease,box-shadow .16s ease;
}

:is(.data-table,.finance-table,.bank-ledger-table,.permission-table,.workflow-list-table) tbody tr:hover{
  background:#f4f8f5;
  box-shadow:inset 3px 0 0 rgba(47,112,89,.48);
}

.data-modal>.modal-actions,
.business-form .modal-actions{
  isolation:isolate;
  min-height:58px;
}

.data-modal :is(.primary-button,.outline-button,.secondary-button):not(.icon-button),
.business-form :is(.primary-button,.outline-button,.secondary-button):not(.icon-button){
  min-height:38px;
  white-space:nowrap;
}

.data-modal :is(.primary-button,.outline-button,.secondary-button):active:not(:disabled),
.business-form :is(.primary-button,.outline-button,.secondary-button):active:not(:disabled){
  transform:translateY(1px) scale(.99);
}

.empty-state,
.module-table-empty,
.workflow-diagnostic-empty{
  border-color:#cbd9d1;
  color:#5f746a;
  background:
    radial-gradient(circle at 50% 12%,rgba(66,128,99,.075),transparent 12rem),
    linear-gradient(180deg,#fbfcf9,#f5f5ef);
}

@media(max-width:1024px){
  :where(.module-command,.module-browse-guide,.module-ledger-browser,.executive-command-hero){border-radius:15px}
  .form-section-title>span,.business-form .form-section-title>span{max-width:48ch}
}

@media(max-width:720px){
  :where(.module-command,.module-browse-guide,.module-ledger-browser) :is(h1,h2,h3),
  :where(.modal-header,.detail-form-header) :is(h1,h2,h3){line-height:1.3}
  .business-form .form-section-title,.form-section-title{align-items:flex-start}
  .form-section-title>span,.business-form .form-section-title>span{max-width:100%}
  .data-modal>.modal-actions,.business-form .modal-actions{min-height:54px}
}

@media(prefers-reduced-motion:reduce){
  :where(.stat-tile,.executive-kpi-card,.module-business-item),
  :is(.data-table,.finance-table,.bank-ledger-table,.permission-table,.workflow-list-table) tbody tr,
  .business-form :is(input,select,textarea){transition:none!important;transform:none!important}
}

/* Release 444：焙烧五个功能页使用固定视口壳层，正文只在壳层内滚动。 */
.spodumene-roasting-backdrop>.spodumene-roasting-modal:has(.roasting-tab-panel){
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  height:min(720px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  overflow:hidden!important;
}

body .spodumene-roasting-backdrop>.data-modal.spodumene-roasting-modal.workspace-bound-form-modal{
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  left:calc((var(--roasting-modal-rail) + 100vw)/2)!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
}

.spodumene-roasting-modal:has(.roasting-tab-panel)>.roasting-workbench{
  min-height:0!important;
  height:100%!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}

.spodumene-roasting-modal:has(.roasting-task-home){
  height:auto!important;
  max-height:calc(100dvh - 24px)!important;
}

@media(max-width:720px){
  .spodumene-roasting-backdrop>.spodumene-roasting-modal:has(.roasting-tab-panel){
    height:calc(100dvh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
  }
}

/* Release 446：重构料入库保留扫码作业，并增加按已审批入库单手动确认。 */
.restructured-inbound-methods{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-width:0;
}

.restructured-manual-inbound{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  min-width:0;
  padding:14px 16px;
  border:1px solid #d8c8aa;
  border-radius:15px;
  background:linear-gradient(145deg,#fffaf0,#fff);
  box-shadow:0 8px 20px rgba(91,68,33,.07);
}

.restructured-manual-inbound>header{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:10px;
  color:#91652b;
}

.restructured-manual-inbound>header>span,
.restructured-manual-inbound>label{
  display:grid;
  gap:4px;
  min-width:0;
}

.restructured-manual-inbound>header strong{color:#5d4930;font-size:14px}
.restructured-manual-inbound>header small,
.restructured-manual-inbound>label>span{color:#81725f;font-size:10px}
.restructured-manual-inbound>label:first-of-type{grid-column:1/-1}
.restructured-manual-inbound select,
.restructured-manual-inbound input{
  width:100%;
  min-width:0;
  min-height:42px;
  border:1px solid #d8cbb6;
  border-radius:10px;
  background:#fff;
  padding:0 11px;
  color:#49443c;
}
.restructured-manual-inbound button{min-height:42px;white-space:nowrap}
.restructured-manual-inbound>em{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:6px;
  color:#64786b;
  font-size:10px;
  font-style:normal;
}
.restructured-manual-inbound button:disabled{opacity:.5;cursor:not-allowed}

.restructured-inbound-methods>.restructured-qr-scanner{
  grid-template-columns:minmax(0,1fr) auto;
  align-content:center;
}
.restructured-inbound-methods>.restructured-qr-scanner>div{grid-column:1/-1}

@media(max-width:1000px){
  .restructured-inbound-methods{grid-template-columns:1fr}
}

@media(max-width:720px){
  .restructured-manual-inbound,
  .restructured-inbound-methods>.restructured-qr-scanner{grid-template-columns:1fr}
  .restructured-manual-inbound>header,
  .restructured-manual-inbound>label:first-of-type,
  .restructured-manual-inbound>em,
  .restructured-inbound-methods>.restructured-qr-scanner>div{grid-column:auto}
  .restructured-manual-inbound button{width:100%}
}

/* Release 447：终审后的重构料二维码直接在焙烧日记中预览和打印。 */
.roasting-log-qr-ready{
  border-color:#c9d8cf;
  background:linear-gradient(145deg,#f7fbf8,#fffdf8);
}

.roasting-log-qr-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  min-width:0;
}

.roasting-log-qr-grid>article{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:8px 10px;
  min-width:0;
  padding:9px;
  border:1px solid #d8e2dc;
  border-radius:13px;
  background:#fff;
  box-shadow:0 5px 14px rgba(40,78,59,.055);
}

.roasting-log-qr-image,
.roasting-log-qr-pending{
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  overflow:hidden;
  border:1px solid #d7e0da;
  border-radius:9px;
  background:#fff;
  color:#628170;
}

.roasting-log-qr-image :is(canvas,img,svg){
  display:block;
  width:76px!important;
  height:76px!important;
}

.roasting-log-qr-grid>article>div:nth-child(2){
  display:grid;
  gap:2px;
  min-width:0;
}

.roasting-log-qr-grid>article small,
.roasting-log-qr-grid>article span,
.roasting-log-qr-grid>article em{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.roasting-log-qr-grid>article small{color:#718078;font-size:9px}
.roasting-log-qr-grid>article strong{color:#264b39;font-size:12px}
.roasting-log-qr-grid>article span{color:#4f6258;font-size:10px}
.roasting-log-qr-grid>article em{color:#8b6a39;font-size:9px;font-style:normal}
.roasting-log-qr-grid>article>button{grid-column:1/-1;width:100%;min-height:32px}

.roasting-log-qr-empty{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:72px;
  padding:12px;
  border:1px dashed #cbd9d1;
  border-radius:12px;
  color:#668073;
  background:rgba(255,255,255,.72);
}

.roasting-log-qr-empty>span{display:grid;gap:2px}
.roasting-log-qr-empty strong{font-size:12px;color:#3d5e4d}
.roasting-log-qr-empty small{font-size:10px;color:#77877e}

@media(max-width:1050px){
  .roasting-log-qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  .roasting-log-qr-grid{grid-template-columns:1fr}
}

/* Release 448：二维码从录入区移至终审后的焙烧正式台账。 */
.roasting-formal-ledger .table-scroll{max-height:none}
.roasting-formal-ledger td:last-child{min-width:132px}

.roasting-ledger-actions{
  display:grid;
  justify-items:start;
  gap:4px;
  min-width:118px;
}

.roasting-ledger-qr{
  display:grid;
  justify-items:center;
  gap:2px;
  padding:4px;
  border:1px solid #d6e1da;
  border-radius:9px;
  background:#fff;
}

.roasting-ledger-qr>div{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  overflow:hidden;
}

.roasting-ledger-qr :is(canvas,img,svg){
  display:block;
  width:58px!important;
  height:58px!important;
}

.roasting-ledger-qr>small{
  max-width:104px;
  overflow:hidden;
  color:#65776d;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Release 449：库存六类单据的二维码统一归入终审正式台账。 */
.inventory-formal-ledger{
  margin-top:14px;
  padding:14px;
  border:1px solid #d8ded7;
  border-radius:15px;
  background:linear-gradient(145deg,#fbfcf9,#f7f4ed);
  box-shadow:0 10px 26px rgba(46,68,56,.06);
}

.inventory-formal-ledger>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.inventory-formal-ledger>header>div{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}

.inventory-formal-ledger>header>div>span{
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  flex:0 0 35px;
  border-radius:10px;
  color:#fff;
  background:#315f49;
}

.inventory-formal-ledger>header>div>div{display:grid;gap:2px;min-width:0}
.inventory-formal-ledger>header strong{color:#294739;font-size:14px}
.inventory-formal-ledger>header small{color:#708078;font-size:10px}
.inventory-formal-ledger>header em{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid #d4ded8;
  border-radius:999px;
  color:#476656;
  background:#fff;
  font-size:10px;
  font-style:normal;
}

.inventory-formal-ledger .table-scroll{
  max-height:380px;
  border:1px solid #dde4df;
  border-radius:12px;
  background:#fff;
}

.inventory-formal-ledger .data-table{min-width:1000px}
.inventory-formal-ledger .data-table td{vertical-align:middle}
.inventory-formal-ledger .data-table td>small{display:block;margin-top:2px;color:#77857e;font-size:9px}

.inventory-formal-document-identity{
  display:grid;
  justify-items:center;
  gap:2px;
  min-width:70px;
}

.inventory-formal-document-identity>div{
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  overflow:hidden;
  border:1px solid #d7e1db;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}

.inventory-formal-document-identity :is(canvas,img,svg){
  display:block;
  width:62px!important;
  height:62px!important;
}

.inventory-formal-document-identity small{color:#687a70;font-size:8px}

.inventory-formal-batch-qrs{
  display:grid;
  gap:6px;
  min-width:250px;
  max-width:330px;
}

.inventory-formal-batch-qrs>article{
  display:grid;
  grid-template-columns:52px minmax(105px,1fr) auto;
  align-items:center;
  gap:7px;
  padding:5px;
  border:1px solid #e0e6e2;
  border-radius:9px;
  background:#fff;
}

.inventory-formal-batch-qrs>article>span{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  overflow:hidden;
  border-radius:6px;
  cursor:pointer;
}

.inventory-formal-batch-qrs>article>span :is(canvas,img,svg){
  display:block;
  width:52px!important;
  height:52px!important;
}

.inventory-formal-batch-qrs article>div{display:grid;gap:1px;min-width:0}
.inventory-formal-batch-qrs article strong,
.inventory-formal-batch-qrs article small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.inventory-formal-batch-qrs article strong{color:#344c40;font-size:10px}
.inventory-formal-batch-qrs article small{color:#76847d;font-size:8px}
.inventory-formal-batch-qrs .table-link{white-space:nowrap}

.inventory-formal-qr-missing{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:5px 8px;
  border:1px dashed #d5ddd8;
  border-radius:8px;
  color:#88928d;
  background:#fafbf9;
  font-size:9px;
}

@media(max-width:900px){
  .inventory-formal-ledger>header{align-items:flex-start}
  .inventory-formal-ledger>header small{white-space:normal}
  .inventory-formal-ledger .table-scroll{max-height:330px}
}

/* Release 450：办公用品、零星物资录入区不显示正式码，终审后在正式台账预览和打印。 */
.ledger-formal-qr{display:inline-flex;min-width:54px;flex-direction:column;align-items:center;gap:2px;color:#244f40;font-weight:750}
.ledger-formal-qr>[data-qr-payload]{display:grid;place-items:center;width:48px;height:48px;padding:3px;border:1px solid #c6d6ce;border-radius:8px;background:#fff;box-shadow:0 4px 12px rgba(37,76,61,.08);cursor:zoom-in}
.ledger-formal-qr canvas,.ledger-formal-qr img{width:48px!important;height:48px!important}
.ledger-formal-qr small{font-size:11px;white-space:nowrap}
.ledger-qr-state{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}
.ledger-qr-state.pending{color:#8a641d;background:#fff4d7}
.ledger-qr-state.missing{color:#9b3d35;background:#fde9e5}
.office-supply-formal-qr-print-sheet{display:none}
.office-supply-formal-qr-label{width:80mm;min-height:50mm;padding:4mm;border:1px solid #203d33;background:#fff;color:#17241f;box-sizing:border-box}
.office-supply-formal-qr-label header{display:flex;justify-content:space-between;align-items:flex-end;gap:4mm;padding-bottom:1.5mm;border-bottom:1px solid #203d33}
.office-supply-formal-qr-label header strong{font-size:3.2mm}
.office-supply-formal-qr-label header span{font-size:2.7mm;font-weight:800}
.office-supply-formal-qr-label>div{display:grid;grid-template-columns:25mm 1fr;gap:3mm;padding:2.5mm 0}
.office-supply-formal-qr-label [data-qr-payload]{display:grid;place-items:center}
.office-supply-formal-qr-label [data-qr-payload] canvas,.office-supply-formal-qr-label [data-qr-payload] img{width:24mm!important;height:24mm!important}
.office-supply-formal-qr-label dl{display:grid;gap:0;margin:0}
.office-supply-formal-qr-label dl div{display:grid;grid-template-columns:17mm 1fr;gap:1mm;padding:.55mm 0;border-bottom:1px solid #d7ddd9;font-size:2.3mm;line-height:1.15}
.office-supply-formal-qr-label dt{color:#5e6d66}
.office-supply-formal-qr-label dd{margin:0;font-weight:750;overflow-wrap:anywhere}
.office-supply-formal-qr-label footer{padding-top:1.5mm;border-top:1px solid #aebdb6;text-align:center;font-size:2mm;color:#53635c}
@media print{
  body.printing-office-supply-formal-qr>*:not(.office-supply-formal-qr-print-sheet){display:none!important}
  body.printing-office-supply-formal-qr .office-supply-formal-qr-print-sheet{display:block!important;padding:0;background:#fff}
  body.printing-office-supply-formal-qr{margin:0;background:#fff!important}
  .office-supply-formal-qr-label{margin:0;break-inside:avoid}
}

/* release-451：宽屏仓库作业窗口增大；矮屏继续使用表单内部滚动，避免覆盖一级菜单。 */
@media(min-width:1400px){
  body .inventory-scan-backdrop>.inventory-scan-business-modal{
    width:min(1180px,calc(100vw - 40px))!important;
    height:min(860px,calc(100dvh - 24px))!important;
    max-height:calc(100dvh - 24px)!important;
  }
}
/* Release 462：全系统表单视口安全区。仅修正弹窗边界、矮屏密度和字段留白，不改变业务结构。 */
:root{
  --hh-modal-safe-x:clamp(6px,1.1vw,16px);
  --hh-modal-safe-y:clamp(6px,1.1vh,14px);
}

.modal-backdrop{
  box-sizing:border-box;
  padding:max(var(--hh-modal-safe-y),env(safe-area-inset-top)) max(var(--hh-modal-safe-x),env(safe-area-inset-right)) max(var(--hh-modal-safe-y),env(safe-area-inset-bottom)) max(var(--hh-modal-safe-x),env(safe-area-inset-left));
  overflow:hidden;
}

.modal-backdrop>.data-modal{
  box-sizing:border-box;
  min-width:0;
  min-height:0;
  max-width:calc(100vw - (var(--hh-modal-safe-x) * 2));
  max-height:calc(100dvh - (var(--hh-modal-safe-y) * 2));
}

.data-modal>.modal-header{
  min-width:0;
  gap:12px;
}

.data-modal>.modal-header>:not(.icon-button),
.data-modal :is(.business-form,.system-input-window-body,.system-upload-window-body,.system-business-unified-body){
  min-width:0;
  min-height:0;
}

.business-form :is(.form-grid-4,.line-grid,.form-row){
  column-gap:clamp(7px,1vw,12px);
  row-gap:clamp(7px,.9vh,11px);
}

.business-form .modal-actions,
.data-modal>.modal-actions{
  gap:8px 10px;
  padding-bottom:max(10px,env(safe-area-inset-bottom));
}

@media(max-height:720px){
  :root{--hh-modal-safe-y:6px}
  .data-modal>.modal-header{min-height:50px;padding-top:6px;padding-bottom:6px}
  .system-input-window-body,.system-upload-window-body,.system-business-unified-body{padding-top:8px;padding-bottom:10px}
  .business-form .form-section-title,.form-section-title{min-height:38px}
  .business-form :is(input,select,textarea):not([type="checkbox"]):not([type="radio"]),
  .data-modal label.sheet-field :is(input,select,textarea){min-height:36px}
}

@media(max-width:820px){
  :root{--hh-modal-safe-x:6px;--hh-modal-safe-y:6px}
  .modal-backdrop>.data-modal{border-radius:13px}
  .data-modal>.modal-header{gap:8px;padding-right:12px;padding-left:12px}
  .business-form .modal-actions,.data-modal>.modal-actions{justify-content:flex-end}
}

.warehouse-inventory-modal{width:min(1460px,calc(100vw - 86px));height:calc(100dvh - 28px);max-height:calc(100dvh - 28px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:#f5f3ed;border-color:#cbd6cf}
.warehouse-inventory-workspace{min-height:0;overflow:auto;padding:16px 18px 24px;scrollbar-gutter:stable}
.warehouse-inventory-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #d4d7cd;border-radius:16px;background:linear-gradient(125deg,#f7f0e3,#edf5f0);box-shadow:0 9px 24px rgba(59,72,62,.08)}
.warehouse-inventory-hero>div>span{display:inline-flex;align-items:center;gap:7px;color:#2f6b55;font-size:12px;font-weight:800;letter-spacing:.08em}.warehouse-inventory-hero h2{margin:5px 0 4px;color:#24372f;font-size:24px}.warehouse-inventory-hero p{margin:0;max-width:820px;color:#66736d;font-size:12px;line-height:1.6}
.warehouse-inventory-hero label{flex:0 0 min(360px,32vw);display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #c9d4cd;border-radius:10px;background:#fff;color:#587064}.warehouse-inventory-hero input{width:100%;height:40px;border:0;background:transparent;outline:0;color:#263b32}
.warehouse-inventory-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.warehouse-inventory-tabs button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:9px 16px;border:1px solid #d0d6cf;border-radius:13px;background:#fff;color:#3b5147;box-shadow:0 5px 14px rgba(54,69,60,.06)}.warehouse-inventory-tabs button span{display:grid;text-align:left}.warehouse-inventory-tabs button strong{font-size:14px}.warehouse-inventory-tabs button small{margin-top:3px;color:#7b8781;font-size:10px}.warehouse-inventory-tabs button.active{border-color:#2b6853;background:#285f4d;color:#fff;box-shadow:0 9px 20px rgba(40,95,77,.22);transform:translateY(-1px)}.warehouse-inventory-tabs button.active small{color:#d7e8e0}
.warehouse-inventory-panel{display:grid;gap:12px}.warehouse-inventory-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.warehouse-inventory-kpis article{display:grid;gap:3px;padding:14px 16px;border:1px solid #d7ddd7;border-radius:12px;background:#fff}.warehouse-inventory-kpis span{color:#6d7a74;font-size:11px}.warehouse-inventory-kpis strong{color:#264d3e;font-size:21px}.warehouse-inventory-kpis small{color:#87918c;font-size:10px}
.warehouse-inventory-unit-summary,.warehouse-inventory-table-section,.warehouse-inventory-detail-section{border:1px solid #d4d9d3;border-radius:13px;background:#fff;overflow:hidden}.warehouse-inventory-unit-summary>header,.warehouse-inventory-table-section>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #e0e4df;background:#f4f6f2}.warehouse-inventory-unit-summary>header span,.warehouse-inventory-table-section>header span{margin-left:8px;color:#77837d;font-size:10px}.warehouse-inventory-unit-summary>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:9px;padding:10px}.warehouse-inventory-unit-summary article{display:grid;grid-template-columns:52px 1fr;gap:9px;align-items:center;padding:9px 10px;border:1px solid #e0e5df;border-radius:10px;background:#fbfcfa}.warehouse-inventory-unit-summary article>b{display:grid;place-items:center;min-height:58px;border-radius:8px;background:#e8f1ec;color:#28634d}.warehouse-inventory-unit-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0}.warehouse-inventory-unit-summary dl>div{display:grid;gap:1px}.warehouse-inventory-unit-summary dt{color:#7b8781;font-size:9px}.warehouse-inventory-unit-summary dd{margin:0;color:#34483f;font-size:12px;font-weight:750}.warehouse-inventory-empty{grid-column:1/-1;margin:0;padding:16px;color:#7c8882;text-align:center}
.warehouse-inventory-table-section>header>div{display:flex;align-items:baseline;gap:5px}.warehouse-inventory-table-section>header em{padding:4px 8px;border-radius:999px;background:#e7efe9;color:#32614e;font-size:10px;font-style:normal;font-weight:750}.warehouse-inventory-table-section .table-scroll{max-height:340px;overflow:auto}.warehouse-inventory-table-section table{min-width:900px}.warehouse-inventory-table-section th{position:sticky;top:0;z-index:2}.warehouse-inventory-table-section td strong,.warehouse-inventory-detail-section td strong{color:#274c3d}.warehouse-inventory-table-section td small,.warehouse-inventory-detail-section td small{display:block;margin-top:3px;color:#7c8882;font-size:9px}
.warehouse-inventory-detail-section>summary{display:flex;align-items:center;gap:7px;padding:12px 14px;background:#f3f5f2;color:#344b41;font-weight:750;cursor:pointer;list-style:none}.warehouse-inventory-detail-section>summary::-webkit-details-marker{display:none}.warehouse-inventory-detail-section>summary span{margin-left:auto;padding:3px 8px;border-radius:999px;background:#e5ece7;color:#426253;font-size:10px}.warehouse-inventory-detail-section .table-scroll{max-height:330px;overflow:auto;border-top:1px solid #dfe4df}.warehouse-inventory-detail-section table{min-width:940px}.warehouse-inventory-detail-section th{position:sticky;top:0;z-index:2}
@media(max-width:1050px){.warehouse-inventory-modal{width:calc(100vw - 132px)}.warehouse-inventory-hero{align-items:stretch;flex-direction:column}.warehouse-inventory-hero label{flex-basis:auto;width:100%}}
@media(max-width:760px){.warehouse-inventory-modal{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}.warehouse-inventory-workspace{padding:10px}.warehouse-inventory-tabs{grid-template-columns:1fr}.warehouse-inventory-tabs button{justify-content:flex-start}.warehouse-inventory-kpis{grid-template-columns:1fr 1fr}.warehouse-inventory-unit-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Haohai release: 20260908-canteen-login-polish-release-550 */

/* Release 463: procurement-pool return selection and factory-quality handoff */
.purchase-contract-modal .purchase-pool-select-cell{width:52px;text-align:center;vertical-align:middle}
.purchase-contract-modal .purchase-pool-select-cell input[type="checkbox"]{width:18px;height:18px;accent-color:var(--color-success,#2f8067);cursor:pointer}
.purchase-contract-modal .purchase-request-pick-table tbody tr.selected .purchase-pool-select-cell{background:color-mix(in srgb,var(--color-success,#2f8067) 8%,transparent)}
.purchase-contract-modal .purchase-pool-select-cell label{display:grid;justify-items:center;gap:3px;min-width:66px;color:#52675d;font-size:10px;font-weight:750;cursor:pointer}
.purchase-contract-modal .purchase-pool-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.purchase-contract-modal .request-return-button{display:inline-flex;align-items:center;gap:4px;padding:7px 9px;border:1px solid rgba(181,72,63,.3);border-radius:8px;background:#fff7f5;color:#a44940;font-size:11px;font-weight:750;cursor:pointer}
.purchase-contract-modal .request-return-button:hover{background:#fdebe8;border-color:rgba(181,72,63,.48)}
.roasting-quality-handoff-banner{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:11px 14px;border:1px solid rgba(190,129,37,.28);border-radius:12px;background:linear-gradient(110deg,rgba(255,248,232,.96),rgba(247,251,248,.96));color:#6c4b1f}
.roasting-quality-handoff-banner>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#fff0cf;color:#a96c19}
.roasting-quality-handoff-banner>div{display:grid;gap:2px;min-width:0;flex:1}
.roasting-quality-handoff-banner strong{font-size:13px;color:#5a401e}
.roasting-quality-handoff-banner small{font-size:12px;line-height:1.45;color:#826f55}
.restructured-quality-form select option:disabled{color:#8b8172;background:#f5f2ec}

/* Release 463: keep procurement mode controls inside their table cell after adding row selection */
.purchase-contract-modal .purchase-request-pick-table{min-width:1450px}
.purchase-contract-modal .purchase-request-pick-table th:first-child,.purchase-contract-modal .purchase-request-pick-table td:first-child{width:54px;padding-left:4px;padding-right:4px}
.purchase-contract-modal .purchase-request-pick-table th:nth-child(9),.purchase-contract-modal .purchase-request-pick-table td:nth-child(9){width:130px}
.purchase-contract-modal .purchase-request-pick-table th:nth-child(10),.purchase-contract-modal .purchase-request-pick-table td:nth-child(10){width:225px}

/* Release 489：全系统弹窗安全区、高清中文字体与字段节奏优化。 */
html,
body,
button,
input,
select,
textarea {
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body,
.data-modal {
  font-synthesis: none;
}

.data-modal :is(input, select, textarea, button),
.data-table {
  font-variant-numeric: tabular-nums;
}

.modal-backdrop > .data-modal {
  max-width: calc(100vw - (var(--hh-modal-safe-x) * 2));
  max-height: calc(100dvh - (var(--hh-modal-safe-y) * 2));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border-color: #cbd6cf;
  box-shadow: 0 24px 68px rgba(31, 48, 39, 0.22);
}

.data-modal > .modal-header {
  top: 0;
  min-height: clamp(58px, 7.5vh, 76px);
  padding: clamp(10px, 1.35vh, 16px) clamp(12px, 1.35vw, 18px);
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(12px) saturate(120%);
}

.modal-title-row h2 {
  max-width: 100%;
  color: #1f3028;
  font-size: clamp(17px, 1.35vw, 21px);
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: -0.012em;
  text-wrap: balance;
}

.modal-title-block .modal-company,
.modal-title-row p,
.data-modal label > span {
  text-rendering: geometricPrecision;
}

.data-modal label {
  line-height: 1.45;
}

.data-modal :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]) {
  min-width: 0;
  font-size: clamp(13px, 0.92vw, 14px);
  line-height: 1.45;
}

.business-form :is(.form-grid-4, .line-grid, .form-row) {
  column-gap: clamp(8px, 1vw, 14px);
  row-gap: clamp(8px, 1vh, 12px);
}

.business-form .modal-actions,
.data-modal > .modal-actions {
  min-width: 0;
  flex-wrap: wrap;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
}

.data-modal :is(button, [role="button"]):focus-visible,
.modal-backdrop :is(button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(47, 112, 83, 0.28);
  outline-offset: 2px;
}

.data-modal button:not(:disabled) {
  transition: transform 160ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.data-modal button:not(:disabled):active {
  transform: translateY(1px) scale(0.99);
}

@media (max-height: 720px) {
  .data-modal > .modal-header {
    min-height: 52px;
  }

  .data-modal form.business-form {
    gap: 10px;
  }
}

@media (max-width: 820px) {
  .modal-backdrop > .data-modal {
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    border-radius: 13px;
  }

  .modal-title-row h2 {
    font-size: 17px;
  }

  .office-supply-entry-form .form-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .office-supply-entry-form .form-grid-4 > :is(.span-3, .span-4) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .office-supply-entry-form .form-grid-4 {
    grid-template-columns: minmax(0, 1fr);
  }

  .office-supply-entry-form .form-grid-4 > :is(.span-2, .span-3, .span-4) {
    grid-column: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .data-modal *,
  .data-modal *::before,
  .data-modal *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
/* Release 495 · XRD AI智能识别：原生检测工作台，保持弹窗四边完整可见 */
.xrd-ai-modal{top:max(var(--hh-modal-safe-y,8px),env(safe-area-inset-top));width:min(1440px,calc(100vw - 24px));height:min(920px,calc(100dvh - (var(--hh-modal-safe-y,8px) * 2)));max-width:none;display:flex;flex-direction:column;overflow:hidden;background:#f5f3ed}
.xrd-modal-header{min-height:72px;flex:0 0 auto;padding:12px 20px;border-bottom:1px solid #d7ddd6;background:rgba(255,255,255,.92)}
.xrd-instrument-chip{margin-left:auto;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #cddbd5;border-radius:12px;background:#eef5f1;color:#23483d;white-space:nowrap}
.xrd-library-panel{margin:0 0 10px;border:1px solid #ccdcd5;border-radius:12px;background:linear-gradient(145deg,#f7fbf9,#eef5f1);overflow:hidden}.xrd-library-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:8px 11px;cursor:pointer;color:#244c40}.xrd-library-panel>summary::-webkit-details-marker{display:none}.xrd-library-panel>summary span{display:flex;align-items:center;gap:7px}.xrd-library-panel>summary strong{font-size:13px;padding:3px 8px;border-radius:999px;background:#dcece5;color:#1f634d;white-space:nowrap}.xrd-library-panel-body{display:grid;gap:8px;padding:0 11px 11px;border-top:1px solid #dbe7e2}.xrd-library-panel-body header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px}.xrd-library-panel-body header span{font-size:12px;font-weight:700;color:#274b40}.xrd-library-panel-body header em{font-size:10px;font-style:normal;color:#728078;white-space:nowrap}.xrd-library-groups{display:flex;flex-wrap:wrap;gap:5px}.xrd-library-groups span{font-size:10px;padding:4px 6px;border:1px solid #d6e3de;border-radius:7px;background:#fff;color:#5b6e66}.xrd-library-groups b{color:#23644f}.xrd-library-panel-body p,.xrd-library-panel-body footer{margin:0;font-size:10px;line-height:1.55;color:#6a7872}.xrd-library-panel-body footer{padding-top:7px;border-top:1px dashed #d4e0db}
.xrd-library-quality{display:grid;gap:3px;padding:7px 8px;border:1px solid #ead9b8;border-radius:8px;background:#fffaf0;color:#665438}.xrd-library-quality span{font-size:10px;line-height:1.45}.xrd-library-quality b{display:block;color:#9a5a13}.xrd-library-warnings{display:grid;gap:3px;margin:0;padding:0;list-style:none}.xrd-library-warnings li{font-size:10px;line-height:1.45;color:#92551a}.xrd-library-warnings li::before{content:'·';margin-right:5px;font-weight:800}.xrd-candidate-list>div.competing{background:#f7f5f0;border-color:#ddd7ca;opacity:.86}.xrd-candidate-list>div.competing>em{color:#7b7060;background:#ece8df}.xrd-competing-phase-list{margin-top:8px;padding:8px 10px;border:1px solid #d8d1c6;border-radius:10px;background:#f7f4ee;color:#625b50}.xrd-competing-phase-list summary{cursor:pointer;font-size:12px;font-weight:700}.xrd-competing-phase-list p{margin:7px 0 0;font-size:12px;line-height:1.65}
.xrd-instrument-chip span{font-size:12px;color:#65756f}
.xrd-workbench-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(350px,390px) minmax(0,1fr);gap:12px;padding:12px;overflow:hidden}
.xrd-side-panel,.xrd-result-panel{min-height:0;border:1px solid #d8ded8;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(28,53,45,.06)}
.xrd-side-panel{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden}
.xrd-upload-form{display:grid;gap:8px;padding:12px;border-bottom:1px solid #e2e6e2;background:#fafbf8}
.xrd-panel-title{display:flex;align-items:center;gap:9px;color:#23483d}
.xrd-panel-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e5f0eb}
.xrd-panel-title div{display:grid;gap:1px}.xrd-panel-title small{color:#7a8782;font-size:11px}
.xrd-upload-form label{display:grid;gap:4px;margin:0}.xrd-upload-form label>span{font-size:12px;font-weight:700;color:#53635d}
.xrd-upload-form input,.xrd-upload-form select,.xrd-upload-form textarea{width:100%;min-width:0;height:36px;padding:6px 9px;border:1px solid #ccd5d0;border-radius:9px;background:#fff;font-size:13px}
.xrd-upload-core-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.xrd-archive-summary{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:10px 12px;border:1px solid #cfe1d5;border-radius:11px;background:#f2f8f3;color:#2f5d45}
.xrd-archive-summary>span{display:grid;gap:2px;min-width:0}.xrd-archive-summary strong{font-size:13px}.xrd-archive-summary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60766a;font-size:12px}
.xrd-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.xrd-file-field{padding:8px;border:1px dashed #aebfb7;border-radius:10px;background:#f5f8f6}.xrd-file-field input{height:auto;padding:3px;border:0;background:transparent}.xrd-file-field small{font-size:10px;color:#73817c}.xrd-file-field em{overflow:hidden;color:#8a7460;font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.xrd-file-field em.selected{color:#21694f;font-weight:750}
.xrd-upload-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.xrd-analyze-button{justify-content:center;min-height:38px}.xrd-clear-upload{min-height:38px;padding-inline:10px;white-space:nowrap}
.xrd-upload-feedback{padding:7px 9px;border:1px solid #cfe0d7;border-radius:8px;background:#eff7f3;color:#356153;font-size:10px;line-height:1.45}.xrd-upload-feedback.error{border-color:#ecc7c2;background:#fff0ee;color:#9b3f36}
.xrd-history-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:8px 12px;border-top:1px solid #e2e6e2;border-bottom:1px solid #edf0ed;background:#fff;color:#344740}.xrd-history-head>div{display:flex;align-items:baseline;gap:7px;min-width:0}.xrd-history-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xrd-history-head span{font-size:11px;color:#7b8983;white-space:nowrap}.xrd-history-delete{position:static;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:5px 8px;border:1px solid #dfb3ac;border-radius:8px;background:#fff6f4;color:#963f36;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.xrd-history-delete:hover{border-color:#c98579;background:#ffebe7}.xrd-history-delete:disabled{opacity:.55;cursor:not-allowed}
.xrd-history-list{position:relative;z-index:0;min-height:0;overflow:auto;padding:6px 8px 10px;scrollbar-gutter:stable}
.xrd-history-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;cursor:pointer}
.xrd-history-item:hover{background:#f3f7f4}.xrd-history-item.active{border-color:#a8c8ba;background:#eaf3ef}
.xrd-history-item>span{min-width:0;display:grid;gap:3px}.xrd-history-item strong,.xrd-history-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xrd-history-item strong{font-size:13px;color:#263b34}.xrd-history-item small{font-size:10px;color:#78847f}
.xrd-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:11px;font-style:normal;white-space:nowrap}.xrd-status.ok{color:#1b684e;background:#dff2e9}.xrd-status.warn{color:#8b5a13;background:#fff0cf}.xrd-status.bad{color:#a13e37;background:#fde4e1}
.xrd-empty{padding:30px 12px;text-align:center;color:#84908b}.xrd-empty.error{color:#a13e37}
.xrd-result-panel{overflow:hidden auto;padding:16px;scrollbar-gutter:stable}
.xrd-result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.xrd-result-heading h3{margin:3px 0 2px;font-size:23px;color:#213b32}.xrd-result-heading p,.xrd-result-heading>div>span{margin:0;color:#77847e;font-size:12px}.xrd-result-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.xrd-result-actions .xrd-delete-result{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid #d8aaa3;border-radius:8px;background:#fff7f5;color:#9b3f35;font-weight:760;box-shadow:none}.xrd-result-actions .xrd-delete-result:hover{border-color:#c67f74;background:#ffefec}.xrd-result-actions .xrd-delete-result:disabled{opacity:.55;cursor:not-allowed}
.xrd-safety-notice{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #e2d4ad;border-radius:11px;background:#fff9e9;color:#6b531c}.xrd-safety-notice span{display:grid;gap:1px}.xrd-safety-notice small{font-size:11px;color:#806f47}
.xrd-metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.xrd-metric-row article{display:grid;gap:3px;padding:10px 12px;border:1px solid #e0e5e1;border-radius:11px;background:#fafbf9}.xrd-metric-row span{font-size:11px;color:#78857f}.xrd-metric-row strong{font-size:19px;color:#26493d}
.xrd-chart-card,.xrd-card,.xrd-review-card{border:1px solid #dfe5e1;border-radius:12px;background:#fff}.xrd-chart-card{padding:10px 12px}.xrd-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.xrd-section-heading strong{font-size:14px;color:#2a4038}.xrd-section-heading span{font-size:11px;color:#7a8781}
.xrd-pattern-chart{display:block;width:100%;height:220px;border-radius:8px;background:linear-gradient(#fbfcfb,#f5f8f6);color:#63736c}.xrd-pattern-chart text{font-size:10px;fill:#708079}.xrd-pattern-chart circle{fill:#b76b20}.xrd-axis{stroke:#aebbb5;stroke-width:1}.xrd-pattern-line{fill:none;stroke:#216b57;stroke-width:1.8;stroke-linejoin:round;vector-effect:non-scaling-stroke}.xrd-chart-empty{display:grid;place-items:center;height:220px;color:#7f8c86}
.xrd-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.xrd-card{padding:11px 12px;min-height:130px}
.xrd-chemistry-input{border:1px solid #d8e2dc;border-radius:10px;background:#f8faf8}.xrd-chemistry-input summary{padding:8px 10px;color:#38594d;font-size:11px;font-weight:750;cursor:pointer}.xrd-chemistry-input label{display:grid;gap:5px;padding:0 9px 9px}.xrd-chemistry-input textarea{min-height:58px;padding:8px;border:1px solid #ccd8d1;border-radius:8px;background:#fff;color:#2d433a;font:inherit;resize:vertical}.xrd-chemistry-input small{color:#77847e;font-size:9px;line-height:1.45}
.xrd-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.xrd-advanced-card{display:grid;align-content:start;gap:6px;min-width:0;padding:10px 11px;border:1px solid #dce5e0;border-radius:12px;background:#fafcfb}.xrd-advanced-card.amorphous{background:linear-gradient(145deg,#f4f0fa,#fcfbfd);border-color:#ded3eb}.xrd-advanced-card.unknown{background:linear-gradient(145deg,#fff8eb,#fffdf8);border-color:#eadabb}.xrd-advanced-card header{display:flex;align-items:center;gap:7px;color:#47655a}.xrd-advanced-card header>span{display:grid;min-width:0}.xrd-advanced-card header strong{overflow:hidden;color:#2c463c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.xrd-advanced-card header small{color:#7c8983;font-size:8.5px}.xrd-advanced-card>b{overflow:hidden;color:#23664f;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.xrd-advanced-card p{margin:0;color:#586a62;font-size:9.5px;line-height:1.45}.xrd-advanced-card footer{margin-top:auto;color:#81765f;font-size:8px;line-height:1.4}.xrd-mini-tags{display:flex;flex-wrap:wrap;gap:4px}.xrd-mini-tags span{max-width:100%;overflow:hidden;padding:3px 5px;border-radius:999px;background:#edf3f0;color:#4d645a;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.xrd-auto-conclusion{border-color:#b9d6c8;background:linear-gradient(120deg,#eef8f3,#fff)}
.xrd-advanced-card.elements{background:linear-gradient(145deg,#eef7f2,#fbfdfc);border-color:#c8ded3}.xrd-element-evidence{display:grid;gap:6px}.xrd-element-evidence>section{display:grid;gap:3px;min-width:0}.xrd-element-evidence>section>strong{color:#52675e;font-size:8.5px;letter-spacing:.02em}.xrd-element-evidence>section>small{overflow-wrap:anywhere;color:#718079;font-size:7.5px;line-height:1.35}.xrd-advanced-card.elements .xrd-mini-tags span{background:#e4f0ea;color:#285943}.xrd-advanced-card.elements .xrd-mini-tags span.empty{border:1px dashed #d1ddd7;background:#f8fbf9;color:#7a8881;white-space:normal}
.xrd-candidate-list{display:grid;gap:5px}.xrd-candidate-list>div{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:6px 7px;border-radius:8px;background:#f5f8f6}.xrd-candidate-list b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dcebe5;color:#275b4a;font-size:11px}.xrd-candidate-list span{display:grid}.xrd-candidate-list strong{font-size:12px}.xrd-candidate-list small{font-size:10px;color:#78857f}.xrd-candidate-list em{font-style:normal;font-weight:800;color:#24654f}
.xrd-candidate-list>div.probable,.xrd-composition-list>div.probable{border-color:#e6d5a9;background:#fffaf0}.xrd-candidate-list>div.probable b{background:#f2dfb5;color:#78551a}.xrd-candidate-list>div.probable em,.xrd-composition-list>div.probable em{color:#95651b}
.xrd-quality-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.xrd-quality-list li{display:flex;align-items:flex-start;gap:6px;font-size:11px;line-height:1.45;color:#705a2c}.xrd-quality-list li.ok{color:#23634d}
.xrd-review-card{margin-top:10px;padding:11px 12px}.xrd-review-card textarea{width:100%;min-height:62px;padding:9px;border:1px solid #ccd5d0;border-radius:9px;resize:vertical}.xrd-review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.xrd-expert-conclusion{padding:9px 10px;border-radius:8px;background:#f4f7f5;color:#344c43;font-size:12px;white-space:pre-wrap}
.xrd-result-empty{min-height:100%;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;color:#597067}.xrd-result-empty strong{font-size:24px;color:#29483d}.xrd-result-empty span{max-width:520px;font-size:13px;line-height:1.7}
@media(max-width:1050px){.xrd-ai-modal{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.xrd-workbench-body{grid-template-columns:minmax(320px,350px) minmax(0,1fr);padding:8px;gap:8px}.xrd-instrument-chip span{display:none}.xrd-metric-row{grid-template-columns:repeat(2,1fr)}.xrd-result-grid{grid-template-columns:1fr}.xrd-pattern-chart{height:190px}}
@media(max-width:760px){.xrd-workbench-body{display:block;overflow:auto}.xrd-side-panel{overflow:visible;margin-bottom:10px}.xrd-history-list{max-height:210px}.xrd-result-panel{overflow:visible}.xrd-modal-header{min-height:62px}.xrd-instrument-chip{display:none}.xrd-result-heading{display:grid}.xrd-result-actions{justify-content:flex-start}.xrd-pattern-chart{height:175px}}
@media(max-width:440px){.xrd-upload-actions{grid-template-columns:1fr}.xrd-clear-upload{width:100%}}
@media(max-height:700px) and (min-width:761px){.xrd-modal-header{min-height:58px;padding-block:8px}.xrd-workbench-body{padding:7px}.xrd-upload-form{gap:6px;padding:9px}.xrd-panel-title>span{width:30px;height:30px}.xrd-history-head{padding:7px 10px 5px}.xrd-history-item{padding:7px 8px}.xrd-file-field{padding:6px}.xrd-result-panel{padding:11px}}
@media print{body.printing-xrd-report>*:not(#app){display:none!important}body.printing-xrd-report .app-shell>*:not(.modal-backdrop){display:none!important}body.printing-xrd-report .modal-backdrop{position:static;background:#fff;padding:0}body.printing-xrd-report .xrd-ai-modal{width:100%;height:auto;border:0;box-shadow:none}body.printing-xrd-report .xrd-side-panel,body.printing-xrd-report .modal-header .icon-button{display:none!important}body.printing-xrd-report .xrd-workbench-body{display:block;padding:0}body.printing-xrd-report .xrd-result-panel{overflow:visible;border:0;box-shadow:none}body.printing-xrd-report .xrd-result-actions button,body.printing-xrd-report .xrd-review-actions{display:none!important}}

/* Release 498 · XRD来矿鉴别与焙烧相变闭环 */
.xrd-process-fields{display:grid;gap:9px;padding:10px;border:1px solid #d4dfd9;border-radius:11px;background:#f4f8f5}.xrd-process-fields[hidden]{display:none}
.xrd-reference-guide{display:grid;gap:9px}.xrd-reference-guide-head{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px}.xrd-reference-guide-head>b,.xrd-reference-guide label>span>b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#286b55;color:#fff;font-size:11px}.xrd-reference-guide-head>span{display:grid;gap:1px;min-width:0}.xrd-reference-guide-head strong{color:#294a3e;font-size:12px}.xrd-reference-guide-head small,.xrd-reference-guide>small{color:#718078;font-size:9.5px;line-height:1.4}.xrd-reference-guide label>span{display:flex;align-items:center;gap:7px}.xrd-reference-guide .outline-button{min-height:32px;padding:5px 8px;white-space:nowrap}
.xrd-pattern-line.reference{stroke:#b98035;stroke-width:2;stroke-dasharray:none;stroke-linecap:round;shape-rendering:geometricPrecision;opacity:.95}.xrd-chart-legend text{font-size:9px}
.xrd-judgement-card,.xrd-transformation-card,.xrd-vendor-card{margin-top:10px;border:1px solid #dbe4df;border-radius:12px;background:#f8faf8}
.xrd-judgement-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px}.xrd-judgement-card>div{display:grid;gap:3px}.xrd-judgement-card span,.xrd-transformation-card span{font-size:11px;color:#74817b}.xrd-judgement-card strong{font-size:18px;color:#244a3d}.xrd-judgement-card p{margin:0;color:#53655e;font-size:12px;line-height:1.55}
.xrd-transformation-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;background:#dbe4df}.xrd-transformation-card>div{display:grid;gap:4px;padding:11px 13px;background:#f8faf8}.xrd-transformation-card strong{color:#244a3d;font-size:14px}.xrd-transformation-card small{color:#718078;font-size:10px}
.xrd-phase-composition-panel{margin-top:10px;overflow:hidden;border:1px solid #cfded6;border-radius:13px;background:#f8faf8}.xrd-phase-composition-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid #dce5e0;background:#eef6f2}.xrd-phase-composition-panel>header>div{display:grid;gap:2px}.xrd-phase-composition-panel>header strong{color:#244a3d;font-size:13px}.xrd-phase-composition-panel>header span{color:#6f8078;font-size:9px}.xrd-phase-composition-panel>header em{max-width:300px;color:#7e6b4e;font-size:9px;font-style:normal;line-height:1.45;text-align:right}.xrd-phase-composition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#dce5e0}.xrd-composition-column{min-width:0;background:#fff}.xrd-composition-column>header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding:9px 11px;border-bottom:1px solid #e3e9e5}.xrd-composition-column>header span{color:#456157;font-size:10px;font-weight:750}.xrd-composition-column>header strong{grid-row:1/3;grid-column:2;color:#226a51;font-size:17px}.xrd-composition-column>header small{color:#7b8982;font-size:8.5px}.xrd-composition-list{display:grid;gap:5px;padding:8px}.xrd-composition-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:7px 8px;border:1px solid #e1e7e3;border-radius:9px;background:#fafcfb}.xrd-composition-list>div>span{display:grid;min-width:0}.xrd-composition-list strong{overflow:hidden;color:#2d473d;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.xrd-composition-list small{overflow:hidden;color:#74827b;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.xrd-composition-list em{color:#287057;font-size:8.5px;font-style:normal;font-weight:750;white-space:nowrap}.xrd-composition-list p{grid-column:1/-1;margin:0;color:#6d7b75;font-size:8.5px;line-height:1.45}.xrd-composition-column>footer{display:grid;gap:3px;padding:7px 9px;border-top:1px dashed #dfe6e2;color:#7c6d58;font-size:8.5px;line-height:1.45}.xrd-phase-composition-panel>footer{padding:8px 11px;border-top:1px solid #dfe6e2;background:#fffaf0;color:#75664f;font-size:8.5px;line-height:1.5}
.xrd-vendor-card{padding:10px 12px}.xrd-vendor-card>div:nth-child(2){display:flex;flex-wrap:wrap;gap:6px}.xrd-vendor-card>div:nth-child(2)>span{padding:5px 8px;border-radius:999px;background:#eef3f0;color:#52645d;font-size:11px}.xrd-vendor-card>small{display:block;margin-top:7px;color:#7a6d56;font-size:10px}
.xrd-reaction-conclusion{display:grid;gap:8px;margin-top:10px;padding:14px 16px;border:1px solid #dccda9;border-left:5px solid #b47721;border-radius:13px;background:linear-gradient(115deg,#fff9ec,#f7faf7)}
.xrd-reaction-conclusion.supported{border-color:#b9d6c8;border-left-color:#287359;background:linear-gradient(115deg,#edf8f2,#fbfcf8)}
.xrd-reaction-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.xrd-reaction-title>span{color:#6c786f;font-size:11px;font-weight:750}.xrd-reaction-title>strong{color:#263f35;font-size:18px}.xrd-reaction-title>em{margin-left:auto;padding:4px 8px;border-radius:999px;background:#fff0cf;color:#855611;font-size:10px;font-style:normal;font-weight:750}.xrd-reaction-conclusion.supported .xrd-reaction-title>em{background:#dff1e8;color:#1d674f}.xrd-reaction-conclusion>p{margin:0;color:#4f6159;font-size:12px;line-height:1.65}
.xrd-phase-evolution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.xrd-phase-evolution-grid>div{min-width:0;padding:10px;border:1px solid #dbe3de;border-radius:12px;background:#fafbf9}.xrd-phase-evolution-grid header{display:flex;align-items:baseline;justify-content:space-between;gap:7px;padding-bottom:7px;border-bottom:1px solid #e2e7e3}.xrd-phase-evolution-grid header strong{color:#29473c;font-size:12px}.xrd-phase-evolution-grid header span{color:#818d87;font-size:9px;white-space:nowrap}
.xrd-phase-evidence-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 7px;padding:8px 2px;border-bottom:1px dashed #e1e6e2}.xrd-phase-evidence-item:last-child{border-bottom:0}.xrd-phase-evidence-item>div{display:grid;gap:1px;min-width:0}.xrd-phase-evidence-item strong{overflow:hidden;color:#2d463c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.xrd-phase-evidence-item small{overflow:hidden;color:#79857f;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.xrd-phase-evidence-item>span{align-self:start;color:#a0691c;font-size:9px;font-weight:800}.xrd-phase-evidence-item>p{grid-column:1/-1;margin:0;color:#687870;font-size:9px;line-height:1.45}.xrd-phase-empty{margin:10px 0 2px;color:#89938e;font-size:10px;line-height:1.55}
.xrd-tentative-phase{display:flex;align-items:flex-start;gap:8px;margin-top:9px;padding:9px 11px;border:1px solid #ead8b1;border-radius:10px;background:#fff8e8;color:#755929}.xrd-tentative-phase>span{display:grid;gap:2px;font-size:10px;line-height:1.55}.xrd-tentative-phase strong{color:#6b4c19}
.xrd-mechanism-card{margin-top:9px;padding:10px 11px;border:1px solid #d9e1dc;border-radius:12px;background:#f8faf8}.xrd-mechanism-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.xrd-mechanism-card>header strong{color:#29473c;font-size:12px}.xrd-mechanism-card>header span{color:#81745d;font-size:9px}.xrd-mechanism-card>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.xrd-mechanism-card article{min-width:0;padding:9px;border:1px solid #e2e7e3;border-radius:10px;background:#fff}.xrd-mechanism-card article strong{display:block;color:#32483f;font-size:11px}.xrd-mechanism-card article strong small{color:#728078;font-size:9px;font-weight:650}.xrd-mechanism-card article span{display:block;margin-top:4px;color:#895f1d;font-size:9px;font-weight:750}.xrd-mechanism-card article p{margin:4px 0 0;color:#6d7973;font-size:9px;line-height:1.5}
.xrd-quant-card{margin-top:10px;padding:11px;border:1px solid #cfded6;border-radius:13px;background:linear-gradient(135deg,#f5faf7,#fffdf8)}.xrd-quant-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.xrd-quant-card>header>div{display:grid;gap:2px}.xrd-quant-card>header strong{color:#29473c;font-size:12px}.xrd-quant-card>header span{color:#77857e;font-size:9px}.xrd-quant-card>header em{padding:4px 7px;border-radius:999px;background:#fff1cf;color:#805b1e;font-size:9px;font-style:normal;font-weight:750;white-space:nowrap}.xrd-quant-card>footer{margin-top:8px;padding-top:7px;border-top:1px solid #e1e7e3;color:#76817c;font-size:9px;line-height:1.55}
.xrd-quant-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.xrd-quant-list article{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:9px;border:1px solid #dfe7e2;border-radius:10px;background:#fff}.xrd-quant-list article div{display:grid}.xrd-quant-list article strong{color:#32483f;font-size:11px}.xrd-quant-list article small,.xrd-quant-list article span{color:#7a8580;font-size:8.5px}.xrd-quant-list article>b{grid-row:1/3;grid-column:2;color:#236b52;font-size:16px}.xrd-quant-list article>span{grid-column:1/-1}
.xrd-quant-table{overflow:hidden;border:1px solid #dce4df;border-radius:10px;background:#fff}.xrd-quant-table>div{display:grid;grid-template-columns:minmax(130px,1.35fr) repeat(4,minmax(72px,.72fr));align-items:center;min-height:34px;border-top:1px solid #e5eae7}.xrd-quant-table>div:first-child{border-top:0}.xrd-quant-table>div>*{min-width:0;padding:6px 8px}.xrd-quant-table .head{min-height:28px;background:#eef5f1;color:#65766e;font-size:9px;font-weight:750}.xrd-quant-table>div>span{display:grid}.xrd-quant-table>div>span strong{overflow:hidden;color:#344a41;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.xrd-quant-table>div>span small,.xrd-quant-table>div>small{color:#7c8882;font-size:8.5px}.xrd-quant-table>div>b{color:#3f554c;font-size:10px}.xrd-quant-table>div>em{color:#64736c;font-size:10px;font-style:normal;font-weight:750}.xrd-quant-table>div>em.up{color:#b15f19}.xrd-quant-table>div>em.down{color:#23715a}
.xrd-comparison-summary{display:grid;gap:10px;margin-top:10px;padding:13px 14px;border:1px solid #c7dcd2;border-left:5px solid #267158;border-radius:14px;background:linear-gradient(135deg,#eef8f3,#fffdf8)}
.xrd-comparison-summary.raw{border-left-color:#3a719c;background:linear-gradient(135deg,#eef5fa,#fffdf8)}
.xrd-comparison-summary>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.xrd-comparison-summary>header>div{display:flex;align-items:center;gap:9px;min-width:0}.xrd-comparison-summary>header>div>span{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:#dcefe6;color:#22654e}.xrd-comparison-summary.raw>header>div>span{background:#dcebf5;color:#315f82}.xrd-comparison-summary>header>div>div{display:grid;gap:2px;min-width:0}.xrd-comparison-summary>header strong{color:#233f35;font-size:14px}.xrd-comparison-summary>header small{overflow:hidden;color:#718078;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.xrd-comparison-summary>header>em{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#dbefe5;color:#21664e;font-size:9px;font-style:normal;font-weight:800}.xrd-comparison-summary.raw>header>em{background:#dcebf5;color:#315f82}.xrd-comparison-summary>p{margin:0;color:#41584f;font-size:11px;line-height:1.65}
.xrd-relative-amount-notice{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;background:#fff7e7;color:#665942;font-size:9px;line-height:1.45}.xrd-relative-amount-notice strong{flex:0 0 auto;color:#805b1e;font-size:9.5px}.xrd-comparison-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.xrd-comparison-metrics article{display:grid;gap:3px;padding:8px 9px;border:1px solid #dbe6e0;border-radius:9px;background:rgba(255,255,255,.85)}.xrd-comparison-metrics span{color:#6e7e76;font-size:8.5px;line-height:1.35}.xrd-comparison-metrics strong{color:#245743;font-size:15px}.xrd-comparison-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.xrd-comparison-phases>span{display:grid;gap:3px;min-width:0;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.72);color:#617169;font-size:9px;line-height:1.45}.xrd-comparison-phases b{color:#344d42;font-size:9px}.xrd-comparison-summary>footer{display:flex;align-items:flex-start;gap:6px;padding-top:7px;border-top:1px dashed #cfddd6;color:#756a57;font-size:8.5px;line-height:1.55}.xrd-comparison-summary>footer svg{flex:0 0 auto;margin-top:1px}
.xrd-peak-area-details{margin-top:8px;border:1px solid #dde5e0;border-radius:10px;background:#fff}.xrd-peak-area-details summary{padding:8px 10px;color:#3f5c50;font-size:10px;font-weight:750;cursor:pointer}.xrd-peak-area-details>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 9px 8px}.xrd-peak-area-details article{min-width:0;padding:7px 8px;border-radius:8px;background:#f6f9f7}.xrd-peak-area-details article>strong{color:#334a40;font-size:10px}.xrd-peak-area-details article>strong small{color:#7a8781;font-size:8.5px}.xrd-peak-area-details article p{display:flex;gap:7px;margin:4px 0 0;color:#697871;font-size:8.5px;line-height:1.5}.xrd-peak-area-details article p b{flex:0 0 auto;color:#44655a}.xrd-peak-area-details>footer{padding:7px 9px;border-top:1px solid #e5eae7;color:#7d8883;font-size:8px}
.xrd-production-guidance{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;margin-top:9px;padding:10px 12px;border:1px solid #e1d6bf;border-left:4px solid #b27a2c;border-radius:11px;background:#fffaf0}.xrd-production-guidance.ready{border-color:#bed8ca;border-left-color:#277459;background:#f1faf5}.xrd-production-guidance>div{display:grid;grid-row:1/3;gap:2px}.xrd-production-guidance>div span{color:#7b7465;font-size:9px}.xrd-production-guidance>div strong{color:#375247;font-size:17px}.xrd-production-guidance p{margin:0;color:#4d5f57;font-size:10px;line-height:1.5}.xrd-production-guidance>small{color:#7a8580;font-size:8.5px}
@media(max-width:1050px){.xrd-transformation-card{grid-template-columns:1fr 1fr}.xrd-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.xrd-phase-composition-panel>header{display:grid}.xrd-phase-composition-panel>header em{text-align:left}.xrd-phase-composition-grid{grid-template-columns:1fr}}
@media(max-width:1050px){.xrd-phase-evolution-grid{grid-template-columns:1fr 1fr}.xrd-phase-evolution-grid>div:last-child{grid-column:1/-1}}
@media(max-width:1050px){.xrd-comparison-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.xrd-comparison-phases{grid-template-columns:1fr}}
@media(max-width:760px){.xrd-upload-core-grid,.xrd-transformation-card,.xrd-phase-evolution-grid,.xrd-mechanism-card>div,.xrd-quant-list,.xrd-peak-area-details>div,.xrd-production-guidance,.xrd-advanced-grid{grid-template-columns:1fr}.xrd-phase-evolution-grid>div:last-child{grid-column:auto}.xrd-reaction-title>em{margin-left:0}.xrd-quant-card>header{align-items:flex-start;flex-direction:column}.xrd-quant-table{overflow-x:auto}.xrd-quant-table>div{min-width:610px}.xrd-production-guidance>div{grid-row:auto}.xrd-comparison-summary>header{display:grid}.xrd-relative-amount-notice{display:grid}.xrd-comparison-metrics{grid-template-columns:1fr 1fr}}

/* Release 520 · XRD高清字体：Windows中文屏幕优先，消除过小灰字与细字发虚 */
.xrd-ai-modal{
  font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;
  font-weight:500;
  -webkit-font-smoothing:auto;
  text-rendering:geometricPrecision;
  font-synthesis:none;
}
.xrd-ai-modal :is(button,input,select,textarea){font-family:inherit;font-weight:600;-webkit-font-smoothing:auto}
.xrd-ai-modal :is(.xrd-panel-title small,.xrd-history-item small,.xrd-file-field small,.xrd-file-field em,.xrd-upload-feedback,.xrd-library-panel-body p,.xrd-library-panel-body footer,.xrd-library-quality span,.xrd-library-warnings li){font-size:11px;line-height:1.55;color:#53675f}
.xrd-ai-modal :is(.xrd-advanced-card header small,.xrd-advanced-card footer,.xrd-mini-tags span,.xrd-element-evidence>section>strong,.xrd-element-evidence>section>small,.xrd-composition-column>header small,.xrd-composition-list small,.xrd-composition-list em,.xrd-composition-list p,.xrd-composition-column>footer,.xrd-phase-composition-panel>footer){font-size:10px!important;line-height:1.5;font-weight:550;color:#566b62}
.xrd-ai-modal :is(.xrd-advanced-card header strong,.xrd-advanced-card p,.xrd-composition-list strong,.xrd-phase-evidence-item strong,.xrd-mechanism-card article strong,.xrd-quant-list article strong,.xrd-quant-table>div>span strong,.xrd-quant-table>div>b,.xrd-quant-table>div>em){font-size:11.5px!important;font-weight:700}
.xrd-ai-modal :is(.xrd-phase-composition-panel>header span,.xrd-phase-composition-panel>header em,.xrd-phase-evolution-grid header span,.xrd-phase-evidence-item small,.xrd-phase-evidence-item>span,.xrd-phase-evidence-item>p,.xrd-tentative-phase>span,.xrd-mechanism-card>header span,.xrd-mechanism-card article strong small,.xrd-mechanism-card article span,.xrd-mechanism-card article p,.xrd-quant-card>header span,.xrd-quant-card>header em,.xrd-quant-card>footer,.xrd-quant-list article small,.xrd-quant-list article span,.xrd-quant-table .head,.xrd-quant-table>div>span small,.xrd-quant-table>div>small,.xrd-comparison-summary>header small,.xrd-comparison-summary>header>em,.xrd-relative-amount-notice,.xrd-comparison-metrics span,.xrd-comparison-phases>span,.xrd-comparison-phases b,.xrd-comparison-summary>footer,.xrd-peak-area-details article>strong small,.xrd-peak-area-details article p,.xrd-peak-area-details>footer,.xrd-production-guidance>div span,.xrd-production-guidance>small){font-size:10px!important;line-height:1.5;font-weight:550;color:#596d64}
.xrd-ai-modal :is(.xrd-reference-guide-head small,.xrd-reference-guide>small,.xrd-chart-legend text,.xrd-chemistry-input small){font-size:10.5px!important;line-height:1.5;color:#566a61}
.xrd-ai-modal :is(.xrd-result-heading p,.xrd-result-heading>div>span,.xrd-section-heading span,.xrd-safety-notice small,.xrd-metric-row span,.xrd-quality-list li){font-size:12px;font-weight:550;color:#53675f}

/* Release 522 · 每日投料含量标题保持单行，并移除已取消的明细空列 */
.daily-production-modal .daily-material-row{
  grid-template-columns:95px minmax(165px,1.2fr) 90px 88px 95px 116px minmax(150px,1.1fr) 38px;
}
.daily-production-modal .daily-material-row [data-quality-indicator-label]{
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}

/* Release 523 · XRD代表性峰直接标注对应物相，标签自动分层避免遮挡 */
.xrd-pattern-visual{display:grid;gap:7px}
.xrd-pattern-chart{height:300px}
.xrd-peak-marker circle{fill:#aab7b1;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.xrd-peak-marker.identified circle{fill:#216b57;stroke:#d8eee6;stroke-width:1.8}
.xrd-peak-marker.unassigned text{fill:#88958f;font-size:8px}
.xrd-phase-peak-label{pointer-events:auto}
.xrd-phase-peak-label line{stroke:#4b8876;stroke-width:1.4;stroke-dasharray:none;stroke-linecap:round;shape-rendering:geometricPrecision;opacity:.9;vector-effect:non-scaling-stroke}
.xrd-phase-peak-label rect{fill:#e8f4ef;stroke:#3f7f6c;stroke-width:1;vector-effect:non-scaling-stroke}
.xrd-phase-peak-label text{fill:#1f5546;font-size:9.5px;font-weight:750}
.xrd-phase-peak-label.reference line{stroke:#b98035}
.xrd-phase-peak-label.reference rect{fill:#fff4df;stroke:#b98035}
.xrd-phase-peak-label.reference text{fill:#76501c}
.xrd-phase-peak-label.candidate rect{stroke-dasharray:none;fill:#fffaf0}
.xrd-phase-label-key{display:flex;align-items:center;flex-wrap:wrap;gap:7px 14px;padding:0 2px;color:#60736a;font-size:10px}
.xrd-phase-label-key span{display:inline-flex;align-items:center;gap:6px;font-weight:750;white-space:nowrap}
.xrd-phase-label-key span::before{content:"";width:16px;height:7px;border:1px solid #3f7f6c;border-radius:3px;background:#e8f4ef}
.xrd-phase-label-key span.reference::before{border-color:#b98035;background:#fff4df}
.xrd-phase-label-key small{color:#6d7c75;font-size:10px;line-height:1.45}
@media(max-width:1050px){.xrd-pattern-chart{height:270px}}
@media(max-width:760px){.xrd-pattern-chart{height:245px}.xrd-phase-label-key{display:grid;grid-template-columns:auto auto}.xrd-phase-label-key small{grid-column:1/-1}}

/* Release 524 · 微信考勤增加按员工和生效期间配置的个性班次 */
.attendance-config-task-rail{grid-template-columns:repeat(5,minmax(0,1fr))}
.attendance-custom-schedule-section{background:#fbfaf5!important}
.attendance-custom-schedule-toolbar{
  display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:end;gap:10px;
  padding:12px;border:1px solid #d4ddd7;border-radius:12px;background:#f3f6f2
}
.attendance-custom-schedule-toolbar label{display:grid;gap:5px;min-width:0}
.attendance-custom-schedule-toolbar label>span{color:#476054;font-size:11px;font-weight:750}
.attendance-custom-schedule-toolbar select{width:100%;min-width:0;min-height:40px;border:1px solid #c8d4cd;border-radius:9px;background:#fff}
.attendance-custom-schedule-toolbar>button{min-height:40px;white-space:nowrap}
.attendance-custom-schedule-toolbar>span{align-self:center;color:#64766d;font-size:11px;white-space:nowrap}
.attendance-custom-schedule-toolbar>span strong{color:#245b46;font-size:18px}
.attendance-custom-schedule-table-wrap{margin-top:10px;overflow:auto;border:1px solid #d3ddd7;border-radius:12px;background:#fff;scrollbar-gutter:stable}
.attendance-custom-schedule-table{width:100%;min-width:1160px;table-layout:fixed}
.attendance-custom-schedule-table th{padding:9px 7px;color:#53665c;background:#edf3ef;font-size:10px;white-space:nowrap}
.attendance-custom-schedule-table td{padding:7px;border-top:1px solid #e4e9e5;vertical-align:middle}
.attendance-custom-schedule-table th:nth-child(1){width:145px}.attendance-custom-schedule-table th:nth-child(2){width:155px}
.attendance-custom-schedule-table th:nth-child(3),.attendance-custom-schedule-table th:nth-child(4){width:112px}
.attendance-custom-schedule-table th:nth-child(5){width:126px}.attendance-custom-schedule-table th:nth-child(6),.attendance-custom-schedule-table th:nth-child(7){width:150px}
.attendance-custom-schedule-table th:nth-child(8){width:94px}.attendance-custom-schedule-table th:nth-child(9){width:86px}
.attendance-custom-schedule-table td:first-child{display:grid;gap:2px}
.attendance-custom-schedule-table td:first-child strong{overflow:hidden;color:#29483b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.attendance-custom-schedule-table td:first-child small{overflow:hidden;color:#7a8780;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.attendance-custom-schedule-table :is(input,select){width:100%;min-width:0;height:36px;padding:5px 7px;border:1px solid #ccd6d0;border-radius:8px;background:#fff;color:#293d34;font-size:11px}
.attendance-custom-schedule-table .row-action{min-height:32px;padding:5px 7px;white-space:nowrap}
@media(max-width:1180px){
  .attendance-custom-schedule-table-wrap{overflow:visible;padding:10px;background:#f5f7f4;scrollbar-gutter:auto}
  .attendance-custom-schedule-table{display:block;min-width:0;border:0;background:transparent}
  .attendance-custom-schedule-table thead{display:none}
  .attendance-custom-schedule-table tbody{display:grid;gap:10px}
  .attendance-custom-schedule-table tr[data-attendance-custom-row]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 10px;padding:11px;border:1px solid #d6dfd9;border-radius:11px;background:#fff;box-shadow:0 4px 12px rgba(37,69,55,.05)}
  .attendance-custom-schedule-table tr[data-attendance-custom-empty]:not([hidden]){display:block}
  .attendance-custom-schedule-table tr[data-attendance-custom-empty] td{display:block!important;padding:18px!important;border:0!important}
  .attendance-custom-schedule-table td,.attendance-custom-schedule-table td:first-child{display:grid;align-content:start;gap:5px;min-width:0;padding:0;border:0}
  .attendance-custom-schedule-table td::before{content:attr(data-label);color:#5b6e64;font-size:10px;font-weight:750;line-height:1.2}
  .attendance-custom-schedule-table td:first-child{grid-column:span 2;padding:7px 9px;border-radius:8px;background:#edf4ef}
  .attendance-custom-schedule-table td:first-child::before{display:none}
  .attendance-custom-schedule-table td:last-child{align-self:end}
  .attendance-custom-schedule-table .row-action{width:100%;height:36px;justify-content:center}
}
@media(max-width:1080px){
  .attendance-config-task-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
  .attendance-config-task-rail>span:nth-child(3){border-right:0}
  .attendance-config-task-rail>span:nth-child(-n+3){border-bottom:1px solid #d8dfda}
  .attendance-custom-schedule-toolbar{grid-template-columns:minmax(0,1fr) auto}
  .attendance-custom-schedule-toolbar>span{grid-column:1/-1}
}
@media(max-width:820px){
  .attendance-config-task-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-config-task-rail>span{border-right:1px solid #d8dfda!important;border-bottom:1px solid #d8dfda!important}
  .attendance-config-task-rail>span:nth-child(2n){border-right:0!important}
  .attendance-config-task-rail>span:last-child{grid-column:1/-1;border-right:0!important;border-bottom:0!important}
  .attendance-custom-schedule-toolbar{grid-template-columns:1fr;align-items:stretch}
  .attendance-custom-schedule-toolbar>button{width:100%;justify-content:center}
  .attendance-custom-schedule-toolbar>span{grid-column:auto}
  .attendance-custom-schedule-table tr[data-attendance-custom-row]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-custom-schedule-table td:first-child,.attendance-custom-schedule-table td:last-child{grid-column:1/-1}
}
@media(max-width:520px){
  .attendance-custom-schedule-table tr[data-attendance-custom-row]{grid-template-columns:1fr}
  .attendance-custom-schedule-table td:first-child,.attendance-custom-schedule-table td:last-child{grid-column:auto}
}

/* Release 526 · 应收应付往来账款自动对账、确认核销与打印 */
.finance-ar-ap-settlement-modal{width:min(1180px,calc(100vw - 28px));max-width:1180px;max-height:calc(100vh - 24px);overflow:hidden}
.ar-ap-settlement-workbench{display:grid;gap:12px;min-height:0;padding:14px 16px 18px;overflow:auto;background:#f4f5f1;scrollbar-gutter:stable}
.ar-ap-smart-panel{min-width:0;padding:14px 16px;border:1px solid #b7ccbf;border-radius:10px;background:#fff;margin-bottom:12px;font-size:14px;line-height:1.5}
.ar-ap-smart-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ar-ap-smart-panel h3{margin:0;font-size:17px}.ar-ap-smart-panel p{margin:4px 0 10px;color:#526359}.ar-ap-smart-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ar-ap-smart-actions label{display:flex;gap:8px;align-items:center}.ar-ap-smart-actions input{max-width:160px;padding:7px;border:1px solid #bfcbc4;border-radius:6px}.ar-ap-smart-actions button{white-space:nowrap;min-height:38px}.ar-ap-smart-summary{margin:10px 0;padding:10px;background:#edf5ef;color:#224c36}.ar-ap-smart-table{max-width:100%;max-height:280px;overflow:auto;margin:10px 0}.ar-ap-smart-table table{min-width:540px;width:100%}.ar-ap-smart-table td{overflow-wrap:anywhere}.ar-ap-smart-receipts{display:flex;flex-wrap:wrap;gap:10px;padding-top:10px}
@media(max-width:760px){.ar-ap-smart-panel{padding:12px}.ar-ap-smart-panel>header{align-items:stretch}.ar-ap-smart-actions{width:100%}.ar-ap-smart-table{max-height:220px}}
.ar-ap-settlement-hero{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;padding:15px 17px;border:1px solid #c9d8cf;border-radius:14px;background:linear-gradient(135deg,#edf5ef,#fffaf0)}
.ar-ap-settlement-hero>div:first-child{display:grid;gap:4px}.ar-ap-settlement-hero>div:first-child>span{display:flex;align-items:center;gap:6px;color:#2e7057;font-size:11px;font-weight:800}.ar-ap-settlement-hero h3{margin:0;color:#223f33;font-size:19px}.ar-ap-settlement-hero p{max-width:760px;margin:0;color:#63736b;font-size:11px;line-height:1.6}
.ar-ap-settlement-hero>div:last-child{display:grid;justify-items:center;padding:9px;border-left:1px solid #cbd9d1}.ar-ap-settlement-hero>div:last-child strong{color:#246348;font-size:28px;line-height:1}.ar-ap-settlement-hero>div:last-child span{color:#36594a;font-size:11px;font-weight:750}.ar-ap-settlement-hero>div:last-child small{margin-top:3px;color:#728077;font-size:10px}
.ar-ap-auto-match-section,.ar-ap-settlement-history{padding:13px;border:1px solid #d6ddd8;border-radius:13px;background:#fff}.ar-ap-auto-match-section>header,.ar-ap-settlement-history>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.ar-ap-auto-match-section>header>div,.ar-ap-settlement-history>header>div{display:grid;gap:2px}.ar-ap-auto-match-section>header span,.ar-ap-settlement-history>header span{color:#557066;font-size:10px;font-weight:750}.ar-ap-auto-match-section>header h3,.ar-ap-settlement-history>header h3{margin:0;color:#2c453a;font-size:14px}.ar-ap-auto-match-section>header small{color:#7a857f;font-size:10px}
.ar-ap-auto-match-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ar-ap-auto-match-grid>.empty-state{grid-column:1/-1}
.ar-ap-auto-match-card{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid #d8e0db;border-radius:11px;background:#f8faf8}.ar-ap-auto-match-card.is-high{border-color:#b8d6c7;background:#f0f8f3}.ar-ap-auto-match-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.ar-ap-auto-match-card>header strong{overflow:hidden;color:#314a3f;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ar-ap-auto-match-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;color:#617169;font-size:10px}.ar-ap-auto-match-card>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-ap-auto-match-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.ar-ap-auto-match-card dl>div{display:grid;gap:2px;padding:6px;border-radius:7px;background:#fff}.ar-ap-auto-match-card dt{color:#718078;font-size:9px}.ar-ap-auto-match-card dd{margin:0;color:#264c3d;font-size:11px;font-weight:800}.ar-ap-auto-match-card button{width:100%;justify-content:center}
.ar-ap-settlement-main{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(0,1.1fr);align-items:start;gap:12px}.ar-ap-settlement-form{min-width:0;padding:0}.ar-ap-settlement-form .finance-sheet{padding:13px;border:1px solid #d6ddd8;border-radius:13px;background:#fff}.ar-ap-settlement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-ap-settlement-grid .full{grid-column:1/-1}
.ar-ap-settlement-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px;padding-top:11px;border-top:1px solid #e1e6e2}.ar-ap-settlement-preview article{display:grid;gap:2px;min-width:0;padding:7px 8px;border-radius:8px;background:#f3f6f3}.ar-ap-settlement-preview span{color:#718078;font-size:9px}.ar-ap-settlement-preview strong{overflow:hidden;color:#2e493d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ar-ap-settlement-form>.form-actions{padding:10px 0 0}.ar-ap-settlement-form>.form-actions button{width:100%;justify-content:center}
.ar-ap-settlement-history{min-width:0}.ar-ap-settlement-history .table-scroll{max-height:460px}.ar-ap-settlement-history .data-table{min-width:860px}.ar-ap-settlement-history .data-table td small{display:block;margin-top:3px;color:#77837d;font-size:9px}
.ar-ap-settlement-print-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;border-top:1px solid #333;border-left:1px solid #333}.ar-ap-settlement-print-grid>div{display:grid;grid-template-columns:135px 1fr;min-height:42px;border-right:1px solid #333;border-bottom:1px solid #333}.ar-ap-settlement-print-grid>div.full{grid-column:1/-1}.ar-ap-settlement-print-grid span{display:flex;align-items:center;padding:7px 9px;border-right:1px solid #333;font-weight:700}.ar-ap-settlement-print-grid strong{display:flex;align-items:center;padding:7px 9px;font-weight:500}.ar-ap-settlement-print-signatures{display:flex;justify-content:space-between;gap:30px;margin-top:34px;font-size:13px}
@media(max-width:1000px){.ar-ap-auto-match-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-ap-settlement-main{grid-template-columns:1fr}.ar-ap-settlement-history .table-scroll{max-height:360px}}
@media(max-width:700px){.finance-ar-ap-settlement-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.ar-ap-settlement-workbench{padding:10px}.ar-ap-settlement-hero{grid-template-columns:1fr}.ar-ap-settlement-hero>div:last-child{border-top:1px solid #cbd9d1;border-left:0}.ar-ap-auto-match-grid,.ar-ap-settlement-grid{grid-template-columns:1fr}.ar-ap-settlement-grid .full{grid-column:auto}.ar-ap-settlement-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-ap-auto-match-section>header,.ar-ap-settlement-history>header{align-items:flex-start;flex-direction:column}}
@media print{.ar-ap-settlement-print-sheet{font-family:"Microsoft YaHei",sans-serif}.ar-ap-settlement-print-sheet .ar-ap-settlement-print-grid{break-inside:avoid}.ar-ap-settlement-print-sheet .ar-ap-settlement-print-signatures{break-inside:avoid}}
.xrd-area-budget,.xrd-calcium-evidence{min-width:0;margin:12px 0;padding:14px;border:1px solid #c4d3df;border-radius:10px;background:#fff;color:#19354d;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.xrd-area-budget-values{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}.xrd-area-budget-values>span{padding:8px 12px;background:#edf3f8;border-radius:6px}.xrd-area-budget-values b{font-variant-numeric:tabular-nums}
.xrd-area-budget small,.xrd-calcium-evidence small{color:#4a5c6b}.xrd-calcium-evidence article{padding:10px 0;border-bottom:1px solid #dce4e9}.xrd-calcium-evidence p{margin:5px 0}.xrd-calcium-table{max-width:100%;overflow:auto}.xrd-calcium-table table{width:100%;border-collapse:collapse;table-layout:fixed}.xrd-calcium-table th,.xrd-calcium-table td{padding:8px;text-align:left;border-bottom:1px solid #dce4e9;vertical-align:top;overflow-wrap:anywhere}.xrd-same-recipe{display:flex!important;align-items:flex-start;gap:8px;font-size:13px!important}.xrd-same-recipe input{width:17px!important;height:17px!important;min-height:17px!important;flex:none;margin-top:3px}
@media print{.xrd-area-budget,.xrd-calcium-evidence{box-shadow:none;border-color:#888;overflow:visible}.xrd-calcium-table{overflow:visible}}
/* Release 530: compact, evidence-backed XRD conclusions, isolated from ERP forms. */
.xrd-direct-conclusion { min-width: 0; padding: 18px; margin: 14px 0; border: 1px solid #b9c8d7; border-top: 3px solid #17608c; border-radius: 12px; background: #fff; color: #162e43; overflow-wrap: anywhere; }
.xrd-direct-conclusion > header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.xrd-direct-conclusion h3 { margin: 0; font-size: 1.125rem; }
.xrd-direct-conclusion h4 { margin: 0 0 8px; font-size: 1rem; }
.xrd-direct-conclusion small, .xrd-direct-conclusion footer, .xrd-direct-conclusion > header > span { color: #526678; font-size: .875rem; }
.xrd-direct-side { min-width: 0; padding-top: 14px; }
.xrd-direct-status { margin: 6px 0 12px; font-size: 1rem; font-weight: 600; line-height: 1.6; }
.xrd-direct-phase-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.xrd-direct-phase-grid > section { min-width: 0; padding: 14px; background: #f2f6f9; border-radius: 8px; }
.xrd-direct-phase-grid ul { margin: 0; padding: 0; list-style: none; }
.xrd-direct-phase-grid li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; padding: 8px 0; font-size: 1rem; }
.xrd-direct-phase-grid li > span { min-width: 0; flex: 1 1 140px; }
.xrd-direct-phase-grid li small { display: block; margin-top: 4px; }
.xrd-direct-phase-grid li > b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.xrd-direct-phase-grid p, .xrd-direct-conclusion details { margin: 8px 0; line-height: 1.6; }
.xrd-direct-remainder { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 14px; font-size: .9375rem; }
.xrd-direct-boundary { padding: 10px 12px; border-left: 3px solid #b56e11; background: #fff8eb; color: #674209; line-height: 1.6; }
.xrd-direct-conclusion details li, .xrd-direct-changes li { margin: 6px 0; line-height: 1.6; }
.xrd-direct-changes { margin-top: 14px; padding-top: 12px; border-top: 1px solid #d9e2e9; }
.xrd-direct-conclusion footer { margin-top: 14px; line-height: 1.6; }
@media print { .xrd-direct-conclusion { box-shadow: none; } .xrd-direct-phase-grid > section { break-inside: avoid; } }

/* XRD result controls: title, everyday actions, then optional version maintenance. */
.xrd-ai-modal .xrd-result-heading { display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px 16px; margin-bottom:10px; }
.xrd-result-heading .xrd-result-title { flex:1 1 15rem; min-width:0; overflow-wrap:anywhere; }
.xrd-result-heading .xrd-status { flex:0 0 auto; margin-top:3px; }
.xrd-ai-modal .xrd-result-actions { justify-content:flex-start; gap:8px; margin:0 0 12px; padding:0 0 12px; border-bottom:1px solid #dbe4df; }
.xrd-ai-modal .xrd-result-actions button, .xrd-analysis-version button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:8px 12px; font-size:.875rem; line-height:1.4; white-space:normal; }
.xrd-ai-modal .xrd-result-actions .xrd-delete-result { margin-inline-start:auto; font-size:.875rem; }
.xrd-analysis-version { min-width:0; margin:0 0 12px; border:1px solid #dce5df; border-radius:8px; background:#f7faf8; color:#345146; font-size:.875rem; line-height:1.6; }
.xrd-analysis-version > summary { cursor:pointer; padding:9px 12px; overflow-wrap:anywhere; }
.xrd-analysis-version > summary strong { margin-inline-end:12px; font-weight:650; }
.xrd-analysis-version > summary span { color:#596d63; }
.xrd-analysis-version .update-available { color:#825217; font-weight:600; }
.xrd-version-content { padding:0 12px 12px; }
.xrd-version-update-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; padding:10px 0; border-top:1px solid #dce5df; }
.xrd-version-update-row p { flex:1 1 13rem; margin:0; }
.xrd-version-content dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:10px 18px; margin:10px 0 0; }
.xrd-version-content dl > div { min-width:0; }
.xrd-version-content dt { color:#607468; }
.xrd-version-content dd { margin:2px 0 0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.xrd-version-reasons { margin-top:10px; }
.xrd-version-reasons summary { cursor:pointer; }
.xrd-version-reasons ul { margin:6px 0 0; padding-inline-start:20px; overflow-wrap:anywhere; }
.xrd-analysis-version summary:focus-visible,.xrd-analysis-version button:focus-visible,.xrd-result-actions button:focus-visible { outline:2px solid #24745a; outline-offset:3px; }
.xrd-analysis-version button[aria-busy="true"] { opacity:.65; cursor:wait; }
@media(max-width:600px) { .xrd-ai-modal .xrd-result-actions .xrd-delete-result { margin-inline-start:0; } }
@media print { .xrd-result-actions, .xrd-version-update-row, .xrd-version-reasons { display:none!important; } .xrd-analysis-version { background:transparent; break-inside:avoid; } }

/* Release 534: read-only, whole-area phase and peak ranking. */
.xrd-direct-side + .xrd-direct-side { margin-top:18px; border-top:2px solid #c3d3df; }
.xrd-ranking-section { min-width:0; margin:14px 0; }
.xrd-ranking-scroll { max-width:100%; min-width:0; overflow-x:auto; border:1px solid #d5dfe7; border-radius:8px; }
.xrd-direct-conclusion .xrd-ranking-table { width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; color:#18354b; font-size:14px; line-height:1.65; }
.xrd-ranking-table caption { padding:8px 10px; text-align:left; color:#425d70; background:#f3f7fa; font-weight:600; }
.xrd-ranking-table .xrd-rank-number { width:66px; }
.xrd-ranking-table .xrd-rank-value { width:100px; }
.xrd-direct-conclusion .xrd-ranking-table th,.xrd-direct-conclusion .xrd-ranking-table td { height:auto; min-width:0; padding:10px; text-align:left; vertical-align:top; white-space:normal; overflow-wrap:anywhere; border-bottom:1px solid #e0e7ed; }
.xrd-ranking-table th { background:#edf3f7; color:#26485e; font-weight:650; }
.xrd-ranking-table tr:last-child td { border-bottom:0; }
.xrd-ranking-table td small,.xrd-rank-peak-ref { display:block; margin-top:3px; }
.xrd-ranking-table .xrd-rank-amount { font-variant-numeric:tabular-nums; font-weight:700; }
.xrd-rank-unresolved { color:#815219; font-weight:600; }
.xrd-direct-conclusion .xrd-rank-clues { margin:4px 0 0; }
.xrd-rank-clues p { margin:6px 0; }
.xrd-ranking-more > summary,.xrd-ranking-candidates > summary,.xrd-rank-clues > summary { padding:6px 0; cursor:pointer; color:#205d80; }
.xrd-direct-conclusion summary:focus-visible { outline:2px solid #24745a; outline-offset:3px; }
.xrd-rank-note,.xrd-rank-empty { color:#526678; font-size:14px; line-height:1.6; }
@media(max-width:600px) { .xrd-direct-conclusion { padding:12px; } .xrd-ranking-table .xrd-rank-number { width:44px; } .xrd-ranking-table .xrd-rank-value { width:76px; } .xrd-direct-conclusion .xrd-ranking-table th,.xrd-direct-conclusion .xrd-ranking-table td { padding:7px 5px; } }
@media print { .xrd-ranking-scroll { overflow:visible; border-radius:0; } .xrd-ranking-table thead { display:table-header-group; } .xrd-ranking-table tr { break-inside:avoid; } .xrd-ranking-more,.xrd-ranking-candidates { break-inside:auto; } }

/* Roasting owns one scroll viewport. The generic business-form decorator may
   wrap it, but must not add two more fixed-height scrolling containers. */
.spodumene-roasting-modal > .system-business-unified-body {
  min-height:0; overflow:hidden; padding-bottom:0;
}
.spodumene-roasting-modal .roasting-workbench {
  min-height:0; height:100%; max-height:none;
  overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.spodumene-roasting-modal .system-business-unified-form.system-business-contained-form {
  display:block!important; height:auto!important; min-height:0!important;
  max-height:none!important; overflow:visible!important;
}
.spodumene-roasting-modal .system-business-unified-form > .system-business-unified-form-body {
  overflow:visible!important; scrollbar-gutter:auto;
}
.spodumene-roasting-modal .system-business-unified-form > .roasting-form-actions {
  position:sticky!important; bottom:0!important; z-index:35;
  min-height:52px; max-height:none; padding:8px 12px!important;
  box-shadow:0 -3px 12px rgba(37,62,49,.08)!important;
}
.spodumene-roasting-modal .roasting-task-copy small,
.spodumene-roasting-modal .roasting-task-copy em,
.spodumene-roasting-modal .roasting-task-header small,
.spodumene-roasting-modal .roasting-task-header > div > span,
.spodumene-roasting-modal .roasting-form-actions > span,
.spodumene-roasting-modal .roasting-tab-panel .form-section-title > span {
  font-size:12px!important; line-height:1.5; color:#4e6258;
}
.spodumene-roasting-modal .roasting-kpi-material > .roasting-kpi-primary span,
.spodumene-roasting-modal .roasting-kpi-material > .roasting-kpi-secondary span {
  font-size:12px!important; line-height:1.4;
}
.spodumene-roasting-modal .roasting-task-copy strong { font-size:15px; }
.spodumene-roasting-modal .task-log .roasting-task-copy strong { font-size:21px; }
.spodumene-roasting-modal .roasting-task-grid { grid-auto-rows:minmax(86px,auto); }
.spodumene-roasting-modal .roasting-task-card { min-height:86px; }
@media(min-width:1051px) {
  .spodumene-roasting-modal .roasting-task-grid { grid-template-rows:repeat(2,86px); }
}
.ar-ap-smart-actions label { white-space:nowrap; }
.ar-ap-smart-actions input { min-width:140px; }
@media(max-width:760px) {
  .spodumene-roasting-modal .roasting-task-grid { grid-auto-rows:auto; }
  .spodumene-roasting-modal .roasting-task-card { min-height:78px; }
}

/* XRD production interpretation: compact evidence-first report, no candidate UI. */
.xrd-production-report { min-width:0; margin:14px 0; color:#203a31; overflow-wrap:anywhere; }
.xrd-production-report > header { padding:0 2px 12px; }
.xrd-production-report > header > span { color:#40715c; font-size:12px; font-weight:700; }
.xrd-production-report h3 { margin:4px 0 6px; font-size:21px; line-height:1.4; letter-spacing:-.02em; }
.xrd-production-report > header p { margin:0; color:#54685e; font-size:13px; line-height:1.65; }
.xrd-production-panels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
.xrd-production-panel { min-width:0; padding:15px; border:1px solid #d5e2d9; border-top:3px solid #477961; border-radius:10px; background:#fff; }
.xrd-production-panel > header { display:flex; align-items:baseline; gap:9px; }
.xrd-production-panel > header > span { color:#5d7a6b; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.xrd-production-panel h4 { margin:0; font-size:17px; line-height:1.45; text-wrap:balance; }
.xrd-production-answer { margin:12px 0; max-width:65ch; font-size:15px; line-height:1.75; font-weight:600; }
.xrd-production-empty,.xrd-production-status { margin:10px 0; font-size:13px; line-height:1.65; color:#52685b; }
.xrd-production-phases { margin:12px 0; padding:0; list-style:none; }
.xrd-production-phases li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid #e7ede8; font-size:13px; line-height:1.5; font-variant-numeric:tabular-nums; }
.xrd-production-phases li > span { min-width:0; }
.xrd-production-phases li > span:last-child { text-align:right; }
.xrd-production-phases small,.xrd-production-change-table small { display:block; margin-top:3px; font-size:12px; line-height:1.6; color:#5b6d63; }
.xrd-production-panel > footer { margin-top:12px; padding-top:10px; border-top:1px solid #e1e9e4; color:#5b6d63; font-size:12px; line-height:1.7; }
.xrd-production-table-scroll { max-width:100%; min-width:0; overflow-x:auto; }
.xrd-production-change-table { width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; font-size:12px; line-height:1.6; }
.xrd-production-change-table caption { text-align:left; padding:8px 0; font-weight:700; }
.xrd-production-change-table th,.xrd-production-change-table td { padding:7px 6px; vertical-align:top; text-align:left; white-space:normal; overflow-wrap:anywhere; border-bottom:1px solid #e0e8e3; }
.xrd-production-change-table th { background:#f1f5f2; }
.xrd-production-change-table td { font-variant-numeric:tabular-nums; }
.xrd-production-observations,.xrd-production-next ol { margin:8px 0; padding-left:20px; font-size:13px; line-height:1.7; }
.xrd-production-observations li,.xrd-production-next li { margin:5px 0; }
.xrd-production-records { margin:10px 0; display:grid; grid-template-columns:1fr; gap:6px; font-size:12px; line-height:1.6; }
.xrd-production-records > div { display:flex; justify-content:space-between; gap:10px; }
.xrd-production-records dt { color:#5b6d63; }
.xrd-production-records dd { margin:0; font-weight:600; font-variant-numeric:tabular-nums; }
.xrd-production-record-note { font-size:12px; line-height:1.6; white-space:pre-wrap; }
.xrd-production-next { margin-top:12px; padding:10px; background:#f1f5f2; border-radius:6px; font-size:13px; }
.xrd-production-evidence { margin-top:12px; padding:12px 15px; border-left:3px solid #678675; background:#edf3ee; font-size:13px; line-height:1.7; }
.xrd-production-evidence ul { margin:6px 0 0; padding-left:20px; }
.xrd-process-record-input { border:1px solid #d8e2db; border-radius:8px; padding:8px 10px; background:#f8faf7; }
.xrd-process-record-input > summary,.xrd-vendor-source > summary { cursor:pointer; font-size:13px; font-weight:650; color:#365d49; line-height:1.6; }
.xrd-process-record-input > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:10px; }
.xrd-process-record-input label { min-width:0; }
.xrd-process-record-input label > span { font-size:11px; line-height:1.5; }
.xrd-process-record-input input,.xrd-process-record-input select,.xrd-process-record-input textarea { width:100%; min-width:0; }
.xrd-process-record-note { grid-column:1/-1; }
.xrd-process-record-input textarea { min-height:64px; }
.xrd-process-record-input > small { display:block; margin-top:8px; color:#566c5f; font-size:11px; line-height:1.6; }
.xrd-vendor-source > .xrd-section-heading { margin-top:10px; }
.xrd-process-record-input summary:focus-visible,.xrd-vendor-source summary:focus-visible { outline:2px solid #24745a; outline-offset:3px; }
@media(max-width:1200px) { .xrd-production-panels { grid-template-columns:minmax(0,1fr); } }
@media(max-width:900px) {
  .xrd-ai-modal .xrd-workbench-body { display:flex; flex-direction:column; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
  .xrd-ai-modal .xrd-side-panel,.xrd-ai-modal .xrd-result-panel { flex:0 0 auto; width:100%; min-width:0; min-height:0; height:auto; max-height:none; overflow:visible; }
  .xrd-ai-modal .xrd-side-panel { display:block; }
  .xrd-ai-modal .xrd-history-list { min-height:0; max-height:190px; overflow-y:auto; overflow-x:hidden; }
  .xrd-ai-modal .xrd-result-panel { padding:14px; }
  .xrd-ai-modal .xrd-modal-header { flex-wrap:wrap; min-height:0; padding:10px 14px; gap:8px; }
  .xrd-ai-modal .xrd-instrument-chip { padding:5px 8px; font-size:12px; }
}
@media(max-width:600px) { .xrd-production-panel { padding:12px; } .xrd-production-report h3 { font-size:19px; } }
@media print {
  .xrd-production-panels { display:block; }
  .xrd-production-panel { margin-bottom:12px; box-shadow:none; break-inside:avoid; }
  .xrd-production-table-scroll { overflow:visible; }
  .xrd-production-change-table thead { display:table-header-group; }
  .xrd-production-change-table tr { break-inside:avoid; }
  .xrd-vendor-source { display:none!important; }
}

/* XRD major-peak coordinates remain useful even when phase identity is unknown. */
.xrd-peak-comparison { min-width:0; margin:14px 0 18px; padding:16px; border:1px solid #cddcd3; border-top:3px solid #477961; border-radius:10px; background:#fff; color:#203a31; overflow-wrap:anywhere; }
.xrd-peak-comparison > header > span { font-size:12px; font-weight:650; color:#47725c; }
.xrd-peak-comparison h3 { margin:4px 0 8px; font-size:21px; line-height:1.4; letter-spacing:-.02em; }
.xrd-peak-comparison-summary { margin:8px 0; max-width:65ch; font-size:15px; font-weight:600; line-height:1.75; }
.xrd-peak-order-note,.xrd-peak-axis-note { margin:8px 0; color:#53685b; font-size:12px; line-height:1.7; }
.xrd-peak-axis-note { padding:9px 11px; background:#f0f5f1; border-radius:6px; }
.xrd-peak-comparison-table-wrap { min-width:0; max-width:100%; }
.xrd-peak-comparison-table { width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; font-size:13px; line-height:1.65; }
.xrd-peak-comparison-table caption { padding:8px 0; text-align:left; color:#53685b; font-size:12px; }
.xrd-peak-comparison-table th,.xrd-peak-comparison-table td { min-width:0; height:auto; padding:11px 9px; text-align:left; vertical-align:top; white-space:normal; overflow-wrap:anywhere; border-bottom:1px solid #dce6df; }
.xrd-peak-comparison-table th { background:#edf3ee; color:#365745; font-weight:650; }
.xrd-peak-comparison-table .xrd-coordinate-row-number { width:46px; font-variant-numeric:tabular-nums; }
.xrd-coordinate-peak { display:grid; gap:4px; min-width:0; }
.xrd-coordinate-id,.xrd-coordinate-peak small { color:#5b6e61; font-size:12px; }
.xrd-coordinate-value { display:flex; flex-wrap:wrap; gap:2px 12px; font-size:15px; font-weight:700; font-variant-numeric:tabular-nums; }
.xrd-coordinate-value > span { white-space:normal; overflow-wrap:anywhere; }
.xrd-coordinate-phase { color:#435e4e; font-size:13px; }
.xrd-coordinate-empty,.xrd-peak-comparison-empty { margin:4px 0; color:#657368; font-size:13px; line-height:1.7; }
.xrd-coordinate-explanation > strong { font-size:13px; }
.xrd-coordinate-explanation > p { margin:5px 0; font-size:13px; line-height:1.75; }
.xrd-coordinate-explanation > small { color:#5b6e61; font-size:12px; font-variant-numeric:tabular-nums; }
.xrd-peak-comparison-notes { margin:12px 0 0; padding-left:20px; font-size:12px; line-height:1.7; color:#53685b; }
.xrd-peak-comparison > footer { margin-top:12px; padding-top:10px; border-top:1px solid #dce6df; font-size:12px; line-height:1.7; color:#53685b; }
@media(max-width:1200px) {
  .xrd-peak-comparison-table,.xrd-peak-comparison-table tbody,.xrd-peak-comparison-table tr { display:block; width:100%; }
  .xrd-peak-comparison-table caption { display:block; }
  .xrd-peak-comparison-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .xrd-peak-comparison-table tr { padding:8px 0; border-bottom:1px solid #cbdad0; }
  .xrd-peak-comparison-table td { display:grid; grid-template-columns:88px minmax(0,1fr); gap:8px; width:100%; padding:7px 0; border:0; }
  .xrd-peak-comparison-table td::before { content:attr(data-label); color:#53685b; font-size:12px; font-weight:600; }
  .xrd-peak-comparison-table .xrd-coordinate-row-number { width:100%; }
  .xrd-coordinate-explanation > p,.xrd-coordinate-explanation > small { grid-column:2; margin:0; }
}
@media(max-width:600px) {
  .xrd-peak-comparison { padding:12px; }
  .xrd-peak-comparison h3 { font-size:19px; }
  .xrd-peak-comparison-table td { grid-template-columns:minmax(0,1fr); gap:3px; }
  .xrd-coordinate-explanation > p,.xrd-coordinate-explanation > small { grid-column:1; }
}
@media print {
  .xrd-peak-comparison { box-shadow:none; }
  .xrd-peak-comparison-table { display:table; }
  .xrd-peak-comparison-table caption { display:table-caption; }
  .xrd-peak-comparison-table thead { display:table-header-group; position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
  .xrd-peak-comparison-table tbody { display:table-row-group; }
  .xrd-peak-comparison-table tr { display:table-row; break-inside:avoid; }
  .xrd-peak-comparison-table td { display:table-cell; width:auto; padding:8px; border-bottom:1px solid #dce6df; }
  .xrd-peak-comparison-table td::before { display:none; }
  .xrd-peak-comparison-table .xrd-coordinate-row-number { width:46px; }
}

/* Shared X/Y axes: colour and dash pattern distinguish both source spectra. */
.xrd-chart-scroll { min-width:0; max-width:100%; overflow-x:auto; }
.xrd-pattern-visual .xrd-pattern-chart { display:block; width:100%; height:auto; aspect-ratio:920/620; background:#fafcfb; }
.xrd-pattern-visual .xrd-pattern-line.current { stroke:#c65b12; stroke-width:2.4; stroke-dasharray:none; stroke-linecap:round; shape-rendering:geometricPrecision; opacity:1; }
.xrd-pattern-visual .xrd-pattern-line.reference { stroke:#2563eb; stroke-width:2.4; stroke-dasharray:none; stroke-linecap:round; shape-rendering:geometricPrecision; opacity:1; }
.xrd-pattern-visual .xrd-peak-marker circle { fill:#c65b12; opacity:.7; }
.xrd-main-peak-coordinate .xrd-main-peak-connector { stroke-width:1; opacity:.22; vector-effect:non-scaling-stroke; }
.xrd-main-peak-coordinate.reference .xrd-main-peak-connector { stroke:#2563eb; stroke-dasharray:none; }
.xrd-main-peak-coordinate.current .xrd-main-peak-connector { stroke:#c65b12; }
.xrd-main-peak-coordinate rect { stroke-width:1; vector-effect:non-scaling-stroke; }
.xrd-main-peak-coordinate.reference rect { fill:#eff5ff; stroke:#93b4fb; }
.xrd-main-peak-coordinate.current rect { fill:#fff6ee; stroke:#e9b387; }
.xrd-pattern-visual .xrd-main-peak-coordinate .xrd-main-peak-dot { fill:#fff; stroke-width:2; vector-effect:non-scaling-stroke; }
.xrd-main-peak-coordinate.reference .xrd-main-peak-dot { stroke:#2563eb; }
.xrd-main-peak-coordinate.current .xrd-main-peak-dot { stroke:#c65b12; }
.xrd-pattern-visual .xrd-main-peak-text { font-size:24px; font-weight:650; font-variant-numeric:tabular-nums; }
.xrd-pattern-visual .xrd-main-peak-index { font-size:20px; font-weight:700; paint-order:stroke; stroke:#fff; stroke-width:3; stroke-linejoin:round; }
.xrd-pattern-visual .xrd-axis-label { font-size:20px; font-weight:550; }
.xrd-pattern-visual .xrd-main-peak-coordinate.reference text { fill:#1c4fa7; }
.xrd-pattern-visual .xrd-main-peak-coordinate.current text { fill:#9b460c; }
.xrd-pattern-visual .xrd-chart-legend text { font-size:22px!important; font-weight:650; }
.xrd-pattern-visual .xrd-phase-label-key { display:flex; font-size:12px; }
.xrd-pattern-visual .xrd-phase-label-key span.reference::before { height:0; border:0; border-top:3px solid #2563eb; border-radius:0; background:none; }
.xrd-pattern-visual .xrd-phase-label-key span.current::before { height:0; border:0; border-top:3px solid #c65b12; border-radius:0; background:none; }
.xrd-pattern-visual .xrd-phase-label-key small { font-size:12px; line-height:1.65; }
.xrd-overlay-warning { margin:8px 0 0; padding:9px 11px; border-left:3px solid #b68135; background:#fff8ed; color:#775823; font-size:13px; line-height:1.7; }
@media(max-width:600px) { .xrd-pattern-visual .xrd-pattern-chart { min-width:640px; } }
@media print { .xrd-chart-scroll { overflow:visible; } .xrd-pattern-visual .xrd-pattern-chart { min-width:0; } .xrd-chart-card { break-inside:avoid; } }

.xrd-lithium-comparison { min-width:0; margin:14px 0 18px; padding:15px; border:1px solid #d4e0d8; border-radius:10px; background:#fff; color:#203a31; overflow-wrap:anywhere; }
.xrd-lithium-comparison h3 { margin:0 0 8px; font-size:19px; line-height:1.45; }
.xrd-lithium-comparison > header p { margin:0 0 12px; font-size:14px; line-height:1.75; }
.xrd-lithium-phase-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.xrd-lithium-phase-columns.single { grid-template-columns:minmax(0,1fr); }
.xrd-lithium-phase-columns > article { min-width:0; padding:10px 12px; background:#f2f6f3; border-radius:6px; }
.xrd-lithium-phase-columns h4 { margin:0 0 7px; font-size:14px; }
.xrd-lithium-phases { padding:0; margin:0; list-style:none; }
.xrd-lithium-phases li { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:6px 0; font-size:13px; line-height:1.65; }
.xrd-lithium-phases li > span { min-width:0; }
.xrd-lithium-phases li > span:last-child { font-variant-numeric:tabular-nums; text-align:right; }
.xrd-lithium-phases small { display:block; font-size:12px; color:#576e60; }
.xrd-lithium-empty,.xrd-lithium-coordinate-link { margin:7px 0; color:#576e60; font-size:13px; line-height:1.75; }
.xrd-lithium-coordinate-link a { color:#245a7c; text-decoration:underline; text-underline-offset:3px; }
.xrd-lithium-coordinate-link a:focus-visible { outline:2px solid #245a7c; outline-offset:3px; }
.xrd-lithium-structure { margin-top:10px; font-size:13px; line-height:1.7; }
.xrd-lithium-structure ul { margin:5px 0; padding-left:20px; }
.xrd-lithium-comparison > footer { margin-top:10px; padding-top:9px; border-top:1px solid #dce6df; color:#576e60; font-size:12px; line-height:1.7; }
@media(max-width:1200px) { .xrd-lithium-phase-columns { grid-template-columns:minmax(0,1fr); } }
@media print { .xrd-lithium-comparison { break-inside:avoid; box-shadow:none; } .xrd-lithium-coordinate-link a { color:inherit; text-decoration:none; } }

.xrd-chart-phase-key { min-width:0; padding:10px 12px; border:1px solid #dbe3df; border-radius:8px; background:#fff; }
.xrd-chart-phase-key > h3 { margin:0 0 8px; color:#294637; font-size:15px; line-height:1.5; }
.xrd-chart-phase-key > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:12px; }
.xrd-chart-phase-side { min-width:0; padding-left:10px; border-left:3px solid; }
.xrd-chart-phase-side.reference { border-color:#2563eb; }
.xrd-chart-phase-side.current { border-color:#c65b12; }
.xrd-chart-phase-side h4 { margin:0 0 5px; font-size:13px; line-height:1.5; }
.xrd-chart-phase-side.reference h4 { color:#1c4fa7; }
.xrd-chart-phase-side.current h4 { color:#9b460c; }
.xrd-chart-phase-side ul { margin:0; padding:0; list-style:none; }
.xrd-chart-phase-side li { display:grid; gap:3px; margin:7px 0; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.xrd-chart-phase-side li > strong { color:#294637; }
.xrd-chart-phase-side li > span { color:#53685b; font-size:13px; }
.xrd-chart-phase-side small { display:block; font-size:13px; font-variant-numeric:tabular-nums; }
@media print { .xrd-chart-phase-side { break-inside:avoid; } }

/* Release 547 · XRD instrument-result-first layout */
.xrd-instrument-rule-note{display:grid;gap:4px;padding:11px 12px;border:1px solid #cfe1d7;border-radius:12px;background:#f2f8f4;color:#345847}
.xrd-instrument-rule-note strong{font-size:12px;letter-spacing:.08em}.xrd-instrument-rule-note span{font-size:11px;line-height:1.55;color:#60766b}
.xrd-detection-result,.xrd-instrument-comparison{margin-top:12px;border:1px solid #ceddd5;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(27,63,47,.06);overflow:hidden}
.xrd-detection-result>header,.xrd-instrument-comparison>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;background:linear-gradient(135deg,#eaf5ef,#f8fbf9);border-bottom:1px solid #dce8e1}
.xrd-detection-result>header>div,.xrd-instrument-comparison>header>div{display:grid;gap:3px}.xrd-detection-result>header span,.xrd-instrument-comparison>header span{font-size:11px;font-weight:750;letter-spacing:.12em;color:#327057}.xrd-detection-result>header strong,.xrd-instrument-comparison>header strong{font-size:18px;color:#173f31}.xrd-detection-result>header em{padding:6px 10px;border-radius:999px;background:#fff;color:#376451;font-style:normal;font-weight:700}
.xrd-detection-phase-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:8px 18px}.xrd-detection-phase-list article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;border-bottom:1px solid #edf1ef}.xrd-detection-phase-list article>b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#e6f2eb;color:#2c6b51;font-size:12px}.xrd-detection-phase-list article>span{display:grid;gap:2px}.xrd-detection-phase-list article>span strong{font-size:14px;color:#203d32}.xrd-detection-phase-list article>span small{font-size:11px;color:#77857f}.xrd-detection-phase-list article>em{font-style:normal;font-weight:780;font-size:16px;color:#be6b17}
.xrd-detection-result>footer,.xrd-instrument-comparison>footer{padding:10px 18px;background:#fafcfb;color:#64766e;font-size:11px;line-height:1.6}
.xrd-detection-result.missing,.xrd-instrument-comparison.missing{padding:16px 18px;border-color:#e7d8b5;background:#fffaf0}.xrd-detection-result.missing>header,.xrd-instrument-comparison.missing>header{padding:0 0 8px;background:none;border:0}.xrd-detection-result.missing p,.xrd-instrument-comparison.missing p{margin:0;color:#7d6641;line-height:1.6}.xrd-detection-result.missing code{font-weight:700;color:#9b5a17}
.xrd-instrument-comparison-table{overflow:auto}.xrd-instrument-comparison table{width:100%;border-collapse:collapse;min-width:620px}.xrd-instrument-comparison th,.xrd-instrument-comparison td{padding:11px 14px;text-align:left;border-bottom:1px solid #edf1ef;font-size:12px}.xrd-instrument-comparison th{background:#fafcfb;color:#61736b;font-size:11px}.xrd-instrument-comparison td:first-child strong,.xrd-instrument-comparison td:first-child small{display:block}.xrd-instrument-comparison td:first-child small{margin-top:2px;color:#83918b}.xrd-change{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf5f0;color:#36644f;font-weight:700}.xrd-change.new{background:#eaf2ff;color:#2c5c9a}.xrd-change.lost{background:#fff1ea;color:#a6572b}
.xrd-chart-card{order:3}.xrd-detection-result{order:1}.xrd-instrument-comparison{order:2}.xrd-result-panel{display:flex;flex-direction:column}.xrd-result-panel>*{flex-shrink:0}.xrd-result-heading,.xrd-result-actions,.xrd-safety-notice,.xrd-metric-row,.xrd-archive-summary{order:0}
@media(max-width:900px){.xrd-detection-phase-list{grid-template-columns:1fr}.xrd-detection-result>header,.xrd-instrument-comparison>header{align-items:flex-start}.xrd-detection-result>header strong,.xrd-instrument-comparison>header strong{font-size:16px}}
@media print{.xrd-instrument-rule-note{display:none}.xrd-detection-result,.xrd-instrument-comparison{box-shadow:none;break-inside:avoid}.xrd-detection-phase-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Release 550：食堂报餐管理独立电脑端与精简登录窗口。 */
body.is-canteen-portal{background:#edf1eb;}
body.is-canteen-portal:not(.is-login-screen){overflow:hidden;}
.canteen-portal-login{min-height:100dvh;background:radial-gradient(circle at 18% 14%,rgba(255,255,255,.96),transparent 34%),radial-gradient(circle at 86% 82%,rgba(178,151,101,.16),transparent 30%),#e7eee6;}
.canteen-login-card{position:relative;overflow:hidden;width:min(360px,calc(100vw - 32px));padding:26px 26px 22px;border:1px solid rgba(186,203,189,.9);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 28px 72px rgba(39,66,48,.16),0 6px 18px rgba(39,66,48,.08),inset 0 1px 0 rgba(255,255,255,.9);backdrop-filter:blur(16px);}
.canteen-login-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#315b43,#75906f 62%,#b49765);}.canteen-login-card>header{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:13px;padding:3px 0 17px;border-bottom:1px solid #e1e8e1;}
.canteen-login-card .canteen-login-trademark,.canteen-login-card>header>img{width:54px!important;height:54px!important;object-fit:contain;}
.canteen-login-card>header span{display:block;color:#6d786f;font-size:10px;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.canteen-login-card>header h1{margin:5px 0 0;color:#274936;font-size:24px;font-weight:820;line-height:1.12;letter-spacing:-.03em;white-space:nowrap;}

.canteen-login-card>form{display:grid;gap:15px;margin-top:20px;}
.canteen-login-card>form label{display:grid;gap:6px;}
.canteen-login-card>form label>span{color:#526057;font-size:12px;font-weight:760;letter-spacing:.01em;}
.canteen-login-card .login-input{display:flex;align-items:center;min-height:46px;padding:0 12px;border:1px solid #c8d3ca;border-radius:10px;background:#fff;box-shadow:inset 0 1px 2px rgba(37,66,47,.035);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.canteen-login-card .login-input:focus-within{border-color:#4f7c61;box-shadow:0 0 0 3px rgba(79,124,97,.12),inset 0 1px 2px rgba(37,66,47,.035);}
.canteen-login-card .login-input input{width:100%;height:44px;border:0;outline:0;background:transparent;color:#2d3d33;font-size:14px;font-weight:550;}
.canteen-login-card .primary-button{width:100%;min-height:46px;justify-content:center;border-radius:10px;background:linear-gradient(135deg,#315b43,#557b5f);box-shadow:0 9px 20px rgba(49,91,67,.18);font-weight:800;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;}.canteen-login-card .primary-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(49,91,67,.22);filter:saturate(1.04);}.canteen-login-card .primary-button:active{transform:translateY(1px);box-shadow:0 5px 12px rgba(49,91,67,.16);}.canteen-login-card .primary-button:focus-visible,.canteen-login-card>footer a:focus-visible{outline:3px solid rgba(79,124,97,.24);outline-offset:3px;}
.canteen-login-card>footer{display:flex;align-items:center;justify-content:center;margin-top:14px;color:#718077;font-size:11px;}

.canteen-login-card>footer a{color:#496555;font-weight:760;text-decoration:none;text-underline-offset:3px;transition:color .2s ease;}.canteen-login-card>footer a:hover{color:#274936;text-decoration:underline;}
.canteen-login-loading{display:grid;place-items:center;gap:12px;min-height:124px;color:#45634f;font-size:12px;}
.canteen-portal-shell{display:grid;grid-template-rows:68px minmax(0,1fr);height:100dvh;min-width:0;color:#342f27;background:#edf1eb;}
.canteen-portal-header{z-index:60;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 18px;border-bottom:1px solid #cbd6cc;background:rgba(255,255,255,.96);box-shadow:0 7px 22px rgba(46,72,55,.08);}
.canteen-portal-brand,.canteen-portal-user{display:flex;align-items:center;min-width:0;gap:10px;}
.canteen-portal-trademark{width:44px!important;height:44px!important;object-fit:contain;}
.canteen-portal-brand>div{display:grid;gap:1px;min-width:0;}
.canteen-portal-brand small{color:#748078;font-size:9px;font-weight:750;white-space:nowrap;}
.canteen-portal-brand h1{margin:0;color:#2e503b;font-size:20px;line-height:1.2;white-space:nowrap;}
.canteen-portal-brand>span{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:5px 9px;border:1px solid #c7d9ca;border-radius:999px;color:#3f6a4d;background:#edf7ef;font-size:9px;font-weight:850;white-space:nowrap;}
.canteen-portal-user{justify-content:flex-end;}
.canteen-portal-user>span,.canteen-portal-user>a,.canteen-portal-user>button{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:7px 10px;border:1px solid #d5ddd6;border-radius:9px;color:#536159;background:#fff;font:750 10px/1.2 inherit;text-decoration:none;white-space:nowrap;}
.canteen-portal-user>button{cursor:pointer;}
.canteen-portal-user>button:last-child{color:#8a463f;border-color:#e2cbc7;background:#fff8f6;}
.canteen-portal-main{position:relative;min-width:0;min-height:0;overflow:hidden;padding:10px 12px 22px;}
.canteen-portal-backdrop{position:relative!important;inset:auto!important;width:100%;height:100%;padding:0!important;overflow:hidden!important;background:transparent!important;z-index:1!important;}
.canteen-portal-backdrop>.canteen-meal-modal{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;border-radius:16px!important;}
body.is-canteen-portal .canteen-portal-main .canteen-portal-backdrop>.data-modal.canteen-meal-modal.workspace-bound-form-modal{position:relative!important;left:0!important;right:auto!important;top:0!important;bottom:auto!important;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;transform:none!important;margin:0!important;}
.canteen-portal-backdrop .canteen-meal-workbench{height:calc(100% - 70px);padding:12px 14px 18px;}
.canteen-portal-backdrop .canteen-meal-modal>.modal-header{min-height:70px;padding:10px 16px;}
.canteen-portal-state{display:grid;place-items:center;align-content:center;gap:10px;width:min(520px,calc(100% - 32px));min-height:260px;margin:8vh auto 0;padding:28px;border:1px solid #cfdbd0;border-radius:18px;background:#fff;box-shadow:0 18px 48px rgba(47,72,55,.12);text-align:center;}
.canteen-portal-state h2,.canteen-portal-state p{margin:0;}.canteen-portal-state h2{color:#31543e;font-size:19px;}.canteen-portal-state p{color:#738078;font-size:12px;line-height:1.7;}.canteen-portal-state a{color:#315f45;font-weight:800;}.canteen-portal-state.is-error{border-color:#e0c6c1;color:#99483e;background:#fff9f7;}
@media(max-width:900px){.canteen-portal-header{padding-inline:10px}.canteen-portal-brand>span{display:none}.canteen-portal-user>span{display:none}.canteen-portal-main{padding:7px 7px 19px}.canteen-portal-user>a,.canteen-portal-user>button{padding:6px 8px}.canteen-portal-backdrop>.canteen-meal-modal{border-radius:12px!important;}}
@media(max-height:650px){.canteen-portal-shell{grid-template-rows:58px minmax(0,1fr)}.canteen-portal-header{padding-block:5px}.canteen-portal-trademark{width:38px!important;height:38px!important}.canteen-portal-brand h1{font-size:17px}.canteen-portal-backdrop .canteen-meal-modal>.modal-header{min-height:60px}.canteen-portal-backdrop .canteen-meal-workbench{height:calc(100% - 60px)}}
/* Haohai release: 20260908-daily-production-records-release-551 */
.production-record-modal{width:min(1500px,calc(100vw - 32px));height:min(920px,calc(100vh - 32px));max-width:none;max-height:none;overflow:hidden;display:flex;flex-direction:column}
.production-record-modal>.modal-header{flex:0 0 auto}.production-record-modal-scroll{min-height:0;overflow:auto;padding:14px 16px 20px;overscroll-behavior:contain}
.production-record-workbench{display:grid;gap:14px;min-width:0;color:#24362b}
.production-record-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid #d8e3da;border-radius:14px;background:linear-gradient(135deg,#f7faf7,#edf4ee)}
.production-record-hero small{display:block;color:#6b7d70;font-size:11px;font-weight:750}.production-record-hero h2{margin:2px 0 0;font-size:22px;line-height:1.2}.production-record-live{display:flex;align-items:center;gap:7px;color:#3f6c51;font-size:12px;font-weight:750;white-space:nowrap}
.production-record-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.production-record-tabs button{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 13px;border:1px solid #d9e0da;border-radius:12px;background:#fff;color:#425247;text-align:left;cursor:pointer}.production-record-tabs button>svg{flex:0 0 auto}.production-record-tabs button span{min-width:0}.production-record-tabs button strong,.production-record-tabs button small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.production-record-tabs button strong{font-size:14px}.production-record-tabs button small{margin-top:3px;color:#7c887f;font-size:10px}.production-record-tabs button.active{border-color:#4e7b5e;background:#edf6ef;color:#244d35;box-shadow:0 7px 18px rgba(53,92,66,.11)}
.production-record-form-panel,.production-record-ledger{min-width:0;padding:14px;border:1px solid #dde5de;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(46,68,54,.06)}
.production-daily-record-form{display:grid;gap:12px}.production-record-common{grid-template-columns:repeat(4,minmax(150px,1fr))}.production-record-process-head{grid-template-columns:repeat(3,minmax(180px,1fr))}.production-record-footer-fields{grid-template-columns:1fr}.production-record-footer-fields textarea{resize:vertical;min-height:54px}
.production-record-table-scroll{width:100%;max-height:430px;overflow:auto;border:1px solid #d9e1da;border-radius:10px;background:#fff;overscroll-behavior:contain}.production-record-table-scroll.is-hourly{max-height:480px}
.production-record-entry-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.production-record-entry-table th,.production-record-entry-table td{height:38px;padding:4px 5px;border-right:1px solid #dfe5df;border-bottom:1px solid #dfe5df;vertical-align:middle}.production-record-entry-table th{position:sticky;top:0;z-index:3;background:#edf3ee;color:#354b3b;font-weight:800;white-space:nowrap}.production-record-entry-table thead tr:nth-child(2) th{top:38px}.production-record-entry-table td:first-child,.production-record-entry-table th:first-child{position:sticky;left:0;z-index:2;background:#f7faf7;text-align:center;white-space:nowrap}.production-record-entry-table thead th:first-child{z-index:5}.production-record-entry-table input,.production-record-entry-table select{width:100%;min-width:104px;height:30px;padding:4px 7px;border:1px solid #cfd8d1;border-radius:6px;background:#fff;font:inherit}.production-record-entry-table [data-field="phenomenon"],.production-record-entry-table [data-field="remark"]{min-width:220px}.hourly-process-table input,.hourly-process-table select{min-width:88px}.hourly-process-table th[colspan]{text-align:center}
.production-record-actions{position:sticky;bottom:-1px;z-index:6;margin-top:0;padding:10px 0 0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 22%)}.production-record-ledger .table-actions{display:flex;flex-wrap:wrap;gap:5px}.production-record-ledger .table-actions button{border:1px solid #cfd9d1;border-radius:6px;background:#fff;padding:5px 8px;font-size:11px;cursor:pointer}.production-record-ledger .table-actions .danger-text{color:#9a3e3e;border-color:#e7c7c7}
.production-record-portal-trademark{width:44px!important;height:44px!important;object-fit:contain}.production-record-portal-main{padding:14px 18px 42px}.production-record-portal-shell .production-record-workbench{width:min(1540px,100%);margin:0 auto}.production-record-login-card:before{background:linear-gradient(90deg,#2e5f43,#6c8d73 62%,#b68b4e)!important}
body.is-production-record-portal .canteen-portal-main{overflow:auto;min-height:0}body.is-production-record-portal .confidential-access-mark{z-index:20}
@media(max-width:980px){.production-record-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.production-record-common,.production-record-process-head{grid-template-columns:repeat(2,minmax(0,1fr))}.production-record-modal{width:calc(100vw - 16px);height:calc(100vh - 16px)}.production-record-portal-main{padding:10px 10px 42px}}
@media(max-width:640px){.production-record-tabs,.production-record-common,.production-record-process-head{grid-template-columns:1fr}.production-record-hero{align-items:flex-start}.production-record-live{white-space:normal}.production-record-tabs button small{display:none}}
@media print{.production-record-tabs,.production-record-actions,.production-record-ledger .table-actions,.canteen-portal-header{display:none!important}.production-record-table-scroll{max-height:none!important;overflow:visible!important}.production-record-form-panel,.production-record-ledger{box-shadow:none;border-color:#777}}
/* Haohai release: 20260908-production-record-input-visibility-release-552 */
.production-record-common,.production-record-process-head,.production-record-footer-fields{display:grid}
.production-daily-record-form :is(.production-record-common,.production-record-process-head,.production-record-footer-fields)>label{display:grid;align-content:start;gap:6px;min-width:0;color:#53655a;font-size:12px}
.production-daily-record-form :is(.production-record-common,.production-record-process-head,.production-record-footer-fields)>label>span{display:block;color:#334b3c;font-size:12px;font-weight:800;line-height:1.35}
.production-daily-record-form .production-record-common>label>:is(input,select),.production-daily-record-form .production-record-process-head>label>:is(input,select),.production-daily-record-form .production-record-footer-fields>label>textarea{display:block;width:100%;min-width:0;min-height:40px;box-sizing:border-box;padding:8px 10px;border:1px solid #bfcfc3;border-radius:8px;background:#fff;color:#17261d;font:inherit;opacity:1}
.production-daily-record-form :is(.production-record-common,.production-record-process-head,.production-record-footer-fields)>label>:is(input,select,textarea):focus{outline:0;border-color:#397358;box-shadow:0 0 0 3px rgba(57,115,88,.13)}
.production-daily-record-form .production-record-entry-table :is(input,select){box-sizing:border-box;border-color:#afc2b4;background:#fff;color:#17261d;box-shadow:inset 0 1px 2px rgba(35,62,45,.04)}

/* Haohai release: 20260908-clean-standalone-login-release-554 */
/* 十二级浸出反应器逐设备记录 */
.leaching-process-board{position:relative;display:grid;gap:12px;padding:14px;border:1px solid #cbd9cf;border-radius:14px;background:#f4f7f4;overflow:hidden}
.leaching-process-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#294536}.leaching-process-heading>div{display:grid;gap:2px}.leaching-process-heading strong{font-size:15px}.leaching-process-heading span{color:#69796f;font-size:11px}.leaching-process-heading>span{padding:6px 9px;border:1px solid #c8d7cc;border-radius:8px;background:#fff;color:#3c5b48;font-weight:800;white-space:nowrap}.leaching-process-heading b{color:#256344;font-size:14px}.leaching-process-heading.is-flash-heading{margin-top:4px;padding-top:12px;border-top:1px solid #d5dfd7}
.leaching-reactor-grid{display:grid;grid-template-columns:repeat(6,minmax(132px,1fr));gap:8px}.leaching-flash-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:8px}.leaching-condenser-grid{display:grid;grid-template-columns:minmax(200px,280px);gap:8px}.production-equipment-grid{display:grid;gap:10px}.production-equipment-grid.is-five{grid-template-columns:repeat(5,minmax(140px,1fr))}.production-equipment-grid.is-three{grid-template-columns:repeat(3,minmax(180px,1fr));max-width:820px}
.leaching-equipment-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) 18px;align-items:center;gap:8px;min-height:88px;padding:10px;border:1px solid #cfdad2;border-radius:12px;background:#fff;color:#294236;text-align:left;cursor:pointer;box-shadow:0 4px 12px rgba(39,70,51,.045);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.leaching-equipment-card:hover{border-color:#6e9479;box-shadow:0 8px 18px rgba(39,82,55,.1);transform:translateY(-1px)}.leaching-equipment-card:active{transform:translateY(0) scale(.985)}.leaching-equipment-card:focus-visible{outline:3px solid rgba(48,112,75,.2);outline-offset:2px}.leaching-equipment-card.is-progress{border-color:#c79a50;background:#fffdf7}.leaching-equipment-card.is-complete{border-color:#55906d;background:#f3faf5}
.leaching-equipment-copy{display:grid;gap:4px;min-width:0}.leaching-equipment-copy strong{font-size:13px;white-space:nowrap}.leaching-equipment-copy small{color:#77837b;font-size:10px;font-weight:700}.leaching-equipment-card.is-progress small{color:#9a6926}.leaching-equipment-card.is-complete small{color:#2f704a}.leaching-equipment-open{display:grid;place-items:center;color:#839087}
.leaching-equipment-visual{position:relative;display:block;width:52px;height:60px;border:2px solid #557565;border-top-width:5px;border-radius:9px 9px 17px 17px;background:#f7faf8;overflow:hidden;box-shadow:inset 0 0 0 3px rgba(255,255,255,.7)}.leaching-equipment-visual:before{content:"";position:absolute;left:14px;top:-7px;width:20px;height:8px;border:2px solid #557565;border-bottom:0;border-radius:4px 4px 0 0;background:#f7faf8}.leaching-equipment-visual:after{content:"";position:absolute;left:8px;right:8px;bottom:-5px;height:8px;border-radius:50%;background:#416451;opacity:.18}.leaching-equipment-visual.is-flash{height:55px;border-radius:16px 16px 22px 22px;border-color:#627d73}.leaching-vessel-liquid{position:absolute;left:3px;right:3px;bottom:3px;height:25px;border-radius:2px 2px 12px 12px;background:linear-gradient(180deg,rgba(73,144,101,.2),rgba(57,120,81,.42));transform-origin:bottom}.leaching-agitator-shaft{position:absolute;left:24px;top:7px;width:2px;height:30px;background:#405e4f}.leaching-agitator-blade{position:absolute;left:14px;top:31px;width:22px;height:3px;border-radius:3px;background:#405e4f;transform-origin:center}
.leaching-equipment-editor-backdrop[hidden]{display:none!important}.leaching-equipment-editor-backdrop{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:18px;background:rgba(21,36,27,.42);backdrop-filter:blur(3px)}.leaching-equipment-editor{display:grid;gap:14px;width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:16px;border:1px solid #c7d6cb;border-radius:16px;background:#f8faf8;box-shadow:0 24px 70px rgba(25,46,32,.24);overflow:auto}.leaching-equipment-editor>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:11px;border-bottom:1px solid #d7e0d9}.leaching-editor-title{display:flex;align-items:center;gap:11px}.leaching-editor-title .leaching-equipment-visual{width:42px;height:48px}.leaching-editor-title small{display:block;color:#78867c;font-size:10px;font-weight:750}.leaching-editor-title h3{margin:2px 0 0;color:#294436;font-size:19px;line-height:1.2}.leaching-equipment-editor>footer{display:flex;justify-content:flex-end;gap:8px;padding-top:11px;border-top:1px solid #d7e0d9}
.leaching-equipment-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.leaching-process-field,.leaching-equipment-notes label{display:grid;gap:6px;min-width:0;color:#344f40;font-size:11px;font-weight:800}.leaching-number-control{display:grid;grid-template-columns:38px minmax(0,1fr) 38px 46px;align-items:center;min-height:42px;border:1px solid #b9cbbf;border-radius:10px;background:#fff;overflow:hidden}.leaching-number-control button{height:40px;border:0;background:#edf4ef;color:#315f44;font-size:20px;font-weight:800;cursor:pointer}.leaching-number-control button:hover{background:#dfece3}.leaching-number-control input{width:100%;height:40px;padding:7px 9px;border:0;border-inline:1px solid #d5dfd8;background:#fff;color:#17271e;font:800 15px/1.2 "Microsoft YaHei UI","Microsoft YaHei",sans-serif;text-align:center}.leaching-number-control input:focus{outline:2px solid rgba(44,112,73,.22);outline-offset:-2px}.leaching-number-control em{color:#718078;font-size:10px;font-style:normal;text-align:center}.leaching-time-control{display:grid;grid-template-columns:minmax(0,1fr) 82px;min-height:42px;border:1px solid #b9cbbf;border-radius:10px;background:#fff;overflow:hidden}.leaching-time-control input{width:100%;height:40px;padding:7px 10px;border:0;background:#fff;color:#17271e;font:800 15px/1.2 "Microsoft YaHei UI","Microsoft YaHei",sans-serif;text-align:center}.leaching-time-control button{border:0;border-left:1px solid #d5dfd8;background:#edf4ef;color:#315f44;font:800 10px/1.2 inherit;cursor:pointer}.leaching-time-control button:hover{background:#dfece3}
.leaching-equipment-notes{display:grid;grid-template-columns:1.5fr .65fr 1.5fr;gap:10px}.leaching-equipment-notes :is(textarea,select){width:100%;min-height:42px;padding:8px 10px;border:1px solid #b9cbbf;border-radius:9px;background:#fff;color:#17271e;font:inherit;resize:vertical}.leaching-equipment-notes textarea{min-height:66px}.leaching-shift-fields{grid-template-columns:repeat(3,minmax(170px,1fr))!important}
body.has-leaching-equipment-editor{overflow:hidden}
@media(prefers-reduced-motion:no-preference){.leaching-agitator-blade{animation:leaching-agitator-spin 1.35s linear infinite}.leaching-vessel-liquid{animation:leaching-liquid-pulse 2.4s ease-in-out infinite}@keyframes leaching-agitator-spin{to{transform:rotate(360deg)}}@keyframes leaching-liquid-pulse{50%{transform:scaleY(.9);opacity:.82}}}
@media(max-width:1180px){.leaching-reactor-grid{grid-template-columns:repeat(4,minmax(132px,1fr))}}
@media(max-width:820px){.leaching-reactor-grid{grid-template-columns:repeat(3,minmax(125px,1fr))}.leaching-shift-fields{grid-template-columns:1fr!important}.leaching-equipment-field-grid,.leaching-equipment-notes{grid-template-columns:1fr 1fr}.leaching-equipment-notes label:last-child{grid-column:1/-1}}
@media(max-width:600px){.leaching-process-board{padding:10px}.leaching-reactor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.leaching-flash-grid{grid-template-columns:1fr 1fr}.leaching-equipment-card{grid-template-columns:44px minmax(0,1fr);min-height:76px;padding:8px}.leaching-equipment-open{display:none}.leaching-equipment-visual{width:40px;height:48px}.leaching-agitator-shaft{left:18px;height:24px}.leaching-agitator-blade{left:9px;top:27px}.leaching-equipment-field-grid,.leaching-equipment-notes{grid-template-columns:1fr}.leaching-equipment-notes label:last-child{grid-column:auto}.leaching-equipment-editor-backdrop{padding:7px}.leaching-equipment-editor{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);padding:12px;border-radius:12px}.leaching-equipment-editor>footer{display:grid;grid-template-columns:1fr 1fr}.leaching-equipment-editor>footer button{width:100%;white-space:nowrap}}
/* Haohai release: 20260908-blending-flow-layout-polish-release-564 */

/* Release 563 · 配料设备流程工作台 */
.production-daily-record-form[data-record-type="配料记录"] .production-record-common{grid-template-columns:repeat(3,minmax(180px,1fr))}
.blending-process-board{position:relative;display:grid;gap:7px;padding:13px 16px 16px;border:1px solid #cbd9cf;border-radius:14px;background:radial-gradient(circle at 94% 8%,rgba(188,211,195,.2),transparent 32%),linear-gradient(150deg,#f9fbf9,#eff5f0);overflow:hidden}
.blending-process-board>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:9px;border-bottom:1px solid #d5e0d7}.blending-process-board>header>div{display:grid;gap:2px}.blending-process-board>header strong{color:#274737;font-size:15px}.blending-process-board>header span{color:#718077;font-size:11px}.blending-process-board>header>b{padding:6px 9px;border:1px solid #cbd8ce;border-radius:8px;background:#fff;color:#486151;font-size:11px;white-space:nowrap}
.blending-stage-label{display:flex;align-items:center;justify-content:center;gap:7px;color:#365744}.blending-stage-label b{display:grid;place-items:center;width:24px;height:20px;border-radius:6px;background:#315f46;color:#fff;font-size:10px;font-variant-numeric:tabular-nums}.blending-stage-label span{font-size:11px;font-weight:850;letter-spacing:.04em}
.blending-flow-row{display:grid;gap:8px;margin-inline:auto}.blending-flow-row.is-bins{grid-template-columns:repeat(3,minmax(150px,200px));width:min(100%,620px)}.blending-flow-row.is-feed{grid-template-columns:minmax(210px,280px)}
.blending-flow-arrow{display:flex;align-items:center;justify-content:center;gap:6px;color:#577563;font-weight:850;text-align:center;pointer-events:none}.blending-flow-arrow span{font-size:15px;line-height:1}.blending-flow-arrow small{font-size:9px;letter-spacing:.08em}
.blending-parallel-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;width:min(100%,980px);margin-inline:auto}
.blending-production-train{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:stretch;gap:8px;padding:20px 9px 9px;border:1px solid #d4dfd7;border-radius:13px;background:rgba(255,255,255,.58)}.blending-train-title{position:absolute;left:10px;top:6px;display:flex;align-items:center;gap:5px;color:#536a5b}.blending-train-title b{color:#2f694b;font-size:9px;font-variant-numeric:tabular-nums}.blending-train-title span{font-size:10px;font-weight:850}.blending-train-link{display:grid;place-items:center;align-content:center;gap:2px;color:#557461;pointer-events:none}.blending-train-link span{font-size:18px;line-height:1}.blending-train-link small{font-size:9px;font-weight:800}
.blending-equipment-unit{min-width:0;overflow:hidden;border:1px solid #c8d5cc;border-radius:12px;background:#fff;--vessel-tone:#697d73;--vessel-liquid:#e2e9e5;transition:border-color .18s,background .18s,box-shadow .18s}.blending-equipment-unit.is-used{border-color:#bd985b;background:#fffaf0;--vessel-tone:#906829;--vessel-liquid:#f3e1bd}.blending-equipment-unit.is-running{border-color:#32805a;background:#e9f6ef;--vessel-tone:#22633f;--vessel-liquid:#a9ddbf;box-shadow:0 8px 18px rgba(39,101,66,.12)}
.blending-equipment-card{display:grid;grid-template-columns:54px minmax(0,1fr) 16px;align-items:center;gap:7px;width:100%;min-height:80px;padding:7px 9px;border:0;background:transparent;color:#263f32;text-align:left;cursor:pointer;transition:background .2s ease,transform .2s ease}.blending-equipment-card:hover{background:rgba(41,100,64,.05);transform:translateY(-1px)}.blending-equipment-card:active{transform:translateY(1px)}.blending-equipment-card:focus-visible{outline:3px solid rgba(48,112,75,.24);outline-offset:-3px}.blending-equipment-card>span{display:grid;gap:3px;min-width:0}.blending-equipment-card strong{font-size:13px;white-space:nowrap}.blending-equipment-card small{color:#6b7a71;font-size:10px;font-weight:700}.blending-equipment-card.is-complete small{color:#267049}.blending-equipment-card>svg:last-child{color:#809087}
.blending-device-svg{display:block;width:54px;height:68px;color:var(--vessel-tone);overflow:visible}.blending-device-svg :is(path,rect){fill:#fff;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.blending-device-svg .bin-fill{fill:var(--vessel-liquid);stroke:none}.blending-device-svg.is-scale rect:first-of-type{fill:#f7faf8}.blending-equipment-card .leaching-vessel-svg{width:58px;height:74px}
.blending-equipment-editor .blending-device-svg{width:44px;height:55px}.blending-equipment-editor .leaching-vessel-svg{width:44px;height:56px}.blending-equipment-editor .leaching-process-field.is-wide{grid-column:1/-1}.blending-equipment-editor :is(textarea,select){width:100%;min-width:0;padding:8px 10px;border:1px solid #b9cbbf;border-radius:9px;background:#fff;color:#17271e;font:inherit;resize:vertical}.blending-equipment-editor select{min-height:42px}
.blending-editor-section{display:grid;gap:9px;padding:11px;border:1px solid #d3dfd6;border-radius:11px;background:#fff}.blending-editor-section>strong{color:#31503f;font-size:12px}.leaching-number-control.is-readonly{grid-template-columns:minmax(0,1fr) 46px;background:#edf3ef}.leaching-number-control.is-readonly input{background:#edf3ef;border:0;color:#315542}
.blending-feed-table{overflow:auto;border:1px solid #d4dfd7;border-radius:10px;background:#fff}.blending-feed-point-head,.blending-feed-point-row{display:grid;grid-template-columns:42px 126px 142px 142px 112px minmax(170px,1fr) 38px;align-items:center;gap:6px;min-width:810px;padding:6px}.blending-feed-point-head{background:#edf4ef;color:#42594b;font-size:10px;font-weight:850;text-align:center}.blending-feed-point-row{border-top:1px solid #e0e7e2}.blending-feed-point-row>span{text-align:center;font-weight:850}.blending-feed-point-row>select,.blending-feed-point-row>input{width:100%;min-width:0;height:34px;padding:5px 7px;border:1px solid #b8cabe;border-radius:7px;background:#fff;color:#17271e}
.blending-legacy-records{border:1px solid #e0d8c6;border-radius:10px;background:#fffcf5}.blending-legacy-records>summary{padding:9px 12px;color:#7b6337;font-size:11px;font-weight:800;cursor:pointer}
@media(prefers-reduced-motion:no-preference){.blending-equipment-unit.is-running .leaching-impeller,[data-blending-equipment-editor].is-running:not([hidden]) .leaching-impeller{animation:leaching-stirred-shaft 1.1s linear infinite}}
@media(max-width:920px){.blending-parallel-flow{grid-template-columns:1fr;width:min(100%,560px)}.blending-flow-row.is-bins{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:820px){.production-daily-record-form[data-record-type="配料记录"] .production-record-common{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.production-daily-record-form[data-record-type="配料记录"] .production-record-common{grid-template-columns:1fr}.blending-process-board{padding:10px}.blending-process-board>header{align-items:flex-start;flex-direction:column}.blending-flow-row.is-bins{grid-template-columns:1fr}.blending-production-train{grid-template-columns:1fr;padding-top:24px}.blending-train-link{grid-auto-flow:column;justify-content:center}.blending-train-link span{transform:rotate(90deg)}.blending-equipment-card{grid-template-columns:50px minmax(0,1fr) 16px;min-height:74px}.blending-flow-row.is-bins,.blending-flow-row.is-feed,.blending-parallel-flow{width:100%}.blending-equipment-editor .leaching-equipment-field-grid{grid-template-columns:1fr}.blending-equipment-editor .leaching-process-field.is-wide{grid-column:auto}}
.production-daily-record-form[data-record-type="配料记录"] .production-record-actions,
.production-daily-record-form[data-record-type="浸出反应记录"] .production-record-actions,
.production-daily-record-form[data-record-type="碳化反应记录"] .production-record-actions,
.production-daily-record-form[data-record-type="热解反应记录"] .production-record-actions{position:relative;bottom:auto;padding-top:2px;background:#fff}

/* Haohai release: 20260908-blending-flow-layout-polish-release-564 */
.leaching-shift-fields{grid-template-columns:repeat(2,minmax(180px,1fr))!important}
.leaching-equipment-card.is-active{border-color:#2f7650;background:#e8f4eb;color:#173c29;box-shadow:0 10px 24px rgba(39,101,66,.18),inset 0 0 0 1px rgba(47,118,80,.12);transform:translateY(-1px)}
.leaching-equipment-card.is-active .leaching-equipment-open{color:#276848}
.leaching-equipment-card.is-active .leaching-equipment-copy small{color:#276848}
.leaching-equipment-card.is-active:after{content:"运行中";position:absolute;right:8px;top:7px;color:#276848;font-size:9px;font-weight:850;letter-spacing:.08em}
.leaching-equipment-visual.is-flash .leaching-agitator-shaft{height:27px}
.leaching-agitator-blade.is-secondary{top:25px;width:18px;left:16px;transform:rotate(90deg)}
.leaching-core-section,.leaching-timepoint-section{display:grid;gap:10px;padding:12px;border:1px solid #d4dfd7;border-radius:12px;background:#fff}
.leaching-editor-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#2b4938}
.leaching-editor-section-title>div{display:grid;gap:2px}
.leaching-editor-section-title strong{font-size:13px}
.leaching-editor-section-title span{color:#758279;font-size:10px;font-weight:650}
.leaching-editor-section-title .button.compact{min-height:32px;padding:6px 10px;border-radius:8px;font-size:11px;white-space:nowrap}
.leaching-equipment-editor{width:min(1080px,calc(100vw - 28px));gap:12px}
.leaching-equipment-editor>footer{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}
.leaching-editor-progress{color:#557062;font-size:11px;font-weight:750}
.leaching-timepoint-table-scroll{width:100%;overflow:auto;border:1px solid #d6e0d8;border-radius:10px;background:#fff}
.leaching-timepoint-table{min-width:1320px}
.leaching-timepoint-table.is-flash{min-width:1150px}
.leaching-timepoint-head,.leaching-timepoint-row{display:grid;grid-template-columns:40px 126px 142px 142px 142px 142px minmax(150px,1fr) 110px minmax(150px,1fr) 38px;align-items:center;gap:6px;min-height:43px;padding:5px 7px}
.leaching-timepoint-table.is-flash :is(.leaching-timepoint-head,.leaching-timepoint-row){grid-template-columns:40px 126px 142px 142px 142px minmax(150px,1fr) 110px minmax(150px,1fr) 38px}
.leaching-timepoint-table.is-condenser{min-width:980px}.leaching-timepoint-table.is-condenser :is(.leaching-timepoint-head,.leaching-timepoint-row){grid-template-columns:40px 126px 150px 150px 150px 110px minmax(180px,1fr) 38px}
.leaching-timepoint-table.is-carbonization_reactor{min-width:1320px}.leaching-timepoint-table.is-carbonization_reactor :is(.leaching-timepoint-head,.leaching-timepoint-row){grid-template-columns:40px 126px 150px 142px 142px 132px 160px 110px minmax(170px,1fr) 38px}
.leaching-timepoint-table.is-pyrolysis_reactor{min-width:1160px}.leaching-timepoint-table.is-pyrolysis_reactor :is(.leaching-timepoint-head,.leaching-timepoint-row){grid-template-columns:40px 126px 150px 142px 150px 150px 110px minmax(180px,1fr) 38px}
.leaching-timepoint-head{position:sticky;top:0;z-index:2;min-height:34px;background:#edf4ef;color:#42594b;font-size:10px;font-weight:850;text-align:center}
.leaching-timepoint-row{border-top:1px solid #e0e7e2}
.leaching-timepoint-row:focus-within{background:#f7fbf8}
.leaching-timepoint-index{color:#426050;font-size:12px;font-weight:850;text-align:center;font-variant-numeric:tabular-nums}
.leaching-point-time,.leaching-point-number{display:grid;align-items:center;min-width:0;height:34px;border:1px solid #b8cabe;border-radius:7px;background:#fff;overflow:hidden}
.leaching-point-time{grid-template-columns:minmax(0,1fr) 44px}
.leaching-point-number{grid-template-columns:28px minmax(0,1fr) 28px 34px}
.leaching-point-time input,.leaching-point-number input{width:100%;min-width:0;height:32px;padding:4px 5px;border:0;background:#fff;color:#17271e;font:750 12px/1.2 "Microsoft YaHei UI","Microsoft YaHei",sans-serif;text-align:center;font-variant-numeric:tabular-nums}
.leaching-point-time button,.leaching-point-number button{height:32px;border:0;background:#edf4ef;color:#315f44;font-weight:850;cursor:pointer}
.leaching-point-time button{border-left:1px solid #d5dfd8;font-size:9px}
.leaching-point-number button{font-size:15px}
.leaching-point-number input{border-inline:1px solid #d5dfd8}
.leaching-point-number em{color:#6d7d73;font-size:9px;font-style:normal;text-align:center}
.leaching-timepoint-row>.leaching-point-text,.leaching-timepoint-row>select{width:100%;min-width:0;height:34px;padding:5px 7px;border:1px solid #b8cabe;border-radius:7px;background:#fff;color:#17271e;font:inherit}
.leaching-timepoint-remove{display:grid;place-items:center;width:32px;height:32px;border:1px solid #e4c9c9;border-radius:7px;background:#fff;color:#9b4343;cursor:pointer;transition:background .18s ease,transform .18s ease}
.leaching-timepoint-remove:hover{background:#fff1f1}.leaching-timepoint-remove:active{transform:scale(.96)}
.leaching-timepoint-row :is(input,select,button):focus-visible{outline:2px solid rgba(47,118,80,.28);outline-offset:1px}
.production-daily-record-form :is(label.form-field-help,.form-control-hover-help)::after{display:none!important;content:none!important}
.production-daily-record-form :is(label.form-field-help,.form-control-hover-help){cursor:default!important}
@media(prefers-reduced-motion:no-preference){
  .leaching-agitator-blade,.leaching-vessel-liquid{animation:none}
  .leaching-equipment-card.is-active .leaching-agitator-blade:not(.is-secondary),.leaching-equipment-editor-backdrop:not([hidden]) .leaching-agitator-blade:not(.is-secondary){animation:leaching-agitator-spin 1.2s linear infinite}
  .leaching-equipment-card.is-active .leaching-agitator-blade.is-secondary,.leaching-equipment-editor-backdrop:not([hidden]) .leaching-agitator-blade.is-secondary{animation:leaching-agitator-spin-secondary 1.2s linear infinite}
  .leaching-equipment-card.is-active .leaching-vessel-liquid,.leaching-equipment-editor-backdrop:not([hidden]) .leaching-vessel-liquid{animation:leaching-liquid-pulse 2.2s ease-in-out infinite}
  @keyframes leaching-agitator-spin-secondary{from{transform:rotate(90deg)}to{transform:rotate(450deg)}}
}
@media(max-width:820px){.leaching-shift-fields{grid-template-columns:1fr 1fr!important}.leaching-equipment-editor>footer{grid-template-columns:1fr auto auto}}
@media(max-width:600px){.leaching-shift-fields{grid-template-columns:1fr!important}.leaching-editor-section-title{align-items:flex-start}.leaching-equipment-editor>footer{grid-template-columns:1fr 1fr}.leaching-editor-progress{grid-column:1/-1}.leaching-timepoint-table{min-width:1280px}.leaching-timepoint-table.is-flash{min-width:1110px}}

/* Independent stirred vessels: color represents recorded state, not live telemetry. */
.leaching-equipment-unit{min-width:0;overflow:hidden;border:1px solid #c7d3cc;border-radius:12px;background:#fff;color:#66786e;--vessel-tone:#697d73;--vessel-liquid:#e2e9e5;transition:background .18s,border-color .18s}
.leaching-equipment-unit.is-used{border-color:#bc985a;background:#fffbf2;--vessel-tone:#956b28;--vessel-liquid:#f4e4c4}
.leaching-equipment-unit.is-running{border-color:#32805a;background:#e9f6ef;--vessel-tone:#22633f;--vessel-liquid:#a9ddbf}
.leaching-equipment-unit .leaching-equipment-card{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:2px;width:100%;min-height:0;padding:8px 5px 6px;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;color:#263d30;text-align:center}
.leaching-equipment-unit .leaching-equipment-card:after{content:none}
.leaching-equipment-unit .leaching-equipment-open{display:none}
.leaching-equipment-unit .leaching-equipment-card:hover{background:rgba(38,92,58,.035)}
.leaching-equipment-unit .leaching-equipment-copy{gap:3px}.leaching-equipment-unit .leaching-equipment-copy strong{font-size:14px}.leaching-equipment-unit .leaching-equipment-copy small{color:#52685c;font-size:11px}
.leaching-vessel-svg{display:block;width:88px;height:112px;flex-shrink:0;overflow:visible;color:var(--vessel-tone,#697d73)}
.leaching-vessel-svg .vessel-body{fill:#f9fcfa;stroke:currentColor;stroke-width:2}
.leaching-vessel-svg .vessel-fill{fill:var(--vessel-liquid,#e2e9e5)}
.leaching-vessel-svg :is(.vessel-pipe,.vessel-leg,.vessel-jacket,.vessel-baffle,.vessel-shaft,.vessel-motor-detail){fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.leaching-vessel-svg .vessel-shaft{stroke-width:3}.leaching-vessel-svg .vessel-baffle{opacity:.5}.leaching-vessel-svg .vessel-jacket{opacity:.65}
.leaching-vessel-svg .vessel-motor{fill:currentColor}.leaching-vessel-svg .vessel-motor-detail{stroke:#9bb1a3;stroke-width:1.5}.leaching-vessel-svg .vessel-gauge{fill:#fff;stroke:currentColor;stroke-width:2}
.leaching-vessel-svg .condenser-shell{fill:#f9fcfa;stroke:currentColor;stroke-width:2}.leaching-vessel-svg .condenser-coil{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round}.leaching-vessel-svg .condenser-arrow{fill:currentColor;stroke:none}.leaching-vessel-svg .axial-circulation-pump{color:inherit;transform-box:fill-box;transform-origin:center}.leaching-vessel-svg .axial-circulation-pump circle{fill:#f9fcfa;stroke:currentColor;stroke-width:2}.leaching-vessel-svg .axial-circulation-pump path,.leaching-vessel-svg .circulation-return{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.leaching-impeller{fill:currentColor;transform-box:fill-box;transform-origin:center;animation:none}
.leaching-vessel-svg.is-flash .vessel-body{stroke-width:2.6}
.leaching-agitator-controls,.leaching-editor-agitator{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 8px;border-top:1px solid #d7e1db;color:var(--vessel-tone,#66786e);font-size:11px;font-weight:700}
.leaching-equipment-passive-status{padding:9px 8px;border-top:1px solid #d7e1db;color:#557062;font-size:11px;font-weight:750;text-align:center}.leaching-editor-agitator.is-passive{color:#315c43}
.leaching-agitator-controls button,.leaching-editor-agitator button{min-height:32px;padding:5px 9px;border:1px solid #aac0b2;border-radius:7px;background:#fff;color:#295b3f;font:700 12px "Microsoft YaHei UI",sans-serif;white-space:nowrap;cursor:pointer}
.is-running .leaching-agitator-controls button,.is-running .leaching-editor-agitator button{border-color:#34805a;background:#2e714e;color:#fff}
.leaching-agitator-controls button:focus-visible,.leaching-editor-agitator button:focus-visible{outline:3px solid #91b6a0;outline-offset:2px}
.leaching-editor-agitator{justify-content:flex-start;gap:12px;padding:0 0 8px;border-top:0;border-bottom:1px solid #d7e1db}.leaching-editor-agitator small{font-size:11px;font-weight:400;color:#66786e}
.leaching-editor-title .leaching-vessel-svg{width:48px;height:61px}.leaching-equipment-editor-backdrop.is-running{--vessel-tone:#22633f;--vessel-liquid:#a9ddbf}
.leaching-summary-section{display:grid;gap:10px;padding:12px;border:1px solid #c9d9ce;border-radius:12px;background:#f3f8f4}
.leaching-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.leaching-summary-grid .is-wide{grid-column:1/-1}.leaching-summary-grid :is(select,textarea){width:100%;min-width:0;padding:8px 10px;border:1px solid #b9cbbf;border-radius:9px;background:#fff;color:#17271e;font:inherit;resize:vertical}.leaching-summary-grid select{min-height:42px}.leaching-summary-grid textarea{min-height:62px;line-height:1.6}
.leaching-process-heading{flex-wrap:wrap}.leaching-process-heading>span{white-space:normal}
@media(prefers-reduced-motion:no-preference){.leaching-equipment-unit.is-running .leaching-impeller,.leaching-equipment-editor-backdrop.is-running:not([hidden]) .leaching-impeller{animation:leaching-stirred-shaft 1.1s linear infinite}.is-running .leaching-impeller.is-secondary{animation-delay:-.3s}.leaching-equipment-unit.is-running .axial-circulation-pump,.leaching-equipment-editor-backdrop.is-running:not([hidden]) .axial-circulation-pump{animation:axial-circulation-spin 1s linear infinite}@keyframes leaching-stirred-shaft{0%{transform:scaleX(1)}25%{transform:scaleX(.12)}50%{transform:scaleX(-1)}75%{transform:scaleX(-.12)}100%{transform:scaleX(1)}}@keyframes axial-circulation-spin{to{transform:rotate(360deg)}}}
@media(max-width:1180px){.production-equipment-grid.is-five{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media(max-width:820px){.production-equipment-grid.is-five,.production-equipment-grid.is-three{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
@media(max-width:600px){.leaching-agitator-controls{flex-wrap:wrap;justify-content:center;padding:6px}.leaching-agitator-controls span{font-size:11px}.leaching-equipment-unit .leaching-equipment-copy strong{font-size:13px}.leaching-vessel-svg{width:78px;height:99px}.leaching-editor-agitator{flex-wrap:wrap}.leaching-summary-grid{grid-template-columns:1fr}.leaching-summary-grid .is-wide{grid-column:auto}.leaching-condenser-grid,.production-equipment-grid.is-five,.production-equipment-grid.is-three{grid-template-columns:1fr}.leaching-timepoint-table.is-condenser{min-width:940px}.leaching-timepoint-table.is-carbonization_reactor{min-width:1280px}.leaching-timepoint-table.is-pyrolysis_reactor{min-width:1120px}}

/* Haohai release: 20260908-production-process-equipment-release-565 */

.simple-feature-permission-settings{display:grid;gap:16px;min-width:0}.simple-feature-permission-intro{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #d9e5df;border-radius:16px;background:linear-gradient(135deg,#f7fbf8,#f2f7f5);box-shadow:0 10px 28px rgba(31,73,59,.07)}.simple-feature-permission-intro>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;background:#246a51;flex:0 0 auto}.simple-feature-permission-intro>div{min-width:0;flex:1}.simple-feature-permission-intro h2{margin:0;color:#183b30;font-size:20px;line-height:1.25}.simple-feature-permission-intro p{margin:5px 0 0;color:#61736c;font-size:13px}.simple-feature-permission-intro>em{padding:6px 11px;border-radius:999px;color:#176647;background:#e3f1eb;font-style:normal;font-size:12px;font-weight:700;white-space:nowrap}.simple-feature-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.simple-feature-permission-card{min-width:0;overflow:hidden;border:1px solid #dce6e1;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(25,54,45,.06)}.simple-feature-permission-card>header{display:flex;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid #e5ece8;background:#f8fbf9}.simple-feature-permission-card>header>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#246a51;background:#e7f2ed}.simple-feature-permission-card>header>div{min-width:0;flex:1}.simple-feature-permission-card h3{margin:0;color:#203b32;font-size:17px}.simple-feature-permission-card header p{margin:4px 0 0;color:#6a7a74;font-size:12px;line-height:1.45}.simple-feature-permission-card header em{padding:4px 9px;border-radius:999px;color:#875d0a;background:#fff1c7;font-style:normal;font-size:12px;font-weight:700}.simple-feature-permission-table{min-width:660px}.simple-feature-permission-table th{white-space:nowrap}.simple-feature-permission-table td:first-child strong,.simple-feature-permission-table td:nth-child(2) span{display:block;color:#263b34}.simple-feature-permission-table td small{display:block;margin-top:3px;color:#83918c;font-size:11px}.simple-permission-switch{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#53645e;font-size:12px}.simple-permission-switch input{width:17px;height:17px;accent-color:#247154}.simple-permission-switch input:checked+span{color:#176647;font-weight:700}.simple-feature-permission-card-footer{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid #e5ece8;background:#fbfcfb}.simple-feature-permission-card-footer>span{display:flex;align-items:center;gap:7px;min-width:0;margin-right:auto;color:#687972;font-size:12px}.simple-feature-permission-card-footer>button{flex:0 0 auto;white-space:nowrap}.production-record-readonly-note{display:flex;align-items:center;gap:8px;margin:12px 0;padding:12px 14px;border:1px solid #ead9a8;border-radius:12px;color:#765b13;background:#fff9e8;font-size:13px}
@media(max-width:1180px){.simple-feature-permission-grid{grid-template-columns:1fr}.simple-feature-permission-table{min-width:620px}}
@media(max-width:720px){.simple-feature-permission-intro{align-items:flex-start;flex-wrap:wrap}.simple-feature-permission-intro>div{flex-basis:calc(100% - 60px)}.simple-feature-permission-intro>em{margin-left:56px}.simple-feature-permission-card-footer{align-items:stretch;flex-direction:column}.simple-feature-permission-card-footer>button{width:100%}}

/* Haohai release: 20260911-auxiliary-b-c-confidential-layout-release-573 */
.production-record-query{display:grid;gap:12px}
.production-record-query-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:2px 2px 10px;border-bottom:1px solid #dce5de}.production-record-query-heading>div{display:grid;gap:2px}.production-record-query-heading small{color:#738078;font-size:10px;font-weight:750;letter-spacing:.08em}.production-record-query-heading strong{color:#263e31;font-size:16px}.production-record-query-heading>span{color:#557061;font-size:11px;font-weight:750;white-space:nowrap}
.production-record-query-form{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(140px,.8fr) minmax(130px,.7fr) minmax(220px,1.5fr) auto auto;align-items:end;gap:9px;padding:11px;border:1px solid #d7e2da;border-radius:11px;background:#f6f9f6}.production-record-query-form label{display:grid;gap:5px;min-width:0}.production-record-query-form label>span{color:#4c6254;font-size:11px;font-weight:800}.production-record-query-form :is(input,select){width:100%;min-width:0;height:38px;box-sizing:border-box;border:1px solid #bfd0c3;border-radius:8px;background:#fff;color:#20342a;padding:7px 9px;font:inherit}.production-record-query-form :is(input,select):focus{outline:0;border-color:#3d7658;box-shadow:0 0 0 3px rgba(61,118,88,.13)}.production-record-query-form .button{height:38px;white-space:nowrap}
.production-record-ledger .table-actions .production-record-browse-button{border-color:#6d9a7b;background:#eff7f1;color:#275b3d;font-weight:800}.production-record-ledger .table-actions .production-record-browse-button:hover{background:#e2f0e6;transform:translateY(-1px)}
.production-record-browser-backdrop{position:fixed;inset:0;z-index:190;display:grid;place-items:center;padding:16px;background:rgba(24,38,29,.38);backdrop-filter:blur(4px)}
.production-record-browser{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:18px;background:#f7faf7;box-shadow:0 24px 70px rgba(25,53,35,.24)}.production-record-browser>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px 12px;border-bottom:1px solid #d9e4dc;background:#fff}.production-record-browser>header>div{display:grid;gap:2px}.production-record-browser>header small{color:#66806f;font-size:11px;font-weight:800}.production-record-browser>header h3{margin:0;color:#1f3a2a;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.production-record-browser>footer{display:flex;justify-content:flex-end;gap:9px;padding:11px 18px;border-top:1px solid #d9e4dc;background:#fff}
.production-record-browser-scroll{min-height:0;overflow:auto;padding:14px 16px 18px}.production-record-browser-summary{padding:12px;border:1px solid #d5e1d8;border-radius:12px;background:#fff}.production-record-browser-summary dl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0}.production-record-browser-summary dl>div{display:grid;gap:4px;min-width:0;padding:4px 12px;border-right:1px solid #e1e8e3}.production-record-browser-summary dl>div:last-child{border-right:0}.production-record-browser-summary dt{color:#718078;font-size:10px;font-weight:750}.production-record-browser-summary dd{min-width:0;margin:0;color:#20372a;font-size:12px;font-weight:800;overflow-wrap:anywhere}
.production-record-browser-lines{display:grid;gap:8px;margin-top:11px}.production-record-browser-device{overflow:hidden;border:1px solid #d5e0d8;border-radius:11px;background:#fff}.production-record-browser-device>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;cursor:pointer;list-style:none}.production-record-browser-device>summary::-webkit-details-marker{display:none}.production-record-browser-device>summary>span{display:flex;align-items:center;gap:9px;min-width:0}.production-record-browser-device>summary b{display:grid;place-items:center;width:25px;height:22px;border-radius:6px;background:#365f48;color:#fff;font-size:10px;font-variant-numeric:tabular-nums}.production-record-browser-device>summary strong{min-width:0;color:#294235;font-size:13px}.production-record-browser-device>summary em{color:#52705d;font-size:11px;font-style:normal;font-weight:750}.production-record-browser-device[open]>summary{background:#edf5ef}.production-record-browser-device-body{display:grid;gap:10px;padding:12px 13px 14px;border-top:1px solid #e0e8e2}.production-record-browser-device-body>dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0}.production-record-browser-device-body>dl>div{display:grid;gap:3px;padding:8px 9px;border-radius:8px;background:#f4f7f4}.production-record-browser-device-body dt{color:#728079;font-size:10px}.production-record-browser-device-body dd{margin:0;color:#243d2e;font-size:12px;font-weight:800}.production-record-browser-device-body>p,.production-record-browser-remark{display:grid;grid-template-columns:82px 1fr;gap:8px;margin:0;padding:9px 11px;border-left:3px solid #7da08a;background:#f6f9f6;color:#4e6255;font-size:11px}.production-record-browser-device-body>p b,.production-record-browser-remark b{color:#2e4939}
.production-record-browser-points{overflow:auto;border:1px solid #dce5df;border-radius:9px}.production-record-browser-points>div{display:grid;grid-template-columns:82px minmax(360px,1fr) 90px minmax(150px,.7fr);align-items:center;min-width:760px;border-bottom:1px solid #e2e9e4}.production-record-browser-points>div:last-child{border-bottom:0}.production-record-browser-points :is(time,span,em,small){padding:8px 9px;border-right:1px solid #e2e9e4;color:#455b4d;font-size:11px;font-style:normal}.production-record-browser-points :is(time,span,em,small):last-child{border-right:0}.production-record-browser-point-head{background:#edf3ee}.production-record-browser-point-head span{color:#344f3e;font-weight:800}.production-record-browser-remark{margin-top:11px;border-radius:0 9px 9px 0;background:#fff}
@media(max-width:980px){.production-record-query-form{grid-template-columns:repeat(2,minmax(0,1fr))}.production-record-query-form .production-record-query-keyword{grid-column:1/-1}.production-record-browser-summary dl{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:10px}.production-record-browser-summary dl>div:nth-child(3){border-right:0}.production-record-browser-device-body>dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.production-record-query-heading{align-items:start}.production-record-query-form{grid-template-columns:1fr}.production-record-query-form .production-record-query-keyword{grid-column:auto}.production-record-query-form .button{width:100%}.production-record-browser-backdrop{padding:7px}.production-record-browser{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);border-radius:13px}.production-record-browser>header{padding:12px}.production-record-browser-scroll{padding:10px}.production-record-browser-summary dl,.production-record-browser-device-body>dl{grid-template-columns:1fr 1fr}.production-record-browser-summary dl>div{border-right:0;padding:4px 7px}.production-record-browser-device-body>p,.production-record-browser-remark{grid-template-columns:1fr}.production-record-browser>footer{padding:9px 12px}.production-record-browser>footer .button{flex:1}}

/* 20260910-interface-guardrails: form surfaces, modal boundaries and field rhythm */
:root{--ui-accent:#2f7658;--ui-accent-soft:#eaf4ee;--ui-ink:#20352c;--ui-border:#d6e1da;--ui-shadow:0 22px 60px rgba(24,51,38,.18)}
.modal-backdrop,.drawer-backdrop{padding:clamp(8px,2vw,28px);overflow:auto;overscroll-behavior:contain}
.data-modal,.search-modal{box-sizing:border-box;top:clamp(8px,5vh,72px);max-width:calc(100vw - 2 * clamp(8px,2vw,28px));max-height:calc(100dvh - 2 * clamp(8px,5vh,72px));border-color:var(--ui-border);border-radius:18px;box-shadow:var(--ui-shadow)}
.data-modal{overflow:hidden;display:flex;flex-direction:column}
.data-modal>.modal-header{flex:0 0 auto;min-height:64px;padding:15px 20px;box-sizing:border-box}
.data-modal>form,.data-modal>.modal-body,.data-modal>.data-modal-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.data-modal form{gap:18px;padding:20px 22px 22px}
.data-modal label{gap:7px;min-width:0;line-height:1.35}
.data-modal input,.data-modal select,.data-modal textarea{box-sizing:border-box;min-width:0;max-width:100%;border-color:#c7d5cc;border-radius:9px;padding:9px 11px;line-height:1.4}
.data-modal textarea{min-height:92px;resize:vertical}
.data-modal .form-grid-4,.data-modal .form-grid,.data-modal .form-grid-3{column-gap:16px;row-gap:16px}
.data-modal .modal-actions,.data-modal form>.modal-actions{position:sticky;bottom:0;z-index:2;margin:4px -22px -22px;padding:14px 22px;background:rgba(255,255,255,.96);border-top:1px solid #e1e9e3;backdrop-filter:blur(8px)}
.modal-actions button,.drawer-actions button{min-height:40px}
.wide-modal{width:min(1180px,calc(100vw - 2 * clamp(8px,2vw,28px)))}
.detail-drawer{max-width:min(760px,calc(100vw - 2 * clamp(8px,2vw,28px)));max-height:calc(100dvh - 2 * clamp(8px,2vw,28px));margin:clamp(8px,2vw,28px);border-radius:18px;box-shadow:var(--ui-shadow)}
.detail-drawer .drawer-body{min-height:0;overflow:auto;padding:20px 22px}
.business-form{min-width:0}
.business-form .form-grid-4>label:not(.sheet-field){min-width:0;align-items:start}
.business-form .form-grid-4>label:not(.sheet-field)>input,.business-form .form-grid-4>label:not(.sheet-field)>select,.business-form .form-grid-4>label:not(.sheet-field)>textarea{min-width:0;width:100%}
@media(max-width:900px){.data-modal form{padding:16px}.data-modal .modal-actions,.data-modal form>.modal-actions{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.wide-modal{width:calc(100vw - 24px)}.data-modal .form-grid-4,.data-modal .form-grid,.data-modal .form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.modal-backdrop,.drawer-backdrop{padding:6px}.data-modal,.search-modal,.wide-modal{top:6px;width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:13px}.data-modal>.modal-header{padding:12px 14px}.data-modal form{gap:14px;padding:14px}.data-modal .form-grid-4,.data-modal .form-grid,.data-modal .form-grid-3{grid-template-columns:1fr;gap:13px}.data-modal .modal-actions,.data-modal form>.modal-actions{margin-left:-14px;margin-right:-14px;margin-bottom:-14px;padding:10px 14px;display:flex;gap:8px;flex-wrap:wrap}.data-modal .modal-actions button,.data-modal form>.modal-actions button{flex:1 1 140px}.detail-drawer{max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);margin:6px;border-radius:13px}.detail-drawer .drawer-body{padding:14px}}

/* Release 571 final boundary guard: 偏铝酸钠除杂表单始终完整位于可视窗口内。 */
body .modal-backdrop>.data-modal.sodium-aluminate-modal{
  position:relative;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  left:auto!important;
  transform:none!important;
  box-sizing:border-box;
  width:min(1420px,calc(100vw - 32px))!important;
  max-width:calc(100vw - 32px)!important;
  height:min(900px,calc(100dvh - 28px));
  max-height:calc(100dvh - 28px);
  margin:auto!important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
body .sodium-aluminate-modal>.modal-header{flex:0 0 auto;}
body .sodium-aluminate-modal>.edta-modal-scroll{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow:auto;
  overscroll-behavior:contain;
}
body .sodium-aluminate-modal .edta-form-layout{align-items:start;}
body .sodium-aluminate-modal .edta-field-grid.compact{height:auto;}
body .sodium-aluminate-modal .edta-form-layout>main{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
}
body .sodium-aluminate-modal .edta-form-section{
  flex:0 0 auto;
  box-sizing:border-box;
  min-height:max-content;
  overflow:visible;
}
@media(max-width:620px){
  body .modal-backdrop>.data-modal.sodium-aluminate-modal{
    width:calc(100vw - 12px)!important;
    max-width:calc(100vw - 12px)!important;
    height:calc(100dvh - 12px);
    max-height:calc(100dvh - 12px);
  }
}

/* Release 573: 辅料B表单专用边界与字段布局，避免通用 compact 高度压缩多行网格。 */
body .modal-backdrop>.data-modal.auxiliary-b-modal{
  position:relative;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  left:auto!important;
  transform:none!important;
  box-sizing:border-box;
  width:min(1420px,calc(100vw - 32px))!important;
  max-width:calc(100vw - 32px)!important;
  height:min(900px,calc(100dvh - 28px));
  max-height:calc(100dvh - 28px);
  margin:auto!important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
body .auxiliary-b-modal>.modal-header{flex:0 0 auto;}
body .auxiliary-b-modal>.edta-modal-scroll{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow:auto;
  overscroll-behavior:contain;
}
body .auxiliary-b-modal .edta-form-layout{align-items:start;}
body .auxiliary-b-modal .edta-field-grid.compact{height:auto;}
body .auxiliary-b-modal .edta-form-layout>main{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
}
body .auxiliary-b-modal .edta-form-section{
  flex:0 0 auto;
  box-sizing:border-box;
  min-height:max-content;
  overflow:visible;
}
body .auxiliary-b-modal .edta-form-section label,
body .sodium-aluminate-modal .edta-form-section label{min-width:0;}
body .auxiliary-b-modal .edta-form-section label>span,
body .sodium-aluminate-modal .edta-form-section label>span{
  min-height:16px;
  line-height:1.35;
}
@media(max-width:620px){
  body .modal-backdrop>.data-modal.auxiliary-b-modal{
    width:calc(100vw - 12px)!important;
    max-width:calc(100vw - 12px)!important;
    height:calc(100dvh - 12px);
    max-height:calc(100dvh - 12px);
  }
}

/* Release 579: 三个完整算法计算器的统一承载层。 */
.purification-calculator-backdrop{padding:6px}
body .purification-calculator-modal{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;transform:none!important;display:flex;flex-direction:column;width:calc(100vw - 12px);max-width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);margin:auto;overflow:hidden;background:#fff}
.purification-calculator-modal>.modal-header{flex:0 0 auto;min-height:54px;padding:8px 12px}
.purification-calculator-modal>.modal-header>div{display:flex;align-items:center;gap:12px;min-width:0}
.purification-calculator-modal>.modal-header .modal-heading{min-width:0}
.purification-calculator-modal>.modal-header .outline-button{flex:0 0 auto}
.purification-calculator-modal>iframe{display:block;flex:1 1 auto;width:100%;min-height:0;border:0;background:#f4f7fa}
@media(max-width:640px){.purification-calculator-backdrop{padding:0}body .purification-calculator-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.purification-calculator-modal>.modal-header{min-height:48px;padding:6px}.purification-calculator-modal>.modal-header>div{gap:6px}.purification-calculator-modal>.modal-header .outline-button{padding:6px;font-size:0}.purification-calculator-modal>.modal-header .outline-button svg{width:17px;height:17px}}

/* Release 580: 生产管理二级菜单恢复单列，三级除杂入口同步单列。 */
.nav-group[data-nav-group-id="materials"] > .submenu-list{
  width:min(218px,calc(100vw - 86px));
  grid-template-columns:minmax(0,1fr);
  gap:4px;
}
.nav-group[data-nav-group-id="materials"] > .submenu-list > .submenu-section,
.nav-group[data-nav-group-id="materials"] > .submenu-list > .materials-purification-menu-group{grid-column:1}
.materials-purification-third-menu{grid-template-columns:minmax(0,1fr)}

/* Release 585 pre-release acceptance: keep XRD modal inside the current viewport after global modal guardrails. */
body .data-modal.xrd-ai-modal{
  top:max(var(--hh-modal-safe-y,8px),env(safe-area-inset-top))!important;
  height:min(920px,calc(100dvh - 16px))!important;
  max-height:calc(100dvh - 16px)!important;
}
/* Release 585 pre-release acceptance: keep stock counterparty controls usable below notebook width. */
@media(max-width:900px){
  body .stock-document-essential-form .stock-document-party-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Release 593: keep every business surface inside the viewport without changing its workflow. */
.modal-backdrop{
  display:grid;
  place-items:center;
}
.modal-backdrop>.data-modal{
  min-width:0;
  min-height:0;
}
.data-modal :is(.form-grid-4,.form-grid-3,.form-grid,.line-grid,.form-row,.form-section)>*,
.data-modal :is(.system-input-window-body,.system-upload-window-body,.system-business-unified-body)>*{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.data-modal :is(input,select,textarea,button){
  max-width:100%;
}
.data-modal :is(.table-scroll,.table-wrap){
  min-width:0;
  max-width:100%;
  overflow:auto;
}
.intermediate-report-batch-toolbar{
  grid-template-columns:minmax(0,1fr);
}
.intermediate-report-batch-actions{
  flex-wrap:wrap;
}
.intermediate-report-batch-actions>button{
  flex:1 1 170px;
}
.module-ledger-browser,
.module-ledger-browser :is(.module-ledger-browser-head,.module-ledger-global-toolbar,.ledger-function-head,.ledger-function-tools){
  min-width:0;
}
.module-ledger-browser :is(.ledger-section-search,.table-search){
  min-width:0;
}
.module-ledger-browser :is(.ledger-section-search,.table-search) input{
  min-width:0;
  width:100%;
}
@media(max-height:760px){
  .data-modal>.modal-header{min-height:50px;padding-top:8px;padding-bottom:8px}
  .data-modal form{gap:12px;padding-top:12px;padding-bottom:14px}
  .data-modal .form-section{margin-block:0}
  .data-modal .modal-actions,.data-modal form>.modal-actions{padding-top:9px;padding-bottom:9px}
}

/* Release 594: 合同台账分层工具区、稳定列宽与无文字首屏骨架。 */
.module-loading-shell{
  min-height:320px;
}
.module-loading-skeleton{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  min-height:300px;
  padding:24px;
  overflow:hidden;
}
.module-loading-skeleton>i{
  display:block;
  min-height:92px;
  border-radius:14px;
  background:linear-gradient(100deg,#edf3f1 22%,#f9fbfa 40%,#edf3f1 58%);
  background-size:220% 100%;
  animation:module-skeleton-shift 1.15s ease-in-out infinite;
}
.module-loading-skeleton>i:first-child{
  grid-column:1/-1;
  min-height:66px;
}
.module-loading-skeleton>i:last-child{
  grid-column:1/-1;
  min-height:108px;
}
@keyframes module-skeleton-shift{
  to{background-position:-120% 0}
}

.ledger-function-section-contracts .ledger-function-head{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(620px,1.65fr);
  align-items:start;
  gap:14px 20px;
  padding:15px 16px;
}
.ledger-function-section-contracts .ledger-function-title{
  width:100%;
  min-width:0;
  padding-top:2px;
}
.ledger-function-section-contracts .ledger-function-tools{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(120px,150px) auto auto;
  align-items:end;
  gap:8px;
  width:100%;
  min-width:0;
}
.ledger-function-section-contracts .contract-ledger-export-controls{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr) auto minmax(184px,auto);
  align-items:end;
  gap:8px;
  width:100%;
  min-width:0;
}
.ledger-function-section-contracts .contract-ledger-export-controls label{
  min-width:0;
}
.ledger-function-section-contracts .ledger-section-search{
  width:100%;
  min-width:0;
}
.ledger-function-section-contracts .ledger-section-table{
  min-width:2780px;
  table-layout:fixed;
}
.ledger-function-section-contracts .ledger-section-table :is(th,td){
  overflow:hidden;
  line-height:1.45;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(1){width:142px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(2){width:100px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(3),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(4),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(5){width:146px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(6){width:230px;white-space:normal;word-break:break-word}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(7){width:190px;white-space:normal;word-break:break-word}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(8){width:170px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(9){width:136px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(10),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(12),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(16),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(17),
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(18){width:142px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(11){width:132px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(13){width:190px;white-space:normal;word-break:break-word}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(14){width:118px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(15){width:96px}
.ledger-function-section-contracts .ledger-section-table :is(th,td):nth-child(19){width:104px}

@media(max-width:1120px){
  .ledger-function-section-contracts .ledger-function-head{
    grid-template-columns:minmax(0,1fr);
  }
}
@media(max-width:760px){
  .module-loading-skeleton{grid-template-columns:minmax(0,1fr);padding:14px}
  .module-loading-skeleton>i:first-child,
  .module-loading-skeleton>i:last-child{grid-column:auto}
  .ledger-function-section-contracts .ledger-function-tools{
    grid-template-columns:minmax(0,1fr) minmax(110px,.44fr);
  }
  .ledger-function-section-contracts .contract-ledger-export-controls{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ledger-function-section-contracts .contract-ledger-export-controls>i{display:none}
  .ledger-function-section-contracts .contract-ledger-export-controls>button{width:100%;justify-content:center}
  .ledger-function-section-contracts .ledger-section-submit,
  .ledger-function-section-contracts .ledger-section-clear{width:100%;justify-content:center}
}

/* Release 595: 人力资源在册、正式、本月异动与非正式员工分账。 */
:where(.ledger-function-section-employee-roster,
  .ledger-function-section-formal-employees,
  .ledger-function-section-monthly-hires,
  .ledger-function-section-monthly-departures,
  .ledger-function-section-non-formal-employees) .ledger-function-head{
  background:linear-gradient(112deg,#f5faf7 0%,#fbfaf5 100%);
}
:where(.ledger-function-section-employee-roster,
  .ledger-function-section-formal-employees,
  .ledger-function-section-monthly-hires,
  .ledger-function-section-monthly-departures,
  .ledger-function-section-non-formal-employees) .ledger-function-title h3{
  letter-spacing:-.01em;
  text-wrap:balance;
}
:where(.ledger-function-section-employee-roster,
  .ledger-function-section-formal-employees,
  .ledger-function-section-monthly-hires,
  .ledger-function-section-monthly-departures,
  .ledger-function-section-non-formal-employees) .ledger-section-table{
  min-width:1040px;
  font-variant-numeric:tabular-nums;
}
.ledger-function-section-monthly-departures .ledger-section-table{min-width:1180px}
.ledger-function-section-non-formal-employees .ledger-section-table{min-width:1160px}
@media(max-width:760px){
  :where(.ledger-function-section-employee-roster,
    .ledger-function-section-formal-employees,
    .ledger-function-section-monthly-hires,
    .ledger-function-section-monthly-departures,
    .ledger-function-section-non-formal-employees) .ledger-function-tools{
    grid-template-columns:minmax(0,1fr) minmax(108px,.45fr);
  }
}
