/* 金满堂 · 财税服务运营台。原始品牌图保持透明、完整、不改色。 */
:root{--paper:#f3f5f7;--line:#e0e6ea;--ink:#253d47;--green:#127d86;--muted:#6e818b;--red:#bb2025}
body{font-size:13px;color:#334a55;background:var(--paper)}
.shell{grid-template-columns:194px minmax(0,1fr)}.sidebar{width:194px;padding:16px 12px;background:white;color:var(--ink);border-right:1px solid var(--line);overflow-y:auto}.brand-original{display:flex;flex-direction:column;gap:9px;padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:12px}.brand-original img{height:110px;width:142px;object-fit:contain}.brand-original>span{font-size:10px;letter-spacing:1px;color:#75838b}.nav-caption{font-size:10px;padding:8px 12px;color:#89969d;letter-spacing:1px}.nav-button{font-size:13px;color:#526975;padding:10px 12px;border-radius:5px;margin-bottom:3px;gap:11px}.nav-button.active{background:#e8f4f4;color:#076e77;box-shadow:none;border-left:3px solid #127d86;padding-left:10px}.nav-button:hover:not(.active){background:#f3f6f7;color:#0b6974}.nav-button .icon{width:17px;height:17px}.nav-children{margin:2px 0 9px 21px;border-left:1px solid #e0ebed;padding-left:12px}.nav-children button{display:block;text-align:left;width:100%;padding:7px 10px;font-size:12px;background:transparent;border:0;color:#6f818b;border-radius:3px}.nav-children button.active{color:#b82026;background:#fff1f0}.sidebar-foot{border-color:#e5eaed;padding-top:12px;margin-top:20px}.local-status{color:#476a72;font-size:11px}.sidebar-foot p{color:#8b9aa0;font-size:9px}.dot{background:#33a39d}
.topbar{height:64px;padding:10px 24px;gap:10px;border-top:3px solid #bd2228}.crumb{font-size:12px;flex-shrink:1;min-width:160px}.crumb b{font-weight:600}.top-actions{gap:8px;min-width:0}.top-actions button{font-size:12px;padding:7px 10px}.top-actions .user{gap:6px;font-size:12px}.global-search input{font-size:12px;width:210px;padding:8px 10px 8px 34px}.avatar{height:28px;width:28px;font-size:12px}.main{padding:20px 24px 32px;max-width:none}.page-head{margin-bottom:18px;align-items:center}.page-head h1{font:600 23px/1.5 "Microsoft YaHei UI",sans-serif;letter-spacing:0;margin:2px 0}.page-head .eyebrow{font-size:9px;letter-spacing:1.4px;color:#88979e}.page-head .subtitle{font-size:12px;margin:4px 0 0}.page-head .buttons{gap:8px}button{border-radius:4px;padding:7px 12px}input,select,textarea{border-radius:4px;padding:8px 10px;font-size:12px;min-width:0}.panel{border-radius:6px;box-shadow:0 2px 6px #203c4803}.panel-heading{padding:14px 18px}.panel-heading h2{font-size:14px}.panel-body{padding:18px}.tabs{margin-bottom:14px}.tabs .tab{font-size:13px;padding:10px 16px}.toolbar{gap:10px;flex-wrap:wrap;margin-bottom:12px}.filter-row{gap:8px;flex-wrap:wrap}.filter-row input{max-width:280px}.empty{padding:45px 20px}.empty h3{font-size:14px}.empty p{font-size:12px}thead{background:#167f89;color:#fff}th{font-size:12px;letter-spacing:0;padding:11px 14px;font-weight:500;color:inherit}td{padding:12px 14px;font-size:12px}tbody tr:nth-child(even){background:#fafcfd}tbody tr:hover{background:#f0f7f8}.table-wrap{max-width:100%;overflow:auto}.tag{font-size:11px;padding:3px 7px}.tag.gray{color:#71818a;background:#eef2f4}.tag.blue{color:#297480;background:#e9f3f6}.tag.amber{color:#9b7225;background:#fff5dc}.tag.red{color:#b24543;background:#fff0ef}.pagination{font-size:12px;padding:12px 18px}.statusbar{font-size:10px;margin-top:20px}
.lead-hero{background:none;border:0;border-radius:0;box-shadow:none;min-height:0;margin-bottom:16px;padding:0;display:flex;align-items:center;color:var(--ink)}.lead-hero:after{display:none}.lead-hero .eyebrow{color:#87969d;font-size:9px}.lead-hero h1{font:600 23px/1.5 "Microsoft YaHei UI",sans-serif;letter-spacing:0;color:#253d47;margin:2px 0}.lead-hero p{font-size:12px;color:#71858d;margin:4px 0}.practice-tags{margin-top:8px;gap:7px}.practice-tags span{background:#e8eff1;color:#637d85;border:0;padding:3px 8px;font-size:10px}.hero-note{border:0;padding-left:20px;text-align:right}.hero-note span{color:#bd2228;font-size:12px}.hero-note strong{color:#53717b;font-size:14px;font-weight:500}.hero-note small{color:#8c9ca3;font-size:10px}.lead-stats{margin:0 0 16px;border:1px solid var(--line);border-radius:6px;gap:0;background:white}.lead-stats>div{padding:13px 18px;display:flex;align-items:center;gap:12px;border-right:1px solid #edf0f2;min-height:0}.lead-stats>div:last-child{border-right:0}.lead-stats .stat-index,.lead-stats small{display:none}.lead-stats strong{font-size:25px;line-height:1.2;color:#176575;margin:0 0 0 auto;font-variant-numeric:tabular-nums}.lead-stats span:not(.stat-index){font-size:12px;color:#6b8189}.lead-workspace{border-radius:6px}.lead-section-head{padding:14px 18px}.lead-section-head h2{font-size:15px}.lead-section-head>div:first-child>span{font-size:11px}.lead-tabs{padding:0 18px}.lead-tools{padding:12px 18px}.lead-selection{padding:0 18px 12px}.lead-table{max-height:calc(100vh - 370px);min-height:180px}.lead-table th,.lead-table th.sticky-actions{background:#167f89;color:white;font-size:12px;height:40px;padding:9px 12px}.lead-table .th-sort{color:white;font-size:12px}.lead-table td{padding:12px;font-size:12px}.lead-table .sticky-actions{background:#fff}.lead-table tr:nth-child(even) .sticky-actions{background:#fafcfd}.lead-search{min-width:280px}.lead-workspace .pagination{padding:12px 18px}.release-alert{background:#fff6e3;border:1px solid #eddfba;border-radius:4px;padding:9px 14px;margin-bottom:12px;color:#8a6b30;display:flex;justify-content:space-between;align-items:center}
.dashboard-strip{display:none}.stats{margin:0 0 20px;gap:14px}.stat{padding:16px 20px;border-radius:6px}.stat .label{font-size:12px}.stat .value{font-size:29px;margin:10px 0 7px}.stat .note{font-size:11px}.two-col{gap:18px;margin-bottom:18px}.chart{height:175px}.attention{padding:12px 0}.funnel-row{font-size:12px}.quick-grid button{font-size:12px}.drawer-head{background:#fff;color:var(--ink);border-bottom:1px solid #e2e8ec;border-top:3px solid #bf2027;padding:18px 24px}.drawer-head h2{color:#263e48;font-size:19px}.drawer-head p{color:#85949c}.drawer-head button{color:#6a818a}.drawer-body{padding:22px 24px;background:#fff}.drawer-foot{padding:14px 24px;background:#f7f9fa;flex-wrap:wrap}.drawer-body .form-intro{display:none}.form-section{font-size:14px;background:#f3f7f8;padding:9px 12px;border:0;border-radius:3px;margin:0}.form-section:before{background:#bd2228}.form-grid{gap:16px}.field{font-size:12px;color:#506c78}.field label span{color:#bc2028}.detail-title{font:600 21px/1.5 "Microsoft YaHei UI",sans-serif}.detail-grid{gap:16px}.detail-grid dt{color:#8797a0}.detail-grid dd{color:#36525f}.hint{color:#587782;background:#eef5f7;border-radius:4px}.hint b{color:#3b6572}.form-grid .service-field{padding:0}.settings-grid .full{grid-column:1/-1}
.service-overview{display:flex;gap:0;background:white;border:1px solid var(--line);border-radius:6px;margin-bottom:18px}.service-overview>div{flex:1;padding:16px 20px;border-right:1px solid #edf0f2;min-width:120px}.service-overview>div:last-child{border:0;flex:1.5}.service-overview span{display:block;font-size:12px;color:#728893}.service-overview strong{display:block;font-size:28px;font-weight:600;margin-top:8px;line-height:1.1}.service-progress b{float:right;color:#127d86}.service-progress progress{width:100%;height:8px;margin-top:22px;accent-color:#127d86;appearance:none}.service-progress progress::-webkit-progress-bar{background:#ecf2f4;border-radius:5px}.service-progress progress::-webkit-progress-value{background:#167f89;border-radius:5px}.service-board>.toolbar{padding:14px 16px;margin:0}.service-board label{font-size:12px;color:#617b86;white-space:nowrap}.service-table{min-width:1130px}.service-table .name{max-width:250px;min-width:160px}.industry-note{font-size:12px;line-height:1.9;color:#7d9099;margin:12px 0 0}.service-detail-stages{margin:22px 0;border:1px solid var(--line);border-radius:5px}.service-detail-stages>div{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.service-detail-stages>div:last-child{border:0}#task-comment-form button{margin-top:12px}.receipt{color:#273c46}.receipt header{display:flex;gap:24px;align-items:center;border-bottom:2px solid #b42026;padding:10px 0 20px}.receipt header img{width:100px;height:105px;object-fit:contain}.receipt header p{font-size:14px}.receipt header h2{font-size:26px;letter-spacing:6px;margin:8px 0}.receipt dl>div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid #e4e8ea;padding:12px}.receipt dt{color:#7c8d96}.receipt dd{margin:0;overflow-wrap:anywhere}.receipt-total{padding:20px;background:#f3f7f8;display:flex;justify-content:space-between;align-items:center}.receipt-total strong{font-size:25px;color:#b32025}.receipt-sign{display:flex;justify-content:space-between;gap:15px;padding:50px 0 30px}.receipt small{color:#83949c;font-size:11px}
.team-login{background:linear-gradient(120deg,#fffaf7,#f1f6f7);grid-template-columns:minmax(0,1fr) 420px;gap:8vw;padding:6vh max(7vw,30px);border-top:5px solid #b92027;position:relative}.team-login .login-logo{width:195px;height:198px;object-fit:contain;margin-bottom:30px}.team-login .eyebrow{font-size:10px;color:#b02026;letter-spacing:2px}.team-login h1{font:600 36px/1.6 "Microsoft YaHei UI",sans-serif;color:#2b414b;margin:20px 0}.team-intro>p{color:#83939b;font-size:14px;letter-spacing:2px}.login-features{display:flex;gap:8px;margin-top:28px;flex-wrap:wrap}.login-features span{border:1px solid #d7e3e7;background:#fff9;padding:8px 15px;border-radius:4px;font-size:12px;color:#63818e}.team-intro .login-caption{font-size:11px;letter-spacing:1px;margin-top:16px}.team-login .panel{padding:34px;border:1px solid #e3e9ec;box-shadow:0 16px 55px #243c4910;border-radius:10px}.team-login .panel h2{font-size:22px;color:#314b58;margin-top:0}.team-login .panel>p{font-size:12px;color:#8a9aa4;line-height:1.8}.team-login .panel>button{background:#b82027;border-color:#b82027;padding:11px;color:#fff;margin-top:8px}.team-login .field input{padding:12px}.team-login .field{margin:23px 0}
@media(min-width:1600px){.main{padding:24px 30px}.lead-hero{padding:0}.lead-stats>div{padding:15px 22px}}
@media(max-width:1200px){.topbar{height:auto;min-height:64px;flex-wrap:wrap}.top-actions{flex-wrap:wrap}.global-search{display:none}.service-overview{flex-wrap:wrap}.service-overview>div{min-width:140px}.main{padding:18px}.hero-note{display:none}.lead-stats>div{padding:12px}.team-login{gap:5vw;padding:5vh 5vw;grid-template-columns:minmax(0,1fr) 380px}.team-login h1{font-size:29px}}
@media(max-width:850px){.shell{grid-template-columns:65px minmax(0,1fr)}.sidebar{width:65px;padding:14px 7px}.brand-original{padding:0 0 14px}.brand-original img{width:49px;height:54px}.brand-original>span,.nav-children,.nav-caption{display:none}.nav-button{padding:12px 0;justify-content:center}.nav-button.active{padding-left:0}.nav-button span{display:none}.main{padding:16px}.lead-hero{padding:0}.lead-stats{grid-template-columns:repeat(2,1fr)}.lead-stats>div{border-bottom:1px solid #edf0f2}.topbar .crumb{max-width:none;font-size:11px}.team-login{grid-template-columns:1fr;max-width:none;padding:28px}.team-login .team-intro{text-align:center}.team-login .login-logo{width:130px;height:135px;margin-bottom:15px}.team-login h1{font-size:25px;margin:10px 0}.login-features{justify-content:center;margin-top:15px}.team-login .panel{max-width:460px;width:100%;margin:auto}.service-overview>div{padding:13px;min-width:120px}.service-overview>div:last-child{flex-basis:100%}.lead-table{max-height:550px}.two-col{grid-template-columns:1fr}}
@media(max-width:550px){.main{padding:14px 10px}.page-head h1,.lead-hero h1{font-size:21px}.page-head{gap:12px;align-items:flex-start}.lead-stats>div{gap:8px;padding:12px 9px}.lead-stats strong{font-size:22px}.practice-tags{display:none}.lead-tools,.lead-section-head{padding:12px}.lead-selection{padding:0 12px 12px}.form-grid{grid-template-columns:1fr}.lead-search{min-width:0}.drawer-body{padding:18px}.service-board>.toolbar{padding:12px}.service-board .filter-row{width:100%}.service-board .filter-row input{width:100%;max-width:none}.service-board label{width:100%}.service-board select{flex:1;max-width:100%}.receipt dl>div{grid-template-columns:100px 1fr}.receipt-sign{flex-direction:column;gap:30px}.receipt header{gap:12px}.receipt header h2{font-size:22px;letter-spacing:2px}.top-actions .user{display:none}.topbar{padding:10px!important}.team-login{padding:22px 15px}.team-login .panel{padding:25px}.team-login h1{font-size:22px}.service-overview>div{min-width:95px}.statusbar span{overflow-wrap:anywhere}}
@media print{@page{size:A4;margin:18mm}body{background:white!important}#app,#toast,.drawer-head,.drawer-foot,#form-error{display:none!important}#overlay,.backdrop,.drawer,.drawer.wide,.drawer-body{position:static!important;display:block!important;width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important;background:white!important;box-shadow:none!important;border:0!important;padding:0!important;margin:0!important}.receipt{font-size:13px}.receipt header img{width:90px;height:95px}.receipt small{color:#444}}
.workflow-presets{border:1px solid #d7e6e9;background:#edf5f7;border-radius:5px;padding:14px 18px;margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.workflow-presets strong{font-size:13px;display:block;color:#345d69}.workflow-presets span{font-size:11px;color:#7e949d}.workflow-presets button{font-size:12px;background:#fff}.lead-stats strong{font-family:"Segoe UI","Microsoft YaHei UI",sans-serif}
@media(max-width:550px){.service-board .filter-row label{display:flex;align-items:center;gap:8px}.service-board .filter-row label input{flex:1;width:0}.workflow-presets .buttons{flex-direction:column;align-items:stretch;width:100%}}
@media print{#overlay,.backdrop,.drawer,.drawer-body{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
/* Customer operations and evidence entry */
.customer-bulk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#eef7f7;border:1px solid #d5e8e7;border-radius:10px;margin:16px 0}.customer-bulk>span{color:#50736f;font-size:13px}.customer-more{position:relative}.customer-more summary{cursor:pointer;list-style:none;padding:9px 14px;background:#177e89;color:#fff;border-radius:6px;display:flex;gap:8px;align-items:center}.customer-more>div{position:absolute;right:0;top:44px;min-width:205px;z-index:20;background:white;padding:7px;box-shadow:0 8px 30px #163b3826;border:1px solid #dbe7e4;border-radius:8px}.customer-more>div button{display:block;width:100%;text-align:left;border:0;background:transparent;margin:2px 0}.customer-more>div button:hover{background:#edf6f5}.customer-check-col{width:38px}input[data-customer-check],#customer-check-all,.batch-edit-field input[type=checkbox]{width:16px;height:16px;accent-color:#177e89;padding:0}.batch-edit-field{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px;margin:16px 0}.batch-edit-field label{display:flex;gap:8px;align-items:center}.batch-preview{color:#355953;line-height:1.8}.evidence-section{grid-column:1/-1;margin:22px 0 18px;min-width:0}.evidence-section .form-section{margin-bottom:12px}.evidence-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:150px;padding:20px;border:1px dashed #9ebdb8;border-radius:10px;background:#f5faf9;text-align:center;cursor:pointer;color:#2d655d}.evidence-drop.dragging,.evidence-drop:focus-within{border-color:#14899a;background:#eaf8fa;outline:2px solid #ccebed}.evidence-drop>.icon{width:30px;height:30px}.evidence-drop span,.evidence-section>small{font-size:12px;color:#718781}.evidence-drop input[type=file]{max-width:100%;width:auto;background:#fff;font-size:12px}.evidence-section>small{display:block;margin-top:8px;line-height:1.6}.evidence-file{display:flex;align-items:center;gap:10px;padding:10px 12px;background:white;border-bottom:1px solid #e6ece9}.evidence-file>span{flex:1;min-width:0;overflow-wrap:anywhere}.evidence-file small{display:block;color:#81908a;font-size:11px;margin-top:3px}.evidence-file button{flex:none;font-size:12px;color:#a44739}.existing-evidence a{display:flex;align-items:center;gap:8px;margin-top:9px;overflow-wrap:anywhere}.handover-drawer{width:min(1120px,96vw)!important}.handover-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-note{font-size:12px;font-weight:400;color:#7a9189;margin-left:14px}.readonly-value{padding:11px 0;color:#658177}.handover-items table{min-width:1000px}.handover-items th,.handover-items td{padding:10px 8px}.handover-items input,.handover-items select{min-width:0;width:100%;font-size:12px;padding:8px 6px}.handover-items td:nth-child(2){width:180px}.handover-items td:nth-child(3){width:135px}.handover-items td:nth-child(4){width:125px}.handover-items td:nth-child(5){width:75px}.handover-items td:nth-child(7){width:155px}.handover-items td:last-child{white-space:nowrap}.quantity-control{display:flex;align-items:center}.quantity-control button{padding:6px;min-width:25px;border-radius:3px}.quantity-control input{width:60px;text-align:center;padding:8px 0;appearance:textfield}.quantity-control input::-webkit-inner-spin-button{appearance:none}.add-item{margin:12px 0;color:#177e89;border-style:dashed}.handover-form>.field{margin-top:12px}.handover-form textarea{width:100%}.timeline-item details{margin:10px 0;background:#f6f9f8;padding:10px;border-radius:6px}.timeline-item summary{cursor:pointer;color:#187785}.review-banner{display:flex;align-items:center;gap:14px;padding:18px 22px;margin:18px 0;background:#eef8f7;border:1px solid #cee8e3;border-radius:10px}.review-banner strong{font-size:20px;color:#167e84}.review-banner p{margin:4px 0;color:#637e76;font-size:13px}
@media(max-width:600px){.handover-form .form-grid{grid-template-columns:1fr}.handover-drawer{width:100vw!important}.customer-bulk{align-items:flex-start;flex-wrap:wrap}.section-note{display:block;margin:6px 0}.batch-edit-field{grid-template-columns:1fr}.evidence-drop{padding:15px 10px}.review-banner{align-items:flex-start}.handover-form .form-section{grid-column:1/-1}}
.receipt-stamp-slot{position:relative;min-width:210px;min-height:110px;display:inline-flex;align-items:center}.receipt-stamp{position:absolute;width:135px;height:135px;object-fit:contain;right:0;top:-10px}.receipt-sign{min-height:130px;align-items:center}.stamp-preview{min-height:150px;display:flex;justify-content:center;align-items:center;padding:20px;margin:15px 0;border:1px dashed #bed0c8;background:#f9fbfa}.stamp-preview img{max-width:180px;max-height:180px}.arrears-overview{grid-template-columns:repeat(4,1fr)}.receipt dd{overflow-wrap:anywhere}@media(max-width:600px){.arrears-overview{grid-template-columns:repeat(2,1fr)}.receipt-sign{flex-wrap:wrap;gap:20px}}
.note-snippet{max-width:220px;text-align:left;white-space:normal;line-height:1.6}.customer-edit-tabs{margin-bottom:18px}.archive-drawer{width:min(1400px,98vw)!important}.archive-drawer table{min-width:1050px}.archive-description{min-width:170px;max-width:280px;white-space:pre-wrap;overflow-wrap:anywhere}.archive-toolbar{display:flex;gap:8px;flex-wrap:wrap}.archive-toolbar .buttons{margin-left:auto}.archive-drawer td a{overflow-wrap:anywhere;display:inline-block;max-width:220px}.archive-drawer input[type=checkbox]{width:16px;height:16px;accent-color:#177e89}.actions button:disabled{color:#a5acaf;cursor:not-allowed;opacity:.65}#record-form [hidden]{display:none!important}
.contract-drawer{width:min(1250px,98vw)!important}.contract-drawer .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contract-drawer #contract-plan table{min-width:1000px}.contract-drawer #contract-plan input{width:100%;min-width:110px;padding:8px;font-size:12px}.contract-drawer #contract-plan td{padding:10px 7px}.contract-drawer [hidden]{display:none!important}.copy-name{margin-left:8px;font-size:18px}.contract-drawer input[readonly]{background:#f1f5f6;color:#6a7e89}input[type=date],input[type=month]{cursor:pointer}@media(max-width:700px){.contract-drawer .form-grid{grid-template-columns:1fr}.contract-drawer{width:100vw!important}}

.task-filter-panel{background:white;border:1px solid #d8e4e7;padding:16px;margin-bottom:16px}.task-filter-panel .filter-row{flex-wrap:wrap}.task-filter-panel input[type=date]{width:145px}.task-filter-panel input[type=number]{width:100px}.receipt-signature{max-width:180px;max-height:70px;vertical-align:middle;object-fit:contain}#crm-calendar{position:fixed;z-index:10000;width:310px;max-width:calc(100vw - 16px);padding:12px;background:#fff;border:1px solid #cbd9df;box-shadow:0 6px 28px #15374330;border-radius:8px}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:6px}.calendar-nav select{width:90px;padding:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:10px 0}.calendar-grid>*{text-align:center;padding:7px 0}.calendar-grid button{border:0;background:white}.calendar-grid .selected{background:#168694;color:white}.calendar-grid button:hover{background:#e0f1f3}input[type=date]{cursor:pointer}
.year-picker{position:fixed;width:320px;z-index:10000;padding:14px;background:white;border:1px solid #d8e5e8;border-radius:6px;box-shadow:0 5px 24px #18343d28}.year-heading{display:flex;justify-content:space-between;align-items:center}.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:22px 0}.year-grid button{border:0;padding:14px 4px}.year-grid .selected{background:#168592;color:white;font-weight:700}.service-add-editor{display:grid;gap:10px}.service-add-editor label{display:grid;gap:6px}.service-catalog .service-menu{max-height:360px;overflow:auto}
/* Readability and action semantics */
body{font-size:15px;color:#244451}table,button,input,select,textarea{font-size:14px}th{font-size:14px;font-weight:650}td{font-size:14px}.sub,.subtitle,small,.hint{font-size:13px;color:#526f7a}.field label{font-size:14px;color:#365966}button .icon{width:16px;height:16px;vertical-align:-3px;margin-right:5px;flex-shrink:0}button.action-blue:not(.primary){color:#1767a0}button.action-green:not(.primary){color:#247445}button.action-red:not(.primary){color:#bf313a}button.action-amber:not(.primary){color:#986013}button.action-teal:not(.primary){color:#087680}button:disabled{opacity:.5}#task-range-picker{position:fixed;z-index:10001;background:white;border:1px solid #ccdfe3;border-radius:7px;box-shadow:0 6px 28px #18343d30;padding:16px;width:650px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto}.range-calendars{display:grid;grid-template-columns:1fr 1fr;gap:20px}.range-calendars section{min-width:0}.range-calendars .calendar-nav{display:flex;gap:5px;margin:12px 0}.range-calendars .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.range-calendars .calendar-grid button{padding:9px 2px;border:0}.range-calendars .selected{background:#14858e;color:white}.range-calendars strong{font-size:14px}@media(max-width:580px){.range-calendars{grid-template-columns:1fr}.range-calendars .calendar-grid button{padding:5px 2px}}
#bill-form input[data-line=name]{min-width:180px}#bill-form input[data-line=unit]{min-width:60px}#bill-form input[type=number]{min-width:85px}#bill-form [data-line=notes]{min-width:180px}.bill-paper table{width:100%;table-layout:auto}.bill-paper td{white-space:normal;overflow-wrap:anywhere}.bill-paper .receipt-sign{align-items:center;gap:20px}.bill-paper .receipt-sign>span{max-width:50%}.bill-payment-history{margin-top:28px}@media print{.bill-payment-history{display:none!important}.bill-paper .table-wrap{overflow:visible}.bill-paper th,.bill-paper td{font-size:11px;padding:8px}.bill-paper tr{break-inside:avoid}.bill-paper thead{display:table-header-group}}
.bill-paper td:last-child{white-space:pre-line}
.handover-sign-editor{margin-top:20px;padding:16px;background:#f3f7f8}.handover-sign-editor small{display:block;margin:8px 0}.handover-paper{color:#203940;font-size:14px;padding:20px 16px;background:white}.handover-paper header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:3px solid #157d84;padding-bottom:22px}.handover-paper header img{width:80px;height:100px;object-fit:contain}.handover-paper header h1{font-size:29px;letter-spacing:3px;margin:18px 0}.handover-paper header p,.handover-paper small{color:#607b83}.handover-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin:26px 0}.handover-meta .full{grid-column:1/-1}.handover-meta>div{border-bottom:1px solid #d6e0e2;padding-bottom:12px;overflow-wrap:anywhere}.handover-meta label{display:block;font-size:12px;color:#607b83;margin-bottom:8px}.handover-paper table{width:100%;table-layout:fixed;border-collapse:collapse!important;border:1px solid #8fa9b0!important}.handover-paper th,.handover-paper td{border:1px solid #8fa9b0!important;padding:13px 8px;white-space:normal;overflow-wrap:anywhere}.handover-paper th{background:#157d84;color:white}.handover-paper tbody tr:nth-child(even){background:#f5f8f8}.handover-total{border:1px solid #cadadd;border-top:0;padding:14px;text-align:right}.handover-note{background:#f1f6f7;padding:18px;margin-top:25px;white-space:pre-wrap;overflow-wrap:anywhere}.handover-note p{margin-bottom:0}.handover-confirm{margin:24px 0;line-height:1.8}.handover-signs{display:grid;grid-template-columns:1fr 1fr;gap:32px;break-inside:avoid;margin-top:30px}.handover-signs section{border-top:2px solid #91aeb4;padding-top:14px}.handover-sign-line{height:80px;display:flex;align-items:center;border-bottom:1px solid #cbdade;margin-bottom:12px;font-size:22px}.handover-sign-line img{max-height:70px;max-width:100%;object-fit:contain}.handover-signs p{font-size:12px;color:#607b83}.handover-paper footer{border-top:1px solid #d6e0e2;margin-top:26px;padding-top:14px;font-size:11px;color:#607b83}.handover-paper tr{break-inside:avoid}.handover-paper thead{display:table-header-group}@media print{.handover-paper{padding:0;font-size:12px}.handover-paper header h1{font-size:26px}.handover-meta{gap:12px 22px;margin:18px 0}.handover-meta>div{padding-bottom:8px}.handover-paper th,.handover-paper td{padding:9px 7px;font-size:12px}.handover-sign-line{height:68px}.handover-note{padding:12px;margin-top:18px}.handover-paper *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.handover-paper table{min-width:0}.handover-signs{margin-top:20px}}@media(max-width:550px){.handover-paper{padding:0}.handover-paper header h1{font-size:22px;letter-spacing:0}.handover-paper header img{width:55px}.handover-paper th,.handover-paper td{font-size:11px;padding:7px 4px}.handover-meta{gap:14px}.handover-signs{gap:15px}}

.customer-search-box{position:relative;margin-bottom:7px}.customer-search-input{width:100%}.customer-search-results{max-height:240px;overflow-y:auto;border:1px solid #b8d1d5;background:#fff;padding:5px;box-shadow:0 4px 12px #193d4417}.customer-search-results[hidden]{display:none}.customer-search-results button{display:block;width:100%;text-align:left;white-space:normal;border:0;border-radius:0;padding:10px;color:#174955;background:#fff}.customer-search-results button:hover,.customer-search-results button:focus{background:#e8f3f4}.customer-search-results small{display:block;padding:7px;color:#687e86}.handover-signs small{display:none}.handover-items select[data-item=unit]{min-width:70px}
@page handover-clean{size:A4;margin:0}
@media print{body.printing-handover{page:handover-clean}.handover-paper{page:handover-clean;padding:16mm!important;box-decoration-break:clone;-webkit-box-decoration-break:clone}.handover-signs small{display:none!important}}

/* 待支付收款单：明细清单加表格框线，单位盖章固定到“收款单位”处 */
.bill-paper table{border:1px solid #b6c9cd}
.bill-paper thead th{border:1px solid #0d6b77;background:#147f8c;color:#fff}
.bill-paper td{border-bottom:1px solid #cdd9dc;border-left:1px solid #cdd9dc;border-right:1px solid #cdd9dc;padding:10px 11px}
.bill-paper tbody tr:last-child td{border-bottom:1px solid #cdd9dc}
.bill-paper .receipt-total{border:1px solid #cdd9dc;border-top:0}
.bill-paper .receipt-stamp-slot{min-width:220px;justify-content:flex-end;text-align:right}
.bill-paper .receipt-stamp{width:130px;height:130px}
@page bill-clean{size:A4;margin:0}
@media print{body.printing-bill{page:bill-clean}.bill-paper{page:bill-clean;padding:16mm!important}.bill-paper *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.bill-paper table{border-color:#8fa8ad}.bill-paper .receipt-total{border-color:#8fa8ad}}

/* 归还交接确认：客户确认资料上传 */
.confirm-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:145px;padding:20px;border:1px dashed #9ebdb8;border-radius:10px;background:#f5faf9;text-align:center;cursor:pointer;color:#2d655d}
.confirm-drop.dragging,.confirm-drop:focus-within{border-color:#14899a;background:#eaf8fa;outline:2px solid #ccebed;cursor:pointer;color:#2d655d}

/* ── 单据字体加深（与合同方案B一致）：物品交接单/归还签收单/待支付单/收款收据/退款凭单 ──
   屏幕预览与打印同时生效：微软雅黑、正文纯黑、灰色辅助信息加深、关键值加粗 */
.handover-paper,.bill-paper,.receipt{font-family:"Microsoft YaHei","Microsoft YaHei UI",sans-serif;color:#000;font-size:13px}
.handover-paper header small,.handover-paper header p,.handover-paper small,.handover-meta label,.handover-signs p,.handover-paper footer,.handover-confirm{color:#222}
.handover-paper td,.handover-meta span,.handover-total,.handover-note p,.handover-paper h1{color:#000}
.handover-paper b,.handover-paper strong{font-weight:700;color:#000}
.handover-meta span,.handover-total{font-weight:600}
.receipt dt,.receipt header p,.receipt small{color:#333}
.receipt dd,.receipt td{color:#000;font-weight:500}
.receipt dd strong,.receipt td strong{font-weight:700}
.receipt .receipt-total strong{color:#b32025}

/* ── 收费章 42mm（发票章实物大小），印章在公司名上下左右居中 ── */
.stamp-anchor{position:relative;display:inline-flex;align-items:center}
.receipt-stamp{left:50%;top:50%;right:auto;transform:translate(-50%,-50%);width:159px;height:159px}
.bill-paper .receipt-stamp{width:159px;height:159px}
.receipt-stamp-slot{min-height:140px}
@media print{.receipt-stamp,.bill-paper .receipt-stamp{width:42mm;height:42mm}}
.confirm-drop>.icon{width:30px;height:30px}
.confirm-drop>span{font-size:12px;color:#718781}
.confirm-drop input[type=file]{max-width:100%;width:auto;background:#fff;font-size:12px}
.confirm-queue .hint{margin-top:10px}
.confirm-file{display:flex;align-items:center;gap:10px;padding:10px 12px;background:white;border-bottom:1px solid #e6ece9}
.confirm-file>span{flex:1;min-width:0;overflow-wrap:anywhere}
.confirm-file small{display:block;color:#81908a;font-size:11px;margin-top:3px}
.confirm-file button{flex:none;font-size:12px;color:#a44739}



/* ── 归还物品 · 选择原接收记录 ───────────────────────────── */
.return-picker .filter-row{margin:12px 0 4px}
.return-picker .filter-row input{width:100%}
.return-source-list{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:48vh;overflow:auto;padding-right:2px}
.return-source-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #dfe7ea;border-radius:8px;padding:10px 14px;background:white}
.return-source-row:hover{border-color:#9fc4cb}
.return-source-row.is-returned{opacity:.55;background:#f5f8f9}
.return-source-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.return-source-main strong{font-size:13px;color:#253d47}
.return-source-main .sub{font-size:12px;color:#71858d;overflow-wrap:anywhere}
.return-source-side{display:flex;align-items:center;gap:8px;white-space:nowrap}
.return-source-side .primary{flex:none}

/* ── 合同文本自动生成 ─────────────────────────────────────── */
.contract-choose-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.contract-choose-row button{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:16px;border:1px solid #dfe7ea;border-radius:8px;background:white;cursor:pointer}
.contract-choose-row button:hover{border-color:#9fc4cb}
.contract-choose-row button strong{font-size:15px;color:#253d47}
.contract-choose-row button span{font-size:12px;color:#71858d}
.seal-status .ok-text{color:#1c7d56}
.seal-current{min-height:40px;margin:8px 0}
.seal-current img{height:64px;object-fit:contain}
.contract-wrap{display:flex;justify-content:center;background:#eef2f4;border-radius:6px;padding:10px}
/* 合同预览底栏的"打印带印章"开关 */
.drawer-foot .seal-toggle{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:13px;color:#33474f;cursor:pointer;user-select:none}
.drawer-foot .seal-toggle input{margin:0}
.contract-paper{width:100%;max-width:820px;background:white;color:#000;font-family:"Microsoft YaHei","微软雅黑","Microsoft YaHei UI",sans-serif;font-size:15px;line-height:1.95;padding:26px 30px;box-shadow:0 2px 10px rgba(30,60,70,.12)}
.contract-paper header{display:flex;align-items:flex-start;gap:16px;border-bottom:2.5px solid #b8202a;padding-bottom:14px}
.contract-paper .contract-logo{width:96px;height:auto;object-fit:contain;flex:none}
.contract-paper .contract-title{flex:1;text-align:center}
.contract-paper .contract-title h1{font-family:"黑体",SimHei,"Microsoft YaHei UI",sans-serif;font-size:26px;letter-spacing:4px;color:#000;margin:14px 0 0}
.contract-paper .contract-no{font-size:12px;color:#333;flex:none;padding-top:6px}
.contract-paper h2{font-family:"黑体",SimHei,"Microsoft YaHei UI",sans-serif;font-size:15.5px;margin:20px 0 8px;color:#000}
.contract-paper p{margin:6px 0;text-indent:0}
.contract-paper p.bank{color:#111}
.contract-paper .contract-parties{font-weight:bold}
.contract-paper table.contract-kv{width:100%;border-collapse:collapse;margin:8px 0}
.contract-paper table.contract-kv td{border:1px solid #5f767e;padding:8px 10px}
.contract-paper table.contract-kv td:first-child,.contract-paper table.contract-kv td:nth-child(3){width:19%;background:#f2f6f7;white-space:nowrap}
.contract-paper table.contract-ck{width:100%;border-collapse:collapse;margin:8px 0}
.contract-paper table.contract-ck>tbody>tr>td{border:1px solid #5f767e;padding:12px 14px;vertical-align:top;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.contract-paper table.contract-ck td.ind{width:46%}
/* "四/五"双栏标题与下方勾选表格两列对齐 */
.contract-paper h2.ck-head{display:grid;grid-template-columns:46% 1fr;column-gap:0}
.contract-paper .ck{display:block;font-size:13.5px;line-height:2;overflow-wrap:anywhere}
.contract-paper .ck input{vertical-align:-2px;margin-right:4px}
.contract-paper .other-line{margin-top:8px;font-size:13.5px}
.contract-paper b{font-weight:bold}
/* 合同正文关键信息（时间 / 金额 / 委托办理事项等）下方加下横线 */
.contract-paper .fill{font-weight:700;border-bottom:1.5px solid #1c2b2e;padding:0 3px}
.contract-signs{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:34px;break-inside:avoid}
.contract-signs footer.signs-foot{grid-column:1/-1;align-self:start}
.contract-signs section{position:relative;padding-top:6px}
.contract-signs .contract-sign-line{height:64px;border-bottom:1px solid #111;margin:10px 0 6px;position:relative}
.contract-signs small{font-size:13px;color:#111}
.contract-signs p{font-size:13px;color:#111}
.contract-seal{position:absolute;pointer-events:none;mix-blend-mode:multiply;opacity:.92}
.contract-signs .company-name{position:relative;display:inline-block}
.contract-signs .sign-holder{position:relative;display:inline-block}
.contract-seal.company-seal{width:88px;height:88px;left:50%;transform:translateX(-50%);top:-30px}
.contract-seal.legal-seal{height:44px;width:auto;left:calc(100% + 12px);transform:none;top:-8px}
.contract-paper footer{border-top:1px solid #cfdadc;margin-top:26px;padding-top:12px;font-size:11px;color:#3c464b}
/* 打印：A4 页边距版式 + 自动页码（第 X 页 / 共 Y 页，Chrome 131+ 支持页脚页码框） */
@page contract-pages{size:A4;margin:17mm 15mm 21mm;@bottom-center{content:"第 " counter(page) " 页 / 共 " counter(pages) " 页";font-family:"Microsoft YaHei","微软雅黑",sans-serif;font-size:10px;color:#333}}
@media print{
  body.printing-contract{page:contract-pages}
  .contract-paper{page:contract-pages;width:auto;max-width:none;box-shadow:none;padding:0;font-size:13px;line-height:1.85}
  .contract-paper .contract-logo{width:78px}
  .contract-paper .contract-title h1{font-size:22px}
  .contract-paper table.contract-kv td,.contract-paper table.contract-ck>tbody>tr>td{padding:6px 8px}
  /* 签字区整体不跨页：预留公章向上伸出的 66px 空间，确保两枚章始终与签字区在同一页 */
  .contract-paper .contract-signs{break-inside:avoid;page-break-inside:avoid;padding-top:70px;margin-top:0}
  /* 打印时印章按实物尺寸：公章 38mm（144px）、法人章 22mm 见方（83px），1 CSS px = 1/96 in
     位置错开：公章压在乙方名称行的签字线上方，法人章落在签字线下方，避免两章重叠 */
  .contract-paper .contract-seal.company-seal{width:144px;height:144px;top:-62px}
  .contract-paper .contract-seal.legal-seal{height:83px;top:2px}
  .contract-paper.no-seal .contract-seal{display:none}
  .contract-paper.no-seal .contract-signs{padding-top:0}
  .contract-paper *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .contract-paper .fill{border-bottom:1px solid #000}
}

/* ── 合同到期提醒与统计（15/30 天提醒 · 月份查询 · 金额合计） ── */
.service-overview strong{font-variant-numeric:tabular-nums}
.service-overview em{display:block;font-style:normal;font-size:12px;color:#5f7883;margin-top:6px;font-variant-numeric:tabular-nums}
.expiry-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0}
.expiry-chip{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:9px 11px;border:1px solid #dfe7ea;border-radius:7px;background:#fff;cursor:pointer;text-align:left;font-size:12.5px;color:#2c4a55}
.expiry-chip:hover{border-color:#9fc4cb}
.expiry-chip.active{border-color:#147f8c;background:#eaf6f7;color:#0f6470;font-weight:600}
.expiry-chip span{font-size:11px;color:#6d8791;font-variant-numeric:tabular-nums}
.expiry-chip.active span{color:#186a76}
.expiry-urgent{color:#bb2025;font-weight:600}
#expiry-month{cursor:pointer}
.expiry-total{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;align-items:center;padding:13px 18px;border-top:1px solid #dbe5e8;background:#f6fafb;font-size:13.5px;color:#2c4a55}
.expiry-total b{color:#0f6470}
.expiry-total strong{font-size:17px;color:#bb2025;font-variant-numeric:tabular-nums}
@media(max-width:900px){.expiry-chips{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:550px){.expiry-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.expiry-total{flex-direction:column;align-items:flex-start;gap:6px}}

/* ── 收款收据 / 退款凭单：字段区改为表格边框，导出与打印更清晰 ──
   注意：待支付收款单同时带 .receipt.bill-paper 两个类，以下规则必须排除它，保持其原有版式 */
.receipt:not(.bill-paper) dl{border:1px solid #b6c9cd;margin:24px 0 0}
.receipt:not(.bill-paper) dl>div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid #cdd9dc;padding:0}
.receipt:not(.bill-paper) dl>div:last-child{border-bottom:0}
.receipt:not(.bill-paper) dt{background:#f2f7f7;border-right:1px solid #cdd9dc;padding:12px 14px;color:#5f716b}
.receipt:not(.bill-paper) dd{margin:0;padding:12px 16px}
.receipt:not(.bill-paper) .receipt-total{border:1px solid #b6c9cd;border-top:0;margin-top:0}
@media print{
 .receipt:not(.bill-paper){font-size:14px}
 .receipt:not(.bill-paper) dl{border-color:#8fa8ad}
 .receipt:not(.bill-paper) dl>div{border-bottom-color:#8fa8ad}
 .receipt:not(.bill-paper) dt{background:#f2f7f7;border-right-color:#8fa8ad;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .receipt:not(.bill-paper) .receipt-total{border-color:#8fa8ad}
}
