/* Codex修正：試算の実条件を使って他社の支払額を横並びに比較する共通UI */
.cdx-simulator .sim-comparison-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  margin: 0 0 28px;
  padding: 18px 0;
  border-top: 1px solid var(--sim-line);
  border-bottom: 1px solid var(--sim-line);
}
.cdx-simulator .sim-comparison-heading { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.cdx-simulator .sim-comparison-heading > strong { font-size: 16px; font-weight: 700; }
.cdx-simulator .sim-comparison-heading > span { color: var(--sim-muted); font-size: 12px; white-space: nowrap; }
/* Codex修正：比較の煽り見出しに代えて、ページ内の購入導線に関する開示を表示する。 */
:is(#entry, body) .cdx-simulator .sim-affiliate-notice { margin: 0; color: var(--sim-muted); font-size: 12px; font-weight: 400; line-height: 1.6; }
.cdx-simulator .sim-comparison-actions,
.cdx-simulator .sim-comparison-result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cdx-simulator .sim-comparison-result-actions { padding-top: 18px; border-top: 1px solid var(--sim-line); }
/* Codex追加：Cの入力画面では固定フッターの比較操作と重複させない */
.cdx-simulator .sim-c-dialog .sim-comparison-result-actions { display: none; }
.cdx-simulator :is(.sim-comparison-actions, .sim-comparison-result-actions) .sim-button { min-width: 0; max-width: 100%; min-height: 42px; padding: 10px 16px; font-size: 13px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
.cdx-simulator :is(.sim-comparison-actions, .sim-comparison-result-actions) .sim-button > svg { flex-shrink: 0; }
:is(#entry, body) .cdx-simulator .sim-comparison-status { flex: 1 0 100%; color: var(--sim-muted); font-size: 12px; line-height: 1.6; }
.cdx-simulator .sim-comparison-status:empty { display: none; }
.cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-dialog-header { gap: 12px; }
.cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-dialog-header .sim-icon-button { flex-shrink: 0; }

/* Codex修正：比較表の本文だけをスクロールし、見出しと期間を常に表示する。 */
body:has(.cdx-simulator .sim-comparison-dialog[open]) { overflow: hidden; }
.cdx-simulator .sim-comparison-dialog {
  position: fixed;
  inset: 0;
  width: min(1400px, calc(100vw - 24px));
  height: min(940px, 96dvh);
  max-width: none;
  max-height: 96dvh;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 22px;
  background: #fff;
  color: var(--sim-ink);
  box-shadow: 0 24px 96px rgb(17 41 49 / 20%);
  font: inherit;
  line-height: 1.6;
}
.cdx-simulator .sim-comparison-dialog:not([open]) { display: none; }
.cdx-simulator .sim-comparison-dialog[open] { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; animation: sim-comparison-enter 240ms cubic-bezier(.2, .7, .3, 1); }
.cdx-simulator .sim-comparison-dialog::backdrop { background: rgb(19 39 45 / 42%); backdrop-filter: blur(4px); }
.cdx-simulator .sim-comparison-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 28px 14px; }
/* Codex追加：コピーは固定ヘッダー内の閉じる操作の左側に置き、小さい画面でも本文を押し下げない。 */
.cdx-simulator .sim-comparison-header > .sim-close-button { order: 2; flex-shrink: 0; }
.cdx-simulator .sim-comparison-copy-actions { margin-left: auto; }
.cdx-simulator .sim-comparison-copy-actions > .sim-button { min-width: 0; min-height: 42px; padding: 8px 12px; font-size: 13px; white-space: nowrap; }
.cdx-simulator .sim-comparison-copy-actions > .sim-button:disabled { opacity: .55; cursor: default; }
.cdx-simulator .sim-comparison-copy-fallback { position: sticky; left: 0; box-sizing: border-box; width: 100%; padding: 16px 20px; background: var(--sim-surface); }
.cdx-simulator .sim-comparison-copy-fallback[hidden] { display: none; }
.cdx-simulator .sim-comparison-copy-fallback label { display: block; margin-bottom: 8px; font-size: 14px; }
.cdx-simulator .sim-comparison-copy-fallback textarea { box-sizing: border-box; width: 100%; padding: 12px; border: 1px solid var(--sim-control-line); border-radius: 8px; background: #fff; color: var(--sim-ink); font: 16px/1.6 monospace; resize: vertical; }
:is(#entry, body) .cdx-simulator .sim-comparison-header > h3 { flex: 1; min-width: 0; font-size: 27px; font-weight: 750; letter-spacing: -.03em; line-height: 1.3; }
/* Codex追加：短い見出しでも日本語の単語途中で改行しない。 */
.cdx-simulator .sim-comparison-header > h3 > span { display: inline-block; }
.cdx-simulator .sim-comparison-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 0 28px 20px; border-bottom: 1px solid var(--sim-line); }
/* Codex追加：比較の目的を選び、機種変更を続ける場合とMNP購入を独立した基準で切り替える */
.cdx-simulator .sim-comparison-modes { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--sim-line); border-radius: 12px; background: var(--sim-surface); }
.cdx-simulator .sim-comparison-modes > button { min-height: 42px; padding: 8px 14px; border: 0; border-radius: 8px; background: transparent; color: var(--sim-muted); font: inherit; font-size: 15px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.cdx-simulator .sim-comparison-modes > button[aria-pressed="true"] { background: var(--sim-accent); color: #fff; }
/* Codex追加：比較モードの選択色も、内容の切り替えに合わせてなめらかに変える。 */
.cdx-simulator .sim-comparison-modes > button { transition: background-color 180ms ease, color 180ms ease; }
.cdx-simulator .sim-comparison-modes > button:focus-visible { outline: 2px solid var(--sim-accent); outline-offset: 2px; }
:is(#entry, body) .cdx-simulator .sim-comparison-scenario { flex: 1 1 100%; margin: 0; color: var(--sim-ink); font-size: 15px; line-height: 1.6; }
:is(#entry, body) .cdx-simulator .sim-comparison-baseline-notice { position: sticky; left: 0; box-sizing: border-box; width: 100%; margin: 0; padding: 16px 28px; color: #85502a; font-size: 15px; line-height: 1.6; }
.cdx-simulator .sim-comparison-controls > label { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; }
/* Codex追加：返却プログラムは支払い完了までを自動集計し、固定月数の選択欄と切り替える */
.cdx-simulator .sim-comparison-controls > [hidden] { display: none; }
.cdx-simulator .sim-comparison-controls select { width: auto; min-width: 116px; min-height: 42px; padding: 8px 30px 8px 12px; border: 1px solid var(--sim-control-line); border-radius: 8px; background-color: #fff; color: var(--sim-ink); font-size: 14px; }
.cdx-simulator .sim-comparison-controls > .sim-button { min-width: 0; max-width: 100%; min-height: 42px; padding: 10px 16px; font-size: 13px; white-space: normal; }
/* Codex修正：比較する機種名と容量だけを表の直前に簡潔に表示する */
:is(#entry, body) .cdx-simulator .sim-comparison-context { flex: 1 1 100%; min-width: 0; margin: 0; color: var(--sim-ink); font-size: 13px; font-weight: 500; line-height: 1.65; overflow-wrap: anywhere; }
.cdx-simulator .sim-comparison-body { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }

/* Codex修正：比較条件を表の下で開閉し、長い説明は本文と一緒にスクロールする */
.cdx-simulator .sim-comparison-assumptions { position: sticky; left: 0; box-sizing: border-box; width: 100%; margin: 0; padding: 0 28px; border-top: 1px solid var(--sim-line); background: var(--sim-surface); }
.cdx-simulator .sim-comparison-assumptions > summary { min-height: 48px; padding: 16px 0; color: var(--sim-accent); font-size: 16px; font-weight: 650; line-height: 1.6; cursor: pointer; }
.cdx-simulator .sim-comparison-assumptions > summary > span { display: block; padding-left: 20px; color: var(--sim-muted); font-size: 14px; font-weight: 400; }
.cdx-simulator :is(.sim-comparison-assumptions, .sim-comparison-conditions) > summary:focus-visible { outline: 2px solid var(--sim-accent); outline-offset: 3px; border-radius: 4px; }
.cdx-simulator .sim-comparison-assumptions > div { display: grid; gap: 18px; padding: 0 0 24px; }
:is(#entry, body) .cdx-simulator .sim-comparison-assumptions p { margin: 0; font-size: 15px; line-height: 1.75; }
:is(#entry, body) .cdx-simulator .sim-comparison-assumptions dl { display: grid; gap: 14px; margin: 0; }
.cdx-simulator .sim-comparison-assumptions dl > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 6px 20px; }
:is(#entry, body) .cdx-simulator .sim-comparison-assumptions :is(dt, dd) { margin: 0; font-size: 15px; line-height: 1.75; overflow-wrap: anywhere; }
.cdx-simulator .sim-comparison-assumptions dt { color: var(--sim-muted); font-weight: 600; }
:is(#entry, body) .cdx-simulator .sim-comparison-adjustment { color: #85502a; font-weight: 600; }

/* Codex修正：料金の要点をカードで示し、狭い画面では次のカードを見せながら横にめくる。 */
.cdx-simulator .sim-comparison-dialog { width: min(1120px, calc(100vw - 24px)); }
.cdx-simulator .sim-suggestion-intro { padding: 22px 28px 18px; }
.cdx-simulator .sim-suggestion-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cdx-simulator .sim-suggestion-chips > span { padding: 5px 9px; border-radius: 6px; background: var(--sim-surface); color: var(--sim-ink); font-size: 12px; line-height: 1.6; }
/* Codex修正：文量や補償注記の有無が違っても、横並びのカードの高さを揃える。 */
.cdx-simulator .sim-suggestions { display: grid; grid-template-columns: repeat(var(--sim-suggestion-columns, 3), minmax(0, 1fr)); align-items: stretch; gap: 16px; padding: 0 28px 24px; }
/* Codex追加：切り替え直後も操作可能なまま、各カードを軽くフェードして表示する。 */
.cdx-simulator .sim-suggestions.is-switching > .sim-suggestion { animation: sim-comparison-switch 240ms ease-out; }
@keyframes sim-comparison-switch { from { opacity: .35; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.cdx-simulator .sim-suggestion { display: flex; flex-direction: column; min-width: 0; padding: 22px; border: 1px solid var(--sim-line); border-radius: 16px; background: #fff; color: var(--sim-ink); }
.cdx-simulator .sim-suggestion.is-current { background: var(--sim-surface); }
:is(#entry, body) .cdx-simulator .sim-suggestion p { margin: 0; padding: 0; }
:is(#entry, body) .cdx-simulator .sim-suggestion-kind { color: var(--sim-muted); font-size: 12px; line-height: 1.7; }
/* Codex修正：比較表の社名は、入力画面と同じキャリアカラーで表示する。 */
:is(#entry, body) .cdx-simulator .sim-suggestion-carrier { margin: 3px 0 0; padding: 0; border: 0; background: none; color: var(--candidate-color, var(--sim-ink)); font-size: 24px; font-weight: 700; line-height: 1.5; }
:is(#entry, body) .cdx-simulator .sim-suggestion-contract { color: var(--sim-muted); font-size: 12px; line-height: 1.7; }
:is(#entry, body) .cdx-simulator .sim-suggestion-plan { min-height: 72px; margin-top: 16px; font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }
/* Codex追加：プラン名だけを一行にし、収まらない名前の文字サイズは実際の表示幅に合わせて調整する。 */
.cdx-simulator .sim-suggestion-plan-name { display: block; white-space: nowrap; }
.cdx-simulator .sim-suggestion-plan > small { display: block; color: var(--sim-muted); font-size: 13px; }
.cdx-simulator .sim-suggestion-monthly { margin-top: 16px; }
:is(#entry, body) .cdx-simulator :is(.sim-suggestion-monthly, .sim-suggestion-total) > p { color: var(--sim-muted); font-size: 13px; line-height: 1.7; }
.cdx-simulator .sim-suggestion-monthly > strong { display: block; color: var(--sim-ink); font-size: clamp(28px, 3.4vw, 36px); font-weight: 750; letter-spacing: -.04em; line-height: 1.5; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cdx-simulator .sim-suggestion-monthly strong small { font-size: 14px; font-weight: 400; letter-spacing: 0; }
.cdx-simulator :is(.sim-suggestion-monthly, .sim-suggestion-total) > small { display: block; color: var(--sim-muted); font-size: 12px; line-height: 1.7; }
/* Codex追加：代表月額と同じ期間の端末代・通信料を、明細を開かずに確認できるようにする。 */
:is(#entry, body) .cdx-simulator .sim-suggestion-monthly-breakdown { display: grid; gap: 4px; margin: 12px 0 0; }
.cdx-simulator .sim-suggestion-monthly-breakdown > div { display: flex; justify-content: space-between; gap: 8px; }
:is(#entry, body) .cdx-simulator .sim-suggestion-monthly-breakdown :is(dt, dd) { margin: 0; font-size: 13px; font-weight: 400; line-height: 1.7; }
.cdx-simulator .sim-suggestion-monthly-breakdown dt { color: var(--sim-muted); }
.cdx-simulator .sim-suggestion-monthly-breakdown dd { color: var(--sim-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cdx-simulator .sim-suggestion-monthly-breakdown small { font-size: 11px; }
/* Codex追加：補償料別は月額見出しの同じ行で示し、算入済みの内訳も一行に揃える。 */
.cdx-simulator .sim-suggestion-monthly > p { display: flex; align-items: center; gap: 8px; }
.cdx-simulator .sim-suggestion-care-extra { padding: 1px 6px; border-radius: 4px; background: var(--sim-line); color: var(--sim-ink); font-size: 11px; line-height: 1.7; white-space: nowrap; }
.cdx-simulator .sim-suggestion-monthly > .sim-suggestion-care { margin-top: 4px; white-space: nowrap; }
.cdx-simulator .sim-suggestion-total { margin-top: 18px; padding: 14px 0 16px; border-top: 1px solid var(--sim-line); }
.cdx-simulator .sim-suggestion-total > strong { display: block; color: var(--sim-ink); font-size: 21px; font-weight: 650; line-height: 1.5; font-variant-numeric: tabular-nums; }
.cdx-simulator .sim-suggestion-total strong small { font-size: 14px; font-weight: 400; }
.cdx-simulator .sim-comparison-amount { display: inline-block; white-space: nowrap; }
:is(#entry, body) .cdx-simulator .sim-suggestion-delta { margin: 0 0 14px; color: var(--sim-muted); font-size: 13px; line-height: 1.7; }
.cdx-simulator .sim-suggestion-delta > strong { color: var(--sim-ink); font-size: 15px; font-weight: 600; }
.cdx-simulator .sim-suggestion-delta small { font-size: 12px; }
/* Codex修正：余った高さを内訳の上で吸収し、内訳と操作ボタンの位置も揃える。 */
.cdx-simulator .sim-suggestion .sim-comparison-conditions { margin-top: auto; border-top: 1px solid var(--sim-line); padding-bottom: 8px; }
.cdx-simulator .sim-suggestion .sim-comparison-detail-body { padding-bottom: 20px; }
.cdx-simulator .sim-suggestion .sim-comparison-candidate-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 4px; }
.cdx-simulator .sim-suggestion .sim-comparison-candidate-actions > :only-child { grid-column: 1 / -1; }
.cdx-simulator .sim-suggestion .sim-comparison-candidate-actions > :is(button, a) { min-width: 0; padding: 10px 6px; font-size: 13px; }
.cdx-simulator .sim-suggestion-baseline { margin: 0 0 12px; padding: 8px 0; border: 0; background: none; color: var(--sim-accent); font: inherit; font-size: 13px; cursor: pointer; }
.cdx-simulator .sim-suggestion-baseline[aria-pressed="true"] { color: var(--sim-muted); }
:is(#entry, body) .cdx-simulator .sim-suggestion-empty { margin: 0 28px 18px; color: var(--sim-muted); font-size: 14px; line-height: 1.8; }
.cdx-simulator .sim-comparison-rules > summary { padding: 8px 0; color: var(--sim-accent); font-size: 14px; cursor: pointer; }
.cdx-simulator .sim-comparison-rules > dl { padding-top: 12px; }
@media (min-width: 600px) and (max-width: 880px) {
  .cdx-simulator .sim-suggestions { grid-template-columns: repeat(min(2, var(--sim-suggestion-columns, 3)), minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .cdx-simulator .sim-suggestion-intro { padding: 18px; }
  /* Codex修正：トップのトピック欄と同じスナップを使い、本文の縦スクロールも維持する。 */
  .cdx-simulator .sim-suggestions { display: flex; gap: 14px; padding: 0 18px 20px; overflow-x: auto; overscroll-behavior-x: contain; scroll-padding-inline: 18px; scroll-snap-type: x mandatory; scroll-behavior: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .cdx-simulator .sim-suggestions::-webkit-scrollbar { display: none; }
  .cdx-simulator .sim-suggestions:focus-visible { outline: 2px solid var(--sim-accent); outline-offset: -4px; }
  .cdx-simulator .sim-suggestion { flex: 0 0 88%; padding: 20px; scroll-snap-align: start; scroll-snap-stop: always; }
  .cdx-simulator .sim-suggestion:only-child { flex-basis: 100%; }
  :is(#entry, body) .cdx-simulator .sim-suggestion-plan { min-height: 0; }
  .cdx-simulator .sim-suggestion-monthly > strong { font-size: 34px; }
  :is(#entry, body) .cdx-simulator .sim-suggestion-empty { margin-inline: 18px; }
}
/* Codex追加：小さい端末でもカード内の操作ラベルを窮屈に折り返さない。 */
@media (max-width: 359px) {
  .cdx-simulator .sim-suggestion .sim-comparison-candidate-actions { grid-template-columns: minmax(0, 1fr); }
}

/* Codex追加：期間別の支払いと選択条件を同じ列に収め、詳細を開いても横幅を変えない */
:is(#entry, body) .cdx-simulator ul.sim-comparison-periods { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
:is(#entry, body) .cdx-simulator .sim-comparison-periods > li { display: grid; gap: 4px; margin: 0; padding: 0; border: 0; background: none; list-style: none; font-size: 16px; line-height: 1.5; }
.cdx-simulator .sim-comparison-periods > li::before { content: none; }
.cdx-simulator .sim-comparison-periods small { color: var(--sim-muted); font-size: 14px; }
.cdx-simulator .sim-comparison-periods > li > span { color: var(--sim-ink); font-size: 20px; font-weight: 650; font-variant-numeric: tabular-nums; }
.cdx-simulator .sim-comparison-periods strong { font-size: 20px; font-weight: 650; font-variant-numeric: tabular-nums; }
.cdx-simulator .sim-comparison-conditions > summary { min-height: 40px; padding: 8px 0; color: var(--sim-accent); font-size: 15px; font-weight: 600; cursor: pointer; }
/* Codex追加：ネイティブの開閉操作を保ち、矢印の回転と本文の軽いフェードで反応を示す。 */
.cdx-simulator .sim-suggestion .sim-comparison-conditions > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; }
.cdx-simulator .sim-suggestion .sim-comparison-conditions > summary::-webkit-details-marker { display: none; }
.cdx-simulator .sim-suggestion .sim-comparison-conditions > summary::after { content: ''; width: 7px; height: 7px; margin-right: 3px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease; }
.cdx-simulator .sim-suggestion .sim-comparison-conditions[open] > summary::after { transform: rotate(225deg); }
.cdx-simulator .sim-comparison-conditions[open] > .sim-comparison-reveal { animation: sim-comparison-reveal 220ms ease-out; }
@keyframes sim-comparison-reveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
/* Codex修正：本文がセクション間隔、各セクションが見出しと明細の間隔を管理する。 */
.cdx-simulator .sim-comparison-detail-body { display: grid; gap: 24px; min-width: 0; padding-top: 12px; }
.cdx-simulator .sim-comparison-detail-section { display: grid; gap: 12px; min-width: 0; }
:is(#entry, body) .cdx-simulator .sim-comparison-detail-title { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.6; overflow-wrap: anywhere; }
:is(#entry, body) .cdx-simulator .sim-comparison-detail-list { display: grid; gap: 12px; min-width: 0; margin: 0; }
.cdx-simulator .sim-comparison-detail-row { display: grid; gap: 3px; min-width: 0; }
:is(#entry, body) .cdx-simulator .sim-comparison-detail-label { color: var(--sim-muted); font-size: 14px; font-weight: 400; overflow-wrap: anywhere; }
:is(#entry, body) .cdx-simulator .sim-comparison-detail-value { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
/* Codex追加：注意書きも独立したまとまりにし、費用明細や別の注意書きと詰めて表示しない。 */
.cdx-simulator .sim-comparison-detail-notes { display: grid; gap: 12px; min-width: 0; }
:is(#entry, body) .cdx-simulator .sim-comparison-detail-note { margin: 0; color: var(--sim-muted); font-size: 14px; font-weight: 400; line-height: 1.75; overflow-wrap: anywhere; }
.cdx-simulator .sim-comparison-candidate-actions { display: grid; gap: 10px; }
.cdx-simulator .sim-comparison-candidate-actions > button { min-height: 42px; padding: 10px 12px; border: 1px solid var(--sim-line); border-radius: 8px; background: transparent; color: var(--sim-accent); font-size: 14px; font-weight: 500; line-height: 1.5; box-shadow: none; }
.cdx-simulator .sim-comparison-candidate-actions > button[aria-pressed="true"] { border-color: transparent; background: var(--sim-accent-soft); color: var(--sim-accent); }
.cdx-simulator .sim-comparison-candidate-actions > .sim-button { min-height: 44px; padding: 11px 13px; font-size: 14px; }
/* Codex修正：各社カードの注文リンクは黒背景・白文字の共通デザインにする。 */
.cdx-simulator .sim-suggestion a.sim-comparison-order { width: 100%; min-height: 44px; padding: 11px 13px; border-color: #111; background: #111; color: #fff; font-size: 14px; }
@media (hover: hover) {
  .cdx-simulator .sim-suggestion a.sim-comparison-order:hover { border-color: #333; background: #333; color: #fff; }
}
.cdx-simulator .sim-comparison-empty { display: grid; align-content: center; justify-items: center; gap: 12px; min-height: 100%; padding: 40px 24px; color: var(--sim-muted); font-size: 14px; text-align: center; }
.cdx-simulator .sim-comparison-empty > strong { color: var(--sim-ink); font-size: 20px; font-weight: 700; }
.cdx-simulator .sim-comparison-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 20px 28px; border-top: 1px solid var(--sim-line); background: #fff; }
/* Codex修正：説明・操作ボタンをなくし、通知がないときはフッターの余白も残さない。 */
.cdx-simulator .sim-comparison-footer:has(> .sim-comparison-status:empty) { display: none; }
:is(#entry, body) .cdx-simulator .sim-comparison-footer > p { flex: 1 1 240px; max-width: 660px; color: var(--sim-muted); font-size: 13px; line-height: 1.6; }

/* Codex修正：狭い画面では操作部を折り返し、横にめくるカードの閲覧領域を確保する。 */
@media (max-width: 599px) {
  .cdx-simulator .sim-comparison-dialog { width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .cdx-simulator .sim-comparison-header { padding: max(16px, env(safe-area-inset-top, 0px)) 18px 14px; }
  /* Codex修正：長い提案見出しで閉じるボタンだけが次の行へ落ちるのを防ぐ。 */
  :is(#entry, body) .cdx-simulator .sim-comparison-header > h3 { margin: 0; font-size: 19px; text-wrap: balance; }
  .cdx-simulator .sim-comparison-header > .sim-close-button { align-self: flex-start; }
  .cdx-simulator .sim-comparison-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .cdx-simulator .sim-comparison-modes > button { min-width: 0; padding: 8px 6px; font-size: 13px; }
  .cdx-simulator .sim-comparison-controls { gap: 10px; padding: 0 18px 16px; }
  .cdx-simulator .sim-comparison-controls > label { gap: 8px; font-size: 12px; }
  .cdx-simulator .sim-comparison-controls select { min-width: 100px; padding-left: 10px; font-size: 13px; }
  .cdx-simulator .sim-comparison-controls > .sim-button { padding-inline: 12px; font-size: 12px; }
  :is(#entry, body) .cdx-simulator .sim-comparison-context { font-size: 12px; }
  .cdx-simulator .sim-comparison-body { scrollbar-gutter: auto; }
  .cdx-simulator .sim-comparison-assumptions { padding-inline: 18px; }
  .cdx-simulator .sim-comparison-assumptions dl > div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .cdx-simulator .sim-comparison-footer { gap: 10px; padding: 14px 18px calc(14px + env(safe-area-inset-bottom, 0px)); }
  .cdx-simulator .sim-comparison-footer > p { flex-basis: 100%; }
  .cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-dialog-header { gap: 8px; }
  /* Codex修正：長い比較CTAは独立した操作行にして、月額と互いに押しつぶさない */
  .cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-actions:has(> [data-comparison-current="true"]) { flex: 1 1 100%; min-width: 0; max-width: 100%; }
  .cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-actions > [data-comparison-current="true"] { min-width: 0; max-width: 100%; padding-inline: 12px; white-space: normal; }
  .cdx-simulator:is([data-design="c"], [data-design="d"]) .sim-c-actions:has(> [data-comparison-current="true"]) > [data-c-prev] { flex-shrink: 0; }
}
@container simulator (max-width: 479px) {
  .cdx-simulator .sim-comparison-bar { gap: 12px; padding-block: 16px; }
  .cdx-simulator .sim-comparison-actions { width: 100%; gap: 10px; }
  .cdx-simulator .sim-comparison-actions > .sim-button { flex: 1 1 auto; justify-content: center; padding-inline: 12px; font-size: 12px; }
  .cdx-simulator .sim-comparison-result-actions > .sim-button { flex: 1 1 auto; justify-content: center; padding-inline: 12px; font-size: 12px; }
}
@media (hover: hover) {
  .cdx-simulator .sim-comparison-column > [data-compare-action="remove"]:hover,
  .cdx-simulator .sim-comparison-candidate-actions > button:hover { background: var(--sim-accent-soft); color: var(--sim-accent); }
}
@keyframes sim-comparison-enter { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .cdx-simulator .sim-comparison-dialog[open] { animation: none; }
  .cdx-simulator .sim-comparison-conditions[open] > .sim-comparison-reveal { animation: none; }
  .cdx-simulator .sim-suggestion .sim-comparison-conditions > summary::after { transition: none; }
  .cdx-simulator .sim-suggestions.is-switching > .sim-suggestion { animation: none; }
  .cdx-simulator .sim-comparison-modes > button { transition: none; }
}
@media print {
  .cdx-simulator .sim-comparison-bar,
  .cdx-simulator .sim-comparison-result-actions,
  .cdx-simulator .sim-comparison-dialog { display: none !important; }
}
