:root{--font:"Vazirmatn",system-ui,sans-serif;--bg:#f1f5f9;--bg-elevated:#ffffff;--bg-subtle:#f8fafc;--sidebar-bg:#0f172a;--sidebar-bg-hover:#1e293b;--sidebar-border:#1e293b;--sidebar-text:#94a3b8;--sidebar-text-active:#f8fafc;--sidebar-accent:#10b981;--admin-sidebar:#111827;--admin-accent:#3b82f6;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border:#e2e8f0;--border-strong:#cbd5e1;--primary:#059669;--primary-hover:#047857;--primary-light:#ecfdf5;--primary-muted:#d1fae5;--danger:#dc2626;--danger-hover:#b91c1c;--danger-light:#fef2f2;--warning:#d97706;--warning-light:#fffbeb;--success:#059669;--success-light:#ecfdf5;--info:#2563eb;--info-light:#eff6ff;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:18px;--shadow-xs:0 1px 2px rgba(15,23,42,0.04);--shadow-sm:0 1px 3px rgba(15,23,42,0.06),0 1px 2px rgba(15,23,42,0.04);--shadow:0 4px 16px rgba(15,23,42,0.06);--shadow-lg:0 12px 40px rgba(15,23,42,0.1);--sidebar-width:260px;--header-height:64px}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;font-family:var(--font);background:var(--bg);color:var(--text);direction:rtl;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-left:1px solid var(--sidebar-border);display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;z-index:100}.sidebar--admin{background:var(--admin-sidebar)}.sidebar-brand{padding:20px 20px 16px;border-bottom:1px solid var(--sidebar-border)}.sidebar-brand-logo{display:flex;align-items:center;gap:12px}.sidebar-brand-icon{width:40px;height:40px;border-radius:var(--radius);background:linear-gradient(135deg,var(--primary) 0,#34d399 100%);display:flex;align-items:center;justify-content:center;color:white;font-weight:800;font-size:18px;flex-shrink:0}.sidebar-brand-icon--admin{background:linear-gradient(135deg,var(--admin-accent) 0,#60a5fa 100%)}.sidebar-brand-title{font-size:15px;font-weight:700;color:var(--sidebar-text-active);line-height:1.3}.sidebar-brand-sub{font-size:11px;color:var(--sidebar-text);margin-top:2px}.sidebar-nav{flex:1 1;padding:16px 12px;overflow-y:auto}.sidebar-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text);padding:8px 12px 6px;opacity:.7}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--sidebar-text);font-size:14px;font-weight:500;transition:all .15s ease;margin-bottom:2px}.sidebar-link--active,.sidebar-link:hover{background:var(--sidebar-bg-hover);color:var(--sidebar-text-active)}.sidebar-link--active{box-shadow:inset 3px 0 0 var(--sidebar-accent)}.sidebar-link--admin.sidebar-link--active{box-shadow:inset 3px 0 0 var(--admin-accent)}.sidebar-link-icon{width:20px;height:20px;opacity:.7;flex-shrink:0}.sidebar-link--active .sidebar-link-icon,.sidebar-link:hover .sidebar-link-icon{opacity:1}.sidebar-footer{padding:16px;border-top:1px solid var(--sidebar-border)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--radius-sm);background:var(--sidebar-bg-hover)}.sidebar-user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:white;font-size:13px;font-weight:700;flex-shrink:0}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--sidebar-text-active);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:var(--sidebar-text)}.main-content{flex:1 1;margin-right:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column}.topbar{height:var(--header-height);background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.topbar-title{font-size:15px;font-weight:600;color:var(--text)}.topbar-actions{display:flex;align-items:center;gap:12px}.page-body{padding:28px;flex:1 1}.page-header{margin-bottom:28px}.page-header-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:8px}.page-header-breadcrumb span{color:var(--text-secondary)}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header h1{margin:0;font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.02em}.page-header p{margin:6px 0 0;font-size:14px;color:var(--text-secondary)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-header h2{margin:0;font-size:15px;font-weight:700;color:var(--text)}.card-body{padding:22px}.card-body--flush{padding:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;display:flex;align-items:flex-start;gap:16px;box-shadow:var(--shadow-xs);transition:box-shadow .15s}.stat-card:hover{box-shadow:var(--shadow-sm)}.stat-card-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-icon--green{background:var(--primary-light);color:var(--primary)}.stat-card-icon--blue{background:var(--info-light);color:var(--info)}.stat-card-icon--amber{background:var(--warning-light);color:var(--warning)}.stat-card-icon--purple{background:#f5f3ff;color:#7c3aed}.stat-card-icon--red{background:var(--danger-light);color:var(--danger)}.stat-card-content{flex:1 1;min-width:0}.stat-card-label{font-size:13px;color:var(--text-secondary);font-weight:500;margin-bottom:4px}.stat-card-value{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.03em;line-height:1.1}.stat-card-value--sm{font-size:18px}.stat-card-trend{font-size:12px;color:var(--text-muted);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--primary);color:white;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--bg-subtle);color:var(--text)}.btn-danger{background:var(--danger);color:white}.btn-danger:hover{background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-subtle)}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:12px 22px;font-size:14px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-group{display:flex;gap:8px;flex-wrap:wrap}.form-group{margin-bottom:18px}.label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.input,.select,.textarea{width:100%;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;background:var(--bg-elevated);color:var(--text);transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.input-hint{font-size:12px;color:var(--text-muted);margin-top:5px}.jalali-picker{margin-bottom:18px;position:relative}.jalali-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:right;cursor:pointer}.jalali-picker-trigger--disabled{opacity:.55;cursor:not-allowed}.jalali-picker-value{color:var(--text)}.jalali-picker-icon,.jalali-picker-placeholder{color:var(--text-muted)}.jalali-picker-icon{flex-shrink:0}.jalali-calendar-portal{pointer-events:auto}.jalali-calendar{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg,0 12px 40px rgba(0,0,0,.12));padding:14px;direction:rtl}.jalali-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}.jalali-calendar-title{font-size:14px;font-weight:700;color:var(--text);text-align:center;flex:1 1}.jalali-calendar-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s}.jalali-calendar-nav:hover{background:var(--primary-muted);border-color:var(--primary);color:var(--primary)}.jalali-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-bottom:6px}.jalali-calendar-weekday{text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);padding:4px 0}.jalali-calendar-grid{display:flex;flex-direction:column;gap:4px}.jalali-calendar-row{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.jalali-calendar-cell{aspect-ratio:1;min-height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:13px;color:var(--text);cursor:pointer;transition:background .12s,color .12s}.jalali-calendar-cell--empty{cursor:default;pointer-events:none}.jalali-calendar-cell:not(.jalali-calendar-cell--empty):not(.jalali-calendar-cell--disabled):hover{background:var(--primary-muted);color:var(--primary)}.jalali-calendar-cell--selected{background:var(--primary)!important;color:#fff!important;font-weight:700}.jalali-calendar-cell--today:not(.jalali-calendar-cell--selected){border:1px solid var(--primary);color:var(--primary);font-weight:600}.jalali-calendar-cell--disabled{opacity:.35;cursor:not-allowed}.jalali-calendar-footer{display:flex;justify-content:space-between;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.jalali-month-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-top:4px}.jalali-month-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:12px 6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.jalali-month-cell:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.jalali-month-cell--selected{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important;font-weight:700}.jalali-month-cell--today:not(.jalali-month-cell--selected){border-color:var(--primary);color:var(--primary);font-weight:600}.jalali-month-cell--disabled{opacity:.35;cursor:not-allowed}.jalali-picker--compact{margin-bottom:12px}.jalali-picker--compact .jalali-picker-trigger{padding:7px 10px;font-size:13px;min-height:0}.label--compact{margin-bottom:4px;font-size:12px}.input-hint--compact{margin-top:3px;font-size:11px}.jalali-calendar--compact{padding:8px 10px;border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(0,0,0,.1)}.jalali-calendar--compact .jalali-calendar-header{margin-bottom:6px;gap:4px}.jalali-calendar--compact .jalali-calendar-title{font-size:12px}.jalali-calendar--compact .jalali-calendar-nav{width:26px;height:26px;font-size:15px}.jalali-calendar--compact .jalali-calendar-weekdays{gap:2px;margin-bottom:4px}.jalali-calendar--compact .jalali-calendar-weekday{font-size:10px;padding:2px 0}.jalali-calendar--compact .jalali-calendar-grid,.jalali-calendar--compact .jalali-calendar-row{gap:2px}.jalali-calendar--compact .jalali-calendar-cell{min-height:0;height:28px;font-size:11px;border-radius:4px}.jalali-calendar-footer--compact{margin-top:6px;padding-top:6px;justify-content:center}.jalali-calendar-footer--compact .btn-sm{padding:4px 10px;font-size:11px}.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13px;display:flex;align-items:flex-start;gap:10px;border:1px solid}.alert-error{background:var(--danger-light);color:#991b1b;border-color:#fecaca}.alert-success{background:var(--success-light);color:#065f46;border-color:#a7f3d0}.alert-warning{background:var(--warning-light);color:#92400e;border-color:#fde68a}.alert-info{background:var(--info-light);color:#1e40af;border-color:#bfdbfe}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.01em;border:1px solid transparent}.badge-pending{background:#fffbeb;color:#92400e;border-color:#fde68a}.badge-active{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.badge-rejected{background:#fef2f2;color:#991b1b;border-color:#fecaca}.badge-review{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.badge-approved{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.badge-cancelled{background:#f8fafc;color:#475569;border-color:#e2e8f0}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:11px 18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-subtle);white-space:nowrap}.data-table td,.data-table th{text-align:right;border-bottom:1px solid var(--border)}.data-table td{padding:14px 18px;font-size:13px;color:var(--text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-subtle)}.data-table .cell-muted{color:var(--text-muted);font-size:12px}.data-table .cell-actions{display:flex;gap:6px}.empty-state{text-align:center;padding:56px 24px;color:var(--text-muted)}.empty-state-icon{width:56px;height:56px;margin:0 auto 16px;background:var(--bg-subtle);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.empty-state h3{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--text-secondary)}.empty-state p{margin:0;font-size:13px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:400px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.login-card-header{display:flex;align-items:center;gap:14px;padding:28px 28px 0}.login-card-title{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.02em}.login-card-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.login-card-body{padding:24px 28px 28px}.login-form .form-group:last-of-type{margin-bottom:20px}.login-submit{width:100%}.login-footnote{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted);text-align:center;line-height:1.6}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-panel-brand{background:linear-gradient(160deg,#0f172a,#1e3a5f 50%,#0f4c3a);display:flex;flex-direction:column;justify-content:center;padding:60px;color:white;position:relative;overflow:hidden}.auth-panel-brand:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 80%,rgba(16,185,129,.15) 0,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(59,130,246,.12) 0,transparent 50%)}.auth-panel-brand>*{position:relative;z-index:1}.auth-brand-logo{width:56px;height:56px;background:linear-gradient(135deg,#10b981,#34d399);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;margin-bottom:32px}.auth-brand-title{font-size:32px;font-weight:800;line-height:1.3;margin:0 0 16px;letter-spacing:-.03em}.auth-brand-desc{font-size:15px;line-height:1.7;color:rgba(255,255,255,.65);max-width:380px}.auth-brand-features{margin-top:40px;display:flex;flex-direction:column;gap:14px}.auth-brand-feature{display:flex;align-items:center;gap:12px;font-size:14px;color:rgba(255,255,255,.8)}.auth-brand-feature-dot{width:8px;height:8px;border-radius:50%;background:#10b981;flex-shrink:0}.auth-panel-form{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg)}.auth-form-card{width:100%;max-width:400px}.auth-form-card h1{margin:0 0 6px;font-size:24px;font-weight:800;letter-spacing:-.02em}.auth-form-card .subtitle{margin:0 0 28px;font-size:14px;color:var(--text-secondary)}.auth-divider{text-align:center;margin-top:24px;font-size:13px;color:var(--text-muted)}.auth-divider a{color:var(--primary);font-weight:600}.auth-demo-box{margin-top:20px;padding:12px 14px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);line-height:1.8}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.quick-action{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);transition:all .15s;cursor:pointer}.quick-action:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.quick-action-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-action-text strong{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px}.quick-action-text span{font-size:12px;color:var(--text-muted)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-muted);font-size:14px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.admin-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.admin-action-card{padding:22px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:12px;transition:all .15s}.admin-action-card:hover{border-color:var(--admin-accent);box-shadow:var(--shadow)}.admin-action-card h3{margin:0;font-size:15px;font-weight:700}.admin-action-card p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.6;flex:1 1}.debt-panel{border-radius:var(--radius-sm);padding:14px 16px;border:1px solid var(--border)}.debt-panel--clear{display:flex;align-items:flex-start;gap:12px;background:#f0fdf4;border-color:#bbf7d0;color:#166534}.debt-panel--warning{background:#fffbeb;border-color:#fde68a}.debt-panel--danger{background:#fef2f2;border-color:#fecaca}.debt-panel-icon{width:28px;height:28px;border-radius:50%;background:#bbf7d0;color:#166534;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.debt-panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.debt-panel-total{font-weight:700;color:var(--danger);font-size:14px}.debt-panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.debt-panel-item{display:flex;flex-direction:column;gap:2px}.debt-panel-label{font-size:12px;color:var(--text-muted)}.debt-panel-value{font-weight:700;font-size:14px}.debt-panel-loans{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.debt-panel-loan-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-light,var(--border));font-size:13px}.debt-panel-loan-row:last-child{border-bottom:none}.cell-danger{color:var(--danger);font-weight:600}.modal-root{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:modal-fade-in .2s ease}.modal-dialog{width:100%;max-height:calc(100vh - 40px);overflow:auto;animation:modal-slide-in .25s ease}.modal-dialog--sm{max-width:420px}.modal-dialog--md{max-width:560px}.modal-dialog--lg{max-width:720px}.modal-content--detail{text-align:right}.modal-detail-header{margin-bottom:16px}.modal-title--detail{text-align:right;margin-bottom:4px}.modal-subtitle{margin:0;font-size:14px;color:var(--text-muted);text-align:right}.modal-actions--detail{margin-top:20px;justify-content:flex-start}.modal-content{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:28px 28px 24px;box-shadow:var(--shadow-lg);border:1px solid var(--border);text-align:center}.modal-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:22px;font-weight:800}.modal-icon--success{background:var(--success-light);color:var(--success);border:2px solid var(--primary-muted)}.modal-icon--error{background:var(--danger-light);color:var(--danger);border:2px solid #fecaca}.modal-icon--warning{background:var(--warning-light);color:var(--warning);border:2px solid #fde68a}.modal-icon--info{background:var(--info-light);color:var(--info);border:2px solid #bfdbfe}.modal-title{margin:0 0 8px;font-size:18px;font-weight:800;color:var(--text)}.modal-message{margin:0 0 24px;font-size:14px;line-height:1.7;color:var(--text-secondary);white-space:pre-line}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions--center{justify-content:center}.loan-approve-modal{text-align:right}.loan-approve-requested{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;margin-bottom:16px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary)}.loan-approve-dot{opacity:.5}.stepper-field{display:grid;grid-template-columns:40px 1fr 40px;grid-gap:8px;gap:8px;align-items:center}.stepper-field--compact{grid-template-columns:40px 1fr 40px}.stepper-field .input{text-align:center}.stepper-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:20px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.stepper-btn:hover:not(:disabled){background:var(--primary-muted);border-color:var(--primary);color:var(--primary)}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.stepper-value{text-align:center;font-size:15px;font-weight:700;color:var(--text);padding:10px}.loan-approve-preview,.stepper-value{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle)}.loan-approve-preview{margin-top:4px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.loan-approve-preview-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-secondary)}.loan-approve-preview-row strong{color:var(--text)}.loan-approve-preview-row--highlight strong{color:var(--primary);font-size:15px}.loan-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.loan-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.loan-tab--active,.loan-tab:hover{border-color:var(--primary);color:var(--primary)}.loan-tab--active{background:var(--primary-muted)}.loan-tab-count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(0,0,0,.06);display:inline-flex;align-items:center;justify-content:center;font-size:11px}.loan-card-list{display:flex;flex-direction:column;gap:12px}.loan-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-elevated)}.loan-card-summary{width:100%;display:grid;grid-template-columns:1fr auto;grid-gap:8px 12px;gap:8px 12px;padding:14px 16px;border:none;background:transparent;text-align:right;cursor:pointer;font-family:var(--font)}.loan-card-main,.loan-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.loan-card-meta{grid-column:1;font-size:13px;color:var(--text-secondary)}.loan-card-dot{opacity:.45}.loan-card-summary .badge{grid-column:2;grid-row:1/span 2;align-self:center}.loan-card-body{padding:0 16px 16px;border-top:1px solid var(--border)}.loan-card-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px;padding:14px 0}.loan-card-details div{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.loan-card-purpose{margin:0 0 12px;font-size:13px;color:var(--text-secondary)}.loan-card-actions{margin-top:12px}.loan-installments-panel{margin-top:8px}.loan-installments-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.loan-installments-balance{font-size:13px;color:var(--danger);font-weight:700}.loan-card-v2{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:18px 20px;box-shadow:var(--shadow-xs);transition:border-color .15s,box-shadow .15s}.loan-card-v2:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.loan-card-v2-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.loan-card-v2-title{margin:0;font-size:16px;font-weight:800;color:var(--text)}.loan-card-v2-date{display:block;margin-top:4px;font-size:12px;color:var(--text-muted)}.loan-card-v2-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.loan-card-v2-stat{padding:10px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border)}.loan-card-v2-stat-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.loan-card-v2-stat strong{font-size:14px;color:var(--text)}.loan-card-v2-stat--danger strong{color:var(--danger)}.loan-card-v2-progress{margin-bottom:14px}.loan-card-v2-progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.loan-card-v2-progress-bar{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.loan-card-v2-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),#34d399);border-radius:999px;transition:width .3s ease}.loan-card-v2-purpose{background:var(--bg-subtle);color:var(--text-secondary)}.loan-card-v2-note,.loan-card-v2-purpose{margin:0 0 14px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.6}.loan-card-v2-note{background:var(--danger-light);color:var(--danger)}.loan-card-v2-note span{font-weight:700}.loan-card-v2-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.loan-card-v2-status-hint{font-size:13px;color:var(--text-muted)}.modal-close-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);font-size:22px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.modal-close-btn:hover{background:var(--danger-light);color:var(--danger);border-color:#fecaca}.loan-installments-modal{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-lg);border:1px solid var(--border);text-align:right}.loan-installments-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.loan-installments-modal-title{margin:0;font-size:20px;font-weight:800;color:var(--text)}.loan-installments-modal-sub{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.loan-installments-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.loan-installments-summary-item{padding:12px 14px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.loan-installments-summary-item span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.loan-installments-summary-item strong{font-size:15px;color:var(--text)}.loan-installments-summary-item--danger strong{color:var(--danger)}.loan-installments-progress{margin-bottom:16px;padding:14px;background:var(--primary-light);border:1px solid var(--primary-muted);border-radius:var(--radius)}.loan-installments-progress-top{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--primary);margin-bottom:8px}.loan-installments-progress-bar{height:10px;background:rgba(255,255,255,.7);border-radius:999px;overflow:hidden}.loan-installments-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),#34d399);border-radius:999px}.loan-installments-next-due{margin:10px 0 0;font-size:12px;color:var(--text-secondary)}.loan-installments-purpose{margin:0 0 16px;padding:10px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary)}.loan-installments-purpose span{font-weight:700;color:var(--text)}.loan-installments-list-wrap{border-top:1px solid var(--border);padding-top:16px}.loan-installments-list-title{margin:0 0 14px;font-size:14px;font-weight:800;color:var(--text)}.loan-installments-empty{margin:0;padding:24px 0;text-align:center;font-size:13px;color:var(--text-muted)}.installment-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto}.installment-timeline-item{display:flex;gap:12px;align-items:stretch}.installment-timeline-marker{width:36px;flex-shrink:0;display:flex;align-items:flex-start;justify-content:center;padding-top:12px}.installment-timeline-marker span{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;background:var(--bg-subtle);border:2px solid var(--border);color:var(--text-secondary)}.installment-timeline-item--paid .installment-timeline-marker span{background:var(--success-light);border-color:var(--primary);color:var(--primary)}.installment-timeline-item--overdue .installment-timeline-marker span{background:var(--danger-light);border-color:var(--danger);color:var(--danger)}.installment-timeline-item--pending .installment-timeline-marker span{background:var(--info-light);border-color:var(--info);color:var(--info)}.installment-timeline-body{flex:1 1;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.installment-timeline-item--paid .installment-timeline-body{background:var(--success-light);border-color:var(--primary-muted)}.installment-timeline-item--overdue .installment-timeline-body{background:var(--danger-light);border-color:#fecaca}.installment-timeline-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.installment-timeline-date{display:block;margin-top:4px;font-size:12px;color:var(--text-muted);font-weight:400}.installment-timeline-amount{font-size:15px;color:var(--text);white-space:nowrap}.installment-timeline-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.installment-timeline-paid{font-size:12px;color:var(--text-muted)}.data-table--compact td,.data-table--compact th{padding:8px 10px;font-size:13px}.row-overdue td{background:rgba(239,68,68,.05)}.upcoming-installments-card{margin-bottom:20px}.upcoming-installments-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.upcoming-installments-total{text-align:left;font-size:12px;color:var(--text-muted)}.upcoming-installments-total strong{display:block;margin-top:4px;font-size:16px;color:var(--primary)}.upcoming-installments-list{list-style:none;margin:0;padding:0}.upcoming-installment-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border)}.upcoming-installment-item:last-child{border-bottom:none}.upcoming-installment-item--overdue{background:rgba(239,68,68,.04)}.upcoming-installment-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}@media (max-width:640px){.loan-card-summary{grid-template-columns:1fr}.loan-card-summary .badge{grid-column:1;grid-row:auto;justify-self:start}.upcoming-installment-item{flex-direction:column;align-items:flex-start}.upcoming-installment-actions{width:100%;flex-direction:row;justify-content:space-between;align-items:center}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.period-range-box{margin-bottom:18px;padding:14px 16px;background:linear-gradient(135deg,var(--info-light),#f8fafc);border:1px solid #bfdbfe;border-radius:var(--radius)}.period-range-label{display:block;font-size:11px;font-weight:700;color:var(--info);letter-spacing:.04em;margin-bottom:6px}.period-range-value{display:block;font-size:16px;color:var(--text);line-height:1.5}.form-row--dates{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.form-row--dates{grid-template-columns:1fr}}.coverage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.coverage-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--success-light);border:1px solid #a7f3d0;border-radius:var(--radius-sm)}.coverage-list-range{font-weight:700;color:#065f46}.coverage-list-meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.data-table .row-approved td{background:rgba(16,185,129,.04)}.cell-approved-range strong{color:#065f46}.receipt-upload{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--bg-subtle)}.receipt-upload:hover:not(.receipt-upload--disabled){border-color:var(--primary);background:var(--primary-light)}.receipt-upload--has-image{padding:12px;cursor:default}.receipt-upload--disabled{opacity:.6;cursor:not-allowed}.receipt-upload-input{display:none}.receipt-upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-secondary)}.receipt-upload-placeholder strong{font-size:14px;color:var(--text)}.receipt-upload-placeholder span{font-size:12px;color:var(--text-muted)}.receipt-upload-icon{font-size:28px;margin-bottom:4px}.receipt-upload-preview img{max-width:100%;max-height:220px;border-radius:var(--radius-sm);object-fit:contain}.receipt-upload-change{margin-top:10px}.receipt-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.receipt-image{max-width:100%;border-radius:var(--radius)}.sidebar-user-info{min-width:0}.sidebar-user-avatar--admin{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.sidebar-logout{width:100%;margin-top:10px;color:var(--sidebar-text)}.sidebar-section-label--spaced{margin-top:16px}.sidebar-overlay{display:none;position:fixed;inset:0;z-index:99;border:none;background:rgba(15,23,42,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer}.mobile-header{display:none;align-items:center;gap:12px;height:var(--header-height);padding:0 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:50}.mobile-header--admin{border-bottom-color:#1e293b22}.mobile-header-menu{width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.mobile-header-text{min-width:0}.mobile-header-title{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-header-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.topbar--desktop{display:flex}.layout-split{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;align-items:start}.layout-split--preview{grid-template-columns:1fr 320px}.layout-split--profile{grid-template-columns:280px 1fr}.layout-split--admin-membership{grid-template-columns:380px 1fr}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.sticky-panel{position:-webkit-sticky;position:sticky;top:20px}.review-queue-bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:16px 20px;margin-bottom:20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.review-queue-stat{display:flex;flex-direction:column;gap:2px}.review-queue-stat-value{font-size:22px;font-weight:800;color:var(--admin-accent);line-height:1}.review-queue-stat-value--warn{color:var(--danger)}.review-queue-stat-value--ok{color:var(--success)}.review-queue-stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.review-queue-divider{width:1px;height:36px;background:var(--border)}.review-card-list{display:flex;flex-direction:column;gap:16px}.review-card{position:relative;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 22px 20px;box-shadow:var(--shadow-xs);overflow:hidden;transition:box-shadow .15s,border-color .15s}.review-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.review-card--debt{border-color:#fecaca}.review-card-accent{position:absolute;top:0;right:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--admin-accent),#60a5fa)}.review-card--debt .review-card-accent{background:linear-gradient(180deg,var(--danger),#f87171)}.review-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.review-card-member{display:flex;align-items:center;gap:14px;min-width:0}.review-card-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--admin-accent),#60a5fa);color:white;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.review-card-avatar--debt{background:linear-gradient(135deg,var(--danger),#f87171)}.review-card-name{margin:0;font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.02em}.review-card-meta{margin:4px 0 0;font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-card-dot{opacity:.5}.review-card-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-card-type{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:16px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:14px}.review-card-type-label{font-size:12px;color:var(--text-muted);font-weight:600}.review-card-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:16px}.review-card-stat{padding:12px 14px;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border)}.review-card-stat--highlight{background:var(--info-light);border-color:#bfdbfe}.review-card-stat-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.review-card-stat-value{font-size:14px;font-weight:700;color:var(--text);line-height:1.3}.review-card-stat--highlight .review-card-stat-value{color:var(--info)}.review-card-purpose{margin-bottom:18px;padding:12px 14px;background:#fafafa;border-right:3px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.review-card-purpose-label{display:block;font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.review-card-purpose p{margin:0;font-size:14px;line-height:1.6;color:var(--text-secondary)}.review-card-actions{display:flex;gap:10px;padding-top:16px;border-top:1px solid var(--border)}.review-card-actions .btn{flex:1 1}.data-table--cards td.actions-col,.data-table--cards th.actions-col{white-space:nowrap}.page-header-action{flex-shrink:0}.page-header-action .btn{width:100%}@media (max-width:1024px){.layout-split--admin-membership{grid-template-columns:1fr}.review-card-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-panel-brand{display:none}.auth-panel-form{padding:24px 20px}.sidebar-overlay{display:block}.sidebar{transform:translateX(100%);transition:transform .25s ease;z-index:200;box-shadow:var(--shadow-lg)}.sidebar--open{transform:translateX(0)}.main-content{margin-right:0}.mobile-header{display:flex}.topbar--desktop{display:none}.page-body{padding:16px}.page-header{margin-bottom:20px}.page-header h1{font-size:20px}.page-header-row{flex-direction:column;align-items:stretch}.page-header-action{width:100%}.form-grid-2,.layout-split,.layout-split--preview,.layout-split--profile{grid-template-columns:1fr}.sticky-panel{position:static}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:16px}.stat-card-value{font-size:22px}.admin-action-grid{grid-template-columns:1fr}.card-header{padding:14px 16px;flex-direction:column;align-items:flex-start}.card-body{padding:16px}.btn-group{flex-direction:column}.btn-group .btn{width:100%}.review-card-actions{flex-direction:column}.review-queue-bar{gap:12px;padding:14px 16px}.review-queue-divider{display:none}.review-queue-stat{flex:1 1;min-width:calc(33% - 8px);text-align:center}.modal-content{padding:22px 20px 18px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}.review-card{padding:18px 16px 16px}.review-card-top{flex-direction:column}.review-card-badges{width:100%}.review-card-stats{grid-template-columns:1fr}.review-card-avatar{width:42px;height:42px;font-size:14px}.data-table--cards thead{display:none}.data-table--cards tbody tr{display:block;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;background:var(--bg-elevated)}.data-table--cards tbody tr:hover td{background:transparent}.data-table--cards td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.data-table--cards td:last-child{border-bottom:none}.data-table--cards td:before{content:attr(data-label);font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.data-table--cards td.actions-col{justify-content:flex-end}.data-table--cards td.actions-col:before{display:none}.data-table .cell-actions{width:100%;justify-content:flex-end}.debt-panel-header,.debt-panel-loan-row{flex-direction:column;align-items:flex-start}}.fund-bank-card{padding:16px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--primary-light)}.fund-bank-card--compact{margin-bottom:12px}.fund-bank-card-title{font-size:13px;font-weight:700;color:var(--primary);margin-bottom:12px}.fund-bank-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px}.fund-bank-label{color:var(--text-muted);font-size:12px;font-weight:600}.fund-bank-value{font-family:ui-monospace,monospace;font-size:13px;font-weight:700;color:var(--text);background:rgba(255,255,255,.6);padding:4px 8px;border-radius:6px}.fund-bank-note{margin:10px 0 0;font-size:12px;color:var(--text-secondary);line-height:1.6}.loan-request-page{max-width:520px;margin:0 auto;padding-bottom:8px}.loan-request-back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--text-secondary);min-height:44px;transition:color .15s}.loan-request-back-link:hover{color:var(--primary)}.loan-request-lead{margin:0 0 20px;font-size:13px;color:var(--text-muted);line-height:1.6}.loan-request-alert{margin-bottom:16px}.loan-request-form{display:flex;flex-direction:column;gap:4px}.loan-request-section{margin-bottom:20px}.loan-request-section-title{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--text-secondary)}.loan-request-optional{font-weight:500;color:var(--text-muted);font-size:12px}.loan-type-picker{display:flex;flex-direction:column;gap:10px}.loan-type-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);text-align:right;cursor:pointer;font-family:var(--font);transition:border-color .15s,background .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.loan-type-option:active{transform:scale(.99)}.loan-type-option--active{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 3px var(--primary-muted)}.loan-type-option-name{font-size:15px;font-weight:800;color:var(--text)}.loan-type-option-meta{font-size:12px;color:var(--text-muted);line-height:1.5}.loan-request-amount-card{padding:20px 16px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center}.loan-request-amount-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.loan-request-amount-input{width:100%;border:none;background:transparent;font-size:32px;font-weight:800;text-align:center;color:var(--text);padding:8px 4px;outline:none;font-family:var(--font);letter-spacing:-.02em}.loan-request-amount-input:focus{box-shadow:none}.loan-request-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.loan-request-stepper-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-subtle);color:var(--text);font-size:22px;font-weight:600;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}.loan-request-stepper-btn--lg{width:52px;height:52px;font-size:24px;border-radius:var(--radius-lg)}.loan-request-stepper-btn:hover:not(:disabled){background:var(--primary-muted);border-color:var(--primary);color:var(--primary)}.loan-request-stepper-btn:disabled{opacity:.35;cursor:not-allowed}.loan-request-range-hint,.loan-request-stepper-hint{font-size:12px;color:var(--text-muted)}.loan-request-range-hint{margin:8px 0 0;text-align:center}.loan-request-installment-card{display:flex;align-items:center;justify-content:center;gap:20px;padding:20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}.loan-request-installment-value{min-width:100px;text-align:center}.loan-request-installment-value strong{display:block;font-size:36px;font-weight:800;color:var(--primary);line-height:1.1}.loan-request-installment-value span{font-size:13px;color:var(--text-muted)}.loan-request-preview-card{padding:16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-lg)}.loan-request-preview-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.loan-request-preview-item{padding:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.loan-request-preview-item span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.loan-request-preview-item strong{font-size:14px;color:var(--text)}.loan-request-preview-item--highlight{grid-column:1/-1;background:var(--primary-light);border-color:var(--primary-muted)}.loan-request-preview-item--highlight strong{font-size:20px;color:var(--primary)}.loan-request-purpose{min-height:96px;font-size:15px;resize:vertical}.loan-request-field-error{margin:0 0 12px;padding:10px 12px;background:var(--danger-light);border-radius:var(--radius-sm);font-size:13px;color:var(--danger);text-align:center}.loan-request-footer-spacer{height:140px}.loan-request-bottom-bar{position:fixed;bottom:0;left:0;right:var(--sidebar-width);z-index:60;padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -8px 32px rgba(15,23,42,.08)}.loan-request-bottom-summary{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.loan-request-bottom-summary div{text-align:center}.loan-request-bottom-summary span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:2px}.loan-request-bottom-summary strong{font-size:15px;color:var(--text)}.loan-request-bottom-divider{width:1px;height:32px;background:var(--border);flex-shrink:0}.loan-request-bottom-hint{margin:0 0 10px;font-size:12px;color:var(--text-muted);text-align:center}.loan-request-submit{width:100%;min-height:48px}@media (max-width:900px){.loan-request-bottom-bar{right:0}.loan-request-page{max-width:none}.loan-type-picker{flex-direction:row;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.loan-type-option{min-width:200px;flex-shrink:0;scroll-snap-align:start}}@media (min-width:901px){.loan-request-bottom-bar{position:-webkit-sticky;position:sticky;bottom:16px;right:auto;left:auto;margin-top:8px;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.loan-request-footer-spacer{display:none}}.fund-balance-dashboard-card{margin-bottom:24px}.fund-balance-dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.fund-balance-panel{display:flex;flex-direction:column;gap:20px}.fund-balance-loading{margin:0;text-align:center;color:var(--text-muted);font-size:14px;padding:24px 0}.fund-balance-hero{text-align:center;padding:24px 20px;background:linear-gradient(160deg,var(--primary-light) 0,#ecfdf5 100%);border:1px solid var(--primary-muted);border-radius:var(--radius-lg)}.fund-balance-hero-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.fund-balance-hero-value{display:block;font-size:32px;font-weight:800;color:var(--primary);letter-spacing:-.02em;line-height:1.2}.fund-balance-hero-value--danger{color:var(--danger)}.fund-balance-hero-formula{margin:12px 0 0;font-size:12px;color:var(--text-muted);line-height:1.6}.fund-balance-mini-stats{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.fund-balance-mini-stats span{font-size:12px;color:var(--text-secondary);padding:6px 12px;background:var(--bg-subtle);border-radius:999px;border:1px solid var(--border)}.fund-balance-mini-stats strong{color:var(--text);font-weight:700}.fund-balance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.fund-balance-stat{padding:14px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated)}.fund-balance-stat span{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px}.fund-balance-stat strong{display:block;font-size:16px;color:var(--text);margin-bottom:4px}.fund-balance-stat small{font-size:11px;color:var(--text-muted)}.fund-balance-stat--in{background:var(--success-light);border-color:var(--primary-muted)}.fund-balance-stat--in strong{color:var(--primary)}.fund-balance-stat--out{background:var(--danger-light);border-color:#fecaca}.fund-balance-stat--out strong{color:var(--danger)}.fund-balance-stat--warn{background:var(--warning-light);border-color:#fde68a}.fund-balance-stat--warn strong{color:var(--warning)}.fund-balance-breakdown{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.fund-balance-breakdown-title{margin:0;padding:12px 16px;font-size:13px;font-weight:700;color:var(--text-secondary);background:var(--bg-subtle);border-bottom:1px solid var(--border)}.fund-balance-breakdown-title:not(:first-child){border-top:1px solid var(--border)}.fund-balance-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.fund-balance-row:last-child{border-bottom:none}.fund-balance-row--highlight{background:var(--primary-light)}.fund-balance-row--danger .fund-balance-row-value{color:var(--danger)}.fund-balance-row-label{display:block;font-size:13px;color:var(--text);font-weight:600}.fund-balance-row-sub{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}.fund-balance-row-value{font-size:14px;color:var(--text);white-space:nowrap}.admin-loan-list{display:flex;flex-direction:column;gap:12px}.admin-loan-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:16px 18px;box-shadow:var(--shadow-xs)}.admin-loan-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.admin-loan-card-title{display:block;font-size:16px;font-weight:800;color:var(--text)}.admin-loan-card-member{display:block;margin-top:4px;font-size:14px;color:var(--text-secondary)}.admin-loan-card-date{display:block;margin-top:2px;font-size:12px;color:var(--text-muted)}.admin-loan-card-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:10px;gap:10px;margin-bottom:12px}.admin-loan-card-stats div{padding:10px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border)}.admin-loan-card-stats span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.admin-loan-card-stats strong{font-size:14px;color:var(--text)}.admin-loan-card-stat--danger strong{color:var(--danger)}.admin-loan-card-purpose{margin:0 0 10px;font-size:13px;color:var(--text-secondary);line-height:1.5}.admin-loan-card-note{margin:0 0 10px;padding:8px 10px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:12px;color:var(--text-muted)}.admin-loan-card-note span{font-weight:700;color:var(--text-secondary)}.admin-loan-card-footer{padding-top:12px;border-top:1px solid var(--border)}