/* 賃貸経営 資産管理 — テーマの影響を受けにくいよう .ram の中だけに適用 */
.ram {
	--ram-ink: #1B1E22;
	--ram-ink-2: #3F454C;
	--ram-muted: #5E646C;
	--ram-line: #E2E0DA;
	--ram-line-2: #EEECE6;
	--ram-bg: #F6F5F1;
	--ram-card: #FFFFFF;
	--ram-accent: #0E6B5C;
	--ram-accent-dark: #09493F;
	--ram-accent-bg: #E3F1EE;
	--ram-bad: #B42318;
	--ram-bad-bg: #FDECEA;
	--ram-warn: #7A4505;
	--ram-warn-bg: #FDF3E2;
	--ram-blue: #2F5D8A;
	--ram-blue-bg: #EEF0F8;
	color: var(--ram-ink);
	font-size: 15px;
	line-height: 1.6;
	font-variant-numeric: tabular-nums;
	max-width: 1200px;
	margin: 0 auto;
	box-sizing: border-box;
}
.ram *, .ram *::before, .ram *::after { box-sizing: border-box; }
.ram a { color: var(--ram-accent); }
.ram a:hover { color: var(--ram-accent-dark); }
.ram h2, .ram h3, .ram h4 { color: var(--ram-ink); letter-spacing: 0; }
/* テーマ（Lightning など）の見出しデザイン（色帯・矢印・下線）を打ち消す */
.ram h1, .ram h2, .ram h3, .ram h4, .ram h5, .ram h6 {
  background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
  outline: 0 !important; padding: 0 !important; position: static !important; color: var(--ram-ink) !important;
  text-align: left; text-shadow: none !important;
}
.ram h1::before, .ram h1::after, .ram h2::before, .ram h2::after, .ram h3::before, .ram h3::after,
.ram h4::before, .ram h4::after, .ram h5::before, .ram h5::after, .ram h6::before, .ram h6::after {
  content: none !important; display: none !important;
}
.ram .ram-h1 { font-size: 24px; font-weight: 700; margin: 0; line-height: 1.35; }
.ram .ram-h2 { font-size: 18px; font-weight: 700; margin: 0 0 12px; }
.ram .ram-h3 { font-size: 16px; font-weight: 700; margin: 0 0 12px; }
.ram .ram-muted { color: var(--ram-muted); }
.ram .ram-small { font-size: 13px; }
.ram .ram-tiny { font-size: 11px; color: var(--ram-muted); font-weight: 400; }
.ram .ram-strong { font-weight: 700; }
.ram .is-good { color: var(--ram-accent); }
.ram .is-bad { color: var(--ram-bad); }
.ram .r { text-align: right; }
.ram .c { text-align: center; }
.ram .ram-nowrap { white-space: nowrap; }
.ram p { margin: 0 0 10px; }
.ram .ram-head p { margin: 4px 0 0; }

/* ナビ */
.ram .ram-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 8px; margin: 0 0 20px; background: var(--ram-card); border: 1px solid var(--ram-line); border-radius: 12px; font-size: 14px; }
.ram .ram-nav a { padding: 9px 13px; border-radius: 8px; color: var(--ram-ink-2); text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; }
.ram .ram-nav a.is-active { background: var(--ram-accent-bg); color: var(--ram-accent-dark); font-weight: 600; }
.ram .ram-nav a:hover { background: var(--ram-bg); }
.ram .ram-nav-sep { color: var(--ram-muted); }
.ram .ram-nav-prop { font-weight: 700; padding: 0 6px; }
.ram .ram-nav-end { margin-left: auto; }
.ram .ram-adminbar { background: var(--ram-blue-bg); color: #1F3B5C; border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; font-size: 14px; }
.ram .ram-adminbar a { margin-left: 8px; }

/* レイアウト */
.ram .ram-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; justify-content: space-between; margin: 0 0 18px; }
.ram .ram-row-between { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.ram .ram-row-between .ram-h3 { margin: 0; }
.ram .ram-cols { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.ram .ram-col-main { flex: 999 1 560px; min-width: 0; }
.ram .ram-col-side { flex: 1 1 320px; min-width: 0; }
.ram .ram-card { background: var(--ram-card); border: 1px solid var(--ram-line); border-radius: 12px; padding: 20px; margin: 0 0 20px; }
.ram .ram-cols > .ram-card { margin-bottom: 20px; }
.ram .ram-empty { text-align: center; padding: 36px 20px; }
.ram .ram-empty .ram-actions { justify-content: center; }
.ram .ram-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ram .ram-scroll-y { max-height: 520px; overflow-y: auto; }
.ram .ram-hr { border: 0; border-top: 1px solid var(--ram-line-2); margin: 14px 0; }

/* KPI */
.ram .ram-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0 0 20px; }
.ram .ram-kpi { background: var(--ram-card); border: 1px solid var(--ram-line); border-radius: 12px; padding: 16px; }
.ram .ram-kpi-label { font-size: 13px; color: var(--ram-muted); }
.ram .ram-kpi-value { font-size: 22px; font-weight: 700; margin-top: 4px; line-height: 1.3; word-break: keep-all; }
.ram .ram-kpi-sub { font-size: 12px; color: var(--ram-muted); margin-top: 4px; }

/* 物件カード */
.ram .ram-prop-name { font-size: 18px; font-weight: 700; }
.ram .ram-mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 12px; padding-top: 14px; margin-top: 14px; border-top: 1px solid var(--ram-line-2); }
.ram .ram-mini-label { font-size: 12px; color: var(--ram-muted); }
.ram .ram-mini-value { font-size: 16px; font-weight: 700; }

