body{-webkit-tap-highlight-color:transparent}.search-bar{background:var(--warm-white);border-bottom:1px solid var(--cream-dark);padding:.75rem 1rem}.search-input{border:1.5px solid var(--cream-dark);background:var(--cream);border-radius:8px;width:100%;min-height:48px;padding:.75rem 1rem;font-size:1rem}.search-input:focus{border-color:var(--dusty-olive);outline:none;box-shadow:0 0 0 3px #7e918126}.customers-list{padding:.5rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.customer-card{background:var(--warm-white);border:1px solid #0000;border-radius:12px;margin-bottom:.625rem;padding:1rem}.customer-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.customer-name{color:var(--gunmetal);font-family:Crimson Pro,serif;font-size:1.25rem;font-weight:600}.customer-details{color:var(--text-muted);flex-direction:column;gap:.375rem;margin-bottom:.75rem;font-size:.9375rem;display:flex}.customer-details span{align-items:center;gap:.5rem;display:flex}.customer-actions{border-top:1px solid var(--cream-dark);gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.btn-action{border:1.5px solid var(--cream-dark);background:var(--cream);color:var(--text-primary);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.375rem;min-height:48px;padding:.625rem;font-size:.8125rem;font-weight:500;display:flex}.btn-action:active{background:var(--cream-dark)}.btn-action.primary{background:var(--dusty-olive-dark);color:#fff;border-color:var(--dusty-olive-dark)}.btn-action.danger{color:var(--error);border-color:#9a65654d}.btn-action.link{color:var(--info);border-color:#6a8a9a4d}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.form-hint{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.form-section{border-top:1px solid var(--cream-dark);margin-top:1rem;padding-top:1rem}.form-section-title{color:var(--gunmetal);margin-bottom:.75rem;font-weight:600}.info-box{color:#8a7340;background:#b89a5a1a;border:1px solid #b89a5a4d;border-radius:8px;padding:.75rem;font-size:.875rem}.contract-list{max-height:50vh;overflow-y:auto}.contract-item{background:var(--cream);border-radius:8px;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem;display:flex}.contract-item-info{flex:1}.contract-item-name{color:var(--gunmetal);font-weight:600}.contract-item-base{color:var(--text-muted);font-size:.75rem}.contract-price-input{text-align:right;border:1.5px solid var(--cream-dark);background:var(--warm-white);-webkit-appearance:none;-moz-appearance:textfield;border-radius:6px;width:90px;padding:.625rem;font-family:JetBrains Mono,monospace;font-size:1rem}.contract-price-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.contract-price-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.contract-price-input:focus{border-color:var(--dusty-olive);outline:none}.contract-item-unit{color:var(--text-muted);font-size:.8125rem}@media (width<=360px){.search-bar{padding:.5rem .75rem}.search-input{min-height:48px;padding:.625rem .875rem;font-size:16px}.customers-list{padding:.375rem}.customer-card{border-radius:10px;padding:.75rem}.customer-name{font-size:.9375rem}.customer-meta{font-size:.75rem}}@media (width<=480px){.form-row{flex-direction:column;gap:0}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media (width>=768px){.search-bar{max-width:1200px;margin:0 auto;padding:1rem 2rem}.customers-list{grid-template-columns:repeat(2,1fr);gap:.75rem;max-width:1200px;margin:0 auto;padding:1rem 2rem;display:grid}.customer-card{margin-bottom:0}}@media (width>=1024px){.customers-list{grid-template-columns:repeat(3,1fr)}}.category-pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.5rem;padding:.5rem 0 1rem;display:flex;overflow-x:auto}.category-pills::-webkit-scrollbar{display:none}.cat-pill{background:var(--cream);border:1.5px solid var(--cream-dark);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;transition:all .2s}.cat-pill:hover{border-color:var(--dusty-olive)}.cat-pill.active{background:var(--dusty-olive);border-color:var(--dusty-olive);color:#fff}.toggle-test-customers{color:var(--text-muted);cursor:pointer;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.875rem;display:flex}.toggle-test-customers input[type=checkbox]{width:18px;height:18px;accent-color:var(--dusty-olive);cursor:pointer}.badge-test{color:#8a7340;background:#b89a5a26;border:1px solid #b89a5a4d}.customer-badges{flex-wrap:wrap;gap:.375rem;display:flex}.customer-card.test-customer{background:repeating-linear-gradient(-45deg, var(--warm-white), var(--warm-white) 10px, #b89a5a0d 10px, #b89a5a0d 20px);border:1px dashed #b89a5a66}.checkbox-group{margin-bottom:.5rem}.checkbox-label{cursor:pointer;color:var(--text-primary);align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--dusty-olive);cursor:pointer}.due-badge{font-family:var(--font-mono);white-space:nowrap;border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.due-badge.is-due{color:var(--error);background:#9a65651a}.due-badge.is-advance{color:var(--success);background:#5d7a5f1f}.statement-modal{max-width:640px}.statement-party{color:var(--text-muted);font-size:.875rem}.statement-print-head{display:none}.statement-range{gap:.5rem;margin-bottom:.75rem;display:flex}.range-pill{border:1.5px solid var(--cream-dark);background:var(--cream);min-height:40px;color:var(--text-primary);cursor:pointer;border-radius:999px;flex:1;font-size:.8125rem;font-weight:500}.range-pill.active{background:var(--dusty-olive-dark);border-color:var(--dusty-olive-dark);color:#fff}.statement-dates{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.statement-dates label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.statement-dates input{border:1.5px solid var(--cream-dark);background:var(--cream);border-radius:8px;min-width:0;min-height:44px;padding:.5rem;font-size:.9375rem}.statement-summary{grid-template-columns:repeat(4,1fr);gap:.375rem;margin-bottom:1rem;display:grid}.summary-cell{background:var(--cream);border-radius:8px;flex-direction:column;gap:.125rem;min-width:0;padding:.5rem;display:flex}.summary-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.6875rem}.summary-value{font-family:var(--font-mono);color:var(--gunmetal);overflow-wrap:anywhere;font-size:.875rem;font-weight:600}.summary-cell.is-due{background:#9a65651a}.summary-cell.is-due .summary-value{color:var(--error)}.summary-cell.is-clear .summary-value{color:var(--success)}.statement-lines{overflow-x:auto}.statement-table{border-collapse:collapse;width:100%;font-size:.8125rem}.statement-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--cream);padding:.5rem .375rem;font-size:.6875rem;font-weight:600;position:sticky;top:0}.statement-table td{border-bottom:1px solid var(--cream-dark);vertical-align:top;padding:.5rem .375rem}.statement-table .num{text-align:right;font-family:var(--font-mono);white-space:nowrap}.statement-table td:first-child{white-space:nowrap}.statement-table tr.line-payment td{color:var(--success)}.statement-empty{text-align:center;color:var(--text-muted);padding:2rem 1rem}.statement-footer{gap:.5rem}.statement-footer .btn-modal{white-space:nowrap;flex:1;padding-left:.5rem;padding-right:.5rem;font-size:.875rem}.payment-modes{grid-template-columns:repeat(4,1fr);gap:.375rem;display:grid}.payment-modes label{border:1.5px solid var(--cream-dark);background:var(--cream);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.25rem;min-height:44px;font-size:.8125rem;display:flex}.payment-modes label:has(input:checked){border-color:var(--dusty-olive-dark);background:#7e918126;font-weight:600}@media (width<=480px){.statement-summary{grid-template-columns:repeat(2,1fr)}}@media print{body.printing-statement>:not(#statementModal){display:none!important}body.printing-statement #statementModal{background:0 0;display:block;position:static}body.printing-statement .statement-modal{max-width:none;box-shadow:none;max-height:none;overflow:visible;transform:none}body.printing-statement .modal-header,body.printing-statement .statement-range,body.printing-statement .statement-dates,body.printing-statement .statement-footer{display:none!important}body.printing-statement .statement-print-head{margin-bottom:1rem;font-size:.875rem;display:block}body.printing-statement .statement-print-firm{font-family:var(--font-heading);font-size:1.5rem;font-weight:600}body.printing-statement .modal-body{max-height:none;overflow:visible}body.printing-statement .statement-table th{position:static}}
