@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";#root{width:100%;min-height:100vh}.app-shell{display:grid;grid-template-columns:256px 1fr;min-height:100vh;background-color:var(--color-bg)}.sidebar{background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--gap-lg) var(--gap-md);display:flex;flex-direction:column;gap:var(--gap-lg)}.sidebar-brand{display:flex;align-items:center;gap:var(--gap-sm);padding:4px 4px 16px;border-bottom:1px solid var(--color-border)}.sidebar-brand-icon{font-size:1.8rem;line-height:1;flex-shrink:0}.sidebar-brand-name{font-size:.95rem;font-weight:700;color:var(--color-text);line-height:1.3}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-link{padding:0 12px;min-height:48px;border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text);font-size:1.05rem;font-weight:500;display:flex;align-items:center;gap:12px;transition:background-color .15s,color .15s;border-left:3px solid transparent}.sidebar-link:hover{background-color:var(--color-primary-light);color:var(--color-primary);text-decoration:none}.sidebar-link.active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600;border-left-color:var(--color-primary)}.sidebar-link-icon{font-size:1.2rem;line-height:1;width:24px;text-align:center;flex-shrink:0}.sidebar-link-label{flex:1}.app-main{display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.page-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:18px var(--gap-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);flex-shrink:0}.page-header-title{font-size:1.25rem;font-weight:700;color:var(--color-text);margin:0}.header-actions{display:flex;align-items:center;gap:var(--gap-sm)}.header-notifications-btn{position:relative;background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.header-notifications-btn:hover{background:var(--color-bg);color:var(--color-text);border-color:#b0bec5}.header-notifications-btn.has-alerts{color:var(--color-text);border-color:#b0bec5}.header-notifications-badge{position:absolute;top:-2px;right:-2px;background-color:#dc2626;color:#fff;font-size:.7rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--color-surface);line-height:1}.page-body{flex:1;overflow-y:auto;padding:var(--gap-lg)}.main-content{padding:var(--gap-lg);overflow-y:auto}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px}.section-header h2,.section-header h3{margin:0;min-width:0}.form-grid{display:grid;gap:var(--gap-md);width:100%;max-width:700px}.form-grid>*{min-width:0}.form-grid label{display:grid;gap:6px;text-align:left;font-weight:500;color:var(--color-text)}.form-grid input,.form-grid select,.form-grid textarea{padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1rem;min-height:44px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap-lg);margin-bottom:var(--gap-md);box-shadow:var(--shadow-card)}.form-actions{display:flex;gap:var(--gap-sm);align-items:center;flex-wrap:wrap}.ghost-btn{background:transparent;border:1.5px solid var(--color-border);color:var(--color-text);min-height:44px;font-family:inherit;font-size:1rem;font-weight:500;padding:10px 18px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s,border-color .15s}.ghost-btn:hover{background-color:var(--color-bg);border-color:#b0bec5}.small-btn{font-size:.9375rem;padding:9px 14px;min-height:40px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color .15s,border-color .15s;font-family:inherit;font-weight:500;white-space:nowrap}.small-btn:hover{background-color:var(--color-bg);border-color:#b0bec5}.small-btn.danger{color:var(--color-danger);border-color:var(--color-danger)}.small-btn.danger:hover{background-color:var(--color-danger-bg)}.link-btn{display:inline-flex;align-items:center;text-decoration:none}.order-cta-btn{font-size:1rem;font-weight:600;padding:10px 20px;min-height:44px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .18s;font-family:inherit;display:inline-flex;align-items:center;text-decoration:none}.order-cta-btn:hover{background-color:var(--color-primary-hover);color:#fff;text-decoration:none}.clients-table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);overflow:hidden}.clients-table th{background-color:var(--color-bg);color:var(--color-text-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:12px var(--gap-md);text-align:left;border-bottom:2px solid var(--color-border)}.clients-table td{border-bottom:1px solid var(--color-border);padding:14px var(--gap-md);text-align:left;color:var(--color-text);font-size:1rem}.clients-table tr:last-child td{border-bottom:none}.clients-table tbody tr:nth-child(2n){background-color:#fafbfd}.clients-table tbody tr:hover{background-color:var(--color-primary-light)}.table-actions{display:flex;gap:var(--gap-sm);align-items:center;flex-wrap:wrap}.data-table{width:100%;min-width:640px;border-collapse:collapse;background:var(--color-surface);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.data-table th{background-color:var(--color-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:12px 16px;text-align:left;border-bottom:2px solid var(--color-border);white-space:nowrap}.data-table th.numeric{text-align:right}.data-table td{border-bottom:1px solid var(--color-border);padding:14px 16px;text-align:left;color:var(--color-text);vertical-align:middle}.data-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:Inter,monospace}.data-table td.data-table-empty{text-align:center;color:var(--color-text-muted);padding:32px 16px;font-size:.9375rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:nth-child(2n){background-color:#fafbfd}.data-table tbody tr:hover{background-color:var(--color-primary-light)}.data-table-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;border-radius:var(--radius);-webkit-overflow-scrolling:touch}.client-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap-md);margin-bottom:var(--gap-md);box-shadow:var(--shadow-card)}.client-summary p{margin:4px 0;color:var(--color-text)}.alerts-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:50;padding:var(--gap-md);animation:am-fade-in .18s ease}@keyframes am-fade-in{0%{opacity:0}to{opacity:1}}.alerts-modal{width:min(960px,96vw);max-height:90vh;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--gap-lg);box-shadow:var(--shadow-modal);animation:am-slide-up .22s ease}@keyframes am-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.alerts-modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--gap-lg);gap:var(--gap-md)}.alerts-modal-title{font-size:1.35rem;font-weight:700;margin:0 0 4px}.alerts-modal-subtitle{color:var(--color-text-muted);font-size:.9375rem;margin:0}.alerts-close-btn{background:transparent;border:1.5px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-sm);min-height:36px;padding:6px 12px;font-size:1rem;cursor:pointer;flex-shrink:0;transition:background-color .15s,border-color .15s}.alerts-close-btn:hover{background:var(--color-bg);border-color:#b0bec5}.alerts-modal-body{display:flex;flex-direction:column;gap:var(--gap-md)}.alerts-modal-footer{display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap;margin-top:var(--gap-lg);padding-top:var(--gap-md);border-top:1px solid var(--color-border)}.alerts-snooze{display:flex;align-items:center;gap:var(--gap-sm);font-size:.9375rem;color:var(--color-text-muted);cursor:pointer;flex:1}.alerts-snooze input[type=checkbox]{width:18px;height:18px;min-height:unset;cursor:pointer;accent-color:var(--color-primary)}.alerts-close-main-btn,.alerts-open-payments-btn{min-height:44px;font-size:1rem;padding:10px 24px}.am-categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap-md)}@media (max-width: 800px){.am-categories-grid{grid-template-columns:1fr}}.am-category{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius);overflow:hidden;transition:border-color .18s,box-shadow .18s}.am-category--open{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb14}.am-category--empty{opacity:.75}.am-category-header{width:100%;background:transparent;border:none;padding:14px var(--gap-md);display:flex;align-items:center;gap:var(--gap-sm);cursor:pointer;min-height:unset;border-radius:0;text-align:left;transition:background-color .15s}.am-category-header:hover{background-color:var(--color-primary-light)}.am-category-header:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.am-category-icon{font-size:1.2rem;flex-shrink:0;line-height:1}.am-category-label{flex:1;font-weight:600;font-size:1rem;color:var(--color-text)}.am-category-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;font-size:.8rem;font-weight:700;background-color:var(--color-primary);color:#fff;flex-shrink:0}.am-category-badge--zero{background-color:var(--color-border);color:var(--color-text-muted)}.am-category-chevron{font-size:.7rem;color:var(--color-text-muted);flex-shrink:0;transition:transform .2s}.am-category-body{border-top:1px solid var(--color-border);padding:var(--gap-md);display:flex;flex-direction:column;gap:var(--gap-sm);animation:am-expand .18s ease}@keyframes am-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.am-empty{color:var(--color-text-muted);font-size:.9375rem;margin:0;text-align:center;padding:var(--gap-sm) 0}.am-list{display:flex;flex-direction:column;gap:var(--gap-sm)}.am-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--gap-md);display:flex;justify-content:space-between;align-items:center;gap:var(--gap-md);transition:box-shadow .15s}.am-item:hover{box-shadow:var(--shadow-card)}.am-item-body{flex:1;min-width:0}.am-item-title{margin:0 0 2px;font-weight:600;font-size:.9375rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.am-item-sub{margin:0 0 2px;font-size:.875rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.am-item-meta{margin:0;font-size:.8125rem;color:var(--color-text-muted)}.am-item-actions{display:flex;align-items:center;gap:var(--gap-sm);flex-shrink:0}.am-open-btn{font-size:.875rem;padding:7px 12px;min-height:36px}.am-show-more-btn{align-self:flex-start;background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary);font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);padding:6px 14px;min-height:unset;cursor:pointer;transition:background-color .15s}.am-show-more-btn:hover{background-color:var(--color-primary-light)}.am-backup{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius);padding:var(--gap-md)}.am-backup-header{display:flex;align-items:center;gap:var(--gap-sm);margin-bottom:var(--gap-sm)}.am-backup-title{font-weight:600;font-size:1rem;color:var(--color-text);flex:1}.income-cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-md);margin-bottom:var(--gap-md)}.income-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-md);margin-bottom:var(--gap-md)}.income-kpi-value{font-size:1.5rem;font-weight:700;margin:var(--gap-sm) 0 0;color:var(--color-text)}.income-top-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap-sm)}.income-top-list li{display:flex;justify-content:space-between;gap:var(--gap-sm);color:var(--color-text);font-size:.9375rem}.income-chart-wrap{width:100%;height:320px}.income-year-selector{display:flex;align-items:center;gap:var(--gap-sm)}.income-year-selector select{min-width:110px}@media (max-width: 1100px){.income-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.income-details-grid{grid-template-columns:1fr}}@media (max-width: 768px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);padding:var(--gap-md);gap:var(--gap-md)}.sidebar-nav{flex-direction:row;flex-wrap:wrap}.sidebar-link{min-height:40px;padding:0 10px}.page-body{padding:var(--gap-md)}.page-header{padding:14px var(--gap-md)}.income-cards-grid{grid-template-columns:1fr 1fr}}.form-field{display:flex;flex-direction:column;gap:6px}.form-field-label{font-size:1rem;font-weight:600;color:var(--color-text);line-height:1.3}.form-field-required{color:var(--color-danger);margin-left:2px}.form-field-control input,.form-field-control select,.form-field-control textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px;min-height:48px;transition:border-color .15s,box-shadow .15s}.form-field-control input:focus,.form-field-control select:focus,.form-field-control textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.form-field-helper{font-size:.875rem;color:var(--color-text-muted);margin:0}.form-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--gap-lg);box-shadow:var(--shadow-card)}.form-section-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:var(--gap-md) var(--gap-lg)}.form-section-title{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0}.form-section-description{font-size:.9rem;color:var(--color-text-muted);margin:4px 0 0}.form-section-body{padding:var(--gap-lg);display:flex;flex-direction:column;gap:var(--gap-md)}.maintenance-danger-zone{border:2px solid #dc2626;box-shadow:0 14px 30px #dc26262e}.maintenance-danger-zone .form-section-header{background:linear-gradient(110deg,#7f1d1d,#b91c1c 45%,#f59e0b);border-bottom:2px solid #991b1b}.maintenance-danger-zone .form-section-title,.maintenance-danger-zone .form-section-description{color:#fff}.maintenance-danger-callout{display:flex;align-items:center;gap:var(--gap-sm);border:2px solid #f59e0b;background:linear-gradient(120deg,#fff7ed,#fef3c7);border-radius:var(--radius-sm);padding:14px 16px}.maintenance-danger-icon{font-size:1.6rem;line-height:1}.maintenance-danger-text{margin:0;font-size:1.25rem;font-weight:800;color:#7f1d1d}.maintenance-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-md)}.maintenance-card{border:2px solid #fca5a5;border-radius:var(--radius-sm);padding:var(--gap-md);background:linear-gradient(180deg,#fff,#fff5f5)}.maintenance-card-btn{width:100%;min-height:64px;font-size:1rem;font-weight:700;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:transform .12s ease,filter .18s ease}.maintenance-card-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}.maintenance-card-btn:disabled{opacity:.65;cursor:not-allowed}.maintenance-card-btn-safe{background:linear-gradient(135deg,#0f766e,#0d9488)}.maintenance-card-btn-danger{background:linear-gradient(135deg,#991b1b,#dc2626)}.maintenance-card-btn-advanced{background:linear-gradient(135deg,#92400e,#d97706)}.maintenance-card-copy{margin:10px 0 0;line-height:1.45}.maintenance-microcopy{border:1px dashed #dc2626;border-radius:var(--radius-sm);background:#fef2f2;padding:12px 14px}.maintenance-microcopy p{margin:0;color:#7f1d1d}.maintenance-microcopy p+p{margin-top:6px}.maintenance-feedback{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-sm);padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.maintenance-feedback-text{margin:0;font-weight:600}.maintenance-feedback-success{border-color:#86efac;background:#f0fdf4}.maintenance-feedback-info{border-color:#93c5fd;background:#eff6ff}.maintenance-feedback-error{border-color:#fca5a5;background:#fef2f2}.line-items-editor{display:flex;flex-direction:column;gap:var(--gap-md)}.line-items-toolbar{display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap}.line-items-add-btn{min-height:44px;font-size:1rem;font-weight:600;padding:10px 20px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .18s}.line-items-add-btn:hover{background-color:var(--color-primary-hover)}.line-items-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.line-items-table{width:100%;border-collapse:collapse;background:var(--color-surface);min-width:600px}.line-items-table th{background-color:var(--color-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;text-align:left;border-bottom:2px solid var(--color-border);white-space:nowrap}.line-items-table th.col-qty,.line-items-table th.col-price,.line-items-table th.col-total,.line-items-table td.col-qty,.line-items-table td.col-price,.line-items-table td.col-total{text-align:right;width:100px}.line-items-table th.col-actions,.line-items-table td.col-actions{width:48px;text-align:center}.line-items-table th.col-desc,.line-items-table td.col-desc{width:auto;min-width:200px}.line-items-row{border-bottom:1px solid var(--color-border)}.line-items-row:last-child{border-bottom:none}.line-items-row:nth-child(2n){background-color:#fafbfd}.line-items-row td{padding:8px 10px;vertical-align:middle}.line-input{font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 10px;min-height:44px;width:100%;transition:border-color .15s,box-shadow .15s}.line-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.line-input-qty,.line-input-price{text-align:right;width:90px}.line-input-desc{width:100%;min-width:180px}.line-total{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-text);font-size:1rem}.line-remove-btn{background:transparent;border:none;color:var(--color-danger);font-size:1.1rem;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);min-height:36px;transition:background-color .15s;font-family:inherit}.line-remove-btn:hover{background-color:var(--color-danger-bg)}.line-items-empty{text-align:center;color:var(--color-text-muted);padding:28px 16px;font-size:.9375rem}.line-items-totals{display:flex;flex-direction:column;gap:4px;align-self:flex-end;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap-md) var(--gap-lg);min-width:260px;box-shadow:var(--shadow-card)}.totals-row{display:flex;justify-content:space-between;gap:var(--gap-lg);font-size:1rem;color:var(--color-text)}.totals-row--grand{border-top:2px solid var(--color-border);padding-top:8px;margin-top:4px;font-size:1.2rem;font-weight:700}.totals-label{color:var(--color-text-muted);font-weight:500}.totals-row--grand .totals-label,.totals-row--grand .totals-value{color:var(--color-text)}.totals-value{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;font-size:.8125rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;line-height:1.4}.status-badge-icon{font-size:.875rem}.status-badge--success{background-color:#dcfce7;color:#166534}.status-badge--warning{background-color:#fef9c3;color:#854d0e}.status-badge--danger{background-color:#fee2e2;color:#991b1b}.status-badge--info{background-color:#dbeafe;color:#1e40af}.status-badge--neutral{background-color:#f3f4f6;color:#374151}.payments-summary-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px}.invoice-payments-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:28px 16px;z-index:1100;overflow-y:auto}.invoice-payments-modal{background:var(--color-surface);border-radius:var(--radius);box-shadow:0 20px 60px #00000040;width:100%;max-width:980px;display:flex;flex-direction:column;max-height:calc(100vh - 56px);overflow:hidden}.invoice-payments-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 14px;border-bottom:1px solid var(--color-border)}.invoice-payments-modal-title{margin:0;font-size:1.25rem}.invoice-payments-modal-subtitle{margin:4px 0 0;color:var(--color-text-muted);font-size:.95rem}.invoice-payments-modal-header-actions{display:flex;align-items:center;gap:8px}.invoice-payments-modal-body{overflow-y:auto;padding:16px 24px 20px}.invoice-payments-modal-footer{border-top:1px solid var(--color-border);padding:12px 24px;display:flex;justify-content:flex-end}.payments-simple-list{display:grid;gap:12px}.payments-simple-card p{margin:6px 0;font-size:1rem}.payments-client-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.payments-client-card{display:grid;gap:10px}.payments-client-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.payments-client-card-header h3{margin:0;font-size:1.15rem}.payments-client-card p{margin:0}.payments-client-card-kpi{font-size:1.05rem}.payments-client-overdue{color:#991b1b;font-weight:700}.invoices-control-filters{display:grid;gap:12px;margin-bottom:var(--gap-md)}.invoices-control-filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.invoices-control-filters label{display:grid;gap:6px;font-size:1rem}.invoices-control-filters input,.invoices-control-filters select{font-size:1rem;padding:10px}.invoices-control-totals{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:var(--gap-md)}.invoices-control-totals p{margin:0}.invoices-control-groups{display:grid;gap:12px}.jobs-control-filters{display:grid;gap:12px;margin-bottom:var(--gap-md)}.jobs-control-filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.jobs-control-filters label{display:grid;gap:6px;font-size:1rem}.jobs-control-filters input,.jobs-control-filters select{font-size:1rem;padding:10px}.jobs-control-stage-cell{display:grid;gap:2px;min-width:0;border-radius:var(--radius-sm);padding:6px 8px;border:1px solid transparent}.jobs-control-stage-cell--complete{background:var(--color-success-bg);border-color:#16a34a40}.jobs-control-stage-cell--pending{background:var(--color-warning-bg);border-color:#d977064d}.jobs-control-stage-cell--none{background:#f8fafc;border-color:var(--color-border)}.jobs-control-stage-ref{font-size:.82rem;line-height:1.3}.client-payments-modal{max-width:1040px}.client-payments-jobs-grid{display:grid;gap:12px}.client-payments-job-card{display:grid;gap:8px}.client-payments-job-card p{margin:0}.client-payments-invoices-list{display:grid;gap:8px;margin-top:4px}.client-payments-invoice-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.client-payments-invoice-title{margin:0;font-weight:700}.register-payment-overwrite-alert{border:2px solid #B91C1C;background:#fef2f2;color:#7f1d1d;border-radius:var(--radius-sm);padding:14px;margin-bottom:14px}.register-payment-overwrite-alert-title{margin:0 0 6px;font-size:1.1rem;font-weight:800}.register-payment-overwrite-alert-text{margin:0 0 4px;font-size:1rem;font-weight:700}.register-payment-overwrite-alert-meta{margin:0;font-size:.9rem}.register-payment-overwrite-confirmation{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px;background:#fffbeb}.register-payment-overwrite-checkbox{display:flex;align-items:center;gap:8px;font-weight:700}@media (max-width: 880px){.payments-client-cards-grid{grid-template-columns:1fr}.client-payments-invoice-row{flex-direction:column;align-items:flex-start}.maintenance-cards-grid{grid-template-columns:1fr}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10000}.confirm-modal{width:100%;max-width:520px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-modal);padding:20px}.confirm-modal h3{margin:0 0 8px;font-size:1.2rem}.confirm-modal p{margin:0 0 18px;font-size:1rem}.restore-danger-modal{max-width:680px;border:2px solid #dc2626}.restore-danger-list{margin:0 0 16px;padding-left:20px;display:grid;gap:6px;color:#7f1d1d;font-weight:500}.restore-danger-check{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px}.restore-danger-check input{margin-top:2px}.restore-danger-input-wrap{display:grid;gap:8px;margin-bottom:14px}.restore-danger-input-wrap input{width:100%;min-height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;font-size:1rem}.restore-danger-input-wrap input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc262626}.merge-backup-modal{max-width:620px;border:2px solid #d97706}.merge-backup-copy{margin:0 0 10px}.merge-backup-warning{margin:0 0 14px;color:#9a3412;font-weight:700}.merge-backup-check{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px}.merge-backup-check input{margin-top:2px}.toast-host{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:20vh;gap:16px;z-index:9999;pointer-events:none}.toast-item{display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:12px;border:1px solid var(--color-border);box-shadow:0 10px 30px #0000001f;padding:16px 20px;font-size:1.05rem;background:var(--color-surface);color:var(--color-text);width:min(90vw,420px);pointer-events:auto;animation:toast-drop-in .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes toast-drop-in{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-main{display:flex;align-items:flex-start;gap:10px;min-width:0}.toast-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;font-size:.8rem;font-weight:700;flex-shrink:0}.toast-content{display:grid;gap:2px;min-width:0}.toast-title{line-height:1.25}.toast-details{font-size:.92rem;line-height:1.2;opacity:.95;word-break:break-word}.toast-success{border-left:4px solid #16a34a}.toast-success .toast-icon{background:#16a34a26;color:#16a34a}.toast-error{border-left:4px solid #dc2626}.toast-error .toast-icon{background:#dc262626;color:#dc2626}.toast-info{border-left:4px solid #2563eb}.toast-info .toast-icon{background:#2563eb26;color:#2563eb}.toast-close{border:none;background:transparent;border-radius:6px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);line-height:1;font-weight:700;flex-shrink:0;cursor:pointer;transition:background-color .15s,color .15s}.toast-close:hover{background:var(--color-bg);color:var(--color-text)}.toast-info .toast-close{background:#1e40af14}.doc-status-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.quick-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid var(--color-border);margin-top:12px}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--color-border)}.tab-btn{font-family:inherit;font-size:.9375rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:10px 18px;cursor:pointer;transition:color .15s,border-color .15s;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tab-btn:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.tab-btn.active{color:var(--color-primary);font-weight:700;border-bottom-color:var(--color-primary)}input[type=search]{font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;min-height:44px;transition:border-color .15s,box-shadow .15s}input[type=search]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.expandable-section-title-row,.expandable-section-title-row h3{min-width:0}.expandable-section-header-action{display:flex;flex-wrap:wrap;gap:8px}.responsive-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.responsive-table-wrap>.clients-table,.responsive-table-wrap>.data-table{min-width:720px}.job-detail-page .responsive-table-wrap--job-order-files>.clients-table{min-width:640px}.job-detail-page .responsive-table-wrap--job-delivery-notes>.clients-table{min-width:1120px}.job-detail-page .responsive-table-wrap--job-documents>.clients-table{min-width:760px}.job-detail-page .responsive-table-wrap--job-costs>.clients-table{min-width:1180px}.delivery-note-editor-page .responsive-table-wrap--delivery-history>.clients-table{min-width:760px}.delivery-note-editor-page .responsive-table-wrap--delivery-pending>.clients-table{min-width:1120px}.invoices-control-page .invoices-control-table-wrap,.jobs-control-page .data-table-scroll,.invoice-payments-panel .invoice-payments-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.invoices-control-page .invoices-control-table-wrap .data-table{min-width:1260px}.jobs-control-page .data-table{min-width:1180px}.invoice-payments-panel .invoice-payments-table-wrap--plans .data-table{min-width:960px}.invoice-payments-panel .invoice-payments-table-wrap--received .data-table{min-width:760px}.invoice-accept-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-plan-draft-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.edit-payment-plan-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-preview-title{white-space:normal;line-height:1.35;word-break:break-word}.confirm-modal{max-height:calc(100vh - 32px);overflow-y:auto}@media (max-width: 1024px){.invoices-control-page .invoices-control-filters-grid,.jobs-control-page .jobs-control-filters-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoices-control-page .invoices-control-export-actions .btn{white-space:normal;text-align:center}}@media (max-width: 768px){.editor-page-header{align-items:stretch}.editor-page-header>*,.editor-primary-actions>*{width:100%}.editor-primary-actions,.line-items-toolbar{align-items:stretch}.line-items-toolbar>*{width:100%}.line-items-totals{align-self:stretch;min-width:0}.job-detail-page .job-detail-nav-actions{width:100%;align-items:stretch}.job-detail-page .job-detail-nav-actions>*{width:100%;justify-content:center}.job-detail-page .job-detail-order-number-row{flex-direction:column;align-items:stretch!important}.job-detail-page .job-detail-order-number-row input{max-width:none!important}.delivery-note-editor-page .delivery-note-order-preview{flex-wrap:wrap}.delivery-note-editor-page .delivery-note-top-actions,.delivery-note-editor-page .delivery-note-signed-actions,.delivery-note-editor-page .delivery-note-progress-header-actions,.invoices-control-page .invoices-control-toggle-actions,.invoices-control-page .invoices-control-export-actions{align-items:stretch}.delivery-note-editor-page .delivery-note-top-actions>*,.delivery-note-editor-page .delivery-note-signed-actions>*,.delivery-note-editor-page .delivery-note-progress-header-actions>*,.invoices-control-page .invoices-control-toggle-actions>*,.invoices-control-page .invoices-control-export-actions>*{width:100%}.delivery-note-editor-page .delivery-note-progress-header{align-items:flex-start}.invoices-control-page .invoices-control-filters-grid,.jobs-control-page .jobs-control-filters-grid{grid-template-columns:1fr}.invoices-control-page .invoices-control-totals{display:grid;grid-template-columns:1fr;gap:8px}.invoices-control-page .invoices-control-table-wrap .data-table{min-width:980px}.jobs-control-page .data-table{min-width:960px}.invoice-payments-modal-overlay{padding:14px 10px}.invoice-payments-modal{max-height:calc(100vh - 20px)}.invoice-payments-modal-header{padding:14px 14px 10px;flex-wrap:wrap}.invoice-payments-modal-body{padding:12px 14px 14px}.invoice-payments-modal-footer{padding:10px 14px;flex-wrap:wrap;gap:8px}.invoice-payments-modal-footer>*{width:100%}.invoice-payments-panel .section-header{align-items:stretch}.invoice-payments-panel .section-header>*{width:100%}.invoice-accept-payment-grid,.payment-plan-draft-grid,.edit-payment-plan-main-grid{grid-template-columns:1fr}.expandable-section-header-action{width:100%}.expandable-section-header-action>*{width:100%}.document-preview-overlay{padding:8px!important}.document-preview-modal{width:100%!important;max-width:100%!important;max-height:calc(100vh - 16px)!important}.document-preview-header{align-items:flex-start!important}.document-preview-content{min-height:50vh!important}.document-preview-actions>*{width:100%}}.login-page{min-height:100vh;display:grid;place-items:center;padding:clamp(16px,3vw,40px)}.login-card{width:min(100%,420px);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:clamp(16px,3vw,24px);box-shadow:var(--shadow-card)}.login-card .btn{width:100%}.clients-page,.client-detail-page,.company-page,.payments-page,.income-page{min-width:0}.clients-search-wrap{width:min(100%,400px)}.client-jobs-toolbar{display:flex;align-items:center;gap:var(--gap-md);flex-wrap:wrap;min-width:0}.client-jobs-search{width:min(100%,320px)}.client-jobs-status{min-width:220px}.payments-completed-filters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payments-simple-search-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.payments-client-search{width:min(100%,420px)}.payments-simple-card,.payments-client-card,.income-cards-grid .form-card,.income-details-grid .form-card,.maintenance-card{min-width:0}.payments-simple-card h3,.payments-simple-card p,.payments-client-card h3,.payments-client-card p,.income-top-list li{overflow-wrap:anywhere}.company-page .status-msg{min-width:0;overflow-wrap:anywhere}.company-page .maintenance-feedback{flex-wrap:wrap;justify-content:flex-start}.company-page .maintenance-feedback .small-btn{white-space:normal}.income-page .income-year-selector{flex-wrap:wrap}.income-page .income-chart-wrap{min-width:0}@media (max-width: 1024px){.company-page .form-section-body,.payments-page .form-card,.income-page .form-card{padding:var(--gap-md)}.income-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.tabs{overflow-x:auto;overflow-y:hidden;padding-bottom:2px}.tab-btn{flex:0 0 auto}.data-table{min-width:560px}.client-summary{padding:var(--gap-sm) var(--gap-md)}.client-jobs-toolbar{width:100%;gap:var(--gap-sm)}.client-jobs-search,.client-jobs-status,.clients-search-wrap,.payments-client-search{width:100%;min-width:0}.payments-completed-filters-grid,.payments-simple-search-row{grid-template-columns:1fr}.payments-page .form-actions .btn,.payments-page .form-actions .ghost-btn,.payments-page .form-actions .small-btn,.client-detail-page .form-actions .btn,.client-detail-page .form-actions .ghost-btn,.clients-page .form-actions .btn,.clients-page .form-actions .ghost-btn,.company-page .form-actions .btn,.company-page .form-actions .ghost-btn{flex:1 1 100%;width:100%}.company-page .form-actions .status-msg{width:100%}.income-cards-grid,.payments-client-cards-grid,.client-payments-jobs-grid,.maintenance-cards-grid{grid-template-columns:1fr}.income-kpi-value{font-size:1.3rem}.invoice-payments-modal-overlay{align-items:stretch;padding:8px}.invoice-payments-modal{max-height:calc(100vh - 16px)}.invoice-payments-modal-header,.invoice-payments-modal-body,.invoice-payments-modal-footer{padding-left:12px;padding-right:12px}.invoice-payments-modal-header{flex-direction:column;align-items:stretch;gap:10px}.invoice-payments-modal-header-actions{justify-content:space-between;width:100%;flex-wrap:wrap}.invoice-payments-modal-footer{justify-content:stretch}.invoice-payments-modal-footer .btn{width:100%}}@media (max-width: 480px){.page-body,.login-page{padding:12px}.login-card{padding:14px}.data-table{min-width:520px}.form-card,.form-section-body,.form-section-header{padding-left:12px;padding-right:12px}.income-year-selector,.income-year-selector select{width:100%}}:root{--color-bg: #F5F7FA;--color-surface: #FFFFFF;--color-border: #D1D9E0;--color-text: #1A202C;--color-text-muted: #64748B;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-light: #EFF6FF;--color-success: #16A34A;--color-success-bg: #F0FDF4;--color-warning: #D97706;--color-warning-bg: #FFFBEB;--color-danger: #DC2626;--color-danger-bg: #FFF1F1;--color-info: #0284C7;--color-info-bg: #F0F9FF;--gap-xs: 4px;--gap-sm: 8px;--gap-md: 16px;--gap-lg: 28px;--gap-xl: 40px;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .07), 0 4px 12px rgba(0, 0, 0, .05);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .14);font-family:Inter,system-ui,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-bg);color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}h1{font-size:1.5rem;font-weight:700;line-height:1.3;margin:0 0 var(--gap-md);color:var(--color-text)}h2{font-size:1.25rem;font-weight:600;line-height:1.35;margin:0 0 var(--gap-md);color:var(--color-text)}h3{font-size:1.125rem;font-weight:600;line-height:1.4;margin:0 0 var(--gap-sm);color:var(--color-text)}h4{font-size:1rem;font-weight:600;margin:0 0 var(--gap-sm);color:var(--color-text)}p{margin:0 0 var(--gap-sm);line-height:1.6}a{color:var(--color-primary);text-decoration:none;font-weight:500}a:hover{color:var(--color-primary-hover);text-decoration:underline}.page{padding:var(--gap-lg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--gap-lg);box-shadow:var(--shadow-card)}button{font-family:inherit;font-size:1rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;padding:10px 18px;min-height:44px;cursor:pointer;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-xs);white-space:nowrap}button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.btn{font-family:inherit;font-size:1rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;padding:10px 18px;min-height:44px;cursor:pointer;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-xs);white-space:nowrap;text-decoration:none}.btn:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.btn:hover{text-decoration:none;color:inherit}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background-color:var(--color-bg);border-color:#b0bec5;color:var(--color-text)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover{background-color:#b91c1c;border-color:#b91c1c;color:#fff}.btn-pdf{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-pdf:hover{background-color:#b91c1c;border-color:#b91c1c;color:#fff}.btn-pdf:disabled{background-color:#9ca3af;border-color:#9ca3af;color:#fff;cursor:not-allowed}.btn-excel{background-color:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-excel:hover{background-color:#15803d;border-color:#15803d;color:#fff}.btn-excel:disabled{background-color:#9ca3af;border-color:#9ca3af;color:#fff;cursor:not-allowed}.btn-icon-only{width:36px;height:36px;min-height:36px;padding:0;border-radius:50%}.label{display:block;font-size:.9375rem;font-weight:500;color:var(--color-text);margin-bottom:var(--gap-xs)}.input,input[type=text],input[type=number],input[type=email],input[type=date],input[type=tel],input[type=search],select,textarea{font-family:inherit;font-size:1rem;color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;min-height:44px;width:100%;transition:border-color .15s,box-shadow .15s;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.input:focus,input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=date]:focus,input[type=tel]:focus,input[type=search]:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.helper-text{font-size:.875rem;color:var(--color-text-muted);margin-top:var(--gap-xs)}.badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:.8125rem;font-weight:600;border-radius:20px;line-height:1.4;white-space:nowrap}.badge-success{background-color:var(--color-success-bg);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info)}.muted{color:var(--color-text-muted);font-size:.9375rem}.status-msg{color:var(--color-success);font-weight:500}.error-msg{color:var(--color-danger);font-weight:500}
