/* 예금이자계산기 전용 CSS (2026-10-07). 2패널 계산형 레이아웃 di-*. 공용 부품은 assets/v2.css */
.di-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.di-in{padding:16px 18px 18px;min-width:0}
.di-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
.di-fields .full{grid-column:1 / -1}
.di-fields .v2-f{min-width:0}
.di-fields .v2-f>.v2-label{display:block}
.di-fields [hidden]{display:none}
.di-seg{margin-top:6px;flex-wrap:wrap}
.di-seg button{height:32px;padding:0 10px;font-family:var(--sans);font-size:12.5px;font-weight:700;white-space:nowrap}
.di-seg button:disabled{opacity:.4;cursor:not-allowed}
.di-chips{margin-top:8px;flex-wrap:wrap}
.di-chips button{height:28px;padding:0 10px;font-family:var(--sans);font-size:12px;font-weight:600}
.di-small{max-width:180px}
.di-hint{display:block;margin-top:6px;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--muted)}
.di-fields>.di-hint{margin-top:-4px}
.di-help{margin:12px 0 0;font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--muted)}
.di-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:14px}
.di-year{margin-left:auto;font-family:var(--sans);font-size:12px;color:var(--muted);white-space:nowrap}
.di-out{padding:16px 18px 18px;min-width:0;border-left:1px solid var(--soft);display:flex;flex-direction:column}
.di-out .v2-label{display:block;margin-bottom:6px}
.di-out .v2-big{flex-wrap:wrap;row-gap:6px}
.di-out .v2-big>span{min-width:0;overflow-wrap:anywhere}
.di-out .v2-big small{flex-basis:100%;display:block;margin:0;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--muted)}
.di-warn{margin:8px 0 0;padding:8px 10px;border-left:2px solid var(--accent);background:var(--accent-wash);font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--ink)}
.di-rows{margin-top:14px;flex:1}
.di-rows li span{min-width:0;flex:1 1 auto}
.di-rows li span em{display:block;margin-top:2px;font-size:11.5px;color:var(--muted);opacity:1;max-width:100%;overflow-wrap:anywhere}
.di-rows li b{flex:0 0 auto}
.di-out .v2-formula{white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.di-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--soft)}
.di-foot .v2-status{margin-left:auto}
.di-cmp{padding:14px 18px 18px;border-top:1px solid var(--soft)}
.di-cmp .v2-label{display:block;margin-bottom:8px}
.di-cmp .tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.di-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums}
.di-table th,.di-table td{padding:7px 8px;border-top:1px solid var(--soft);text-align:left;white-space:nowrap}
.di-table th{font-size:11.5px;font-weight:700;color:var(--muted);border-top:0}
.di-table .n{text-align:right}
.di-table tr.is-cur td{background:var(--accent-wash);color:var(--ink)}
.di-table tr.is-cur td b{color:var(--accent)}
.v2-big.is-empty span{font-size:18px;font-weight:600;color:var(--muted)}
/* 시각 요소(R45, 2026-10-16): 값이 바뀌면 막대 폭이 부드럽게 이동 — transitions-dev 01 card resize 스니펫 그대로(.t-resize) */
:root {
  --resize-dur: 300ms;
  --resize-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
.t-resize {
  transition:
    width  var(--resize-dur) var(--resize-ease),
    height var(--resize-dur) var(--resize-ease);
  will-change: width, height;
}
@media (prefers-reduced-motion: reduce) {
  .t-resize { transition: none !important; }
}
/* 세전 이자 나눔 막대: 세후 이자(accent)가 남은 폭, 세금 항목은 잉크 농도 두 단계 */
.di-split{margin-top:14px}
.di-split[hidden]{display:none}
.di-track{display:flex;height:22px;border-radius:var(--radius);overflow:hidden;background:var(--soft)}
.di-pt{display:block;height:100%}
.di-pt--net{flex:1 1 0;min-width:0;background:var(--accent)}
.di-pt--t0,.di-pt--t1{flex:0 0 auto;width:0;background:var(--ink);opacity:.55;box-shadow:inset 2px 0 0 var(--paper)}
.di-pt--t1{opacity:.3}
.di-keys{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;list-style:none;font-family:var(--sans);font-size:12px;color:var(--muted)}
.di-keys li{white-space:nowrap}
.di-keys li b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.di-keys li::before{content:"";display:inline-block;width:12px;height:10px;margin-right:6px;vertical-align:-1px;background:var(--accent)}
.di-keys .k-t0::before{background:var(--ink);opacity:.55}
.di-keys .k-t1::before{background:var(--ink);opacity:.3}
/* 기간별 세후 이자 막대: 세 칸(기간 | 막대 | 금액)을 subgrid로 맞춤, 넣은 기간은 accent */
.di-bars-cap[hidden]{display:none}
#article h2{text-spacing-trim:space-all} /* ja #periods 제목: 줄 끝 '）'를 반각으로 줄여 배치한 뒤 문서 폭은 전각으로 잡아 360px에서 5px 가로 스크롤(검토 N5, Chrome 151 실측) — 이 툴 페이지에만 */
.di-bars-cap{margin:0 0 8px;font-family:var(--sans);font-size:12px;color:var(--muted)}
.di-bars{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:6px 10px;margin:0 0 14px;padding:0;list-style:none;font-family:var(--sans);font-size:12.5px}
.di-bars li{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;color:var(--muted)}
.di-bars i{display:block;height:12px;border-radius:var(--radius);background:var(--soft);overflow:hidden}
.di-bars b{display:block;width:0;height:100%;background:var(--ink);opacity:.35}
.di-bars em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;white-space:nowrap}
.di-bars li.is-cur{color:var(--ink);font-weight:700}
.di-bars li.is-cur b{background:var(--accent);opacity:1}
.di-bars li.is-cur em{color:var(--accent)}
@media (max-width:720px){
  .di-grid{grid-template-columns:minmax(0,1fr)}
  .di-out{order:-1;border-left:0;border-bottom:1px solid var(--soft)}
}
@media (max-width:420px){
  .di-in,.di-out,.di-cmp{padding-left:12px;padding-right:12px}
  .di-fields{grid-template-columns:minmax(0,1fr)}
  .di-year{margin-left:0;flex-basis:100%}
}