/* ボタン */
.ram .ram-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 18px; border-radius: 8px; border: 1px solid var(--ram-accent); background: var(--ram-accent); color: #fff; font: inherit; font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.2; }
.ram .ram-btn:hover { background: var(--ram-accent-dark); border-color: var(--ram-accent-dark); color: #fff; }
.ram .ram-btn-outline { background: #fff; color: var(--ram-accent); }
.ram .ram-btn-outline:hover { background: var(--ram-accent-bg); color: var(--ram-accent-dark); }
.ram .ram-btn-ghost { background: #fff; color: var(--ram-ink); border-color: #D5D2CA; font-weight: 500; }
.ram .ram-btn-ghost:hover { background: var(--ram-bg); color: var(--ram-ink); border-color: #C9C6BD; }
.ram .ram-btn-danger { background: var(--ram-bad); border-color: var(--ram-bad); }
.ram .ram-btn-danger:hover { background: #8A1F12; border-color: #8A1F12; }
.ram .ram-btn-danger-ghost { background: #fff; color: var(--ram-bad); border-color: #E8B4AE; font-weight: 500; }
.ram .ram-btn-danger-ghost:hover { background: var(--ram-bad-bg); color: var(--ram-bad); }
.ram .ram-link-btn { background: none; border: 0; padding: 4px 2px; color: var(--ram-accent); text-decoration: underline; cursor: pointer; font: inherit; font-size: 14px; }
.ram .ram-link-btn.is-bad { color: var(--ram-bad); }
.ram .ram-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; align-items: center; }
.ram .ram-actions form { margin: 0; }
.ram .ram-actions-end { justify-content: flex-end; margin: 0 0 20px; }
.ram .ram-inline { display: inline; margin: 0; }
.ram .ram-danger-zone { margin-top: -6px; }

/* フォーム */
.ram input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]), .ram select, .ram textarea { width: 100%; font: inherit; font-size: 15px; padding: 9px 11px; min-height: 42px; border: 1px solid #D5D2CA; border-radius: 8px; background: #fff; color: var(--ram-ink); box-shadow: none; margin: 0; }
.ram input:disabled, .ram select:disabled, .ram textarea:disabled { background: var(--ram-bg); color: var(--ram-ink-2); border-color: var(--ram-line); }
.ram input:focus, .ram select:focus, .ram textarea:focus { outline: 2px solid var(--ram-accent); outline-offset: 1px; border-color: var(--ram-accent); }
.ram input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--ram-accent); margin: 0; }
.ram input[type=file] { font-size: 14px; padding: 6px 0; }
.ram .ram-num { text-align: right; }
.ram .ram-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ram .ram-field label { font-size: 13px; color: var(--ram-ink-2); font-weight: 500; }
.ram .ram-help { font-size: 12px; color: var(--ram-muted); }
.ram .ram-field-btn { justify-content: flex-end; }
.ram .ram-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
.ram .ram-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; align-items: end; }
.ram form + .ram-field, .ram .ram-card > form > .ram-field { margin-top: 14px; }
.ram .ram-details { margin-top: 14px; }
.ram .ram-details summary { cursor: pointer; font-size: 14px; color: var(--ram-accent); padding: 6px 0; }
.ram .ram-details > .ram-grid-2 { margin-top: 10px; }
.ram .ram-period, .ram .ram-ym-jump { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.ram .ram-period label { font-size: 12px; color: var(--ram-muted); }
.ram .ram-period select { min-width: 260px; }
.ram .ram-ym-jump input { min-width: 150px; }
.ram .ram-inline-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-top: 12px; }
.ram .ram-inline-form label { width: 100%; font-size: 13px; color: var(--ram-ink-2); }
.ram .ram-inline-form input { max-width: 340px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* テーブル */
.ram .ram-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; border: 0; }
.ram .ram-table th, .ram .ram-table td { padding: 9px 8px; border: 0; border-top: 1px solid var(--ram-line-2); text-align: left; vertical-align: middle; background: none; }
.ram .ram-table thead th { border-top: 0; color: var(--ram-muted); font-size: 12px; font-weight: 500; padding-top: 0; white-space: nowrap; }
.ram .ram-table tbody th { font-weight: 500; white-space: nowrap; }
.ram .ram-table .r { text-align: right; }
.ram .ram-table .c { text-align: center; }
.ram .ram-tr-total th, .ram .ram-tr-total td { border-top: 1.5px solid #8A9098; font-weight: 700; }
.ram .ram-tr-cf th, .ram .ram-tr-cf td { font-weight: 700; color: var(--ram-accent); background: #F4FAF8; }
.ram .ram-tr-income th, .ram .ram-tr-income td { font-weight: 700; }
.ram .ram-tr-now th, .ram .ram-tr-now td { background: var(--ram-accent-bg); }
.ram .ram-table-annual td, .ram .ram-table-annual th { white-space: nowrap; text-align: right; font-size: 12px; padding: 6px 4px; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.ram .ram-table-annual tbody th { white-space: normal; min-width: 5.5em; max-width: 8em; line-height: 1.35; font-size: 12px; }
.ram .ram-table-annual tbody th, .ram .ram-table-annual thead th:first-child { z-index: 1; box-shadow: 1px 0 0 var(--ram-line, #e5e2da); }
.ram .ram-table-annual tbody th, .ram .ram-table-annual thead th:first-child { text-align: left; position: sticky; left: 0; background: #fff; }
.ram .ram-table-annual .ram-tr-cf th { background: #F4FAF8; }
.ram .ram-entry td { padding: 6px 6px; }
.ram .ram-entry input:not([type=checkbox]) { min-height: 38px; padding: 7px 9px; min-width: 90px; }
.ram .ram-unit-row.is-vacant th, .ram .ram-unit-row.is-vacant td { background: #FFFAF1; }
.ram .ram-hbar { display: block; height: 8px; border-radius: 4px; background: var(--ram-blue); min-width: 2px; }

/* バッジ・チップ */
.ram .ram-badge { display: inline-block; font-size: 12px; font-weight: 500; padding: 3px 10px; border-radius: 999px; white-space: nowrap; line-height: 1.5; }
.ram .ram-badge-green { background: var(--ram-accent-bg); color: var(--ram-accent-dark); }
.ram .ram-badge-amber { background: var(--ram-warn-bg); color: var(--ram-warn); }
.ram .ram-badge-red { background: var(--ram-bad-bg); color: #8A1F12; }
.ram .ram-badge-blue { background: var(--ram-blue-bg); color: #2B3F6B; }
.ram .ram-badge-gray { background: #F1F0EB; color: var(--ram-ink-2); }
.ram .ram-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.ram .ram-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px; border-radius: 8px; background: #F1F0EB; color: var(--ram-ink-2); font-size: 14px; text-decoration: none; }
.ram a.ram-chip { color: var(--ram-ink-2); }
.ram .ram-chip-accent, .ram a.ram-chip-accent { background: var(--ram-accent-bg); color: var(--ram-accent-dark); font-weight: 600; }

/* お知らせ・メッセージ */
.ram .ram-flash { border-radius: 10px; padding: 12px 16px; margin: 0 0 16px; font-size: 14px; }
.ram .ram-flash-ok { background: var(--ram-accent-bg); color: var(--ram-accent-dark); }
.ram .ram-flash-info { background: var(--ram-warn-bg); color: #5C3404; }
.ram .ram-flash-error { background: var(--ram-bad-bg); color: #8A1F12; }
.ram .ram-list { padding: 0; overflow: hidden; }
.ram .ram-alert { display: flex; gap: 12px; padding: 14px 18px; border-top: 1px solid var(--ram-line-2); }
.ram .ram-alert:first-child { border-top: 0; }
.ram .ram-alert-title { font-size: 14px; font-weight: 600; }
.ram .ram-alert-text { font-size: 13px; color: var(--ram-muted); margin-top: 2px; }
.ram .ram-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; background: #9AA1A9; }
.ram .ram-dot-high { background: var(--ram-bad); }
.ram .ram-dot-mid { background: #C27A0E; }
.ram .ram-steps { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.ram .ram-steps li { padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid #D5D2CA; color: var(--ram-ink-2); margin: 0; }
.ram .ram-steps li.is-done { background: var(--ram-accent-bg); border-color: var(--ram-accent-bg); color: var(--ram-accent-dark); }
.ram .ram-steps li.is-current { background: var(--ram-accent); border-color: var(--ram-accent); color: #fff; font-weight: 600; }
.ram .ram-checks { display: grid; gap: 8px; }
.ram .ram-check { padding: 10px 14px; border-radius: 8px; font-size: 14px; }
.ram .ram-check.is-ok { background: #EEF7F4; }
.ram .ram-check.is-ok::before { content: "✓ "; color: var(--ram-accent); font-weight: 700; }
.ram .ram-check.is-warn { background: var(--ram-warn-bg); color: #5C3404; }
.ram .ram-check.is-warn::before { content: "! "; font-weight: 700; }
.ram .ram-check.is-info { background: var(--ram-blue-bg); color: #1F3B5C; }
.ram .ram-doclist { margin: 0 0 12px; padding-left: 18px; }
.ram .ram-danger { border-color: #F0CFCB; }

/* 定義リスト */
.ram .ram-dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; font-size: 14px; }
.ram .ram-dl dt { color: var(--ram-muted); margin: 0; font-weight: 400; }
.ram .ram-dl dd { margin: 0; text-align: right; }

/* 構成バー */
.ram .ram-split { display: flex; height: 34px; border-radius: 8px; overflow: hidden; background: var(--ram-line-2); }
.ram .ram-split-cost { background: #9AA1A9; }
.ram .ram-split-debt { background: var(--ram-blue); }
.ram .ram-split-cf { background: var(--ram-accent); }
.ram .ram-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; margin-top: 10px; color: var(--ram-ink-2); }
.ram .ram-row-between .ram-legend { margin-top: 0; }
.ram .ram-legend span { display: inline-flex; align-items: center; gap: 6px; }
.ram .ram-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }

/* 月別CFチャート */
.ram .ram-chart { min-width: 680px; }
.ram .ram-chart-row { display: grid; grid-template-columns: 56px repeat(12, minmax(0, 1fr)); gap: 6px; }
.ram .ram-chart-axis { font-size: 12px; color: var(--ram-muted); }
.ram .ram-chart-cell { display: flex; flex-direction: column; align-items: center; font-size: 12px; text-align: center; }
.ram .ram-chart-pos { height: 122px; align-items: end; }
.ram .ram-chart-pos .ram-chart-cell { justify-content: flex-end; gap: 3px; height: 122px; }
.ram .ram-chart-neg { min-height: 40px; align-items: start; }
.ram .ram-chart-neg .ram-chart-cell { gap: 3px; }
.ram .ram-chart-zero { height: 1px; background: #8A9098; margin-left: 62px; }
.ram .ram-chart-num { font-size: 11px; color: var(--ram-ink-2); }
.ram .ram-bar { display: block; width: 70%; max-width: 40px; }
.ram .ram-bar-pos { background: var(--ram-accent); border-radius: 4px 4px 0 0; }
.ram .ram-bar-neg { background: #C2412D; border-radius: 0 0 4px 4px; }
.ram .ram-chart-labels { margin-top: 2px; color: var(--ram-ink-2); }
.ram .ram-chart-dscr { margin-top: 8px; align-items: center; }
.ram .ram-dscr { display: block; width: 100%; padding: 5px 0; border-radius: 6px; border: 1.5px solid transparent; font-size: 13px; }
.ram .ram-dscr.is-low { border-color: var(--ram-bad); color: var(--ram-bad); font-weight: 700; }

/* 入居状況 */
.ram .ram-occ td { padding: 4px 3px; }
.ram .ram-occ-cell { display: flex; align-items: center; justify-content: center; height: 24px; min-width: 30px; border-radius: 4px; font-size: 11px; font-weight: 700; }
.ram .ram-occ-in { background: #CDE7E1; }
.ram .ram-occ-vac { background: #F4C27A; color: #5C3404; }
.ram .ram-occ-na { background: repeating-linear-gradient(45deg, #F1F0EB, #F1F0EB 4px, #fff 4px, #fff 8px); }

@media (max-width: 640px) {
	.ram { font-size: 14px; }
	.ram .ram-card { padding: 16px; }
	.ram .ram-h1 { font-size: 20px; }
	.ram .ram-kpi-value { font-size: 19px; }
	.ram .ram-nav-end { margin-left: 0; }
	.ram .ram-period select { min-width: 0; }
}

/* 残債の推移 */
.ram .ram-bal-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 4px 0 14px; }
.ram .ram-bal-sum div { background: var(--ram-bg); border-radius: 8px; padding: 10px 12px; }
.ram .ram-bal-sum span { display: block; font-size: 12px; color: var(--ram-muted); }
.ram .ram-bal-sum strong { font-size: 16px; }
.ram .ram-bal-svg { display: block; width: 100%; min-width: 620px; height: auto; }
.ram .ram-grid-line { stroke: var(--ram-line-2); stroke-width: 1; }
.ram .ram-axis-line { stroke: #8A9098; stroke-width: 1; }
.ram .ram-axis-t { font-size: 13px; fill: var(--ram-muted); }
.ram .ram-axis-t.is-now { fill: var(--ram-ink); font-weight: 700; }
.ram .ram-bal-bar { fill: var(--ram-blue); }
.ram .ram-bal-bar.is-pred { fill: #A9BED3; }
.ram .ram-bal-bar.is-now { stroke: var(--ram-ink); stroke-width: 2; }
.ram .ram-sek-line { fill: none; stroke: var(--ram-accent); stroke-width: 2.5; stroke-linejoin: round; }
.ram .ram-sek-dot { fill: #fff; stroke: var(--ram-accent); stroke-width: 2; }
.ram .ram-sw-bal { background: var(--ram-blue); }
.ram .ram-sw-pred { background: #A9BED3; }
.ram .ram-sw-sek { background: var(--ram-accent); height: 3px; border-radius: 2px; }

/* 投資の成績表 */
.ram .ram-score-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.ram .ram-score-box { background: var(--ram-bg); border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 2px; }
.ram .ram-score-box span { font-size: 13px; color: var(--ram-ink-2); font-weight: 600; }
.ram .ram-score-box strong { font-size: 20px; line-height: 1.35; }
.ram .ram-score-box em { font-style: normal; font-size: 12px; color: var(--ram-muted); }
.ram .ram-score-box.is-minus strong { color: var(--ram-ink); }
.ram .ram-score-result { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-top: 10px; }
.ram .ram-score-result div { border: 1.5px solid var(--ram-accent); border-radius: 10px; padding: 12px 14px; }
.ram .ram-score-result span { display: block; font-size: 13px; color: var(--ram-ink-2); }
.ram .ram-score-result strong { font-size: 24px; line-height: 1.3; }
.ram .ram-mt { margin-top: 22px !important; }
.ram .ram-notes { margin: 12px 0 0; padding-left: 18px; font-size: 12px; color: var(--ram-muted); }
.ram .ram-notes li { margin: 2px 0; }
.ram .ram-notes li.is-warn { color: #7A4505; }
.ram .ram-initial { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; padding: 12px 14px; background: var(--ram-accent-bg); border-radius: 10px; }
.ram .ram-initial span { font-size: 13px; color: var(--ram-accent-dark); }
.ram .ram-initial strong { font-size: 20px; color: var(--ram-accent-dark); }
@media (max-width: 640px) { .ram .ram-score-result { grid-template-columns: 1fr 1fr; } .ram .ram-score-result div:first-child { grid-column: 1 / -1; } }

/* AI読み取り */
.ram .ram-ai-card { border-color: #BFD9D2; background: #F7FBFA; }
.ram .ram-ai-inner { border: 1px solid #BFD9D2; border-radius: 10px; padding: 16px; margin-bottom: 8px; }
.ram .ram-ai-result { border-color: #E9CF95; background: #FFFDF6; }
.ram .ram-ai-wait { color: var(--ram-accent-dark); font-weight: 600; margin-top: 10px; }
.ram .ram-ai-wait::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; border: 2px solid var(--ram-accent); border-right-color: transparent; border-radius: 50%; vertical-align: -1px; animation: ram-spin .8s linear infinite; }
@keyframes ram-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ram .ram-ai-wait::before { animation: none; } }
.ram .is-ai input:not([type=checkbox]):not([type=hidden]), .ram .is-ai select { background: #FFF6DC !important; border-color: #E9CF95 !important; }
.ram tr.is-unassigned th, .ram tr.is-unassigned td { background: #FDECEA; }
.ram .ram-sub { margin-top: 6px !important; font-size: 14px !important; color: var(--ram-ink-2); }

/* 入力状況 */
.ram .ram-ist-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ram .ram-ist-head .ram-h3 { margin: 0; }
.ram .ram-ist summary { cursor: pointer; list-style: none; }
.ram .ram-ist summary::-webkit-details-marker { display: none; }
.ram .ram-ist summary::before { content: "▸"; color: var(--ram-muted); margin-right: 2px; }
.ram .ram-ist[open] summary::before { content: "▾"; }
.ram .ram-ist-table { border-collapse: separate; border-spacing: 5px; margin-top: 10px; font-size: 12px; }
.ram .ram-ist-table th { font-weight: 500; color: var(--ram-muted); padding: 2px 6px; white-space: nowrap; text-align: center; }
.ram .ram-ist-table th[scope=row] { text-align: right; }
.ram .ram-ist-table td { width: 56px; height: 30px; padding: 0; text-align: center; border-radius: 6px; box-sizing: border-box; }
.ram .ram-ist-table td a { display: flex; align-items: center; justify-content: center; height: 100%; text-decoration: none; color: inherit; }
.ram .ram-ist-table td.is-done, .ram .ram-ist-sw.is-done { background: var(--ram-accent); color: #fff; }
.ram .ram-ist-table td.is-draft, .ram .ram-ist-sw.is-draft { background: var(--ram-warn-bg); color: var(--ram-warn); border: 1px solid #E8C48A; }
.ram .ram-ist-table td.is-none, .ram .ram-ist-sw.is-none { background: #fff; color: #9AA0A6; border: 1px dashed #C9CDD2; }
.ram .ram-ist-table td.is-future { background: transparent; }
.ram .ram-ist-table td.is-sel { outline: 2px solid var(--ram-blue); outline-offset: 2px; }
.ram .ram-ist-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: 3px; box-sizing: border-box; }
.ram .ram-ist-sw.is-selbox { border: 2px solid var(--ram-blue); }
.ram .ram-ist-legend { margin-top: 6px; }
.ram .ram-yr { display: block; font-size: 11px; color: var(--ram-muted); font-weight: 400; line-height: 1.3; }
.ram .ram-h-period { font-size: 13px; font-weight: 400; color: var(--ram-muted); margin-left: 6px; }

.ram .ram-check-line { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; margin: 12px 0 4px; }
.ram details.ram-ai-card > summary { cursor: pointer; margin: 0; }
.ram details.ram-ai-card[open] > summary { margin-bottom: 8px; }

/* 利用前の同意 */
.ram .ram-consent { max-width: 760px; margin: 0 auto; }
.ram .ram-consent-text { max-height: 420px; overflow-y: auto; padding: 14px 16px; margin: 12px 0; border: 1px solid var(--ram-line); border-radius: 8px; background: var(--ram-bg); font-size: 14px; line-height: 1.8; }
.ram .ram-consent-text p { margin: 0 0 12px; }

/* ドラッグ＆ドロップ */
.ram .ram-dropzone { position: relative; transition: background .15s, box-shadow .15s; }
.ram .ram-dropzone.is-drag { background: var(--ram-accent-bg); box-shadow: inset 0 0 0 2px var(--ram-accent); }
.ram .ram-dropzone.is-drag::after { content: "ここにドロップ"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--ram-accent-dark); background: rgba(227, 241, 238, .75); border-radius: inherit; pointer-events: none; font-size: 16px; }
.ram .ram-drop-hint { display: block; font-size: 12px; color: var(--ram-muted); margin-top: 4px; }
.ram .ram-drop-hint.is-set { color: var(--ram-accent-dark); font-weight: 600; }
.ram .ram-drop-hint.is-bad { color: var(--ram-bad); }

/* CFと元金返済の積み上がり */
.ram .ram-cfs-cf { fill: var(--ram-accent); }
.ram .ram-cfs-cf.is-neg { fill: #C2412D; }
.ram .ram-cfs-p { fill: #6F94BF; }
.ram .ram-cfs-line { fill: none; stroke: #E08A1E; stroke-width: 2; }
.ram .ram-cfs-dot { fill: #fff; stroke: #E08A1E; stroke-width: 2; }
.ram .ram-cfs-dot.is-neg { stroke: #C2412D; }
.ram .ram-sw-cum-cf { background: var(--ram-accent); }
.ram .ram-sw-cum-p { background: #6F94BF; }
.ram .ram-sw-ycf { background: #E08A1E; height: 3px; border-radius: 2px; }

.ram .ram-cfs-cf.is-est { fill: url(#ram-hatch); }
.ram g.is-fut rect { opacity: .38; }
.ram .ram-cfs-line.is-fut { stroke-dasharray: 5 4; }
.ram .ram-cfs-dot.is-fut { stroke-opacity: .6; }
.ram .ram-sw-est { background: repeating-linear-gradient(45deg, #0E6B5C 0 3px, #7DB3A8 3px 5px); }
.ram .ram-sw-fut { background: #6F94BF; opacity: .4; }
.ram .ram-tr-fut td, .ram .ram-tr-fut th { color: var(--ram-muted); }
.ram .ram-legend-row { margin: 4px 0 10px; }
.ram .ram-seg { display: inline-flex; border: 1px solid var(--ram-line); border-radius: 8px; overflow: hidden; font-size: 13px; }
.ram .ram-seg a { padding: 6px 12px; color: var(--ram-ink-2); text-decoration: none; border-left: 1px solid var(--ram-line); }
.ram .ram-seg a:first-child { border-left: 0; }
.ram .ram-seg a.is-on { background: var(--ram-accent); color: #fff; }
.ram .ram-bal-sum em { display: block; font-style: normal; font-size: 11px; color: var(--ram-muted); margin-top: 2px; }

/* 物件の写真 */
.ram .ram-prop-card.has-photo { display: grid; grid-template-columns: 168px 1fr; gap: 16px; align-items: start; }
.ram .ram-prop-photo { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--ram-bg); }
.ram .ram-prop-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ram .ram-prop-body { min-width: 0; }
.ram .ram-head-title { display: flex; gap: 14px; align-items: center; }
.ram .ram-head-photo { width: 120px; height: 90px; object-fit: cover; border-radius: 10px; flex: none; }
.ram .ram-photo-row { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; }
.ram .ram-photo-prev { width: 220px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; flex: none; }
.ram .ram-photo-none { display: flex; align-items: center; justify-content: center; background: var(--ram-bg); color: var(--ram-muted); font-size: 13px; border: 1px dashed var(--ram-line); }
.ram .ram-photo-form { flex: 1; min-width: 240px; }
@media (max-width: 640px) {
	.ram .ram-prop-card.has-photo { grid-template-columns: 1fr; }
	.ram .ram-head-photo { width: 84px; height: 63px; }
	.ram .ram-photo-prev { width: 100%; }
}

.ram .ram-foot { margin: 28px 0 0; text-align: center; font-size: 13px; }
.ram .ram-foot a { color: var(--ram-muted); }
.ram .ram-terms-text { max-height: none; }

.ram .ram-in-unpaid { color: var(--ram-bad); }

.ram .ram-occ-cell.has-rent { font-weight: 500; font-size: 11px; min-width: 52px; padding: 0 3px; color: var(--ram-ink-2); font-variant-numeric: tabular-nums; }
.ram .ram-up { color: #0E7A3E; font-weight: 700; }
.ram .ram-down { color: var(--ram-bad); font-weight: 700; }
.ram .ram-occ-cell .ram-up, .ram .ram-occ-cell .ram-down { font-size: 9px; margin-right: 2px; }
.ram .ram-legend .ram-up, .ram .ram-legend .ram-down { margin-left: 6px; margin-right: -2px; }

.ram .ram-kpi-bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 0 0 10px; }
.ram .ram-head .ram-seg { align-self: flex-end; }

.ram .ram-remit { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--ram-line); }
.ram .ram-remit input { max-width: 150px; min-height: 34px; padding: 5px 8px; }

.ram .ram-match { border-color: #E8C48A; background: var(--ram-warn-bg); }
.ram .ram-match-list { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 8px; }
.ram .ram-match-list li { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; background: #fff; border: 1px solid var(--ram-line); border-radius: 8px; padding: 10px 12px; }

.ram .ram-remit .ram-dt-wide { display: none; }
.ram .ram-remit .ram-dd-wide { grid-column: 1 / -1; }
.ram .ram-remit .ram-dd-wide input { max-width: none; width: 100%; font-size: 13px; }
#ram-r-remit.is-good::after { content: " ✓"; color: var(--ram-accent); font-weight: 700; }

.ram .ram-head-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; }
.ram .ram-btn-sm { min-height: 36px; padding: 6px 14px; font-size: 13px; }

/* 並び替え */
.ram .ram-mv-h { width: 70px; }
.ram td.ram-mv { white-space: nowrap; vertical-align: middle; }
.ram .ram-grip { cursor: grab; color: var(--ram-muted); padding: 0 4px; letter-spacing: -3px; user-select: none; font-weight: 700; }
.ram .ram-mv-btn { border: 0 !important; background: none !important; color: var(--ram-muted); font-size: 11px; padding: 2px 3px !important; cursor: pointer; min-height: 0 !important; box-shadow: none !important; }
.ram .ram-mv-btn:hover { color: var(--ram-accent); }
.ram tr.is-dragging { opacity: .45; background: var(--ram-soft, #eef5f2); }
.ram .ram-sortable tr:first-child .ram-mv-btn[data-mv="-1"], .ram .ram-sortable tr:last-child .ram-mv-btn[data-mv="1"] { visibility: hidden; }
.ram .ram-row-gap { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* 借り換えの出入り */
.ram .ram-cfs-refi { fill: #B4690E; font-size: 11px; font-weight: 700; }
.ram .ram-refi-notes { margin: 10px 0 0; padding: 10px 12px; background: #FBF5EA; border-radius: 8px; font-size: 13px; }
.ram .ram-refi-notes ul { margin: 4px 0 0; padding-left: 1.2em; }
.ram .ram-refi-notes .is-bad { color: var(--ram-bad, #B42318); font-weight: 700; }
.ram .ram-refi-notes .is-good { color: var(--ram-accent); font-weight: 700; }
.ram .ram-tr-refi th, .ram .ram-tr-refi td { background: #FBF5EA; }
.ram .ram-refi-line { margin: 10px 0 0; padding: 8px 12px; background: #FBF5EA; border-radius: 8px; font-size: 13px; }
.ram .ram-refi-line .is-bad { color: var(--ram-bad, #B42318); font-weight: 700; }
.ram .ram-refi-line .is-good { color: var(--ram-accent); font-weight: 700; }
.ram .ram-score-sub { display: block; margin-top: 2px; color: #B4690E !important; font-style: normal; }
.ram .ram-nc-sp { display: block; margin-top: 4px; font-weight: 400; }
.ram .ram-mcost-foot { margin-top: 8px; }
.ram .ram-xlog { margin-top: 12px; }
.ram .ram-xlog-item { border-top: 1px solid var(--ram-line, #e5e2da); padding-top: 8px; margin-top: 8px; }
.ram .ram-flash-warn { background: #FFF4E5; border: 1px solid #F0C27A; }
.ram #ram-prepay div + div { margin-top: 8px; }
.ram #ram-prepay .ram-btn { margin-left: 6px; }
.ram td.ram-full-diff { background: #FFF7E8; white-space: nowrap; }
.ram .ram-full-form { display: block; margin: 2px 0 0; }
.ram .ram-full-btn { border: 1px solid currentColor !important; background: #fff !important; border-radius: 999px !important; font-size: 11px !important; line-height: 1.4; padding: 1px 8px !important; min-height: 0 !important; cursor: pointer; box-shadow: none !important; }
.ram .ram-full-btn.is-up { color: #0E6B5C; }
.ram .ram-full-btn.is-down { color: #B42318; }
.ram .ram-full-btn:hover { background: #F4FAF8 !important; }
.ram .ram-auto-val { font-size: 18px; font-weight: 700; padding: 6px 2px; }
.ram .ram-grid-top { align-items: start; }
.ram .ram-grid-3 + .ram-sub { margin-top: 22px; }
.ram .ram-grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin-top: 14px; }
.ram .ram-grid-4 + .ram-sub, .ram .ram-grid-3 + .ram-sub { margin-top: 24px; }
