.contract-page{--contract-ink:#173c32;--contract-green:#164b3b;--contract-lime:#b6dc63;color:#2c463d;gap:18px;width:100%;min-width:0;display:grid}.contract-page>*{min-width:0}.contract-heading{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.contract-heading .eyebrow{color:#71847c;letter-spacing:.23em;font-size:8px;font-weight:850}.contract-heading h1{color:#172d26;letter-spacing:-.05em;margin:7px 0 3px;font:500 46px/1.05 STSong,Songti SC,serif}.contract-heading p{color:#72827b;max-width:720px;margin:0;font-size:10px;line-height:1.7}.contract-create-button{color:#fff;cursor:pointer;background:var(--contract-green);border-radius:10px;align-items:center;gap:9px;min-height:43px;padding:0 17px;font-size:9px;font-weight:800;display:inline-flex;box-shadow:0 12px 26px rgba(23,77,60,.18)}.contract-create-button span{width:21px;height:21px;color:var(--contract-green);background:var(--contract-lime);border-radius:6px;place-items:center;font-size:15px;display:grid}.contract-heading-actions{flex:none;gap:9px;display:flex}.contract-sms-batch-button{color:#315e50;cursor:pointer;background:#e8f2ed;border:1px solid #cfe1d8;border-radius:10px;min-height:43px;padding:0 15px;font-size:9px;font-weight:800}.contract-sms-batch-button:disabled{cursor:wait;opacity:.58}.contract-sms-notice{color:#365e51;background:#edf5f1;border:1px solid #d9e8e1;border-radius:10px;padding:11px 14px;font-size:9px}.contract-pulse{color:#eef6f1;background:linear-gradient(125deg,#10372c,#174d3c 67%,#20604a);border-radius:18px;grid-template-columns:180px minmax(360px,1fr) 220px;align-items:center;gap:28px;min-height:126px;padding:22px 25px;display:grid;box-shadow:0 18px 42px rgba(16,56,45,.15)}.contract-pulse-copy{grid-template-columns:auto 1fr;align-items:end;gap:3px 10px;display:grid}.contract-pulse-copy small{color:#91b3a7;letter-spacing:.19em;grid-column:1/-1;font-size:7px;font-weight:850}.contract-pulse-copy strong{color:#fff;font:500 38px/1 STSong,serif}.contract-pulse-copy span{color:#a9beb6;padding-bottom:4px;font-size:8px}.contract-pulse-track{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.contract-pulse-track>div{border-top:1px solid rgba(255,255,255,.2);align-content:end;gap:4px;min-height:62px;padding-top:18px;display:grid;position:relative}.contract-pulse-track i{background:#b6dc63;border:3px solid #174d3c;border-radius:50%;width:9px;height:9px;position:absolute;top:-4px;box-shadow:0 0 0 2px rgba(255,255,255,.18)}.contract-pulse-track i.is-expiring{background:#efc168}.contract-pulse-track i.is-expired{background:#e87c6f}.contract-pulse-track span{color:#9eb4ac;font-size:7px}.contract-pulse-track b{color:#fff;font:500 17px/1 STSong,serif}.contract-pulse-area{border-left:1px solid rgba(255,255,255,.15);gap:5px;padding-left:22px;display:grid}.contract-pulse-area small{color:#91aca2;font-size:8px}.contract-pulse-area strong{color:#fff;font:500 22px/1.2 STSong,serif}.contract-pulse-area span{color:#a9bdb6;font-size:7px}.contract-filter-card,.contract-ledger{background:#fff;border:1px solid #dfe6e1;border-radius:15px;min-width:0;overflow:visible}.contract-filter-card>header,.contract-ledger>header{border-bottom:1px solid #e7ece8;justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.contract-filter-card header div,.contract-ledger header div{gap:4px;display:grid}.contract-filter-card header span,.contract-ledger header span{color:#7a8f86;letter-spacing:.18em;font-size:7px;font-weight:850}.contract-filter-card h2,.contract-ledger h2{color:#24473c;margin:0;font:500 19px/1.1 STSong,serif}.contract-filter-card header button{color:#46665b;cursor:pointer;background:#edf3ef;border-radius:7px;min-height:31px;padding:0 10px;font-size:8px}.contract-ledger>header>strong{color:#d6ded9;font:400 28px/1 STSong,serif}.contract-filter-grid{grid-template-columns:1.4fr repeat(3,minmax(130px,1fr));gap:12px;padding:17px 20px 20px;display:grid}.contract-filter-grid label{gap:6px;min-width:0;display:grid}.contract-filter-grid label span{color:#657970;font-size:8px;font-weight:750}.contract-filter-grid input,.contract-filter-grid select{color:#36544a;background:#f8faf7;border:1px solid #dce5df;border-radius:8px;outline:0;width:100%;min-height:39px;padding:0 11px;font-size:9px}.contract-filter-grid input:focus,.contract-filter-grid select:focus{border-color:#7cad9d;box-shadow:0 0 0 3px rgba(124,173,157,.1)}.contract-table-wrap{overscroll-behavior-x:contain;width:100%;min-width:0;overflow-x:auto}.contract-table{border-collapse:collapse;color:#3d554c;width:100%;min-width:1500px;font-size:8px}.contract-table th{color:#75877f;text-align:left;white-space:nowrap;background:#f5f7f4;border-bottom:1px solid #e2e8e4;padding:11px 12px}.contract-table td{vertical-align:middle;border-bottom:1px solid #ebefec;padding:12px}.contract-table tbody tr:hover{background:#fafcf9}.contract-party,.contract-location,.contract-reminder{gap:4px;min-width:0;display:grid}.contract-party{min-width:150px}.contract-party strong,.contract-location strong{color:#234b3e;font-size:9px}.contract-party span,.contract-location span{color:#6f8179;text-overflow:ellipsis;white-space:nowrap;max-width:210px;overflow:hidden}.contract-party small{color:#9aa59f;font:7px/1.4 ui-monospace,monospace}.contract-type,.contract-status{border-radius:999px;align-items:center;width:fit-content;min-height:23px;padding:0 8px;font-size:7px;font-weight:800;display:inline-flex}.contract-type.is-income{color:#28634f;background:#dcf1e7}.contract-type.is-expense{color:#a34c3e;background:#fde9e5}.contract-status.is-active{color:#28634f;background:#dcf1e7}.contract-status.is-expiring{color:#956019;background:#fff0d3}.contract-status.is-expired{color:#a34c3e;background:#fde9e5}.contract-status.is-missing{color:#67756f;background:#ecefec}.contract-period{white-space:nowrap;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.contract-period i{color:#9aaba4;font-style:normal}.contract-reminder small{color:#7c8d86;white-space:nowrap}.contract-rent{color:#174d3c;white-space:nowrap;font:600 11px/1 STSong,serif}.contract-increase{color:#5e746b;max-width:210px;line-height:1.55;display:block}.contract-actions{gap:5px;display:flex}.contract-actions button,.contract-mobile-card footer button{color:#315e50;cursor:pointer;background:#edf5f1;border:1px solid #d5e5dd;border-radius:6px;min-height:29px;padding:0 8px;font-size:7px;font-weight:750}.contract-actions button.is-danger,.contract-mobile-card footer button.is-danger{color:#aa483c;background:#fff0ed;border-color:#efccc6}.contract-actions button.is-sms,.contract-mobile-card footer button.is-sms{color:#7c5a1f;background:#fff5df;border-color:#efdfbb}.contract-actions button:disabled,.contract-mobile-card footer button:disabled{cursor:not-allowed;opacity:.42}.contract-empty{color:#899791;text-align:center;height:150px}.contract-mobile-list{display:none}.contract-pagination{color:#788981;border-top:1px solid #e7ece8;justify-content:space-between;align-items:center;padding:14px 20px;font-size:8px;display:flex}.contract-pagination div{gap:7px;display:flex}.contract-pagination button{color:#315e51;cursor:pointer;background:#edf4f0;border-radius:7px;min-height:30px;padding:0 10px;font-size:8px}.contract-pagination button:disabled{cursor:default;opacity:.4}.contract-dialog-backdrop{z-index:94;backdrop-filter:blur(7px);background:rgba(18,47,38,.49);place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.contract-dialog{background:#fff;border:1px solid #dbe5df;border-radius:18px;width:min(920px,100%);max-height:calc(100dvh - 48px);padding:24px;overflow-y:auto;box-shadow:0 28px 90px rgba(12,42,33,.28)}.contract-dialog.is-confirm{width:min(470px,100%)}.contract-dialog>header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:19px;display:flex}.contract-dialog>header span{color:#789087;letter-spacing:.17em;font-size:7px;font-weight:850}.contract-dialog>header h2{color:#173d32;margin:6px 0 0;font:500 26px/1.1 STSong,serif}.contract-dialog>header p{color:#87968f;margin:7px 0 0;font-size:8px}.contract-dialog>header>button{color:#71837b;cursor:pointer;background:0 0;font-size:24px}.contract-dialog.is-confirm>p{color:#697d74;font-size:10px;line-height:1.8}.contract-form-section{border-top:1px solid #e7ece9;padding:18px 0}.contract-form-section>header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.contract-form-section>header>span{color:#174d3c;background:#dff0e7;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font:600 10px/1 STSong,serif;display:grid}.contract-form-section>header div{gap:3px;display:grid}.contract-form-section>header strong{color:#25493d;font-size:10px}.contract-form-section>header small{color:#8c9994;font-size:7px}.contract-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.contract-form-grid label,.contract-form-field,.contract-rule-count{gap:6px;min-width:0;display:grid}.contract-form-grid .is-wide{grid-column:1/-1}.contract-form-grid label>span,.contract-form-field>span,.contract-form-field>label,.contract-rule-count>span,.contract-rule-list label>span{color:#60766d;font-size:8px;font-weight:750}.contract-form-grid input,.contract-form-grid select,.contract-form-field textarea,.contract-rule-count select,.contract-rule-list input{color:#304f44;background:#f8faf8;border:1px solid #d9e3dd;border-radius:8px;outline:0;width:100%;min-height:42px;padding:0 11px;font-size:9px}.contract-form-field textarea{resize:vertical;min-height:88px;padding:10px 11px;line-height:1.6}.contract-form-grid input:focus,.contract-form-grid select:focus,.contract-form-field textarea:focus,.contract-rule-count select:focus,.contract-rule-list input:focus{border-color:#70aa98;box-shadow:0 0 0 3px rgba(112,170,152,.11)}.contract-form-grid select:disabled{color:#65766f;background:#f1f3f0}.contract-form-grid input:read-only{color:#65766f;background:#f1f3f0}.contract-form-field textarea:read-only{color:#65766f;background:#f1f3f0}.contract-form-field .salary-date-trigger{background:#f8faf8;border-radius:8px;min-height:42px}.contract-unit-input{position:relative}.contract-unit-input input{padding-right:58px}.contract-unit-input b{color:#73857d;font-size:8px;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.contract-rule-count{width:min(260px,100%);margin-bottom:12px}.contract-rule-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.contract-rule-list article{background:#f6f9f6;border:1px solid #dce5df;border-radius:9px;gap:10px;padding:12px;display:grid}.contract-rule-list article>strong{color:#31594c;font-size:9px}.contract-rule-list label{gap:6px;display:grid}.contract-dialog-error{color:#a04436;background:#fff0ed;border-radius:9px;margin:13px 0 0;padding:11px 13px;font-size:9px}.contract-ai-notice{color:#315e50;background:#edf6f1;border-radius:9px;margin:12px 0 0;padding:11px 13px;font-size:9px}.contract-attachment-field{gap:11px;display:grid}.contract-attachment-toolbar{justify-content:space-between;align-items:center;gap:14px;display:flex}.contract-attachment-toolbar>div:first-child{gap:4px;display:grid}.contract-attachment-toolbar strong{color:#31594c;font-size:9px}.contract-attachment-toolbar small,.contract-attachment-note{color:#889790;margin:0;font-size:7px;line-height:1.65}.contract-attachment-tools{gap:8px;display:flex}.contract-upload-button,.contract-ai-button{color:#315e50;cursor:pointer;background:#edf5f1;border:1px solid #d4e5dc;border-radius:8px;justify-content:center;align-items:center;min-height:35px;padding:0 11px;font-size:8px;font-weight:750;display:inline-flex}.contract-upload-button input{display:none}.contract-ai-button{color:#fff;background:#174d3c;border-color:#174d3c}.contract-ai-button:disabled{cursor:wait;opacity:.5}.contract-attachment-empty{color:#94a099;background:#f8faf8;border:1px dashed #d7e1db;border-radius:10px;place-items:center;min-height:82px;font-size:8px;display:grid}.contract-attachment-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.contract-attachment-list article{background:#f8faf8;border:1px solid #dce5df;border-radius:10px;gap:5px;min-width:0;padding:8px;display:grid;position:relative}.contract-attachment-list article.is-removed{opacity:.48}.contract-attachment-list a,.contract-attachment-placeholder{aspect-ratio:4/3;background:#e9efeb;border-radius:7px;width:100%;display:block;overflow:hidden}.contract-attachment-list img{object-fit:cover;width:100%;height:100%}.contract-attachment-placeholder{color:#8d9b95;place-items:center;font-size:8px;display:grid}.contract-attachment-list article>span{color:#60766d;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.contract-attachment-list article>small{font-size:7px}.contract-attachment-list .is-pending{color:#906622}.contract-attachment-list .is-removing{color:#a34c3e}.contract-attachment-list article>button{color:#a34c3e;cursor:pointer;background:rgba(255,240,237,.92);border:1px solid #efccc6;border-radius:6px;min-height:24px;padding:0 7px;font-size:7px;position:absolute;top:13px;right:13px}.contract-dialog footer{justify-content:flex-end;gap:9px;margin-top:18px;display:flex}.contract-dialog form>footer{z-index:4;background:linear-gradient(rgba(255,255,255,.75),#fff 13px);border-top:1px solid #edf1ef;margin:18px -24px -24px;padding:14px 24px 24px;position:sticky;bottom:-24px}.contract-dialog footer button{color:#315b4f;cursor:pointer;background:#edf4f0;border:1px solid #d5e3dc;border-radius:9px;min-width:92px;min-height:39px;font-size:9px;font-weight:750}.contract-dialog footer button.is-primary{color:#fff;background:#164c3b;border-color:#164c3b}.contract-dialog footer button.is-danger{color:#fff;background:#ad4a3e;border-color:#ad4a3e}.contract-dialog footer button:disabled{cursor:wait;opacity:.6}@media (width<=1100px){.contract-pulse{grid-template-columns:150px 1fr}.contract-pulse-area{display:none}.contract-filter-grid{grid-template-columns:1fr 1fr}}@media (width<=680px){.contract-page{gap:14px}.contract-heading{flex-direction:column;align-items:stretch}.contract-heading h1{font-size:38px}.contract-create-button{justify-content:center;width:100%;min-height:46px}.contract-heading-actions{grid-template-columns:1fr 1fr;display:grid}.contract-sms-batch-button{min-height:46px}.contract-pulse{border-radius:14px;grid-template-columns:1fr;gap:16px;min-height:0;padding:18px}.contract-pulse-copy{width:fit-content}.contract-filter-grid{grid-template-columns:1fr;padding:14px}.contract-filter-grid input,.contract-filter-grid select{min-height:46px;font-size:16px}.contract-table-wrap{display:none}.contract-mobile-list{gap:10px;padding:14px;display:grid}.contract-mobile-card{background:#fbfcf9;border:1px solid #e0e7e2;border-radius:12px;padding:14px}.contract-mobile-card>header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.contract-mobile-card header>div{gap:4px;min-width:0;display:grid}.contract-mobile-card header small{color:#89968f;font:7px/1 ui-monospace,monospace}.contract-mobile-card header strong{color:#244a3e;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.contract-mobile-card header div span{color:#7c8d86;font-size:8px}.contract-mobile-reminder{color:#6b5b38;background:#fff5df;border-radius:8px;margin:14px 0;padding:10px 11px;font-size:9px}.contract-mobile-card dl{grid-template-columns:auto minmax(0,1fr);gap:9px 12px;margin:0;font-size:9px;display:grid}.contract-mobile-card dt{color:#89968f}.contract-mobile-card dd{text-align:right;overflow-wrap:anywhere;margin:0}.contract-mobile-card footer{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:15px;display:grid}.contract-mobile-card footer button{min-height:44px}.contract-empty-mobile{color:#899791;text-align:center;padding:50px 0}.contract-dialog-backdrop{place-items:end center;padding:12px}.contract-dialog{border-radius:16px;max-height:calc(100dvh - 24px);padding:18px}.contract-form-grid,.contract-rule-list{grid-template-columns:1fr}.contract-attachment-toolbar{flex-direction:column;align-items:stretch}.contract-attachment-tools{grid-template-columns:1fr 1fr;display:grid}.contract-upload-button,.contract-ai-button{min-height:44px;font-size:10px}.contract-attachment-list{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-form-grid .is-wide{grid-column:auto}.contract-form-grid input,.contract-form-grid select,.contract-form-field textarea,.contract-form-field .salary-date-trigger,.contract-rule-count select,.contract-rule-list input{min-height:46px;font-size:16px}.contract-dialog form>footer{margin:18px -18px -18px;padding:13px 18px 18px;bottom:-18px}.contract-dialog form>footer button{flex:1;min-height:44px}}