.correction-main { display: grid; gap: 16px; }
.correction-hero, .correction-controls, .correction-summary, .historical-result, .methodology-card { padding: 24px; }
.correction-hero { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.correction-hero h1 { max-width: 760px; margin: 4px 0 10px; font-size: clamp(1.7rem, 4vw, 2.65rem); }
.correction-hero-note { display: grid; gap: 6px; max-width: 320px; padding: 15px; border-radius: var(--radius); background: #fff7ed; color: #9a3412; font-size: .82rem; line-height: 1.55; }
.correction-hero-note strong { font-size: .85rem; }
.correction-controls { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.replay-controls { display: flex; flex-wrap: wrap; align-items: end; justify-content: flex-end; gap: 8px; }
.replay-controls label { display: grid; gap: 3px; color: var(--text-2); font-size: .72rem; }
.replay-controls label small { color: var(--text-3); font-size: .66rem; }
.replay-controls input { min-height: 38px; padding: 7px 9px; color: var(--text); background: #fff; border: 1px solid var(--border); border-radius: 8px; font: inherit; font-size: .78rem; }
.asset-selector { display: flex; flex-wrap: wrap; gap: 8px; }
.custom-symbol-control { display: flex; align-items: end; gap: 7px; }
.custom-symbol-control label { display: grid; gap: 4px; color: var(--text-2); font-size: .72rem; white-space: nowrap; }
.custom-symbol-control input { width: 145px; min-height: 38px; padding: 7px 9px; color: var(--text); background: #fff; border: 1px solid var(--border); border-radius: 8px; font: inherit; font-size: .8rem; text-transform: uppercase; }
.correction-asset { display: grid; gap: 2px; padding: 9px 13px; min-width: 94px; text-align: left; color: var(--text-2); background: var(--surface-2); border: 1px solid var(--border); border-radius: 9px; cursor: pointer; transition: .18s ease; }
.correction-asset:hover, .correction-asset.active { color: #1d4ed8; background: #eff6ff; border-color: #93c5fd; }
.correction-asset strong { font-family: var(--font-display); font-size: .88rem; }
.correction-asset span { font-size: .69rem; }
.btn-secondary { padding: 10px 14px; color: var(--text); background: #fff; border: 1px solid var(--border); border-radius: 9px; cursor: pointer; font-weight: 600; white-space: nowrap; }
.btn-secondary:hover { border-color: #93c5fd; color: #1d4ed8; }
.correction-body { display: grid; gap: 14px; }
.market-session { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; }
.market-session > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.market-session strong { font-size: .86rem; }
.market-session small, .market-session p { color: var(--text-3); font-size: .76rem; }
.market-session p { line-height: 1.45; }
.session-dot { width: 9px; height: 9px; border-radius: 50%; background: #64748b; }
.session-open { border-left: 4px solid #16a34a; }
.session-open .session-dot { background: #16a34a; }
.session-closed { border-left: 4px solid #64748b; background: #f8fafc; }
.correction-summary { border-left: 5px solid #64748b; }
.correction-summary.heat-high { border-left-color: #dc2626; }
.correction-summary.heat-medium { border-left-color: #f59e0b; }
.correction-summary.heat-low { border-left-color: #16a34a; }
.correction-summary-head { display: flex; justify-content: space-between; gap: 22px; }
.correction-summary h2, .historical-result h2, .chart-card h2, .methodology-card h2 { margin: 3px 0 8px; font-size: 1.15rem; }
.correction-summary p { max-width: 800px; color: var(--text-2); line-height: 1.6; }
.heat-gauge { display: grid; align-content: center; min-width: 136px; padding: 14px 18px; border-radius: 12px; text-align: center; background: var(--surface-2); }
.heat-gauge span, .heat-gauge em, .heat-gauge b { font-size: .72rem; font-style: normal; }
.heat-gauge strong { font-family: var(--font-display); font-size: 2.4rem; line-height: 1; }
.heat-gauge b { margin-top: 5px; color: var(--text-2); }
.heat-meter { height: 10px; margin: 20px 0 13px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.heat-meter i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #16a34a 0%, #f59e0b 58%, #dc2626 100%); }
.heat-components { display: flex; flex-wrap: wrap; gap: 12px 24px; color: var(--text-3); font-size: .78rem; }
.heat-components strong { margin-left: 4px; color: var(--text); }
.correction-metrics-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.correction-metric { display: grid; gap: 5px; min-height: 120px; padding: 17px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.correction-metric > span, .correction-metric small { color: var(--text-3); font-size: .75rem; }
.correction-metric strong { color: var(--text); font-family: var(--font-display); font-size: 1.45rem; }
.correction-metric.metric-hot { border-color: #fdba74; background: #fffaf5; }
.historical-result { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(190px, .75fr) minmax(180px, .8fr); gap: 24px; align-items: center; }
.historical-result p { color: var(--text-2); line-height: 1.55; font-size: .84rem; }
.historical-rate { display: grid; gap: 4px; padding: 14px; border-radius: var(--radius); background: #fff7ed; }
.historical-rate span, .historical-rate small { color: #9a3412; font-size: .72rem; }
.historical-rate strong { color: #c2410c; font-family: var(--font-display); font-size: 2rem; }
.historical-details { display: grid; gap: 10px; }
.historical-details span { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--border); color: var(--text-3); font-size: .76rem; }
.historical-details strong { color: var(--text); }
.replay-outcome { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, 1fr); gap: 22px; padding: 20px; border-left: 4px solid #7c3aed; }
.replay-outcome h2 { margin: 3px 0 8px; font-size: 1.05rem; }
.replay-outcome p { color: var(--text-2); font-size: .8rem; line-height: 1.55; }
.replay-outcome-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.replay-outcome-grid span { display: grid; gap: 4px; padding: 11px; border-radius: 8px; background: #f5f3ff; color: var(--text-3); font-size: .7rem; }
.replay-outcome-grid strong { color: var(--text); font-family: var(--font-display); font-size: 1rem; }
.entry-score-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, .45fr) minmax(300px, .85fr); gap: 18px; align-items: center; padding: 22px; border-left: 5px solid #64748b; }
.entry-score-card.entry-positive { border-left-color: #16a34a; background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%); }
.entry-score-card.entry-neutral { border-left-color: #f59e0b; background: linear-gradient(135deg, #fff 0%, #fffbeb 100%); }
.entry-score-card.entry-negative { border-left-color: #dc2626; background: linear-gradient(135deg, #fff 0%, #fff7ed 100%); }
.entry-score-card h2 { margin: 3px 0 8px; font-size: 1.2rem; }
.entry-score-card p { color: var(--text-2); font-size: .82rem; line-height: 1.55; }
.entry-score-main { display: grid; justify-items: center; gap: 4px; padding: 15px; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); text-align: center; }
.entry-score-main span, .entry-score-main small { color: var(--text-3); font-size: .72rem; }
.entry-score-main strong { color: var(--text); font-family: var(--font-display); font-size: 2.15rem; line-height: 1; }
.entry-score-main em { margin-left: 3px; color: var(--text-3); font-size: .86rem; font-style: normal; }
.entry-score-main b { color: var(--text); font-size: .82rem; }
.entry-score-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.entry-score-grid span { display: flex; justify-content: space-between; gap: 10px; padding: 9px 10px; border-radius: 8px; background: rgba(255,255,255,.8); color: var(--text-3); font-size: .72rem; }
.entry-score-grid strong { color: var(--text); font-size: .78rem; }
.strong-candidates { display: grid; gap: 16px; padding: 22px; }
.strong-candidates-head { display: flex; justify-content: space-between; gap: 18px; align-items: start; }
.strong-candidates-head h2 { margin: 3px 0 8px; font-size: 1.15rem; }
.strong-candidates-head p { max-width: 820px; color: var(--text-2); font-size: .82rem; line-height: 1.55; }
.strong-candidates-head > span { padding: 7px 9px; border-radius: 7px; background: var(--surface-2); color: var(--text-3); font-size: .7rem; white-space: nowrap; }
.candidate-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.candidate-group { display: grid; gap: 10px; min-width: 0; }
.candidate-group-title { display: flex; justify-content: space-between; gap: 8px; color: var(--text-3); font-size: .72rem; }
.candidate-group-title strong { color: var(--text); font-size: .82rem; }
.candidate-list { display: grid; gap: 8px; }
.candidate-card { display: grid; gap: 8px; width: 100%; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: #fff; text-align: left; cursor: pointer; box-shadow: var(--shadow-sm); transition: .18s ease; }
.candidate-card:hover { transform: translateY(-1px); border-color: #93c5fd; box-shadow: var(--shadow-md); }
.candidate-card.candidate-positive { border-left: 4px solid #16a34a; }
.candidate-card.candidate-neutral { border-left: 4px solid #f59e0b; }
.candidate-card.candidate-negative { border-left: 4px solid #dc2626; }
.candidate-card.candidate-error { cursor: default; background: #fff7ed; color: #9a3412; }
.candidate-card.candidate-error:hover { transform: none; box-shadow: var(--shadow-sm); border-color: var(--border); }
.candidate-top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.candidate-top span { color: var(--text-3); font-size: .72rem; }
.candidate-top strong { color: var(--text); font-family: var(--font-display); font-size: 1.05rem; }
.candidate-card em { color: var(--text-2); font-size: .76rem; font-style: normal; }
.candidate-card small { color: var(--text-3); font-size: .68rem; }
.candidate-meta, .candidate-levels { display: grid; gap: 5px; }
.candidate-meta span, .candidate-levels span { display: flex; justify-content: space-between; gap: 8px; color: var(--text-3); font-size: .68rem; }
.candidate-meta b, .candidate-levels b { color: var(--text); font-size: .7rem; }
.model-workbench { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, .9fr); gap: 14px; align-items: start; }
.triple-model { display: grid; gap: 16px; padding: 22px; border-left: 4px solid #64748b; }
.triple-model.model-positive { border-left-color: #16a34a; }
.triple-model.model-negative { border-left-color: #dc2626; }
.triple-model.model-neutral { border-left-color: #f59e0b; }
.triple-model-head { display: flex; justify-content: space-between; gap: 22px; }
.triple-model h2 { margin: 3px 0 8px; font-size: 1.15rem; }
.triple-model h3 { margin: 0 0 10px; color: var(--text); font-size: .88rem; }
.triple-model p { color: var(--text-2); font-size: .8rem; line-height: 1.6; }
.model-verdict { display: grid; align-content: center; min-width: 150px; padding: 15px; border-radius: var(--radius); background: #f8fafc; text-align: center; }
.model-verdict span, .model-verdict small { color: var(--text-3); font-size: .72rem; }
.model-verdict strong { color: var(--text); font-family: var(--font-display); font-size: 2rem; line-height: 1.1; }
.barrier-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.barrier-grid span { display: grid; gap: 5px; padding: 12px; border-radius: 10px; background: var(--surface-2); color: var(--text-3); font-size: .72rem; }
.barrier-grid strong { color: var(--text); font-family: var(--font-display); font-size: .98rem; }
.model-prob-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.model-prob-grid .correction-metric { min-height: 100px; padding: 14px; }
.model-prob-grid .model-metric strong { font-size: 1.22rem; }
.metric-cool { border-color: #86efac; background: #f0fdf4; }
.model-feature-row { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 14px; }
.model-feature-row > div { padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.model-feature-row dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.model-feature-row dl div { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.model-feature-row dt { color: var(--text-3); font-size: .7rem; }
.model-feature-row dd { margin: 0; color: var(--text); font-size: .75rem; font-weight: 700; }
.model-feature-row ul { display: grid; gap: 7px; margin: 0; padding-left: 17px; color: var(--text-2); font-size: .76rem; }
.example-list { padding-left: 0 !important; list-style: none; }
.example-list li { display: grid; grid-template-columns: 72px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); }
.example-list span, .example-list small { color: var(--text-3); font-size: .68rem; }
.example-list strong { color: var(--text); font-size: .72rem; }
.survival-model { display: grid; gap: 14px; padding: 22px; border-left: 4px solid #64748b; }
.survival-model.model-positive { border-left-color: #16a34a; }
.survival-model.model-negative { border-left-color: #dc2626; }
.survival-model.model-neutral { border-left-color: #f59e0b; }
.survival-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .35fr); gap: 16px; align-items: center; }
.survival-model h2 { margin: 3px 0 8px; font-size: 1.12rem; }
.survival-model p { color: var(--text-2); font-size: .8rem; line-height: 1.55; }
.survival-score { display: grid; justify-items: center; gap: 3px; padding: 13px; border-radius: var(--radius); background: var(--surface-2); text-align: center; }
.survival-score span, .survival-score small { color: var(--text-3); font-size: .68rem; }
.survival-score strong { color: var(--text); font-family: var(--font-display); font-size: 2rem; line-height: 1; }
.survival-risk-grid { display: grid; gap: 9px; }
.survival-risk-grid span { display: flex; justify-content: space-between; gap: 10px; padding: 10px 11px; border-radius: 9px; background: var(--surface-2); color: var(--text-3); font-size: .74rem; }
.survival-risk-grid strong { color: var(--text); font-family: var(--font-display); font-size: .92rem; }
.survival-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; color: var(--text-3); font-size: .72rem; }
.survival-events { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.survival-events li { display: grid; grid-template-columns: 76px 1fr auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--border); }
.survival-events span, .survival-events small { color: var(--text-3); font-size: .68rem; }
.survival-events strong { color: var(--text); font-size: .74rem; }
.historical-parallels { padding: 22px; }
.parallel-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.parallel-heading h2 { margin: 3px 0 8px; font-size: 1.15rem; }
.parallel-heading p { max-width: 760px; color: var(--text-2); font-size: .84rem; line-height: 1.58; }
.parallel-heading > span { align-self: start; padding: 7px 9px; border-radius: 7px; background: var(--surface-2); color: var(--text-3); font-size: .71rem; white-space: nowrap; }
.parallel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.parallel-card { padding: 15px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); }
.parallel-card > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; }
.parallel-card span, .parallel-card em { color: var(--text-3); font-size: .71rem; font-style: normal; }
.parallel-card strong { font-family: var(--font-display); font-size: .98rem; }
.parallel-card p { margin: 11px 0; color: var(--text-2); font-size: .75rem; line-height: 1.5; }
.parallel-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.parallel-card dl div { display: grid; gap: 3px; }
.parallel-card dt { color: var(--text-3); font-size: .65rem; }
.parallel-card dd { margin: 0; color: var(--text); font-size: .78rem; font-weight: 700; }
.parallel-empty { color: var(--text-3); font-size: .82rem; }
.correction-chart--parallel { height: 250px; margin-top: 16px; }
.parallel-method { margin-top: 8px; color: var(--text-3); font-size: .72rem; line-height: 1.5; }
.correction-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.chart-card { min-width: 0; padding: 20px; }
.correction-chart { width: 100%; height: 300px; margin-top: 12px; }
.correction-disclaimer { color: var(--text-3); font-size: .76rem; line-height: 1.55; }
.methodology-card { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.7fr) minmax(150px, .55fr); gap: 24px; align-items: start; }
.methodology-copy { display: grid; gap: 10px; color: var(--text-2); font-size: .83rem; line-height: 1.65; }
.research-links { display: grid; gap: 8px; }
.research-links a { color: #2563eb; font-size: .78rem; text-decoration: none; }
.research-links a:hover { text-decoration: underline; }
.status-badge.is-loading .status-dot { background: #f59e0b; }
.status-badge.is-error .status-dot { background: #dc2626; }

@media (max-width: 900px) {
  .correction-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-result, .methodology-card, .replay-outcome, .entry-score-card, .candidate-groups, .model-workbench, .model-feature-row { grid-template-columns: 1fr; }
  .barrier-grid, .model-prob-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .parallel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .correction-hero, .correction-controls, .correction-summary-head, .market-session, .parallel-heading, .triple-model-head, .strong-candidates-head { align-items: stretch; flex-direction: column; }
  .correction-hero, .correction-controls, .correction-summary, .historical-result, .methodology-card { padding: 18px; }
  .correction-controls .btn-secondary { width: 100%; }
  .replay-controls { align-items: stretch; flex-direction: column; }
  .custom-symbol-control { align-items: stretch; flex-direction: column; }
  .custom-symbol-control input { width: 100%; }
  .replay-controls input { width: 100%; }
  .correction-metrics-grid, .correction-charts, .entry-score-grid, .barrier-grid, .model-prob-grid, .model-feature-row dl, .survival-head { grid-template-columns: 1fr; }
  .heat-gauge { min-width: 0; }
}
