.finance-workspace { color:var(--text-primary); }
.finance-subnav .finance-legacy-nav { display:none !important; }
#page-finance .finance-subnav .settings-nav-btn[data-finance-order-key] { display:flex;align-items:center;gap:8px; }
#page-finance .finance-subnav .finance-nav-handle { display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;margin-left:auto;border-radius:6px;color:var(--text-muted);cursor:grab;touch-action:none; }
#page-finance .finance-subnav .finance-nav-handle:hover,#page-finance .finance-subnav .settings-nav-btn:focus-visible .finance-nav-handle { color:var(--text-primary);background:var(--bg-surface-3); }
#page-finance .finance-subnav .finance-nav-handle svg { width:12px;height:16px;pointer-events:none; }
#page-finance .finance-subnav .finance-nav-dragging { opacity:.65;outline:2px dashed var(--accent);outline-offset:-2px; }
#page-finance .finance-subnav .finance-nav-dragging .finance-nav-handle { cursor:grabbing; }
.fw-analytics-intro { margin:20px 0; }
.fw-analytics-intro h3 { margin:0 0 8px;font-size:18px; }
.fw-analytics-intro p { max-width:760px;margin:0;color:var(--text-secondary);font-size:12px;line-height:1.55; }
.fw-donut-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px; }
.fw-donut-card { min-width:0;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--bg-surface); }
.fw-donut-card h4 { margin:0 0 18px;font-size:15px; }
.fw-donut-body { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));align-items:center;gap:18px; }
.fw-donut { position:relative;width:190px;height:190px;max-width:100%;margin:auto;border-radius:50%;background:var(--bg-surface-3); }
.fw-donut-center { position:absolute;inset:18%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px;border-radius:50%;background:var(--bg-surface);text-align:center; }
.fw-donut-center span { color:var(--text-muted);font-size:11px; }
.fw-donut-center strong { font-size:16px;font-variant-numeric:tabular-nums;line-height:1.15;overflow-wrap:anywhere; }
.fw-donut-legend { display:grid;gap:3px;margin:0;padding:0;list-style:none; }
.fw-donut-legend li { display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;column-gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:12px; }
.fw-donut-dot { width:10px;height:10px;border-radius:3px;background:var(--fw-donut-color); }
.fw-donut-label { min-width:0;font-weight:600; }
.fw-donut-label small { display:block;margin-top:3px;color:var(--text-muted);font-weight:400; }
.fw-donut-share { color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap; }
.fw-donut-legend li>strong { grid-column:2 / -1;margin-top:3px;font-size:13px;font-variant-numeric:tabular-nums; }
.fw-donut-footer { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;margin-top:18px;padding-top:15px;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-secondary); }
.fw-donut-footer strong { margin-left:5px;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap; }
.fw-heading,.fw-toolbar,.fw-row,.fw-actions,.fw-modal footer { display:flex;align-items:center;gap:12px; }
.fw-heading { justify-content:space-between;flex-wrap:wrap;margin-bottom:20px; }
.fw-heading h2,.fw-modal h2 { font-size:20px;margin:0 0 8px; }
.fw-heading p,.fw-row small { color:var(--text-muted);font-size:12px; }
.fw-toolbar { flex-wrap:wrap;margin-bottom:20px;align-items:flex-end; }
.fw-toolbar label,.fw-modal label { display:grid;gap:8px;font-size:12px; }
.fw-toolbar input,.fw-toolbar select,.fw-modal input { min-height:44px;padding:10px 12px;border:1px solid var(--border-control);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font:inherit;box-sizing:border-box;max-width:100%; }
.fw-summary { display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px; }
.fw-summary>div { padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface); }
.fw-summary span,.fw-summary strong,.fw-row small { display:block; }
.fw-summary strong { margin-top:8px;font-size:20px; }
.fw-group { margin:20px 0; }
.fw-group h3 { font-size:16px; }
.fw-group h3 span { color:var(--text-muted); }
.fw-row { padding:14px 0;border-bottom:1px solid var(--border-light);justify-content:space-between;flex-wrap:wrap; }
.fw-row>div:first-child { flex:1;min-width:180px; }
.fw-row small { margin-top:6px;line-height:1.5; }
.fw-row>strong { white-space:nowrap;font-variant-numeric:tabular-nums; }
.fw-actions { flex-wrap:wrap; }
.fw-empty { color:var(--text-muted);padding:12px 0; }
.fw-obligation-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 0 18px;border-bottom:1px solid var(--border-light); }
.fw-obligation-actions>strong { margin-right:4px;font-size:13px; }
.fw-obligation-view { display:flex;gap:6px;margin:18px 0 12px; }
.fw-obligation-view .btn { min-height:36px; }
.fw-obligation-view .btn.is-active { color:var(--accent);background:var(--accent-light);border-color:var(--accent); }
.fw-obligation-categories { display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;margin-bottom:24px; }
.fw-obligation-category { display:flex;align-items:center;gap:10px;min-width:0;min-height:70px;padding:12px;text-align:left;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;cursor:pointer;font:inherit; }
.fw-obligation-category:hover { border-color:var(--border-control);background:var(--bg-surface-2); }
.fw-obligation-category.is-active { border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px var(--accent); }
.fw-obligation-category>span:last-child { min-width:0; }
.fw-obligation-category strong,.fw-obligation-category small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.fw-obligation-category strong { font-size:13px; }
.fw-obligation-category small { margin-top:5px;color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums; }
.fw-obligation-icon { display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;color:var(--accent);background:var(--accent-light);border-radius:10px; }
.fw-obligation-icon svg { width:20px;height:20px; }
.fw-obligation-sections { display:grid;gap:16px; }
.fw-obligation-section { overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px; }
.fw-obligation-section>header { display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 18px;background:var(--bg-surface-2);border-bottom:1px solid var(--border-light); }
.fw-obligation-section h3,.fw-obligation-section p { margin:0; }
.fw-obligation-section h3 { font-size:15px; }
.fw-obligation-section p { margin-top:4px;color:var(--text-secondary);font-size:12px; }
.fw-obligation-section-total { text-align:right;font-variant-numeric:tabular-nums; }
.fw-obligation-section-total span,.fw-obligation-section-total strong { display:block; }
.fw-obligation-section-total span { color:var(--text-secondary);font-size:11px; }
.fw-obligation-section-total strong { margin-top:4px;font-size:16px;white-space:nowrap; }
.fw-obligation-list { padding:0 18px; }
.fw-obligation-card { display:grid;grid-template-columns:minmax(240px,1fr) minmax(130px,auto) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-light); }
.fw-obligation-card:last-child { border-bottom:0; }
.fw-obligation-card-title { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.fw-obligation-card-main small,.fw-obligation-card-main p { display:block;margin:5px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.4; }
.fw-obligation-card-main .fw-obligation-overdue { color:var(--status-danger,#d84b45);font-weight:700; }
.fw-obligation-card-money { text-align:right;font-variant-numeric:tabular-nums; }
.fw-obligation-card-money.is-loan { display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:12px;text-align:left; }
.fw-obligation-card-money.is-loan>div { min-width:0; }
.fw-obligation-card-money span,.fw-obligation-card-money strong { display:block; }
.fw-obligation-card-money span { color:var(--text-secondary);font-size:11px; }
.fw-obligation-card-money strong { margin-top:4px;font-size:15px;overflow-wrap:anywhere; }
.fw-obligation-card-actions { display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap; }
.fw-obligation-card-actions .btn { min-height:36px; }
.fw-obligation-status { padding:3px 7px;color:var(--status-success);background:color-mix(in srgb,var(--status-success) 10%,transparent);border-radius:999px;font-size:10px;font-weight:700; }
.fw-obligation-status.is-closed { color:var(--text-secondary);background:var(--bg-surface-2); }
.fw-obligation-empty { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;color:var(--text-secondary);font-size:12px; }
.fw-obligation-empty strong,.fw-obligation-empty small { display:block; }
.fw-obligation-empty strong { color:var(--text-primary); }
.fw-obligation-empty small { margin-top:4px;color:var(--text-secondary); }
.fw-modal { width:760px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;overflow:hidden; }
.fw-modal header,.fw-modal-body,.fw-modal footer { padding:20px 24px; }
.fw-modal-body { overflow:auto;min-height:0; }
.fw-modal footer { justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--border-light); }
.fw-modal label { margin:16px 0; }
.fw-modal input { width:100%; }
.debt-prolongation-modal { width:640px; }
.debt-prolongation-modal select { min-height:44px;padding:10px 12px;border:1px solid var(--border-control);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font:inherit;max-width:100%; }
.debt-prolongation-modal .payment-paid-toggle { display:flex;align-items:center;gap:8px; }
.debt-prolongation-modal .payment-paid-toggle input { width:20px;min-height:20px; }
.fw-modal label small { color:var(--text-muted);font-size:12px;line-height:1.45; }
.fw-payment-total { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface-2);font-variant-numeric:tabular-nums; }
.fw-payment-total span { color:var(--text-secondary); }
.fw-payment-total strong { font-size:18px; }
.fw-receipts { display:grid;gap:8px; }
.fw-receipt { display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-light);border-radius:10px; }
.fw-receipt span { color:var(--text-secondary);font-size:13px; }
.fw-receipt strong { white-space:nowrap;font-variant-numeric:tabular-nums; }
.fw-modal .btn,.finance-workspace .btn { min-height:44px; }
#fw-warning,#fw-error { color:var(--text-primary); }
#fw-warning { min-height:48px; }
@media(max-width:1000px){.fw-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.fw-obligation-card{grid-template-columns:minmax(220px,1fr) auto}.fw-obligation-card-money.is-loan{grid-column:1/-1}.fw-obligation-card-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:600px){.fw-receipt{grid-template-columns:1fr}.fw-receipt .btn{justify-self:start}}
@media(max-width:600px){.fw-obligation-categories{grid-template-columns:1fr 1fr}.fw-obligation-section>header{grid-template-columns:auto minmax(0,1fr)}.fw-obligation-section-total{grid-column:1/-1;text-align:left;padding-left:48px}.fw-obligation-card{grid-template-columns:1fr}.fw-obligation-card-money{text-align:left}.fw-obligation-card-money.is-loan{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-obligation-card-actions{grid-column:auto}}
@media(max-width:480px){.fw-summary{grid-template-columns:1fr;}.fw-obligation-categories{grid-template-columns:1fr}.fw-obligation-card-money.is-loan{grid-template-columns:1fr}.fw-obligation-empty{align-items:flex-start;flex-direction:column}.fw-modal footer{padding:12px;}.fw-modal header,.fw-modal-body{padding:16px;}}
.fw-payment-progress { grid-column:1/-1;width:100%;min-width:0;margin-top:0; }
.fw-payment-progress-heading { color:var(--text-muted);font-size:10px;line-height:1.3;margin-bottom:2px; }
.fw-payment-segments { display:flex;gap:4px;overflow-x:auto;max-width:100%;padding-bottom:3px; }
.fw-payment-segment { flex:1 0 48px;min-width:max-content;min-height:34px;padding:2px 3px;border:0;background:transparent;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;text-align:left; }
.fw-payment-amount { color:var(--text-secondary);font-size:9px;line-height:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;min-height:12px; }
.fw-payment-track { display:block;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden; }
.fw-payment-fill { display:block;height:100%;background:var(--status-success);border-radius:3px; }
.fw-payment-segment:hover .fw-payment-track { outline:1px solid var(--text-secondary);outline-offset:2px; }
.fw-payment-segment:focus-visible { outline:2px solid var(--status-success);outline-offset:-2px; }
.fw-payment-progress-label { color:var(--text-secondary);font-size:11px;line-height:1.5; }
@media (pointer:coarse) { .fw-payment-segment { min-height:44px;min-width:44px; } }

/* Manual microcredit contract form */
.microcredit-contract-modal { width:min(1120px,calc(100vw - 48px))!important;max-height:92vh;display:flex;flex-direction:column;overflow:hidden; }
.microcredit-contract-modal .ui-modal-body { overflow-y:auto;overflow-x:hidden;min-height:0; }
.microcredit-form-stage,.microcredit-review-stage { display:grid;gap:16px; }
.microcredit-section { min-width:0;padding:16px;border:1px solid var(--border-light);border-radius:12px;background:var(--bg-surface); }
.microcredit-fields { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.microcredit-fields-contract { grid-template-columns:2fr 1fr 1.4fr 1fr .8fr; }
.microcredit-fields label,.microcredit-schedule-row label { display:grid;gap:6px;min-width:0;color:var(--text-primary);font-size:11px;font-weight:650; }
.microcredit-fields :is(input,select,textarea),.microcredit-schedule-row input { width:100%!important;min-width:0!important;box-sizing:border-box; }
.microcredit-fields label>span,.microcredit-schedule-row label>span { min-height:14px; }
.microcredit-fields label b { color:var(--status-danger,#dc2626); }
.microcredit-field-wide { grid-column:1/-1; }
.microcredit-field-wide textarea { resize:vertical;min-height:64px; }
.microcredit-schedule-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px; }
.microcredit-schedule-head p { margin:4px 0 0;color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums; }
.microcredit-schedule { display:grid;gap:8px;margin-bottom:12px; }
.microcredit-schedule-row { display:grid;grid-template-columns:28px minmax(132px,.9fr) repeat(4,minmax(120px,1fr)) 36px;align-items:end;gap:8px;padding:10px;border:1px solid var(--border-light);border-radius:10px;background:var(--bg-surface-2); }
.microcredit-row-number { display:grid;place-items:center;width:28px;height:42px;color:var(--text-secondary);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums; }
.microcredit-row-remove { width:36px;height:42px;padding:0;color:var(--text-secondary);background:transparent;border:1px solid var(--border-control);border-radius:8px;font-family:inherit;font-size:20px;font-weight:600;line-height:1;cursor:pointer; }
.microcredit-row-remove:hover { color:var(--status-danger,#dc2626);border-color:var(--status-danger,#dc2626); }
.microcredit-errors { padding:12px 14px;color:var(--status-danger,#b91c1c);background:color-mix(in srgb,var(--status-danger,#dc2626) 8%,var(--bg-surface));border:1px solid color-mix(in srgb,var(--status-danger,#dc2626) 28%,var(--border));border-radius:10px;font-size:12px; }
.microcredit-errors ul { margin:7px 0 0;padding-left:18px; }
.microcredit-review-intro { padding:14px 16px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-light); }
.microcredit-review-intro p { margin:5px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.5; }
.microcredit-review-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.microcredit-review-grid>div { padding:12px;border:1px solid var(--border-light);border-radius:10px;background:var(--bg-surface); }
.microcredit-review-grid span,.microcredit-review-grid strong { display:block; }
.microcredit-review-grid span { color:var(--text-secondary);font-size:11px; }
.microcredit-review-grid strong { margin-top:5px;overflow-wrap:anywhere;font-size:14px;font-variant-numeric:tabular-nums; }
.microcredit-review-table { overflow:auto;max-height:330px;border:1px solid var(--border-light);border-radius:10px; }
.microcredit-review-table .data-table { width:100%; }
.microcredit-review-table td:not(:nth-child(2)),.microcredit-review-table th:not(:nth-child(2)) { text-align:right;white-space:nowrap; }
.microcredit-review-table td:first-child,.microcredit-review-table th:first-child { text-align:left; }
@media(max-width:1000px){.microcredit-fields-contract{grid-template-columns:repeat(2,minmax(0,1fr))}.microcredit-schedule-row{grid-template-columns:28px repeat(2,minmax(0,1fr)) 36px}.microcredit-schedule-row label:nth-of-type(n+3){grid-column:auto}.microcredit-row-remove{grid-column:4;grid-row:1}.microcredit-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.microcredit-contract-modal{width:100vw!important;max-height:100dvh;border-radius:0}.microcredit-fields,.microcredit-fields-contract{grid-template-columns:1fr}.microcredit-schedule-head{align-items:stretch;flex-direction:column}.microcredit-schedule-row{grid-template-columns:28px minmax(0,1fr) 36px}.microcredit-schedule-row label{grid-column:2}.microcredit-row-remove{grid-column:3;grid-row:1}.microcredit-review-grid{grid-template-columns:1fr}}

/* The compact calendar keeps the payment type inside each linked payment card. */
.debt-calendar-event.is-typed { flex-wrap:wrap; }
.debt-calendar-event.is-typed b { flex:1 1 70%; }
.debt-calendar-event .debt-calendar-kind { margin-left:auto;padding:2px 5px;border-radius:5px;background:var(--accent-light);color:var(--text-secondary);font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap; }
.debt-calendar-event .debt-calendar-contract { flex:1 1 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:10px;line-height:1.2; }
