:root{font-family:Inter,system-ui,sans-serif;color:#14213d;background:#f3f6f8}*{box-sizing:border-box;min-width:0}html,body{max-width:100%;overflow-x:clip}body{margin:0}img,svg{max-width:100%}.environment-banner{position:fixed;z-index:1000;top:.5rem;right:.5rem;padding:.35rem .7rem;border-radius:999px;color:#fff;background:#52606d;font-size:.72rem;font-weight:800;letter-spacing:.08em;box-shadow:0 3px 10px #0000002e}.environment-development{background:#3167a3}.environment-qa,.environment-production{background:#8b1e2d}.page{min-height:100vh;display:grid;place-items:center;padding:2rem}.card{width:min(760px,100%);padding:2.5rem;border-radius:18px;background:#fff;box-shadow:0 18px 50px #14213d1a}.eyebrow{color:#147d64;font-weight:700;letter-spacing:.12em}h1{margin-bottom:.5rem}form{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2rem}label{display:grid;gap:.4rem;font-weight:600}input,select{width:100%;padding:.8rem;border:1px solid #cbd5df;border-radius:8px;font:inherit}.password-field{position:relative;display:block}.password-field input{padding-right:3rem}.password-toggle{position:absolute;top:50%;right:.35rem;width:2.35rem;height:2.35rem;padding:0;grid-column:auto;transform:translateY(-50%);color:#334155;background:transparent;font-size:1.05rem}.password-toggle:hover{background:#e5ebef}.password-requirements{display:grid;gap:.35rem;margin:.25rem 0 1rem;padding:0;list-style:none;font-size:.9rem;font-weight:650}.password-requirements li{display:flex;align-items:center;gap:.5rem}.password-requirements .valid{color:#15803d}.password-requirements .invalid{color:#b91c1c}.password-requirements span{width:1rem;text-align:center}.text-button{padding:.35rem;color:#174f41;background:transparent}.text-button:hover{text-decoration:underline;background:transparent}.wide,button{grid-column:1 / -1}button{padding:.9rem;border:0;border-radius:8px;color:#fff;background:#147d64;font:inherit;font-weight:700;cursor:pointer}button:disabled{opacity:.65}.message{padding:1rem;border-radius:8px;background:#edf8f4}.message.error-feedback{color:#8b1e2d;background:#fff0f1;border:1px solid #fecdd3}.error{padding:1rem;border-radius:8px;color:#8b1e2d;background:#fff0f1}.field-error{color:#b91c1c;font-weight:700}input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:#dc2626;outline-color:#dc2626}.notice{padding:1rem;border-left:4px solid #d59b21;background:#fff8e8}.single-form{grid-template-columns:1fr}.admin-card{max-width:480px}.admin-page{min-height:100vh;padding:2rem}.admin-page header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-page header>div:last-child{display:flex;align-items:center;gap:1rem}.admin-grid{display:grid;grid-template-columns:minmax(280px,1fr) 2fr;align-items:start;gap:1.5rem;margin-top:2rem}.list-panel,.detail-panel{padding:1.5rem;border-radius:14px;background:#fff;box-shadow:0 10px 30px #14213d14}.admin-grid>.detail-panel,.payroll-layout>.payroll-detail{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.application-row{width:100%;display:grid;grid-template-columns:2fr 1fr auto;gap:.75rem;align-items:center;margin-bottom:.5rem;padding:1rem;border:1px solid transparent;color:#14213d;text-align:left;background:#f5f8fa;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.application-row:hover{background:#e7edf1}.application-row:focus,.application-row:focus-within,.application-row[data-selected=true]{outline:none;border-color:#718096;background:#cfd9df;box-shadow:inset 5px 0 #334155}.badge{padding:.25rem .5rem;border-radius:999px;font-size:.75rem;background:#dcefe9}.badge.status-submitted{color:#713f12;background:#fef3c7}.badge.status-approved{color:#1e3a8a;background:#dbeafe}.badge.status-pending-disbursement{color:#134e4a;background:#ccfbf1}.badge.status-active{color:#312e81;background:#e0e7ff}.badge.status-completed{color:#14532d;background:#dcfce7}.badge.status-returned{color:#581c87;background:#f3e8ff}.badge.status-rejected{color:#7f1d1d;background:#fee2e2}.badge.status-draft{color:#334155;background:#e2e8f0}.notification-button{position:relative}.notification-count{position:absolute;top:-.55rem;right:-.45rem;display:grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .3rem;border:2px solid white;border-radius:999px;color:#fff;background:#dc2626;font-size:.7rem;font-weight:800}.decision-modal-backdrop{position:fixed;z-index:2000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1rem;background:#0f172a9e}.decision-modal{width:min(32rem,100%);max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.5rem;border-radius:14px;background:#fff;box-shadow:0 24px 70px #00000047}.decision-modal h2{margin-top:0}.loan-summary-review-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);align-items:start;gap:1rem}.loan-summary-review-grid>.card{width:100%}.loan-decision-history{padding:1.5rem;border-radius:18px;background:#fff;box-shadow:0 18px 50px #14213d1a}.loan-decision-item{display:grid;grid-template-columns:2rem 1fr;gap:.65rem;align-items:center;padding:.65rem 0;border-bottom:1px solid #e2e8f0}.loan-decision-icon{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;color:#fff;font-weight:900}.loan-decision-approve .loan-decision-icon{background:#16a34a}.loan-decision-reject .loan-decision-icon{background:#dc2626}.loan-decision-return .loan-decision-icon{background:#d97706}@media(max-width:900px){.loan-summary-review-grid{grid-template-columns:1fr}}.profile-image{width:7rem;height:7rem;border-radius:50%;object-fit:cover;border:3px solid #dcefe9}.institution-logo{max-width:10rem;max-height:5rem;object-fit:contain}.contact-status-panel{display:grid;gap:.25rem;margin:0 0 1rem;padding:.8rem 1rem;border-radius:.65rem}.contact-status-panel.status-active,.contact-status.status-active{background:#d8f3dc;color:#1b4332}.contact-status-panel.status-retired,.contact-status.status-retired{background:#f1d5d5;color:#7f1d1d}.installment-status{border-radius:.35rem;font-weight:700;text-align:center}.installment-pending{background:#f59e0b;color:#3b2200}.installment-paid{background:#22c55e;color:#063b1a}.installment-partial{background:#facc15;color:#422006}.portal-login{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(135deg,#e9f5f0,#f8faf9)}.portal-login .card{width:min(28rem,100%)}.portal-page{min-height:100vh;background:#f3f7f5}.portal-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem max(1rem,calc((100vw - 1180px)/2));background:#123c32;color:#fff;box-shadow:0 2px 12px #0002}.portal-header>a{color:#fff;font-size:1.25rem;font-weight:800;text-decoration:none}.portal-brand,.portal-identity{display:flex;align-items:center;gap:.65rem;color:#fff}.portal-brand img{width:2.5rem;height:2.5rem;object-fit:contain}.portal-identity img{width:2.5rem;height:2.5rem;border:2px solid #dcefe9;border-radius:50%;object-fit:cover}.portal-identity span{font-weight:700}.portal-header nav{display:flex;flex-wrap:wrap;gap:.4rem}.portal-header button{padding:.55rem .8rem}.portal-content{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 3rem}.portal-hero{padding:1.5rem 0}.portal-hero h1{margin:.2rem 0}.portal-hero .institution-logo,.portal-hero .profile-image{display:none}.portal-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.portal-balance{display:grid;gap:.45rem;text-align:left;border:0;color:inherit}button.portal-balance{cursor:pointer}.portal-balance strong{font-size:1.45rem;color:#174f41}.loan-request-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem}.loan-request-actions button{width:auto;padding:.5rem .7rem;grid-column:auto}.loan-auto-data{padding:.8rem 1rem;border-radius:10px;background:#f3f6fa}.loan-financial-statement{border:1px solid #cbd5e1;border-radius:12px;padding:1rem}.loan-statement-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.loan-statement-columns label{margin-bottom:.65rem}.loan-application-summary{margin:1rem 0;padding:1rem;border:1px solid #dbe2ea;border-radius:12px}.balanced-message{color:#166534;font-weight:700}.button-link{display:inline-block;margin-top:.75rem;padding:.7rem 1rem;border-radius:8px;background:#14213d;color:#fff;text-decoration:none}.portal-detail{margin-top:1rem}.portal-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;margin:1rem 0}.portal-filters input,.portal-filters select{width:auto}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{width:100%;min-width:700px;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:.65rem;border-bottom:1px solid #dbe3e8;text-align:left}.temporary-password{display:grid;gap:.6rem;margin:1rem 0;padding:1rem;border:2px solid #d97706;border-radius:.65rem;background:#fff7ed;color:#7c2d12}.temporary-password code{display:block;padding:.75rem;border-radius:.4rem;background:#fff;color:#111827;font-size:1.05rem;overflow-wrap:anywhere}@media(max-width:680px){.portal-header{position:static;align-items:flex-start;flex-direction:column}.portal-header nav{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.portal-header nav button{width:100%}.portal-content{width:min(100% - 1rem,1180px);padding-top:.5rem}.portal-cards{grid-template-columns:1fr}.portal-filters{display:grid;grid-template-columns:1fr 1fr}.portal-filters input,.portal-filters select,.portal-filters button{width:100%}}dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1rem}dt{font-weight:700}dd{margin:0}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.contact-module-navigation{margin:1rem 0}.contact-module-navigation .menu-button{margin-left:0}.modal-backdrop{position:fixed;z-index:1200;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1rem;background:#0f172a94}.balance-modal{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;padding:1.5rem;border-radius:16px;background:#fff;box-shadow:0 24px 70px #0f172a52}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.modal-heading h2,.modal-heading .eyebrow{margin-top:0}.modal-close{width:2.5rem;padding:.45rem;grid-column:auto;font-size:1.4rem;line-height:1}.balance-links{display:grid;gap:.65rem;margin:1.25rem 0}.balance-links a{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #cbd5df;border-radius:10px;color:#14213d;text-decoration:none;background:#f5f8fa}.balance-links a:hover,.balance-links a:focus{border-color:#718096;background:#dfe7eb}.search-form{display:grid;grid-template-columns:1fr auto;gap:.75rem;margin:1.5rem 0}.search-form button{grid-column:auto}.settings-card{max-width:560px;margin-top:2rem}.configuration-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:1.25rem;margin-top:2rem}.configuration-option{padding:1.5rem;border-radius:14px;color:#14213d;text-decoration:none;background:#fff;box-shadow:0 10px 30px #14213d14;transition:transform .15s ease,box-shadow .15s ease}.configuration-option:hover{transform:translateY(-2px);box-shadow:0 14px 34px #14213d21}.configuration-option h2{margin-top:0}.admin-page nav{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.navigation-icon{display:inline-flex;width:2.35rem;height:2.35rem;padding:.45rem;border-radius:8px;color:#fff;background:#147d64}.navigation-icon:hover{background:#0f6551}.navigation-icon svg{width:100%;height:100%}.menu-button{display:inline-block;margin-left:.6rem;padding:.5rem .85rem;border-radius:8px;color:#fff;text-decoration:none;background:#147d64;font-weight:700}.menu-button:hover{background:#0f6551}.account-search{grid-template-columns:minmax(240px,1fr) auto auto auto}.account-row{grid-template-columns:.7fr 1.6fr auto}.checkbox{display:flex;grid-template-columns:auto 1fr;align-items:center}.checkbox input{width:auto}.default-accounts-card{display:grid;gap:1rem;max-width:760px;margin-top:2rem}.default-accounts-card label{display:grid;gap:.4rem}.member-selector{max-width:620px;margin-top:1.5rem}.finance-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:1.25rem;margin-top:1.5rem}.finance-card{width:100%;padding:1.5rem}.compact-form{margin-top:1rem}.action-button{width:100%;margin-top:.75rem}.opening-list{width:100%;margin-top:1.5rem;padding:1.5rem}.opening-row{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:.75rem 0;border-top:1px solid #e5ebef}.opening-row button{grid-column:auto}.report-controls{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));align-items:end}.report-controls button{grid-column:auto}.financial-report{width:100%;margin-top:1.5rem;padding:2rem;overflow-x:auto}.report-heading{margin-bottom:1.5rem;text-align:center}.report-table{width:100%;border-collapse:collapse}.report-table th,.report-table td{padding:.65rem;border-bottom:1px solid #dbe3e8;text-align:right}.report-table th:nth-child(1),.report-table th:nth-child(2),.report-table td:nth-child(1),.report-table td:nth-child(2){text-align:left}.report-table tfoot th{border-top:2px solid #14213d}.income-report{max-width:820px;margin:auto}.income-report h3{margin-top:1.75rem;border-bottom:1px solid #cbd5df;padding-bottom:.4rem}.statement-row,.statement-total,.statement-result{display:flex;justify-content:space-between;gap:2rem;padding:.55rem 0}.statement-total{border-top:1px solid #14213d;font-weight:700}.pending-credit-values{border-color:#8aa6c1;background:#f7fbff}.pending-credit-card{padding:.5rem 0}.pending-credit-card+.pending-credit-card{border-top:1px solid #ccd9e5}form:has(>label:first-child select option[value=DISBURSEMENT]:checked)>fieldset:not(.pending-credit-values):not(.bank-difference-fields){display:none}form:has(>label:first-child select option[value=DISBURSEMENT]:checked)>label:nth-of-type(7),form:has(>label:first-child select option[value=DISBURSEMENT]:checked)>label:nth-of-type(8){display:none}.statement-result{margin-top:1.5rem;padding:1rem 0;border-top:3px double #14213d;border-bottom:3px double #14213d;font-size:1.1rem}.ledger-link{display:inline-grid;width:1.65rem;height:1.65rem;place-items:center;border-radius:50%;color:#fff;background:#147d64;text-decoration:none;font-weight:800}.ledger-link:hover{background:#0f6551}.ledger-opening{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.75rem;padding:.75rem;background:#f5f8fa}.qa-refresh-card{width:min(760px,100%);margin-top:1.5rem}.payroll-create{grid-template-columns:150px 220px auto;align-items:end;max-width:720px;margin:1.5rem 0}.payroll-create button{grid-column:auto}.payroll-layout{display:grid;grid-template-columns:minmax(270px,.65fr) minmax(0,2.35fr);gap:1.5rem;align-items:start}.payroll-list{margin-top:0}.payroll-row{grid-template-columns:1.3fr .8fr auto}.payroll-detail{width:100%;max-width:none;padding:1.5rem}.payroll-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem}.payroll-heading h2{margin-bottom:.25rem}.payroll-heading p{margin-top:0;color:#52606d}.payroll-table-wrapper{width:100%;overflow-x:auto}.payroll-table{width:100%;min-width:1250px;border-collapse:collapse}.payroll-table th,.payroll-table td{padding:.65rem;border-bottom:1px solid #dbe3e8;text-align:right;vertical-align:middle}.payroll-table th:first-child,.payroll-table td:first-child{min-width:210px;text-align:left}.payroll-table td small{display:block;margin-top:.2rem;color:#52606d}.payroll-table input{min-width:125px;text-align:right}.payroll-table tfoot th{border-top:2px solid #14213d}.job-row{padding:1rem 0;border-top:1px solid #dbe3e8}.job-row>div{display:flex;justify-content:space-between;gap:1rem}.job-row span{color:#52606d}.actions button{grid-column:auto}button.secondary{color:#14213d;background:#e5ebef}button.danger{background:#a02c3b}@media(max-width:620px){form{grid-template-columns:1fr}.card,.list-panel,.detail-panel{padding:1rem;border-radius:12px}.page,.portal-login{padding:.75rem}.actions{display:grid;grid-template-columns:1fr}.actions button,.actions a{width:100%;margin-left:0;text-align:center}.application-row,.account-row,.payroll-row{grid-template-columns:1fr;gap:.35rem}.application-row .badge{justify-self:start}.loan-request-actions{justify-content:space-between}dl{grid-template-columns:1fr}dd{margin-bottom:.5rem}.statement-row,.statement-total,.statement-result,.ledger-opening,.job-row>div{align-items:flex-start;flex-direction:column;gap:.25rem}}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}.admin-grid>.detail-panel{position:static;max-height:none;overflow-y:visible}.admin-page{padding:.75rem}.admin-page header{align-items:flex-start;flex-direction:column}.admin-page header>div:last-child{width:100%;flex-wrap:wrap}.admin-page header>div:last-child>*{flex:1}}@media(max-width:800px){.configuration-grid{grid-template-columns:1fr}}@media(max-width:1000px){.finance-grid{grid-template-columns:1fr}}@media(max-width:900px){.report-controls{grid-template-columns:1fr}}@media(max-width:1050px){.payroll-layout{grid-template-columns:1fr}.payroll-layout>.payroll-detail{position:static;max-height:none;overflow-y:visible}}@media(max-width:700px){.payroll-create{grid-template-columns:1fr}}@media print{.environment-banner,.report-page>header,.report-controls,.report-page>.message,.report-page>.error{display:none!important}body,.admin-page{background:#fff}.admin-page{padding:0}.financial-report{box-shadow:none;margin:0;padding:0;overflow:visible}}.loan-review-panel{margin-bottom:1rem}.decision-options{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.loan-review-panel textarea{min-height:7rem;resize:vertical}.monthly-payroll-page .payroll-detail>.payroll-table-wrapper:not(.payroll-column-totals) .payroll-table tfoot{display:none}.payroll-column-totals,.payroll-column-totals .payroll-table{margin-top:0}.payroll-column-totals tfoot th{white-space:nowrap}.finance-grid>.finance-card:nth-child(3),.opening-list{display:none!important}.beneficiaries{grid-column:1 / -1}.contribution-editor{display:grid;gap:.5rem;align-content:end}.contribution-editor button{width:100%}.beneficiary-row{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:.75rem;align-items:end;margin-bottom:.75rem}.beneficiary-row button{margin-bottom:.1rem}@media(max-width:700px){.beneficiary-row{grid-template-columns:1fr}}
