@charset "utf-8";
/* invest.css 不動産投資の収支（e1.css の上に足す分だけ。body.inv の中だけに効く）
   左＝入力（いつも使う欄は出し、一般的でない設定はまとまりごとの「詳しい設定」に入れる）｜右＝1年目の税引前CF（大きな数字1つ）→ NOI・返済額・DSCR・ネット利回り → 売却を入れた結果（PC は画面に留める）→ 空室率の影響。
   説明は ⓘ に入れ、左の列に文を出しっぱなしにしない。動くのは押した所の色と面の開閉だけ。 */

/* ── 左：はじめの6つ（2つ並びは PC でも横に並べて、縦を短く） ── */
.inv .in-main .row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.inv .calc .in-main .row2 .fld + .fld { margin-top: 0; }
.inv #f-rate, .inv #f-term { --uw: 52px; }
.inv .in-main .inp input, .inv .in-main .drum-btn { padding-right: calc(var(--uw) + 12px); padding-left: 14px; }
.inv .in-main .drum-btn .ic { right: calc(var(--uw) + 12px); }

/* ── 左：その下のまとまり（見出しは小さく・まとまりの間は細い罫） ── */
.inv .opt-body.is-always { margin-top: 20px; padding: 0; border-top: 1px solid var(--c-line); }
.inv .o-grp { padding: 14px 0 6px; }
.inv .o-grp + .o-grp { border-top: 1px solid var(--c-line); }
.inv .g-h { display: flex; align-items: center; gap: 4px; margin: 0 0 8px; font: 700 15px/22px var(--f-ja); color: var(--c-ink); }
.inv .g-h .tip, .inv .lbl-tip .tip { margin-left: 2px; }
.inv .lbl-tip { display: flex; align-items: center; }
.inv .lbl-tip > label { margin: 0; font: inherit; }
.inv .o-grp .fld + .fld { margin-top: 10px; }
.inv .o-grp .slot { min-height: 0; margin-top: 0; }
.inv .o-grp .slot:has(.err:not(:has(span:empty))) { margin-top: 6px; }
.inv .o-grp .lbl, .inv .o-grp .lbl-t, .inv .o-grp .fld > label { margin-bottom: 6px; font: 700 14px/20px var(--f-ja); }

/* 小さめの欄（44px・字18px）。単位は右の灰色の箱 */
.inv { --uw-s: 48px; }
.inv .inp.s input { height: 44px; padding: 0 calc(var(--uw-s) + 10px) 0 12px; font-size: 18px; }
.inv .inp.s .unit { width: var(--uw-s); font-size: 13px; }
.inv .drum-btn.s { height: 44px; padding: 0 calc(var(--uw-s) + 10px) 0 12px; }
.inv .drum-btn.s .n { font-size: 18px; }
.inv .drum-btn.s .u { width: var(--uw-s); font-size: 13px; }
.inv .drum-btn.s .ic { right: calc(var(--uw-s) + 8px); }
.inv .drum-btn .u { white-space: nowrap; }

