/* 不再引用 Google 字体：国内网络无法访问，会拖慢甚至卡住首页加载（2026-10-13）；直接使用系统中文字体。 */
:root{font-family:'DM Sans','Noto Sans SC','Microsoft YaHei',sans-serif;color:#152a3d;background:#f4f7f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.muted{color:#738596}.small{font-size:12px}.danger-text{color:#d13a45}.success-text{color:#158463}.warning-text{color:#b76a14}.app{display:flex;min-height:100vh}.sidebar{width:254px;flex:none;background:#102a43;color:#c9d7e4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:25px 24px 21px;color:white;border-bottom:1px solid #ffffff14}.brand-mark{width:35px;height:35px;display:grid;place-items:center;background:#00a991;color:white;border-radius:10px;font-weight:800;font-size:19px;box-shadow:0 8px 20px #00a99135}.brand-name{font-size:19px;font-weight:700;letter-spacing:1px}.brand-sub{font-size:10px;color:#a9bbc9;letter-spacing:2px}.sidebar-scroll{padding:15px 13px;overflow-y:auto;flex:1}.nav-label{font-size:10px;color:#7e98ad;letter-spacing:2px;padding:18px 12px 7px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 13px;margin:2px 0;border-radius:9px;border:0;background:transparent;color:#bdd0dd;text-align:left;width:100%;font-size:13px;font-weight:500}.nav-item:hover{background:#ffffff10;color:white}.nav-item.active{background:#00a99125;color:#56e2c9}.nav-icon{width:20px;text-align:center;font-size:17px;line-height:1}.sidebar-bottom{padding:17px;border-top:1px solid #ffffff17}.tenant-chip{font-size:12px;color:#bcd1df;padding:0 5px 13px;line-height:1.6}.logout{border:1px solid #ffffff2b;border-radius:8px;background:transparent;color:#d6e6ee;padding:8px 12px;width:100%;text-align:left}.main{flex:1;min-width:0}.topbar{height:69px;background:#fff;border-bottom:1px solid #e6ecf0;display:flex;align-items:center;justify-content:space-between;padding:0 33px;position:sticky;top:0;z-index:3}.breadcrumbs{font-size:13px;color:#7c8b99}.breadcrumbs strong{font-size:15px;color:#1a3044;margin-left:7px}.top-actions{display:flex;align-items:center;gap:18px}.notification-link{position:relative;background:#f3f7f8;border:0;border-radius:8px;padding:8px;font-size:17px}.notify-dot{position:absolute;right:6px;top:6px;width:6px;height:6px;background:#eb6948;border-radius:50%}.avatar{height:33px;width:33px;display:grid;place-items:center;border-radius:50%;background:#d5f3eb;color:#117c67;font-weight:700}.userline{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:600}.content{padding:28px 33px 54px;max-width:1680px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.eyebrow{font-size:11px;color:#159481;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}.page-title{font-size:26px;font-weight:700;margin:0;color:#142c40;letter-spacing:.2px}.page-desc{font-size:13px;color:#7b8b98;margin:8px 0 0;line-height:1.6}.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #d8e3e8;background:#fff;color:#2a4658;padding:9px 14px;border-radius:8px;font-weight:600;font-size:12px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{border-color:#00a991;color:#007e70}.btn.primary{border-color:#009f8d;background:#009f8d;color:#fff;box-shadow:0 5px 13px #009f8d22}.btn.primary:hover{background:#008574}.btn.danger{color:#c74249;border-color:#efd2d3}.btn.tiny{min-height:28px;padding:5px 9px;font-size:11px}.btn:disabled{opacity:.55;cursor:not-allowed}.grid{display:grid;gap:17px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid #e4ebef;border-radius:13px;box-shadow:0 4px 18px #12334b05}.stat{padding:21px 22px;position:relative;overflow:hidden}.stat:after{content:'';position:absolute;right:-20px;top:-22px;width:92px;height:92px;border-radius:50%;background:#d8f6ef88}.stat-label{font-size:12px;color:#718596;font-weight:600}.stat-num{font-size:29px;font-weight:700;margin:8px 0;color:#183449}.stat-note{font-size:11px;color:#96a6b3}.stat-icon{position:absolute;right:22px;top:20px;color:#0d9e87;font-size:18px;z-index:1}.section-head{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid #edf1f3}.section-head h2{font-size:16px;margin:0;color:#1d3447}.section-head p{font-size:11px;color:#8b9ba6;margin:3px 0 0}.section-body{padding:20px 22px}.section-link{font-size:12px;color:#0c9782;font-weight:700;background:none;border:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:15px}.search{border:1px solid #dce7eb;background:#fff;border-radius:8px;padding:9px 12px;min-width:240px;font-size:12px;outline:none}.search:focus,input:focus,select:focus,textarea:focus{border-color:#14ae97!important;outline:2px solid #0ca98b20}.toolbar-left,.toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.select{border:1px solid #dce7eb;background:#fff;border-radius:8px;padding:9px 11px;min-height:36px;font-size:12px;color:#385268}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.table th{text-align:left;background:#f7fafb;color:#6e8190;font-weight:600;padding:12px 15px;border-bottom:1px solid #e7eef2}.table td{padding:13px 15px;border-bottom:1px solid #eef2f4;color:#314c5e}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fafdfc}.link{color:#078d79;font-weight:700;background:none;border:0;padding:0}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:600;border-radius:6px;background:#eaf2f7;color:#547083}.badge.teal{color:#098270;background:#dff6ef}.badge.orange{color:#aa6b0c;background:#fff1d8}.badge.red{color:#c43b46;background:#fde9ea}.badge.blue{color:#3a72ab;background:#e7f0fb}.badge.gray{color:#6d7f8b;background:#edf1f4}.progress{height:6px;background:#e9f0f1;border-radius:9px;overflow:hidden;width:100px;display:inline-block;vertical-align:middle;margin-right:7px}.progress>span{height:100%;display:block;background:#14a890;border-radius:9px}.empty{padding:52px 20px;text-align:center;color:#91a0ab;font-size:13px}.empty-icon{font-size:30px;display:block;margin-bottom:10px;color:#bdd0d8}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#41596b;font-weight:600}.field label em{font-style:normal;color:#df5d55}.field input,.field select,.field textarea{width:100%;border:1px solid #dce7eb;border-radius:8px;background:#fff;min-height:38px;padding:9px 10px;color:#244257;font-size:12px}.field textarea{min-height:78px;resize:vertical}.field-hint{font-size:11px;color:#8fa0ab}.form-section{padding:21px 23px;border-bottom:1px solid #edf1f3}.form-section:last-child{border-bottom:0}.form-section h3{font-size:14px;margin:0 0 16px;color:#1e3d51}.form-footer{display:flex;justify-content:flex-end;gap:9px;padding:18px 23px;background:#fbfcfd;border-top:1px solid #edf1f3;border-radius:0 0 13px 13px}.modal-backdrop{position:fixed;inset:0;background:#0b2339a1;z-index:20;display:flex;align-items:center;justify-content:center;padding:18px}.modal{background:#fff;border-radius:14px;width:min(760px,100%);max-height:92vh;overflow:auto;box-shadow:0 22px 70px #051c2d4d}.modal.wide{width:min(1000px,100%)}.modal-head{padding:19px 23px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8eef1}.modal-head h2{margin:0;font-size:18px}.modal-close{border:0;background:#eef3f5;border-radius:6px;width:30px;height:30px;font-size:20px;color:#6e8190}.repeat-row{border:1px solid #e3ecef;border-radius:9px;padding:13px;margin:10px 0;background:#fbfdfd;position:relative}.repeat-row .remove-row{position:absolute;right:11px;top:10px}.repeat-row .form-grid{padding-top:27px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;background:#eff5f6;color:#536b7d;border-radius:6px;padding:5px 8px;font-size:11px}.detail-header{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.detail-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.meta-label{font-size:11px;color:#8d9ca8;margin-bottom:5px}.meta-value{font-size:13px;color:#2b485c;font-weight:600}.tabs{display:flex;gap:20px;border-bottom:1px solid #e6edef;padding:0 20px;overflow:auto}.tab{background:none;border:0;padding:14px 3px;color:#778b99;font-size:12px;white-space:nowrap;border-bottom:2px solid transparent}.tab.active{color:#008f7c;border-color:#00a991;font-weight:700}.timeline{padding-left:17px;border-left:1px solid #d9e7e8;margin-left:7px}.timeline-item{position:relative;padding:0 0 20px 16px}.timeline-item:before{content:'';position:absolute;left:-21px;top:2px;width:7px;height:7px;background:#0aaa91;border-radius:50%;box-shadow:0 0 0 4px #e2f8f2}.timeline-item:last-child{padding-bottom:0}.timeline-title{font-size:12px;font-weight:700;color:#294758}.timeline-meta{font-size:11px;color:#93a1aa;margin:4px 0}.timeline-text{font-size:12px;color:#617789}.callout{background:#fff8e9;border:1px solid #f6e2ad;color:#906517;padding:12px 14px;border-radius:8px;font-size:12px;line-height:1.6}.callout.red{background:#fff0f1;border-color:#f0cbd0;color:#b53742}.callout.teal{background:#ebf9f5;border-color:#c6ece0;color:#19836f}.split{display:grid;grid-template-columns:1.8fr 1fr;gap:17px}.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr minmax(440px,44%);background:#fff}.login-aside{background:#102a43;color:white;padding:8vh 8vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-aside:before{content:'';position:absolute;width:660px;height:660px;border:1px solid #ffffff12;border-radius:50%;right:-310px;top:-210px;box-shadow:0 0 0 85px #ffffff06,0 0 0 170px #ffffff04}.login-brand{font-size:23px;font-weight:700;display:flex;align-items:center;gap:11px;z-index:1}.login-brand .brand-mark{height:43px;width:43px;font-size:23px}.login-copy{z-index:1;max-width:490px}.login-copy h1{font-size:46px;letter-spacing:2px;line-height:1.25;margin:0 0 20px}.login-copy p{color:#bcd1df;font-size:15px;line-height:1.9}.login-features{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.login-features span{font-size:11px;border:1px solid #ffffff30;padding:8px 11px;border-radius:6px;color:#d8e8ed}.login-foot{font-size:11px;color:#7998ad;z-index:1}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px}.login-box{width:min(390px,100%)}.login-kicker{font-size:12px;color:#0b9d86;font-weight:700;letter-spacing:2px}.login-box h2{font-size:28px;margin:8px 0 8px}.login-box>p{color:#8395a2;font-size:13px;margin:0 0 34px}.login-box .field{margin-bottom:18px}.login-box .field label{font-size:13px}.login-box input{min-height:45px;font-size:13px}.login-submit{width:100%;min-height:45px;margin-top:9px;font-size:14px}.login-help{font-size:11px;color:#95a3ad;margin-top:19px;line-height:1.7}.login-error{background:#fff1f1;color:#bf4048;border-radius:7px;padding:10px;font-size:12px;margin-bottom:15px}.toast{position:fixed;bottom:27px;right:27px;z-index:40;background:#173c4b;color:#fff;box-shadow:0 12px 28px #0c28394a;border-radius:9px;padding:12px 17px;font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:all .2s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#ad3540}.skeleton{height:14px;background:linear-gradient(90deg,#eff3f4,#f9fbfb,#eff3f4);background-size:200%;animation:shine 1.2s infinite;border-radius:5px}@keyframes shine{to{background-position:-200% 0}}.invoice-preview{border:1px dashed #d9e5e8;padding:16px;border-radius:8px}.check-list{display:flex;gap:14px;flex-wrap:wrap}.check-list label{font-size:12px;display:flex;gap:5px;align-items:center;color:#4b6576}.check-list input{accent-color:#009f8d}.mini-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-metric{padding:14px;background:#f8fbfb;border-radius:8px}.mini-metric b{display:block;font-size:16px;margin-top:5px}.record-list{display:grid;gap:8px}.record{display:flex;justify-content:space-between;gap:10px;padding:12px;border:1px solid #ebf0f2;border-radius:8px}.record-title{font-size:12px;font-weight:600;color:#315066}.record-meta{font-size:11px;color:#8ca0ad;margin-top:4px}.record-right{text-align:right;font-size:12px;font-weight:700;color:#24475b}.sticky-mobile{display:none}@media(max-width:1180px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.detail-meta{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:800px){.sidebar{width:67px}.sidebar .brand-name,.sidebar .brand-sub,.sidebar .nav-label,.sidebar .nav-item span:last-child,.sidebar .sidebar-bottom{display:none}.brand{padding:16px}.sidebar-scroll{padding:12px}.nav-item{justify-content:center;padding:12px}.nav-icon{font-size:19px}.topbar{padding:0 19px}.content{padding:22px 18px}.login-screen{grid-template-columns:1fr}.login-aside{display:none}.login-panel{min-height:100vh}}@media(max-width:620px){.sidebar{display:none}.sticky-mobile{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;z-index:10;box-shadow:0 -5px 25px #12334b15;justify-content:space-around;padding:7px 3px}.sticky-mobile button{border:0;background:none;color:#788e9d;display:flex;flex-direction:column;align-items:center;font-size:10px;gap:3px;padding:4px 6px}.sticky-mobile button.active{color:#009f8d}.sticky-mobile span:first-child{font-size:19px}.content{padding-bottom:85px}.topbar{height:57px}.page-head{flex-direction:column}.page-title{font-size:22px}.grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid,.mini-metrics{grid-template-columns:1fr}.search{min-width:0;width:100%}.toolbar-left,.toolbar-right{width:100%}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:14px 14px 0 0;max-height:95vh}.detail-meta{grid-template-columns:1fr 1fr}.userline span:last-child{display:none}}

.audit-stamp{display:inline-block;color:#bf2634;border:2px solid #bf2634;border-radius:50%;padding:8px 6px;font-size:12px;font-weight:800;letter-spacing:2px;transform:rotate(-11deg);background:#fff8f8;text-align:center;line-height:1}
@media(max-width:620px){.sticky-mobile{justify-content:flex-start;overflow-x:auto;gap:4px;scrollbar-width:thin}.sticky-mobile button{flex:0 0 auto;min-width:58px}}
:root{--auth-muted:#8395a2}
.auth-panel-inner{width:min(430px,100%);min-height:calc(100vh - 80px);display:flex;flex-direction:column;justify-content:center;align-items:stretch;position:relative;padding:45px 0 54px}
.auth-panel-inner .login-box{width:100%}
.auth-create,.auth-back,.system-entry{border:0;background:none;color:#128b7a;font-size:12px;padding:8px 0;text-align:center}
.auth-create{display:block;margin:12px auto 0;font-weight:700}
.auth-back{display:block;width:100%;margin-top:10px}
.system-entry{position:absolute;bottom:0;left:0;right:0;width:100%;font-size:10px;font-weight:400;color:#aab6be;text-decoration:underline;text-underline-offset:3px}
.system-entry:hover{color:#47717b}
.application-box .field{margin-bottom:12px}
.application-box>p{margin-bottom:18px}
.application-box .field-hint{font-size:11px;line-height:1.4}
.micro-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e0e9ed;border-radius:8px;margin:9px 0 15px;color:#324d5d;font-size:12px}
.micro-choice input{margin-top:3px;accent-color:#009f8d}
.micro-choice strong,.micro-choice small{display:block}
.micro-choice small{color:#81929e;margin-top:3px;line-height:1.4}
.micro-choice.is-disabled{opacity:.5}
@media(max-width:800px){.auth-panel-inner{min-height:calc(100vh - 80px)}}

.password-link{border:1px solid #dce7eb;background:#fff;color:#2a5c68;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:600;white-space:nowrap}
.password-link:hover,.password-link:focus-visible{border-color:#00a991;color:#007e70}
.password-fields{margin-top:14px}
@media(max-width:620px){.topbar{padding:0 12px}.breadcrumb-prefix{display:none}.breadcrumbs strong{margin-left:0;font-size:13px}.top-actions{gap:8px}.password-link{padding:7px 8px;font-size:11px}}

.contract-stat-toolbar{margin-bottom:16px}
.contract-stats-company{display:inline-flex;align-items:center;gap:8px;color:#617789;font-size:12px;white-space:nowrap}
.contract-stat-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;margin-bottom:15px}
.contract-stat-total{display:flex;flex-direction:column;gap:7px;padding:17px 19px;background:#fff;border:1px solid #e2ebee;border-radius:10px;min-width:0}
.contract-stat-total>span{font-size:12px;color:#597386;font-weight:600}
.contract-stat-total>strong{font-size:19px;color:#193b4d;overflow-wrap:anywhere}
.contract-stat-total>small{font-size:12px;color:#718596;line-height:1.6}
.contract-stat-note{margin-bottom:16px}
.contract-stat-sections{display:grid;gap:16px}
.contract-stat-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:17px}
.contract-stat-list>.empty{grid-column:1/-1}
.contract-stat-card{border:1px solid #e3ebee;border-radius:10px;padding:15px 16px;min-width:0;background:#fff}
.contract-stat-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.contract-stat-heading>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.contract-stat-heading strong{font-size:13px;color:#26485d;overflow-wrap:anywhere}
.contract-stat-order{font-size:11px;color:#8193a0;white-space:nowrap}
.contract-stat-side{display:inline-block;padding:4px 7px;border-radius:5px;font-size:10px;font-weight:700;white-space:nowrap}
.contract-stat-side.upstream{background:#e8f4fd;color:#316c9e}
.contract-stat-side.downstream{background:#e1f7ef;color:#16836b}
.contract-stat-context{font-size:11px;color:#8193a0;line-height:1.55;margin:10px 0 13px;overflow-wrap:anywhere}
.contract-stat-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.contract-stat-values>div{min-width:0;background:#f5f9fa;border-radius:7px;padding:10px}
.contract-stat-values span{display:block;font-size:11px;color:#6c8392;margin-bottom:6px}
.contract-stat-values strong{display:block;color:#244457;font-size:14px;overflow-wrap:anywhere}
.contract-stat-detail{font-size:11px;color:#718899;line-height:1.6;margin-top:11px;overflow-wrap:anywhere}
.contract-stat-detail.alert{color:#c43b46;font-weight:800}
.contract-stat-chase{display:flex;justify-content:space-between;align-items:center;gap:8px 10px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px dashed #e3ebee}
.contract-stat-chase-meta{flex:1 1 220px;min-width:0;font-size:11px;color:#5f7788;line-height:1.6;overflow-wrap:anywhere}
.contract-stat-chase.blocked .contract-stat-chase-meta{color:#8a9aa6}.contract-stat-chase-meta .chase-name{white-space:nowrap;overflow-wrap:normal}
.contract-stat-chase-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}
.contract-stat-chase-meta .chase-await,.chase-reply-cell .chase-await{color:#c43b46;font-weight:700}
.contract-stat-chase-reply{margin-top:5px;padding:6px 8px;background:#fff8e9;border:1px solid #f6e2ad;border-radius:6px;color:#6b4d12;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.chase-reply-cell{white-space:normal;max-width:280px;overflow-wrap:anywhere}
.order-dual-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.order-dual-progress>div{padding:12px 14px;background:#f8fbfb;border-radius:8px}
.order-dual-progress b{font-size:12px;color:#315066;display:block;margin-bottom:8px}
.order-evidence-item{padding:3px 0;max-width:290px;white-space:normal}
.order-evidence-item .record-meta{line-height:1.4;max-height:3em;overflow:hidden}
@media(max-width:620px){.order-dual-progress{grid-template-columns:1fr}}
.order-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-top:15px;font-size:12px;color:#63798a}
.order-cost-grid>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #edf1f3}
.order-cost-grid strong{color:#294758}
.morning-report-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.morning-report-section{margin-top:23px}
.morning-report-section h3{font-size:14px;color:#24455a;margin:0 0 11px}
@media(max-width:900px){.morning-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.morning-report-metrics{grid-template-columns:1fr}}
.order-cost-section{border-top:1px solid #e8eef1;margin-top:23px;padding-top:20px}
.order-cost-section h3{font-size:14px;margin:0 0 12px;color:#24455a}
.modal form[data-form="order-logistics"] input[type="checkbox"]{width:auto;min-height:auto;margin:0 7px 0 0;vertical-align:middle}
@media(max-width:620px){.order-cost-grid{grid-template-columns:1fr}}
.order-contract-statistics{display:grid;gap:13px;padding:17px;background:#f7fafb;border-bottom:1px solid #e7eef2}
/* 业务订单上下游共用方向色，文字同时标明合同方向，表单沿用原上传区顶部空隙。 */
.order-contract-entry[data-contract-side="upstream"],.order-contract-line[data-contract-side="upstream"],.order-contract-direction[data-contract-side="upstream"]{--order-direction-bg:#f1f8ff;--order-direction-hover:#e7f2fd;--order-direction-border:#b7d4ed;--order-direction-accent:#3a7cac;--order-direction-label:#dceeff;--order-direction-text:#215d91}
.order-contract-entry[data-contract-side="downstream"],.order-contract-line[data-contract-side="downstream"],.order-contract-direction[data-contract-side="downstream"]{--order-direction-bg:#f0faf4;--order-direction-hover:#e2f4e9;--order-direction-border:#b9dfc8;--order-direction-accent:#2e8a61;--order-direction-label:#dcf3e5;--order-direction-text:#1c6949}
.contract-direction-label{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--order-direction-border);border-radius:6px;background:var(--order-direction-label);color:var(--order-direction-text);font-size:12px;line-height:1.4;font-weight:800;white-space:nowrap}
.order-contract-entry{background:var(--order-direction-bg);border-color:var(--order-direction-border);border-left:4px solid var(--order-direction-accent)}
.order-contract-entry>.contract-direction-label{position:absolute;left:13px;top:10px;max-width:calc(100% - 85px)}
.table tr.order-contract-line:not(.approval-target-focus)>td{background:var(--order-direction-bg)}
.table tr.order-contract-line:not(.approval-target-focus):hover>td{background:var(--order-direction-hover)}
.table tr.order-contract-line:not(.approval-target-focus)>td:first-child{box-shadow:inset 3px 0 var(--order-direction-accent)}
.order-contract-statistics .order-contract-direction>.card{background:var(--order-direction-bg);border-color:var(--order-direction-border);border-left:4px solid var(--order-direction-accent)}
.order-contract-statistics .order-contract-direction .section-head{border-bottom-color:var(--order-direction-border)}
.order-contract-statistics .order-contract-direction .section-head h2{color:var(--order-direction-text)}
.contract-document-actions{display:flex;align-items:center;gap:6px;width:max-content;white-space:nowrap}
.contract-document-actions .btn{flex:none;white-space:nowrap}
.contract-file-binding{min-height:38px;padding:10px;border:1px solid #e4ebee;border-radius:8px;background:#f7fafb;color:#385268;font-size:12px;overflow-wrap:anywhere}
.pending-workbench{border-left:4px solid #e8a63d}
.pending-workbench>.card{border:0;box-shadow:none}
.pending-task{align-items:center;flex-wrap:wrap}
.pending-task .page-actions{flex-shrink:0}
.order-business-mode-form{margin-top:14px;padding:16px;background:#f8fbfb;border:1px solid #e3ebee;border-radius:9px}
.order-business-mode-form .form-footer{margin:14px -16px -16px;padding:12px 16px}
@media(max-width:1050px){.contract-stat-list{grid-template-columns:1fr}}
@media(max-width:620px){.contract-stat-toolbar .toolbar-left{align-items:stretch}.contract-stat-toolbar .search,.contract-stats-company,.contract-stats-company .select{width:100%}.contract-stats-company{display:flex;justify-content:space-between}.contract-stat-list{padding:11px}.contract-stat-card{padding:13px}.contract-stat-values{gap:5px}.contract-stat-values>div{padding:8px 6px}.contract-stat-values strong{font-size:12px}.order-contract-statistics{padding:10px}.contract-stat-chase-meta{flex-basis:100%}.contract-stat-chase-actions{width:100%;justify-content:flex-end}}
.movement-batch-entry{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 23px;background:#eaf8f4;border-bottom:1px solid #c6ebe1}
.movement-batch-entry strong{font-size:14px;color:#155a50}
.movement-batch-entry p{font-size:12px;line-height:1.5;color:#477c71;margin:5px 0 0}
.movement-batch-fields{margin-top:17px}
.movement-warehouse-picker{display:flex;gap:8px;align-items:center}
.movement-warehouse-picker select{flex:1;min-width:0}
.movement-warehouse-picker .btn{flex:none;white-space:nowrap}
.movement-warehouse-create{margin-top:17px;padding:16px;border:1px solid #bfe4d9;background:#f4fcf9;border-radius:9px}
.movement-inline-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:13px}
.movement-manual-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.movement-manual-section-head h3{margin-bottom:5px}
.movement-manual-section-head p{margin:0}
.movement-manual-row{border:1px solid #dce8e8;border-radius:10px;background:#fbfdfd;padding:15px;margin-top:12px}
.movement-manual-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.movement-manual-row-head>div{display:flex;align-items:center;gap:9px;color:#29495b}
.movement-manual-index{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#dff6ef;color:#087d6c;font-size:11px;font-weight:700}
.movement-manual-summary{display:flex;justify-content:flex-end;gap:22px;margin-top:14px;padding:13px 15px;border-radius:8px;background:#eaf8f4;color:#376e65;font-size:12px}
.movement-manual-summary strong{color:#087f6e;font-size:15px;margin:0 3px}
.movement-manual-submitting{cursor:progress}
.movement-manual-submitting .form-section,.movement-manual-submitting .movement-batch-entry{opacity:.72}
.movement-batch-preview .form-section{background:#fbfdfd}
.movement-batch-row{border:1px solid #dce8e8;border-radius:9px;background:#fff;padding:14px;margin-top:13px}
.movement-batch-row-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:13px;font-size:12px;color:#2b495a}
.movement-batch-row-head .link{margin-left:auto}
.movement-ocr-provider{font-size:10px;color:#5d7d77;background:#edf7f4;border-radius:6px;padding:4px 7px}
.movement-duplicate-warning{margin:10px 0 13px}
.movement-duplicate-warning p{margin:5px 0 10px}
.movement-batch-row-more{border-top:1px solid #e8eff0;margin-top:14px;padding-top:10px;font-size:12px;color:#486778}
.movement-batch-row-more summary{cursor:pointer;font-weight:600}
.movement-batch-row-more .form-grid{margin-top:12px}
.movement-batch-row-more pre{white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto;background:#f4f8f8;padding:10px;border-radius:7px}
.movement-batch-date-check{display:flex;align-items:center;gap:7px;color:#a15d12;font-size:12px;line-height:1.4;cursor:pointer}
.movement-batch-date-check input{width:auto;min-height:0;accent-color:#009f8d}
@media(max-width:620px){.movement-batch-entry{align-items:stretch;flex-direction:column}.movement-warehouse-picker{align-items:stretch;flex-direction:column}.movement-batch-row-head .link{margin-left:0}.movement-manual-section-head{align-items:stretch;flex-direction:column}.movement-manual-section-head .btn{width:100%}.movement-manual-summary{justify-content:space-between;gap:10px}}

.smart-entry{display:flex;align-items:center;gap:20px;margin-bottom:17px;padding:18px 20px;border:1px solid #bfe8dc;border-radius:12px;background:linear-gradient(115deg,#edf9f5 0%,#fff 70%)}
.smart-entry-copy{display:flex;align-items:flex-start;gap:13px;flex:1;min-width:250px}
.smart-entry-mark{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:#0a9d87;color:#fff;font-size:12px;font-weight:800;box-shadow:0 7px 16px #0797802c}
.smart-entry-copy strong{display:block;color:#185547;font-size:14px;margin:1px 0 5px}
.smart-entry-copy p{max-width:680px;margin:0;color:#58766f;font-size:12px;line-height:1.6}
.smart-entry-steps{display:flex;gap:8px;align-items:center;color:#54766e;font-size:11px;white-space:nowrap}
.smart-entry-steps span{display:flex;align-items:center;gap:5px}
.smart-entry-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dceee9;color:#287668;font-size:10px}
@media(max-width:900px){.smart-entry{align-items:flex-start;flex-wrap:wrap}.smart-entry-steps{order:3;width:100%}}
@media(max-width:620px){.smart-entry{display:grid;padding:15px}.smart-entry-copy{min-width:0}.smart-entry>.btn{width:100%}.smart-entry-steps{display:grid;grid-template-columns:1fr}}
.bank-smart-panel{padding:20px 23px;border-bottom:1px solid #c7ebe2;background:linear-gradient(120deg,#ecf9f5,#fff)}
.bank-smart-copy{display:flex;align-items:flex-start;gap:13px}
.bank-smart-copy strong{display:block;color:#185547;font-size:14px;margin:1px 0 5px}
.bank-smart-copy p{margin:0;color:#58766f;font-size:12px;line-height:1.65}
/* 回单上传区标题：标题单独一行不折行，格式原因说明另起一行小字左对齐（截图复核：长说明原来把“上传本笔银行回单 *”挤成两行）。 */
.bank-voucher-upload-title{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:15px;color:#274f46}
.bank-voucher-upload-title strong{font-size:13px;white-space:nowrap}
.bank-voucher-upload-title span{color:#6b827c;font-size:11px;line-height:1.6;text-align:left}
.bank-voucher-upload-title em{color:#c64f4f;font-style:normal}
.bank-smart-upload{display:flex;align-items:stretch;gap:10px;margin-top:15px}
.bank-smart-file{display:flex;align-items:center;flex:1;min-height:48px;padding:11px 14px;border:2px dashed #72bdaa;border-radius:8px;background:#fafffd;color:#176e60;font-size:12px;font-weight:700;cursor:pointer;overflow:hidden}
.bank-smart-file:hover{border-color:#178675;background:#eefaf6}
.bank-smart-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bank-smart-file input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.bank-smart-result{display:grid;gap:12px;margin-top:15px;padding:15px;border:1px solid #cfe6e0;border-radius:10px;background:#fff}
.bank-ai-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bank-ai-result-head strong,.bank-ai-result-head small{display:block}
.bank-ai-result-head strong{color:#245649;font-size:13px}
.bank-ai-result-head small{margin-top:4px;color:#799089;font-size:10px}
.bank-ai-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.bank-ai-field{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr) auto;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;background:#f5faf8;min-width:0}
.bank-ai-field span{color:#769087;font-size:10px}
.bank-ai-field strong{color:#2a554c;font-size:11px;overflow-wrap:anywhere}
.bank-ai-field small,.bank-ai-field .link{font-size:10px;white-space:nowrap}
.bank-ai-parties{padding:10px 12px;border-left:3px solid #85cbbb;background:#f7fbfa;color:#4f7169;font-size:11px;line-height:1.75;overflow-wrap:anywhere}
.bank-duplicate-warning p{margin:5px 0 10px}
.bank-duplicate-warning .field label{color:inherit}
@media(max-width:620px){.bank-voucher-upload-title{align-items:flex-start;flex-direction:column}.bank-voucher-upload-title span{text-align:left}.bank-smart-upload,.bank-ai-result-head{align-items:stretch;flex-direction:column}.bank-ai-fields{grid-template-columns:1fr}.bank-ai-field{grid-template-columns:82px 1fr}.bank-ai-field .link,.bank-ai-field small{grid-column:2}.bank-smart-upload .btn{width:100%}}
.finance-batch-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.finance-batch-section-head h3{margin-bottom:5px}
.finance-batch-section-head p{margin:0}
.finance-batch-row{margin-top:14px;padding:16px;border:1px solid #d8e7e6;border-radius:11px;background:#fbfdfd}
.finance-batch-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;color:#29495b}
.finance-batch-row-head>div{display:flex;align-items:center;gap:9px}
.finance-batch-index{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#dff6ef;color:#087d6c;font-size:11px;font-weight:800}
.finance-required-file{margin-top:15px;padding-top:14px;border-top:1px solid #e2eded}
.finance-file-preview{margin-top:11px}
.finance-file-preview-card{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 12px;border:1px solid #cae3dd;border-radius:9px;background:#fff;color:#315e55}
.finance-file-preview-card>img{width:82px;height:58px;flex:none;border-radius:6px;background:#eef5f4;object-fit:contain}
.finance-file-preview-card>div{flex:1;min-width:0}
.finance-file-preview-card strong,.finance-file-preview-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-file-preview-card strong{font-size:12px}
.finance-file-preview-card small{margin-top:4px;color:#729087;font-size:10px}
.finance-file-pdf{display:grid;place-items:center;flex:none;width:52px;height:48px;border-radius:7px;background:#eaf7f3;color:#087f6e;font-size:11px;font-weight:800}
.finance-evidence-actions{align-items:center;flex-wrap:nowrap}
.invoice-inline-original{display:flex;align-items:center;gap:16px;margin:13px 0;padding:12px 14px;border:1px solid #d9e8e5;border-radius:9px;background:#f8fbfa}
.invoice-inline-original>div{flex:1;min-width:0}
.invoice-inline-original>div>strong,.invoice-inline-original>div>small{display:block}
.invoice-inline-original>div>small{margin-top:4px;color:#71857f;font-size:10px}
.invoice-inline-original .order-evidence-thumb{width:142px;height:92px;margin:0;flex:none}
.invoice-inline-pdf{display:grid;place-items:center;flex:none;width:110px;height:76px;border:1px solid #cfe2de;border-radius:8px;background:#fff;color:#317064;cursor:pointer}
.invoice-inline-pdf b,.invoice-inline-pdf span{display:block}
.invoice-inline-pdf span{font-size:10px}
@media(max-width:620px){.finance-batch-section-head{align-items:stretch;flex-direction:column}.finance-batch-section-head .btn{width:100%}.finance-batch-row{padding:13px}.finance-file-preview-card{align-items:flex-start;flex-wrap:wrap}.finance-file-preview-card>div{min-width:140px}.finance-file-preview-card>.btn{width:100%}.invoice-inline-original{align-items:stretch;flex-direction:column}.invoice-inline-original .order-evidence-thumb,.invoice-inline-pdf{width:100%;height:112px}}
.dashboard-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-link{display:block;width:100%;min-height:130px;text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.stat-link:hover{border-color:#50baa8;box-shadow:0 9px 26px #12334b14;transform:translateY(-2px)}
.stat-link:focus-visible{outline:3px solid #13aa94;outline-offset:3px}
#dashboard-my-tasks,#dashboard-pending-approvals,#notification-list{scroll-margin-top:90px}
@media(max-width:1350px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.dashboard-metrics{grid-template-columns:1fr}}
.order-evidence-item{min-width:160px}
.order-evidence-thumb{display:block;position:relative;width:160px;height:108px;padding:0;margin:0 0 7px;border:1px solid #d5e3e7;border-radius:8px;overflow:hidden;background:#f2f7f8;color:#4a6776;text-align:center;cursor:pointer}
.order-evidence-thumb:hover{border-color:#09a18b;box-shadow:0 4px 12px #0b665022}
.order-evidence-thumb img{display:block;width:100%;height:100%;object-fit:contain;opacity:0}
.order-evidence-thumb.ready img{opacity:1}
.order-evidence-thumb span{position:absolute;inset:auto 0 0;padding:5px;background:#10394ab8;color:#fff;font-size:11px}
.order-evidence-thumb:not(.ready) span{inset:0;display:grid;place-items:center;background:transparent;color:#64808d}
.order-evidence-thumb.unavailable span{color:#b43e46}
.order-evidence-ocr{margin-top:5px;font-size:11px;color:#607a89;white-space:normal}
.order-evidence-ocr summary{cursor:pointer}
.order-evidence-ocr .record-meta{max-height:none;white-space:pre-wrap;overflow-wrap:anywhere}
.order-movement-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:112px}
.order-movement-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.order-movement-detail-grid>div{min-width:0;padding:11px 12px;background:#f7fafb;border:1px solid #e8eff1;border-radius:8px}
.order-movement-detail-grid span{display:block;color:#7b909d;font-size:11px;margin-bottom:5px}
.order-movement-detail-grid strong{display:block;color:#29495d;font-size:13px;overflow-wrap:anywhere}
.order-movement-note{display:flex;gap:12px;margin-top:14px;padding:12px 14px;border-radius:8px;background:#f7fafb;font-size:12px;color:#405f70;line-height:1.5}
.order-movement-note b{white-space:nowrap}
.order-movement-document-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid #e8eff1;margin-top:20px;padding-top:18px}
.order-movement-document-head h3{font-size:15px;color:#24465b;margin:0 0 14px}
.order-movement-documents{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.order-movement-document{min-width:0;padding:12px;border:1px solid #e0eaee;border-radius:9px;background:#fff}
.order-movement-document h4{font-size:12px;color:#31546a;margin:0 0 10px}
.order-movement-document .order-evidence-item{max-width:none;min-width:0}
.order-movement-document .order-evidence-thumb{width:100%;height:140px}
.order-movement-document .link{white-space:normal;text-align:left;overflow-wrap:anywhere;line-height:1.5}
@media(max-width:800px){.order-movement-detail-grid,.order-movement-documents{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.order-movement-detail-grid,.order-movement-documents{grid-template-columns:1fr}.order-movement-document-head{display:block}.order-movement-document-head h3{margin-bottom:4px}}
.evidence-preview{display:grid;place-items:center;min-height:280px;max-height:70vh;overflow:auto;padding:14px;background:#f4f7f8}
.evidence-preview-image{display:block;max-width:100%;max-height:66vh;object-fit:contain}
.evidence-preview-frame{width:100%;height:66vh;border:0;background:#fff}
.warehouse-movement-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.warehouse-movement-meta{min-width:0;padding:11px 13px;border:1px solid #e4edef;border-radius:8px;background:#f8fbfb}
.warehouse-movement-meta span{display:block;margin-bottom:5px;color:#8294a1;font-size:11px}
.warehouse-movement-meta strong{display:block;color:#2b4759;font-size:12px;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.warehouse-movement-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.warehouse-movement-file{display:flex;align-items:center;gap:11px;min-width:0;padding:13px;border:1px solid #dce9e8;border-radius:9px;background:#fff}
.warehouse-movement-file-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:8px;background:#e3f6f1;color:#098574;font-size:17px}
.warehouse-movement-file strong{flex:1;min-width:0;color:#2b4759;font-size:12px}
.warehouse-movement-file .page-actions{flex:none}
@media(max-width:700px){.warehouse-movement-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-movement-files{grid-template-columns:1fr}}
.keeper-workbench>.toolbar{align-items:flex-end;margin-bottom:17px}
.keeper-workbench>.toolbar .field{min-width:160px}
.keeper-workbench>.toolbar .field label{display:block;margin-bottom:5px}
.keeper-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:17px}
.keeper-summary>div{padding:18px 20px;border:1px solid #dcebe6;border-radius:10px;background:#f4fbf8}
.keeper-summary span{display:block;color:#627d80;font-size:12px;margin-bottom:7px}
.keeper-summary strong{display:block;color:#176c5b;font-size:22px;line-height:1.2}
.keeper-workbench>.card+.card{margin-top:17px}
.keeper-payroll-section{margin-top:17px}
[data-employee-org-fields]{display:contents}
form[data-form="employee-onboard"] .form-grid>.field-hint,form[data-form="employee-profile"] .form-grid>.field-hint{grid-column:1/-1;margin:0}
.employee-signing-settings{padding:14px;background:#f7f9fc;border:1px solid #dbe3ee;border-radius:9px;margin:16px 0}
.employee-signing-settings h3{margin:0 0 12px}
.employee-contract-fields{border-top:1px solid #dbe3ee;margin-top:12px;padding-top:12px}
.employee-contract-fields summary{cursor:pointer;color:#21354f}
.employee-contract-fields .form-grid{margin:12px 0}
.employee-signing-settings .field>label{display:flex;align-items:center;gap:8px;font-weight:500}
.employee-signing-settings .field input[type="checkbox"]{width:auto}
.payroll-summary-table th,.payroll-summary-table td{white-space:nowrap;padding:10px 12px;font-size:12px}
.payroll-benefit-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.payroll-benefit-panels details,.payroll-history-fields{border:1px solid #dbe3ee;border-radius:8px;padding:12px}
.payroll-benefit-panels summary,.payroll-history-fields summary{cursor:pointer;color:#21354f}
.payroll-benefit-panels .table-wrap{margin-top:10px}
.payroll-history-fields{margin-top:14px}
.payroll-history-fields .form-grid{margin-top:12px}
@media(max-width:760px){.payroll-benefit-panels{grid-template-columns:1fr}.employee-signing-settings{padding:12px}}
@media(max-width:620px){.keeper-summary{grid-template-columns:1fr}.keeper-workbench>.toolbar{align-items:stretch;flex-direction:column}}
.ai-status-grid{display:grid;grid-template-columns:.8fr 1.4fr;gap:14px;margin-bottom:17px}
.ai-status-card,.ai-model-card{padding:18px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.ai-status-label{color:#6e8391;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ai-status-card small,.ai-model-card small{color:#718793;font-size:11px;line-height:1.55}
.ai-model-card strong{color:#24465a;font-size:15px}
.ai-model-card code{max-width:100%;padding:4px 7px;border-radius:5px;background:#f1f6f7;color:#456474;font-size:11px;overflow-wrap:anywhere}
.ai-workspace{display:grid;gap:17px}
.ai-analysis-form textarea{min-height:240px;line-height:1.7;font-family:inherit}
.ai-analysis-form .form-footer{align-items:center;justify-content:space-between}
.ai-form-note{color:#7a8d98;font-size:11px;line-height:1.5}
.ai-result-card .section-body{display:grid;gap:17px}
.ai-result-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ai-result-meta>div{padding:13px 15px;border:1px solid #e2ebee;border-radius:9px;background:#f8fbfb;min-width:0}
.ai-result-meta span,.ai-result-meta small{display:block;color:#7d909c;font-size:11px}
.ai-result-meta strong{display:block;margin:5px 0;color:#24465a;font-size:13px;overflow-wrap:anywhere}
.ai-advisory{font-size:13px}
.ai-result-output,.ai-usage-raw{margin:0;padding:17px;border:1px solid #dce8eb;border-radius:9px;background:#f5f8f9;color:#294a5d;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:520px;overflow:auto;font:12px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace}
.ai-usage-block h3{margin:0 0 10px;color:#385569;font-size:12px}
.ai-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ai-usage>div{padding:11px 13px;border-radius:8px;background:#f5faf8}
.ai-usage span{display:block;color:#718793;font-size:11px;margin-bottom:5px}
.ai-usage strong{display:block;color:#18725f;font-size:15px}
@media(max-width:900px){.ai-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.ai-status-grid,.ai-result-meta,.ai-usage{grid-template-columns:1fr}.ai-status-card{grid-column:auto}.ai-analysis-form .form-footer{align-items:stretch;flex-direction:column}.ai-analysis-form .form-footer .btn{width:100%}}

.invoice-smart-entry{display:flex;align-items:center;gap:20px;margin-bottom:17px;padding:18px 20px;border:1px solid #bfe8dc;border-radius:12px;background:linear-gradient(115deg,#edf9f5 0%,#fff 70%)}
.invoice-smart-entry-copy{display:flex;align-items:flex-start;gap:13px;flex:1;min-width:250px}
.invoice-smart-mark{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:#0a9d87;color:#fff;font-size:12px;font-weight:800;box-shadow:0 7px 16px #0797802c}
.invoice-smart-entry-copy strong{display:block;color:#185547;font-size:14px;margin:1px 0 5px}
.invoice-smart-entry-copy p{max-width:680px;margin:0;color:#58766f;font-size:12px;line-height:1.6}
.invoice-smart-steps{display:flex;gap:8px;align-items:center;color:#54766e;font-size:11px;white-space:nowrap}
.invoice-smart-steps span{display:flex;align-items:center;gap:5px}
.invoice-smart-steps b,.invoice-workflow b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dceee9;color:#287668;font-size:10px}
.invoice-manual-hint{display:flex;justify-content:space-between;align-items:center;gap:12px}
.invoice-workflow{display:grid;grid-template-columns:auto minmax(20px,1fr) auto minmax(20px,1fr) auto;align-items:center;gap:9px;margin-bottom:17px;color:#738a91;font-size:12px;font-weight:600}
.invoice-workflow span{display:flex;align-items:center;gap:7px;white-space:nowrap}
.invoice-workflow span.active{color:#087f6c}
.invoice-workflow span.active b{background:#079b84;color:#fff}
.invoice-workflow i{height:1px;background:#d9e7e5}
.invoice-upload-intro{display:grid;gap:15px}
.invoice-upload-box{display:flex;min-height:170px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:24px;border:2px dashed #bddbd5;border-radius:11px;background:#f8fcfb;color:#2d5d55;text-align:center;cursor:pointer;transition:.15s ease}
.invoice-upload-box:hover,.invoice-upload-box:focus-within{border-color:#079b84;background:#f0faf7}
.invoice-upload-box input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.invoice-upload-box small{color:#789088;font-size:11px;font-weight:400}
.invoice-upload-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#dff4ee;color:#078b77;font-size:22px;font-weight:700}
.invoice-upload-summary{padding:11px 13px;border-radius:8px;background:#f4f7f8;color:#81919a;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.invoice-upload-summary strong,.invoice-upload-summary span{display:block}
.invoice-upload-summary.has-files{background:#edf9f5;color:#367063}
.invoice-fill-policy{display:flex;gap:10px;padding:11px 13px;border-left:3px solid #13a28b;background:#f6faf9;color:#607972;font-size:11px;line-height:1.6}
.invoice-fill-policy b{flex:none;color:#267263}
.invoice-review-overview{display:grid;gap:15px;background:#fbfdfd}
.invoice-review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.invoice-review-summary>div{padding:13px 15px;border:1px solid #dce9e7;border-radius:9px;background:#fff}
.invoice-review-summary span{display:block;color:#7a8e92;font-size:11px}
.invoice-review-summary strong{display:block;margin-top:5px;color:#1d695b;font-size:20px}
.invoice-review-summary .has-warning{border-color:#eccd9f;background:#fffaf1}
.invoice-review-summary .has-warning strong{color:#b46b16}
.invoice-review-list{display:grid;gap:15px;background:#f5f8f9}
.invoice-review-row{padding:17px 18px;border:1px solid #dce7ea;border-radius:11px;background:#fff;box-shadow:0 3px 12px #173b5008}
.invoice-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:1px solid #e8eff1}
.invoice-review-head>div:first-child{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;min-width:0}
.invoice-review-index{grid-row:1/3;align-self:start;padding:5px 7px;border-radius:6px;background:#e8f6f2;color:#157764;font-size:10px;font-weight:700;white-space:nowrap}
.invoice-review-head strong{min-width:0;color:#25495b;font-size:13px;overflow-wrap:anywhere}
.invoice-review-head small{color:#8597a1;font-size:11px;overflow-wrap:anywhere}
.invoice-review-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.invoice-review-meta{display:grid;grid-template-columns:1fr .8fr 1.4fr;gap:10px;margin:13px 0}
.invoice-review-meta>div{min-width:0;padding:10px 12px;border-radius:8px;background:#f6f9fa}
.invoice-review-meta span,.invoice-review-meta small{display:block;color:#80939d;font-size:10px}
.invoice-review-meta strong{display:block;margin-top:4px;color:#315568;font-size:12px;overflow-wrap:anywhere}
.invoice-review-meta .badge{margin-top:5px}
.invoice-review-alert{padding:10px 12px;border-radius:7px;background:#fff7e8;color:#9a651a;font-size:11px;line-height:1.5}
.invoice-review-alert.ready{background:#eef8f5;color:#247362}
.invoice-row-error,.invoice-duplicate-alert{margin:10px 0;font-weight:600}
.invoice-review-fields{margin-top:14px}
.invoice-review-fields [data-recognition-missing="true"]{border-color:#e6b75f;background:#fffdf7}
/* 第四批：发票智能填充多文件上传进度与核对页清单配对 */
.invoice-upload-box.is-dragging{border-color:#079b84;background:#e6f7f2}
.invoice-upload-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.invoice-upload-list:empty{display:none}
.invoice-upload-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start;padding:11px 13px;border:1px solid #dce9e7;border-radius:9px;background:#fff}
.invoice-upload-item.is-done{border-color:#bfe3d8;background:#fbfefd}
.invoice-upload-item.is-failed{border-color:#efcdd0;background:#fffafa}
.invoice-upload-item.is-skipped{background:#f7f9fa}
.invoice-upload-type{display:grid;place-items:center;min-width:44px;height:30px;padding:0 6px;border-radius:7px;background:#e8f6f2;color:#157764;font-size:10px;font-weight:700}
.invoice-upload-item.is-failed .invoice-upload-type{background:#fde9ea;color:#c43b46}
.invoice-upload-main{min-width:0}
.invoice-upload-name{display:flex;gap:8px;align-items:baseline;min-width:0}
.invoice-upload-name strong{min-width:0;color:#25495b;font-size:12px;overflow-wrap:anywhere}
.invoice-upload-name small{flex:none;color:#8a9ba4;font-size:10px}
.invoice-upload-state{margin-top:3px;color:#5f7781;font-size:11px;line-height:1.5}
.invoice-upload-item.is-failed .invoice-upload-state{color:#b53742}
.invoice-upload-progress{height:5px;margin-top:7px;border-radius:9px;background:#e6efee;overflow:hidden}
.invoice-upload-progress span{display:block;height:100%;border-radius:9px;background:#14a890;transition:width .2s}
.invoice-upload-progress span.is-indeterminate{width:40%!important;animation:invoice-upload-busy 1.1s ease-in-out infinite}
@keyframes invoice-upload-busy{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
.invoice-upload-units{display:grid;gap:5px;margin:8px 0 0;padding:0;list-style:none}
.invoice-upload-units li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px;padding:6px 9px;border-radius:7px;background:#f4f9f8;color:#36586a;font-size:11px}
.invoice-upload-units b{color:#157764}
.invoice-upload-units em{font-style:normal;color:#7b8f98}
.invoice-upload-notes{display:grid;gap:3px;margin-top:6px;color:#9a651a;font-size:10px;line-height:1.5}
.invoice-upload-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.invoice-review-append{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px;border:1px dashed #bddbd5;border-radius:9px;background:#f8fcfb;color:#5c7771;font-size:11px}
.invoice-list-notice{margin:10px 0}
@media(max-width:620px){.invoice-upload-item{grid-template-columns:1fr}.invoice-upload-type{justify-self:start}.invoice-upload-actions{justify-content:flex-start}.invoice-review-append{flex-direction:column;align-items:stretch}.invoice-review-append .btn{width:100%}}
.invoice-review-row[data-row-status="committed"] .invoice-review-fields input,.invoice-review-row[data-row-status="committed"] .invoice-review-fields select,.invoice-review-row[data-row-status="posting"] .invoice-review-fields input,.invoice-review-row[data-row-status="posting"] .invoice-review-fields select{pointer-events:none;background:#f2f5f6;color:#71838d}
.invoice-review-actions{display:flex;align-items:center;justify-content:space-between;gap:13px;margin-top:16px;padding-top:13px;border-top:1px solid #e8eff1}
.invoice-review-actions>span{color:#7a8e98;font-size:11px;line-height:1.5}
.invoice-review-footer{position:sticky;bottom:0;z-index:2;align-items:center;justify-content:space-between;box-shadow:0 -5px 18px #143d5110}
.invoice-review-footer>span{color:#728790;font-size:11px;line-height:1.5}
.invoice-source-preview{position:fixed;inset:0;z-index:35;display:grid;place-items:center;padding:18px;background:#0b2339b8}
.invoice-source-preview-panel{width:min(1000px,100%);max-height:94vh;overflow:auto;border-radius:14px;background:#fff;box-shadow:0 22px 70px #051c2d66}
@media(max-width:900px){.invoice-smart-entry{align-items:flex-start;flex-wrap:wrap}.invoice-smart-steps{order:3;width:100%}.invoice-review-meta{grid-template-columns:1fr 1fr}.invoice-review-meta>div:last-child{grid-column:1/-1}}
@media(max-width:620px){.invoice-smart-entry{display:grid;padding:15px}.invoice-smart-entry-copy{min-width:0}.invoice-smart-entry>.btn{width:100%}.invoice-smart-steps{display:grid;grid-template-columns:1fr}.invoice-manual-hint,.invoice-review-head,.invoice-review-actions,.invoice-review-footer{align-items:stretch;flex-direction:column}.invoice-workflow{gap:5px;font-size:10px}.invoice-workflow b{width:20px;height:20px}.invoice-review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-review-list{padding:13px}.invoice-review-row{padding:14px}.invoice-review-meta{grid-template-columns:1fr}.invoice-review-meta>div:last-child{grid-column:auto}.invoice-review-head-actions{justify-content:flex-start}.invoice-review-actions .page-actions,.invoice-review-actions .btn,.invoice-review-footer .page-actions,.invoice-review-footer .btn{width:100%}.invoice-upload-box{min-height:145px;padding:18px}.invoice-fill-policy{display:block}.invoice-fill-policy b{display:block;margin-bottom:4px}.invoice-source-preview{align-items:end;padding:0}.invoice-source-preview-panel{max-height:96vh;border-radius:14px 14px 0 0}}

[data-counterparty-input][readonly]{background:#f3f6f7;color:#345161;cursor:not-allowed}
.contract-information-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;margin-bottom:12px;overflow-wrap:anywhere}.contract-information-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.contract-information-grid .field{min-width:0}.contract-information-grid input{min-width:0;width:100%}.contract-information-grid input:disabled{background:#eef1f4;color:#788794;border-color:#dce3e8;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#788794}.contract-information-full{grid-column:1/-1}.contract-information-note{margin:9px 0;line-height:1.55}.contract-information-terms{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:11px;border-top:1px solid #e6edf1}.contract-information-readonly>summary{font-size:12px;color:#6a7e8c;cursor:pointer}.contract-information-readonly[open]>.contract-information-grid{margin-top:10px}@media(max-width:620px){.contract-information-form .form-section{padding:14px 16px}.contract-information-grid{gap:8px}.contract-information-grid label{font-size:11px}.contract-information-grid input{font-size:12px;padding:8px}.contract-information-terms{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-information-terms>.field:last-child{grid-column:1/-1}.contract-information-heading strong{font-size:13px}.contract-information-heading span{width:100%}.contract-information-form .form-footer{padding:12px 16px}}
.application-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.application-entry{display:flex;align-items:center;gap:14px;min-height:0;padding:12px 16px;text-align:left;color:#23495d;cursor:pointer;border:1px solid #dce8eb;font-family:inherit;transition:border-color .15s,box-shadow .15s}
.application-entry:hover,.application-entry.active{border-color:#30ab95;box-shadow:0 5px 20px #1b826710;background:#fbfefd}
.application-entry-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:10px;background:#e7f5f0;color:#0a917a;font-size:20px;font-weight:700}
.application-entry-copy{flex:1;min-width:0}.application-entry h2{margin:0 0 3px;font-size:16px}.application-entry p{margin:0;color:#7c919c;font-size:11px;line-height:1.5}
.application-entry-counts{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px;font-size:11px;color:#78909a}.application-entry-counts b{margin-left:4px;color:#23495d;font-size:13px}.application-entry-arrow{color:#14947c;font-size:18px}
.application-entry-counts{align-items:center}.application-review-count{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid transparent;border-radius:7px}.application-review-count.has-pending{background:#fff1df;border-color:#f5bd79;color:#9a3412;font-weight:700}.application-review-count.has-pending b{color:#9a3412}.application-review-count.is-clear{background:#f3f6f7;color:#71808c}.application-review-count.is-clear b{color:#71808c}
.application-pending-row>td{background:#fffaf3}.application-pending-row>td:first-child{box-shadow:inset 3px 0 #f59e0b}.application-mine-badge{display:inline-block;margin:4px 0;padding:4px 7px;border:1px solid #f5bd79;border-radius:5px;background:#fff1df;color:#9a3412;font-size:10px;font-weight:700;white-space:nowrap}.btn.application-review-action{border-color:#f5bd79;background:#fff1df;color:#9a3412;font-weight:700}.btn.application-review-action:hover{border-color:#e9a852;background:#ffe4ba;color:#7c2d12}
.application-blockpoint{max-width:270px;white-space:normal;color:#758c99;font-size:11px;line-height:1.6}
.application-center-toolbar select{min-height:38px;min-width:165px;padding:8px 12px;border:1px solid #dce6ea;border-radius:7px;background:#fff;color:#3c5c6d;font-family:inherit;font-size:12px}.application-center-toolbar select:focus{outline:0;border-color:#24a891;box-shadow:0 0 0 3px #24a89115}
.application-back{margin-bottom:10px}.application-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:10px}.application-detail-head h2{margin:0 0 5px;font-size:17px;color:#244c60}.application-detail-head .page-actions .btn{min-height:32px;padding:6px 11px}
.application-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 8px;margin-bottom:10px}.application-detail-meta>div{padding:6px 9px;border-radius:6px;background:#f5f9fa;min-width:0}.application-detail-meta span{display:block;font-size:10px;color:#8598a3;margin-bottom:1px;line-height:1.3}.application-detail-meta strong{display:block;font-size:12px;line-height:1.4;color:#2d5365;overflow-wrap:anywhere}
.application-purpose{margin:10px 0;font-size:12px;color:#355669}.application-purpose p{margin:3px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#738a97;line-height:1.7}.application-purpose p+b{display:inline-block;margin-top:8px}
.application-detail>.section-body{padding:14px 16px}.application-detail .callout{padding:8px 11px}.application-detail section.card{margin-top:12px;border-radius:10px;box-shadow:none}.application-detail .section-head{padding:10px 16px}.application-detail .section-head h2{font-size:14px}.application-detail .section-head p{font-size:11px;margin-top:2px}.application-detail section.card .section-body{padding:12px 16px}.application-detail .application-flow{gap:6px;margin-bottom:10px}.application-detail .application-flow-step{padding:6px 10px;font-size:11px}.application-detail .application-flow-step small{margin-top:2px}.application-detail .table th,.application-detail .table td{padding:8px 12px}.application-detail .empty{padding:22px 16px;font-size:12px}.application-detail .empty-icon{font-size:22px;margin-bottom:6px}
.application-flow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}.application-flow-step{padding:10px 14px;border:1px solid #e0e9ed;border-radius:8px;font-size:12px;color:#78909c}.application-flow-step small{display:block;margin-top:5px;font-size:10px}.application-flow-step.current{border-color:#eda94f;background:#fff8e8;color:#916221}.application-flow-step.done{border-color:#bcded2;background:#eff9f5;color:#208774}
.application-checkbox{display:flex;align-items:center;gap:8px}.application-checkbox input{width:17px;height:17px;min-height:0;accent-color:#009780}
.application-pdf-preview{width:100%;height:70vh;border:0}.application-image-preview{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}
@media(max-width:900px){.application-entry-grid{grid-template-columns:1fr}.application-detail-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:620px){.application-entry{padding:11px 12px;gap:10px}.application-entry h2{font-size:15px}.application-entry-icon{width:34px;height:34px;font-size:17px}.application-entry-counts{gap:8px}.application-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.application-detail-head .page-actions{width:100%}.application-detail-head .page-actions .btn{flex:1}}
.payment-application-detail{padding:14px 15px;border:1px solid #cfe3df;border-radius:10px;background:#f7fbfa}
.bank-audit-stamp{display:inline-block;padding:4px 7px;border:2px solid #c83240;border-radius:5px;color:#c83240;font-size:11px;font-weight:800;white-space:nowrap}
.audit-workspace .panel{padding:20px;margin-top:17px;border:1px solid #e0eaed;border-radius:12px;background:#fff;box-shadow:0 3px 12px #16354d05}.audit-workspace .panel>h3{margin:0 0 16px;font-size:15px;color:#244b5d}.audit-workspace .panel>p{font-size:12px;line-height:1.7;color:#678391}.audit-workspace .page-head h2{margin:0 0 10px;font-size:25px;color:#1b3e51}.audit-workspace .page-head p{margin:0;font-size:12px;color:#78909c}.audit-workspace .tabs{margin-bottom:17px}.audit-workspace .inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 0;font-size:12px}.audit-workspace .panel form{margin:17px 0}.audit-workspace table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.audit-workspace table th{padding:14px 16px;text-align:left;color:#7a8f9c;font-weight:600;background:#f7fafb;border-bottom:1px solid #e6eef1}.audit-workspace table td{padding:15px 16px;border-bottom:1px solid #edf2f4;color:#426274}.audit-workspace pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border-radius:8px;background:#f5f8fa;font-family:inherit;font-size:12px;line-height:1.8}.audit-workspace .form-grid>.btn{align-self:end}
@media(max-width:620px){.audit-workspace .panel{padding:15px}.audit-workspace .form-footer{display:flex;gap:8px;flex-wrap:wrap}.audit-workspace .form-footer .btn{flex:1}}
.nav-item{position:relative}
.navigation-counter{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:21px;height:21px;margin-left:auto;padding:0 5px;border-radius:999px;background:#d92d3c;color:#fff;font-size:10px;font-weight:700;line-height:1;box-shadow:0 0 0 2px #fff;white-space:nowrap}
.navigation-counter[hidden]{display:none}
.notification-link .navigation-counter{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;font-size:9px}
.notification-sound-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 9px;border:1px solid #dce7ea;border-radius:7px;background:#fff;color:#526d7e;font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap}
.notification-sound-btn:hover{background:#f1f8f6;border-color:#bcded4}.notification-sound-btn[aria-pressed="false"]{color:#82929c;background:#f7f9fa}.notification-sound-btn:disabled{opacity:.55;cursor:default}.notification-sound-btn [data-sound-icon]{font-size:16px;line-height:1}
.notification-sound-btn[hidden]{display:none}
.sticky-mobile button{position:relative}.sticky-mobile .navigation-counter{position:absolute;top:0;right:1px;min-width:18px;height:18px;font-size:9px}
@media(max-width:800px){.sidebar .nav-item .nav-text{display:none}.sidebar .nav-item .navigation-counter{position:absolute;top:1px;right:0;min-width:18px;height:18px;font-size:9px}.notification-sound-text{display:none}}
@media(max-width:620px){.notification-sound-btn{width:32px;height:32px;padding:0}}
.payment-application-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.payment-application-summary>div{min-width:0;padding:9px 10px;border-radius:7px;background:#fff}
.payment-application-summary span{display:block;margin-bottom:4px;color:#7b8f98;font-size:10px}
.payment-application-summary strong{display:block;color:#294d5d;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.payment-application-summary .payment-application-wide{grid-column:span 3}
.payment-application-actions{display:flex;justify-content:flex-end;margin-top:11px}
.payment-subject-mismatch{display:grid;gap:4px;margin-bottom:11px}
.payment-subject-mismatch span{line-height:1.6}
@media(max-width:900px){.payment-application-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-application-summary .payment-application-wide{grid-column:1/-1}}
@media(max-width:620px){.payment-application-summary{grid-template-columns:1fr}.payment-application-summary .payment-application-wide{grid-column:auto}.payment-application-actions .btn{width:100%}}

.employee-document-record{display:block;min-width:0;line-height:1.7}.employee-document-record>.toolbar{justify-content:flex-start;margin:12px 0}.employee-document-record details{margin-top:12px}.employee-document-record .employee-document-record{margin-top:10px}.employee-document-record p{overflow-wrap:anywhere}.employee-document-record label{display:block}

.audit-internal-table{min-width:1600px}.audit-internal-items td{background:#f7f9fc;white-space:normal}.audit-internal-item-group{display:flex;flex-wrap:wrap;gap:4px 16px;margin:2px 0}.audit-internal-item{display:inline-flex;gap:6px;align-items:baseline}.audit-internal-item em{font-style:normal;color:#5b6474}.audit-internal-total th,.audit-internal-total td{font-weight:600;background:#f1f4f8}.audit-internal-entry-table{width:100%;table-layout:auto}.audit-internal-entry-table input{width:100%;min-width:80px;box-sizing:border-box}.audit-internal-entry-table input[name$="-remark"]{min-width:140px}.audit-internal-entry-table th,.audit-internal-entry-table .btn{white-space:nowrap}.audit-internal-line-head th{text-align:left;background:#f1f4f8}.audit-internal-subtotal td{color:#5b6474;font-size:13px}[data-ai-action="remove-item"][hidden]{display:none}.audit-internal-remark-group{border:1px solid #e3e7ee;border-radius:6px;margin:8px 0;padding:6px 10px}.audit-internal-remark-item span{white-space:normal}.audit-internal-table th{white-space:nowrap}.audit-internal-table td{min-width:75px;vertical-align:top}.audit-link-pending td{background:#fff8e1}.audit-workspace .metric-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:18px}

.audit-workspace .metric-grid>.card{padding:14px 16px}.audit-workspace .metric-grid>.card>strong{display:block;font-size:20px;margin-top:8px;overflow-wrap:anywhere}

.company-records-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.company-records-card{min-width:0;padding:18px;text-align:left;border:1px solid #dce7ea;border-radius:12px;background:#fff;color:#34576a;font:inherit;cursor:pointer}
.company-records-card>span{display:block;font-size:14px;font-weight:700}.company-records-card>strong{display:block;margin:9px 0;font-size:27px;color:#244e60}.company-records-card>small{display:block;line-height:1.6;color:#82939e}
.company-records-card:hover,.company-records-card.is-selected{border-color:#20a68c;background:#effaf7;box-shadow:0 3px 14px #1c8a6c10}
.company-records-pagination{display:flex;align-items:center;gap:12px;padding-top:16px;font-size:12px;color:#7e929d}
.legal-order-seal{display:inline-block;margin:5px 8px;padding:4px 8px;border:2px solid #bc303b;border-radius:4px;color:#bc303b;font-size:12px;font-weight:800;white-space:nowrap;transform:rotate(-4deg)}
.employee-documents-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:22px 0}
.employee-documents-entry{display:block;text-align:left;padding:26px;border:1px solid #dce8ec;border-radius:14px;background:#fff;color:#2c5265;font:inherit;cursor:pointer;min-height:170px}
.employee-documents-entry:hover{border-color:#22a78e;box-shadow:0 5px 20px #25645912}.employee-documents-entry h2,.employee-documents-entry h3{margin:10px 0;font-size:21px}.employee-documents-entry p{line-height:1.8;color:#778d99}.employee-documents-entry strong{color:#18937c}
.employee-documents-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.employee-documents-metric{display:block;text-align:left;padding:18px;border:1px solid #dce8ec;border-radius:11px;background:#fff;color:#34576a;font:inherit;cursor:pointer;min-width:0}
.employee-documents-metric strong{display:block;margin:8px 0;font-size:25px;color:#244e60}.employee-documents-metric small{display:block;line-height:1.7;color:#82939e}.employee-documents-metric.is-selected{border-color:#23a78e;background:#eefaf7}.employee-documents-metric:hover{border-color:#23a78e}
.employee-documents-metrics-compact{grid-template-columns:repeat(3,minmax(0,220px));gap:10px;margin:12px 0}
.employee-documents-metrics-compact .employee-documents-metric{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:10px 13px;min-height:62px}
.employee-documents-metrics-compact .employee-documents-metric strong{grid-row:1 / 3;margin:0;font-size:22px}.employee-documents-metrics-compact .employee-documents-metric span{font-size:13px}.employee-documents-metrics-compact .employee-documents-metric small{font-size:11px;line-height:1.4}
.employee-documents-send-actions{width:100%;gap:12px}.employee-documents-send-actions [data-ed-action="stage"]{min-height:48px;min-width:172px;padding:12px 20px;font-size:15px;font-weight:600;border-color:#23a78e;color:#137d69;background:#f0fbf7}
.employee-document-identity{padding:14px 0}.employee-contract-fields [data-ed-employment-fields]{margin-top:14px}
.employee-document-item,.employee-document-version,.employee-stage-item{display:block;min-width:0;padding:16px;border:1px solid #e0e9ed;border-radius:9px;margin:12px 0;line-height:1.7;overflow-wrap:anywhere}
.employee-document-version{background:#f7f9fa}.employee-document-item .toolbar,.employee-stage-item .toolbar{justify-content:flex-start;flex-wrap:wrap;margin:10px 0}
.employee-documents-actions,.employee-documents-progress,.employee-documents-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:14px 0}.employee-documents-progress{padding:10px 15px;background:#f3f8f9;border-radius:8px;font-size:12px;color:#6b8593}.employee-documents-list,.employee-documents-filters{margin:17px 0}.employee-documents-entry>div{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;line-height:1.8;margin:16px 0}
[data-form="company-records-filter"],.company-records-grid+section.panel{background:#fff;border:1px solid #dfe9ed;border-radius:12px;padding:20px}
.company-records-workspace .panel{background:#fff;border:1px solid #dfe9ed;border-radius:12px;padding:20px;margin:17px 0}.company-records-workspace .table td{white-space:normal;min-width:130px;vertical-align:top}.company-records-workspace .table td:first-child{min-width:240px}.company-records-workspace .row-actions{display:flex;gap:7px;flex-wrap:wrap}
.company-records-grid+section.panel .section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}
@media(max-width:1100px){.company-records-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.employee-documents-entry-grid{grid-template-columns:1fr}.company-records-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-documents-metrics{grid-template-columns:1fr}.employee-documents-entry{padding:20px;min-height:140px}}
@media(max-width:700px){.employee-documents-metrics-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.employee-documents-metrics-compact .employee-documents-metric{grid-template-columns:1fr;text-align:center;padding:9px 5px;row-gap:3px}.employee-documents-metrics-compact .employee-documents-metric strong{grid-row:auto;font-size:20px}.employee-documents-metrics-compact .employee-documents-metric small{display:none}.employee-documents-send-actions [data-ed-action="stage"]{flex:1 1 calc(50% - 12px);min-width:130px}}

.administration-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:13px;margin:18px 0}
.administration-action-card{display:flex;flex-direction:column;gap:9px;align-items:flex-start;text-align:left;background:#fff;border:1px solid #dbe8ed;border-radius:11px;padding:19px;min-height:133px;color:#27485b}
.administration-action-card:hover,.administration-action-card:focus-visible{border-color:#159f88;background:#f2fbf8}
.administration-action-card strong{font-size:15px}.administration-action-card span{font-size:12px;color:#728b98;line-height:1.6}.administration-action-card b{margin-top:auto;color:#078c77;font-size:12px}
.company-records-operation{margin-top:24px}.company-records-operation .page-head{padding:0 2px;margin-top:20px}.company-records-operation .page-title{font-size:22px}
.social-insurance-panel .section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.social-insurance-panel .section-title h3{font-size:17px;margin:0 0 10px}
.social-insurance-panel .toolbar{justify-content:flex-start;margin-top:18px}.social-insurance-panel label{display:flex;gap:9px;align-items:center;font-size:12px;color:#4b697b}
.social-insurance-panel input,.social-insurance-panel select{padding:9px 11px;border:1px solid #dce7eb;border-radius:8px;background:white;color:#345467;max-width:270px}
.social-company-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:16px 0}.social-company-total{display:flex;flex-direction:column;gap:7px;padding:13px 15px;background:#f2f8f8;border-radius:9px;font-size:12px}.social-company-total span{color:#738b98}.social-company-total b{color:#138978}
.social-insurance-table td{vertical-align:top}.social-insurance-table td:first-child{min-width:190px}.social-insurance-panel .row-actions,.modal .row-actions{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:700px){.administration-action-grid{grid-template-columns:1fr}.social-insurance-panel label{flex-direction:column;align-items:flex-start}.social-insurance-panel .section-body{padding:16px}}
/* Role-scoped reports, compact staff actions and monthly filing tasks. */
.report-center-workspace{display:grid;gap:18px;min-width:0}
.report-center-workspace .page-head{margin-bottom:0}
.report-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.report-metric{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:18px;background:#fff;border:1px solid #dce3eb;border-radius:12px;color:#536074;text-align:left;cursor:pointer}
.report-metric strong{font-size:28px;color:#172c43}
.report-metric.active{border-color:#147d84;background:#f0faf9}
.report-metric:first-child strong{color:#ba5422}
.report-status{display:inline-flex;padding:5px 10px;border-radius:20px;background:#eef2f6;font-size:12px;white-space:nowrap}
.report-status-pending_review,.report-status-pending{color:#aa481d;background:#fff0e3;font-weight:700}
.report-status-approved{color:#176082;background:#eaf6ff}
.report-status-sent{color:#177a65;background:#e9f7f0}
.report-status-rejected{color:#b73e3e;background:#ffeded}
.report-detail-header{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:16px}
.report-center-workspace .report-reader-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.report-center-workspace .report-notification-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#526575;cursor:pointer;white-space:nowrap}
.report-center-workspace .report-notification-toggle input{width:14px;min-width:14px;min-height:auto;margin:0;padding:0;accent-color:#009f8d}
.report-center-workspace .table .report-row-read>td,.report-center-workspace .table .report-row-muted>td,.report-center-workspace .card.report-row-read,.report-center-workspace .card.report-row-muted{background:#edf0f2}
.report-center-workspace .table .report-row-muted>td,.report-center-workspace .card.report-row-muted{background:#e5e9ec}
.report-center-workspace .table .report-row-unread>td{background:#f0faf9}

.report-account{margin-top:20px;border-top:1px solid #e4e9ef;padding-top:16px}
.report-account h3{font-size:16px}.report-futures-company{border-left:4px solid #19818a;padding-left:12px;margin-top:20px}
.report-center-workspace .toolbar{display:flex;flex-wrap:wrap;gap:10px;padding:16px}
.report-center-workspace .toolbar select,.report-center-workspace .toolbar input{max-width:100%;width:auto;min-width:140px}
.report-center-workspace .mini-metrics{flex-wrap:wrap}
.report-center-workspace .row-actions,.tax-filing-panel .row-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.roster-expand-bar{display:flex;justify-content:center;padding:14px;border-top:1px solid #e4e9ef}
.employee-roster-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:5px;white-space:nowrap;max-width:300px;overflow-x:auto;padding:3px 0}
.company-records-workspace .employee-roster-table td{min-width:0;max-width:180px;padding:10px;font-size:12px}
.company-records-workspace .employee-roster-table th{padding:10px}
.company-records-workspace .employee-roster-table td:last-child{max-width:300px}
.employee-roster-table .btn.tiny{padding:5px 7px;flex-shrink:0;font-size:11px}
.employee-roster-table .btn.onboarding-completed{background:#1f2937;border-color:#1f2937;color:#fff}
.employee-roster-table .btn.onboarding-completed:hover{background:#111827;border-color:#111827}
.employee-roster-table .chips{gap:4px;max-width:140px}
.employee-roster-extra.hidden{display:none}
.workspace-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border:1px solid #d9e2ea;border-radius:8px;background:#fff;color:#53677d;font-size:22px;line-height:1;cursor:pointer}.workspace-close:hover{color:#a33434;background:#fff5f5;border-color:#e2bbbb}.page-head>.workspace-close{margin-left:auto}.workspace-close-bar{display:flex;justify-content:flex-end;margin-bottom:8px}
.bank-receipt-company{margin:0 0 20px}.bank-receipt-company h3{margin:0 0 12px;font-size:16px}.bank-receipt-card{padding:16px;border:1px solid #e1e5ec;border-radius:12px;margin:0 0 12px;background:#fff}.bank-receipt-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.bank-receipt-card-head small{display:block;color:#667085;margin-top:4px}.bank-receipt-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 16px}.bank-receipt-facts>div{min-width:0;padding:10px 12px;background:#f6f8fb;border-radius:8px}.bank-receipt-facts span{display:block;font-size:12px;color:#667085;margin-bottom:5px}.bank-receipt-facts strong{display:block;font-size:13px;overflow-wrap:anywhere}.bank-source-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.bank-source-choice-grid section{min-width:0}.bank-source-choice{display:block;text-align:left;width:100%;border:1px solid #e1e5ec;background:#fff;padding:12px;border-radius:10px;margin:8px 0;cursor:pointer}.bank-source-choice:hover{border-color:#3669ca;background:#f4f8ff}.bank-source-choice strong,.bank-source-choice span{display:block;overflow-wrap:anywhere}.bank-source-choice span{color:#667085;margin-top:6px;font-size:13px}@media(max-width:740px){.bank-receipt-facts,.bank-source-choice-grid{grid-template-columns:1fr}.bank-receipt-card-head{align-items:flex-start}}
.tax-filing-panel .toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}
.tax-filing-panel .toolbar label{display:flex;gap:8px;align-items:center}
@media(max-width:760px){.report-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-metric{padding:14px}.report-detail-header{align-items:flex-start;flex-direction:column;gap:8px}.report-center-workspace .page-head{flex-wrap:wrap;gap:12px}.report-center-workspace .tabs{overflow-x:auto}}
.verification-overlay{z-index:1100;overflow:auto;padding:24px;align-items:center}.verification-overlay .modal{width:min(760px,100%);max-height:90vh;overflow:auto}.verification-comparison{display:grid;grid-template-columns:100px 1fr 1fr 26px;gap:10px;padding:8px 0;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere}.entry-verified{color:#15803d;font-weight:700}.entry-failed,.entry-overridden{color:#b91c1c;font-weight:700}.entry-verification-result{padding:12px;background:#f8fafc;border-radius:8px;margin:8px 0}.reminder-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #e2e8f0}.entry-review-workspace .section-body{padding:20px}.entry-review-workspace .form-footer{gap:12px}.finance-evidence-actions{flex-wrap:wrap}.entry-verification-badge{display:block;font-size:12px;margin-top:6px}@media(max-width:640px){.verification-comparison{grid-template-columns:1fr;gap:4px}.verification-overlay{padding:10px}.reminder-row{align-items:flex-start}.reminder-row .btn{flex-shrink:0}}
.grid>.card,.grid>section,.main-content,.report-center-workspace,.entry-review-workspace{min-width:0}.employee-roster-table{width:100%}.card .table-wrap{max-width:100%}
.split{min-width:0}.split>*{min-width:0}.split>.card>.table-wrap{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
/* 附件在线浏览：表格与文本 */
.file-preview-body{max-height:70vh;overflow:auto;padding:4px 2px}
.file-preview-sheet+.file-preview-sheet{margin-top:18px}
.file-preview-sheet h3{margin:0 0 8px;font-size:14px}
.file-preview-table-wrap{overflow:auto;border:1px solid #d9dee4;border-radius:6px;background:#fff}
.file-preview-table{border-collapse:collapse;font-size:13px;min-width:100%}
.file-preview-table td{border:1px solid #e6eaee;padding:5px 8px;white-space:pre-wrap;vertical-align:top;max-width:360px}
.file-preview-table tr:first-child td{background:#f4f7f8;font-weight:600}
.file-preview-text{margin:0;padding:14px;background:#f4f7f8;border-radius:6px;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6}
.breadcrumbs{display:flex;align-items:center;min-width:0}.breadcrumbs strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-short{display:none}@media(max-width:620px){.breadcrumb-prefix{display:none}.breadcrumb-full:not(:only-child){display:none}.breadcrumb-short{display:inline}}.page-back{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;height:32px;margin-right:14px;padding:0 12px;border:1px solid #d9e2ea;border-radius:8px;background:#fff;color:#20445f;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.page-back:hover{background:#f1f6f9;border-color:#b9cbd8}.page-back:focus-visible{outline:2px solid #2d7d9a;outline-offset:2px}.page-back[hidden]{display:none}
@media(max-width:620px){.page-back{height:30px;margin-right:8px;padding:0 9px}.page-back-text{font-size:0}.page-back-text::after{content:'返回';font-size:12px}}
form[data-form="audit-internal-create"]{padding:4px 18px 12px}form[data-form="audit-internal-create"] .table-wrap{overflow-x:auto;max-width:100%}form[data-form="audit-internal-create"] .audit-internal-entry-table{min-width:760px}

/* 资金与发票标签栏：「银行日记账」加粗标红。未选中为红色粗体，选中加深红并显示红色下划线；font-synthesis 保证缺少粗体字形的字体仍显示加粗 */
.tabs .tab.finance-tab-journal{color:#c8323e;font-weight:700;font-synthesis:weight}.tabs .tab.finance-tab-journal:hover{color:#b3202c}.tabs .tab.finance-tab-journal.active{color:#b3202c;border-color:#b3202c}
/* 站内信 / 申请及审批中心直达合同审批：订单“合同”页签顶部的本次审批卡片与表格行高亮（2.5 秒后渐隐） */
.approval-focus-card{margin:16px 0 4px;padding:14px 16px;border-left:3px solid #00a991;background:#f7fcfa;display:grid;gap:8px}
.approval-focus-card .approval-focus-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.approval-focus-card h3{margin:2px 0 0;font-size:14px;color:#17364e}
.approval-focus-card .page-actions{justify-content:flex-start}
tr.approval-target-focus>td{background:#f2fbf8;transition:background 1.2s ease}
tr.approval-target-focus>td:first-child{box-shadow:inset 3px 0 #00a991}
tr.approval-target-focus.approval-target-fade>td{background:transparent}
tr.approval-target-focus.approval-target-fade>td:first-child{box-shadow:inset 3px 0 #00a99155}
.application-unavailable{margin-top:12px}
@media(max-width:620px){.approval-focus-card .page-actions .btn{flex:1 1 40%}}
/* 飞书附件预览弹窗（public/feishu-attachment-entry.js）：内容区按视口高度自适应，底部“关闭 / 下载原件”固定在弹窗底部始终可见。
   只作用于飞书附件入口的弹窗，不改变全站附件预览。弹窗本身最高 92vh（手机 95vh），标题与底部按钮约占 190–250px。 */
.feishu-attachment-body .evidence-preview{min-height:0;max-height:max(220px,calc(92vh - 190px))}
.feishu-attachment-body .evidence-preview-frame{height:max(200px,calc(92vh - 240px))}
.feishu-attachment-body .file-preview-body{max-height:max(220px,calc(92vh - 180px))}
.feishu-attachment-scroll{max-height:max(200px,calc(92vh - 260px));overflow:auto}
.modal .feishu-attachment-footer{position:sticky;bottom:0;z-index:2}
@media(max-width:620px){.feishu-attachment-body .evidence-preview{max-height:max(200px,calc(95vh - 180px))}.feishu-attachment-body .evidence-preview-frame{height:max(200px,calc(95vh - 230px))}.feishu-attachment-scroll{max-height:max(200px,calc(95vh - 250px))}}
/* 公司文书模板库：待审批的一版突出显示（验收 A7）。 */
.tl-pending-version{padding:6px 8px;border-radius:8px;background:#fff8e9}
/* 创建业务订单：合同行内「预审合同」上传区与自动识别回填高亮（2026-10-09 第三批第 2 项）。 */
.prepare-contract{margin:26px 0 4px;padding:10px 12px;border:1px dashed #cfe0e4;border-radius:8px;background:#f7fbfb}
.repeat-row .prepare-contract+.form-grid{padding-top:12px}
.prepare-contract-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.prepare-contract-head label{font-size:12px;color:#41596b;font-weight:600}
.prepare-contract-controls{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;align-items:center}
.prepare-contract-controls input{width:100%;border:1px solid #dce7eb;border-radius:8px;background:#fff;min-height:34px;padding:6px 9px;font-size:12px;color:#244257}
.prepare-contract-status{margin-top:8px;line-height:1.6}
.prepare-contract-status .link{margin-left:4px}
.field input.ai-filled,.field select.ai-filled{background:#fff8dc;border-color:#e9c96a}
@media(max-width:620px){.prepare-contract-controls{grid-template-columns:1fr}}
/* 通用多文件控件（public/multi-file-field.js，2026-10-12 第四批）：可多次选择累加、逐个移除；按钮覆盖原生选择框，手机端可直接点按。 */
.multi-file-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.multi-file-choose{position:relative;overflow:hidden;cursor:pointer}
.multi-file-choose input[type=file]{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:0}
.multi-file-choose:focus-within{outline:2px solid #00a991;outline-offset:2px}
.multi-file-summary{font-size:12px;color:#738596}
.multi-file-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.multi-file-list:empty{display:none}
.multi-file-item{display:flex;align-items:center;gap:10px;min-width:0;padding:7px 10px;border:1px solid #e0eaed;border-radius:8px;background:#f7fbfb;font-size:12px}
.multi-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#244257}
.multi-file-size{flex:none;color:#8fa0ab}
.multi-file-item .link{flex:none;font-size:12px}
.multi-file-remove{color:#c74249}
.multi-file-error{font-size:12px;line-height:1.5;color:#c74249}
.multi-file-field.invalid .multi-file-choose{border-color:#efd2d3}
@media(max-width:620px){.multi-file-item{flex-wrap:wrap;gap:4px 10px}.multi-file-name{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}}
/* 管理费用登记与发票台账「已付款未收票」（2026-10-12 第四批）。 */
.expense-company-search{margin-bottom:6px}
.expense-invoice-modes{margin-top:4px}
.expense-invoice-existing-picker{display:flex;gap:8px;align-items:center}
.expense-invoice-existing-picker select{flex:1;min-width:0}
.expense-invoice-existing-list{display:flex;flex-wrap:wrap;gap:6px}
.expense-invoice-cards{display:grid;gap:4px}
.expense-invoice-card .form-grid{padding-top:10px}
.expense-invoice-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}
.expense-invoice-card-head .page-actions{margin-left:auto}
.invoice-awaiting-heading{font-size:13px;margin:18px 0 8px;color:#1e3d51}
.invoice-awaiting-toolbar input[type=date]{border:1px solid #dce7eb;border-radius:8px;padding:6px 8px;font-size:12px}
.invoice-awaiting-toolbar select{border:1px solid #dce7eb;border-radius:8px;padding:8px 10px;font-size:12px;background:#fff}
/* 管理费用台账（截图复核第 7 条）：8 列在 1440 宽下完整显示——日期、金额不折行，类别、收款方、说明、发票、付款状态可换行，
   操作按钮换行排列（每行约两个）；更窄时仍由 .table-wrap 横向滚动。 */
.expense-ledger .table td{white-space:normal;vertical-align:top}
.expense-ledger .table th,.expense-ledger .table td{padding:12px 11px}
.expense-ledger .table td.expense-nowrap{white-space:nowrap}
.expense-ledger .table td.expense-text{min-width:7em}
.expense-ledger .table td.expense-description{min-width:10em;max-width:18em}
.expense-ledger .table .link{white-space:nowrap}
.expense-row-actions{display:flex;flex-wrap:wrap;gap:6px;max-width:172px}
[data-invoice-awaiting] .table td{white-space:normal;vertical-align:top}
/* 已付款未收票（截图复核）：日期、金额、编号、状态不折行，公司 / 收款方等文字列保留最小宽度，操作列按钮自动换行；
   列宽总和超过页面时表格横向滚动（.table-wrap），不再把“2026-10-12”“¥ 12,000.00”挤成两行。 */
[data-invoice-awaiting] .table th,[data-invoice-awaiting] .table td{padding:11px 10px}
[data-invoice-awaiting] .table td.awaiting-nowrap{white-space:nowrap}
[data-invoice-awaiting] .table td.awaiting-name{min-width:8.5em}
[data-invoice-awaiting] .table td.awaiting-actions{min-width:190px}
@media(max-width:620px){.expense-invoice-existing-picker{flex-direction:column;align-items:stretch}.expense-invoice-card-head .page-actions{margin-left:0}}
/* 手机顶栏（验收 A4）：页名用导航简称单行显示，字号略小、按钮间距收紧，390px 宽可完整显示“申请审批”；更窄时单行省略。 */
/* 启动保护与新版本提示（系统更新后自动重新加载 / 提示刷新） */
.boot-recover{max-width:420px;margin:18vh auto 0;padding:24px;text-align:center;color:#314c5e;font-size:14px;line-height:1.8}.boot-recover button{margin-top:12px;border:1px solid #009f8d;background:#009f8d;color:#fff;border-radius:8px;padding:9px 18px;font-size:13px}.frontend-update-notice{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:45;background:#173c4b;color:#fff;border-radius:9px;padding:10px 14px;font-size:12px;box-shadow:0 12px 28px #0c28394a;display:flex;gap:10px;align-items:center;max-width:calc(100% - 32px)}
/* 合同库号：同一库区可多选，收起时仅一行，不增加合同行高度。 */
.contract-bin-picker{min-width:0;margin-top:5px}.contract-bin-picker>summary{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font-size:12px;color:var(--muted,#64748b)}.contract-bin-picker[open]>summary{white-space:normal;overflow-wrap:anywhere}.contract-bin-options{display:flex;flex-wrap:wrap;gap:6px 12px;margin:8px 0}.contract-bin-option{display:flex;align-items:center;gap:5px;min-width:0;max-width:100%;font-size:12px}.contract-bin-option label{display:flex;align-items:center;gap:5px;margin:0;min-width:0}.contract-bin-option label>span{overflow-wrap:anywhere}.contract-bin-option input[type=checkbox]{width:15px;height:15px;flex:0 0 15px;margin:0}.contract-bin-option>.link{font-size:11px}.contract-bin-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin-top:6px}.contract-bin-editor[hidden]{display:none}.contract-bin-editor>div,.contract-bin-editor>small{grid-column:1/-1}.contract-bin-summary{display:block;font-size:12px;overflow-wrap:anywhere}@media(max-width:520px){.contract-bin-editor{grid-template-columns:minmax(0,1fr)}.contract-bin-option{max-width:100%}}

.contract-warehouse-card-line{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;margin:5px 0}.contract-warehouse-card-line .contract-warehouse-summary{min-width:0;max-width:none;flex:1 1 160px}.contract-warehouse-card-line .contract-bin-summary{white-space:normal;overflow-wrap:anywhere}.contract-warehouse-card-line>.btn{flex:0 0 auto}
.contract-warehouse-field [data-ocw-action][hidden]{display:none}
@media(max-width:620px){.breadcrumbs strong{font-size:12px}.top-actions{gap:6px}.page-back{margin-right:6px}}
/* 独立公司合同收付款：沿用合同卡片，正文内紧凑录入，历史按需展开。 */
.independent-order-cashflow{container-type:inline-size;margin-top:10px;padding-top:10px;border-top:1px solid #e5ecef;min-width:0}
.iocf-entry-row,.iocf-extra-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:end}
.iocf-field{display:flex;flex-direction:column;gap:3px;min-width:0;margin:0;font-size:12px}
.iocf-field>span{color:var(--muted,#617684);font-size:11px;line-height:1.5}
.iocf-field input,.iocf-field select{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;border:1px solid #d5e0e5;border-radius:6px;background:#fff;padding:7px 6px;font:inherit;line-height:1.45;color:var(--text,#173448)}
.iocf-field input[type=file]{font-size:11px;padding:6px 3px;overflow:hidden}
.iocf-entry-row>.btn{min-width:0;min-height:34px;margin:0;padding:7px 9px;font-size:12px}
.iocf-extra{margin-top:7px;font-size:11px;color:var(--muted,#617684)}
.iocf-extra>summary{cursor:pointer;line-height:1.7}.iocf-extra-row{margin-top:6px}
.iocf-upload-state{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:5px;min-width:0}
.iocf-upload-state .field-hint{flex:1 1 180px;margin:0;font-size:11px;overflow-wrap:anywhere}.iocf-upload-state>.btn,.iocf-upload-state .btn{padding:3px 6px;font-size:11px}
.independent-order-cashflow>[data-iocf-feedback]{margin:3px 0 0;font-size:11px;overflow-wrap:anywhere}.independent-order-cashflow>[data-iocf-feedback]:empty{display:none}
.iocf-new-purpose{display:flex;gap:6px;align-items:end;margin-top:7px}.iocf-new-purpose.hidden{display:none}.iocf-new-purpose>.iocf-field{flex:1}
.iocf-blocked{font-size:11px;margin:8px 0 0}
.independent-order-cashflow-history{margin:12px 20px;padding:10px 0;border-top:1px solid #e5ecef;min-width:0}.independent-order-cashflow-history>summary{font-size:12px;cursor:pointer;color:#28586b}.independent-order-cashflow-history .table-wrap{margin-top:8px;max-width:100%;overflow:auto}.independent-order-cashflow-history .table{font-size:12px}
@container(min-width:460px){.iocf-entry-row,.iocf-extra-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.independent-order-cashflow-history{margin:10px}.iocf-extra-row .iocf-field:last-child{grid-column:1/-1}.iocf-voucher{grid-column:1/-1}}
/* 同合同多张回单：批量窗口局部滚动，每笔独立核对。 */
.iocfb-workspace{min-width:0}.iocfb-toolbar{padding:12px 18px}.iocfb-toolbar p{margin:0 0 7px}.iocfb-toolbar .page-actions{gap:7px}.iocfb-toolbar input[type=file]{display:none}.iocfb-rows{max-height:56vh;overflow:auto;padding:0 18px 12px;overscroll-behavior:contain}.iocfb-row{min-width:0;border:1px solid #e0e8ed;border-radius:8px;padding:10px;margin-top:9px;background:#fff}.iocfb-row-head{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:7px;font-size:11px}.iocfb-row-head>strong{min-width:0;flex:1 1 160px;overflow-wrap:anywhere}.iocfb-row-head>[data-iocfb-status]{font-size:11px;overflow-wrap:anywhere}.iocfb-row-head>.btn{margin-left:auto}.iocfb-main{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.iocfb-row .iocf-extra-row{grid-template-columns:repeat(3,minmax(0,1fr))}.iocfb-row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:7px}.iocfb-row-actions>.btn{padding:4px 6px;font-size:11px}.iocfb-replace{display:flex;align-items:center;gap:4px;min-width:0;max-width:220px;font-size:11px;color:#617684}.iocfb-replace>input{min-width:0;max-width:145px;font-size:10px}.iocfb-row input:disabled,.iocfb-row select:disabled{background:#f2f6f8;color:#647786}.iocfb-row>[data-iocfb-error]{margin:6px 0 0;overflow-wrap:anywhere}.iocfb-workspace>.form-footer{padding:12px 18px;flex-wrap:wrap}.iocfb-workspace [data-iocfb-summary]{margin:7px 0 0}.iocfb-row .iocf-extra{margin-top:6px}@media(max-width:620px){.iocfb-toolbar{padding:10px 12px}.iocfb-rows{padding:0 10px 10px;max-height:55vh}.iocfb-main{grid-template-columns:repeat(2,minmax(0,1fr))}.iocfb-row .iocf-extra-row{grid-template-columns:repeat(2,minmax(0,1fr))}.iocfb-row .iocf-extra-row>.iocf-field:last-child{grid-column:1/-1}.iocfb-row{padding:8px}.iocfb-workspace>.form-footer{padding:10px 12px}.iocfb-workspace>.form-footer>.btn{flex:1 1 130px}.iocfb-row-head>strong{flex-basis:150px}.iocfb-replace{max-width:100%}}

.iocf-account-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:7px;min-width:0}.iocf-account-fields.hidden{display:none}@media(max-width:520px){.iocf-account-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.iocf-account-fields>.iocf-field:last-child{grid-column:1/-1}}

/* 独立合同实际资金：我方与对方银行资料各自核对，保持局部紧凑。 */
.iocf-bank-parties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;min-width:0}.iocf-bank-party{min-width:0;border:1px solid #e1e9ee;border-radius:7px;background:#f8fbfc;padding:8px}.iocf-bank-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;min-height:34px;margin-bottom:6px}.iocf-bank-heading>strong{font-size:11px;color:#315e70;flex:0 0 auto}.iocf-bank-heading>.iocf-field{flex:1 1 170px;max-width:100%;min-width:0}.iocf-bank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0}.iocf-bank-grid input{min-width:0;width:100%}.iocf-history-account{min-width:140px;overflow-wrap:anywhere}.iocf-financial-row{grid-template-columns:repeat(4,minmax(0,1fr))}.iocf-bank-party .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.iocf-upload-state>[data-iocf-save]{min-height:32px;margin-left:auto;font-size:12px;padding:6px 10px}
.independent-order-cashflow-history>.iocf-history-scroll{max-height:360px;overflow:auto;overscroll-behavior:contain}.independent-order-cashflow-history .table th{position:sticky;top:0;z-index:1}.independent-order-cashflow-history .table .iocf-history-actions{position:sticky;left:0;width:92px;min-width:92px;white-space:nowrap;background:#fff;z-index:2;box-shadow:1px 0 0 #e4ebef;vertical-align:top}.independent-order-cashflow-history .table th.iocf-history-actions{z-index:3}.iocf-history-actions button:disabled{opacity:.45;cursor:not-allowed}.iocf-history-blocked-label{display:block;font-size:10px;color:#738596;margin-top:4px}.iocf-history-blocked{max-width:120px;font-size:11px;white-space:normal;margin-top:3px}.iocf-history-blocked>summary{cursor:pointer;color:#49697b;white-space:nowrap}.iocf-history-blocked>p{margin:4px 0 0;line-height:1.5;white-space:normal;overflow-wrap:anywhere}@media(max-width:520px){.independent-order-cashflow-history>.iocf-history-scroll{max-height:320px}}.iocf-correction-history{margin-top:6px;min-width:180px;max-width:340px;font-size:11px}.iocf-correction-history>summary{cursor:pointer;color:#28586b}.iocf-correction-change{margin-top:6px;padding-top:6px;border-top:1px solid #e5ecef;white-space:normal;overflow-wrap:anywhere}.iocf-correction-reason{margin:3px 0}.iocf-correction-difference{margin:3px 0;line-height:1.6}.iocf-correction-difference>span{color:#617989}.iocf-correction-difference del{color:#8b6565}.iocf-correction-difference ins{text-decoration:none;color:#12674f}.modal:has(.iocf-correction-form){max-width:820px}.iocf-correction-form{padding:0 18px}.iocf-correction-form fieldset{border:0;padding:0;margin:0;min-width:0}.iocf-correction-financial,.iocf-correction-extra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.iocf-correction-extra{margin-top:8px}.iocf-correction-reason-field{margin-top:8px}.iocf-correction-form textarea{width:100%;min-height:54px;resize:vertical;font-size:12px;border:1px solid #dce7eb;border-radius:6px;padding:7px;color:#244257;background:#fff}.iocf-correction-form>.form-footer{padding:10px 0}.iocf-correction-form [data-iocf-correction-feedback]{margin:6px 0;overflow-wrap:anywhere}@media(max-width:520px){.iocf-correction-form{padding:0 12px}.iocf-correction-financial,.iocf-correction-extra{grid-template-columns:repeat(2,minmax(0,1fr))}.iocf-correction-financial>.iocf-field:last-child,.iocf-correction-extra>.iocf-field:last-child{grid-column:1/-1}.iocf-correction-history{max-width:270px}}
@media(max-width:780px){.iocf-bank-parties{grid-template-columns:minmax(0,1fr)}}@media(max-width:520px){.iocf-financial-row{grid-template-columns:repeat(2,minmax(0,1fr))}.iocf-bank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.iocf-bank-grid>.iocf-field:last-child{grid-column:1/-1}.iocf-bank-party{padding:7px}.iocf-bank-heading{min-height:24px}.iocf-bank-heading>.iocf-field{flex-basis:170px}.iocf-financial-row>.iocf-voucher{grid-column:1/-1}}

/* 物流委托逐笔付款与修改在手机横向查阅时始终可见。 */
.order-logistics-table th:first-child,.order-logistics-table td:first-child{position:sticky;left:0;width:160px;min-width:145px;max-width:170px;white-space:normal;overflow-wrap:anywhere;background:#fff;z-index:1}
.order-logistics-table th:first-child{background:#f3f7fa;z-index:2}
.order-logistics-table td:first-child .page-actions{display:flex;flex-wrap:wrap;gap:4px}
/* 订单台账「产品名称」（2026-10-30）：品名一行加粗，下面一行小字是上下游对方公司；各一行，过长以“…”省略（鼠标停留看全部），行高不变。 */
.table td.order-list-product{min-width:120px}
.order-list-product-name,.order-list-parties{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order-list-table td:nth-child(3){white-space:normal;min-width:120px;max-width:180px;overflow-wrap:anywhere}
.order-list-product-name{font-weight:600;color:#1d3a4e;line-height:1.5}
.order-list-parties{font-size:11px;color:#7d8f9c;margin-top:3px;line-height:1.5}
.order-list-more{display:flex;justify-content:center;padding:14px 0 18px}
.toolbar .search[data-search="orders"]{min-width:360px}
@media(max-width:620px){.toolbar .search[data-search="orders"]{min-width:0;width:100%}}
/* 宽表格“跟随横向滚动条”（public/table-scroll-follow.js）：表格自己的横向滚动条还在屏幕下方时，贴着屏幕底边显示一条同步滚动条。
   用自定义滚动条样式保证始终可见（苹果电脑默认的悬浮滚动条不滚动时不显示）。层级低于弹窗与提示。 */
.table-scroll-follow{position:fixed;bottom:0;z-index:15;height:16px;overflow-x:scroll;overflow-y:hidden;background:#f7fafb;border-top:1px solid #d7e2e7;box-shadow:0 -6px 16px #12334b14}
@supports not selector(::-webkit-scrollbar){.table-scroll-follow{scrollbar-width:thin;scrollbar-color:#9fb3bf #eef3f5}}
@media print{.table-scroll-follow,.table-head-follow{display:none!important}}
.table-scroll-follow-inner{height:1px}
.table-scroll-follow::-webkit-scrollbar{height:12px}
.table-scroll-follow::-webkit-scrollbar-track{background:#eef3f5}
.table-scroll-follow::-webkit-scrollbar-thumb{background:#9fb3bf;border-radius:6px;border:2px solid #eef3f5}
.table-scroll-follow::-webkit-scrollbar-thumb:hover{background:#7d95a3}
/* 订单详情「上下游合同」表（2026-10-30）：“方向”标签并入第一列“对方公司”，只固定这一列，往右看金额、进度时始终知道是哪份合同；
   操作按钮在限定宽度内换行，不再一字排开把表格撑宽。只作用于表头和合同行（“暂无关联合同”的整行提示不受影响）。
   层级不超过 2，滚到顶栏下面时被顶栏盖住。手机等窄屏不固定，直接左右滑。 */
.order-contract-table thead th:first-child,.order-contract-table tr.order-contract-line>td:first-child{position:sticky;left:0;z-index:1;min-width:180px;max-width:230px;white-space:normal;overflow-wrap:anywhere;box-shadow:inset -1px 0 #d9e4e9}
.order-contract-table thead th:first-child{z-index:2;background:#f7fafb}
.table.order-contract-table tr.order-contract-line:not(.approval-target-focus)>td:first-child{box-shadow:inset 3px 0 var(--order-direction-accent),inset -1px 0 #d9e4e9}
.order-contract-party{margin-top:6px;line-height:1.5}
.order-contract-table td:last-child{white-space:normal;min-width:440px;max-width:460px}
/* 合同模式标签、「合同模式」按钮与各操作按钮排进同一行内换行，行高与原来接近。 */
.order-contract-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.order-contract-actions>.framework-contract-entry,.order-contract-actions>.contract-document-actions{display:contents}
/* 五个上传按钮（上传双章合同、收货确认文件、异常文书、往来函、法律文书）按原顺序单独一行。 */
.order-contract-actions .contract-upload-actions{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%}
@media(max-width:620px){.order-contract-table thead th:first-child,.order-contract-table tr.order-contract-line>td:first-child{position:static;min-width:0;max-width:none;white-space:nowrap;overflow-wrap:normal}.table.order-contract-table tr.order-contract-line:not(.approval-target-focus)>td:first-child{box-shadow:inset 3px 0 var(--order-direction-accent)}.order-contract-table td:last-child{min-width:260px}}
/* 合同表“表头跟随”（public/table-scroll-follow.js）：表头滚出屏幕后贴在顶栏下方；点到它不会误触被它盖住的合同按钮。 */
.table-head-follow{position:fixed;z-index:4;overflow:hidden;background:#f7fafb;box-shadow:0 6px 12px #12334b14}
.table-head-follow>.table{margin:0}
/* 订单台账加了「产品名称」后，略收单元格左右留白、进度条缩短、签约主体可换行，尽量让常见笔记本宽度不用左右拖；仍超宽时由跟随滚动条兜底。 */
.order-list-table th,.order-list-table td{padding-left:12px;padding-right:12px}
.order-list-table .progress{width:64px}
