:root{color:#17211d;font-synthesis:none;background:#f2f4ee;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{color:#eff7f2;background:#172c25;flex-direction:column;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:0 8px 30px;display:flex}.brand>div:last-child{display:grid}.brand span{color:#91a89f;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.brand-mark{color:#172c25;letter-spacing:-.05em;background:#d8f06d;border-radius:18px;place-items:center;width:58px;height:58px;font-weight:800;display:grid;box-shadow:0 12px 30px #0b1b1640}.brand-mark.small{border-radius:13px;width:42px;height:42px}.sidebar nav{gap:7px;display:grid}.nav-group{gap:8px;display:grid}.nav-parent{color:#eff7f2;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;min-height:46px;padding:0 12px;display:grid}.nav-parent>span{color:#172c25;background:#d8f06d;border-radius:9px;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.nav-parent small{text-align:center;color:#b7c9c1;background:#ffffff12;border-radius:999px;min-width:22px;padding:3px 6px}.nav-submenu{border-left:1px solid #ffffff18;margin-left:25px;padding-left:12px}.sidebar nav button{color:#9fb2aa;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.sidebar nav button span{text-align:center;width:22px;font-size:18px}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:#29483d}.sidebar-foot{color:#a9bbb4;border-top:1px solid #ffffff18;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;margin-top:auto;padding:18px 10px 0;font-size:12px;display:grid}.sidebar-foot button{color:#d8f06d;background:0 0;border:0;padding:0}.live-dot{background:#d8f06d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #d8f06d18}.content{width:100%;min-width:0;max-width:1500px;margin:0 auto;padding:42px clamp(24px,5vw,76px) 72px}.content>header{justify-content:space-between;align-items:start;gap:20px;margin-bottom:34px;display:flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:0;font-size:clamp(28px,3.2vw,46px);line-height:1.08}h2{letter-spacing:-.03em;margin-bottom:0;font-size:31px}h3{margin-bottom:0;font-size:20px}.eyebrow{color:#6e7e76;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700}.section-heading{justify-content:space-between;align-items:end;display:flex}.status-pill{color:#22624e;background:#dcecdf;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.stack-xl{gap:24px;min-width:0;display:grid}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric-card,.panel{background:#fff;border:1px solid #dfe5dd;min-width:0;box-shadow:0 16px 45px #2341340a}.metric-card{border-radius:18px;flex-direction:column;justify-content:space-between;min-height:148px;padding:22px;display:flex}.metric-card span{color:#728078;font-size:13px}.metric-card strong{letter-spacing:-.04em;font-size:clamp(23px,2.2vw,34px)}.metric-card small{font-weight:600}.positive{color:#27735b}.negative{color:#b94d4d}.neutral{color:#718079}.panel{border-radius:22px;padding:26px}.panel.compact{min-height:158px}.panel.compact h3{margin:15px 0 8px;font-size:30px}.panel.compact span{color:#78867e;font-size:13px}.panel.compact.accent{background:#d8f06d;border-color:#c8e053}.panel-title{justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px;display:flex}.panel-title>strong{font-size:22px}.allocation-grid,.ratio-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.ratio-card{min-height:140px}.ratio-card h3{margin:14px 0 8px;font-size:30px}.ratio-card span{color:#78867e;font-size:13px}.detail-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.detail-metric{background:#fafbf8;border:1px solid #e6eae5;border-radius:14px;gap:6px;min-width:0;padding:16px;display:grid}.detail-metric>span{color:#8a968f;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.detail-metric>strong{color:#55645c;font-size:12px}.detail-metric>b{text-overflow:ellipsis;letter-spacing:-.03em;font-size:20px;overflow:hidden}.detail-metric>small{min-height:16px;font-size:11px;font-weight:650}.chart-wrap svg{width:100%;max-height:250px;display:block;overflow:visible}.chart-labels{color:#839087;justify-content:space-between;font-size:11px;display:flex}.empty-chart{color:#87928b;border:1px dashed #d7ddd7;border-radius:14px;place-items:center;min-height:180px;display:grid}.split-layout{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:start;gap:22px;display:grid}.editor-panel{position:sticky;top:24px}.form-grid{gap:15px;margin-bottom:18px;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}label{color:#5c6b63;gap:7px;font-size:12px;font-weight:600;display:grid}input,select{color:#17211d;background:#fbfcf9;border:1px solid #d6ded7;border-radius:11px;outline:none;width:100%;padding:11px 12px}input:focus,select:focus{border-color:#4a806c;box-shadow:0 0 0 3px #4a806c18}input:disabled{color:#85918a;background:#eef1ec}.balance-list{gap:1px;max-height:53vh;margin:0 -8px 20px;padding:0 8px;display:grid;overflow:auto}.balance-row{border-bottom:1px solid #edf0ec;grid-template-columns:1fr 170px;align-items:center;padding:10px 0}.balance-row span{display:grid}.balance-row strong{color:#233029;font-size:13px}.balance-row small{color:#89948e;font-weight:400}.balance-row input{text-align:right;font-variant-numeric:tabular-nums}.form-help{color:#5d6d64;background:#f0f5ef;border-radius:11px;margin:-4px 0 18px;padding:11px 13px;font-size:11px;line-height:1.55}.grouped-balances{gap:12px}.member-balance-group{background:#fafbf8;border:1px solid #e3e9e3;border-radius:14px;padding:0 12px 8px}.member-balance-heading{z-index:1;background:#edf4ee;border-radius:13px 13px 0 0;justify-content:space-between;margin:0 -12px;padding:10px 12px;display:flex;position:sticky;top:0}.member-balance-heading span{color:#78877e;font-size:11px}.balance-input-wrap{justify-items:end;gap:4px;display:grid}.balance-input-wrap small{font-size:10px}.primary-button,.ghost-button{border:1px solid #0000;border-radius:11px;padding:10px 14px;font-weight:700}.primary-button{color:#fff;background:#1d5e4b;box-shadow:0 8px 20px #1d5e4b24}.primary-button:hover{background:#174d3e}.primary-button:disabled{opacity:.55;cursor:wait}.ghost-button{color:#405148;background:#fff;border-color:#d8dfd8}.ghost-button:hover{border-color:#9eada4}.full{width:100%}.history-list,.audit-list{display:grid}.history-list article{border-bottom:1px solid #edf0ec;border-left:3px solid #0000;padding:15px 12px}.history-list article.selected{background:#f5f8f4;border-left-color:#1d5e4b}.archived-label{color:#7c8982;background:#e9ece8;border-radius:999px;margin-left:7px;padding:3px 6px;font-size:9px;font-style:normal;font-weight:600}.history-list article>div{justify-content:space-between;gap:16px;display:flex}.history-list article small{color:#87928b}.history-actions{white-space:nowrap;gap:12px;display:flex}.text-button{background:0 0;border:0;padding:0;font-size:12px}.danger{color:#ad4545}.snapshot-meta{grid-template-columns:1.3fr 1fr 1fr;gap:10px;margin-bottom:22px;display:grid}.snapshot-meta>span{background:#f5f7f3;border-radius:12px;gap:5px;padding:13px 15px;display:grid}.snapshot-meta small{color:#87928b}.snapshot-meta strong{font-size:13px}.revision-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;display:grid}.revision-list button{color:inherit;text-align:left;background:#fafbf8;border:1px solid #dfe6df;border-radius:13px;gap:5px;padding:13px;display:grid}.revision-list button.selected{background:#f0f6f1;border-color:#4b806c;box-shadow:0 0 0 2px #4b806c18}.revision-list small{color:#7e8c84}.compact-details{margin-bottom:28px}.table-heading{justify-content:space-between;align-items:end;margin:8px 0 14px;display:flex}.table-heading h3{font-size:18px}.table-heading span{color:#78867e;font-size:12px}.data-table{border:1px solid #e1e6e0;border-radius:14px;min-width:0;overflow:hidden}.table-row{border-bottom:1px solid #edf0ec;align-items:center;gap:12px;min-width:720px;padding:12px 14px;font-size:12px;display:grid}.table-row:last-child{border-bottom:0}.table-row strong{gap:2px;display:grid}.table-row strong small{color:#8a968f;font-weight:400}.table-row code{text-overflow:ellipsis;color:#64736b;overflow:hidden}.table-row b,.table-row>span:nth-last-child(2){font-variant-numeric:tabular-nums}.table-head{color:#78867e;letter-spacing:.08em;text-transform:uppercase;background:#f4f6f2;font-size:10px;font-weight:700}.balance-detail-table .table-row{grid-template-columns:1.2fr .75fr 1fr 1.2fr 1fr}.balance-detail-table .table-row>b{text-align:right}.scope-bar{background:#fff;border:1px solid #dbe3dc;border-radius:18px;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;display:flex}.scope-bar p{margin-bottom:3px}.scope-pills,.filter-pills{flex-wrap:wrap;gap:7px;display:flex}.scope-pills button,.filter-pills button{color:#56665d;background:#f8faf7;border:1px solid #d7dfd8;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:700}.scope-pills button{align-items:center;gap:6px;display:flex}.scope-pills button i{border-radius:50%;width:8px;height:8px}.scope-pills button.active,.filter-pills button.active{color:#fff;background:#1d5e4b;border-color:#1d5e4b}.scope-loading{color:#6f7e76;margin-top:-15px;font-size:11px}.member-summary-grid{gap:8px;display:grid}.member-summary-grid>button{color:inherit;text-align:left;background:#fafbf8;border:1px solid #e2e7e1;border-radius:14px;grid-template-columns:46px 1.3fr 1fr 1fr;align-items:center;gap:14px;padding:13px;display:grid}.member-summary-grid>button:hover{background:#f1f6f1;border-color:#a9c0b2}.member-summary-grid i,.member-item i{color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;font-style:normal;font-weight:800;display:grid}.member-summary-grid span{gap:3px;display:grid}.member-summary-grid small{color:#7c8a82;font-weight:400}.member-list{gap:7px;display:grid}.member-item{width:100%;color:inherit;text-align:left;background:#f7f9f5;border:1px solid #0000;border-radius:13px;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.member-item:hover,.member-item.selected{background:#eef5ef;border-color:#adc4b7}.member-item span{gap:2px;display:grid}.member-item small{color:#849087}.member-item em{color:#607067;background:#e5eae4;border-radius:999px;padding:5px 8px;font-size:10px;font-style:normal}input[type=color]{min-height:43px;padding:5px}.comparison-scope{max-width:360px;margin-bottom:16px}.loan-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.loan-layout{grid-template-columns:minmax(380px,.85fr) minmax(0,1.15fr)}.loan-save{margin-top:18px}.loan-list-panel{min-height:520px}.filter-pills{margin-bottom:14px}.loan-list{gap:6px;display:grid}.loan-list>button{width:100%;color:inherit;text-align:left;background:#f7f9f5;border:1px solid #0000;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:13px;display:flex}.loan-list>button:hover,.loan-list>button.selected{background:#edf5ef;border-color:#abc1b4}.loan-list>button span:first-child,.loan-amount{gap:3px;display:grid}.loan-list small{color:#849087}.loan-amount{justify-items:end}.loan-status{color:#52645a;background:#e8ede8;border-radius:999px;width:fit-content;padding:5px 8px;font-size:10px;font-style:normal;font-weight:750}.loan-status.overdue{color:#a54141;background:#f9e5e5}.loan-status.partial{color:#7a6223;background:#f8efcf}.loan-status.repaid{color:#23624f;background:#dfeee5}.loan-status.written_off{color:#6f6f6f;background:#e8e8e8}.muted-copy{color:#819087;text-align:center;padding:32px 10px}.loan-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:28px;display:grid}.loan-facts>span{background:#f6f8f4;border-radius:12px;gap:5px;padding:13px;display:grid}.loan-facts small{color:#829087}.loan-detail-columns{grid-template-columns:1.4fr minmax(280px,.6fr);align-items:start;gap:24px;display:grid}.repayment-list{display:grid}.repayment-list article{grid-template-columns:18px 1fr;gap:10px;min-height:62px;display:grid}.repayment-list i{background:#1d5e4b;border-radius:50%;width:9px;height:9px;margin-top:5px;position:relative;box-shadow:0 0 0 4px #e3eee7}.repayment-list i:after{content:"";background:#dbe5dd;width:1px;height:46px;position:absolute;top:12px;left:4px}.repayment-list article:last-child i:after{display:none}.repayment-list span{align-content:start;gap:4px;display:grid}.repayment-list small{color:#839087}.repayment-form{background:#f4f7f2;border-radius:16px;gap:12px;padding:18px;display:grid}.write-off-button{justify-self:center;margin-top:4px}.edit-loan-button{margin-top:20px}.compare-selectors{grid-template-columns:1fr 44px 1fr;align-items:end;gap:14px;display:grid}.swap-button{color:#1d5e4b;background:#eef5ef;border:1px solid #cad6ce;border-radius:50%;width:44px;height:44px;font-size:20px}.swap-button:hover{transition:transform .2s;transform:rotate(180deg)}.comparison-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.comparison-summary .metric-card strong{font-size:clamp(20px,2vw,30px)}.comparison-table .table-row{grid-template-columns:1.25fr 1fr 1fr 1fr 1fr}.direction-badge{background:#eef1ed;border-radius:999px;justify-self:start;padding:5px 8px;font-size:10px;font-weight:700}.direction-badge.positive{background:#e1f1e8}.direction-badge.negative{background:#fae9e9}.inline-loading{min-height:220px}.account-list{gap:5px;display:grid}.account-item{text-align:left;background:#f7f9f5;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:12px;display:flex}.account-item:hover,.account-item.selected{background:#eef5ef;border-color:#adc4b7}.account-item span{display:grid}.account-item small{color:#849087}.account-item em{color:#66766d;background:#e3e9e2;border-radius:999px;padding:5px 8px;font-size:11px;font-style:normal}.check-row{align-items:center;gap:8px;margin:6px 0 18px;display:flex}.check-row input,.metric-selector input{width:auto}.metric-selector{border:1px solid #e0e5df;border-radius:14px;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 20px;padding:15px;display:grid}.metric-selector legend{color:#526158;padding:0 6px;font-size:12px;font-weight:700}.metric-selector label{align-items:center;gap:7px;font-weight:500;display:flex}.classification-profile{background:#f4f7f2;border:1px solid #dfe6df;border-radius:14px;gap:6px;margin:0 0 20px;padding:15px;display:grid}.classification-profile span,.classification-profile small{color:#6c7a72;line-height:1.5}.classification-profile small{overflow-wrap:anywhere}.reversed-event{opacity:.58}.reversed-event strong{text-decoration:line-through}.event-reverse{justify-self:start;margin-top:3px}.audit-list article{border-bottom:1px solid #edf0ec;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:15px 0;display:grid}.audit-list article div{display:grid}.audit-list small,.audit-list time{color:#819087;font-size:11px}.audit-icon{color:#23624f;background:#e7efe8;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.error-banner{color:#9b3737;background:#fff1f1;border:1px solid #efc9c9;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:13px 16px;display:flex}.error-banner button{color:inherit;background:0 0;border:0;font-size:20px}.loading,.empty-state{text-align:center;color:#708078;align-content:center;place-items:center;min-height:420px;display:grid}.loading span{border:3px solid #dce5de;border-top-color:#26654f;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.loading p{margin:14px 0 0}.empty-state div{color:#90a299;font-size:48px}.empty-state h3{margin:8px 0}.empty-state p{margin:0}.login-shell{background:radial-gradient(circle at 20% 20%,#d8f06d40,#0000 33%),#172c25;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#f8faf5;border-radius:28px;width:min(440px,100%);padding:44px;box-shadow:0 34px 80px #07110d66}.login-card h1{margin:16px 0 14px;font-size:38px}.login-card>p:not(.eyebrow){color:#6a786f;line-height:1.7}.login-card label{margin:28px 0 16px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.detail-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.comparison-summary,.loan-summary-grid,.loan-facts{grid-template-columns:1fr 1fr}}@media (width<=1050px){.metrics-grid{grid-template-columns:1fr 1fr}.split-layout{grid-template-columns:1fr}.editor-panel{position:static}.allocation-grid,.ratio-grid{grid-template-columns:1fr 1fr}.snapshot-meta,.loan-detail-columns{grid-template-columns:1fr}}@media (width<=760px){.app-shell{display:block}.sidebar{width:100%;height:auto;padding:16px;position:static}.brand{padding-bottom:12px}.nav-group{gap:4px}.nav-parent{padding:0 4px}.nav-submenu{border-left:0;grid-template-columns:repeat(7,minmax(72px,1fr));margin:0;padding:2px 0 4px;overflow-x:auto}.sidebar nav button{text-align:center;justify-content:center;gap:3px;padding:9px 4px;font-size:10px;display:grid}.sidebar nav button span{width:auto;font-size:18px}.sidebar-foot{margin-top:10px;padding:10px 4px 0}.content{padding:28px 18px 54px;overflow:hidden}.content>header{align-items:end}.content>header .ghost-button{display:none}.metrics-grid,.form-grid.two,.detail-metrics-grid,.allocation-grid,.ratio-grid,.comparison-summary,.loan-summary-grid,.loan-facts,.metric-selector{grid-template-columns:1fr}.panel{padding:20px}.balance-row{grid-template-columns:1fr 130px}.login-card{padding:30px}.compare-selectors{grid-template-columns:1fr;gap:10px}.swap-button{justify-self:center;width:40px;height:40px}.data-table{max-width:100%;overflow-x:auto}.snapshot-detail{padding-left:16px;padding-right:16px}.scope-bar{flex-direction:column;align-items:stretch}.scope-pills{flex-wrap:nowrap;padding-bottom:3px;overflow-x:auto}.scope-pills button{flex:none}.member-summary-grid>button{grid-template-columns:40px 1fr}.member-summary-grid>button span:nth-last-child(-n+2){grid-column:1/-1;padding-left:54px}.loan-list>button{align-items:start}.loan-detail{padding-left:16px;padding-right:16px}}