/* 費用の行：欄｜確定・仮置き・未確認（3つの小さな切り替え。✓ は付けず、選んだ物は墨の面） */
.inv .seg.cst-seg { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.inv .seg.cst-seg > label { min-height: 44px; padding: 0 2px; }
.inv .seg.cst-seg .ja { font-size: 13px; letter-spacing: 0; }
.inv .fld.is-unk .inp input { border-style: dashed; border-color: var(--c-line); background: var(--c-field); color: #9A9A9A; -webkit-text-fill-color: #9A9A9A; }
.inv .fld.is-unk .inp .unit { color: #9A9A9A; }

/* 金利の変更：「変更あり」のときだけ、すぐ下に時期と年利 */
.inv .row2.chg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 10px; }
.inv .row2.chg .fld + .fld { margin-top: 0; }
.inv #f-method + #f-chg { margin-top: 12px; }

/* 先の年：3つ横並び */
.inv .row3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.inv .row3 .fld + .fld { margin-top: 0; }
.inv .o-grp .slot .err + .err { margin-top: 2px; }

/* 大型修繕：何年目｜金額｜消す */
.inv #f-capex .seg { margin-bottom: 0; }
.inv .cx { margin-top: 10px; }
.inv .cx-row { display: grid; grid-template-columns: 124px minmax(0, 1fr) 44px; gap: 8px; align-items: center; }
.inv .cx-row + .cx-row { margin-top: 8px; }
.inv .cx-row .fld + .fld { margin-top: 0; }
.inv .cx-del { color: var(--c-ink2); }
.inv .cx-add { margin-top: 2px; font-size: 14px; }

.inv .reset-row.o-sec { margin-top: 8px; padding-top: 4px; border-top: 1px solid var(--c-line); }
.inv .ex-note { margin: 0 0 8px; font: 400 12px/18px var(--f-ja); color: var(--c-ink2); }

/* ── 右：答え。PC は右の列を左の高さまでのばし、主な答え（o-stick）だけを画面の上に留める。空室率の影響はその下 ── */
@media (min-width: 768px) {
  .inv .c-out { display: flex; flex-direction: column; align-self: stretch; }
  .inv .o-stickbox { flex: 1 1 auto; }
  .inv .o-stick { position: sticky; top: 16px; }
  .inv .c-out.no-stick .o-stick { position: static; }
}
/* 数字の上の1行は、数字と単位の列の幅を決めない（長いと数字の列が細くなり、字が小さくされるため） */
.inv .calc .c-out .ax, .inv .calc #oCmp .ax { grid-template-columns: minmax(0, max-content) minmax(max-content, 1fr); }
.inv .calc .c-out .ax > .l, .inv .calc #oCmp .ax > .l { contain: inline-size; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv .calc .in-main .row2 + .fld { margin-top: 16px; }
.inv .r-hd .ml { display: flex; align-items: center; gap: 4px; }
.inv .r-hd .ml .tip { margin-left: 2px; }
/* 主役の数字のすぐ下：1行目＝未確認で引いていない費用（墨・ふつうの太さ・赤にしない）、2行目＝仮置き（小さく灰色）。高さは固定 */
.inv .pst { min-height: 46px; margin-top: 8px; }
.inv .pst-1 { margin: 0; font: 400 14px/24px var(--f-ja); color: var(--c-ink); word-break: auto-phrase; }
.inv .pst-2 { margin: 2px 0 0; font: 400 12px/20px var(--f-ja); color: var(--c-ink2); }
.inv .pst .pv { display: inline-flex; align-items: center; height: 20px; margin: 2px 8px 0 0; padding: 0 6px; border: 1px solid var(--c-ink); font: 700 12px/1 var(--f-ja); color: var(--c-ink); vertical-align: top; }
.inv .o-main.is-wait .pst { visibility: hidden; }
/* 主役の数字は、住宅ローンより一段小さく（いちばん大きい数字のまま） */
.inv { --fs-main: 72px; --lh-main: 74px; }
.inv .to-cost { display: none; }

/* NOI・返済額・DSCR（1年目）：3つ横並び・細い縦罫 */
.inv .kpi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 10px 0 0; padding: 14px 0 0; border-top: 1px solid var(--c-line); }
.inv .kpi > div { min-width: 0; padding: 0 16px; border-left: 1px solid var(--c-line); }
.inv .kpi > div:first-child { padding-left: 0; border-left: 0; }
.inv .kpi dt { display: flex; align-items: center; gap: 2px; height: 22px; font: 700 13px/20px var(--f-ja); color: var(--c-ink); white-space: nowrap; }
.inv .kpi dd { display: flex; align-items: baseline; gap: 6px; margin: 4px 0 0; height: 30px; white-space: nowrap; }
.inv .kpi .n { font: 700 24px/30px var(--f-num); letter-spacing: -.02em; }
.inv .kpi .n { min-width: 0; overflow: hidden; white-space: nowrap; }
.inv .kpi .u { flex: none; }
.inv .kpi .u { font: 400 13px/1 var(--f-ja); color: var(--c-ink); }
.inv .o-main.is-wait .kpi .n { color: #B0B0B0; }

/* 空室率の影響（金利上昇の影響と同じ形）。赤は「年間の減少額」だけ */
.inv .o-rise { margin-top: 22px; }
.inv .o-rise .r2 .n { color: var(--c-ink); }
.inv .o-rise .r2 .n.is-dec { color: var(--c-mark); }
.inv .o-rise .ax .l { white-space: nowrap; }
/* 税引前CFが0になる空室率（小さな1行） */
.inv .be { display: flex; align-items: center; min-height: 44px; margin: 14px 0 0; padding-top: 10px; border-top: 1px solid var(--c-line); font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .be .tip { margin-left: 4px; }
/* 満室時の月額家賃（物件全体）：括弧は少し小さく。1行に収まらないときは括弧ごと折り返す */
.inv .lbl-s { font-size: 12px; line-height: 1; font-weight: 400; letter-spacing: 0; white-space: nowrap; }
.inv .in-main .row2:has(#f-rent) { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.inv #f-vac .lbl-tip { margin: 0 0 6px; font: 700 14px/20px var(--f-ja); }
/* 年ごとの行：閉じていても「赤字になる年／大型修繕」の要約。PC は1行 */
.inv .acc-d--sum { color: var(--c-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── 下の行の中 ── */
.inv .acc-in--wf { max-width: 760px; }
.inv .wftbl th, .inv .wftbl td { padding-top: 9px; padding-bottom: 9px; }
.inv .wftbl td { font-size: 16px; }
.inv .wftbl thead th { padding-top: 0; }
.inv .wftbl .wf-c { width: 34%; padding-left: 20px; }
.inv .wftbl tr.wf-minus th { padding-left: 14px; font-weight: 400; color: var(--c-ink2); }
.inv .wftbl tr.wf-minus td { font-weight: 500; color: var(--c-ink2); }
.inv .wftbl tr.wf-subtotal th, .inv .wftbl tr.wf-start th { font-weight: 700; }
.inv .wftbl tbody tr:last-child th, .inv .wftbl tbody tr:last-child td { border-bottom: 1px solid var(--c-ink); }
.inv .wf-bar { display: block; height: 10px; background: var(--c-ink); }
.inv .wf-bar.is-m { background: var(--c-bar3); }
.inv .wf-bar.is-neg { background: transparent; border: 1px dashed var(--c-ink); }
.inv .wf-u { font: 500 13px/20px var(--f-ja); color: var(--c-ink2); }

.inv .acc-in--yr { max-width: none; }
.inv .itbl { min-width: 1000px; }
.inv .itbl caption { text-align: left; }
.inv .itbl caption .tip { margin-left: 12px; }
.inv .itbl th, .inv .itbl td { padding: 8px 0 8px 10px; font-size: 13px; }
.inv .itbl thead th { font-size: 12px; line-height: 16px; white-space: normal; text-align: right; }
.inv .itbl thead th:first-child { text-align: left; }
.inv .itbl td { font-weight: 500; }
.inv .itbl td.yt-cf { font-weight: 700; }
@media (hover: hover) { .inv .itbl tbody tr:hover { background: var(--c-hover); } }

.inv .acc-in--cx .acc-two { margin-top: 0; }
.inv .acc-in--cx .ktbl td { font-size: 15px; }
.inv .acc-in--cx .ktbl th, .inv .acc-in--cx .ktbl td { padding-top: 10px; padding-bottom: 10px; }
.inv .acc-in--cx .ktbl thead th { font-size: 12px; }

.inv .sttbl { margin-top: 0; }
.inv .sttbl td { font: 500 14px/20px var(--f-ja); white-space: normal; }
.inv .sttbl thead th { text-align: right; }
.inv .acc-in--note .cdx-b { margin-top: 20px; }
.inv .acc-in--note .cdx-b p { margin-top: 0; }
.inv .acc-in--note .cdx-b p + p { margin-top: 6px; }
.inv .acc-in--note .cdx-b .pane-h { margin-top: 16px; padding-top: 10px; }
.inv .acc-in--note .cdx-b .pane-h:first-child { margin-top: 0; }
.inv .acc-in--note .cdx-b .pane-h + p { margin-top: 6px; }
.inv .cdx-b .formula { display: inline; margin: 0; padding: 0; font-size: 14px; }
.inv .cdx-b .formula sup { font-size: 12px; }

/* ═══ 中くらいの幅 ═══ */
@media (max-width: 1100px) {
  .inv .kpi > div { padding: 0 10px; }
  .inv .kpi .n { font-size: 21px; }
  .inv { --fs-main: 66px; --lh-main: 68px; }
}
@media (max-width: 900px) {
  .inv .kpi { grid-template-columns: 1fr 1fr 1fr; }
  .inv .kpi dt { font-size: 12px; }
}

/* ═══ スマホ：はじめの6つ → 答え → 費用などの条件 → 空室率の影響 → 下の行 ═══ */
@media (max-width: 767px) {
  .inv .c-out { position: static; }
  .inv .calc .opt-body.is-always { order: 3; margin-top: 4px; }
  .inv .calc .o-top { order: 2; margin-top: 4px; }
  .inv .calc .o-rise { order: 4; }
  .inv .in-main .row2 { gap: 12px; }
  .inv .calc .in-main .row2 { margin-top: 14px; }
  .inv .o-grp { padding: 14px 0 8px; }
  .inv { --fs-main: 48px; --lh-main: 52px; }
  .inv .pst { min-height: 68px; }
  .inv .pst-1 { line-height: 22px; }
  .inv .pst-2 { line-height: 20px; }
  .inv .to-cost { display: block; margin: 4px 0 0; text-align: right; }
  .inv .calc .opt-body.is-always { margin-top: 4px; }
  .inv #g-cost { scroll-margin-top: 12px; }
  .inv .acc-d--sum { white-space: normal; min-height: 40px; }
  .inv .kpi { margin-top: 8px; padding-top: 12px; }
  .inv .kpi > div { padding: 0 8px; }
  .inv .kpi dt { font-size: 12px; }
  .inv .kpi .n { font-size: 18px; line-height: 26px; }
  .inv .kpi dd { height: 26px; gap: 3px; }
  .inv .kpi .u { font-size: 12px; }
  .inv .o-rise { margin-top: 20px; }
  .inv .rsel .seg.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .inv .ex-note { margin-bottom: 4px; }
  .inv .wftbl .wf-c { width: 28%; padding-left: 12px; }
  .inv .wftbl tr.wf-minus th { padding-left: 10px; }
  .inv .wftbl th, .inv .wftbl td { font-size: 14px; }
  .inv .wftbl th:first-child { font-size: 13px; }
  .inv .itbl { min-width: 880px; }
  .inv .acc-in--yr .itbl th, .inv .acc-in--yr .itbl td { padding: 7px 0 7px 8px; font-size: 12px; }
  .inv .acc-in--yr .itbl th:first-child { position: sticky; left: 0; z-index: 1; padding-left: 0; padding-right: 6px; background: var(--c-bg); }
}
@media (max-width: 374px) {
  .inv { --uw-s: 42px; }
  .inv .seg.cst-seg { gap: 3px; }
  .inv .cx-row { grid-template-columns: 112px minmax(0, 1fr) 44px; }
  .inv .row3 { gap: 8px; }
  .inv .kpi .n { font-size: 16px; }
  .inv { --fs-main: 44px; --lh-main: 48px; }
}
.inv .r-hd .cnd-line { white-space: normal; word-break: auto-phrase; }

/* ═══ 10/29 左の並びの組み直し・ネット利回り・売却 ═══ */
/* 左：まとまりの見出し（価格・取得費用／収入／運営費／借入）は、はじめの入力の中でも同じ形 */
.inv .in-main > .o-grp:first-child { padding-top: 0; }
.inv .calc .in-main .o-grp .row2 { margin-top: 10px; }
.inv .calc .in-main .o-grp .row2 + .fld { margin-top: 10px; }
.inv .in-main #f-rentby + .row2 { margin-top: 10px; }
/* 将来の変化・売却の2つ並び（片方だけのときも半分の幅） */
.inv .row2.fut { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.inv .row2.fut .fld + .fld { margin-top: 0; }
.inv .o-grp .row2.fut + .slot, .inv .o-grp .row2.fut + .fld, .inv .o-grp .slot + .fld { margin-top: 10px; }
.inv #f-capex > .seg { margin-top: 0; }
.inv #f-chg { margin-top: 12px; }
/* 売却：する／しない → 売る年 → 決め方 → 価格（決め方ごとに1つ）→ 売却費用 */
.inv #saleBox { margin-top: 10px; }
.inv #saleBox > .slot:has(.err:not(:has(span:empty))) { margin-top: 6px; }
.inv #f-sby, .inv #f-sp, .inv #f-scost { margin-top: 10px; }
.inv #f-sby .seg .ja { font-size: 14px; letter-spacing: 0; }
.inv #f-sp .slot { min-height: 20px; margin-top: 4px; }

/* 右：NOI・返済額・DSCR・ネット利回り（PC は2つ×2段） */
.inv .kpi--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inv .kpi--4 > div:nth-child(odd) { padding-left: 0; border-left: 0; }
.inv .kpi--4 > div:nth-child(n+3) { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--c-line); }
.inv .kpi .dt-s { font-weight: 400; font-size: 12px; letter-spacing: 0; }
/* 4つの数字の下：保有中で一番低い年間CF（赤字なら朱） */
.inv .be.be-min { margin-top: 12px; padding-right: 14px; }

/* 売却を入れた結果（空室率の影響と同じ形） */
.inv .o-sale .rh h2 { display: flex; align-items: center; gap: 4px; }
.inv .o-sale .r2 .n { font-size: var(--fs-after); line-height: var(--lh-after); }
.inv .o-sale .ax .u { white-space: nowrap; }
.inv .o-sale .kpi { margin-top: 0; padding-top: 12px; border-top: 1px solid var(--c-line); }
.inv .tax-l { margin: 10px 0 0; font: 400 13px/20px var(--f-ja); color: var(--c-ink); }

/* 売却価格ごとの結果 */
.inv .acc-in--sale { max-width: 860px; }
.inv .sltbl td { font-size: 16px; }
.inv .sltbl thead th { text-align: right; }
.inv .sltbl thead th:first-child { text-align: left; }
.inv .sltbl tr.is-cur th, .inv .sltbl tr.is-cur td { font-weight: 700; color: var(--c-ink); background: var(--c-hover); }
.inv .sltbl tbody tr:not(.is-cur) td { font-weight: 500; }

@media (max-width: 767px) {
  /* スマホ：答えの欄の4つは1行に1つ（名前は左・数字は右） */
  .inv .kpi--4 { grid-template-columns: 1fr; padding-top: 4px; }
  .inv .kpi--4 > div, .inv .kpi--4 > div:nth-child(n+3) { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0; padding: 8px 0; border-left: 0; border-top: 1px solid var(--c-line); }
  .inv .kpi--4 > div:first-child { border-top: 0; }
  .inv .kpi--4 dt { flex: none; }
  .inv .kpi--4 dd { flex: 1 1 auto; justify-content: flex-end; min-width: 0; margin: 0; }
  .inv .kpi--4 .n { font-size: 20px; line-height: 26px; }
  /* 10/29：行の高さを字の読み込みに左右させない（ベースラインそろえだと、字が届いたときに1pxずつ変わっていた） */
  .inv .kpi--4 > div, .inv .kpi--4 > div:nth-child(n+3) { align-items: center; height: 44px; padding: 0; }
  .inv .be.be-min { min-height: 64px; }
  .inv .calc .o-sale { order: 4; }
  .inv .tax-l { margin-bottom: 12px; }
  .inv .sltbl th, .inv .sltbl td { padding-left: 8px; font-size: 13px; }
  .inv .sltbl thead th { font-size: 12px; }
  .inv .sltbl th:first-child { padding-left: 0; font-size: 13px; }
}
@media (max-width: 374px) {
  .inv .kpi--4 .n { font-size: 18px; }
  .inv .sltbl th, .inv .sltbl td { padding-left: 6px; font-size: 12px; }
}
/* 1行の説明（0になる空室率・一番低い年間CF）：狭い画面では文を折り返し、ⓘ を行の中に残す */
.inv .be > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.inv .be .tip { flex: none; }

/* 10/29：保有中で一番低い年間CFが赤字のとき */
.inv #vMin.is-neg { color: var(--c-mark); }

/* ═══ 10/29 r2：詳しい設定の開閉・確かさの札・試算の1行・追従・下の帯 ═══ */
/* 確かさの札：欄名の右。見た目は小さな枠、押せる所は 44px（ⓘ と同じく、まわりに重ねて広げる） */
.inv .lbl-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.inv .o-grp .lbl-row .lbl-t { margin: 0; }
.inv .st-b { display: inline-flex; align-items: center; gap: 2px; flex: none; height: 44px; margin: -12px 0; padding: 0 0 0 6px; border: 0; background: none; color: var(--c-ink); cursor: pointer; }
.inv .st-t { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border: 1px solid var(--c-edge); font: 500 12px/1 var(--f-ja); letter-spacing: 0; }
.inv .st-b[data-st="confirmed"] .st-t { border-color: var(--c-ink); font-weight: 700; }
.inv .st-b[data-st="unknown"] .st-t { border-style: dashed; color: var(--c-ink2); }
.inv .st-b .ic { width: 14px; height: 14px; stroke-width: 1.6; }
.inv .st-b[aria-expanded="true"] .ic { transform: rotate(180deg); }
.inv .st-b:hover .st-t { border-color: var(--c-ink); }
.inv .st-b:focus-visible { outline: none; }
.inv .st-b:focus-visible .st-t { outline: 2px solid var(--c-act); outline-offset: 2px; }
.inv .seg.cst-seg { margin-top: 6px; }

/* 詳しい設定：下の開く行と同じ形（名前＋いまの値の1行＋▾）。押すとすぐ下に開く */
.inv .gacc { margin-top: 12px; border-top: 1px solid var(--c-line); }
.inv .row-b.gacc-b { align-items: center; min-height: 56px; padding: 8px 4px 8px 0; border-top: 0; text-align: left; }
.inv .gacc-b .acc-n { font: 700 14px/20px var(--f-ja); }
.inv .gacc-b .acc-d { font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .gacc-b .ic { flex: none; }
.inv .gacc-p { padding: 2px 0 12px; }
/* 閉じた見出しの1行は「・」で区切った塊ごとに折り返す（〔仮置き〕の途中で折れないように） */
.inv .gacc-b .acc-d .nb { white-space: nowrap; }
.inv .opt-body.is-always { margin-top: 4px; }
.inv .gacc-p > .fld:first-child, .inv .gacc-p > .row2:first-child { margin-top: 0; }
.inv .gacc-p .row2.fut + .slot + .row2.fut, .inv .gacc-p .slot + .row2.fut { margin-top: 10px; }
/* まとまりが「詳しい設定」1つだけのとき（将来の変化・計算期間）は、まとまりの罫だけにする */
.inv .o-grp:has(> .gacc:only-child) { padding: 0; }
.inv .o-grp > .gacc:only-child { margin: 0; border-top: 0; }

/* 試算の確かさ（主役の数字の下）：仮置き○項目・未確認○項目を含む試算　確認する */
.inv .tally { display: flex; flex-wrap: wrap; align-items: center; gap: 0 12px; min-height: 22px; margin: 2px 0 0; font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .tally-b { display: inline-flex; align-items: center; height: 44px; margin: -11px 0; padding: 0 2px; border: 0; background: none; font: 500 13px/20px var(--f-ja); color: var(--c-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.inv .tally-b:hover { color: var(--c-act); }
.inv .o-main.is-wait .tally { visibility: hidden; }

/* 売却を入れた結果：留める所に入るので、数字を一段小さく詰める */
@media (min-width: 768px) {
  .inv .o-stick .o-sale { margin-top: 18px; padding-top: 14px; }
  .inv .o-sale .r-pair { margin-top: 10px; }
  .inv .o-sale .ax { min-height: 0; padding-top: 8px; padding-bottom: 8px; }
  .inv .o-sale .ax.r1 { margin-top: 0; }
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 34px; line-height: 40px; }
  .inv .o-sale .kpi { padding-top: 10px; }
  .inv .o-sale .kpi--4 > div:nth-child(n+3) { margin-top: 8px; padding-top: 8px; }
  .inv .o-sale .kpi .n { font-size: 22px; line-height: 28px; }
  .inv .o-sale .kpi dd { height: 28px; }
  .inv .o-top .kpi--4 > div:nth-child(n+3) { margin-top: 10px; padding-top: 10px; }
}

/* 下の帯（スマホ）：左に1年目のCF、右に「結果を見る」 */
.inv .dock { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
.inv .dk-t { min-width: 0; }
.inv .dk-go { display: inline-flex; align-items: center; gap: 4px; flex: none; height: 44px; padding: 0 2px; color: #fff; font: 700 14px/1 var(--f-ja); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.inv .dk-go .ic { width: 16px; height: 16px; stroke: currentColor; }

@media (max-width: 767px) {
  .inv .o-stickbox, .inv .o-stick { display: contents; }
  /* 4つの数字：名前が長いとき（CCR の言いかえなど）は、名前の側を2行にする（行の高さ 44px は同じ） */
  .inv .kpi--4 dt { display: block; flex: 0 1 auto; min-width: 0; height: auto; white-space: normal; line-height: 18px; }
  .inv .kpi--4 dt .tip { vertical-align: top; }
  .inv .kpi--4 dd { flex: none; }
  .inv .tally { margin-top: 4px; }
}

/* 空室率の影響（PC）：2列の下に置き、左の列＝見出しと空室率の切り替え、右の列＝変更後のCF・減少額・0になる空室率 */
@media (min-width: 768px) {
  .inv .calc > #oCmp { display: grid; grid-template-columns: var(--col-in) minmax(0, 1fr); grid-template-areas: "h p" "s p" "s b"; align-content: start; margin-top: 0; padding: 20px 0 8px; border-top: 1px solid var(--c-line); }
  .inv #oCmp > .rh { grid-area: h; display: block; padding-right: var(--gap-col); }
  .inv #oCmp > .rh .rc { display: block; margin-top: 2px; text-align: left; }
  .inv #oCmp > .rsel { grid-area: s; display: block; margin-top: 12px; padding-right: var(--gap-col); }
  /* 左の列の幅に合わせ、名前は上・切り替えは3つ等分 */
  .inv #oCmp > .rsel legend { float: none; width: auto; margin: 0 0 6px; font: 700 14px/20px var(--f-ja); }
  .inv #oCmp > .rsel .seg { margin-left: 0; }
  .inv #oCmp > .rsel .seg.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .inv #oCmp > .r-pair { grid-area: p; margin-top: 0; padding-left: 48px; }
  .inv #oCmp > .r-pair .ax.r1 { margin-top: 0; }
  .inv #oCmp > .be { grid-area: b; margin-left: 48px; }
}
/* 空室率の影響を右の列の外へ出したので、e1.css の .calc .c-out .ax（名前は上の1行・数字と単位は下）と同じ形をここにも */
.inv .calc #oCmp .ax { display: grid; justify-content: start; align-items: baseline; column-gap: 0; }
.inv .calc #oCmp .ax > .l { grid-column: 1 / -1; }
.inv .calc #oCmp .ax > .n { min-width: 0; }

/* ═══════════════════════════════════════════════════════════
   案1「一覧」（10/29 依頼183）：入力と結果を最短距離で見比べる。
   PC＝入力384＋間32＋結果688（＝1104）。右は上から 1年目 → 保有中 → 売却時 → 詳しい計算。留めない。
   色の役割：墨＝ふつうの字と黒字の額／オレンジ＝見出しの点・番号／青＝選んでいる物・年ごとの棒／赤＝赤字の額／黄褐＝仮置き・未確認
   ═══════════════════════════════════════════════════════════ */
.inv { --k-blue: #245A73; --k-blue-d: #1B4558; --k-red: #B42318; --k-ochre: #805500; --k-face: #F4F6F7; --k-warm: #FFF4D6; --dock: 56px; }
.inv main { --c-mark: #B42318; }

/* ── 左：章（01〜04）。章の頭は墨の罫＋番号（Anton）＋オレンジの点。章の中の小見出しは罫なし ── */
.inv .ch-h { display: flex; align-items: baseline; gap: 10px; margin: 0 0 12px; padding-top: 12px; border-top: 2px solid var(--c-ink); font: 700 17px/24px var(--f-ja); color: var(--c-ink); }
.inv .ch-no { display: inline-flex; align-items: flex-start; font: 400 22px/1 var(--f-en); letter-spacing: .01em; color: var(--c-ink); }
.inv .ch-no::after { content: ""; width: 6px; height: 6px; margin: 1px 0 0 3px; background: var(--c-or); }
.inv .o-grp + .o-grp { border-top: 0; }
.inv .in-main > .o-grp:not(.o-sub) { padding-top: 0; }
.inv .in-main > .o-grp + .o-grp:not(.o-sub) { margin-top: 22px; }
.inv .o-grp.o-sub { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--c-line); }
.inv .ch-h--4 + .o-sub { margin-top: 0; padding-top: 0; border-top: 0; }
.inv .o-ch .g-sub { margin-top: 0; }
.pg-invest .g-h.g-sub { padding-top: 0; border-top: 0; font: 700 15px/22px var(--f-ja); }
.inv .opt-body.is-always { margin-top: 22px; padding: 0; border-top: 0; }
.inv .opt-body .o-grp.o-sub:has(> .gacc:only-child) { padding: 0; }

/* 選んでいる切り替えは青（墨の面は答えと同じ強さになっていた） */
.inv .seg > label:has(input:checked), .inv .seg > button[aria-selected="true"] { background: var(--k-blue); border-color: var(--k-blue); color: #fff; }
.inv .seg > label:has(input:checked):active { background: var(--k-blue-d); }
.inv .row-b[aria-expanded="true"] .acc-n { color: var(--k-blue); }

/* 確かさの札：仮置き＝黄褐の面、未確認＝黄褐の点線、確定＝墨の枠 */
.inv .st-t { border: 1px solid transparent; background: var(--k-warm); color: var(--k-ochre); font-weight: 700; }
.inv .st-b[data-st="unknown"] .st-t { background: #fff; border: 1px dashed var(--k-ochre); color: var(--k-ochre); }
.inv .st-b[data-st="confirmed"] .st-t { background: #fff; border: 1px solid var(--c-ink); color: var(--c-ink); }
.inv .st-b:hover .st-t { border-color: var(--k-ochre); }

/* ── 右：留めない ── */
@media (min-width: 768px) {
  .inv .c-main { grid-template-columns: 384px minmax(0, 1fr); column-gap: 32px; align-items: start; }
  .inv .c-in { padding: 14px 0 20px; border-right: 0; }
  .inv .c-out { display: block; padding: 14px 0 24px; }
  .inv .o-stick, .inv .c-out.no-stick .o-stick { position: static; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .inv .c-main { grid-template-columns: 300px minmax(0, 1fr); column-gap: 24px; }
}
.inv .sec-k { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font: 700 13px/20px var(--f-ja); letter-spacing: .04em; color: var(--c-ink); }
.inv .sec-k::before { content: ""; width: 6px; height: 6px; background: var(--c-or); }
.inv h2 .sec-k { display: inline-flex; margin: 0 12px 0 0; }

/* 1年目：結果の面 */
.inv .r-sec--y1 { padding: 18px 24px 16px; background: var(--k-face); }
.inv { --fs-main: 46px; --lh-main: 52px; }
.inv .o-main .mv .ax { height: auto; }
.inv .o-main .mv .n { font-weight: 800; letter-spacing: -.03em; margin: 2px 0 0 -2px; }
.inv .o-main .mv .u { margin-left: 10px; font: 700 16px/1 var(--f-ja); }
.inv #vCf.is-neg { color: var(--k-red); }
.inv .cf-neg { display: inline-flex; align-items: center; height: 22px; margin-left: 10px; padding: 0 7px; border: 1px solid var(--k-red); font: 700 12px/1 var(--f-ja); color: var(--k-red); vertical-align: 2px; }
.inv .cf-neg[hidden] { display: none; }
/* 確かさ：主役の数字のすぐ下（24px以内）。仮置き・未確認があるときだけ黄褐の面 */
.inv .pst { min-height: 0; margin-top: 8px; padding: 8px 12px; }
.inv .pst:has(.pv) { background: var(--k-warm); }
.inv .pst .pv { border-color: var(--k-ochre); color: var(--k-ochre); background: #fff; }
.inv .pst-2 { color: var(--k-ochre); }
.inv .tally { margin: 2px 0 0; padding: 0 12px; }
.inv .tally-b { color: var(--k-ochre); font-weight: 700; }
.inv .tally-b:hover { color: var(--c-ink); }
/* NOI・返済（24px）→ DSCR・ネット利回り（18px） */
.inv .o-top .kpi { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--c-line); }
.inv .o-top .kpi--4 > div:nth-child(n+3) .n { font-size: 18px; line-height: 26px; }
.inv .o-top .kpi--4 > div:nth-child(n+3) dd { height: 26px; }
/* 空室率を上げたとき（1年目の中の小さなまとまり） */
.inv .y1-cmp { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--c-line); }
.inv #oCmp { margin: 0; padding: 0; border: 0; background: none; }
.inv #oCmp .rh { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 12px; }
.inv #oCmp .rh h3 { margin: 0; font: 700 14px/22px var(--f-ja); }
.inv #oCmp .rh .rc { display: block; margin: 0; font: 500 13px/20px var(--f-num); color: var(--c-ink2); }
.inv #oCmp .rsel { margin-top: 8px; }
.inv #oCmp .seg.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.inv #oCmp .r-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; margin-top: 10px; }
.inv .calc #oCmp .ax { display: grid; grid-template-columns: minmax(0, max-content) max-content; justify-content: start; align-items: baseline; margin: 0; padding: 0; min-height: 0; border: 0; }
.inv .calc #oCmp .ax > .l { grid-column: 1 / -1; font: 700 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .calc #oCmp .ax > .n { font: 700 22px/30px var(--f-num); letter-spacing: -.02em; text-align: left; }
.inv .calc #oCmp .ax > .u { margin-left: 4px; font: 400 13px/1 var(--f-ja); }
.inv #oCmp .r2 .n { color: var(--c-ink); }
.inv .calc #oCmp .ax > .n.is-neg { color: var(--k-red); }
.inv #oCmp .r2 .n.is-dec { color: var(--k-red); }
.inv #oCmp .be { margin-top: 6px; padding-top: 0; border-top: 0; min-height: 44px; }
@media (min-width: 768px) {
  .inv #oCmp { display: grid; grid-template-columns: 312px minmax(0, 1fr); grid-template-areas: "h h" "s p" "b b"; column-gap: 24px; }
  .inv #oCmp > .rh { grid-area: h; }
  .inv #oCmp > .rsel { grid-area: s; align-self: end; }
  .inv #oCmp > .r-pair { grid-area: p; padding: 0; }
  .inv #oCmp > .be { grid-area: b; margin-left: 0; }
}

/* 保有中・売却時：墨の罫で区切る（面は 1年目だけ） */
.inv .r-sec.o-hold, .inv .o-stick .r-sec.o-sale { margin-top: 28px; padding-top: 14px; border-top: 2px solid var(--c-ink); }
.inv .r-sec .rh { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 14px; }
.inv .r-sec .rh h2 { display: flex; align-items: center; margin: 0; font: 700 17px/26px var(--f-ja); }
.inv .r-sec .rh .rc { display: block; margin: 0; font: 500 13px/20px var(--f-num); color: var(--c-ink2); text-align: left; }
.inv .o-hold .be.be-min { min-height: 0; margin-top: 8px; padding: 0 14px 0 0; border-top: 0; font-size: 15px; font-weight: 700; }
.inv .hold-ch { margin-top: 6px; }
.inv .hbar { display: block; width: 100%; overflow: visible; }
.inv .hbar text { font: 500 12px var(--f-num); fill: var(--c-ink2); }
.inv .hbar .b-pos { fill: var(--k-blue); }
.inv .hbar .b-neg { fill: var(--k-red); }
.inv .hbar .b-cx { fill: var(--c-ink); }
.inv .hbar .b-lab { font: 700 12px var(--f-ja); fill: var(--c-ink); }
.inv .hbar .b-lab.is-neg { fill: var(--k-red); }
.inv .hold-go { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 16px; margin: 2px 0 0; }
.inv .hold-go .tl { padding: 0; border: 0; background: none; font: 700 14px/20px var(--f-ja); color: var(--k-blue); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.inv .hold-go .tl .ic { width: 14px; height: 14px; }
.inv .hold-cx { font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .hold-cx::before { content: "\25B2  "; font-size: 12px; }
@media (min-width: 768px) {
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 30px; line-height: 36px; }
  .inv .o-sale .kpi .n { font-size: 20px; line-height: 28px; }
}
.inv .o-sale .r2 .n { color: var(--c-ink); }
.inv .o-sale .ax .u { margin-left: 6px; }

/* 詳しい計算：右の列の終わり */
.inv .r-more { margin-top: 32px; }
.inv .r-more .more-rows { margin-top: 0; border-top: 2px solid var(--c-ink); }
.inv .r-more .more-rows .acc:first-child .row-b { border-top: 0; }
.inv .sec-k--more { margin-bottom: 8px; font-size: 17px; line-height: 26px; letter-spacing: 0; }

/* ── スマホ：物件〜借入 → 1年目 → 保有・売却の入力 → 保有中 → 売却時 → 詳しい計算 ── */
@media (max-width: 767px) {
  .inv .calc .o-top { order: 2; margin: 18px 0 0; padding: 16px 0 12px; border-top: 0; background: var(--k-face); box-shadow: -16px 0 0 var(--k-face), 16px 0 0 var(--k-face); }
  .inv .calc .opt-body.is-always { order: 3; margin-top: 22px; }
  .inv .calc .o-hold { order: 4; }
  .inv .calc .o-sale { order: 4; }
  .inv .calc .r-more { order: 5; }
  .inv { --fs-main: 34px; --lh-main: 40px; }
  .inv .pst { min-height: 0; }
  .inv #oCmp .r-pair { grid-template-columns: 1fr 1fr; }
  .inv .calc #oCmp .ax > .n { font-size: 20px; line-height: 28px; }
  .inv .calc #oCmp .ax > .l { font-weight: 400; font-size: 12px; }
  .inv .to-cost { margin: 0; }
  .inv .r-sec.o-hold, .inv .r-sec.o-sale { margin-top: 24px; padding: 14px 0 0; border-top: 2px solid var(--c-ink); background: none; }
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 30px; line-height: 36px; }
  .inv .r-more { margin-top: 28px; }
}
.inv #oCmp .rsel legend.vh { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); }

/* ── 10/29 GPT 1周目のあと：文字の段を3つに（CF だけ太く）・暫定の札・選んだ物に✓・減少額は墨・スマホの1年目を詰める ── */
.inv .pv-h { display: inline-flex; align-items: center; height: 22px; margin-left: 10px; padding: 0 6px; border: 1px solid var(--k-ochre); background: #fff; font: 700 12px/1 var(--f-ja); color: var(--k-ochre); }
.inv .pv-h[hidden] { display: none; }
.inv { --fs-main: 44px; --lh-main: 50px; }
.inv .o-top .kpi .n, .inv .o-top .kpi--4 > div:nth-child(n+3) .n { font: 500 22px/30px var(--f-num); letter-spacing: -.01em; }
.inv .o-top .kpi dd, .inv .o-top .kpi--4 > div:nth-child(n+3) dd { height: 30px; }
.inv .calc #oCmp .ax > .n { font-weight: 500; }
.inv #oCmp .r2 .n.is-dec { color: var(--c-ink); }
.inv .o-sale .kpi .n { font-weight: 500; }
.inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-weight: 600; }
@media (min-width: 768px) {
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 26px; line-height: 34px; }
  .inv .o-sale .kpi .n { font-size: 20px; line-height: 28px; }
  /* 空室率：切り替えは横いっぱい（✓ と「ポイント」が切れないように）、その下に2つの数字 */
  .inv #oCmp { display: block; }
  .inv #oCmp > .rsel .seg.c3 { gap: 8px; }
  .inv #oCmp > .r-pair { margin-top: 10px; }
}
.inv .cst-seg .ck { margin-right: 4px; }
.inv .cst-seg > label:not(:has(input:checked)) .ck { display: none; }
@media (max-width: 767px) {
  .inv { --fs-main: 36px; --lh-main: 42px; }
  .inv .calc .o-top { padding: 14px 0 4px; }
  .inv .o-top .r-hd .cnd-line { margin-top: 0; }
  .inv .o-main .mv .ax > .l { margin-top: 2px; }
  .inv .o-top .kpi { margin-top: 10px; padding-top: 2px; }
  .inv .o-top .kpi .n, .inv .o-top .kpi--4 > div:nth-child(n+3) .n { font-size: 20px; line-height: 26px; }
  .inv .y1-cmp { margin-top: 6px; padding-top: 10px; }
  .inv #oCmp .rsel { margin-top: 6px; }
  .inv #oCmp .r-pair { margin-top: 8px; }
  .inv #oCmp .be { margin-top: 0; }
  .inv .to-cost { margin: -4px 0 0; }
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 24px; line-height: 30px; }
  .inv .o-sale .kpi--4 .n { font-size: 20px; }
}

/* ── 10/29 GPT 2周目のあと：暫定の札は見出しに1つ（黄色の枠は理由だけ）・試算全体の件数・表の横の続き・売却年と表の年数 ── */
.inv .pst .pv { display: none; }
.inv .r-sec .rh h2 .pv-h { margin-left: 10px; }
.inv .tally-k { color: var(--c-ink2); }
.inv .tally { gap: 0 4px; }
.inv .tally .tally-b { margin-left: 8px; }
.inv .cap-s { margin-left: 8px; font-size: 12px; color: var(--c-ink2); }
.inv .acc-cond .cd-k { display: block; margin-bottom: 4px; color: var(--c-ink); font-weight: 700; }
.inv .acc-in--yr .itbl th:first-child { position: sticky; left: 0; z-index: 1; background: var(--c-bg); }

/* ── 10/29 GPT 3周目のあと：スマホの IRR と利益の間・売却しないときの小見出し ── */
.inv #saleK[hidden], .inv .tax-l[hidden] { display: none; }
@media (max-width: 767px) { .inv .o-sale .r-pair .ax.r2 { margin-top: 14px; } }
@media (min-width: 768px) and (max-width: 1023px) { .inv .kpi dt { display: block; height: auto; min-height: 22px; white-space: normal; line-height: 18px; } .inv .kpi dt .tip { vertical-align: top; } }
@media (min-width: 768px) and (max-width: 1023px) { .inv .sltbl th, .inv .sltbl td { padding-left: 6px; font-size: 13px; } .inv .sltbl thead th { font-size: 12px; } .inv .acc-in--sale { overflow-x: auto; } }

/* ═══ l1「判読」（10/29）：期間と数字を最短で読み分ける ═══
   ・各結果の頭に同じ形の「期間の帯」（区分＋期間・売却を含むか）
   ・数字は3段：主結果（CF・最低CF・IRR・利益）／補助（NOI など）／注記。太さと余白で差をつける
   ・単位は数字より一段弱く。数字は桁幅のそろう字形
   ・本文 #0C0C0C・補助 #595959・罫 #D8DDE0 */
.inv .calc { --c-ink: #0C0C0C; --c-ink2: #595959; --c-line: #D8DDE0; }
.inv .c-out .n, .inv .c-out .per-t, .inv .acc-d, .inv .acc-ref, .inv .hold-cx { font-variant-numeric: tabular-nums lining-nums; }

/* 期間の帯：1年目・保有中・売却込み で同じ位置・同じ書式 */
.inv .per { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 12px; min-height: 20px; margin: 0 0 4px; }
.inv .per-k { display: inline-flex; align-items: center; gap: 7px; flex: none; font: 700 13px/20px var(--f-ja); letter-spacing: .04em; color: var(--c-ink); }
.inv .per-k::before { content: ""; width: 6px; height: 6px; background: var(--c-or); }
.inv .per-t { font: 500 13px/20px var(--f-ja); color: var(--c-ink2); }
.inv .per-k[hidden] { display: inline-flex; }
/* 見出しは3つとも同じ大きさ */
.inv .r-hd .ml b, .inv .r-sec .rh h2 { font: 700 17px/26px var(--f-ja); }
.inv .r-sec .rh h2 .pv-h, .inv .r-hd .ml .pv-h { margin-left: 10px; }
.inv .r-sec--y1 { padding-top: 16px; }
.inv .r-sec.o-hold, .inv .o-stick .r-sec.o-sale { padding-top: 16px; }

/* 単位：数字より一段弱く */
.inv .c-out .u, .inv .calc #oCmp .ax > .u, .inv .kpi .u { font: 400 13px/1 var(--f-ja); color: var(--c-ink2); }
.inv .o-main .mv .u { margin-left: 8px; font: 500 16px/1 var(--f-ja); color: var(--c-ink2); }
.inv .o-main .mv .u .cf-neg { color: var(--k-red); }

/* 補助（2段目）：1年目・空室率・売却の内訳で同じ大きさ・同じ行の高さ */
.inv .kpi dt { height: 22px; font: 500 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .kpi .dt-s { color: var(--c-ink2); }
.inv .kpi dd { height: 28px; margin-top: 4px; gap: 0; }
.inv .kpi .u { margin-left: 4px; }
.inv .c-out .kpi .n, .inv .o-top .kpi .n, .inv .o-top .kpi--4 > div:nth-child(n+3) .n, .inv .o-sale .kpi .n, .inv .calc #oCmp .ax > .n { font: 500 20px/28px var(--f-num); letter-spacing: -.01em; }
.inv .o-top .kpi dd, .inv .o-top .kpi--4 > div:nth-child(n+3) dd, .inv .o-sale .kpi dd { height: 28px; }
.inv .kpi--4 > div:nth-child(n+3), .inv .o-top .kpi--4 > div:nth-child(n+3), .inv .o-sale .kpi--4 > div:nth-child(n+3) { margin-top: 12px; padding-top: 12px; }
.inv .calc #oCmp .ax > .l { font: 500 13px/20px var(--f-ja); }

/* 主結果（1段目）：最低CF・IRR・期間全体の利益 */
.inv .o-hold .be.be-min { align-items: flex-start; margin-top: 10px; padding: 0; font-weight: 400; }
.inv #vMin, .inv #vMin.is-neg { display: grid; gap: 2px; color: var(--c-ink); }
.inv #vMin .mn-l { font: 500 13px/20px var(--f-ja); color: var(--c-ink); }
.inv #vMin .mn-r { display: flex; align-items: baseline; gap: 0; white-space: nowrap; }
.inv #vMin .mn-y { display: inline-flex; align-items: center; height: 24px; margin-right: 12px; padding: 0 8px; border: 1px solid var(--c-ink); font: 700 13px/1 var(--f-ja); align-self: center; }
.inv #vMin.is-neg .mn-y { border-color: var(--k-red); color: var(--k-red); }
.inv #vMin .mn-v { font: 600 28px/34px var(--f-num); letter-spacing: -.01em; color: var(--c-ink); }
.inv #vMin.is-neg .mn-v { color: var(--k-red); }
.inv #vMin .mn-u { margin-left: 4px; font: 400 13px/1 var(--f-ja); color: var(--c-ink2); }
.inv .o-hold .be-min .tip { margin-top: -12px; }
.inv .o-sale .r-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 10px; }
.inv .o-sale .r-pair .ax { display: grid; grid-template-columns: max-content max-content; justify-content: start; align-items: baseline; margin: 0; padding: 0 16px 12px; min-height: 0; border: 0; }
.inv .o-sale .r-pair .ax.r1 { padding-left: 0; }
.inv .o-sale .r-pair .ax.r2 { border-left: 1px solid var(--c-line); }
.inv .o-sale .r-pair .ax > .l { grid-column: 1 / -1; font: 500 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font: 600 28px/34px var(--f-num); letter-spacing: -.01em; }
.inv .o-sale .ax .u { margin-left: 4px; }
.inv .o-sale .kpi { margin-top: 0; padding-top: 12px; }

/* 注記（3段目） */
.inv .r-hd .cnd-line, .inv .o-main .mv .ax > .l, .inv .tax-l { font-size: 12px; line-height: 18px; color: var(--c-ink2); }
.inv .tax-l { margin-top: 12px; }

/* 開く行：題と開閉記号をそろえ、下は短い条件1行 */
.inv .r-more .acc-b { align-items: center; min-height: 64px; }
.inv .r-more .acc-n { font: 700 15px/22px var(--f-ja); }
.inv .r-more .acc-d { font: 400 13px/20px var(--f-ja); color: var(--c-ink2); }
.inv .r-more .acc-d--sum { color: var(--c-ink2); }
.inv .acc-ref { margin: 0 0 10px; padding: 8px 12px; background: var(--k-face); font: 700 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .acc-ref[hidden] { display: none; }

@media (max-width: 767px) {
  .inv .o-sale .r-pair { grid-template-columns: 1fr; }
  .inv .o-sale .r-pair .ax, .inv .o-sale .r-pair .ax.r1 { padding: 0; border: 0; }
  .inv .o-sale .r-pair .ax.r2 { margin-top: 20px; padding-top: 0; border-left: 0; }
  .inv .o-sale .r-pair { padding-bottom: 12px; }
  .inv .o-sale .r1 .n, .inv .o-sale .r2 .n { font-size: 26px; line-height: 32px; }
  .inv #vMin .mn-v { font-size: 26px; line-height: 32px; }
  .inv .kpi--4 .n, .inv .o-top .kpi .n, .inv .o-sale .kpi--4 .n { font-size: 18px; line-height: 26px; }
  .inv .r-more .acc-d--sum { white-space: normal; }
}
/* l1 手直し：IRR の名前を切らない・条件の行は題の下・最低CF の ⓘ は名前の横 */
.inv .calc .o-sale .r-pair .ax > .l { contain: none; overflow: visible; white-space: normal; text-overflow: clip; }
.inv .r-hd { flex-wrap: wrap; }
.inv .r-hd .cnd-line { flex: 1 0 100%; margin: 0; }
.inv .o-hold .be.be-min { display: grid; grid-template-columns: max-content 44px 1fr; grid-template-areas: "l t ." "r r r"; align-items: center; row-gap: 0; min-height: 0; }
.inv #vMin, .inv #vMin.is-neg { display: contents; }
.inv #vMin .mn-l { grid-area: l; }
.inv #vMin .mn-r { grid-area: r; }
.inv .o-hold .be-min .tip { grid-area: t; margin: -12px 0; }
.inv #oCmp .r-pair { gap: 0; }
.inv #oCmp .r-pair .ax.r2 { padding-left: 17px; }
.inv .o-sale .r-pair .ax { grid-template-columns: auto 1fr; }
.inv .o-sale .r-pair .ax > .n { text-align: left; }
@media (max-width: 767px) {
  .inv .kpi--4 > div, .inv .kpi--4 > div:nth-child(n+3), .inv .o-top .kpi--4 > div:nth-child(n+3), .inv .o-sale .kpi--4 > div:nth-child(n+3) { margin: 0; padding: 0; min-height: 44px; height: auto; }
  .inv .kpi--4 dd, .inv .o-top .kpi dd, .inv .o-sale .kpi dd { height: auto; margin: 0; }
  .inv .o-sale .r-pair { margin-top: 12px; }
}
@media (max-width: 767px) { .inv .o-sale .r-pair { padding-top: 12px; } }
@media (max-width: 767px) { .inv .r-more .acc-d--sum { min-height: 0; } }
@media (max-width: 767px) { .inv .r-hd .ml b, .inv .r-sec .rh h2 { font-size: 16px; line-height: 24px; } .inv .r-hd .ml { flex: 1 1 100%; flex-wrap: wrap; min-width: 0; } .inv .r-hd .ml .pv-h { margin-left: 8px; } }
/* l1 GPT 1周目のあと：参考表の帯を2行に・未確認の注記・売却しないときは空の4項目をまとめる */
.inv .acc-ref b { display: block; font-weight: 700; }
.inv .acc-ref span { display: block; font-weight: 400; color: var(--c-ink2); }
.inv .un-note { margin: 4px 0 0; font: 400 13px/20px var(--f-ja); color: var(--k-ochre); }
.inv .un-note[hidden], .inv .off-note[hidden] { display: none; }
.inv .off-note { margin: 10px 0 0; padding: 0 0 12px; border-bottom: 1px solid var(--c-line); font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .o-sale.is-off #saleAns, .inv .o-sale.is-off .kpi--4 > div:nth-child(-n+2) { display: none; }
.inv .o-sale.is-off .kpi--4 > div:nth-child(n+3) { margin-top: 0; padding-top: 0; border-top: 0; }
@media (max-width: 767px) { .inv .o-sale.is-off .kpi--4 > div:nth-child(4) { border-top: 1px solid var(--c-line); } .inv .o-sale.is-off .kpi { padding-top: 4px; } }
.inv .acc-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; }
.inv .acc-p { font: 700 12px/20px var(--f-ja); color: var(--c-ink2); }
.inv .acc-p[hidden] { display: none; }
/* 案4 図解（10/29）：0の線・最低の年・修繕の段・年を選ぶ1行 */
.inv .hbar .b-grid { stroke: #D8DDE0; stroke-width: 1; }
.inv .hbar .b-zero { stroke: #595959; stroke-width: 1.5; }
.inv .hbar .b-sel { fill: none; stroke: var(--c-ink); stroke-width: 1.5; stroke-dasharray: 3 3; }
.inv .hbar .b-hit { fill: transparent; cursor: pointer; }
.inv .hbar .ax-u { fill: var(--c-ink2); }
.inv .hbar .ax-y.is-sel { font-weight: 700; fill: var(--c-ink); }
.inv .hbar .b-cx { fill: var(--c-ink); }
.inv .hold-sel { display: flex; align-items: center; gap: 8px; margin: 12px 0 4px; padding: 0; border-top: 1px solid #D8DDE0; border-bottom: 1px solid #D8DDE0; }
.inv .ys-b { flex: 0 0 44px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--k-blue); cursor: pointer; }
.inv .ys-b .ic { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.inv .ys-b:disabled { color: #B5BCC0; cursor: default; }
.inv .ys-b:focus-visible { outline: 2px solid var(--k-blue); outline-offset: -2px; }
.inv .ys-o { flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0 12px; min-width: 0; margin: 0; font: 400 13px/20px var(--f-ja); color: var(--c-ink); text-align: center; }
.inv .ys-y { font: 700 13px/20px var(--f-ja); }
.inv .ys-v { font: 700 16px/22px var(--f-num); font-variant-numeric: tabular-nums; }
.inv .ys-v.is-neg { color: var(--k-red); }
.inv .ys-t { font: 400 12px/20px var(--f-ja); color: var(--c-ink2); }
.inv .ys-t:empty { display: none; }
.inv .hold-cx::before { content: "\25B2\00a0"; }
/* 年ごとの表：最低の年と大型修繕の年に印 */
.inv .itbl tr.y-min th::after { content: "最低"; display: inline-block; margin-left: 6px; padding: 0 4px; border: 1px solid var(--c-ink); font: 700 12px/16px var(--f-ja); color: var(--c-ink); }
.inv .itbl td.yt-cf.is-neg { color: var(--k-red); }
.inv .itbl tr.y-sel { background: #E9EEF1; }
/* ═══ m1：l2「前提」を合わせる（10/29）：答えの確かさと、確かめる入力をつなぐ ═══ */
/* 入力の札：状態（札）と、変える操作（「変更」＋開閉の印）を分ける */
.inv .st-b { gap: 6px; padding: 0 0 0 8px; color: var(--c-ink); }
.inv .st-b .st-t, .inv .st-b[data-st] .st-t, .inv .st-b:hover .st-t { height: auto; padding: 0; border: 0; background: none; color: inherit; font: inherit; }
.inv .st-tag { display: inline-flex; align-items: center; gap: 3px; height: 22px; padding: 0 7px; border: 1px solid transparent; background: var(--k-warm); color: var(--k-ochre); font: 700 12px/1 var(--f-ja); white-space: nowrap; }
.inv .st-tag .st-t { padding: 0; border: 0; background: none; color: inherit; font: inherit; height: auto; }
.inv .st-ck { display: none; width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 2; }
.inv [data-st="confirmed"] .st-tag, .inv .st-tag[data-st="confirmed"] { background: #fff; border-color: transparent; color: var(--c-ink); padding-left: 0; }
.inv [data-st="confirmed"] .st-ck { display: block; }
.inv [data-st="unknown"] .st-tag, .inv .st-tag[data-st="unknown"] { background: #fff; border: 1px solid #8A8A8A; color: #595959; }
.inv .st-c { display: inline-flex; align-items: center; padding-left: 8px; border-left: 1px solid var(--c-line); font: 500 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .st-b:hover .st-c { text-decoration: underline; text-underline-offset: 3px; }
.inv .st-b:focus-visible .st-tag { outline: none; }
.inv .st-b:focus-visible { outline: 2px solid var(--c-act); outline-offset: -8px; }
/* 1年目の黄色い面：件数だけ。意味と項目名は ⓘ */
.inv .pst-w { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; padding: 6px 0 6px 12px; }
.inv .pst-w.is-pv { background: var(--k-warm); }
.inv .pst-w .pst { flex: 1; margin: 0; padding: 4px 0; background: none; min-height: 0; }
.inv .pst-w .pst-1 { line-height: 22px; }
.inv .pst-w .pst-2 { color: var(--k-ochre); }
.inv .pst-w > .tip { flex: none; margin: 1px 14px 0 0; }
.inv .tally-b { gap: 4px; }
.inv .tally-b .ic { width: 14px; height: 14px; }
.inv .tally-b[aria-expanded="true"] .ic, .inv .pv-b[aria-expanded="true"] .ic { transform: rotate(180deg); }
/* 保有中・売却時の「暫定」：押すと、その結果に関わる項目がその場で下に開く */
.inv .pv-w { display: inline-flex; align-items: center; }
.inv .pv-w[hidden] { display: none; }
.inv .pv-b { display: inline-flex; align-items: center; gap: 6px; height: 44px; margin: -11px 0; padding: 0 2px; border: 0; background: none; cursor: pointer; color: var(--k-ochre); }
.inv .pv-t { display: inline-flex; align-items: center; height: 22px; padding: 0 6px; border: 1px solid var(--k-ochre); background: #fff; font: 700 12px/1 var(--f-ja); }
.inv .pv-n { font: 700 13px/20px var(--f-ja); text-decoration: underline; text-underline-offset: 3px; }
.inv .pv-b .ic { width: 14px; height: 14px; }
.inv .pv-b:hover .pv-n { color: var(--c-ink); }
.inv .pv-b:focus-visible { outline: 2px solid var(--c-act); outline-offset: 0; }
.inv .pv-l { margin: 10px 0 4px; border-top: 1px solid var(--k-ochre); }
.inv .pv-l--all { margin-top: 6px; }
.inv .pv-ul { margin: 0; padding: 0; list-style: none; }
.inv .pv-ul li { border-bottom: 1px solid var(--c-line); }
.inv .pv-go { display: grid; grid-template-columns: 7.5em auto minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; width: 100%; min-height: 44px; padding: 6px 4px; border: 0; background: none; text-align: left; cursor: pointer; font: 400 13px/20px var(--f-ja); color: var(--c-ink); }
.inv .pv-l--all .pv-go { grid-template-columns: 7.5em auto minmax(0, 1fr) auto; grid-template-areas: "n s v a" "w w w w"; }
.inv .pv-l--all .pv-nm { grid-area: n; } .inv .pv-l--all .st-tag { grid-area: s; } .inv .pv-l--all .pv-v { grid-area: v; } .inv .pv-l--all .pv-a { grid-area: a; }
.inv .pv-w2 { grid-area: w; font-size: 12px; line-height: 18px; color: var(--c-ink2); }
.inv .pv-w2::before { content: "関わる結果："; }
.inv .pv-nm { font-weight: 700; }
.inv .pv-go .st-tag { justify-self: start; }
.inv .pv-v { font-family: var(--f-num); color: var(--c-ink2); }
.inv .pv-a { display: inline-flex; align-items: center; gap: 2px; font-weight: 500; color: var(--c-act); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.inv .pv-a .ic { width: 14px; height: 14px; }
.inv .pv-go:hover { background: var(--c-hover, #F4F6F7); }
.inv .pv-go:focus-visible { outline: 2px solid var(--c-act); outline-offset: -2px; }
/* 移った先の欄に、短い枠（数字は動かさない） */
.inv .is-go { outline: 2px solid var(--c-act); outline-offset: 6px; }
.inv .acc-go { margin: 4px 0 0; }
.inv .acc-go[hidden], .inv .kpi > div[hidden] { display: none; }
.inv .pv-b2 { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 0; border: 0; background: none; cursor: pointer; font: 700 13px/20px var(--f-ja); color: var(--k-ochre); text-decoration: underline; text-underline-offset: 3px; }
.inv .pv-b2 .ic { width: 14px; height: 14px; }
.inv .pv-b2[aria-expanded="true"] .ic { transform: rotate(180deg); }
.inv .acc-body .pv-l { margin-top: 0; margin-bottom: 12px; }
.inv .pst-w .pst-2 { margin-top: 2px; font-size: 13px; line-height: 20px; color: var(--c-ink); }
.inv .r-hd .pv-w { margin-left: 10px; vertical-align: middle; }
.inv .r-hd .ml { display: flex; align-items: center; flex-wrap: wrap; }
@media (max-width: 767px) {
  .inv .pv-go, .inv .pv-l--all .pv-go { grid-template-columns: auto auto minmax(0, 1fr); grid-template-areas: "n s a" "v v v"; }
  .inv .pv-l--all .pv-go { grid-template-areas: "n s a" "v v v" "w w w"; }
  .inv .pv-go .pv-nm { grid-area: n; } .inv .pv-go .st-tag { grid-area: s; } .inv .pv-go .pv-v { grid-area: v; } .inv .pv-go .pv-a { grid-area: a; justify-self: end; }
}
@media (min-width: 768px) { .inv .pv-a .ic { transform: rotate(-90deg); } }
.inv .hbar .b-lab { paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.inv .acc-cond .cd-p { display: block; margin-top: 6px; }
/* m1：暫定の一覧を開いている間は、すぐ下の「未確認のため…」を出さない（一覧の行と同じことを2回書かない） */
.inv #hPvL:not([hidden]) + .un-note, .inv #sPvL:not([hidden]) + .un-note { display: none; }
/* m1 GPT1周目のあと：年を選ぶ1行の頭に「選んだ年」・修繕の内訳はスマホで2行 */
.inv .ys-k { font: 400 12px/20px var(--f-ja); color: var(--c-ink2); }
@media (max-width: 767px) { .inv .hold-cx .cx-d { display: block; padding-left: 1.2em; } .inv .hold-go { flex-wrap: wrap; } }
/* m1 GPT2周目のあと：▲はグラフに修繕がある時だけ・年ごとの表を開いたら閉じた行の要約は出さない */
.inv .hold-cx::before { content: none; }
.inv .hold-cx.has-cx::before { content: "\25B2\00a0"; }
.inv .acc-b[aria-expanded="true"] .acc-d--sum { display: none; }
/* m1 GPT3周目のあと：開いた表の灰色の面は「入力した売却…」の1行だけ（「参考：売却せず20年間」は行の題の横・下に出ている） */
.inv .acc-ref b { display: none; }
.inv .acc-ref span { color: var(--c-ink); }

/* 10/30 将来・修繕の要約：大型修繕は別の行 */
.inv .gacc-b .acc-d2 { display: block; margin-top: 2px; font-weight: 700; color: var(--c-ink); }
.inv #rentPinN { white-space: nowrap; }
/* 10/30 暫定の下：「入力欄で変更」（押すと最初の項目の欄へ・閉じた詳しい条件は開く） */
.inv .pst-g { margin: 0; }
.inv .pst-go { display: inline-flex; align-items: center; height: 44px; margin: -10px 0 -12px; padding: 0 2px; border: 0; background: none; font: 700 13px/20px var(--f-ja); color: var(--k-ochre); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.inv .pst-go:hover { color: var(--c-ink); }
