:root{font-family:Inter,Segoe UI,Microsoft JhengHei,sans-serif;color:#24231f;background:#f5f1e8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #cfc9bd;background:#fff;color:#24231f;border-radius:5px;padding:.55rem .8rem}button:hover,button[aria-selected=true],button[aria-pressed=true]{border-color:#b78213}.app-shell{min-height:100vh}header{min-height:66px;padding:10px max(20px,calc((100vw - 1240px)/2));display:flex;gap:12px;align-items:center;background:#fffdf9;border-bottom:1px solid #d9d3c8}header>div:nth-child(2){display:grid;gap:2px}header strong{font-size:1.05rem}header span,.eyebrow{color:#716b62;font-size:.72rem;letter-spacing:.08em}header button{margin-left:auto}.brand-mark{display:grid;place-items:center;height:38px;width:38px;background:#d49a1e;font-weight:700;color:#29241a;border-radius:4px}.workspace{max-width:1240px;margin:0 auto;padding:24px 20px 60px}[role=tablist]{display:flex;gap:6px;border-bottom:1px solid #d9d3c8;margin-bottom:22px}[role=tab]{border-radius:5px 5px 0 0;border-bottom:0}[role=tab][aria-selected=true]{background:#d49a1e;font-weight:700}.list-heading{display:flex;justify-content:space-between;align-items:start;gap:16px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:4px;font-size:1.45rem}.list-heading p{color:#716b62}.primary{background:#d49a1e;border-color:#b78213;font-weight:700}.filters{background:#fff;border:1px solid #d9d3c8;padding:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:end;border-radius:6px}.filters label,.company-card label{display:grid;gap:4px;font-size:.82rem;color:#59544c}input,select{border:1px solid #cfc9bd;border-radius:4px;padding:.48rem .55rem;background:#fff}.segmented{display:flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:5px 0 0 5px}.segmented button:last-child{border-radius:0 5px 5px 0}.count{color:#716b62;margin:15px 0 8px}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #d9d3c8;border-radius:6px}.document-table,.customer-table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px;text-align:left;border-bottom:1px solid #eee9df;white-space:nowrap}th{color:#716b62;font-weight:600;font-size:.8rem}tbody tr{cursor:pointer}tbody tr:hover{background:#fff9e9}.customer-table tbody tr{cursor:pointer}.customer-table td{vertical-align:top}.customer-table .customer-address{min-width:260px;white-space:normal}.number-link{border:0;padding:0;color:#69500d;font-weight:700;text-decoration:underline}.status-badge{display:inline-block;border:1px solid #c8b47d;background:#fff7dc;border-radius:999px;padding:.2rem .5rem;font-size:.8rem}.empty{background:#fff;border:1px dashed #cfc9bd;padding:30px;text-align:center;color:#716b62}.error{padding:10px 12px;border:1px solid #c96954;color:#8a2c1d;background:#fff6f2}.drawer{position:fixed;z-index:2;top:0;right:0;height:100vh;width:min(520px,100vw);overflow:auto;background:#fffdf9;border-left:1px solid #cfc9bd;padding:22px;box-shadow:-8px 0 25px #0001}.drawer-header{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ded8cd;padding-bottom:14px;margin-bottom:18px}.drawer-header h2{margin:0;font-size:1.5rem}.detail-summary strong{font-size:1.5rem;display:block;margin:14px 0}dl{display:grid;grid-template-columns:75px 1fr;gap:7px}dt{color:#716b62}dd{margin:0}.relationship,.preview-placeholder,.company-card{margin-top:18px;padding:14px;background:#fff;border:1px solid #ded8cd;border-radius:5px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.settings .company-card{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings .company-card h3,.settings .company-card button{grid-column:1 / -1}.settings>.primary{margin-top:18px}@media(max-width:760px){header{padding:10px 14px}header span{display:none}.workspace{padding:16px 14px 40px}[role=tablist]{overflow-x:auto}.list-heading{align-items:stretch;flex-direction:column}.filters>*{width:100%}.filters .segmented{width:auto}.table-wrap{overflow:visible;border:0;background:transparent}.document-table,.document-table tbody,.document-table tr,.document-table td,.customer-table,.customer-table tbody,.customer-table tr,.customer-table td{display:block;min-width:0;width:100%}.document-table thead,.customer-table thead{display:none}.document-table tr,.customer-table tr{padding:12px;margin-bottom:10px;border:1px solid #d9d3c8;border-radius:6px;background:#fff}.document-table td,.customer-table td{padding:4px 0;border:0;white-space:normal}.document-table td:before,.customer-table td:before{color:#716b62;font-size:.75rem}.document-table td:nth-child(2):before{content:"公司："}.document-table td:nth-child(3):before{content:"客户："}.document-table td:nth-child(4):before{content:"工程地址／付款阶段："}.document-table td:nth-child(5):before{content:"日期："}.document-table td:nth-child(6):before{content:"金额："}.customer-table td:nth-child(1):before{content:"客户名称："}.customer-table td:nth-child(2):before{content:"联系人："}.customer-table td:nth-child(3):before{content:"电话："}.customer-table td:nth-child(4):before{content:"客户电邮："}.customer-table td:nth-child(5):before{content:"客户地址："}.drawer{width:100vw}.settings .company-card{grid-template-columns:1fr}}textarea{font:inherit;resize:vertical;border:1px solid #cfc9bd;border-radius:4px;padding:.55rem;background:#fff}.customer-detail-drawer{z-index:4;width:min(960px,100vw)}.employee-table{width:100%;min-width:1120px;border-collapse:collapse}.employee-table td{vertical-align:top}.employee-secondary-name{display:block;margin-top:3px;color:#716b62;font-weight:400}.employee-status{display:inline-block;padding:.2rem .55rem;border:1px solid;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.employee-status-active{border-color:#78a275;color:#315d2f;background:#f2faf0}.employee-status-inactive{border-color:#b4aaa0;color:#625b53;background:#f2efeb}.employee-editor{z-index:5;width:min(820px,100vw)}.employee-detail-drawer{z-index:4;width:min(900px,100vw)}.employee-form-section{margin:0 0 16px;padding:14px;border:1px solid #ded8cd;border-radius:6px;background:#fff}.employee-form-section legend{padding:0 6px;color:#554d3e;font-weight:700}.employee-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.employee-form-section label,.employee-document-form label{display:grid;gap:5px;color:#59544c;font-size:.83rem}.employee-form-section input,.employee-form-section select,.employee-form-section textarea,.employee-document-form input,.employee-document-form textarea{width:100%}.sensitive-section{border-left:4px solid #c89a3d;background:#fffaf0}.field-help{margin:8px 0 0;color:#716b62;font-size:.78rem;line-height:1.5}.employee-detail-toolbar,.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.employee-detail-toolbar{margin-bottom:14px}.employee-detail-section{margin-top:14px;padding:14px;border:1px solid #ded8cd;border-radius:6px;background:#fff}.employee-detail-section h3,.employee-detail-section h4{margin:0}.employee-detail-fields{grid-template-columns:130px minmax(0,1fr);gap:9px 14px;margin-bottom:0}.employee-detail-fields dd{overflow-wrap:anywhere}.employee-notes{margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.section-heading-row>div>p{margin:3px 0 0;color:#716b62;font-size:.8rem}.employee-document-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;padding:14px;border:1px solid #d7c69f;border-radius:6px;background:#fffaf0}.employee-document-form>button{justify-self:start}.employee-document-card{margin-top:12px;padding:13px;border:1px solid #e1dbd0;border-radius:6px;background:#fff}.employee-document-heading{display:flex;justify-content:space-between;gap:12px}.employee-document-heading p{margin:4px 0 0;color:#59544c;overflow-wrap:anywhere}.employee-document-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-top:10px}.employee-document-images figure{min-width:0;margin:0;padding:7px;border:1px solid #ddd6c9;border-radius:5px;background:#faf8f3}.employee-document-images img{display:block;width:100%;height:130px;object-fit:contain;background:#eee9df}.employee-document-images figcaption{display:grid;gap:6px;margin-top:7px}.employee-document-images figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.employee-document-images figcaption button{justify-self:start;padding:.3rem .5rem}.employee-add-photo{display:inline-grid;gap:5px;margin-top:10px;color:#59544c;font-size:.8rem}.employee-add-photo input{max-width:360px}.vehicle-table{width:100%;min-width:900px;border-collapse:collapse}.vehicle-table td{vertical-align:middle}.vehicle-row-actions{display:flex;flex-wrap:wrap;gap:6px}.vehicle-plate{color:#674a09;font-size:1rem;letter-spacing:.04em}.vehicle-status{display:inline-block;padding:.22rem .58rem;border:1px solid;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.vehicle-status-current{border-color:#8baa84;color:#315d2f;background:#f2faf0}.vehicle-status-due{border-color:#c58a25;color:#76520a;background:#fff8e4}.vehicle-status-confirmed{border-color:#7f9eae;color:#285269;background:#f0f8fb}.vehicle-editor{width:min(680px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:22px;border:2px solid #b78213;border-radius:7px;background:#fffdf9;box-shadow:0 15px 50px #0004}.vehicle-editor .drawer-header{align-items:flex-start}.vehicle-editor .eyebrow,.vehicle-reminder-dialog .eyebrow{margin-bottom:4px;color:#8a681a}.vehicle-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vehicle-form-grid label{display:grid;gap:5px;color:#59544c;font-size:.83rem}.vehicle-form-grid input,.vehicle-form-grid select,.vehicle-form-grid textarea{width:100%}.vehicle-editor-actions{justify-content:flex-end}.vehicle-reminder-backdrop{z-index:30}.vehicle-reminder-dialog{width:min(780px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:24px;border:2px solid #b78213;border-radius:8px;background:#fffdf9;box-shadow:0 18px 55px #0005}.vehicle-reminder-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid #ded8cd}.vehicle-reminder-heading h2{margin-bottom:6px}.vehicle-reminder-heading p:last-child{margin-bottom:0;color:#59544c}.vehicle-reminder-count{flex:none;min-width:58px;padding:.3rem .6rem;border-radius:999px;color:#76520a;background:#fff1c9;font-weight:700;text-align:center}.vehicle-reminder-list{display:grid;gap:10px;margin:16px 0;padding:0;list-style:none}.vehicle-reminder-list li{display:grid;grid-template-columns:minmax(150px,1fr) minmax(190px,1fr) auto;align-items:center;gap:16px;padding:14px;border:1px solid #ded8cd;border-left:4px solid #d49a1e;border-radius:6px;background:#fff}.vehicle-reminder-list li>div{display:grid;gap:3px;min-width:0}.vehicle-reminder-list li>div:first-child strong{color:#5f4307;font-size:1.15rem;letter-spacing:.04em}.vehicle-reminder-list li span{overflow-wrap:anywhere;color:#59544c}.vehicle-reminder-list li small{color:#716b62}.vehicle-reminder-list .is-due{color:#8a4f05;font-size:.78rem;font-weight:700}.vehicle-reminder-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #ded8cd}.vehicle-reminder-footer p{margin:0;color:#716b62;font-size:.8rem;line-height:1.45}.vehicle-reminder-footer button{flex:none}.empty-inline{margin:12px 0 0;padding:14px;color:#716b62;text-align:center;border:1px dashed #d3ccc0}.customer-profile-editor,.customer-notes,.customer-related-documents{margin-top:18px;padding:16px;border:1px solid #ded8cd;border-radius:6px;background:#fff}.customer-profile-editor{margin-top:0}.customer-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.customer-section-heading h3,.customer-notes h3{margin-bottom:5px}.customer-section-heading p{margin-bottom:0;color:#716b62;font-size:.83rem}.customer-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.customer-profile-grid label,.customer-notes label{display:grid;gap:6px;color:#59544c;font-size:.83rem}.customer-profile-grid input,.customer-profile-grid textarea,.customer-notes textarea{width:100%}.customer-profile-address{grid-column:1 / -1}.customer-history-warning,.customer-sync-blocked{margin:12px 0 0;padding:9px 11px;border-left:3px solid #b78213;color:#664c17;background:#fff8e8;font-size:.83rem}.customer-notes textarea{min-height:105px}.customer-notes>button{margin-top:10px}.customer-sync-filters{display:flex;flex-wrap:wrap;justify-content:flex-end}.customer-sync-filters button{border-radius:0}.customer-sync-filters button:first-child{border-radius:5px 0 0 5px}.customer-sync-filters button:last-child{border-radius:0 5px 5px 0}.customer-sync-selection-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;border:1px solid #d7ccb4;background:#fffaf0}.customer-sync-selection-tools label{display:flex;align-items:center;gap:9px;font-weight:700}.customer-sync-selection-tools input{width:17px;height:17px;margin:0}.customer-sync-selection-tools small{color:#6d6558;white-space:nowrap}.customer-related-group{margin-top:12px;padding:12px;border:1px solid #e1dbd0;border-radius:6px}.customer-related-group-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.customer-related-group-heading h4{margin:0}.customer-related-group-heading span{color:#716b62;font-size:.78rem}.customer-related-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.customer-related-list>li{padding:10px 0;border-top:1px solid #eee9df}.customer-related-list>li:first-child{border-top:0}.customer-sync-row{display:grid;grid-template-columns:auto minmax(115px,.7fr) minmax(130px,1.15fr) auto auto auto auto auto;align-items:center;gap:9px}.customer-sync-checkbox{display:grid;place-items:center}.customer-sync-checkbox input{width:17px;height:17px;margin:0}.customer-related-project{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-related-list small{color:#716b62}.customer-related-list strong{color:#674a09;white-space:nowrap}.customer-sync-badge{display:inline-block;padding:.2rem .5rem;border:1px solid;border-radius:999px;font-size:.76rem;font-weight:700;white-space:nowrap}.customer-sync-badge.is-synced{border-color:#86a67f;color:#315d2f;background:#f2faf0}.customer-sync-badge.is-different{border-color:#c8a458;color:#76520a;background:#fff8e4}.customer-sync-recycled{opacity:.72}.master-record-scope{width:fit-content;margin:12px 0}.danger-link{border-color:#d7a69a;color:#8b2d1b;background:#fff7f4}.engineering-card-actions{display:flex;flex-wrap:wrap;gap:8px}.tenancy-recycle-bin{margin-top:14px;border-top:1px solid #e5ddd1;padding-top:12px}.tenancy-recycle-bin summary{cursor:pointer;font-weight:800;color:#6c6255}.tenancy-recycle-bin>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eee7dc}.tenancy-recycle-bin span,.tenancy-recycle-bin small{display:block}.tenancy-recycle-bin small{margin-top:3px;color:#7d7467}.tenancy-property-delete{margin:8px 12px 12px}.tenancy-archived-property{display:grid;gap:8px;padding:14px}.tenancy-archived-property header,.property-detail-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.customer-sync-readonly{white-space:nowrap}.customer-diff-toggle{padding:.3rem .5rem;border:0;color:#76520a;background:transparent;text-decoration:underline;white-space:nowrap}.customer-differences{margin:9px 0 0 26px;padding:10px;border:1px solid #e3d8bd;border-radius:5px;background:#fffaf0}.customer-difference-heading,.customer-difference-row{display:grid;grid-template-columns:minmax(80px,.55fr) minmax(0,1fr) minmax(0,1fr);gap:12px;padding:6px 8px}.customer-difference-heading{color:#716b62;border-bottom:1px solid #e4dbc8;font-size:.76rem}.customer-difference-row span{overflow-wrap:anywhere}.customer-sync-actions{position:sticky;bottom:-22px;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:16px -16px -16px;padding:12px 16px;border-top:1px solid #d6c9ab;background:#fffaf0}.customer-sync-actions span{color:#59544c;font-weight:600}@media(max-width:760px){.customer-section-heading{align-items:stretch;flex-direction:column}.customer-profile-grid{grid-template-columns:1fr}.customer-profile-address{grid-column:auto}.customer-sync-filters{justify-content:stretch}.customer-sync-filters button{flex:1}.customer-sync-selection-tools{align-items:flex-start;flex-direction:column}.customer-sync-row{grid-template-columns:auto minmax(0,1fr) auto}.customer-sync-row .customer-related-project{grid-column:2 / -1;white-space:normal}.customer-sync-row>strong,.customer-sync-row>small,.customer-sync-row>.customer-sync-badge,.customer-sync-row>.customer-diff-toggle{grid-column:2 / -1;justify-self:start}.customer-differences{margin-left:0}.customer-difference-heading,.customer-difference-row{grid-template-columns:1fr;gap:3px}.customer-sync-actions{bottom:-22px;align-items:stretch;flex-direction:column}}@media(max-width:760px){.vehicle-table,.vehicle-table tbody,.vehicle-table tr,.vehicle-table td{display:block;min-width:0;width:100%}.vehicle-table thead{display:none}.vehicle-table tr{padding:12px;margin-bottom:10px;border:1px solid #d9d3c8;border-radius:6px;background:#fff}.vehicle-table td{padding:4px 0;border:0;white-space:normal}.vehicle-table td:before{color:#716b62;font-size:.75rem}.vehicle-table td:nth-child(1):before{content:"车牌号码："}.vehicle-table td:nth-child(2):before{content:"归属类别："}.vehicle-table td:nth-child(3):before{content:"车主／公司："}.vehicle-table td:nth-child(4):before{content:"牌费到期日："}.vehicle-table td:nth-child(5):before{content:"状态："}.vehicle-table td:nth-child(6):before{content:"验车确认："}.vehicle-table td:nth-child(7):before{content:"操作："}.vehicle-form-grid{grid-template-columns:1fr}.vehicle-form-grid .wide-field{grid-column:1}.vehicle-reminder-dialog{padding:18px}.vehicle-reminder-heading,.vehicle-reminder-footer{align-items:stretch;flex-direction:column}.vehicle-reminder-count{align-self:flex-start}.vehicle-reminder-list li{grid-template-columns:1fr;gap:10px}.vehicle-reminder-list li button,.vehicle-reminder-footer button{width:100%}.employee-table,.employee-table tbody,.employee-table tr,.employee-table td{display:block;min-width:0;width:100%}.employee-table thead{display:none}.employee-table tr{padding:12px;margin-bottom:10px;border:1px solid #d9d3c8;border-radius:6px;background:#fff}.employee-table td{padding:4px 0;border:0;white-space:normal}.employee-table td:before{color:#716b62;font-size:.75rem}.employee-table td:nth-child(1):before{content:"员工编号："}.employee-table td:nth-child(2):before{content:"姓名："}.employee-table td:nth-child(3):before{content:"职位／工种："}.employee-table td:nth-child(4):before{content:"电话："}.employee-table td:nth-child(5):before{content:"入职日期："}.employee-table td:nth-child(6):before{content:"日薪："}.employee-table td:nth-child(7):before{content:"强积金参考："}.employee-table td:nth-child(8):before{content:"银行账号："}.employee-table td:nth-child(9):before{content:"证件："}.employee-table td:nth-child(10):before{content:"状态："}.employee-form-grid,.employee-document-form{grid-template-columns:1fr}.employee-form-grid .wide-field,.employee-document-form .wide-field{grid-column:1}.employee-detail-fields{grid-template-columns:105px minmax(0,1fr)}.employee-document-heading,.section-heading-row{align-items:stretch;flex-direction:column}}.notice{padding:10px 12px;border:1px solid #6d9969;color:#315d2f;background:#f4fbf2}.print-view{width:210mm;margin:8mm auto}.print-view-loading,.print-view-error{max-width:720px;margin:48px auto;padding:20px;color:#4b4032;background:#fff;border:1px solid #d5cfc3}.quote-editor-dialog{position:fixed;z-index:4;inset:0;overflow:auto;background:#eee9df}.quote-editor-toolbar{position:sticky;z-index:6;top:0;min-height:76px;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fffdf9;border-bottom:1px solid #cfc9bd;box-shadow:0 3px 12px #0001}.quote-editor-toolbar h1,.quote-editor-toolbar p{margin-bottom:0}.quote-editor-toolbar>div:last-child{display:flex;gap:8px}.quote-editor-layout{display:grid;grid-template-columns:minmax(520px,1fr) minmax(450px,.85fr);gap:22px;max-width:1540px;margin:0 auto;padding:22px;align-items:start}.quote-editor-form{min-width:0}.editor-section{min-width:0;margin:0 0 16px;padding:16px;border:1px solid #d1cabd;border-radius:6px;background:#fffdf9}.editor-section legend{padding:0 6px;font-weight:700;color:#554d3e}.editor-section label{display:grid;gap:5px;color:#59544c;font-size:.83rem}.editor-section>label+label{margin-top:12px}.editor-field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.editor-section input,.editor-section select,.editor-section textarea{min-width:0;max-width:100%;width:100%}.wide-field{grid-column:1 / -1}.line-add-actions,.line-row-actions{display:flex;flex-wrap:wrap;gap:6px}.line-add-actions{margin-bottom:12px}.line-editor-row{min-width:0;margin-top:10px;padding:12px;border:1px solid #ded8cd;border-radius:5px;background:#fff}.line-editor-row-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.line-editor-row-heading .line-row-actions{margin-left:auto}.line-editor-row-heading button{padding:.35rem .55rem}.line-description textarea{min-height:62px}.quotation-image-editor{display:grid;gap:8px;margin-top:10px;padding:10px;border:1px solid #ded8cd;border-radius:5px;background:#faf8f3}.quotation-image-upload-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.quotation-image-upload{display:inline-flex;align-items:center;gap:8px;font-weight:700}.quotation-image-upload input{max-width:250px;padding:.35rem;background:#fff}.quotation-image-count{color:#716b62;font-size:.78rem}.quotation-image-status,.quotation-image-error{margin:0;font-size:.84rem}.quotation-image-status{color:#76520a}.quotation-image-error{color:#9a2f1d}.quotation-image-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.quotation-image-card{min-width:0;margin:0;padding:8px;border:1px solid #ddd6c9;border-radius:5px;background:#fff}.quotation-image-thumbnail{display:block;width:100%;height:120px;border-radius:3px;object-fit:contain;background:#eee9df}.quotation-image-card figcaption{display:grid;gap:7px;margin-top:8px}.quotation-image-card textarea{width:100%;min-height:3.8rem;box-sizing:border-box}.quotation-image-card textarea[aria-invalid=true]{border-color:#b42318;background:#fff0ed;box-shadow:0 0 0 1px #b42318}.quotation-image-caption-error{margin:0}.quotation-image-card button{justify-self:start}.line-values{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,.6fr) minmax(0,1fr) auto auto;align-items:end;gap:8px;margin-top:8px}.line-values>*{min-width:0}.free-toggle{display:flex!important;align-items:center;gap:5px!important;min-height:39px}.line-values output{min-width:108px;padding:.55rem;text-align:right;font-weight:700;color:#674a09}.field-error{margin:6px 0 0;color:#9b2f1d;font-size:.8rem}.preview-validation-message{width:100%;margin:0;padding:24px;background:#fff8e8;border:1px solid #c8a65c;color:#694b12}.quotation-draft-issue-summary{width:100%;margin:0 0 12px;padding:12px 16px;background:#fff3f1;border:1px solid #c65345;color:#862d24}.quotation-draft-issue-summary ul{margin:6px 0 0;padding-left:20px}.quotation-draft-invalid{background:#fff0ed!important;box-shadow:inset 0 0 0 .35mm #c65345}.quotation-pricing-editor{display:grid;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #ded8cd}.discount-controls{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(220px,1fr);align-items:end;gap:10px}.pricing-summary-row{display:flex;justify-content:flex-end;align-items:baseline;gap:18px}.pricing-summary-row strong{min-width:128px;text-align:right;color:#674a09}.editor-total{display:flex;justify-content:flex-end;align-items:baseline;gap:18px;margin-top:2px;padding-top:10px;border-top:2px solid #b78213}.editor-total strong{font-size:1.35rem}.payment-stage-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.payment-stage-toolbar p{margin:0;color:#716b62;font-size:.8rem}.payment-stage-table-wrap{overflow-x:auto;border:1px solid #bdb7ac;background:#fff}.payment-stage-table{width:100%;min-width:650px;border-collapse:collapse;table-layout:fixed}.payment-stage-table th,.payment-stage-table td{padding:9px 10px;border-right:1px solid #d9d3c8;border-bottom:1px solid #d9d3c8;white-space:normal}.payment-stage-table tr>:last-child{border-right:0}.payment-stage-table thead th{background:#f2ede2;color:#4f493f}.payment-stage-table tbody tr{cursor:default}.payment-stage-table tbody tr:hover{background:#fff9e9}.payment-stage-table input{width:100%}.payment-stage-table .payment-stage-amount{text-align:right;font-variant-numeric:tabular-nums}.payment-stage-actions{display:flex;flex-wrap:wrap;gap:4px}.payment-stage-actions button{padding:.32rem .46rem}.payment-stage-table tfoot th{text-align:right;background:#fbf5e6;color:#554d3e}.payment-stage-table tfoot strong{display:inline-block;min-width:145px;color:#674a09;font-variant-numeric:tabular-nums}.payment-stage-table tfoot tr:last-child th{border-top:2px solid #b78213;border-bottom:0}.contract-condition-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}.contract-condition-grid textarea{resize:vertical}.quote-editor-preview{position:sticky;top:98px;min-width:0}.quote-editor-preview h2{font-size:1rem;color:#59544c}.a4-preview-viewport{max-width:100%;overflow:auto;background:#d8d2c7;border:1px solid #c2baad;padding:14px}.quote-editor-preview .a4-preview-viewport{height:calc(100vh - 150px);min-height:520px}.quotation-editor-layout .quote-editor-preview .a4-preview-viewport{display:flex;justify-content:center;align-items:flex-start;padding:8px}.quotation-mode-options{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.quotation-mode-options label{display:flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid #d8d1c5;border-radius:8px;background:#fff}.contract-compatibility-notice{padding:10px 12px;background:#fff8e8;border-left:3px solid #c8a65c}.contract-module-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.contract-module-toolbar>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.contract-module-card{position:relative;margin-top:10px;padding:14px;border:1px solid #ddd5c8;border-radius:8px;background:#fff}.contract-module-card>button:first-child{float:right}.custom-contract-term-editor{display:grid;gap:10px}.a4-preview-scale{width:210mm;transform:scale(.54);transform-origin:top left}.quotation-editor-layout .a4-preview-scale{flex:0 0 auto;transform:none;zoom:var(--quotation-preview-scale, .54)}.saved-document-preview{margin-top:18px}.saved-document-preview .a4-preview-viewport{height:620px}.quotation-document,.invoice-document,.receipt-document{display:grid;gap:8mm;width:210mm}.document-overflow-error{position:sticky;z-index:10;top:0;width:210mm;padding:3mm 5mm;border:.6mm solid #b42318;background:#fff0ed;color:#8a1c12;font-weight:700}.a4-page{font-family:Microsoft JhengHei,PingFang TC,Arial,sans-serif;font-size:3.05mm;line-height:1.35;box-shadow:0 2mm 6mm #0002}.document-header{flex:0 0 auto}.document-company-header{min-height:24mm;display:grid;grid-template-columns:19mm minmax(61mm,1fr) minmax(72mm,.95fr);align-items:center;gap:5mm;padding-bottom:3mm;border-bottom:.45mm solid #b78213}.document-logo{flex:0 0 19mm;height:19mm;display:grid;place-content:center;text-align:center;background:#d49a1e;color:#211d15;border-radius:1mm}.document-logo strong{font-size:6mm;letter-spacing:.6mm;line-height:1}.document-logo span{margin-top:1mm;font-size:2.2mm;letter-spacing:.35mm}.document-company-names{display:grid;align-content:center;gap:.8mm;min-width:0}.document-company-names>strong{font-size:4.6mm;letter-spacing:.25mm}.document-company-names>span{font-size:3.1mm;font-weight:700;letter-spacing:.15mm}.document-company-contact{min-width:0;display:grid;align-content:center;gap:.55mm;padding-left:4mm;border-left:.35mm solid #b78213}.document-contact-row{min-width:0;display:grid;grid-template-columns:22mm minmax(0,1fr);align-items:baseline;gap:1.8mm}.document-contact-row small{font-size:2.2mm;line-height:1.25}.document-contact-label{color:#a56f00;font-weight:700;white-space:nowrap}.document-contact-value{min-width:0;color:#25231f;overflow-wrap:anywhere}.document-identity{min-height:16mm;display:flex;align-items:center;justify-content:space-between;gap:6mm;padding:2.7mm 0;border-bottom:.25mm solid #aaa59b}.document-identity>div:first-child{display:flex;align-items:baseline;gap:2.5mm}.document-identity>div:first-child strong{font-size:6.2mm}.document-identity>div:first-child span{font-size:3.4mm;letter-spacing:.5mm}.document-identity>div:first-child small{color:#8b6412;font-weight:700}.document-number{display:grid;justify-items:end}.document-number small{font-size:2.3mm;color:#66625a}.document-number strong{font-size:4.2mm;color:#76520a}.document-number span{margin-top:.4mm;font-size:3mm;font-weight:700;color:#25231f}.document-page-content{min-height:0;flex:1 1 auto;display:flex;flex-direction:column}.document-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:3mm 0;border:.25mm solid #bdb7ac}.document-info-grid>div{min-height:9mm;display:grid;grid-template-columns:31mm 1fr;align-items:center;padding:1.3mm 2mm;border-bottom:.2mm solid #ddd8cf}.document-info-grid>.document-info-left{border-right:.2mm solid #ddd8cf}.document-info-grid>.document-info-wide{grid-column:1 / -1;border-right:0;border-bottom:0;break-inside:avoid;page-break-inside:avoid}.document-info-grid dt{font-size:2.45mm;color:#66625a}.document-info-grid dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:600}.document-info-site dd{white-space:pre-line;overflow-wrap:anywhere;word-break:break-word}.quotation-items{width:100%;table-layout:fixed;border-collapse:collapse;margin-top:3mm}.quotation-info+.quotation-items{margin-top:0}.quotation-items th,.quotation-items td{padding:1.6mm 1.4mm;white-space:normal;vertical-align:top;border:.2mm solid #c9c4ba;overflow-wrap:anywhere}.quotation-items th{height:8mm;color:#25231f;background:#e8dfc7;font-size:2.35mm;text-align:center}.quotation-items th:nth-child(1){width:13mm}.quotation-items th:nth-child(2){width:85mm;text-align:left}.quotation-items th:nth-child(3){width:17mm}.quotation-items th:nth-child(4){width:16mm}.quotation-items th:nth-child(5){width:24mm}.quotation-items th:nth-child(6){width:25mm}.quotation-items tbody tr{cursor:default;break-inside:avoid;page-break-inside:avoid}.quotation-items tbody tr:hover{background:transparent}.quotation-items td:nth-child(1),.quotation-items td:nth-child(3),.quotation-items td:nth-child(4){text-align:center}.quotation-items td:nth-child(5),.quotation-items td:nth-child(6){text-align:right;font-size:2.25mm;white-space:nowrap}.quotation-items td:nth-child(5),.quotation-items td:nth-child(6),.quotation-total strong,.document-number span{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.quotation-section-row td{background:#f4f0e7;color:#392f1e}.quotation-section-row td:last-child{font-size:2.3mm;white-space:nowrap}.quotation-subitem-row td:nth-child(2){padding-left:5mm}.quotation-image-grid-row>td{background:#fbfaf7}.quotation-image-grid{width:100%}.quotation-print-image-card{min-width:0;margin:0;border:.2mm solid #d2cec5;background:#f4f2ed}.quotation-print-image-frame{position:relative;box-sizing:border-box;display:grid;place-items:center;overflow:hidden;background:#f0eee9}.quotation-print-image{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain}.quotation-print-image-frame--error{border:.35mm dashed #b42318;background:#fff0ed}.quotation-print-image-error{color:#8a1c12;font-size:2.6mm;font-weight:700;text-align:center}.quotation-print-image-caption{box-sizing:border-box;display:flex;align-items:flex-start;height:5.5mm;min-height:5.5mm;padding:.35mm 1.2mm;overflow:hidden;border-top:.2mm solid #d2cec5;background:#fff;font-size:1.9mm;line-height:1.15;white-space:pre-line;overflow-wrap:anywhere}.quotation-note-row td{padding:1.5mm 2.5mm!important;text-align:left!important;background:#faf8f2}.quotation-note-row p{margin:0;padding-left:3mm;border-left:.7mm solid #d2bd86;color:#5d574e;font-size:2.4mm;line-height:1.45}.empty-document-row td{height:18mm;text-align:center!important;vertical-align:middle;color:#716b62}.quotation-closing{padding-top:2mm;break-inside:avoid;page-break-inside:avoid}.quotation-closing--probe,.quotation-closing--shared{margin-top:auto}.quotation-closing--standalone{flex:1 1 auto;margin-top:0;display:flex;flex-direction:column}.quotation-closing--standalone .quotation-agreement-signatures{margin-top:auto}.quotation-pricing-summary{border-top:.6mm solid #b78213;border-bottom:.25mm solid #b78213;background:#fbf5e6}.quotation-pricing-row{min-height:6mm;display:flex;justify-content:flex-end;align-items:center;gap:10mm;padding:1mm 3mm}.quotation-pricing-row+.quotation-pricing-row{border-top:.2mm solid #dfd2b1}.quotation-pricing-row strong{min-width:42mm;text-align:right;font-size:2.75mm;font-variant-numeric:tabular-nums}.quotation-pricing-summary .quotation-total{min-height:11mm;border-top:.45mm solid #b78213;border-bottom:0;background:transparent}.quotation-total{min-height:13mm;display:flex;justify-content:flex-end;align-items:center;gap:10mm;padding:2mm 3mm;border-top:.6mm solid #b78213;border-bottom:.25mm solid #b78213;background:#fbf5e6}.quotation-total span{font-weight:700}.quotation-total strong{min-width:42mm;text-align:right;font-size:5mm;color:#6a4a08}.quotation-notes,.quotation-terms{margin-top:2mm}.quotation-closing h3{margin:0 0 1mm;font-size:2.8mm;break-after:avoid;page-break-after:avoid}.quotation-closing p{margin:0;white-space:pre-line;overflow-wrap:anywhere;word-break:normal;line-break:strict;font-size:2.55mm;line-height:1.45}.quotation-contract-payment-table{width:100%;margin-top:1mm;table-layout:fixed;border-collapse:collapse;break-inside:avoid;page-break-inside:avoid}.stage-payment-schedule{margin-top:4mm;break-inside:avoid;page-break-inside:avoid}.quotation-closing .stage-payment-schedule{margin-top:0}.stage-payment-schedule>h3{margin:0 0 1mm;font-size:2.8mm;break-after:avoid;page-break-after:avoid}.quotation-contract-payment-table tr{break-inside:avoid;page-break-inside:avoid}.quotation-contract-payment-table th,.quotation-contract-payment-table td{padding:1.2mm 2mm;border:.2mm solid #c9c4ba;vertical-align:top;font-size:2.4mm}.quotation-contract-payment-table thead th{background:#e8dfc7;text-align:left}.quotation-contract-payment-table tbody td:first-child{white-space:pre-line;overflow-wrap:anywhere}.quotation-contract-payment-table tfoot th{background:#fbf5e6;border-top:.45mm solid #b78213;text-align:left}.quotation-contract-payment-table th:last-child,.quotation-contract-payment-table td:last-child{width:48mm;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.quotation-contract-conditions{margin-top:1.5mm;break-inside:avoid;page-break-inside:avoid}.quotation-contract-condition{box-sizing:border-box;min-height:6mm;display:grid;grid-template-columns:42mm 1fr;align-items:start;gap:3mm;padding:1mm 2mm;border-bottom:.2mm solid #ddd8cf}.quotation-contract-condition strong{font-size:2.4mm;line-height:1.45}.quotation-contract-condition p{line-height:1.45;white-space:pre-wrap}.quotation-agreement-signatures{margin-top:2mm;padding-top:2mm;border-top:.25mm solid #aaa59b;break-inside:avoid;page-break-inside:avoid}.quotation-agreement-clause{white-space:pre-line}.quotation-signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:6mm;margin-top:2mm;break-inside:avoid;page-break-inside:avoid}.quotation-signature-box{min-width:0;display:grid;grid-template-rows:12mm 14.2mm 9.2mm 9.2mm;padding:2mm;border:.25mm solid #aaa59b;break-inside:avoid;page-break-inside:avoid}.quotation-signature-party{min-width:0;overflow:hidden}.quotation-signature-party h4{margin:0 0 1mm;font-size:2.6mm}.quotation-signature-party>strong,.quotation-signature-secondary-name{display:block;font-size:2.35mm;overflow-wrap:anywhere}.quotation-signature-secondary-name{margin-top:.5mm}.quotation-signature-line{box-sizing:border-box;display:flex;align-items:flex-end;padding-top:1mm;border-top:.25mm solid #615e58;font-size:2.15mm}.quotation-acceptance{margin-top:3mm;padding-top:3mm;border-top:.25mm solid #aaa59b}.quotation-acceptance>div{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:6mm;margin-top:9mm}.quotation-acceptance>div span{padding-top:1.7mm;border-top:.25mm solid #615e58;font-size:2.3mm}.document-footer{flex:0 0 7mm;margin-top:3mm;padding-top:2mm;display:flex;align-items:flex-end;justify-content:space-between;border-top:.2mm solid #bdb7ac;color:#66625a;font-size:2.3mm}.document-money{font-variant-numeric:tabular-nums;letter-spacing:.05mm}.document-kicker{margin:0 0 1mm;color:#76520a;font-size:2.5mm;font-weight:700;letter-spacing:.18mm;text-transform:uppercase}.invoice-claim{margin-top:1mm;padding:4mm;border-left:1.2mm solid #d49a1e;background:#fbf7ee}.invoice-claim h2{margin:0;font-size:4mm;line-height:1.35}.invoice-current-amount{display:flex;align-items:baseline;justify-content:space-between;gap:8mm;margin-top:4mm;padding-top:3mm;border-top:.25mm solid #cfc3a7}.invoice-current-amount span{font-weight:700}.invoice-current-amount strong{font-size:6mm;color:#6a4a08}.document-summary{margin-top:4mm;border:.25mm solid #bdb7ac}.document-summary h3{margin:0;padding:2mm 3mm;background:#e8dfc7;font-size:2.8mm}.document-summary-row{display:grid;grid-template-columns:1fr 43mm;align-items:center;min-height:8mm;padding:1.4mm 3mm;border-top:.2mm solid #ddd8cf}.document-summary-row strong{text-align:right}.document-summary-total{background:#fbf5e6;border-top:.45mm solid #b78213}.document-summary-total span,.document-summary-total strong{font-size:3.25mm;color:#60430a}.invoice-closing,.receipt-closing{margin-top:auto;padding-top:4mm;break-inside:avoid;page-break-inside:avoid}.document-notes{margin-bottom:3mm;padding:2.5mm 3mm;border:.2mm solid #d9d3c8}.document-notes h3,.bank-details h3,.receipt-payment-details h3,.receipt-confirmation h3{margin:0 0 1.5mm;font-size:2.8mm}.document-notes p,.receipt-confirmation p{margin:0;white-space:pre-line;font-size:2.55mm;line-height:1.45}.bank-details{padding:3mm;border-top:.55mm solid #b78213;background:#fbf7ee}.bank-details>div{display:grid;grid-template-columns:31mm 1fr;gap:1mm 3mm}.bank-details span{color:#66625a;font-size:2.4mm}.bank-details strong{font-size:2.55mm;overflow-wrap:anywhere}.document-signature{display:grid;grid-template-columns:1fr 45mm;gap:12mm;margin-top:12mm}.document-signature span{padding-top:2mm;border-top:.25mm solid #615e58;font-size:2.35mm}.receipt-acknowledgement{padding:3mm 0 0}.receipt-acknowledgement>p{margin:0 0 3mm;color:#514c44}.receipt-amount-panel{min-height:27mm;display:flex;justify-content:space-between;align-items:center;gap:10mm;padding:4mm 6mm;border-top:.7mm solid #b78213;border-bottom:.3mm solid #b78213;background:#fbf5e6}.receipt-amount-panel span{font-size:3.2mm;font-weight:700}.receipt-amount-panel strong{font-size:7mm;color:#674809}.receipt-payment-details{margin-top:4mm;padding:3mm;border:.25mm solid #bdb7ac}.receipt-payment-details dl{display:grid;grid-template-columns:1fr 1fr;gap:3mm 6mm;margin:0}.receipt-payment-details dl>div{display:grid;gap:1mm}.receipt-payment-details dt{color:#66625a;font-size:2.35mm}.receipt-payment-details dd{font-weight:700;overflow-wrap:anywhere}.receipt-confirmation{padding:3mm;border-top:.55mm solid #b78213;background:#fbf7ee}.linked-source{margin:0;padding:10px 12px;border-left:4px solid #d49a1e;background:#fff8e6;line-height:1.5}.void-toggle{display:flex!important;align-items:center;align-self:end;grid-template-columns:auto 1fr;min-height:39px}.confirmation-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:#17130fa8}.confirmation-dialog{width:min(440px,100%);padding:24px;border:2px solid #a96b17;border-radius:7px;background:#fffdf9;box-shadow:0 15px 50px #0004}.confirmation-dialog h2{margin-bottom:8px}.confirmation-dialog>strong{display:block;margin:16px 0;color:#8d2919;font-size:1.8rem}.pdf-export-options{display:grid;gap:8px;margin:18px 0 12px;padding:0;border:0}.pdf-export-options legend{margin-bottom:8px;color:#59544c;font-size:.84rem;font-weight:700}.pdf-export-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d9d3c8;border-radius:6px;background:#fff;cursor:pointer}.pdf-export-option.selected{border-color:#b78213;background:#fff8e6;box-shadow:inset 3px 0 #d49a1e}.pdf-export-option.disabled{color:#8a857d;background:#f2efe9;cursor:not-allowed}.pdf-export-option input{margin:0;accent-color:#b78213}.pdf-export-hint,.pdf-export-warning{margin:0;font-size:.86rem}.pdf-export-hint{color:#59544c}.pdf-export-warning{color:#8a2c1d}.relationship-list{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}.relationship-groups{display:grid;gap:10px}.relationship-groups>p{margin:0;color:#59544c}.relationship-load-error{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #c96954;border-radius:5px;color:#8a2c1d;background:#fff6f2}.relationship-load-error p{margin:0}.relationship-load-error button{flex:0 0 auto}.relationship-group{padding:10px 12px;border:1px solid #e1dbd0;border-radius:6px;background:#fff}.relationship-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.relationship-group h4{margin:0;font-size:.92rem}.relationship-group>header>span{color:#716b62;font-size:.78rem}.relationship-empty{margin:8px 0 0;color:#8a857d;font-size:.82rem}.relationship-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #eee9df}.relationship-document-link{justify-self:start;min-width:0;padding:0;border:0;color:#76520a;background:transparent;font:inherit;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.relationship-document-link:hover{color:#9b680d}.relationship-document-link:focus-visible{outline:2px solid #b78213;outline-offset:3px}.relationship-current-number{min-width:0;font-weight:700;overflow-wrap:anywhere}.relationship-list strong{font-size:.9rem}.relationship-list small{color:#716b62}.relationship-audit-state{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.relationship-audit-state span{padding:2px 5px;border-radius:3px;background:#f3eee4;white-space:nowrap}.detail-pricing-breakdown{grid-template-columns:1fr auto;margin:-4px 0 14px;padding:10px 12px;border:1px solid #e0d3b5;border-radius:5px;background:#fff8e6}.detail-pricing-breakdown dd{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:1050px){.quote-editor-layout{grid-template-columns:1fr}.quote-editor-preview{position:static}}@media(min-width:1051px)and (max-width:1350px){.line-editor-row-heading{align-items:stretch}.line-editor-row-heading .line-row-actions{flex:1 0 100%;justify-content:flex-start;margin-left:0}.line-values{grid-template-columns:repeat(3,minmax(0,1fr))}.line-values output{grid-column:2 / -1;min-width:0}.discount-controls{grid-template-columns:1fr}}@media(max-width:700px){.quote-editor-toolbar{align-items:stretch;flex-direction:column;padding:10px 14px}.quote-editor-toolbar>div:last-child{justify-content:stretch}.quote-editor-toolbar button{flex:1}.quote-editor-layout{padding:12px}.editor-field-grid,.line-values,.discount-controls{grid-template-columns:1fr}.wide-field{grid-column:auto}.line-editor-row-heading{align-items:stretch;flex-direction:column}.line-editor-row-heading .line-row-actions{margin-left:0}.payment-stage-toolbar{align-items:stretch;flex-direction:column}.payment-stage-table-wrap{overflow:visible;border:0;background:transparent}.payment-stage-table{display:block;min-width:0}.payment-stage-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.payment-stage-table tbody,.payment-stage-table tbody tr,.payment-stage-table tbody td{display:block;width:100%}.payment-stage-table tbody tr{margin-bottom:10px;padding:10px;border:1px solid #bdb7ac;background:#fff}.payment-stage-table tbody td{display:grid;grid-template-columns:minmax(110px,.4fr) minmax(0,1fr);align-items:center;gap:8px;padding:6px 0;border:0}.payment-stage-table tbody td:before{content:attr(data-label);color:#716b62;font-size:.75rem;font-weight:600}.payment-stage-table tfoot{display:table;width:100%;border:1px solid #bdb7ac}.payment-stage-actions{justify-content:flex-start}.confirmation-dialog{padding:18px}.pdf-export-option{padding:10px}}.funds-manager{display:grid;gap:18px}.funds-disclaimer{margin:0;padding:10px 12px;border-left:4px solid #b78213;color:#604d25;background:#fff8e6}.funds-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #d9d3c8;border-radius:6px;background:#fff}.funds-metrics>button{min-width:0;padding:14px;border:0;border-right:1px solid #eee9df;border-radius:0;background:#fff;text-align:left}.funds-metrics>button:hover{position:relative;z-index:1;background:#fffaf0;box-shadow:inset 0 -3px #d49a1e}.funds-metrics>button:last-child{border-right:0}.funds-metrics span,.funds-metrics strong{display:block}.funds-metrics span{color:#716b62;font-size:.78rem}.funds-metrics strong{margin-top:5px;font-variant-numeric:tabular-nums}.funds-metrics small{display:block;margin-top:7px;color:#8a681b;font-size:.68rem}.funds-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.fund-card{min-width:0;padding:16px;border:1px solid #d9d3c8;border-radius:6px;background:#fff}.fund-card h2{margin-bottom:5px;font-size:1.15rem}.fund-card h3{margin:18px 0 8px;font-size:1rem}.fund-card>label{display:grid;gap:5px;margin:12px 0;color:#59544c;font-size:.83rem}.fund-card>label>input,.fund-card>label>select{width:100%}.fund-card>small{display:block;margin-top:9px;color:#716b62;line-height:1.45}.fund-account-list{display:grid;gap:7px}.fund-account-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eee9df}.fund-account-list span,.fund-account-list small{display:block}.fund-account-list small,.fund-preview-table small,.fund-transaction-table small{margin-top:3px;color:#716b62;font-size:.75rem}.fund-account-management{margin-top:18px}.fund-account-management-actions{display:flex;align-items:center;gap:12px;text-align:right}.fund-account-management-actions .danger-link{border-color:#d7a69a;color:#8b2d1b;background:#fff7f4}.fund-account-trash{margin-top:14px;border-top:1px solid #e8e0d4;padding-top:12px}.fund-account-trash summary{cursor:pointer;color:#6c6255;font-weight:800}.fund-import-archive{margin-top:18px}.fund-import-archive>details>summary{cursor:pointer;color:#3d372f;font-weight:800}.fund-import-archive>details>p{color:#716b62;font-size:.8rem}.fund-import-records{display:grid;gap:8px}.fund-import-records article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid #e2ddd4;border-radius:6px;background:#fcfbf8}.fund-import-records article>div{min-width:0}.fund-import-records article>div:first-child strong{display:block;overflow-wrap:anywhere}.fund-import-records article small{display:block;margin-top:3px;color:#716b62;font-size:.72rem}.fund-import-records article>a,.fund-import-batch article a,.fund-raw-summary a{color:#765000;font-weight:800;text-underline-offset:2px}.fund-document-unavailable{color:#8a8177;font-size:.75rem}.fund-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.fund-form-grid label{display:grid;min-width:0;gap:4px;color:#59544c;font-size:.8rem}.fund-form-grid input,.fund-form-grid select,.fund-form-grid textarea{width:100%;min-width:0}.fund-preview{border-top:4px solid #d49a1e}.fund-preview-table{width:100%;min-width:1260px;border-collapse:collapse}.fund-transaction-table{width:100%;min-width:0;border-collapse:collapse}.fund-preview-table td,.fund-transaction-table td{vertical-align:top;white-space:normal}.fund-preview-table input{width:150px}.fund-row-large{background:#fff9e8}.fund-row-exception{background:#fff1ed}.fund-warning{padding:8px 10px;color:#8a4f05;background:#fff8e4}.fund-status{display:inline-block;padding:.2rem .5rem;border:1px solid #c8b47d;border-radius:999px;white-space:nowrap;font-size:.75rem;font-weight:700}.fund-status-reconciled{color:#315d2f;border-color:#86a67f;background:#f2faf0}.fund-status-exception{color:#8a2c1d;border-color:#c96954;background:#fff6f2}.fund-status-duplicate{color:#625b53;border-color:#b4aaa0;background:#f2efeb}.fund-review-alert{padding:.35rem .6rem;color:#8a4f05;border:1px solid #c58a25;border-radius:4px;background:#fff8e4;font-weight:700}.fund-subnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:6px;border:1px solid #d9d1c3;border-radius:9px;background:#ebe6dc}.fund-subnav button{display:grid;gap:3px;padding:12px 14px;text-align:left;border-color:transparent;background:transparent}.fund-subnav button:hover{border-color:#c7a258;background:#ffffffa3}.fund-subnav button.is-active{border-color:#b78213;background:#fff;box-shadow:inset 0 3px #d49a1e,0 2px 7px #231d1212}.fund-subnav strong{font-size:.94rem}.fund-subnav span{color:#716b62;font-size:.72rem}.fund-bank-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.fund-bank-card{display:grid;gap:5px;min-width:0;padding:16px;text-align:left;border:1px solid #d7d0c3;border-radius:8px;background:#fff;box-shadow:0 2px 8px #241f160a}.fund-bank-card:hover{border-color:#b68a2c;background:#fffcf5}.fund-bank-card.is-active{border-color:#b78213;box-shadow:inset 0 3px #d49a1e;background:#fffaf0}.fund-bank-card span,.fund-bank-card strong,.fund-bank-card small{display:block;min-width:0}.fund-bank-card span{color:#5d574e;font-weight:700}.fund-bank-card strong{color:#201d19;font-size:1.35rem;font-variant-numeric:tabular-nums}.fund-bank-card small{overflow:hidden;color:#716b62;text-overflow:ellipsis;white-space:nowrap}.fund-account-strip{display:grid;gap:9px;padding:12px 14px;border:1px solid #ddd6ca;border-radius:7px;background:#fff}.fund-account-strip>div:first-child{display:flex;align-items:baseline;gap:10px}.fund-account-strip>div:first-child span{color:#716b62;font-size:.76rem}.fund-account-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.fund-account-chips button{flex:none;display:grid;gap:2px;min-width:145px;padding:8px 10px;border-color:#d8d1c5;background:#faf8f3;text-align:left}.fund-account-chips button.is-active{border-color:#b78213;background:#fff4d7;box-shadow:inset 3px 0 #d49a1e}.fund-account-chips button>span{font-weight:800}.fund-account-chips button>small{color:#716b62;font-size:.68rem}.fund-clarity-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.funds-metrics .needs-attention{background:#fff7e2}.funds-metrics .needs-attention strong{color:#8a5600}.fund-report-section{padding:18px}.fund-report-controls{display:flex;align-items:end;flex-wrap:wrap;justify-content:flex-end;gap:8px}.fund-report-controls label{display:grid;gap:3px;color:#716b62;font-size:.68rem}.fund-report-controls select,.fund-report-controls button{min-height:36px}.fund-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:14px}.fund-chart{min-width:0;padding:15px;border:1px solid #e2ddd4;border-radius:6px;background:#fcfbf8}.fund-chart>header{display:block;min-height:0;padding:0;border:0;background:transparent}.fund-chart>header h3{margin:0;color:#24231f;font-size:1rem}.fund-chart>header p{max-width:54ch;margin:4px 0 14px;color:#716b62;font-size:.78rem;line-height:1.45}.fund-chart-bars{display:grid;gap:12px}.fund-chart-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}.fund-chart-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fund-chart-label strong{font-size:.84rem;font-variant-numeric:tabular-nums}.fund-chart-track{height:11px;overflow:hidden;border:1px solid #dfd9cf;border-radius:2px;background:#f0ede7}.fund-chart-fill{display:block;height:100%;min-width:0}.fund-chart-fill-gold{background:#d49a1e}.fund-chart-fill-ink{background:#3f464c}.fund-donut-layout{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:18px}.fund-donut{display:grid;place-items:center;width:172px;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 1px #0000000d}.fund-donut>div{display:grid;place-items:center;width:61%;aspect-ratio:1;padding:8px;border-radius:50%;background:#fff;box-shadow:0 2px 9px #1f1b141f;text-align:center}.fund-donut span{color:#716b62;font-size:.67rem}.fund-donut strong{max-width:100%;overflow:hidden;font-size:.83rem;font-variant-numeric:tabular-nums;text-overflow:ellipsis}.fund-donut-legend{display:grid;gap:9px}.fund-donut-legend>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;padding-bottom:7px;border-bottom:1px solid #ece7de}.fund-donut-legend i{width:9px;height:9px;border-radius:50%}.fund-donut-legend span{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.fund-donut-legend strong{font-size:.72rem;font-variant-numeric:tabular-nums}.fund-chart-wide{grid-column:1 / -1}.fund-monthly-chart{display:grid;gap:11px}.fund-month-row{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:12px}.fund-month-row>strong{color:#5d574e;font-size:.78rem;font-variant-numeric:tabular-nums}.fund-month-bars{display:grid;gap:6px}.fund-month-bar{display:grid;grid-template-columns:34px minmax(100px,1fr) 118px;align-items:center;gap:8px}.fund-month-bar>span{color:#716b62;font-size:.72rem}.fund-month-bar>b{text-align:right;font-size:.75rem;font-variant-numeric:tabular-nums}.fund-selected-files{display:grid;gap:5px;margin:8px 0 12px;padding:10px;border:1px solid #ded8cd;border-radius:5px;background:#faf8f3}.fund-selected-files strong,.fund-selected-files span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fund-selected-files span{color:#716b62;font-size:.76rem}.fund-import-batch{display:grid;gap:8px;margin:14px 0}.fund-import-batch article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid #ded8cd;border-radius:5px;background:#fcfbf8}.fund-import-batch article.is-duplicate{opacity:.72;background:#f4f1ec}.fund-import-batch article>div,.fund-import-batch article>div>strong,.fund-import-batch article>div>span{display:block;min-width:0}.fund-import-batch article>div>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fund-import-batch article>div>span,.fund-import-batch article>small{margin-top:3px;color:#716b62;font-size:.75rem}.fund-import-batch article>div>a{display:inline-block;margin-top:5px;font-size:.76rem}.fund-import-batch article>small{grid-column:1 / -1}.fund-import-count{font-weight:700;color:#765000}.fund-draft-note{margin:0 0 12px;padding:10px 12px;border-left:3px solid #d49a1e;color:#604d25;background:#fff8e6;font-size:.82rem;line-height:1.5}.fund-operation-buttons{display:flex;flex-wrap:wrap;gap:10px}.fund-operation-buttons button{padding:10px 14px;font-weight:700;background:#fff}.fund-section-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-left:4px solid #d49a1e;border-radius:6px;background:#fff}.fund-section-intro h2,.fund-section-intro p{margin:0}.fund-section-intro p{margin-top:4px;color:#716b62;font-size:.8rem}.fund-section-intro>button{flex:none;padding:10px 14px;font-weight:800}.fund-operation-panels{align-items:stretch}.fund-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));align-items:end;gap:10px;margin:14px 0;padding:12px;border:1px solid #e1dbd0;border-radius:6px;background:#f8f6f1}.fund-filter-bar label{display:grid;gap:4px;color:#625d54;font-size:.76rem}.fund-filter-bar select,.fund-filter-bar input{width:100%}.fund-filter-bar .fund-search{grid-column:span 3}.fund-filter-bar>span{padding:0 4px 10px;color:#716b62;font-size:.78rem;white-space:nowrap}.fund-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:-2px 0 12px;padding:9px 11px;border:1px solid #ded8cd;border-radius:6px;background:#fffdf8}.fund-bulk-actions label{display:flex;align-items:center;gap:7px;font-weight:700}.fund-bulk-actions input,.fund-select-column input{width:17px;height:17px;accent-color:#c28a11}.fund-bulk-actions span{margin-right:auto;color:#625d54;font-size:.82rem}.fund-bulk-actions .danger,.fund-confirm-dialog .danger{border-color:#a94730;color:#fff;background:#a94730}.fund-select-column{width:58px;text-align:center}.fund-row-selected td{background:#fff7dc}.fund-project-link{color:#355f3a!important;font-weight:700}.fund-inline-error{margin:0 0 10px;padding:9px 11px;border-left:4px solid #a94730;color:#8b2d1b;background:#fff0eb}.fund-reconcile-card>.table-wrap{overflow-x:visible}.fund-clarity-table{width:100%;min-width:0;table-layout:fixed}.fund-clarity-table th,.fund-clarity-table td{padding:10px 8px;overflow-wrap:anywhere}.fund-clarity-table th:nth-child(1){width:4.5%}.fund-clarity-table th:nth-child(2){width:10.5%}.fund-clarity-table th:nth-child(3){width:18%}.fund-clarity-table th:nth-child(4){width:12%}.fund-clarity-table th:nth-child(5){width:15%}.fund-clarity-table th:nth-child(6){width:18%}.fund-clarity-table th:nth-child(7){width:9%}.fund-clarity-table th:nth-child(8){width:13%}.fund-clarity-table select,.fund-clarity-table textarea{width:100%;min-width:0}.fund-clarity-table textarea{min-height:58px;resize:vertical;line-height:1.35}.fund-clarity-table td>strong,.fund-clarity-table td>small{display:block}.fund-row-needs-info{background:#fffaf0}.fund-needs-label{color:#8a5600!important;font-weight:700}.fund-amount-in strong{color:#765000;font-variant-numeric:tabular-nums}.fund-amount-out strong{color:#2f363d;font-variant-numeric:tabular-nums}.fund-row-actions{display:grid;gap:6px}.fund-row-actions button{width:100%;padding:7px 8px;white-space:nowrap}.fund-row-actions .danger-link{border-color:#d7a69a;color:#8b2d1b;background:#fff7f4}.fund-raw-summary{margin-top:7px;color:#716b62;font-size:.72rem}.fund-raw-summary summary{cursor:pointer;text-decoration:underline;text-underline-offset:2px}.fund-raw-summary p{margin:6px 0;padding:7px;overflow-wrap:anywhere;border-left:2px solid #d8d0c3;background:#f7f5f1}.fund-raw-summary a{display:block;margin-top:5px}.fund-detail-editor{margin-top:7px;font-size:.72rem}.fund-detail-editor summary{cursor:pointer;color:#69500d;font-weight:700;text-decoration:underline;text-underline-offset:2px}.fund-detail-editor>div{display:grid;gap:7px;margin-top:8px;padding:9px;border:1px solid #ded8cd;border-radius:4px;background:#fff}.fund-detail-editor label{display:grid;gap:3px;color:#625d54}.fund-detail-editor input,.fund-detail-editor select{width:100%;min-width:0;padding:.4rem}.fund-document-list{display:grid;gap:5px;padding-top:4px}.fund-document-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px;border:1px solid #e2ddd3;border-radius:4px;background:#f8f6f1}.fund-document-list span{display:grid;min-width:0}.fund-document-list a{overflow:hidden;color:#765000;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.fund-document-list button{flex:none;padding:4px 7px;color:#873a2b;border-color:#d2a59b;background:#fff}.fund-detail-backdrop{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:24px;background:#1c19148c}.fund-detail-dialog{display:flex;flex-direction:column;gap:12px;width:min(1180px,100%);max-height:calc(100vh - 48px);padding:18px;overflow:hidden;border:1px solid #bda86f;border-radius:10px;background:#fff;box-shadow:0 18px 55px #00000047}.fund-detail-dialog>header{display:flex;align-items:start;justify-content:space-between;gap:14px;padding:0 0 12px;border-bottom:1px solid #e8e2d8;background:transparent}.fund-detail-dialog>header h2,.fund-detail-dialog>header p{margin:0}.fund-detail-dialog>header p{margin-top:4px;color:#716b62;font-size:.78rem}.fund-detail-dialog>header>button{width:36px;height:36px;padding:0;font-size:1.3rem}.fund-detail-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.fund-detail-balances>div{display:grid;gap:2px;padding:9px;border:1px solid #e0d9cd;border-radius:5px;background:#faf8f3}.fund-detail-balances small{color:#716b62;font-size:.68rem}.fund-detail-balances strong{margin-top:3px;font-variant-numeric:tabular-nums}.fund-detail-filters{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;padding:10px;border-radius:6px;background:#f7f4ee}.fund-detail-filters label{display:grid;gap:3px;color:#625d54;font-size:.7rem}.fund-detail-filters .fund-detail-search{grid-column:span 2}.fund-detail-list{flex:1 1 auto;min-height:0;overflow-y:auto;border:1px solid #e2ddd4;border-radius:6px}.fund-detail-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid #eee9df}.fund-detail-list article:last-child{border-bottom:0}.fund-detail-list article>div{display:grid;gap:2px}.fund-detail-list time,.fund-detail-list small{color:#716b62;font-size:.69rem}.fund-detail-list article>div:last-child{justify-items:end}.fund-detail-list a{font-size:.7rem;font-weight:700}.fund-detail-document-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 8px}.fund-confirm-backdrop{position:fixed;z-index:95;inset:0;display:grid;place-items:center;padding:20px;background:#1c191494}.fund-confirm-dialog{width:min(520px,100%);padding:22px;border:1px solid #c98a7a;border-radius:10px;background:#fff;box-shadow:0 18px 55px #0000004d}.fund-confirm-dialog h2{margin:0 0 10px}.fund-confirm-dialog p{margin:0;color:#625d54;line-height:1.55}.fund-confirm-dialog>div{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:1100px){.funds-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.funds-metrics>button:nth-child(3){border-right:0}.funds-metrics>button:nth-child(-n+3){border-bottom:1px solid #eee9df}.funds-grid,.fund-chart-grid{grid-template-columns:1fr}.fund-chart-wide{grid-column:auto}.fund-filter-bar{grid-template-columns:1fr 1fr}.fund-filter-bar .fund-search{grid-column:1 / -1}.fund-filter-bar>span{padding-bottom:0}}@media(max-width:900px){.fund-reconcile-card>.table-wrap{overflow:visible;border:0;background:transparent}.fund-clarity-table,.fund-clarity-table tbody{display:block;width:100%}.fund-clarity-table thead{display:none}.fund-clarity-table tr{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);gap:0 12px;width:100%;margin-bottom:12px;overflow:hidden;border:1px solid #ded8cd;border-radius:8px;background:#fff}.fund-clarity-table td{display:block;width:auto;padding:9px 10px;border-bottom:1px solid #eee9df;white-space:normal}.fund-clarity-table td:before{display:block;margin-bottom:4px;color:#81786b;font-size:.68rem;font-weight:700}.fund-clarity-table td:nth-child(1){grid-column:1;grid-row:1 / span 5;padding:12px 6px;border-right:1px solid #eee9df;text-align:center}.fund-clarity-table td:nth-child(2){grid-column:2}.fund-clarity-table td:nth-child(2):before{content:"日期／银行"}.fund-clarity-table td:nth-child(3){grid-column:2 / -1}.fund-clarity-table td:nth-child(3):before{content:"来龙去脉"}.fund-clarity-table td:nth-child(4){grid-column:3;grid-row:1}.fund-clarity-table td:nth-child(4):before{content:"金额"}.fund-clarity-table td:nth-child(5){grid-column:2 / -1}.fund-clarity-table td:nth-child(5):before{content:"用途分类／补充资料"}.fund-clarity-table td:nth-child(6){grid-column:2 / -1}.fund-clarity-table td:nth-child(6):before{content:"人工备注"}.fund-clarity-table td:nth-child(7){grid-column:2;border-bottom:0}.fund-clarity-table td:nth-child(7):before{content:"状态"}.fund-clarity-table td:nth-child(8){grid-column:3;border-bottom:0}.fund-clarity-table td:nth-child(8):before{content:"操作"}.fund-row-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.fund-row-actions button{white-space:normal}}@media(max-width:700px){.fund-subnav{grid-template-columns:1fr}.fund-section-intro{align-items:stretch;flex-direction:column}.funds-metrics{grid-template-columns:1fr 1fr}.funds-metrics>button{border-bottom:1px solid #eee9df}.funds-metrics>button:nth-child(odd){border-right:1px solid #eee9df}.funds-metrics>button:nth-child(2n){border-right:0}.funds-metrics>button:nth-last-child(-n+2){border-bottom:0}.fund-form-grid{grid-template-columns:minmax(0,1fr)}.fund-account-list>div,.funds-manager .section-heading-row{align-items:stretch;flex-direction:column}.fund-bank-cards{grid-template-columns:1fr}.fund-bank-card small{white-space:normal}.fund-account-strip>div:first-child{align-items:start;flex-direction:column;gap:3px}.fund-clarity-metrics{grid-template-columns:1fr 1fr}.fund-filter-bar{grid-template-columns:1fr}.fund-filter-bar .fund-search{grid-column:auto}.fund-operation-buttons{display:grid;grid-template-columns:1fr}.fund-report-controls{align-items:stretch;display:grid;grid-template-columns:1fr 1fr;width:100%}.fund-clarity-table tr{grid-template-columns:32px minmax(0,1fr)}.fund-clarity-table td:nth-child(n+2){grid-column:2;grid-row:auto}.fund-clarity-table td:nth-child(7){border-bottom:1px solid #eee9df}.fund-clarity-table td:nth-child(8){border-bottom:0}.fund-row-actions{grid-template-columns:1fr}.fund-report-controls button{grid-column:1/-1}.fund-donut-layout{grid-template-columns:1fr;justify-items:center}.fund-donut-legend{width:100%}.fund-detail-backdrop{padding:0}.fund-detail-dialog{width:100%;max-height:100vh;height:100vh;border-radius:0}.fund-detail-filters{grid-template-columns:1fr 1fr}.fund-detail-filters .fund-detail-search{grid-column:1/-1}.fund-month-row{grid-template-columns:1fr;gap:5px}.fund-month-bar{grid-template-columns:30px minmax(70px,1fr) 104px}.fund-import-batch article{grid-template-columns:1fr;align-items:start}.fund-import-records article{grid-template-columns:1fr;align-items:start}}.header-actions{display:flex;gap:.75rem;align-items:center}.header-actions a,.engineering-header a{color:inherit;font-weight:700}.engineering-shell{min-height:100vh;background:#f4f6f8;color:#17202a}.engineering-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#17324d;color:#fff}.engineering-header strong{display:block;font-size:1.2rem}.engineering-header span{display:block;opacity:.75;font-size:.85rem}.engineering-shell main{max-width:1200px;margin:auto;padding:2rem}.engineering-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.engineering-toolbar h1{margin:0}.engineering-toolbar p{color:#607080}.engineering-form{background:#fff;border:1px solid #dbe1e6;border-radius:10px;padding:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.engineering-form label{display:grid;gap:.35rem;font-weight:600}.engineering-form input,.engineering-form select{padding:.65rem;border:1px solid #aeb9c3;border-radius:5px}.engineering-form div{grid-column:1/-1;display:flex;gap:.5rem}.engineering-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:1rem}.engineering-card{background:#fff;border:1px solid #dbe1e6;border-radius:10px;padding:1.2rem;box-shadow:0 3px 12px #17324d0d}.engineering-card h2{margin:.2rem 0}.engineering-status{display:inline-block;padding:.2rem .5rem;border-radius:999px;background:#e8f0f7}.engineering-card dl{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.engineering-card dl div{border-top:1px solid #edf0f2;padding-top:.6rem}.engineering-card dt{color:#65717d;font-size:.8rem}.engineering-card dd{margin:.2rem 0 0;font-weight:700}.engineering-card .negative{color:#b42318}.engineering-empty{color:#65717d}.engineering-card{cursor:pointer}.engineering-card:hover{border-color:#507ba3}.engineering-card>button{margin-top:.75rem}.engineering-back{margin-bottom:1rem}.engineering-project-title{display:flex;justify-content:space-between;align-items:center}.engineering-project-title h1{margin:.2rem 0 1rem}.engineering-tabs{display:flex;gap:.4rem;overflow:auto;border-bottom:1px solid #ccd5dd;margin-bottom:1rem}.engineering-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:.75rem 1rem;white-space:nowrap}.engineering-tabs button[aria-current=true]{border-color:#17324d;font-weight:700}.engineering-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.engineering-metrics article{background:#fff;border:1px solid #dbe1e6;border-radius:8px;padding:1rem}.engineering-metrics span,.engineering-metrics strong{display:block}.engineering-metrics span{color:#65717d}.engineering-metrics strong{font-size:1.25rem;margin-top:.4rem}.engineering-metrics .negative,.engineering-table .negative{color:#b42318}.engineering-disclaimer{padding:1rem;background:#fff8e8;border-left:4px solid #df9c20}.engineering-panel{background:#fff;border:1px solid #dbe1e6;border-radius:10px;padding:1.25rem}.engineering-panel .engineering-form{box-shadow:none;background:#f8fafb}.engineering-summary{display:flex;align-items:center;gap:1rem;padding:1rem;background:#eef4f8;border-radius:7px}.engineering-summary span{margin-left:auto;font-size:1.2rem;font-weight:700}.engineering-table{display:grid;gap:.5rem}.engineering-table>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #e0e5e9;border-radius:6px;padding:.75rem}.engineering-table input{width:5rem;padding:.35rem}.engineering-form-actions{grid-column:1/-1}@media(max-width:720px){.engineering-header,.engineering-toolbar{align-items:flex-start;flex-direction:column}.engineering-shell main{padding:1rem}.engineering-form{grid-template-columns:1fr}}.workspace>.engineering-shell{min-height:0;background:transparent}.workspace>.engineering-shell>.engineering-header{display:none}.workspace>.engineering-shell>main{max-width:none;margin:0;padding:0}.engineering-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.engineering-overview-card{min-width:0}.engineering-document-metrics{margin-bottom:16px}.engineering-document-table{width:100%;border-collapse:collapse}.engineering-document-table th,.engineering-document-table td{padding:9px;border-bottom:1px solid #ddd5c8;text-align:left;vertical-align:top}.engineering-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.engineering-calendar-weekday{text-align:center;font-weight:700;color:#665d53}.engineering-calendar-day{min-height:105px;padding:8px;border:1px solid #ddd5c8;border-radius:7px;background:#fff;text-align:left}.engineering-calendar-day.is-empty{opacity:.45}.engineering-calendar-date{display:block;font-weight:800}.engineering-calendar-costs{display:block;margin-top:6px;color:#8b2e1b}.engineering-site-workspace{display:grid;gap:16px}.engineering-site-workspace>.engineering-panel{min-width:0;box-sizing:border-box}.engineering-site-workspace .engineering-form>label{min-width:0}.engineering-site-workspace .engineering-form input,.engineering-site-workspace .engineering-form select,.engineering-site-workspace .engineering-form textarea{min-width:0;max-width:100%;box-sizing:border-box}.engineering-site-workspace .engineering-site-photo-form input[type=file]{width:100%}.engineering-count-badge{align-self:flex-start;padding:6px 10px;border-radius:999px;background:#eef4f8;color:#17324d;font-weight:800;white-space:nowrap}.engineering-form textarea{width:100%;box-sizing:border-box;padding:.65rem;border:1px solid #aeb9c3;border-radius:5px;resize:vertical;font:inherit}.engineering-site-photo-form small{color:#65717d;font-weight:400}.engineering-site-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:4px 0 16px;padding:12px;border-radius:8px;background:#f8fafb}.engineering-site-filters label{display:grid;gap:4px;min-width:160px;font-weight:700}.engineering-site-filters input,.engineering-site-filters select{padding:8px;border:1px solid #c9d2da;border-radius:5px;background:#fff}.engineering-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.engineering-photo-card{min-width:0;margin:0;overflow:hidden;border:1px solid #dbe1e6;border-radius:10px;background:#fff;box-shadow:0 3px 12px #17324d0d}.engineering-photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef1f3}.engineering-photo-card figcaption{display:grid;gap:5px;padding:10px}.engineering-photo-card figcaption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engineering-photo-card figcaption span{color:#65717d;font-size:.86rem}.engineering-photo-card figcaption button{justify-self:start;margin-top:3px}.engineering-completion-list{display:grid;gap:10px}.engineering-completion-card{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid #dbe1e6;border-left:5px solid #d5a021;border-radius:8px;background:#fff}.engineering-completion-card.is-completed,.engineering-completion-card.is-accepted{border-left-color:#4d8f58;background:#f7fbf7}.engineering-completion-card>div:first-child{display:grid;align-content:start;gap:6px;min-width:0}.engineering-completion-card small{color:#65717d}.engineering-completion-card p{margin:2px 0 0;white-space:pre-wrap}.engineering-completion-actions{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto}.engineering-completion-actions label{display:grid;gap:4px;font-weight:700}.engineering-completion-actions select{padding:7px;border:1px solid #c9d2da;border-radius:5px;background:#fff}.schedule-manager{display:grid;gap:16px}.schedule-toolbar{align-items:end}.schedule-view{display:grid;gap:12px}.schedule-form{scroll-margin-top:16px;border-left:4px solid #d49a1e;box-shadow:0 10px 26px #4d3b150d}.schedule-form .wide-field textarea{width:100%}.schedule-day-list{display:grid;gap:10px}.schedule-assignment-list{display:grid;gap:6px}.schedule-shift-card{display:grid;gap:10px}.schedule-shift-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:#665d53}.schedule-assignment{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px;background:#f8f5ef;border-radius:6px}.schedule-employee-picker{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.schedule-employee-picker label{display:flex;align-items:center;gap:6px}.schedule-week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px;overflow:auto}.schedule-week-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #ddd5c8;border-left:4px solid #d49a1e;border-radius:7px;background:#fffdf9}.schedule-week-heading h2,.schedule-week-heading p{margin:0}.schedule-week-heading p{margin-top:3px;color:#716b62;font-size:.76rem}.schedule-week-heading button{flex:none}.schedule-week-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.schedule-week-day{min-height:160px;display:flex;flex-direction:column;gap:8px;padding:9px;border:1px solid #ddd5c8;border-radius:7px;background:#fff}.schedule-week-day>h3{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin:0 0 3px;font-size:.9rem}.schedule-week-day>h3 small{color:#837a6d;font-size:.68rem;font-weight:700;white-space:nowrap}.schedule-week-day>.empty-inline{margin:0;padding:18px 5px;border:1px dashed #ddd5c8;color:#918779;text-align:center}.schedule-week-shift{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;padding:9px;border:1px solid #ded7ca;border-radius:7px;background:#fffdf9;box-shadow:0 2px 8px #45361c0a}.schedule-week-shift.is-drag-over{border-color:#c58b12;box-shadow:0 0 0 2px #f0cc6a;background:#fff8df}.schedule-week-shift>*{min-width:0}.schedule-week-shift>header{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:5px;align-items:start;padding:0;border:0;background:transparent}.schedule-week-shift h4{min-width:0;margin:0;font-size:.86rem;line-height:1.3;overflow-wrap:break-word}.schedule-week-project-link{width:100%;min-width:0;margin:0;padding:0;border:0;color:#252018;background:transparent;font-size:.86rem;font-weight:850;line-height:1.3;text-align:left;overflow-wrap:break-word}.schedule-week-project-link:hover{color:#8a5a00;text-decoration:underline}.schedule-week-shift>header .status-badge{flex:none;padding:2px 5px;font-size:.62rem}.schedule-week-address{display:-webkit-box;margin:0;overflow:hidden;color:#837a6d;font-size:.68rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.schedule-week-task{display:grid;gap:2px;margin:0;padding:6px 0;border-top:1px solid #eee8de;border-bottom:1px solid #eee8de}.schedule-week-task small{color:#837a6d;font-size:.62rem}.schedule-week-task strong{font-size:.75rem;line-height:1.35;overflow-wrap:anywhere}.schedule-week-shift .schedule-assignment-list{grid-template-columns:minmax(0,1fr);min-width:0;width:100%}.schedule-week-assignment{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:4px;min-width:0;width:100%;padding:5px 6px;border-radius:5px;background:#f7f3eb;box-sizing:border-box}.schedule-week-assignment.is-confirmed{background:#f2f8ef;box-shadow:inset 3px 0 #6a9a5c}.schedule-week-assignment strong{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-week-assignment .status-badge{flex:none;padding:2px 4px;font-size:.58rem}.schedule-week-assignment>button{flex:none;padding:4px 6px;font-size:.64rem;white-space:nowrap}.schedule-week-assignment .schedule-week-worker-sticker{grid-column:1/-1;width:100%;min-width:0;padding:3px 4px 4px;overflow:hidden;border:0;border-bottom:1px solid #e7dfd1;color:#302617;background:transparent;font-weight:800;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:grab}.schedule-week-assignment .schedule-week-worker-sticker:active{cursor:grabbing}.schedule-week-assignment .schedule-week-remove{width:24px;padding:2px;border-color:#dfc9c1;color:#8a3829;background:#fff;font-size:.9rem;line-height:1}.schedule-week-assignment>select{min-width:58px;padding:3px 2px;border:1px solid #c9b98b;border-radius:4px;color:#4c3b16;background:#fff9e7;font-size:.64rem;font-weight:800}.schedule-week-attendance-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding-top:6px;border-top:1px solid #e4dccd}.schedule-week-attendance-details label{display:grid;gap:2px;color:#716b62;font-size:.58rem}.schedule-week-attendance-details input,.schedule-week-attendance-details select{min-width:0;width:100%;padding:4px;font-size:.64rem}.schedule-week-attendance-details .schedule-week-project-select{grid-column:1/-1}.schedule-month-calendar{min-width:720px}.schedule-month-scroll{min-width:0;overflow-x:auto;padding-bottom:6px;scrollbar-color:#b9a77f #eee9df}.schedule-month-day{min-height:122px;display:flex;flex-direction:column;gap:7px}.schedule-month-day.has-schedule{border-color:#d2ad3f;background:#fffdf3;box-shadow:inset 0 3px #e0a915}.schedule-month-headcount,.schedule-month-sites,.schedule-month-wage{display:flex;justify-content:space-between;align-items:baseline;gap:5px}.schedule-month-headcount small,.schedule-month-sites small,.schedule-month-wage small{color:#716b62;font-size:.68rem;font-weight:700}.schedule-month-headcount strong{color:#9a5800;font-size:1.15rem;font-weight:900;font-variant-numeric:tabular-nums}.schedule-month-sites strong{color:#72520a;font-size:.82rem;font-weight:900;font-variant-numeric:tabular-nums}.schedule-month-wage{margin-top:auto;padding-top:6px;border-top:1px solid #eee1b8}.schedule-month-wage strong{color:#4a3b1f;font-size:.78rem;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-month-day:not(.has-schedule) .schedule-month-headcount strong,.schedule-month-day:not(.has-schedule) .schedule-month-sites strong,.schedule-month-day:not(.has-schedule) .schedule-month-wage strong{color:#9a9388;font-weight:700}.schedule-conflict{color:#b42318;font-weight:700}.schedule-attendance-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;align-items:end}.schedule-shift-actions{display:flex;flex-wrap:wrap;gap:8px}.schedule-board-view{gap:10px}.schedule-board-heading{position:relative;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;border:1px solid #d9d3c8;border-radius:7px;background:#fffdf9}.schedule-board-heading h2{margin:2px 0 0;font-size:1.16rem}.schedule-site-visibility{position:relative;flex:none}.schedule-site-visibility summary{min-width:132px;padding:8px 10px;border:1px solid #b9a77f;border-radius:6px;color:#4f432b;background:#fff9e7;font-size:.8rem;font-weight:800;text-align:center;cursor:pointer;list-style:none}.schedule-site-visibility summary::-webkit-details-marker{display:none}.schedule-site-visibility summary:after{content:" ▾"}.schedule-site-visibility[open] summary:after{content:" ▴"}.schedule-site-visibility-panel{position:absolute;z-index:8;top:calc(100% + 7px);right:0;width:min(350px,calc(100vw - 36px));display:grid;gap:7px;padding:12px;border:1px solid #cfc5b3;border-radius:7px;background:#fffdf9;box-shadow:0 16px 42px #30261635}.schedule-site-visibility-panel>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.schedule-site-visibility-panel>div button{padding:5px 8px;font-size:.72rem}.schedule-site-visibility-panel p{margin:0 0 2px;color:#716b62;font-size:.72rem}.schedule-site-visibility-panel label{display:flex;align-items:center;gap:7px;min-width:0;padding:5px 3px;font-size:.8rem}.schedule-site-visibility-panel label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-board-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e2dacb;border-radius:7px;overflow:hidden}.schedule-board-metrics>div{min-width:0;padding:12px 10px;border-left:1px solid #e2dacb;background:#faf8f3;text-align:center}.schedule-board-metrics>div:first-child{border-left:0}.schedule-board-metrics span,.schedule-board-metrics strong{display:block}.schedule-board-metrics span{color:#716b62;font-size:.72rem}.schedule-board-metrics strong{margin-top:4px;font-size:1.35rem;font-variant-numeric:tabular-nums}.schedule-board-metrics .needs-attention{background:#fff4c9}.schedule-board-metrics .needs-attention strong{color:#7a5200}.schedule-board-metrics .is-complete{background:#f0f7ed}.schedule-board-alert{padding:11px 13px;border:1px solid #d8a18f;border-left:4px solid #b94d30;color:#7f2c1b;background:#fff5f1}.schedule-drag-guide{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border:1px solid #d8d0c2;border-left:4px solid #8a7b63;border-radius:6px;color:#4f493f;background:#fff}.schedule-drag-guide.is-active{border-color:#d1b14c;border-left-color:#c3880a;background:#fff8dc}.schedule-drag-guide>div{display:grid;gap:2px}.schedule-drag-guide span{color:#716b62;font-size:.78rem;line-height:1.4}.schedule-drag-guide button{flex:none;padding:6px 9px;font-size:.75rem}.schedule-task-palette{overflow:hidden;border:1px solid #d2c7b3;border-left:4px solid #c79a24;border-radius:6px;background:#fffdf8}.schedule-task-palette.is-task-selected{border-color:#c69b2d;box-shadow:0 0 0 2px #edcf6d40}.schedule-task-palette>header{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 6px;border:0;background:transparent}.schedule-task-palette>header>div:first-child{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}.schedule-task-palette>header strong{font-size:.86rem}.schedule-task-palette>header span{color:#716b62;font-size:.7rem;line-height:1.35}.schedule-task-palette-actions{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.schedule-task-palette-actions button{padding:5px 8px;font-size:.68rem}.schedule-task-chip-list{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 9px}.schedule-task-chip{padding:6px 10px;border:1px solid #c49a2f;border-radius:999px;color:#3c310f;background:#f7dc65;font-size:.74rem;font-weight:800;line-height:1.1;cursor:grab;touch-action:manipulation}.schedule-task-chip:hover{border-color:#8d6510;background:#f1cd3d}.schedule-task-chip:active{cursor:grabbing}.schedule-task-chip.is-selected{outline:3px solid #8b620b;outline-offset:1px;color:#fff;background:#8b620b}.schedule-task-empty{padding:3px 0;color:#8a8173;font-size:.74rem}.schedule-task-manager{display:grid;gap:9px;padding:10px;border-top:1px solid #ded5c7;background:#f8f5ef}.schedule-task-manager>form{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:8px}.schedule-task-manager>form label{display:grid;gap:3px;color:#625b50;font-size:.7rem}.schedule-task-manager input{min-width:0;width:100%;padding:6px 8px}.schedule-task-manager>form button{min-width:82px;padding:7px 9px}.schedule-task-editor-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px}.schedule-task-editor{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px}.schedule-task-editor button{padding:5px 7px;font-size:.68rem}.schedule-task-editor button.danger{border-color:#a94730;color:#8b2d1b;background:#fff0eb}.schedule-task-manager>p{margin:0;color:#716b62;font-size:.68rem}.schedule-board-scroll{overflow-x:auto;padding:2px 2px 10px;scrollbar-color:#b9a77f #eee9df}.schedule-site-board{display:grid;gap:6px;align-items:stretch}.schedule-site-column{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #bfb5a3;border-radius:5px;background:#fff;box-shadow:0 3px 10px #45361c0a}.schedule-site-column.is-empty{border-style:dashed}.schedule-site-column.is-drag-over{border-color:#7d5b09;box-shadow:0 0 0 4px #f0c83b99,0 12px 28px #45361c25}.schedule-site-heading{min-height:74px;display:flex;padding:0;color:#fff;background:#3a352c}.schedule-site-heading>button{width:100%;min-width:0;display:block;padding:8px 7px;border:0;border-radius:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.schedule-site-heading>button:hover,.schedule-site-heading>button:focus-visible{background:#494238;outline:2px solid #e3bd45;outline-offset:-2px}.schedule-site-heading h3{display:-webkit-box;margin:0 0 4px;overflow:hidden;font-size:.82rem;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.schedule-site-heading span{display:-webkit-box;color:#d9d4ca;overflow:hidden;font-size:.64rem;line-height:1.25;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.schedule-site-labels,.schedule-board-worker{display:grid;grid-template-columns:minmax(43px,.72fr) minmax(61px,1.28fr)}.schedule-site-labels{border-bottom:1px solid #cfc5b3;color:#5c5549;background:#f4f0e8;font-size:.7rem;font-weight:700}.schedule-site-labels span{padding:5px 4px;text-align:center}.schedule-site-labels span:first-child{border-right:1px solid #cfc5b3;background:#f2d451}.schedule-site-workers{flex:1}.schedule-board-worker{min-height:50px;border-bottom:1px solid #ded7ca}.schedule-board-worker-name{display:grid;place-items:center;padding:5px 3px;border-right:1px solid #cfc5b3;color:#2e291e;background:#f6db55}.schedule-worker-sticker{width:100%;min-width:0;border:0;border-right:1px solid #cfc5b3;border-radius:0;text-align:left;cursor:grab;touch-action:manipulation}.schedule-worker-sticker:hover{border-color:#cfc5b3;background:#f1cc32}.schedule-worker-sticker:active{cursor:grabbing}.schedule-worker-sticker.is-frozen{cursor:not-allowed;opacity:.78}.schedule-board-worker-name strong{font-size:.76rem;line-height:1.25;text-align:center;overflow-wrap:anywhere}.schedule-board-worker-name small{color:#5e511e;line-height:1.25}.schedule-attendance-status{align-self:flex-start;margin-top:auto;padding:2px 5px;border:1px solid #9e8427;border-radius:999px;font-size:.66rem;white-space:nowrap}.schedule-attendance-status.is-attended{border-color:#6b9362;color:#315d2f;background:#f0f7ed}.schedule-attendance-status.is-absent,.schedule-attendance-status.is-cancelled{border-color:#bd7565;color:#7e2d1f;background:#fff0eb}.schedule-attendance-status.is-transferred{border-color:#7e91a0;color:#405464;background:#eef4f8}.schedule-board-worker-task{position:relative;min-width:0;display:grid;align-items:center;padding:3px;background:#fff}.schedule-board-worker-task input{min-width:0;width:100%;padding:6px 5px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:.72rem;font-weight:750;line-height:1.25}.schedule-board-worker-task input::placeholder{color:#aaa195;font-weight:500}.schedule-board-worker-task input:hover:not(:disabled),.schedule-board-worker-task input:focus{border-color:#c9b36d;background:#fffdf5;outline:none}.schedule-board-worker-task input:disabled{color:#5d554b;opacity:1}.schedule-board-worker-task.is-task-ready{background:#fff9df;box-shadow:inset 0 0 0 2px #dfbd4d55}.schedule-board-worker-task.is-task-drag-over{background:#ffef9f;box-shadow:inset 0 0 0 3px #aa790b}.schedule-board-worker-task.has-error{background:#fff0eb;box-shadow:inset 0 0 0 2px #b94d30}.schedule-board-worker-task>small{position:absolute;right:5px;bottom:1px;color:#716b62;font-size:.55rem;pointer-events:none}.schedule-board-worker-task>small.error{color:#a43b25}.schedule-board-attendance{margin-top:auto}.schedule-board-attendance>span{color:#5f5a50;font-size:.7rem}.schedule-inline-action{padding:3px 7px;border-color:#b8953b;color:#664a08;background:#fff8df;font-size:.72rem}.schedule-board-attendance .schedule-attendance-form{position:fixed;z-index:10;right:24px;bottom:24px;width:min(600px,calc(100vw - 48px));padding:16px;border:2px solid #b78213;border-radius:8px;background:#fffdf9;box-shadow:0 18px 55px #0004}.schedule-site-empty{min-height:76px;display:grid;place-content:center;padding:8px;color:#8a8173;background:#faf8f3;font-size:.72rem;text-align:center}.schedule-site-empty span{font-size:.76rem}.schedule-site-meta{grid-template-columns:58px minmax(0,1fr);margin:0;padding:10px;border-top:1px solid #ded7ca;font-size:.72rem}.schedule-site-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;border-top:1px solid #ded7ca;background:#faf8f3}.schedule-site-actions button{min-width:0;padding:7px 5px;font-size:.76rem}.schedule-unassigned{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid #d7c27f;border-left:4px solid #d49a1e;border-radius:6px;background:#fffaf0}.schedule-unassigned.is-complete{border-color:#9fb597;border-left-color:#5e8c55;background:#f4faf2}.schedule-unassigned.is-drag-over{border-color:#b47a00;border-left-color:#b47a00;background:#fff1bd;box-shadow:0 0 0 3px #d49a1e33}.schedule-unassigned>div:first-child{flex:none;display:flex;align-items:center;gap:7px;font-size:.78rem}.schedule-unassigned>div:first-child span{color:#716b62}.schedule-unassigned-list{display:flex;flex-wrap:wrap;gap:7px}.schedule-unassigned-sticker{min-width:70px;padding:6px 8px;border:1px solid #d1b855;border-radius:5px;color:#332d1c;background:#f5d84f;text-align:center;cursor:grab;touch-action:manipulation}.schedule-unassigned-sticker:hover{border-color:#8e6810;background:#efca30}.schedule-unassigned-list small{margin-top:2px;color:#65571e}.schedule-site-assignment-dialog{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto}.schedule-site-assignment-dialog h2{margin-bottom:2px}.schedule-site-assignment-date,.schedule-site-assignment-note{margin:0;color:#716b62;font-size:.78rem}.schedule-site-assignment-toolbar{display:flex;align-items:center;gap:7px;margin:14px 0 8px}.schedule-site-assignment-toolbar strong{margin-right:auto}.schedule-site-assignment-toolbar button{padding:5px 8px;font-size:.72rem}.schedule-site-assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:50vh;overflow:auto;padding:3px}.schedule-site-assignment-grid label{min-width:0;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #ded7ca;border-radius:6px;background:#faf8f3;cursor:pointer}.schedule-site-assignment-grid label.is-selected{border-color:#c49a2f;background:#fff5c5;box-shadow:inset 3px 0 #d49a1e}.schedule-site-assignment-grid label>span{min-width:0;display:grid;gap:1px}.schedule-site-assignment-grid label strong,.schedule-site-assignment-grid label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-site-assignment-grid label strong{font-size:.82rem}.schedule-site-assignment-grid label small{color:#7b6d56;font-size:.65rem}.schedule-site-assignment-note{margin-top:9px}@media(max-width:980px){.schedule-board-heading{align-items:flex-start}}@media(max-width:800px){.engineering-calendar{min-width:720px}.engineering-calendar-panel{overflow:auto}.engineering-document-table{min-width:760px}.table-wrap{overflow:auto}.engineering-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.engineering-completion-card{align-items:stretch;flex-direction:column}.engineering-completion-actions{justify-content:space-between}.schedule-week-grid{grid-template-columns:repeat(7,150px)}.schedule-week-heading{align-items:stretch;flex-direction:column}.schedule-week-actions{justify-content:stretch}.schedule-week-actions button{flex:1 1 180px}.schedule-board-metrics{grid-template-columns:1fr 1fr}.schedule-board-metrics>div{border-left:0;border-top:1px solid #e2dacb}.schedule-board-metrics>div:nth-child(-n+2){border-top:0}.schedule-board-metrics>div:nth-child(2n){border-left:1px solid #e2dacb}.schedule-board-scroll{margin:0 -14px;padding:2px 14px 12px}.schedule-site-board{display:flex;min-width:0!important;overflow-x:auto;scroll-snap-type:x mandatory}.schedule-site-column{flex:0 0 min(86vw,340px);scroll-snap-align:start}.schedule-board-heading h2{font-size:1rem}.schedule-unassigned{align-items:flex-start;flex-direction:column}.schedule-drag-guide{align-items:flex-start}.schedule-task-palette>header{align-items:flex-start}.schedule-task-palette>header>div:first-child{display:grid}.schedule-task-chip-list{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.schedule-task-chip{flex:none}.schedule-task-manager>form{grid-template-columns:1fr}.schedule-task-editor-list{grid-template-columns:1fr}.schedule-site-visibility-panel{position:fixed;top:96px;right:12px;left:12px;width:auto;max-height:calc(100vh - 120px);overflow:auto}.schedule-site-assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-board-attendance .schedule-attendance-form{right:12px;bottom:12px;width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto}}@media(max-width:520px){.engineering-photo-grid{grid-template-columns:1fr}.engineering-site-filters label{min-width:100%}.engineering-completion-actions{align-items:stretch;flex-direction:column}}.tenancy-manager{display:grid;gap:18px;margin-top:18px}.tenancy-heading{margin:0}.tenancy-subnav,.cheque-subnav{display:flex;gap:8px;overflow-x:auto;padding:4px 0}.tenancy-subnav button,.cheque-subnav button{flex:0 0 auto;border:1px solid #d8cdbb;border-radius:10px;background:#fff;padding:11px 18px;font-weight:700;color:#403a30}.tenancy-subnav button.is-active,.cheque-subnav button.is-active{border-color:#cf9412;background:#fff3d3;color:#815600;box-shadow:inset 0 -3px #dca11b}.tenancy-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #ded6c8;border-radius:14px;background:#fff;overflow:hidden}.tenancy-metrics article{display:grid;gap:5px;min-height:116px;padding:18px;border-left:1px solid #eee8df}.tenancy-metrics article:first-child{border-left:0}.tenancy-metrics span{color:#746c60;font-size:.86rem}.tenancy-metrics strong{font-size:1.45rem;color:#222}.tenancy-metrics small{color:#948a7c}.tenancy-metrics .expense strong{color:#9f432f}.tenancy-metrics .income strong{color:#347052}.tenancy-metrics .attention{background:#fff0eb}.tenancy-metrics .attention strong{color:#b53c22}.tenancy-panel,.cheque-panel{border:1px solid #ded6c8;border-radius:14px;background:#fff;padding:20px;box-shadow:0 2px 8px #4937170d}.tenancy-panel h3,.cheque-panel h2{margin:0 0 5px}.tenancy-panel p,.cheque-panel p{margin:0;color:#7d7466}.tenancy-upcoming-list{display:grid;gap:8px;margin-top:16px}.tenancy-due-row{display:grid;grid-template-columns:110px minmax(200px,1fr) 170px 90px;gap:16px;align-items:center;border:1px solid #ece5da;border-left:5px solid #a7533e;border-radius:9px;padding:11px 14px;background:#fff}.tenancy-due-row.receivable{border-left-color:#4d8968}.tenancy-due-row time{font-weight:800}.tenancy-due-row div{display:grid;gap:3px}.tenancy-due-row div span{color:#8a8173;font-size:.88rem}.tenancy-due-row b{color:#8f3d2d}.tenancy-due-row.receivable b{color:#347052}.tenancy-due-row em{font-style:normal;color:#7a6a50}.tenancy-form-grid,.cheque-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0;padding:18px;border:1px solid #e8dfd0;border-radius:12px;background:#fcfaf6}.tenancy-form-grid label,.cheque-form-grid label,.calibration-basics label{display:grid;gap:6px;color:#5e5547;font-weight:700}.tenancy-form-grid input,.tenancy-form-grid select,.tenancy-form-grid textarea,.cheque-form-grid input,.cheque-form-grid select,.calibration-basics input,.calibration-row input{width:100%;min-width:0;border:1px solid #d8cdbb;border-radius:8px;background:#fff;padding:10px;color:#222;font:inherit}.tenancy-form-grid textarea{min-height:78px;resize:vertical}.tenancy-form-grid .span-2,.cheque-form-grid .span-2{grid-column:span 2}.tenancy-form-grid button{align-self:end;min-height:43px}.tenancy-file-picker small{font-weight:400;color:#887e70;word-break:break-word}.compact-form,.lease-form{grid-template-columns:repeat(4,minmax(0,1fr))}.tenancy-property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.tenancy-property-grid article{border:1px solid #e3dacd;border-radius:12px;padding:16px;background:#fff}.tenancy-property-grid header,.tenancy-property-grid footer{display:flex;justify-content:space-between;gap:10px}.tenancy-property-grid header span{color:#9a6a09;font-weight:800}.tenancy-property-grid header b{border-radius:999px;background:#eef8ee;padding:3px 9px;color:#49724e;font-size:.75rem}.tenancy-property-grid h4{margin:14px 0 8px;font-size:1.12rem}.tenancy-property-grid p{margin:4px 0;color:#777}.tenancy-property-grid footer{margin-top:16px;padding-top:12px;border-top:1px solid #eee8df;color:#665e52;font-size:.86rem}.tenancy-lease-list{display:grid;gap:16px;margin-top:18px}.tenancy-lease-list>article{border:1px solid #e2d8c9;border-left:6px solid #a7533e;border-radius:12px;padding:18px}.tenancy-lease-list>article.receivable{border-left-color:#4d8968}.tenancy-lease-list>article>header{display:flex;align-items:start;justify-content:space-between;gap:16px}.tenancy-lease-list header span{color:#8d542a;font-size:.82rem;font-weight:800}.tenancy-lease-list header h4{margin:4px 0 0;font-size:1.15rem}.tenancy-lease-list header>b{border-radius:999px;background:#f6f0e2;padding:5px 10px;font-size:.78rem}.lease-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}.lease-summary p{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f8f5ef}.lease-summary small{color:#988e80}.lease-summary strong{color:#342f28;word-break:break-word}.lease-documents{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(220px,340px) auto;align-items:center;gap:12px;padding-top:14px;border-top:1px solid #ece5da}.lease-documents>div{display:flex;flex-wrap:wrap;gap:8px}.lease-documents a{color:#8b6000;text-decoration:underline}.lease-documents label{display:grid;gap:4px;font-size:.83rem;color:#756a5d}.lease-documents input{font-size:.8rem}.tenancy-calendar-filters{display:flex;gap:8px}.tenancy-calendar-filters input,.tenancy-calendar-filters select{border:1px solid #d8cdbb;border-radius:8px;padding:9px;background:#fff}.tenancy-calendar-totals{display:flex;gap:24px;margin:15px 0;padding:12px 15px;border-radius:9px;background:#f8f4eb}.tenancy-calendar-totals b{margin-left:8px}.tenancy-calendar-totals span:first-child b{color:#9f432f}.tenancy-calendar-totals span:last-child b{color:#347052}.tenancy-table-wrap{max-width:100%;overflow:auto}.tenancy-table{width:100%;min-width:930px;border-collapse:collapse}.tenancy-table th,.tenancy-table td{padding:11px 10px;border-bottom:1px solid #ece6dc;text-align:left;vertical-align:middle}.tenancy-table th{position:sticky;top:0;background:#f4efe5;color:#5c5346;font-size:.82rem}.tenancy-table tr.is-overdue{background:#fff1ec}.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.row-actions button{padding:7px 10px;font-size:.8rem}.row-actions span{font-size:.8rem;color:#7f6c45}.empty-state{padding:24px!important;border:1px dashed #d9cdbc;border-radius:10px;text-align:center;color:#918778!important}.entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.entity-grid article{border:1px solid #e3dacd;border-radius:11px;padding:16px}.entity-grid h4{margin:0 0 7px}.entity-grid p{margin:4px 0}.entity-grid strong{display:block;margin-top:13px}.entity-grid ul{margin:7px 0;padding-left:20px}.entity-grid small{color:#897f70}.cheque-manager{display:grid;gap:18px}.cheque-main-heading{margin-bottom:0}.cheque-subnav{padding:12px;border:1px solid #ded6c8;border-radius:12px;background:#fff}.cheque-issue-grid{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr);gap:18px}.cheque-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;border:0;background:none}.checkbox-field{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid #d8cdbb;border-radius:8px;background:#fff;padding:9px;font-weight:600}.checkbox-field input{width:auto}.cheque-live-preview{min-width:0;overflow:hidden}.cheque-preview-stage{max-width:100%;overflow:auto;padding:16px;background:#eee8de;border-radius:10px}.cheque-paper{position:relative;transform-origin:left top;background:#fffdf8;border:1px solid #bdb4a5;box-shadow:0 6px 24px #3228142e;overflow:hidden}.cheque-screen-bank{position:absolute;left:8mm;top:7mm;display:grid;gap:2px;color:#c7bda9}.cheque-screen-bank strong{font-size:14pt}.cheque-screen-bank span{font-size:8pt}.cheque-screen-bank em{font-size:8pt;color:#c48d18}.cheque-field{position:absolute;display:block;line-height:1.15;white-space:nowrap;color:#111;overflow:visible}.cheque-field.payee,.cheque-field.amount{font-weight:800}.cheque-field.words{white-space:normal;font-weight:600}.cheque-field.account-payee{letter-spacing:.08em}.cheque-live-preview>small{display:block;margin-top:10px;color:#8b8173}.batch-cheques{display:grid;gap:14px}.batch-rent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.batch-rent-grid label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #dfd6c8;border-radius:9px;padding:12px;cursor:pointer}.batch-rent-grid label.is-selected{border-color:#cf9412;background:#fff7df}.batch-rent-grid label span{display:grid;gap:3px}.batch-rent-grid small{color:#887d6f}.batch-rent-grid b{color:#8f3d2d}.cheque-books-layout{display:grid;grid-template-columns:minmax(360px,.75fr) minmax(260px,.45fr);gap:18px;align-items:start}.cheque-books-layout .cheque-calibration{grid-column:1/-1}.bank-preset-notes{display:grid;gap:7px;margin-top:18px}.bank-preset-notes p{display:grid;gap:3px;border-top:1px solid #eee7dc;padding-top:8px}.bank-preset-notes span{font-size:.82rem}.cheque-book-list{display:grid;gap:8px}.cheque-book-list>button{display:grid;gap:4px;text-align:left;border:1px solid #ded5c8;border-radius:9px;background:#fff;padding:12px}.cheque-book-list>button.is-active{border-color:#d39b20;background:#fff6df}.cheque-book-list span,.cheque-book-list small{color:#7d7467}.calibration-basics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:15px 0}.calibration-fields{display:grid;gap:5px;margin-bottom:16px}.calibration-row{display:grid;grid-template-columns:160px repeat(4,minmax(80px,1fr));gap:8px;align-items:center}.calibration-row.headings{padding:7px 0;border-bottom:1px solid #e5ddd1;color:#7f7567;font-size:.8rem}.calibration-row input{padding:7px}.cheque-history-table td small{display:block;margin-top:3px;color:#8b8173}.danger-button{border-color:#ca8b7d!important;color:#9b301f!important;background:#fff5f2!important}.cheque-preview-modal{position:fixed;z-index:90;inset:0;display:grid;place-items:center;background:#16120c9e;padding:20px}.cheque-preview-dialog{display:grid;gap:16px;width:min(1100px,96vw);max-height:94vh;overflow:auto;border-radius:14px;background:#fff;padding:20px}.cheque-preview-dialog>header,.cheque-preview-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:14px}.cheque-preview-dialog header h2{margin:0}.cheque-preview-dialog header p{margin:3px 0;color:#746b5d}.cheque-preview-dialog header>button{font-size:1.7rem}.cheque-preview-dialog footer{justify-content:flex-end}.cheque-preview-dialog footer span{margin-right:auto;color:#7d7466}.cheque-type-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cheque-type-tabs button{display:grid;gap:4px;text-align:left;border:1px solid #d8cdbb;border-radius:12px;background:#fff;padding:15px 18px;color:#4c4438}.cheque-type-tabs button strong{font-size:1.05rem}.cheque-type-tabs button span{color:#827768;font-size:.88rem}.cheque-type-tabs button.is-active{border-color:#d59a19;background:#fff5dc;box-shadow:inset 4px 0 #dda218}.cheque-income-note{display:grid;place-content:center;min-height:260px;border:1px dashed #d6b665;border-radius:12px;background:#fff9e8;padding:28px;text-align:center}.cheque-income-note strong{font-size:1.12rem;color:#745200}.cheque-income-note p{max-width:520px;margin:10px auto 0;color:#6f6557}.cheque-book-list>button.is-disabled{border-style:dashed;background:#f4f1eb;opacity:.78}.cheque-history-panel{min-width:0}.cheque-history-filters{display:grid;grid-template-columns:minmax(260px,1.7fr) repeat(6,minmax(130px,1fr));gap:10px;margin:18px 0;padding:14px;border:1px solid #e4dbce;border-radius:11px;background:#faf8f4}.cheque-history-filters label{display:grid;gap:5px;color:#675d4f;font-size:.82rem;font-weight:700}.cheque-history-filters input,.cheque-history-filters select{width:100%;min-width:0;border:1px solid #d8cdbb;border-radius:8px;background:#fff;padding:9px;color:#222;font:inherit}.cheque-history-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border-left:4px solid #dca11b;background:#fff8e6}.cheque-history-toolbar small{color:#817767}.cheque-history-table{min-width:1320px}.cheque-select-column{width:58px;text-align:center!important}.cheque-select-column input{width:18px;height:18px;accent-color:#d99d17}.cheque-kind-badge{display:inline-block;border-radius:999px;padding:3px 8px;background:#eee8de;color:#564d40;font-size:.78rem;font-weight:800}.cheque-kind-badge.tenancy{background:#fff0c8;color:#785500}.cheque-kind-badge.engineering{background:#e9f2e7;color:#356330}.cheque-income-amount{color:#2d7440}.cheque-history-table td:nth-child(8){max-width:260px}.cheque-history-table td:nth-child(8) small{white-space:normal}.batch-cheques .empty-state{margin-top:14px}@media(max-width:1250px){.tenancy-metrics{grid-template-columns:repeat(3,1fr)}.tenancy-metrics article:nth-child(4){border-left:0;border-top:1px solid #eee8df}.lease-summary{grid-template-columns:repeat(3,1fr)}.cheque-issue-grid{grid-template-columns:1fr}.tenancy-form-grid,.lease-form,.tenancy-property-grid,.entity-grid,.batch-rent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lease-documents{grid-template-columns:1fr 1fr}.calibration-basics{grid-template-columns:repeat(3,1fr)}}@media(max-width:1500px){.cheque-history-filters{grid-template-columns:repeat(4,minmax(150px,1fr))}.cheque-history-filters .search-field{grid-column:span 2}}@media(max-width:760px){.tenancy-metrics{grid-template-columns:repeat(2,1fr)}.tenancy-metrics article:nth-child(odd){border-left:0}.tenancy-metrics article:nth-child(n+3){border-top:1px solid #eee8df}.tenancy-due-row{grid-template-columns:85px 1fr}.tenancy-due-row b,.tenancy-due-row em{grid-column:2}.tenancy-form-grid,.lease-form,.compact-form,.cheque-form-grid{grid-template-columns:1fr}.tenancy-form-grid .span-2,.cheque-form-grid .span-2{grid-column:auto}.tenancy-property-grid,.entity-grid,.batch-rent-grid{grid-template-columns:1fr}.lease-summary{grid-template-columns:1fr 1fr}.lease-documents,.cheque-books-layout{grid-template-columns:1fr}.calibration-row{grid-template-columns:90px repeat(4,80px)}.calibration-basics{grid-template-columns:1fr 1fr}.tenancy-calendar-filters{width:100%;flex-direction:column}.tenancy-calendar-totals{flex-direction:column;gap:6px}.cheque-preview-stage{padding:8px}.cheque-paper{transform:scale(.68);margin-bottom:-25mm}.cheque-preview-dialog footer{align-items:stretch;flex-direction:column}.cheque-preview-dialog footer span{margin:0}.cheque-preview-dialog footer button{width:100%}.cheque-type-tabs,.cheque-history-filters{grid-template-columns:1fr}.cheque-history-filters .search-field{grid-column:auto}.cheque-history-toolbar{align-items:stretch}.cheque-history-toolbar button{flex:1 1 auto}}.funds-manager,.funds-manager>*{min-width:0}.tenancy-v2{min-width:0;width:100%;--tenancy-income:#3f8b65;--tenancy-income-soft:#edf7f1;--tenancy-expense:#ad513d;--tenancy-expense-soft:#fff0ec;--tenancy-ink:#28231d;--tenancy-muted:#7f7568}.tenancy-v2>*,.tenancy-v2 .tenancy-panel,.tenancy-v2 .tenancy-table-wrap{min-width:0}.tenancy-v2 .positive{color:var(--tenancy-income)!important}.tenancy-v2 .negative{color:var(--tenancy-expense)!important}.tenancy-main-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;overflow:visible}.tenancy-main-nav button{display:grid;gap:4px;min-height:70px;text-align:left;border-radius:12px;padding:13px 18px}.tenancy-main-nav button strong{font-size:1rem}.tenancy-main-nav button span{color:#857b6c;font-size:.82rem;font-weight:500}.tenancy-main-nav button.is-active span{color:#8d6b25}.tenancy-overview-hero{display:grid;grid-template-columns:minmax(280px,1.7fr) repeat(4,minmax(110px,.65fr));overflow:hidden;border:1px solid #ddd3c3;border-radius:15px;background:#fff;box-shadow:0 4px 18px #36270f0f}.tenancy-overview-hero>button{display:grid;align-content:center;gap:5px;min-height:128px;padding:19px;border:0;border-left:1px solid #ebe4d9;border-radius:0;background:#fff;text-align:left}.tenancy-overview-hero>button:first-child{border-left:0;background:linear-gradient(135deg,#fff8e8,#fff)}.tenancy-overview-hero>button:hover{position:relative;z-index:1;background:#fffbf1;box-shadow:inset 0 0 0 2px #d4a039}.tenancy-overview-hero>button:focus-visible{position:relative;z-index:2;outline:3px solid #7d5a0b;outline-offset:-3px}.tenancy-overview-hero span{color:#796f61;font-size:.84rem}.tenancy-overview-hero>button:first-child>strong{font-size:1.85rem}.tenancy-overview-hero small{color:#9b9183}.tenancy-overview-hero em{margin-top:3px;color:#8a6412;font-size:.72rem;font-style:normal;font-weight:800}.overview-hero-stat b{font-size:1.65rem;color:var(--tenancy-ink)}.overview-hero-stat.attention{background:#fff1ed}.overview-hero-stat.attention b{color:var(--tenancy-expense)}.tenancy-dashboard-grid{display:grid;grid-template-columns:minmax(420px,.85fr) minmax(560px,1.15fr);gap:18px}.tenancy-cashflow-card,.tenancy-trend-card{min-width:0}.tenancy-cashflow-card time{color:#8a7c68;font-weight:700}.tenancy-donut-layout{display:grid;grid-template-columns:210px 1fr;gap:26px;align-items:center;margin-top:20px}.tenancy-donut{display:grid;place-items:center;width:190px;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 1px #231b1214}.tenancy-donut>div{display:grid;place-items:center;width:118px;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 3px 14px #1f180f1f}.tenancy-donut b{font-size:1.08rem}.tenancy-donut span{color:#887e70;font-size:.76rem}.tenancy-donut-legend{display:grid;gap:4px}.tenancy-donut-legend p{display:grid;grid-template-columns:12px 1fr auto;gap:4px 8px;align-items:center;border-bottom:1px solid #eee8df;padding:10px 0;color:#6f6659}.tenancy-donut-legend i{width:10px;height:10px;border-radius:50%;background:#9b9387}.tenancy-donut-legend p.receivable i{background:var(--tenancy-income)}.tenancy-donut-legend p.payable i{background:var(--tenancy-expense)}.tenancy-donut-legend strong{color:var(--tenancy-ink)}.tenancy-donut-legend p.receivable strong{color:var(--tenancy-income)}.tenancy-donut-legend p.payable strong{color:var(--tenancy-expense)}.tenancy-donut-legend small{grid-column:2/-1;color:#9b9184}.tenancy-bar-chart{display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));gap:10px;height:300px;margin-top:14px;padding:18px 6px 0;border-top:1px solid #eee7dc}.tenancy-bar-month{display:grid;grid-template-rows:1fr auto auto auto;gap:4px;min-width:0;text-align:center}.tenancy-bar-stage{display:flex;align-items:end;justify-content:center;gap:5px;min-height:175px;border-bottom:1px solid #d8d0c3;background:repeating-linear-gradient(to top,#fff 0 24%,#eee8de 25%,#fff 26%)}.tenancy-bar-stage span{display:block;width:min(25px,38%);min-height:0;border-radius:5px 5px 0 0}.tenancy-bar-stage .receivable{background:linear-gradient(#68a884,var(--tenancy-income))}.tenancy-bar-stage .payable{background:linear-gradient(#ce806e,var(--tenancy-expense))}.tenancy-bar-month>strong{font-size:.8rem}.tenancy-bar-month>small{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.tenancy-bar-month>small.receivable{color:var(--tenancy-income)}.tenancy-bar-month>small.payable{color:var(--tenancy-expense)}.tenancy-ownership-panel,.tenancy-entity-flows{display:grid;gap:18px}.tenancy-entity-flow{overflow:hidden;border:1px solid #e2d8ca;border-radius:13px;background:#fdfbf7}.tenancy-entity-flow>header{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:25px;align-items:center;padding:16px 20px;border-bottom:1px solid #e8e0d5;background:#fff}.tenancy-entity-flow>header>div:first-child{display:grid;gap:2px}.tenancy-entity-flow>header span,.tenancy-entity-flow>header small{color:#8c8274}.tenancy-entity-flow>header h4{margin:0;font-size:1.15rem}.tenancy-entity-flow>header>div:not(:first-child){display:grid;place-items:center;min-width:90px}.tenancy-entity-flow>header>div:not(:first-child) b{font-size:1.3rem}.tenancy-flow-columns{display:grid;grid-template-columns:minmax(260px,1fr) 190px minmax(260px,1fr);gap:14px;align-items:stretch;padding:16px}.tenancy-flow-side{display:grid;align-content:start;gap:8px}.tenancy-flow-side h5{display:flex;justify-content:space-between;margin:0 0 2px;padding:0 3px;color:#5e5548}.tenancy-flow-side h5 span{display:grid;place-items:center;min-width:25px;height:25px;border-radius:99px;background:#ede6da}.tenancy-flow-side>button{display:grid;grid-template-columns:1fr auto 1fr;gap:5px 9px;align-items:center;border:1px solid #dfd7ca;border-radius:9px;background:#fff;padding:11px;text-align:left}.tenancy-flow-side>button:hover{border-color:#c99a35;box-shadow:0 3px 10px #4a341214}.tenancy-flow-side>button i{font-style:normal;color:#b49e75}.tenancy-flow-side>button small{grid-column:1/-1;color:#8e8477}.tenancy-flow-side.payable>button{border-left:4px solid var(--tenancy-expense)}.tenancy-flow-side.receivable>button{border-left:4px solid var(--tenancy-income)}.tenancy-flow-side.payable .flow-counterparty{color:#884231}.tenancy-flow-side.receivable .flow-counterparty{color:#317554}.flow-empty{padding:20px!important;border:1px dashed #ded5c7;border-radius:9px;text-align:center}.tenancy-flow-company{display:grid;align-content:center;justify-items:center;gap:4px;border:1px solid #d9c58d;border-radius:12px;background:linear-gradient(160deg,#fff7da,#fff);padding:15px;text-align:center}.tenancy-flow-company>span,.tenancy-flow-company>small{color:#8b7b5f}.tenancy-flow-company>strong{font-size:1.05rem}.tenancy-flow-company>b{font-size:.78rem}.tenancy-flow-company>b.payable{color:var(--tenancy-expense)}.tenancy-flow-company>b.receivable{color:var(--tenancy-income)}.tenancy-upcoming-panel{display:grid;gap:4px}.tenancy-due-row>button{display:grid;gap:3px;border:0;background:transparent;padding:0;text-align:left}.tenancy-due-row>button:hover strong{text-decoration:underline}.tenancy-due-row>button span{color:#8a8173;font-size:.88rem}.tenancy-table .table-link{border:0;background:none;padding:0;color:#7d5a0b;font-weight:700;text-align:left;text-decoration:underline}.direction-pill{display:inline-flex;border-radius:99px;padding:4px 8px;font-size:.75rem;font-weight:700}.direction-pill.payable{background:var(--tenancy-expense-soft);color:#8d402e}.direction-pill.receivable{background:var(--tenancy-income-soft);color:#2e704f}.tenancy-inline-editor{border-color:#d8bd7c;background:#fffaf0;box-shadow:inset 0 0 0 1px #c9962a14}.tenancy-editor-actions{display:flex;justify-content:flex-end;gap:8px;grid-column:1/-1}.tenancy-editor-actions button{min-width:130px}.tenancy-properties-page{display:grid;gap:18px}.tenancy-properties-heading{margin-bottom:0}.tenancy-property-tools{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #e3dbcf;border-radius:11px;background:#f9f6f0}.tenancy-property-tools label{display:grid;gap:5px;width:min(520px,100%);color:#6a6052;font-size:.83rem;font-weight:700}.tenancy-property-tools input{width:100%;border:1px solid #d6cbbb;border-radius:8px;background:#fff;padding:10px;font:inherit}.tenancy-property-tools>div{display:flex;gap:8px}.tenancy-property-tools>div span{border-radius:99px;background:#fff;padding:7px 11px;color:#706658;font-size:.8rem;font-weight:700}.tenancy-property-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.tenancy-property-grid-v2 article{padding:0;overflow:hidden}.tenancy-property-card-v2>button{display:block;width:100%;height:100%;border:0;background:#fff;padding:17px;text-align:left}.tenancy-property-card-v2>button:hover{background:#fffdf8}.tenancy-property-card-v2 h4{margin:13px 0 7px;font-size:1.12rem}.tenancy-property-card-v2 p{overflow:hidden;margin:4px 0;color:#7b7265;text-overflow:ellipsis;white-space:nowrap}.property-card-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.property-card-facts span{display:grid;gap:3px;border-radius:8px;background:#f7f4ef;padding:8px}.property-card-facts small{color:#948b7e}.property-card-facts strong{font-size:.78rem}.property-card-cash{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.property-card-cash span{display:grid;gap:3px;border-radius:8px;padding:9px}.property-card-cash .payable{background:var(--tenancy-expense-soft)}.property-card-cash .receivable{background:var(--tenancy-income-soft)}.property-card-cash small{color:#877d6e}.property-card-cash .payable strong{color:var(--tenancy-expense)}.property-card-cash .receivable strong{color:var(--tenancy-income)}.tenancy-property-card-v2 footer{align-items:center;margin-top:12px}.tenancy-property-card-v2 footer span:last-child{color:#8c681a;font-weight:700}.tenancy-property-backdrop{position:fixed;z-index:88;inset:0;display:grid;place-items:center;padding:24px;background:#1d181194}.tenancy-property-detail{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1320px,96vw);height:min(900px,94vh);min-width:0;overflow:hidden;border-radius:16px;background:#f7f3ec;box-shadow:0 20px 70px #0f0a0357}.property-detail-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0;border-bottom:1px solid #ded5c7;background:#fff;padding:18px 22px}.property-detail-header>div:first-child{display:grid;gap:3px;min-width:0}.property-detail-header span{color:#a16e09;font-weight:800}.property-detail-header h3{margin:0;font-size:1.45rem;overflow-wrap:anywhere}.property-detail-header p{margin:0;color:#81776a;overflow-wrap:anywhere}.property-detail-actions{display:flex!important;flex:0 0 auto;align-items:center!important;justify-content:flex-end!important;gap:9px!important}.property-detail-actions>button:last-child{display:grid;place-items:center;width:43px;height:43px;border:1px solid #d8cebf;border-radius:9px;background:#fff;font-size:1.7rem}.property-detail-scroll{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;min-width:0;gap:18px;overflow-x:hidden;overflow-y:auto;padding:20px}.property-detail-scroll>*{min-width:0}.property-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #ded5c7;border-radius:12px;background:#fff}.property-detail-summary article{display:grid;gap:5px;min-height:104px;padding:16px;border-left:1px solid #ece5dc}.property-detail-summary article:first-child{border-left:0}.property-detail-summary span{color:#847a6d;font-size:.83rem}.property-detail-summary strong{font-size:1.2rem}.property-detail-summary small{color:#9a9185}.property-detail-summary .payable strong{color:var(--tenancy-expense)}.property-detail-summary .receivable strong{color:var(--tenancy-income)}.property-basic-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #e0d8cc;border-radius:11px;background:#e0d8cc}.property-basic-panel>div{display:grid;gap:4px;min-height:72px;background:#fff;padding:13px}.property-basic-panel>div.wide{grid-column:1/-1}.property-basic-panel span{color:#8e8476;font-size:.8rem}.property-basic-panel strong{font-size:.9rem;overflow-wrap:anywhere}.property-leases-heading{margin-top:4px}.property-lease-empty{margin:0}.property-lease-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0;align-items:start}.property-lease-group{display:grid;gap:12px;min-width:0;overflow:hidden;border:1px solid #e7cfc8;border-radius:13px;background:#fff8f6;padding:12px}.property-lease-group.receivable{border-color:#cbe0d3;background:#f5fbf7}.property-lease-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;border:0;border-radius:10px;background:linear-gradient(135deg,#f6d5cc,#fff2ed);padding:15px 16px}.property-lease-group.receivable .property-lease-group-header{background:linear-gradient(135deg,#cce7d6,#eff9f2)}.property-lease-group-header>div:first-child{display:grid;gap:3px;min-width:0}.property-lease-direction-badge{justify-self:start;border-radius:99px;background:#983f2e!important;padding:4px 9px;color:#fff!important;font-size:.72rem!important;font-weight:800}.property-lease-group.receivable .property-lease-direction-badge{background:#347454!important;color:#fff!important}.property-lease-group-header h4{margin:0;color:#6e2d21;font-size:1.12rem}.property-lease-group.receivable .property-lease-group-header h4{color:#285f45}.property-lease-group-header p{margin:0;color:#785f58;font-size:.82rem}.property-lease-group.receivable .property-lease-group-header p{color:#4f7060}.property-lease-group-header>div:last-child{display:grid;flex:0 0 auto;gap:3px;text-align:right}.property-lease-group-header>div:last-child strong{font-size:1.05rem;color:#7d3427}.property-lease-group.receivable .property-lease-group-header>div:last-child strong{color:#2c6b4d}.property-lease-group-header>div:last-child small{color:#756b5e}.property-lease-group-empty{margin:0;background:#ffffffb3}.property-lease-list{min-width:0;margin-top:0}.property-lease-list>article{min-width:0;overflow:hidden;background:#fff;padding:0}.property-lease-card-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:14px!important;align-items:start!important;padding:15px 16px;border-bottom:1px solid #ebe4da;background:#fff}.property-lease-card-title{display:grid;gap:3px;min-width:0}.property-lease-card-title h4{margin:0!important;overflow-wrap:anywhere}.property-lease-card-title small{display:block;margin-top:0!important;color:#8c8274}.property-lease-card-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:7px;min-width:min-content;flex-direction:column}.property-lease-card-actions>b{border-radius:999px;background:#f6f0e2;padding:5px 10px;font-size:.78rem}.property-lease-card-actions .danger-link{white-space:nowrap}.property-lease-list .lease-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:14px 16px}.property-lease-list .lease-summary p{min-width:0;margin:0}.property-lease-list .lease-summary strong{overflow-wrap:anywhere;word-break:normal}.property-lease-list .lease-rent-fact{background:#fff0eb}.property-lease-list .receivable .lease-rent-fact{background:#edf7f1}.property-lease-list .payable .lease-rent-fact strong{color:var(--tenancy-expense)}.property-lease-list .receivable .lease-rent-fact strong{color:var(--tenancy-income)}.lease-document-panel{display:grid;grid-template-columns:1fr;gap:10px;align-items:end;margin:0 16px;border:1px solid #e7dfd3;border-radius:10px;background:#fbf9f5;padding:13px}.lease-document-panel>div{display:grid;gap:6px;min-width:0}.lease-document-panel>div>strong span{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:99px;background:#ece5d9;font-size:.76rem}.lease-document-panel>div>div{display:flex;flex-wrap:wrap;gap:7px;min-width:0}.lease-document-panel a{max-width:100%;color:#805c0d;text-decoration:underline;overflow-wrap:anywhere}.lease-document-panel label{display:grid;gap:5px;min-width:0;color:#786e60;font-size:.82rem;font-weight:700}.lease-document-panel input{width:100%;max-width:100%;min-width:0}.lease-document-panel>button{justify-self:stretch;width:100%;white-space:nowrap}.lease-payment-details{min-width:0;margin:14px 16px 16px;border-top:1px solid #ebe4da;padding-top:12px}.lease-payment-details summary{cursor:pointer;color:#72520f;font-weight:800}.lease-payment-details .tenancy-table-wrap{max-width:100%;margin-top:10px;overflow-x:auto}.tenancy-table.compact{min-width:760px}.tenancy-table.compact th,.tenancy-table.compact td{padding:9px}.property-all-payments{min-width:0;overflow:hidden;border:1px solid #dfd6c9;border-radius:12px;background:#fff;padding:18px}.property-all-payments .tenancy-table-wrap{overflow-x:auto}.tenancy-collapsible-panel{display:block!important;overflow:hidden;padding:0;scroll-margin-top:16px}.tenancy-collapsible-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 20px;cursor:pointer;list-style:none}.tenancy-collapsible-summary::-webkit-details-marker{display:none}.tenancy-collapsible-summary:hover{background:#fffbf3}.tenancy-collapsible-summary>div{display:grid;gap:4px;min-width:0}.tenancy-collapsible-summary h3,.tenancy-collapsible-summary p{margin:0}.tenancy-collapsible-summary>span{display:grid;justify-items:end;gap:3px;min-width:110px}.tenancy-collapsible-summary>span b{color:#6d541c;font-size:.86rem}.tenancy-collapsible-summary>span small{color:#918778;font-size:.72rem}.tenancy-collapsible-panel[open]>.tenancy-collapsible-summary{border-bottom:1px solid #e8e0d5;background:#fffdf8}.tenancy-collapsible-body{display:grid;gap:16px;padding:18px 20px 20px}.tenancy-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.tenancy-panel-toolbar .segmented{flex-wrap:wrap}.tenancy-panel-toolbar .segmented button{padding:7px 10px;font-size:.78rem}.tenancy-flow-columns.focus-payable{grid-template-columns:minmax(0,1fr) 190px}.tenancy-flow-columns.focus-payable>.receivable{display:none}.tenancy-flow-columns.focus-receivable{grid-template-columns:190px minmax(0,1fr)}.tenancy-flow-columns.focus-receivable>.payable{display:none}.tenancy-calendar-overview .tenancy-calendar-filters{justify-content:flex-end}.tenancy-calendar-overview .tenancy-table-wrap{overflow:visible}.tenancy-overview-table{min-width:0;table-layout:fixed}.tenancy-overview-table th,.tenancy-overview-table td{padding:9px 7px;white-space:normal;overflow-wrap:anywhere}.tenancy-overview-table th:nth-child(1){width:10%}.tenancy-overview-table th:nth-child(2){width:15%}.tenancy-overview-table th:nth-child(3){width:14%}.tenancy-overview-table th:nth-child(4){width:15%}.tenancy-overview-table th:nth-child(5){width:11%}.tenancy-overview-table th:nth-child(6){width:14%}.tenancy-overview-table th:nth-child(7){width:9%}.tenancy-overview-table th:nth-child(8){width:12%}.lease-payment-list{display:grid;gap:7px;margin-top:10px}.lease-payment-item{display:grid;grid-template-columns:minmax(170px,1.4fr) auto minmax(130px,.9fr);align-items:center;gap:10px;padding:10px 11px;border:1px solid #e6dfd4;border-radius:8px;background:#fff}.lease-payment-item.is-overdue{border-color:#dfb2a7;background:#fff4f0}.lease-payment-period{display:grid;gap:4px;min-width:0}.lease-payment-period time{display:flex;align-items:baseline;gap:6px}.lease-payment-period time small{color:#8b8173;font-size:.68rem}.lease-payment-period time strong{font-size:.82rem}.lease-payment-period>span{color:#81776a;font-size:.72rem;overflow-wrap:anywhere}.lease-payment-amount{white-space:nowrap;font-size:.88rem;font-variant-numeric:tabular-nums}.lease-payment-state{display:grid;justify-items:end;gap:6px;min-width:0}.lease-payment-state>span{border-radius:99px;background:#f3eee4;padding:3px 7px;color:#716756;font-size:.7rem;font-weight:700}.lease-payment-state .row-actions{justify-content:flex-end}.lease-payment-state .row-actions button{padding:6px 8px}.property-all-payments,.property-all-payments .tenancy-table-wrap{overflow:visible}.property-all-payments .tenancy-table{min-width:0;table-layout:fixed}.property-all-payments .tenancy-table th,.property-all-payments .tenancy-table td{white-space:normal;overflow-wrap:anywhere}@media(max-width:1250px){.tenancy-overview-hero{grid-template-columns:repeat(4,1fr)}.tenancy-overview-hero>button:first-child{grid-column:1/-1}.tenancy-overview-hero>button:nth-child(2){border-left:0}.tenancy-dashboard-grid{grid-template-columns:1fr}.tenancy-flow-columns{grid-template-columns:1fr 150px 1fr}.tenancy-property-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.property-detail-summary{grid-template-columns:repeat(2,1fr)}.property-detail-summary article:nth-child(3){border-left:0;border-top:1px solid #ece5dc}.property-detail-summary article:nth-child(4){border-top:1px solid #ece5dc}.property-basic-panel{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.tenancy-main-nav{grid-template-columns:1fr}.tenancy-main-nav button{min-height:58px}.tenancy-overview-hero{grid-template-columns:repeat(2,1fr)}.tenancy-overview-hero>button:first-child{grid-column:1/-1}.tenancy-overview-hero>button:nth-child(2n){border-left:0}.tenancy-overview-hero>button{min-height:95px;padding:14px}.tenancy-overview-hero>button:first-child>strong{font-size:1.5rem}.tenancy-dashboard-grid{display:block}.tenancy-dashboard-grid>*+*{margin-top:14px}.tenancy-donut-layout{grid-template-columns:1fr}.tenancy-donut{width:170px;margin:auto}.tenancy-bar-chart{grid-template-columns:repeat(6,64px);overflow-x:auto}.tenancy-trend-card{overflow:hidden}.tenancy-entity-flow>header{grid-template-columns:1fr 70px 70px;gap:8px;padding:14px}.tenancy-flow-columns{grid-template-columns:1fr}.tenancy-flow-company{grid-row:1}.tenancy-flow-side>button{grid-template-columns:1fr auto 1fr}.tenancy-due-row{grid-template-columns:78px minmax(0,1fr)}.tenancy-due-row>button{min-width:0}.tenancy-due-row b,.tenancy-due-row em{grid-column:2}.tenancy-due-row b{font-size:.82rem}.tenancy-properties-heading{align-items:stretch}.tenancy-properties-heading button{width:100%}.tenancy-property-tools{align-items:stretch;flex-direction:column}.tenancy-property-tools>div{flex-wrap:wrap}.tenancy-property-grid-v2{grid-template-columns:1fr}.property-card-facts{grid-template-columns:repeat(3,1fr)}.tenancy-property-backdrop{align-items:end;padding:0}.tenancy-property-detail{width:100vw;height:96vh;border-radius:16px 16px 0 0}.property-detail-header{align-items:flex-start;padding:14px 16px}.property-detail-header h3{font-size:1.15rem}.property-detail-header p{font-size:.8rem}.property-detail-actions{align-items:flex-end!important;flex-direction:column-reverse}.property-detail-actions .danger-link{padding:5px 7px;font-size:.72rem}.property-detail-actions>button:last-child{width:38px;height:38px}.property-detail-scroll{padding:13px}.property-detail-summary{grid-template-columns:1fr 1fr}.property-detail-summary article{min-height:90px;padding:12px}.property-basic-panel{grid-template-columns:1fr}.property-basic-panel>div.wide{grid-column:auto}.property-leases-heading{align-items:stretch;flex-direction:column}.property-leases-heading button{width:100%}.property-lease-groups{grid-template-columns:1fr}.property-lease-group-header{align-items:flex-start;padding:12px 14px}.property-lease-card-header{grid-template-columns:minmax(0,1fr);padding:14px}.property-lease-card-actions{align-items:stretch;justify-content:space-between;min-width:0}.property-lease-list .lease-summary{grid-template-columns:1fr 1fr;padding:14px}.lease-document-panel{grid-template-columns:1fr;margin:0 14px}.lease-document-panel>button{grid-column:auto;justify-self:stretch;width:100%}.lease-payment-details{margin:13px 14px 14px}.tenancy-collapsible-summary{grid-template-columns:1fr;padding:15px}.tenancy-collapsible-summary>span{grid-template-columns:auto auto;justify-content:space-between;justify-items:start;min-width:0}.tenancy-collapsible-body{padding:14px}.tenancy-panel-toolbar{align-items:stretch;flex-direction:column}.tenancy-flow-columns.focus-payable,.tenancy-flow-columns.focus-receivable{grid-template-columns:1fr}.tenancy-calendar-overview .tenancy-calendar-filters{justify-content:stretch}.tenancy-overview-table,.tenancy-overview-table tbody{display:block;width:100%}.tenancy-overview-table thead{display:none}.tenancy-overview-table tr{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;margin-bottom:10px;padding:10px;border:1px solid #e5ddd1;border-radius:9px;background:#fff}.tenancy-overview-table td{display:block;width:auto;padding:7px 4px;border:0;white-space:normal}.tenancy-overview-table td:before{display:block;margin-bottom:3px;color:#8a8174;font-size:.66rem;font-weight:700}.tenancy-overview-table td:nth-child(1):before{content:"到期日"}.tenancy-overview-table td:nth-child(2){grid-column:1/-1}.tenancy-overview-table td:nth-child(2):before{content:"物业"}.tenancy-overview-table td:nth-child(3):before{content:"公司主体"}.tenancy-overview-table td:nth-child(4):before{content:"业主／租户"}.tenancy-overview-table td:nth-child(5):before{content:"方向"}.tenancy-overview-table td:nth-child(6):before{content:"未完成金额"}.tenancy-overview-table td:nth-child(7):before{content:"状态"}.tenancy-overview-table td:nth-child(8){grid-column:1/-1}.tenancy-overview-table td:nth-child(8):before{content:"操作"}}@media(max-width:480px){.property-detail-summary{grid-template-columns:1fr}.property-detail-summary article{border-left:0!important;border-top:1px solid #ece5dc}.property-detail-summary article:first-child{border-top:0}.property-lease-group-header{flex-direction:column}.property-lease-group-header>div:last-child{text-align:left}.property-lease-list .lease-summary{grid-template-columns:1fr}.property-lease-card-actions{align-items:stretch;flex-direction:column}.property-lease-card-actions .danger-link{width:100%}.lease-payment-item{grid-template-columns:minmax(0,1fr) auto}.lease-payment-state{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:start}.lease-payment-state .row-actions{justify-self:end}.tenancy-overview-table tr{grid-template-columns:1fr}}.pwa-offline-banner{position:sticky;z-index:120;top:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px max(14px,env(safe-area-inset-left));border-bottom:1px solid #b85a43;background:#fff0eb;color:#7e2f20;text-align:center;box-shadow:0 3px 12px #4223191f}.pwa-offline-banner strong{white-space:nowrap}.pwa-offline-banner span{font-size:.86rem}.pwa-update-card{position:fixed;z-index:130;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;gap:14px;width:min(420px,calc(100vw - 36px));padding:17px;border:1px solid #c79a3c;border-left:6px solid #d49a1e;border-radius:11px;background:#fffdf9;box-shadow:0 12px 36px #291f0f38}.pwa-update-copy{display:grid;gap:5px}.pwa-update-copy strong{font-size:1.02rem}.pwa-update-copy span{color:#6f675c;font-size:.86rem;line-height:1.45}.pwa-update-actions{display:flex;justify-content:flex-end;gap:8px}.pwa-update-actions button{min-height:40px}.pwa-update-actions button:disabled{cursor:wait;opacity:.65}@media(max-width:560px){.pwa-offline-banner{align-items:flex-start;flex-direction:column;gap:3px;text-align:left}.pwa-update-card{right:10px;bottom:max(10px,env(safe-area-inset-bottom));width:calc(100vw - 20px)}.pwa-update-actions{align-items:stretch;flex-direction:column-reverse}.pwa-update-actions button{width:100%}}@media print{#pwa-offline-root,#pwa-status-root{display:none!important}}.app-header{flex-wrap:wrap}.app-header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-left:auto}.app-header-actions button{margin-left:0}.feedback-button{border-color:#b78213;background:#fff6dc;color:#6d4b00;font-weight:800}.signed-in-user{display:grid;gap:1px;min-width:105px;padding:3px 9px;border-left:3px solid #d49a1e}.signed-in-user span{color:#29241a;font-size:.82rem;font-weight:800;letter-spacing:0}.signed-in-user small{color:#716b62;font-size:.68rem}.main-module-nav{flex-wrap:wrap;overflow:visible}.main-module-nav button{flex:1 1 128px;min-width:0;white-space:normal;line-height:1.25}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#fff9e8 0,#f5f1e8 48%,#ebe4d7)}.auth-card{width:min(460px,100%);padding:30px;border:1px solid #d8cdbb;border-top:5px solid #d49a1e;border-radius:12px;background:#fffdf9;box-shadow:0 18px 60px #32281424}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.auth-brand>span{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#d49a1e;font-weight:900}.auth-brand>div{display:grid;gap:2px}.auth-brand small,.auth-heading p,.auth-help{color:#716b62}.auth-heading{margin-bottom:20px}.auth-heading h1{font-size:1.8rem}.auth-card form{display:grid;gap:15px}.auth-card form label{display:grid;gap:6px;color:#554d42;font-size:.86rem;font-weight:700}.auth-card form input{width:100%;min-height:45px}.auth-card form label small{color:#7b7164;font-weight:400}.auth-card form>.primary{min-height:46px;margin-top:4px}.auth-help{margin:20px 0 0;font-size:.76rem;line-height:1.55}.auth-loading{display:grid;justify-items:center;gap:8px;text-align:center}.auth-loading strong{font-size:1.2rem}.auth-loading span{color:#716b62}.modal-backdrop{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:20px;background:#17130fa8}.user-management-backdrop{z-index:42}.user-management-dialog{width:min(1040px,100%);max-height:calc(100vh - 40px);overflow:auto;border:2px solid #b78213;border-radius:12px;background:#fffdf9;box-shadow:0 18px 60px #0005}.user-management-dialog>header,.bug-report-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;min-height:0;padding:20px 22px;border-bottom:1px solid #ddd5c8}.user-management-dialog>header h2,.user-management-dialog>header p,.bug-report-dialog>header h2,.bug-report-dialog>header p{margin-bottom:4px}.user-management-dialog>header>button,.bug-report-dialog>header>button{margin-left:0}.user-management-summary{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr)) auto;align-items:stretch;gap:10px;padding:16px 20px}.user-management-summary>div{display:grid;gap:3px;padding:12px;border:1px solid #e0d8ca;border-radius:8px;background:#fff}.user-management-summary span{color:#716b62;font-size:.78rem}.user-management-summary strong{font-size:1.45rem}.user-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 20px 16px;padding:16px;border:1px solid #d8bd79;border-radius:9px;background:#fff9e9}.user-create-form h3{grid-column:1/-1;margin:0}.user-create-form label{display:grid;gap:5px;color:#5e5548;font-size:.8rem;font-weight:700}.user-create-form input,.user-create-form select{width:100%;min-width:0}.user-create-form>p{grid-column:1/3;align-self:center;margin:0;color:#716b62;font-size:.78rem}.user-create-form>button{justify-self:end}.user-management-dialog>.notice,.user-management-dialog>.error{margin:0 20px 14px}.user-card-list{display:grid;gap:10px;padding:0 20px 22px}.user-card{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(130px,.8fr) minmax(150px,.8fr) auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid #dfd7ca;border-radius:9px;background:#fff}.user-card.is-disabled{border-style:dashed;background:#f2efea;opacity:.8}.user-card-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 8px;min-width:0}.user-card-name strong{font-size:1rem}.user-card-name span{color:#716b62;font-size:.78rem;overflow-wrap:anywhere}.user-card-name em{padding:2px 7px;border-radius:999px;background:#fff1c9;color:#745000;font-size:.68rem;font-style:normal;font-weight:800}.user-card label{display:grid;gap:4px;color:#716b62;font-size:.72rem}.user-card select{width:100%;min-width:0}.user-card-status{display:grid;gap:3px}.user-card-status small{color:#806018;font-size:.7rem}.user-status{width:max-content;padding:3px 8px;border-radius:999px;font-size:.73rem;font-weight:800}.user-status.active{background:#edf7ea;color:#366333}.user-status.disabled{background:#e8e4df;color:#665e54}.bug-report-backdrop{z-index:45}.bug-report-dialog{width:min(900px,100%);max-height:calc(100vh - 40px);overflow:auto;border:2px solid #b78213;border-radius:12px;background:#fffdf9;box-shadow:0 18px 60px #0005}.bug-report-dialog>form{display:grid;gap:14px;padding:20px 22px}.bug-report-dialog form>label,.bug-management-fields label{display:grid;gap:5px;color:#5c5347;font-size:.82rem;font-weight:700}.bug-report-dialog input,.bug-report-dialog select,.bug-report-dialog textarea,.bug-management-fields select,.bug-management-fields textarea{width:100%;min-width:0}.bug-report-dialog textarea{min-height:110px}.bug-report-kind{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bug-report-kind label{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #ddd3bf;border-radius:8px;background:#fff;font-weight:700}.bug-report-kind input{width:auto}.bug-report-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bug-report-upload{padding:13px;border:1px dashed #c9ad68;border-radius:8px;background:#fff9e9}.bug-report-file-list{display:flex;flex-wrap:wrap;gap:6px;padding:10px;border-radius:7px;background:#f2eee7}.bug-report-file-list span{max-width:100%;overflow-wrap:anywhere}.bug-report-file-list small{width:100%;color:#716b62}.bug-report-privacy{margin:0;color:#716b62;font-size:.75rem;line-height:1.5}.bug-report-dialog footer{display:flex;justify-content:flex-end;gap:8px}.bug-manager{display:grid;gap:14px}.module-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.module-heading p{margin-bottom:0;color:#716b62}.bug-manager-heading{padding:18px;border-left:5px solid #d49a1e;border-radius:9px;background:#fff}.bug-manager-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid #ddd5c8;border-radius:8px;background:#fff}.bug-manager-toolbar label{display:grid;gap:4px;color:#716b62;font-size:.76rem}.bug-manager-toolbar span{margin-left:auto;color:#716b62}.bug-manager-toolbar button.active{border-color:#b78213;background:#fff3d3}.bug-manager-layout{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:14px;align-items:start}.bug-report-list{display:grid;gap:8px}.bug-report-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 8px;text-align:left;border-radius:9px;padding:12px;background:#fff}.bug-report-card.selected{border-color:#b78213;background:#fff8e4;box-shadow:inset 4px 0 #d49a1e}.bug-report-card strong{min-width:0;overflow-wrap:anywhere}.bug-report-card small,.bug-report-card>span:not(.bug-kind),.bug-report-card time{grid-column:1/-1;color:#716b62;font-size:.73rem}.bug-kind{align-self:start;padding:3px 7px;border-radius:999px;font-size:.68rem;font-weight:900}.bug-kind.bug{background:#ffebe6;color:#922f20}.bug-kind.improvement{background:#e9f3e8;color:#376537}.bug-report-detail{min-width:0;padding:18px;border:1px solid #ddd5c8;border-radius:10px;background:#fff}.bug-report-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:0;padding:0 0 13px;border-bottom:1px solid #ece5da}.bug-report-detail>header h2{overflow-wrap:anywhere}.bug-report-detail>section{margin-top:16px;padding-top:14px;border-top:1px solid #ece5da}.bug-report-detail h3{margin-bottom:7px;font-size:1rem}.bug-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.bug-context-grid>div{padding:10px;border-radius:7px;background:#f7f4ee}.bug-context-grid dt{font-size:.7rem}.bug-context-grid dd{margin-top:3px;overflow-wrap:anywhere;font-size:.82rem}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.bug-status{padding:4px 9px;border-radius:999px;background:#f1ece3;color:#665d51;font-size:.72rem;font-weight:800;white-space:nowrap}.bug-status.closed{background:#e9f3e7;color:#386636}.bug-attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}.bug-attachment-grid a{display:grid;gap:5px;min-width:0;padding:7px;border:1px solid #ddd5c8;border-radius:7px;color:#6f510d}.bug-attachment-grid img{width:100%;height:120px;object-fit:contain;background:#eee9df}.bug-attachment-grid span{overflow-wrap:anywhere;font-size:.7rem}.bug-management-fields textarea{min-height:95px}.bug-report-detail>footer{display:flex;justify-content:flex-end;margin-top:16px}.danger{border-color:#a94730;background:#a94730;color:#fff}@media(max-width:900px){.app-header-actions{flex:1 1 100%;justify-content:flex-start;margin-left:50px}.bug-manager-layout{grid-template-columns:1fr}.bug-report-list{grid-template-columns:repeat(2,minmax(0,1fr))}.user-card{grid-template-columns:minmax(150px,1fr) minmax(120px,.7fr)}.user-card-status{grid-column:1}.user-card>button{grid-column:2;justify-self:end}.user-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}.user-create-form>p{grid-column:1}.user-create-form>button{align-self:end}}@media(max-width:760px){.app-header{align-items:flex-start}.app-header>.brand-mark{flex:none}.app-header>div:nth-child(2){min-width:0;flex:1}.app-header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0}.app-header-actions button{width:100%;min-width:0;white-space:normal}.app-header-actions .feedback-button{grid-column:1/-1}.signed-in-user{min-width:0}.main-module-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-bottom:0}.main-module-nav button{width:100%;min-height:48px;border:1px solid #cfc9bd;border-radius:6px}.module-heading{align-items:stretch;flex-direction:column}.module-heading button{width:100%}.bug-report-kind,.bug-report-two-column,.bug-context-grid,.bug-report-list{grid-template-columns:1fr}.bug-report-dialog,.user-management-dialog{max-height:calc(100vh - 20px)}.modal-backdrop{padding:10px}.user-management-dialog>header,.bug-report-dialog>header{padding:16px}.user-management-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.user-management-summary>button{grid-column:1/-1}.user-create-form{grid-template-columns:1fr;margin:0 14px 14px}.user-create-form>p,.user-create-form>button{grid-column:auto}.user-create-form>button{width:100%}.user-management-dialog>.notice,.user-management-dialog>.error{margin:0 14px 12px}.user-card-list{padding:0 14px 18px}.user-card{grid-template-columns:1fr}.user-card-status,.user-card>button{grid-column:auto}.user-card>button{justify-self:stretch}.bug-report-dialog>form{padding:16px}.auth-page{padding:14px}.auth-card{padding:22px}}@media(max-width:420px){.main-module-nav,.app-header-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.app-header-actions .feedback-button{grid-column:1/-1}.signed-in-user{padding:6px 9px;border-left:0;border-top:3px solid #d49a1e}.auth-card{padding:18px}}.signed-in-user span{display:block}.bug-status{display:inline-block}.settings-company-toolbar,.settings-backup-section{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:13px;border:1px solid #ded8cd;border-radius:7px;background:#fff}.settings-company-toolbar>div,.settings-backup-section>div{display:grid;gap:3px}.settings-company-toolbar span,.settings-backup-section span{color:#716b62;font-size:.76rem}.settings .company-create-card{border-color:#c89b35;background:#fffaf0}.settings .company-create-card>p{grid-column:1/-1;margin:0;color:#716b62;font-size:.78rem}.settings .company-create-card label{position:relative}.settings .company-create-card label small{color:#8b8173;font-size:.68rem;font-weight:400}.settings-backup-section{margin-top:18px}.settings-backup-section button{flex:none}.settings>.notice,.settings>.error{margin-top:12px}@media(max-width:760px){.settings-company-toolbar,.settings-backup-section{align-items:stretch;flex-direction:column}.settings-company-toolbar button,.settings-backup-section button{width:100%}.settings .company-create-card>p{grid-column:auto}}@page{size:A4;margin:0}.quotation-line-text,.quotation-note-row p{white-space:pre-line;overflow-wrap:anywhere}.quotation-line-row--with-images{break-after:avoid;page-break-after:avoid}.quotation-image-grid-row{break-before:avoid;page-break-before:avoid}.quotation-print-image{width:100%;height:100%;object-fit:contain}.a4-page{box-sizing:border-box;width:210mm;height:297mm;padding:10mm 12mm 9mm;display:flex;flex-direction:column;overflow:visible;background:#fff;color:#1f211f;print-color-adjust:exact;-webkit-print-color-adjust:exact}.a4-page[data-page-overflow=true]{outline:1mm solid #b42318;outline-offset:-1mm}@media print{.quotation-draft-issue-summary{display:none!important}.quotation-draft-invalid{background:transparent!important;box-shadow:none!important}html,body{width:210mm;margin:0;padding:0;background:#fff}.print-view{width:210mm;margin:0!important}.app-shell>header,.workspace,.drawer>:not(.saved-document-preview),.quote-editor-toolbar,.quote-editor-layout>.quote-editor-form,.quote-editor-preview>h2{display:none!important}.drawer,.quote-editor-dialog,.quote-editor-layout,.quote-editor-preview,.saved-document-preview,.a4-preview-viewport,.a4-preview-scale{position:static!important;display:block!important;width:auto!important;height:auto!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;overflow:visible!important;background:#fff!important}.app-shell:has(.quote-editor-dialog) .drawer{display:none!important}.a4-preview-scale{transform:none!important;transform-origin:top left!important;zoom:1!important}.quotation-document,.invoice-document,.receipt-document{display:block;gap:0}.a4-page{margin:0;box-shadow:none;break-after:page}.a4-page:last-child{break-after:auto}.combined-quotation-start{break-before:page;page-break-before:always}}
