:root{--surface: #faf8ff;--background: #f8fafc;--surface-lowest: #ffffff;--surface-low: #f3f3fe;--surface-container: #ededf9;--surface-high: #e7e7f3;--surface-highest: #e1e2ed;--primary: #004ac6;--primary-container: #2563eb;--on-primary: #ffffff;--on-primary-container: #eeefff;--secondary: #505f76;--secondary-container: #d0e1fb;--tertiary: #943700;--tertiary-container: #bc4800;--error: #ba1a1a;--error-container: #ffdad6;--text: #191b23;--muted: #434655;--outline: #737686;--outline-variant: #c3c6d7;--shadow: 0 1px 3px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .1);color:var(--text);background:var(--background);font-family:Hanken Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--background)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none;cursor:pointer}.material-symbols-outlined{display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.login-screen{position:relative;display:grid;min-height:100dvh;place-items:center;overflow:hidden;padding:24px;background:var(--surface)}.ambient{position:fixed;width:40vw;height:40vw;border-radius:999px;filter:blur(120px);opacity:.2;pointer-events:none}.ambient-one{top:-10%;left:-10%;background:#2563eb33}.ambient-two{right:-10%;bottom:-10%;background:#d0e1fbcc}.login-panel{position:relative;z-index:1;width:min(100%,480px)}.login-brand{margin-bottom:32px;text-align:center}.brand-mark{display:inline-grid;width:64px;height:64px;margin-bottom:24px;place-items:center;color:#fff;background:var(--primary);border-radius:12px;box-shadow:var(--shadow-lg)}.brand-mark .material-symbols-outlined{font-size:32px}.login-brand h1{margin:0 0 4px;font-size:24px;line-height:32px;font-weight:600}.login-brand p{max-width:320px;margin:0 auto;color:var(--muted);font-size:16px;line-height:24px}.login-card,.panel,.table-card,.form-panel{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:12px;box-shadow:var(--shadow)}.login-card{display:flex;flex-direction:column;gap:24px;padding:32px}.field{display:flex;flex-direction:column;gap:4px;color:var(--text);font-size:14px;font-weight:500;line-height:20px}.field small{color:var(--outline);font-size:12px;font-weight:600;line-height:16px}.field-row{display:flex;justify-content:space-between;gap:16px}.field-row a{color:var(--primary)}.input-icon,.currency-field{position:relative;display:flex;align-items:center}.input-icon .material-symbols-outlined{position:absolute;left:12px;color:var(--outline)}input,select,textarea{width:100%;min-height:42px;border:1px solid var(--outline-variant);border-radius:8px;outline:0;background:var(--surface-low);color:var(--text);padding:8px 16px;transition:border .18s ease,box-shadow .18s ease}textarea{resize:vertical}.input-icon input{padding:12px 48px 12px 40px;background:var(--surface)}input:focus,select:focus,textarea:focus{border-color:transparent;box-shadow:0 0 0 2px var(--primary)}.icon-button.inside{position:absolute;right:8px;color:var(--outline)}.check-row{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}.check-row input{width:16px;min-height:16px}.primary-button,.secondary-button,.text-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;transition:transform .18s ease,filter .18s ease,background .18s ease,box-shadow .18s ease}.primary-button{min-height:44px;padding:10px 24px;color:var(--on-primary);background:var(--primary-container);font-size:14px;font-weight:700;box-shadow:var(--shadow)}.primary-button:hover{filter:brightness(1.08)}.primary-button:active{transform:scale(.98)}.primary-button.full{width:100%}.primary-button.large{min-height:56px;border-radius:12px;font-size:20px}.secondary-button{min-height:40px;padding:8px 16px;color:var(--muted);background:var(--surface-lowest);border:1px solid var(--outline-variant)}.secondary-button:hover,.icon-button:hover,.text-button:hover{background:var(--surface-highest)}.secondary-button.large{min-height:56px;padding-inline:48px;border-radius:12px;color:var(--primary);font-weight:600}.secondary-button.icon-only{width:44px;padding:0}.icon-button{width:40px;height:40px;padding:0;color:var(--muted);background:transparent;border-radius:999px}.icon-button.danger{color:var(--error)}.text-button{padding:6px 12px;color:var(--primary);background:transparent;font-weight:700}.login-footer{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px}.security-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;color:var(--muted);background:#e7e7f38c;border:1px solid rgba(195,198,215,.4);border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.security-pill .material-symbols-outlined{font-size:18px}.footer-links{display:flex;align-items:center;gap:24px;color:var(--outline);font-size:12px;font-weight:600}.footer-links span{width:4px;height:4px;border-radius:50%;background:var(--outline-variant)}.support-fab{position:fixed;right:24px;bottom:24px;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--outline-variant);border-radius:999px;background:var(--surface-lowest);box-shadow:var(--shadow);color:var(--muted)}.app-shell{min-height:100dvh;background:var(--background)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;display:flex;width:280px;flex-direction:column;gap:4px;padding-top:24px;background:var(--surface);border-right:1px solid var(--outline-variant)}.sidebar-brand{padding:0 32px 32px}.sidebar-brand h1{margin:0;color:var(--primary);font-size:20px;line-height:28px}.sidebar-brand p{margin:0;color:var(--muted);font-size:14px}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:4px;padding:0 16px}.nav-link{display:flex;width:100%;align-items:center;gap:12px;padding:12px 16px;color:var(--muted);background:transparent;border:0;border-left:4px solid transparent;text-align:left;font-size:14px;font-weight:500}.nav-link:hover{color:var(--primary);background:var(--surface-high)}.nav-link.active{color:var(--primary);background:#2563eb1a;border-left-color:var(--primary);font-weight:700}.admin-card{display:flex;align-items:center;gap:16px;padding:24px 32px;border-top:1px solid var(--outline-variant)}.admin-card strong,.topbar-user strong{display:block;font-size:14px}.admin-card span,.topbar-user span{display:block;color:var(--muted);font-size:12px;font-weight:600}.avatar{display:inline-grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:999px;font-size:13px;font-weight:800}.avatar.primary{color:var(--primary);background:#b4c5ff}.avatar.secondary{color:var(--secondary);background:var(--secondary-container)}.avatar.tertiary{color:var(--tertiary);background:#ffdbcd}.avatar.xl{width:96px;height:96px;border:4px solid white;font-size:30px;box-shadow:var(--shadow-lg)}.topbar{position:fixed;top:0;right:0;left:280px;z-index:40;display:flex;height:64px;align-items:center;justify-content:space-between;gap:24px;padding:0 32px;background:#faf8ffd1;border-bottom:1px solid var(--outline-variant);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-brand{display:none}.search{position:relative;width:min(100%,480px)}.search .material-symbols-outlined{position:absolute;left:12px;top:50%;color:var(--muted);transform:translateY(-50%)}.search input{height:42px;padding-left:42px;border-radius:999px;border-color:transparent}.topbar-actions{display:flex;align-items:center;gap:12px}.notify{position:relative}.notify:after{content:"";position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--error)}.topbar-user{display:flex;align-items:center;gap:16px;padding-left:16px;border-left:1px solid var(--outline-variant);text-align:right}.content{width:auto;max-width:1440px;margin:0 32px 0 312px;padding:96px 0 64px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.page-heading h2{margin:0;color:var(--text);font-size:36px;line-height:44px;font-weight:800}.page-heading p{margin:0;color:var(--muted);font-size:16px;line-height:24px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:48px}.metric-card{padding:24px;border:1px solid var(--outline-variant);border-radius:12px;background:#fff;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.metric-top{display:flex;justify-content:space-between;margin-bottom:16px}.icon-tile{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;color:var(--primary);background:#004ac61a}.icon-tile.tertiary{color:var(--tertiary);background:#9437001a}.icon-tile.error{color:var(--error);background:#ba1a1a1a}.trend{display:inline-flex;align-items:center;gap:4px;color:var(--primary);font-size:12px;font-weight:700}.trend .material-symbols-outlined{font-size:14px}.trend.tertiary{color:var(--tertiary)}.trend.error{color:var(--error)}.metric-card p{margin:0;color:var(--muted);font-size:14px;font-weight:500}.metric-card strong{display:block;margin-top:4px;font-size:36px;line-height:44px;font-weight:800}.chart-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:48px}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.panel{padding:24px}.panel-header,.table-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.panel h3,.table-title h3,.form-panel h3,.drawer h3{margin:0;font-size:20px;line-height:28px;font-weight:700}.panel-header p{margin:4px 0 0;color:var(--muted);font-size:14px}.panel select{width:auto;min-width:150px}.bar-chart{display:flex;height:256px;align-items:end;justify-content:space-between;gap:18px;padding:24px 24px 4px;border-radius:8px;background:#ededf96b}.bar-chart i{width:48px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--primary),rgba(0,74,198,.24))}.chart-labels{display:flex;justify-content:space-between;padding:16px 24px 0;color:var(--muted);font-size:12px;font-weight:700}.payment-panel{display:flex;flex-direction:column;gap:16px}.donut{display:grid;width:160px;height:160px;margin:8px auto 18px;place-items:center;border-radius:50%;background:radial-gradient(circle at center,white 53%,transparent 54%),conic-gradient(var(--primary) 0 var(--paid-end, 0%),var(--primary-container) var(--paid-end, 0%) var(--pending-end, 0%),var(--tertiary-container) var(--pending-end, 0%) 100%)}.donut strong{align-self:end;font-size:24px}.donut span{align-self:start;color:var(--muted);font-size:12px;font-weight:700}.legend{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px}.legend span{width:12px;height:12px;border-radius:50%}.legend .primary{background:var(--primary)}.legend .blue{background:var(--primary-container)}.legend .orange{background:var(--tertiary-container)}.legend p{margin:0;color:var(--muted);font-size:14px}.legend strong{font-size:16px}.table-card{overflow:hidden}.table-title{margin:0;padding:24px;background:var(--surface);border-bottom:1px solid var(--outline-variant)}.table-title button{border:0;background:transparent;color:var(--primary);font-weight:700}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:16px 24px;color:var(--muted);background:var(--surface-low);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}td{padding:16px 24px;border-top:1px solid rgba(195,198,215,.55);color:var(--text);font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}tbody tr{transition:background .18s ease}tbody tr:hover,tbody tr.selected{background:#2563eb0d}.name-cell{display:flex;align-items:center;gap:16px}.name-cell strong{display:block;font-size:16px}.name-cell span{display:block;color:var(--outline);font-size:12px;font-weight:700}.status{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:800}.status i{width:6px;height:6px;border-radius:50%}.status.success{color:#047857;background:#dcfce7}.status.success i{background:#059669}.status.warning{color:#a16207;background:#fef3c7}.status.warning i{background:#ca8a04}.status.danger{color:#b91c1c;background:#fee2e2}.status.danger i{background:#dc2626}.status.neutral{color:var(--muted);background:var(--surface-highest)}.status.neutral i{display:none}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:24px;color:var(--muted);background:var(--surface-low);font-size:14px}.table-footer div{display:flex;gap:4px}.table-footer button{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--outline-variant);border-radius:8px;background:transparent}.borrowers.with-drawer{max-width:980px;margin-right:532px}.drawer{position:fixed;inset:0 0 0 auto;z-index:60;display:flex;width:min(500px,100%);flex-direction:column;background:#fff;border-left:1px solid var(--outline-variant);box-shadow:var(--shadow-lg);transform:translate(110%);transition:transform .25s ease}.drawer.open{transform:translate(0)}.drawer header,.drawer footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 32px;border-bottom:1px solid var(--outline-variant)}.drawer header>div,.drawer footer{display:flex;align-items:center;gap:8px}.drawer-body{flex:1;overflow-y:auto;padding:32px}.profile-summary{text-align:center}.profile-summary h4{margin:16px 0 0;font-size:20px}.profile-summary p{margin:4px 0 0;color:var(--muted);font-size:14px}.finance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:32px 0}.finance-grid div{padding:16px;border-radius:12px;background:var(--surface-low);text-align:center}.finance-grid span,.general-info span,.section-head span{color:var(--outline);font-size:12px;font-weight:800;text-transform:uppercase}.finance-grid strong{display:block;color:var(--primary);font-size:24px;line-height:32px}.finance-grid .alert{background:#ffdad680}.finance-grid .alert span,.finance-grid .alert strong{color:var(--error)}.section-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:24px}.section-head h5,.general-info h5{margin:0;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.month-grid div{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:1px solid var(--outline-variant);border-radius:8px}.month-grid span{color:var(--outline);font-size:12px;font-weight:800}.month-grid .paid{background:#dcfce759}.month-grid .paid .material-symbols-outlined{color:#059669}.month-grid .missed{background:#ffdad640;border-color:#ba1a1a40}.month-grid .missed span,.month-grid .missed .material-symbols-outlined{color:var(--error)}.month-grid .upcoming{background:var(--surface-container)}.month-grid .upcoming i{width:24px;height:24px;border-radius:50%;background:#c3c6d773}.general-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin-top:32px}.general-info h5,.general-info .wide{grid-column:1 / -1}.general-info p{margin:4px 0 0}.drawer footer{border-top:1px solid var(--outline-variant);border-bottom:0;background:var(--surface-low)}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:4px;color:var(--muted);font-size:14px;font-weight:600}.breadcrumb .material-symbols-outlined{font-size:16px}.breadcrumb strong{color:var(--text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.form-panel{padding:32px}.form-panel h3{display:flex;align-items:center;gap:8px;margin-bottom:24px}.form-panel h3 .material-symbols-outlined{color:var(--primary)}.form-stack{display:flex;flex-direction:column;gap:16px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.currency-field b{position:absolute;color:var(--outline);font-weight:600}.currency-field b:first-child{left:12px}.currency-field b:last-child{right:12px}.currency-field.has-adornment input{text-align:right}.currency-field b:first-child+input{padding-left:32px}.currency-field input+b{padding-right:0}.schedule-panel{margin-top:24px;overflow:hidden;padding:0}.schedule-panel .panel-header{margin:0;padding:24px 32px;border-bottom:1px solid var(--outline-variant)}.schedule-panel td:nth-child(3),.schedule-panel td:nth-child(4),.schedule-panel td:nth-child(5),.schedule-panel th:nth-child(3),.schedule-panel th:nth-child(4),.schedule-panel th:nth-child(5),.schedule-panel tfoot td{text-align:right}.schedule-panel tfoot td{border-top:2px solid var(--outline-variant);font-size:20px;font-weight:800}.schedule-panel tfoot td:nth-child(2){color:var(--primary)}.muted-row td{color:var(--outline);background:#f3f3fe8c;text-align:center!important;font-size:12px;font-weight:700}.form-actions{display:flex;justify-content:flex-end;gap:16px;padding:24px 0 64px}.integrity-card{position:fixed;top:80px;right:24px;width:256px;padding:24px;border:1px solid var(--outline-variant);border-radius:12px;background:var(--surface-container)}.integrity-card h3{display:flex;align-items:center;gap:4px;margin:0 0 16px;font-size:14px}.integrity-card p{display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--muted);font-size:12px}.integrity-card p:first-of-type .material-symbols-outlined{color:#059669}.integrity-card p:nth-of-type(2) .material-symbols-outlined{color:var(--error)}.integrity-card .disabled{opacity:.5}.mini-chart{display:flex;align-items:end;gap:10px;height:110px;margin-top:24px;padding:14px;border-top:1px solid var(--outline-variant)}.mini-chart i{flex:1;border-radius:6px 6px 0 0;background:var(--primary-container)}.mini-chart i:nth-child(1){height:35%;opacity:.35}.mini-chart i:nth-child(2){height:55%;opacity:.55}.mini-chart i:nth-child(3){height:76%;opacity:.75}.mini-chart i:nth-child(4){height:95%}.integrity-card>span{display:block;color:var(--muted);font-size:12px;text-align:center}@media (max-width: 1280px){.integrity-card{display:none}.borrowers.with-drawer{width:min(100% - 64px,1440px);margin-right:auto}}@media (max-width: 1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-8,.span-4{grid-column:1 / -1}.form-grid{grid-template-columns:1fr}}@media (max-width: 860px){.sidebar{display:none}.topbar{left:0;padding:0 16px}.mobile-brand{display:flex;align-items:center;gap:8px;color:var(--primary);font-size:20px;font-weight:700}.search,.topbar-user,.text-button{display:none}.content{width:calc(100% - 32px);margin-left:auto;margin-right:auto;padding-top:96px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h2{font-size:28px;line-height:36px}.metric-grid,.finance-grid{grid-template-columns:1fr}.drawer{width:100%}.drawer header,.drawer footer,.drawer-body{padding-inline:20px}.month-grid{grid-template-columns:repeat(3,1fr)}.general-info,.two-col{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.primary-button.large,.secondary-button.large{width:100%}}@media (max-width: 560px){.login-screen{padding:16px}.login-card{padding:24px}.footer-links{gap:12px;flex-wrap:wrap;justify-content:center}.support-fab{display:none}.bar-chart{gap:8px;padding-inline:12px}.bar-chart i{width:28px}th,td{padding:14px 16px}.panel,.form-panel{padding:20px}}.user-screen,.track-shell{min-height:100dvh;padding:24px;background:radial-gradient(circle at top left,#dbeafe,#eff6ff 30%,#f8fafc)}.user-card,.track-wrap{max-width:920px;margin:0 auto;border-radius:20px;border:1px solid #dbe3f0;background:#ffffffe6;box-shadow:0 20px 40px #0f172a14}.user-card{max-width:460px;margin-top:12vh;padding:32px}.user-card h1,.track-header h1{margin:0;color:#0f172a}.user-card h2{margin:8px 0 0;font-size:22px}.user-card p,.track-header p{margin:8px 0 0;color:#475569}.user-card small{display:block;margin-top:18px;color:#64748b}.user-form{margin-top:18px;display:grid;gap:12px}.user-input{width:100%;min-height:46px;border:1px solid #cbd5e1;border-radius:12px;padding:10px 14px}.user-button{min-height:46px;border:0;border-radius:12px;background:#2563eb;color:#fff;font-weight:700}.user-button:hover{filter:brightness(1.05)}.user-error{color:#b91c1c;margin:8px 0 0}.user-loading,.user-error-block{padding:24px;text-align:center}.track-wrap{padding:24px}.track-header{margin-bottom:18px}.track-header div{color:#475569;margin-top:4px}.track-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.track-card,.track-panel{background:#fff;border-radius:14px;padding:18px;border:1px solid #e2e8f0}.track-card p{margin:0;color:#475569}.track-card strong{margin-top:6px;display:block;font-size:26px}.track-panel{margin-top:12px}.track-panel-title{margin:0 0 12px;font-weight:700}.track-progress-bg{width:100%;background:#e2e8f0;border-radius:999px;height:14px}.track-progress-fill{background:linear-gradient(90deg,#10b981,#22c55e);height:14px;border-radius:999px}.track-progress-label{margin:8px 0 0;color:#64748b}.track-table-wrap{overflow-x:auto}.track-table{width:100%;border-collapse:collapse}.track-table th,.track-table td{text-align:left;padding:12px 8px;border-bottom:1px solid #e2e8f0}.track-table th{color:#64748b;font-size:12px;text-transform:uppercase}.track-badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;text-transform:capitalize}.track-badge.is-paid{background:#dcfce7;color:#166534}.track-badge.is-pending{background:#fef3c7;color:#92400e}.track-badge.is-defaulter{background:#fee2e2;color:#991b1b}@media (max-width: 900px){.track-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.user-screen,.track-shell{padding:12px}.user-card{margin-top:6vh;padding:20px}.track-wrap{padding:14px}.track-card-grid{grid-template-columns:1fr}}
