:root{--primary-color: #3498db;--primary-color-hover: #2980b9;--background-color: #eaf5fc;--card-background: #f8f9fa;--text-color: #333333;--border-color: #e0e0e0;--error-color: #e74c3c;--success-color: #2ecc71;--font-family: "Inter", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--background-color)}html,body{height:100%}body{font-family:var(--font-family);color:var(--text-color);line-height:1.6}#app{max-width:800px;margin:2rem auto;padding:1rem}#app.hidden{display:none}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--background-color)}.login-container.hidden{display:none}.login-card{background-color:var(--card-background);border-radius:12px;padding:3rem;border:1px solid var(--border-color);box-shadow:0 4px 20px #0000001a;text-align:center;max-width:400px;width:90%}.login-card h1{font-size:2rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem}.login-card p{color:#666;margin-bottom:2rem}.login-card .form-group{margin-bottom:1.5rem;text-align:left}.login-card input[type=password]{width:100%;padding:.8rem 1rem;font-size:1rem;border:1px solid var(--border-color);border-radius:6px}.login-card button[type=submit]{width:100%;padding:.8rem 1rem;font-size:1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s}.login-card button[type=submit]:hover{background-color:var(--primary-color-hover)}.login-card .error-message{color:var(--error-color);margin-top:1rem;font-size:.9rem}.login-card .error-message.hidden{display:none}.header-row{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap}.logout-btn{display:flex;align-items:center;gap:.3rem;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;padding:.4rem .8rem;font-size:.85rem;color:#666;cursor:pointer;transition:all .2s}.logout-btn:hover{background-color:var(--error-color);color:#fff;border-color:var(--error-color)}.logout-btn svg{fill:currentColor}header{text-align:center;margin-bottom:2rem}header h1{font-size:2.5rem;font-weight:700;color:var(--primary-color)}header p{font-size:1.1rem;color:#666}.card{background-color:var(--card-background);border-radius:8px;padding:2rem;margin-bottom:1.5rem;border:1px solid var(--border-color)}.card h2{margin-bottom:1.5rem;border-bottom:2px solid var(--primary-color);padding-bottom:.5rem;display:inline-block}.card h3.form-section-header{margin-top:2rem;margin-bottom:1rem;font-size:1.2rem;color:var(--text-color);border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.card h3.form-section-header:first-of-type{margin-top:0}.card-toggle-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;border-bottom:none!important;display:flex!important}.toggle-icon{transition:transform .3s ease-in-out;flex-shrink:0;margin-left:1rem;transform:rotate(0)}.collapsible-content{overflow:hidden;transition:max-height .35s ease-in-out}.is-collapsed .collapsible-content{max-height:0}.is-collapsed .card-toggle-header{margin-bottom:0}.is-collapsed .toggle-icon{transform:rotate(-90deg)}#drop-zone{border:2px dashed var(--border-color);border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:background-color .3s ease,border-color .3s ease;background-color:#fff}#drop-zone:hover,#drop-zone.dragover{background-color:#e0eef8;border-color:var(--primary-color)}#file-label{display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:pointer}#file-label svg{color:var(--primary-color)}#file-label span{font-size:1.1rem;font-weight:500}#file-name{color:#555;font-weight:700}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{font-weight:500;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}input[type=text],input[type=number],select{padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;font-family:var(--font-family);transition:border-color .3s ease,box-shadow .3s ease;width:100%;background-color:#fff;color:var(--text-color)}input[type=text]:focus,input[type=number]:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3498db33}.filename-settings{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.filename-settings .form-group{margin-bottom:0}.hidden{display:none!important}.summary-details p{font-size:1.1rem;margin-bottom:.5rem}.summary-details strong{color:var(--primary-color);font-weight:700}.search-controls{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:flex-end;margin-bottom:1rem}.search-controls .form-group{margin-bottom:0}#search-btn{background-color:#f0f0f0;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .3s ease;display:inline-flex;align-items:center;gap:.5rem}#search-btn:hover{background-color:#e0e0e0}#search-results-container{margin-top:1rem;padding:1rem;background-color:#fff;border-radius:4px;border:1px solid var(--border-color);min-height:50px;transition:all .3s ease}#search-results-container p{margin:0}#results-container{display:flex;flex-direction:column;gap:1.5rem}.success-message{text-align:center;padding:2rem;font-size:1.1rem;color:var(--success-color);background-color:#f0fff8;border-radius:6px;border:1px solid var(--success-color)}.result-item{padding:1.5rem;border:1px solid var(--border-color);border-radius:6px;background-color:#fff;transition:opacity .3s ease,transform .3s ease,max-height .3s ease;overflow:hidden}.result-item.removing{opacity:0;transform:scale(.95);max-height:0!important;padding-top:0;padding-bottom:0;border-top:0;border-bottom:0;margin-bottom:-1.5rem}.result-item.invalid-record{border-left:4px solid var(--error-color);background-color:#fff9f8}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.record-header strong{color:var(--primary-color);flex-shrink:0;margin-right:auto}.record-actions{display:flex;align-items:center;gap:1rem;flex-shrink:0}.status-pills-container{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.status{font-size:.8rem;font-weight:700;padding:.25em .75em;border-radius:999px;white-space:nowrap}.status-valid{background-color:#eafaf1;color:#27ae60}.status-invalid{background-color:#fbecec;color:#c0392b}.remove-btn{background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem;color:#555;transition:background-color .2s ease,color .2s ease,border-color .2s ease;font-size:.85rem}.remove-btn:hover{background-color:var(--error-color);color:#fff;border-color:var(--error-color)}.result-item .iban-details{display:flex;flex-direction:column;gap:.75rem}.iban-details p{word-break:break-all}.current-iban{font-size:.9rem;color:#555;margin-bottom:.25rem;word-break:break-all}.iban-details .error-text{color:var(--error-color);font-weight:500}.iban-details .form-group{margin-bottom:0}.iban-details input{font-family:Courier New,Courier,monospace}.iban-input.invalid{border-color:var(--error-color);box-shadow:0 0 0 3px #e74c3c33}.iban-input.valid{border-color:var(--success-color);box-shadow:0 0 0 3px #2ecc7133}.iban-generator{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.generator-title{font-weight:500;margin-bottom:.75rem;font-size:.9rem;color:#555}.iban-generator-inputs{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}.generate-btn{background-color:#f0f0f0;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .3s ease;white-space:nowrap}.generate-btn:hover{background-color:#e0e0e0}#actions-section{text-align:center;margin-top:1rem}.single-debit-form .form-group{margin-bottom:.75rem}.customer-controls{display:flex;gap:.5rem;align-items:center}.customer-controls select{flex-grow:1}#delete-customer-btn,#delete-bulk-transfer-btn,#delete-bulk-debit-btn,#modal-delete-beneficiary-btn{background-color:#f8f9fa;border:1px solid var(--border-color);padding:.75rem;border-radius:4px;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease;flex-shrink:0}#delete-customer-btn:hover,#delete-bulk-transfer-btn:hover,#delete-bulk-debit-btn:hover,#modal-delete-beneficiary-btn:hover{background-color:var(--error-color);color:#fff;border-color:var(--error-color)}#delete-customer-btn:disabled,#delete-bulk-transfer-btn:disabled,#delete-bulk-debit-btn:disabled,#modal-delete-beneficiary-btn:disabled{background-color:#e9ecef;border-color:#dee2e6;color:#adb5bd;cursor:not-allowed}.input-with-button{display:flex;gap:.5rem;align-items:center}.input-with-button input{flex-grow:1}.template-section{background-color:#f8f9fa;border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:.5rem}.template-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.template-label{font-weight:600;color:var(--text-color)}.template-status{color:#6c757d;font-style:italic}.template-status.loaded{color:var(--primary-color);font-style:normal;font-weight:500}.template-controls{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.template-controls select{flex:1}.template-actions{display:flex;gap:.5rem;flex-wrap:wrap}.template-save-btn,.template-save-as-btn{flex:1;min-width:140px;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background-color .2s ease,border-color .2s ease}.template-save-btn{background-color:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.template-save-btn:hover:not(:disabled){background-color:#c8e6c9;border-color:#81c784}.template-save-btn:disabled{background-color:#e9ecef;border-color:#dee2e6;color:#adb5bd;cursor:not-allowed}.template-save-as-btn{background-color:#e3f2fd;border:1px solid #90caf9;color:#1565c0}.template-save-as-btn:hover{background-color:#bbdefb;border-color:#64b5f6}.modal-divider{border:none;border-top:1px solid var(--border-color);margin:1rem 0}#save-customer-btn,.save-beneficiary-btn{background-color:#f0f0f0;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .3s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem}#save-customer-btn:hover,.save-beneficiary-btn:hover{background-color:#e0e0e0}#download-btn,#generate-single-btn,#generate-bulk-btn,#modal-save-btn{background-color:var(--primary-color);color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .2s ease;display:inline-flex;align-items:center;gap:.5rem}#modal-save-btn{font-size:1rem;padding:.75rem 1.5rem}#generate-single-btn{margin-top:1.5rem;align-self:flex-start}.card-actions{display:flex;gap:1rem;align-items:center;margin-top:1.5rem}#add-new-transfer-btn{align-self:flex-start}.secondary-btn{background-color:#f0f0f0;color:var(--text-color);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease;display:inline-flex;align-items:center;gap:.5rem}.secondary-btn:hover{background-color:#e0e0e0}.primary-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer}.invoice-archive-description{color:#666;margin-bottom:1rem}.invoice-upload-box{background:#fff;border:2px dashed var(--border-color);border-radius:8px;padding:1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}#invoice-upload-summary{color:#666;font-size:.9rem}.invoice-upload-progress{margin-top:1rem}.invoice-progress-track{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-bottom:.4rem}#invoice-progress-bar{height:100%;width:0;background:var(--success-color);transition:width .2s ease}#invoice-progress-text{font-size:.85rem;color:#666}.invoice-search-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;margin:1.5rem 0 .75rem}.invoice-search-row input{min-width:0}.invoice-results-summary{color:#666;font-size:.9rem;margin-bottom:.75rem}.invoice-results{display:flex;flex-direction:column;gap:.6rem}.invoice-result{background:#fff;border:1px solid var(--border-color);border-radius:6px;padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:border-color .15s ease,box-shadow .15s ease}.invoice-result:hover{border-color:var(--primary-color);box-shadow:0 3px 12px #3498db24}.invoice-result-info{min-width:0}.invoice-result-name{font-weight:600;overflow-wrap:anywhere}.invoice-result-meta{color:#777;font-size:.82rem}.invoice-hover-preview{position:fixed;z-index:2000;display:grid;grid-template-rows:auto 1fr;overflow:hidden;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(4px);background:#fff;border:1px solid var(--border-color);border-radius:10px;box-shadow:0 18px 50px #142d413d;transition:opacity .14s ease,transform .14s ease,visibility .14s}.invoice-hover-preview.is-visible{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto}.invoice-hover-preview-title{padding:.7rem .85rem;overflow:hidden;color:var(--text-color);background:#f7fafc;border-bottom:1px solid var(--border-color);font-size:.82rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.invoice-hover-preview-loading{display:grid;place-items:center;color:#667;font-size:.9rem}.invoice-hover-preview-loading.hidden{display:none}.invoice-hover-preview iframe{display:none;width:100%;height:100%;border:0;background:#eceff1}.invoice-hover-preview iframe.is-loaded{display:block}.invoice-result-actions{display:flex;gap:.4rem;flex-shrink:0}.invoice-open-btn,.invoice-delete-btn{border:1px solid var(--border-color);background:#f8f9fa;border-radius:4px;padding:.45rem .7rem;cursor:pointer}.invoice-open-btn:hover{color:#fff;background:var(--primary-color)}.invoice-delete-btn:hover{color:#fff;background:var(--error-color)}@media(max-width:600px){.invoice-search-row{grid-template-columns:1fr}.invoice-result{align-items:flex-start;flex-direction:column}.invoice-preview-hint,.invoice-hover-preview{display:none}}@media(hover:none),(pointer:coarse){.invoice-preview-hint,.invoice-hover-preview{display:none}}#download-btn:hover,#generate-single-btn:hover,#generate-bulk-btn:hover,#modal-save-btn:hover{background-color:var(--primary-color-hover);transform:translateY(-2px)}#download-btn:disabled,#generate-single-btn:disabled,#generate-bulk-btn:disabled,#modal-save-btn:disabled{background-color:#bdc3c7;cursor:not-allowed;transform:none}#transfer-list-container{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}#bulk-transfer-summary{display:flex;justify-content:space-between;padding:1rem;margin-bottom:1.5rem;background-color:#fff;border-radius:6px;border:1px solid var(--border-color);border-left:4px solid var(--primary-color)}#bulk-transfer-summary p{margin:0;font-size:1.1rem;color:#555}#bulk-transfer-summary strong{font-weight:700;color:var(--text-color)}.transfer-list-item{background-color:#fff;border:1px solid var(--border-color);border-radius:6px;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.transfer-list-item-info{display:flex;flex-direction:column;flex-grow:1;word-break:break-word}.transfer-list-item-info .name{font-weight:700;color:var(--text-color)}.transfer-list-item-info .details{font-size:.9rem;color:#666}.transfer-list-item-info .notes-hint{font-size:.8rem;color:#999;font-style:italic}.transfer-list-item-amount{font-weight:700;font-size:1.1rem;color:var(--primary-color);flex-shrink:0;margin-left:1rem}.transfer-list-item-actions{display:flex;gap:.5rem;flex-shrink:0}.list-action-btn{background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;padding:.5rem;color:#888;display:flex;align-items:center;justify-content:center}.list-action-btn:hover{background-color:#f0f0f0;color:var(--text-color)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--card-background);border-radius:8px;box-shadow:0 5px 15px #0000004d;width:90%;max-width:600px;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem}.modal-close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;padding:.25rem}.modal-close-btn:hover{color:var(--text-color)}.modal-body{padding:1.5rem;overflow-y:auto}.modal-body .form-group{margin-bottom:1.25rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color);background-color:var(--card-background);border-bottom-left-radius:8px;border-bottom-right-radius:8px}#notification-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:10px;align-items:flex-end;max-width:350px}.notification{padding:1rem 1.5rem;border-radius:6px;box-shadow:0 4px 12px #00000026;color:#fff;font-weight:500;opacity:0;transform:translate(calc(100% + 20px));transition:all .4s cubic-bezier(.68,-.55,.27,1.55);cursor:pointer}.notification.show{opacity:1;transform:translate(0)}.notification.success{background-color:var(--success-color)}.notification.error{background-color:var(--error-color)}.notification.info{background-color:var(--primary-color)}.smtp-description{color:#666;margin-bottom:1.5rem}.smtp-config-box{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:1.5rem}.smtp-config-box .form-section-header{display:flex;align-items:center;gap:.5rem;margin-top:0;margin-bottom:.5rem}.smtp-config-box .form-section-header svg{flex-shrink:0}.smtp-hint{color:#888;font-size:.9rem;margin-bottom:1.5rem}.smtp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.smtp-port-group{max-width:120px}.smtp-checkbox-group{margin:1rem 0}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:40px}.toggle-password-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#888}.toggle-password-btn:hover{color:var(--text-color)}.smtp-subsection{font-size:1rem;font-weight:600;color:var(--text-color);margin:1.5rem 0 1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.smtp-actions{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.smtp-actions .primary-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-weight:500;transition:background-color .2s}.smtp-actions .primary-btn:hover{background-color:var(--primary-color-hover)}.smtp-status{margin-top:1rem;padding:1rem;border-radius:6px;display:flex;align-items:center;gap:.5rem}.smtp-status.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.smtp-status.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.smtp-status svg{flex-shrink:0}@media(max-width:600px){.smtp-form-row{grid-template-columns:1fr}.smtp-port-group{max-width:100%}}
