:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#747bff}body{margin:0;min-width:320px;min-height:100vh;background-color:#fff;color:#213547}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;color:#213547;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.top-bar{width:100%;height:35px;background:#ffe9c4;display:flex;align-items:center;justify-content:space-between;padding:0 12px;box-shadow:0 2px 4px #0000001a;font-family:system-ui,sans-serif;color:#333;position:sticky;top:0;z-index:1000}.back-button{background:none;border:none;font-size:16px;font-weight:700;cursor:pointer;color:#333}.user-info{position:relative;display:flex;align-items:center;gap:8px}.top-bar-users{display:flex;align-items:center;gap:16px}.user-name{background:none;border:none;cursor:pointer;color:#333}.user-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #ccc;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column}.user-menu button{background:none;border:none;padding:8px 12px;text-align:left;cursor:pointer;color:#555}.user-menu button:hover{background:#f0f0f0}.container{max-width:800px;width:100%;margin:0 auto;text-align:center;font-family:system-ui,sans-serif;padding:0 16px 50px}.container--full{max-width:none;margin:0;text-align:left}.logo{width:160px;height:auto;margin:16px auto;display:block}.nav-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}.link-button{background:none;border:none;color:#1a73e8;cursor:pointer;padding:0;font:inherit;text-decoration:underline}.link-button:hover{color:#0b59d1}@media (max-width: 600px){.nav-buttons{flex-direction:column;align-items:center}.nav-buttons button{width:100%;max-width:300px}}.selection-info,.admin-section{margin-top:24px}.config-form{margin-top:24px;background:#fff;border-radius:16px;box-shadow:0 18px 40px #0f172a1f;padding:28px 32px;display:flex;flex-direction:column;gap:20px}.config-form-row{display:grid;grid-template-columns:minmax(180px,220px) 1fr;gap:18px;align-items:center}.config-form-row--multiline{align-items:flex-start}.config-form-label{display:flex;justify-content:flex-end;align-items:center;font-weight:600;color:#1f2937;text-align:right}.config-form-label label{display:block}.config-form-field input,.config-form-field textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;color:#111827;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.config-form-field input:focus,.config-form-field textarea:focus{outline:none;border-color:#1e3a8a;box-shadow:0 0 0 3px #3b82f633;background:#fff}.config-form-field textarea{resize:vertical;min-height:120px}.config-form-row--multiline .config-form-label{align-items:flex-start;padding-top:8px}.config-form-field input[disabled]{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.config-input--small{max-width:180px}.config-form .form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:12px;border-top:1px solid #e5e7eb}.config-form .form-actions button{min-width:140px}@media (max-width: 720px){.config-form{padding:24px;gap:16px}.config-form-row{grid-template-columns:1fr}.config-form-label{justify-content:flex-start;text-align:left}.config-input--small{max-width:100%}.config-form .form-actions{flex-direction:column;align-items:stretch}}.admin-section>.nav-buttons{margin-bottom:24px}.admin-chart{margin-top:32px;min-height:320px}.admin-chart canvas{max-width:100%}.admin-banned-ips{margin-top:32px}.admin-banned-ips h3{margin-bottom:12px}.admin-banned-ips table{margin-top:12px}.recibos-novo-actions{margin-top:16px;display:flex;justify-content:flex-end}.recibo-info{display:grid;gap:4px;margin:12px 0 16px;font-size:14px}.recibo-table-wrapper{margin-top:16px;overflow-x:auto}.recibo-table input{width:100%;box-sizing:border-box;padding:4px 6px;font:inherit}.recibo-valor{text-align:right;white-space:nowrap}.recibo-total-row td{font-weight:700;background:#f5f5f5}.recibo-actions{margin-top:16px;display:flex;justify-content:flex-end}.recibo-actions button{min-width:160px}.recibo-warning{margin-top:16px;padding:12px 16px;border-radius:10px;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;font-size:13px}.recibo-error{margin-top:16px;padding:12px 16px;border-radius:10px;background:#fee2e2;border:1px solid #fecaca;color:#b91c1c;font-size:13px}.recibo-preview{margin-top:32px;border-radius:16px;background:linear-gradient(135deg,#f8fafc,#eef2ff);padding:24px;box-shadow:0 22px 45px #0f172a29}.recibo-preview-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.recibo-preview-header h3{margin:0 0 4px}.recibo-preview-header p{margin:4px 0}.recibo-preview-total{font-weight:600;color:#1e3a8a}.recibo-preview-actions{display:flex;align-items:center;gap:12px}.recibo-preview-actions--stacked{flex-direction:column;align-items:stretch}.recibo-preview-actions--stacked button{width:100%}.recibo-info-message{margin-top:8px;font-size:13px;color:#334155}.recibo-notice{margin-top:12px;font-size:13px;color:#1e3a8a}.recibo-notice--warning{color:#b91c1c}.recibo-preview-frame{width:100%;min-height:960px;border:none;border-radius:12px;background:#fff;box-shadow:0 18px 40px #0f172a2e}.recibo-table input:disabled{background:#f3f4f6;color:#6b7280}.search-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:8px}.search-input{display:block;margin:0}.inactive-toggle-button{font-size:.8em;padding:.3em .8em}.inactive-toggle-button.active{background:#e0e0e0}.inactive-toggle-wrapper{display:flex;justify-content:center;margin-top:12px}.view-all-button{display:block;font-size:.8em;padding:.3em .8em;margin:8px auto 0}.admin-form{display:grid;gap:12px;max-width:480px;margin:0 auto;text-align:left}.admin-form label{display:flex;flex-direction:column;gap:4px}.field-error{color:#dc143c;font-size:.8em}.checkbox-group{display:flex;flex-direction:row;align-items:center;gap:8px}.form-disclaimer{margin-top:16px;font-size:12px;color:#666;text-align:left}.member-login{max-width:320px;margin:40px auto;padding:24px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000000d;text-align:left}.member-portal-card{max-width:520px;margin:40px auto;padding:32px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000014;text-align:center}.member-portal-card h2{margin-top:0}.member-portal-notice{background:#e6f4ea;color:#0f5132;border:1px solid #badbcc;border-radius:6px;padding:12px 16px;margin-bottom:16px;font-size:14px}.member-portal-intro{margin:16px 0 24px;line-height:1.6}.member-portal-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.member-portal-actions button{padding:12px 24px;border:none;border-radius:6px;background:#06c;color:#fff;cursor:pointer;font-size:16px}.member-portal-actions button:hover{background:#005bb5}.member-portal-secondary{background:#fff;color:#06c;border:1px solid #0066cc}.member-portal-secondary:hover{background:#f0f6ff}.member-extrato{max-width:720px;margin:40px auto;padding:32px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000014;text-align:left}.member-extrato h2{margin-top:0;text-align:center}.member-extrato-header{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.member-extrato-section{margin-top:32px}.member-extrato-section:first-of-type{margin-top:0}.member-extrato-section h3{margin:0 0 12px;font-size:1.1rem}.member-extrato-loading{text-align:center;margin:24px 0}.member-extrato-error{margin:24px 0;text-align:center}.member-extrato-table{margin-top:0}.member-extrato-table th.col-valor,.member-extrato-table td.col-valor,.member-extrato-table th.col-recibo,.member-extrato-table td.col-recibo{text-align:right}.member-extrato-table td.col-valor{font-variant-numeric:tabular-nums}.member-extrato-table td.overdue{color:#c62828;font-weight:600}.member-extrato-download-error{margin-top:12px}.member-extrato-warning{margin:16px 0;padding:12px;background:#fff4e5;border-left:4px solid #f0ad4e;color:#8a5200}.member-extrato-footer{margin:24px 0 16px;line-height:1.5}.member-extrato-actions{display:flex;justify-content:center;gap:12px}.member-extrato-actions button{padding:10px 18px;border-radius:6px;border:none;background:#06c;color:#fff;cursor:pointer}.member-extrato-actions .button-secondary{background:#f4f4f4;color:#333}.member-extrato-actions .button-secondary:hover{background:#e0e0e0}.member-extrato-actions button:hover:not(.button-secondary){background:#005bb5}.member-extrato-empty{margin:24px 0;text-align:center}.member-profile-card{max-width:720px;margin:40px auto;padding:32px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000014;text-align:left}.member-profile-card h2{margin-top:0;text-align:center}.member-profile-form{display:flex;flex-direction:column;gap:24px}.member-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.member-profile-grid .input-group input,.member-profile-grid .input-group select,.member-profile-grid .input-group textarea{padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:16px}.member-profile-grid .input-group textarea{min-height:80px;resize:vertical}.member-profile-checkboxes{display:flex;flex-direction:column;gap:12px}.member-profile-checkbox{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.4}.member-profile-checkbox input{margin-top:4px}.member-profile-checkbox.readonly{color:#555}.member-profile-actions{display:flex;justify-content:flex-end;gap:12px}.member-profile-actions button{padding:12px 24px;border-radius:6px;font-size:16px}.member-profile-loading{text-align:center;margin:24px 0}.member-profile-summary{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.member-profile-summary-intro{margin:12px 0;font-style:italic;text-align:left}.member-profile-review-table{width:100%;border-collapse:collapse;margin-bottom:24px}.member-profile-review-table th,.member-profile-review-table td{border:1px solid #ddd;padding:8px 12px;text-align:left}.member-profile-review-table th{background:#f5f5f5}.member-profile-delete-note{font-size:12px;color:#666;text-align:center}.member-profile-delete-note a{color:inherit}.member-profile-delete-note{margin-top:16px}.member-login.disabled{opacity:.6}.member-login h2{text-align:center;margin-bottom:16px}.member-login .captcha-group .captcha-question{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:#333;flex-wrap:wrap}.member-login .captcha-refresh{padding:6px 10px;border-radius:4px;border:1px solid #ccc;background:#f4f4f4;color:#333;cursor:pointer;font-size:14px}.member-login .captcha-refresh:disabled{opacity:.6;cursor:not-allowed}.member-login .captcha-error{margin-top:4px}.member-login .submit-error{margin:0}.forgot-password-message{margin-top:16px;line-height:1.6;color:#333;text-align:center}.password-requirements{margin:12px 0 0;font-size:.85em;color:#555;text-align:left;line-height:1.5}.forgot-password-actions{display:flex;justify-content:center;margin-top:20px}.forgot-password-actions button{padding:12px 24px;border:none;background:#06c;color:#fff;border-radius:6px;cursor:pointer;font-size:16px}.forgot-password-actions button:hover{background:#005bb5}.member-register-card{display:flex;justify-content:center;align-items:center}.member-register-card .member-register-action{width:100%;padding:12px;border:none;background:#06c;color:#fff;border-radius:6px;cursor:pointer;font-size:16px;text-align:center}.member-home-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin:40px auto;max-width:320px}.member-home-primary,.member-home-secondary{width:100%;padding:12px;border:none;border-radius:6px;cursor:pointer;text-align:center}.member-home-primary{background:#06c;color:#fff;font-size:16px}.member-home-primary:hover{background:#005bb5}.member-home-secondary{background:#f4f4f4;color:#333;font-size:14px}.member-home-secondary:hover{background:#e0e0e0}.member-register-card .member-register-action:hover{background:#005bb5}.member-register{max-width:480px}.member-register .intro-text{text-align:center;margin-bottom:8px}.template-layout{display:flex;gap:20px;align-items:flex-start}.template-sidebar{flex:1;max-width:40%;display:flex;flex-direction:column;gap:16px}.template-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:16px;box-shadow:0 2px 6px #0000000a}.template-card h3{margin-top:0}.template-placeholders-list{list-style:none;padding-left:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px}.template-placeholders-list li{font-family:Courier New,Courier,monospace;background:#f8f8f8;border:1px solid #e0e0e0;border-radius:4px;padding:6px 8px}.template-placeholder-empty{margin-top:12px;color:#666;font-size:.9em}.template-preview{border:1px solid #e0e0e0;border-radius:6px;padding:12px;max-height:320px;overflow:auto;background:#fafafa}.template-form{flex:1}@media (max-width: 900px){.template-layout{flex-direction:column}.template-sidebar{max-width:100%}}.member-register .registration-legend{margin:0;font-size:12px;color:#666}.member-register .required{color:#dc143c}.member-register .nif-feedback{font-size:12px;margin-top:2px}.member-register .nif-feedback.invalid{color:#d32f2f}.member-register .nif-feedback.valid{color:#2e7d32}.member-register select{padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:16px;background:#fff}.member-register .info-text{margin:8px 0;font-size:12px;color:#666}.member-register .checkbox-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.member-register .checkbox-row input{margin-top:4px}.member-register .checkbox-row label{flex:1;line-height:1.4}.member-register .mandatory-warning{align-self:center;margin-left:4px}.member-register .captcha-group .captcha-question{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:#333;flex-wrap:wrap}.member-register .captcha-refresh{padding:6px 10px;border-radius:4px;border:1px solid #ccc;background:#f4f4f4;color:#333;cursor:pointer;font-size:14px}.member-register .captcha-refresh:disabled{opacity:.6;cursor:not-allowed}.member-register .captcha-error{margin-top:4px}.member-register .step-actions{display:flex;gap:12px;justify-content:space-between;margin-top:16px;flex-wrap:wrap}.member-register .step-actions button{flex:1 1 45%}.member-register .button-primary{padding:12px;border:none;background:#06c;color:#fff;border-radius:6px;cursor:pointer;font-size:16px;text-align:center}.member-register .button-primary:hover{background:#005bb5}.member-register .button-primary:disabled{opacity:.6;cursor:not-allowed}.member-register .button-secondary{padding:12px;border-radius:6px;border:1px solid #ccc;background:#f4f4f4;color:#333;cursor:pointer;font-size:16px;text-align:center}.member-register .button-secondary:hover{background:#e4e4e4}.member-register .button-secondary:disabled{opacity:.6;cursor:not-allowed}.member-register .submit-error{margin:0}.member-register-success{text-align:center}.member-register-success .intro-text{margin-bottom:24px}.member-register-success .button-primary{width:100%}.member-register-success .success-text{margin:0 0 12px}.member-register-success .success-text.warning{color:#b56a00}.member-register-success .loading-text{margin-bottom:16px}.member-register-success .summary-table{width:100%;max-width:360px;margin:0 auto 16px;border-collapse:collapse;text-align:left}.member-register-success .summary-table td{padding:8px 12px;border-bottom:1px solid #e0e0e0}.member-register-success .summary-table tr:last-child td{border-bottom:none;font-weight:600}.member-register-success .summary-table .value{text-align:right}.member-register-success .summary-warning{margin:0 0 16px;color:#b56a00;font-size:.9em}.member-register-success .payment-instructions{margin:0 0 24px;font-size:.95em;color:#333}@media (max-width: 480px){.member-register .step-actions{flex-direction:column}.member-register .step-actions button{flex:1 1 auto;width:100%}}.member-form{display:grid;gap:16px}.input-group{display:flex;flex-direction:column;gap:6px}.member-form input{padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:16px}.member-form button{padding:12px;border:none;background:#06c;color:#fff;border-radius:6px;cursor:pointer;font-size:16px}.member-form button:hover{background:#005bb5}.forgot-password-link{margin-top:12px;text-align:center}.forgot-password-link a{color:#06c;text-decoration:none;cursor:pointer}.forgot-password-link a.disabled{pointer-events:none;color:#999;cursor:default}.forgot-password-link a:hover{text-decoration:underline}.admin-home-button{display:block;font-size:.8em;padding:.3em .8em;margin:40px auto 0}.socio-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px}.socio-table th,.socio-table td{border:1px solid #ccc;padding:4px 8px;text-align:left}.socio-table .link-button{display:inline-block;width:100%;text-align:left}.socio-table th{background:#555;color:#fff}.socio-table th.sortable{cursor:pointer}.socio-table th.sortable.sort-asc:after{content:" ▲"}.socio-table th.sortable.sort-desc:after{content:" ▼"}.recibos-emitidos-table .col-numero,.recibos-emitidos-table .col-data,.recibos-emitidos-table .col-numero-socio{white-space:nowrap}.recibos-emitidos-table .col-total{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.recibos-emitidos-table .col-acoes{text-align:right;white-space:nowrap}.bank-reconciliation-wrapper{display:flex;flex-direction:column;align-items:center;gap:16px}.bank-reconciliation-controls,.bank-reconciliation-table-container{width:95%}.bank-reconciliation-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bank-reconciliation-search{width:min(100%,360px);padding:6px 8px;font-size:14px}.bank-reconciliation-filter-button{padding:6px 12px;border:1px solid var(--primary-color, #1f7a8c);border-radius:4px;background:transparent;color:inherit;cursor:pointer;transition:background-color .2s ease,color .2s ease}.bank-reconciliation-filter-button.active{background-color:var(--primary-color, #1f7a8c);color:#fff}.bank-reconciliation-table-container{overflow-x:auto}.bank-reconciliation-table-container .socio-table input,.bank-reconciliation-table-container .socio-table select,.bank-reconciliation-table-container .socio-table textarea{width:100%;max-width:100%;box-sizing:border-box}.bank-reconciliation-table-container .socio-table input,.bank-reconciliation-table-container .socio-table select{min-width:0}.bank-reconciliation-actions{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(88px,max-content));justify-content:end}.bank-reconciliation-actions button{justify-self:end}@media (max-width: 600px){.socio-table{font-size:12px}}.legend{margin-top:8px;display:flex;gap:16px;font-size:12px}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.user-actions{display:flex;gap:8px}.bottom-bar{width:100%;height:25px;background:#ffe9c4;display:flex;align-items:center;justify-content:center;position:fixed;bottom:0;left:0;font-family:system-ui,sans-serif;font-size:.8rem;color:#bdbdbd;box-shadow:0 -2px 4px #0000001a}.bottom-bar .back-button{position:absolute;left:12px;top:50%;transform:translateY(-50%)}.manage-quotas-table .col-ano{width:10ch}.manage-quotas-table .col-valor{width:20ch}.manage-quotas-table .col-condicao{width:15ch}.manage-quotas-table input,.manage-quotas-table select,.add-payments-table input,.add-payments-table select{width:100%;box-sizing:border-box}.add-payments-table .col-ano{width:10ch;min-width:10ch}.add-payments-table .col-data{width:15ch}.add-payments-table .col-metodo{min-width:14ch}.add-payments-table .col-notas{width:24ch;min-width:12ch}.add-line-button{font-size:.8em;padding:4px 8px}.remove-row-btn{background:none;border:none;cursor:pointer;color:#dc143c;font-weight:700}.no-spinner{-moz-appearance:textfield}.no-spinner::-webkit-outer-spin-button,.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
