.visual-insights { border-bottom: 1px solid var(--line); background: #fff; }
.visual-insights__inner { width: min(1200px, calc(100% - 40px)); margin: 0 auto; padding: 64px 0; }
.visual-insights__header { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 36px; }
.visual-insights__header h2 { margin: 0; font-size: 36px; }
.visual-insights__header p { max-width: 520px; margin: 0; color: var(--muted); font-size: 14px; }
.core-visual-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); }
.core-visual { min-width: 0; padding: 34px 44px 34px 0; }
.core-visual + .core-visual { border-left: 1px solid var(--line); padding: 34px 0 34px 44px; }
.core-visual h3 { margin: 0 0 8px; font-size: 23px; }
.core-visual__caption { margin: 0 0 22px; color: var(--muted); font-size: 13px; }
.ohaeng-radar { width: 100%; max-width: 390px; margin: 0 auto; display: block; overflow: visible; }
.radar-grid { fill: none; stroke: var(--line); stroke-width: 1; }
.radar-axis { stroke: #c8c4ba; stroke-width: 1; }
.radar-value { fill: var(--accent); fill-opacity: .2; stroke: var(--accent); stroke-width: 2.5; }
.radar-dot { fill: var(--accent); }
.radar-label { fill: var(--ink); font: 700 12px -apple-system, BlinkMacSystemFont, sans-serif; }
.radar-number { fill: var(--muted); font: 11px -apple-system, BlinkMacSystemFont, sans-serif; }
.ten-god-row { display: grid; grid-template-columns: 46px 1fr 28px; gap: 12px; align-items: center; margin: 14px 0; }
.ten-god-row strong { font-size: 13px; }
.ten-god-track { height: 8px; background: var(--paper-deep); overflow: hidden; }
.ten-god-fill { height: 100%; width: var(--bar-width); background: var(--accent); }
.ten-god-row b { text-align: right; font-size: 12px; }
.ten-god-top { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ten-god-top span { border: 1px solid var(--line); padding: 6px 9px; font-size: 12px; }
.timing-pulse { padding-top: 44px; }
.timing-pulse h3 { margin: 0 0 20px; font-size: 24px; }
.timing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.timing-item { min-height: 150px; padding: 20px 22px 18px 0; border-right: 1px solid var(--line); }
.timing-item + .timing-item { padding-left: 22px; }
.timing-item:last-child { border-right: 0; }
.timing-item__year { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.timing-item__year strong { font-family: Georgia, "Noto Serif KR", serif; font-size: 22px; }
.timing-status { padding: 3px 7px; border: 1px solid currentColor; font-size: 10px; font-weight: 800; }
.timing-item p { margin: 13px 0 0; font-size: 14px; line-height: 1.65; }
.timing-item--supportive { color: #176b55; }
.timing-item--mixed { color: #5f5c55; }
.timing-item--guarded { color: #8b6419; }
.timing-item--high-alert { color: #9a3040; }
.shinsal-module { padding-top: 52px; }
.shinsal-module__header { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 20px; }
.shinsal-module h3 { margin: 0; font-size: 28px; }
.shinsal-module__header p { max-width: 560px; margin: 0; color: var(--muted); font-size: 13px; }
.shinsal-list { border-top: 2px solid var(--ink); }
.shinsal-row { display: grid; grid-template-columns: 140px 130px 1fr 150px; gap: 20px; align-items: center; min-height: 78px; border-bottom: 1px solid var(--line); }
.shinsal-row strong { font-family: Georgia, "Noto Serif KR", serif; font-size: 18px; }
.shinsal-category { color: var(--accent); font-size: 12px; font-weight: 800; }
.shinsal-keyword { font-size: 14px; }
.shinsal-position { color: var(--muted); font-size: 12px; text-align: right; }
.shinsal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.shinsal-actions a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 800; text-decoration: none; }
.compatibility-tool { border-top: 2px solid var(--ink); padding: 58px 0 54px; scroll-margin-top: 84px; }
.compatibility-tool__head { max-width: 680px; margin-bottom: 30px; }
.compatibility-tool__head .section-label { margin-bottom: 8px; }
.compatibility-tool__head h2 { margin: 0 0 13px; font-size: 34px; }
.compatibility-tool__head p { margin: 0; color: var(--muted); font-size: 14px; }
.compat-form { background: var(--paper-deep); padding: 28px; border: 1px solid var(--line); }
.compat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.compat-field { min-width: 0; }
.compat-field--wide { grid-column: 1 / -1; }
.compat-field label, .compat-legend { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 800; }
.compat-field input[type="text"] { width: 100%; height: 48px; border: 1px solid #bbb7ae; background: #fff; padding: 0 13px; border-radius: 3px; font: inherit; }
.compat-options { min-height: 48px; display: flex; align-items: center; flex-wrap: wrap; gap: 15px; }
.compat-options label { margin: 0; font-weight: 500; }
.compat-submit { width: 100%; min-height: 54px; border: 0; border-radius: 3px; background: var(--accent); color: #fff; font-weight: 800; cursor: pointer; }
.compat-submit:disabled { opacity: .6; cursor: wait; }
.compat-result { margin-top: 20px; border: 1px solid var(--line); background: #fff; padding: 24px; }
.compat-result[hidden] { display: none; }
.compat-result__top { display: flex; justify-content: space-between; gap: 18px; align-items: start; }
.compat-score { min-width: 58px; padding: 5px 8px; background: var(--accent-soft); color: var(--accent); text-align: center; font-weight: 800; }
.compat-subscore-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); margin-top: 20px; }
.compat-subscore { background: var(--paper); padding: 14px; }
.compat-subscore span { display: block; color: var(--muted); font-size: 11px; }
.compat-subscore strong { display: block; margin-top: 4px; }
.compat-error { border-color: #b3263e !important; }
@media (max-width: 840px) {
  .visual-insights__inner { width: min(100% - 32px, 760px); padding: 44px 0; }
  .visual-insights__header, .shinsal-module__header { display: block; }
  .visual-insights__header h2 { font-size: 30px; margin-bottom: 12px; }
  .core-visual-grid { grid-template-columns: 1fr; }
  .core-visual, .core-visual + .core-visual { padding: 28px 0; border-left: 0; }
  .core-visual + .core-visual { border-top: 1px solid var(--line); }
  .timing-grid { grid-template-columns: 1fr; }
  .timing-item, .timing-item + .timing-item { min-height: 0; padding: 17px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .shinsal-module__header p { margin-top: 10px; }
  .shinsal-row { grid-template-columns: 1fr auto; gap: 5px 14px; padding: 15px 0; }
  .shinsal-keyword, .shinsal-position { grid-column: 1 / -1; text-align: left; }
  .compatibility-tool { padding: 46px 0 44px; }
  .compatibility-tool__head h2 { font-size: 28px; }
  .compat-form { padding: 20px 16px; }
  .compat-grid { grid-template-columns: 1fr; }
  .compat-field--wide { grid-column: auto; }
  .compat-subscore-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
