/* UTIL-043 Khoản vay và lịch trả nợ — bổ sung cho utilities.css. Font kế thừa .sou-page (Arial…); không đổi font icon. */
@media (min-width:1024px){.loan-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.loan .sou-presets button{min-height:44px}
.loan .sou-toolbar .sou-button{min-height:44px}
.loan-mode-help{margin:-4px 0 12px}
.loan-flat-banner{margin:0 0 16px}
.loan-more{margin:0 0 10px;padding:0 14px;border:1px solid var(--sou-line);border-radius:12px;background:#fbfcff}
.loan-more>summary{display:flex;align-items:center;min-height:46px;cursor:pointer;font-weight:700;color:var(--sou-ink)}
.loan-more[open]{padding-bottom:10px}
.loan-more>.sou-help{margin:-4px 0 10px}
.loan-group{margin:4px 0 0;padding:8px 12px 2px;border:1px solid var(--sou-line);border-radius:12px;min-width:0;background:#fff}
.loan-group>legend{width:auto;margin:0;padding:0 6px;border:0;font-weight:700;color:var(--sou-ink);font-size:15px;line-height:1.4}
.loan-seg{display:flex;flex-direction:column}
.loan-rows{display:grid;gap:0}
.loan-item{display:flex;flex-wrap:wrap;gap:0 10px;align-items:flex-end;padding:6px 0 0;border-bottom:1px dashed var(--sou-line)}
.loan-item .sou-field{flex:1 1 110px}
.loan-item-extra .sou-field:nth-child(2){flex-basis:150px}
.loan-remove{margin:0 0 14px;min-height:46px}
.loan-add{margin:10px 0 12px;min-height:44px}
.loan-undo{margin:0 0 8px}
.loan-result h2{margin-bottom:8px}
.loan-empty{margin:0;color:var(--sou-muted)}
.loan-stale{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--sou-warn-bg);color:var(--sou-warn);font-weight:700;font-size:14px}
.loan-result.is-stale [data-output],.loan-tables.is-stale{opacity:.5}
.loan-kpi-label{margin:0 0 4px;color:var(--sou-muted);font-weight:700;font-size:15px}
.loan-big{font-size:clamp(28px,6vw,40px);margin:0}
.loan-kpi-sub{margin:6px 0 14px;color:var(--sou-muted);font-size:15px}
.loan-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.loan-stats li>span{display:block}
.loan-stats strong{font-size:21px;overflow-wrap:anywhere}
.loan-stat-note{display:block;margin-top:2px;color:var(--sou-muted);font-size:13px;overflow-wrap:anywhere}
.loan-chart{margin:18px 0 0}
.loan-chart figcaption{margin:0 0 8px;font-weight:700;color:var(--sou-ink);text-align:left}
.loan-chart [data-chart]{width:100%;overflow:hidden}
.loan-chart .sou-help{margin:4px 0 0}
.loan-svg{display:block;max-width:100%;height:auto}
.loan-notes{margin:14px 0 0;padding-left:20px;font-size:14px;list-style:disc}
.loan-notes li{display:list-item;margin:4px 0}
.loan-assumptions{margin:10px 0 0;color:var(--sou-muted);font-size:14px}
.loan-disclaimer{margin:14px 0 0;font-size:14px}
.loan-tables{margin-top:24px}
.loan-tables>h2{font-size:20px;margin:0 0 10px}
.loan-tables>h2.loan-schedule-title{margin-top:24px}
.loan-pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.loan-pager .sou-button{min-height:44px;padding:8px 14px;font-size:15px}
.sou-page .loan-pager select{width:auto;max-width:100%;flex:1 1 220px}
.loan .sou-table tbody th{font-weight:700;color:var(--sou-ink);white-space:nowrap}
.loan .sou-table tr.is-grace>*{background:#fffaf0}
.loan .sou-table tr.is-start>*{background:#f4f7ff}
.loan .sou-table .loan-note-cell{min-width:220px;color:var(--sou-muted);font-size:13px}
@media (max-width:600px){.loan .sou-presets button{flex:1 1 100%}.loan-stats strong{font-size:19px}}
@media print{.loan-modes,.loan-mode-help,.loan-form,.loan-pager,.loan-stale,.loan .sou-toolbar{display:none!important}.loan-layout{display:block}.loan-result{border:0;padding:0;background:none}.loan-result.is-stale [data-output],.loan-tables.is-stale{opacity:1}}
