/* 堪舆选房 · 择居罗盘 */
.housing-page { min-height: 100vh; background:
  radial-gradient(circle at 82% 8%, rgba(47,116,99,.09), transparent 28rem),
  radial-gradient(circle at 8% 24%, rgba(166,70,59,.07), transparent 24rem),
  var(--bg); }
.housing-nav-title { color: var(--ink-soft); font-size: 12px; font-weight: 700; letter-spacing: 1.8px; }
.housing-hero { display: grid; position: relative; z-index: 1; width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 148px 0 72px; grid-template-columns: minmax(0,1fr) 280px; align-items: center; gap: 70px; }
.housing-hero h1 { max-width: 850px; font: 600 clamp(40px, 6.7vw, 72px)/1.13 var(--serif); letter-spacing: .015em; }
.housing-hero > div:first-child > p:not(.eyebrow) { max-width: 820px; margin-top: 23px; color: var(--ink-soft); font-size: 16px; }
.housing-hero-notes { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.housing-hero-notes span { padding: 7px 11px; border: 1px solid rgba(47,116,99,.22); border-radius: 999px; color: var(--jade); background: rgba(47,116,99,.055); font-size: 12px; }
.housing-hero-compass { display: grid; width: 260px; height: 260px; padding: 28px; grid-template-columns: repeat(3,1fr); place-items: center; border: 1px solid rgba(166,70,59,.24); border-radius: 50%; box-shadow: inset 0 0 0 14px rgba(255,255,255,.38), 0 30px 80px rgba(31,40,34,.09); color: var(--ink-mute); background: rgba(255,255,255,.48); transform: rotate(2deg); }
.housing-hero-compass b { display: grid; width: 66px; height: 66px; place-items: center; border: 1px solid rgba(166,70,59,.35); border-radius: 50%; color: var(--gold); background: var(--bg); font: 600 30px var(--serif); }
.housing-hero-compass span { font: 600 16px var(--serif); }
.housing-layout { display: grid; position: relative; z-index: 1; width: min(1280px, calc(100% - 40px)); margin: 0 auto; padding-bottom: 100px; grid-template-columns: 205px minmax(0,1fr); gap: 30px; align-items: start; }
.housing-steps { display: grid; position: sticky; top: 100px; gap: 4px; padding: 14px; border: 1px solid var(--panel-line); border-radius: 14px; background: rgba(255,255,255,.58); box-shadow: 0 18px 50px rgba(28,35,31,.05); }
.housing-steps a { display: grid; min-height: 52px; padding: 8px 10px; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 8px; border-radius: 8px; color: var(--ink-soft); text-decoration: none; }
.housing-steps a:hover, .housing-steps a:focus-visible { color: var(--jade); background: rgba(47,116,99,.07); }
.housing-steps span { color: var(--gold-soft); font-size: 10px; }
.housing-steps b { font-size: 12px; font-weight: 650; }
.housing-workbench { display: grid; gap: 24px; min-width: 0; }
.housing-step-card { min-width: 0; padding: clamp(24px, 4vw, 44px); border: 1px solid var(--panel-line); border-radius: 18px; background: rgba(255,255,255,.68); box-shadow: 0 24px 70px rgba(28,35,31,.055); scroll-margin-top: 96px; }
.housing-step-head { display: grid; margin-bottom: 30px; grid-template-columns: 42px minmax(0,1fr); gap: 16px; }
.housing-step-head > span { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(166,70,59,.3); border-radius: 50%; color: var(--gold); font: 700 12px var(--sans); }
.housing-step-head h2 { font: 600 clamp(26px, 4vw, 36px)/1.2 var(--serif); }
.housing-step-head p:not(.eyebrow) { max-width: 840px; margin-top: 8px; color: var(--ink-mute); font-size: 13px; }
.housing-form-grid { display: grid; gap: 16px; margin-top: 17px; }
.housing-form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.housing-form-grid.four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.housing-step-card .field { display: grid; min-width: 0; gap: 7px; }
.housing-step-card .field > span { color: var(--ink-soft); font-size: 13px; }
.housing-step-card input,
.housing-step-card select,
.housing-step-card textarea { width: 100%; border: 1px solid var(--panel-line); border-radius: 7px; color: var(--ink); background: rgba(255,255,255,.75); font: 14px var(--sans); }
.housing-step-card input,
.housing-step-card select { min-height: 48px; padding: 10px 12px; }
.housing-step-card textarea { padding: 12px; resize: vertical; line-height: 1.65; }
.housing-profile-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.housing-profile-choice { display: grid; position: relative; min-width: 0; min-height: 92px; padding: 15px 16px 14px 46px; border: 1px solid var(--panel-line); border-radius: 10px; cursor: pointer; background: rgba(255,255,255,.55); }
.housing-profile-choice:has(input:checked) { border-color: rgba(47,116,99,.58); background: rgba(47,116,99,.075); }
.housing-profile-choice input { position: absolute; top: 18px; left: 16px; width: 18px; height: 18px; min-height: 0; accent-color: var(--jade); }
.housing-profile-choice b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 18px var(--serif); }
.housing-profile-choice span { color: var(--jade); font-size: 11px; }
.housing-profile-choice small { color: var(--ink-mute); font-size: 11px; }
.housing-profile-empty { padding: 17px 19px; border: 1px dashed rgba(166,70,59,.3); border-radius: 10px; color: var(--ink-soft); background: rgba(166,70,59,.045); font-size: 13px; }
.housing-profile-empty a { display: inline-flex; margin-top: 8px; color: var(--gold); font-weight: 650; }
.housing-location-panel,
.housing-ai-panel,
.housing-date-panel,
.housing-sync-entry { margin-top: 22px; padding: 18px; border: 1px solid var(--panel-line); border-radius: 11px; background: rgba(47,116,99,.035); }
.housing-location-panel > header b,
.housing-ai-panel > header b,
.housing-date-panel > header b,
.housing-sync-entry b { color: var(--ink); font: 600 19px var(--serif); }
.housing-location-panel > header p,
.housing-ai-panel > header p,
.housing-date-panel > header p,
.housing-sync-entry p { margin-top: 5px; color: var(--ink-mute); font-size: 11px; line-height: 1.65; }
.housing-location-panel > .field { margin-top: 14px; }
.housing-location-grid { display: grid; margin-top: 13px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.housing-location-actions,
.housing-ai-actions,
.housing-date-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.housing-location-actions button,
.housing-ai-actions button,
.housing-date-actions button,
#housing-query-nearby { min-height: 42px; padding: 8px 13px; border: 1px solid var(--panel-line); border-radius: 7px; color: var(--ink); background: rgba(255,255,255,.72); cursor: pointer; font: 650 12px var(--sans); }
.housing-inline-status { min-height: 20px; margin-top: 10px; color: var(--jade); font-size: 11px; }
.housing-map-links { display: flex; flex-wrap: wrap; margin-top: 10px; align-items: center; gap: 8px; }
.housing-map-links span { color: var(--ink-mute); font-size: 10px; }
.housing-map-links a { padding: 5px 8px; border: 1px solid var(--panel-line); border-radius: 999px; color: var(--jade); font-size: 10px; text-decoration: none; }
.housing-consent { display: flex; margin-top: 13px; align-items: flex-start; gap: 9px; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.housing-consent input { flex: 0 0 17px; width: 17px; height: 17px; min-height: 0; margin-top: 1px; accent-color: var(--jade); }
#housing-query-nearby { margin-top: 10px; }
.housing-nearby-results > p { margin-top: 13px; color: var(--ink-mute); font-size: 10px; }
.housing-nearby-results > div { display: grid; margin-top: 8px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.housing-nearby-results article { display: grid; padding: 10px; border: 1px solid var(--panel-line); border-radius: 8px; background: rgba(255,255,255,.45); }
.housing-nearby-results b { font-size: 11px; }
.housing-nearby-results span { color: var(--jade); font-size: 11px; }
.housing-nearby-results small { color: var(--ink-mute); font-size: 9px; }
.housing-orientation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.housing-orientation-grid article { display: grid; min-width: 0; padding: 18px; grid-template-columns: minmax(0,1fr) 128px; gap: 12px; align-items: end; border: 1px solid var(--panel-line); border-radius: 11px; background: rgba(255,255,255,.52); }
.housing-orientation-grid article > div span { display: block; font-weight: 700; }
.housing-orientation-grid article > div small { display: block; margin-top: 3px; color: var(--ink-mute); font-size: 11px; }
.housing-orientation-grid article > label { display: grid; grid-template-columns: minmax(0,1fr) 18px; align-items: center; }
.housing-orientation-grid article > label input { border-radius: 7px 0 0 7px; }
.housing-orientation-grid article > label b { display: grid; height: 48px; place-items: center; border: 1px solid var(--panel-line); border-left: 0; border-radius: 0 7px 7px 0; color: var(--ink-mute); background: rgba(255,255,255,.6); }
.housing-orientation-grid button,
.housing-plan-actions button,
.housing-primary-actions button:not(.btn-primary),
.housing-compare-actions button { min-height: 42px; padding: 8px 13px; border: 1px solid var(--panel-line); border-radius: 7px; color: var(--ink); background: rgba(255,255,255,.72); cursor: pointer; font: 650 12px var(--sans); }
.housing-orientation-grid button { grid-column: 1 / -1; width: fit-content; }
.housing-orientation-grid button:disabled { cursor: wait; opacity: .62; }
.housing-orientation-grid article > p { min-height: 20px; grid-column: 1 / -1; color: var(--jade); font-size: 11px; }
.housing-inline-note { margin-top: 15px; padding: 12px 15px; border-left: 3px solid var(--gold-soft); color: var(--ink-mute); background: rgba(128,108,79,.05); font-size: 12px; }
.housing-file-input { display: flex; min-height: 54px; padding: 11px 15px; align-items: center; justify-content: space-between; gap: 12px; border: 1px dashed rgba(47,116,99,.4); border-radius: 10px; color: var(--jade); background: rgba(47,116,99,.045); cursor: pointer; font-size: 13px; }
.housing-file-input input { width: auto; min-height: 0; padding: 0; border: 0; background: transparent; }
.housing-marker-picker { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }
.housing-marker-picker button { display: flex; min-height: 42px; padding: 6px 9px; align-items: center; gap: 6px; border: 1px solid var(--panel-line); border-radius: 8px; color: var(--ink-soft); background: rgba(255,255,255,.62); cursor: pointer; }
.housing-marker-picker button.active { border-color: rgba(47,116,99,.55); color: var(--jade); background: rgba(47,116,99,.09); }
.housing-marker-picker b { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: #fff; background: var(--jade); font-size: 10px; }
.housing-marker-picker span { font-size: 11px; }
.housing-plan-stage { display: grid; position: relative; height: clamp(320px, 55vw, 620px); margin-top: 16px; place-items: center; overflow: hidden; border: 1px solid var(--panel-line); border-radius: 13px; background:
  linear-gradient(rgba(80,90,82,.045) 1px, transparent 1px),
  linear-gradient(90deg, rgba(80,90,82,.045) 1px, transparent 1px),
  rgba(255,255,255,.5); background-size: 32px 32px; touch-action: manipulation; }
.housing-plan-stage > img { width: 100%; height: 100%; object-fit: contain; }
.housing-plan-empty { display: grid; max-width: 360px; padding: 20px; gap: 6px; text-align: center; color: var(--ink-mute); }
.housing-plan-empty b { color: var(--ink-soft); font: 600 20px var(--serif); }
.housing-plan-empty span { font-size: 12px; }
#housing-marker-layer { position: absolute; inset: 0; pointer-events: none; }
.housing-map-marker { display: grid; position: absolute; width: 34px; height: 34px; padding: 0; place-items: center; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--jade); box-shadow: 0 5px 15px rgba(26,42,35,.28); pointer-events: auto; cursor: pointer; }
.housing-map-marker b { font-size: 10px; }
.housing-map-marker small { position: absolute; top: -7px; right: -7px; display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; color: #fff; background: var(--gold); font: 700 9px var(--sans); }
.housing-plan-actions { display: flex; min-height: 50px; margin-top: 11px; align-items: center; justify-content: space-between; gap: 14px; }
.housing-plan-actions p { color: var(--ink-mute); font-size: 12px; }
.housing-plan-actions > div { display: flex; gap: 7px; }
.housing-ai-suggestions { display: grid; margin-top: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.housing-ai-suggestions label { display: grid; position: relative; padding: 11px 11px 11px 39px; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; border: 1px solid var(--panel-line); border-radius: 8px; background: rgba(255,255,255,.5); }
.housing-ai-suggestions input { position: absolute; top: 13px; left: 12px; width: 16px; height: 16px; min-height: 0; accent-color: var(--jade); }
.housing-ai-suggestions b { font-size: 11px; }
.housing-ai-suggestions span { color: var(--jade); font-size: 10px; }
.housing-ai-suggestions small { grid-column: 1 / -1; color: var(--ink-mute); font-size: 9px; }
.housing-rating-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.housing-rating-grid label { display: grid; gap: 7px; }
.housing-rating-grid label > span { color: var(--ink-soft); font-size: 12px; }
.housing-risk-checks { display: grid; margin-top: 28px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; border: 0; }
.housing-risk-checks legend { margin-bottom: 12px; color: var(--ink-soft); font-size: 13px; font-weight: 700; }
.housing-risk-checks label { display: flex; min-height: 48px; padding: 10px 11px; align-items: flex-start; gap: 8px; border: 1px solid var(--panel-line); border-radius: 8px; color: var(--ink-soft); background: rgba(255,255,255,.5); cursor: pointer; font-size: 12px; }
.housing-risk-checks label:has(input:checked) { border-color: rgba(182,67,59,.42); color: var(--red); background: rgba(182,67,59,.055); }
.housing-risk-checks input { flex: 0 0 17px; width: 17px; height: 17px; min-height: 0; margin-top: 2px; accent-color: var(--red); }
.housing-site-notes { margin-top: 18px; }
.housing-primary-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.housing-primary-actions button { min-width: 150px; }
.housing-primary-actions .btn-primary { min-height: 50px; padding-inline: 22px; }
.housing-form-error { margin-bottom: 15px; padding: 13px 16px; border: 1px solid rgba(182,67,59,.35); border-radius: 8px; color: var(--red); background: rgba(182,67,59,.06); font-size: 13px; }
.housing-save-status { min-height: 24px; margin-top: 11px; color: var(--jade); font-size: 12px; }
.housing-result { margin-top: 26px; padding-top: 27px; border-top: 1px solid var(--panel-line); }
.housing-result-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.housing-result-head h2 { font: 600 clamp(28px,4vw,40px)/1.2 var(--serif); }
.housing-result-status { padding: 7px 10px; border-radius: 999px; white-space: nowrap; font-size: 11px; font-weight: 750; }
.housing-result-status.is-stop { color: var(--red); background: rgba(182,67,59,.1); }
.housing-result-status.is-verify { color: var(--gold-soft); background: rgba(166,70,59,.09); }
.housing-result-status.is-ready { color: var(--jade); background: rgba(47,116,99,.09); }
.housing-priority-message { margin-top: 18px; padding: 16px 18px; border-left: 4px solid var(--jade); background: rgba(47,116,99,.055); }
.housing-priority-message.is-stop { border-left-color: var(--red); background: rgba(182,67,59,.055); }
.housing-priority-message.is-verify { border-left-color: var(--gold-soft); background: rgba(166,70,59,.05); }
.housing-priority-message strong { font-size: 12px; }
.housing-priority-message p { margin-top: 4px; color: var(--ink-soft); font-size: 13px; }
.housing-hard-risks { margin-top: 20px; }
.housing-hard-risks h3,
.housing-result-section h3,
.housing-comparison-guidance h3 { font: 600 21px var(--serif); }
.housing-hard-risks > div { display: grid; gap: 8px; margin-top: 10px; }
.housing-hard-risks article { padding: 13px 15px; border: 1px solid rgba(182,67,59,.25); border-radius: 8px; background: rgba(182,67,59,.045); }
.housing-hard-risks b { color: var(--red); font-size: 11px; }
.housing-hard-risks p { margin-top: 3px; color: var(--ink-soft); font-size: 12px; }
.housing-score-grid { display: grid; margin-top: 22px; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }
.housing-score-grid article { min-width: 0; padding: 15px; border: 1px solid var(--panel-line); border-radius: 10px; background: rgba(255,255,255,.52); }
.housing-score-grid span { display: block; color: var(--ink-mute); font-size: 11px; }
.housing-score-grid div { display: flex; align-items: baseline; gap: 2px; }
.housing-score-grid div b { color: var(--gold); font: 600 33px var(--serif); }
.housing-score-grid div small { color: var(--ink-mute); }
.housing-score-grid em { display: block; color: var(--jade); font-size: 11px; font-style: normal; }
.housing-score-grid p { margin-top: 9px; color: var(--ink-mute); font-size: 10px; line-height: 1.55; }
.housing-result-section { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--panel-line); }
.housing-result-section ol { display: grid; gap: 8px; margin: 12px 0 0 22px; color: var(--ink-soft); font-size: 13px; }
.housing-orientation-summary { display: grid; margin-top: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.housing-orientation-summary > div { padding: 12px 14px; border: 1px solid var(--panel-line); border-radius: 8px; }
.housing-orientation-summary span { display: block; color: var(--ink-mute); font-size: 10px; }
.housing-orientation-summary b { display: block; margin-top: 2px; font-size: 12px; }
.housing-member-results { display: grid; margin-top: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.housing-member-results article { display: grid; padding: 13px 14px; grid-template-columns: minmax(0,1fr) auto; gap: 2px 12px; border: 1px solid var(--panel-line); border-radius: 8px; }
.housing-member-results b { color: var(--gold); }
.housing-member-results small { color: var(--jade); }
.housing-member-results p { grid-column: 1 / -1; margin-top: 7px; color: var(--ink-mute); font-size: 10px; }
.housing-family-matrix table { width: 100%; min-width: 620px; border-collapse: collapse; }
.housing-family-matrix th,
.housing-family-matrix td { padding: 10px; border-bottom: 1px solid var(--panel-line); text-align: left; font-size: 11px; }
.housing-family-points { display: grid; margin-top: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.housing-family-points article { padding: 13px; border: 1px solid var(--panel-line); border-radius: 8px; }
.housing-family-points b { font-size: 11px; }
.housing-family-points ul { display: grid; gap: 5px; margin: 7px 0 0 17px; color: var(--ink-mute); font-size: 10px; }
.housing-boundary { margin-top: 24px; padding: 13px 15px; border: 1px dashed rgba(128,108,79,.3); border-radius: 8px; color: var(--ink-mute); font-size: 11px; }
.housing-detailed-report { margin-top: 24px; }
.housing-detailed-report:empty { display: none; }
.housing-next-links { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 22px; }
.housing-next-links a { color: var(--jade); font-size: 12px; font-weight: 650; }
.housing-date-results { display: grid; margin-top: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.housing-date-results label { display: grid; position: relative; padding: 12px 12px 12px 40px; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; border: 1px solid var(--panel-line); border-radius: 9px; background: rgba(255,255,255,.5); cursor: pointer; }
.housing-date-results label:has(input:checked) { border-color: rgba(47,116,99,.55); background: rgba(47,116,99,.08); }
.housing-date-results input { position: absolute; top: 14px; left: 13px; width: 16px; height: 16px; min-height: 0; accent-color: var(--jade); }
.housing-date-results span b,
.housing-date-results span small { display: block; }
.housing-date-results span b { font-size: 12px; }
.housing-date-results span small { color: var(--ink-mute); font-size: 9px; }
.housing-date-results em { color: var(--gold); font-size: 10px; font-style: normal; }
.housing-date-results p { grid-column: 1 / -1; color: var(--ink-mute); font-size: 9px; }
.housing-saved-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.housing-saved-card { min-width: 0; padding: 17px; border: 1px solid var(--panel-line); border-radius: 11px; background: rgba(255,255,255,.54); }
.housing-saved-card header { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 9px; }
.housing-saved-card input[type=checkbox] { width: 17px; height: 17px; min-height: 0; margin-top: 5px; accent-color: var(--jade); }
.housing-saved-card h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 21px var(--serif); }
.housing-saved-card header span { color: var(--ink-mute); font-size: 10px; }
.housing-saved-card .housing-card-scores { display: grid; margin-top: 13px; grid-template-columns: repeat(3,1fr); gap: 6px; }
.housing-card-scores div { padding: 8px; border-radius: 7px; background: rgba(47,116,99,.045); }
.housing-card-scores span { display: block; color: var(--ink-mute); font-size: 9px; }
.housing-card-scores b { color: var(--ink); font-size: 13px; }
.housing-saved-card footer { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }
.housing-saved-card footer button { min-height: 36px; padding: 6px 9px; border: 1px solid var(--panel-line); border-radius: 7px; color: var(--ink-soft); background: rgba(255,255,255,.68); cursor: pointer; font-size: 11px; }
.housing-saved-card footer .danger { color: var(--red); }
.housing-empty { padding: 22px; border: 1px dashed var(--panel-line); border-radius: 10px; color: var(--ink-mute); text-align: center; font-size: 13px; }
.housing-compare-actions { display: flex; margin-top: 16px; align-items: center; justify-content: space-between; gap: 12px; }
.housing-compare-actions p { color: var(--ink-mute); font-size: 12px; }
.housing-comparison { min-width: 0; max-width: 100%; margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--panel-line); }
.housing-compare-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.7fr); gap: 30px; align-items: end; }
.housing-compare-head h2 { font: 600 clamp(27px,4vw,38px)/1.2 var(--serif); }
.housing-compare-head > p { color: var(--ink-mute); font-size: 12px; }
.housing-compare-wrap { width: 100%; min-width: 0; max-width: 100%; margin-top: 20px; overflow-x: auto; overscroll-behavior-inline: contain; }
.housing-compare-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.housing-compare-table th,
.housing-compare-table td { padding: 13px 12px; border-bottom: 1px solid var(--panel-line); text-align: left; vertical-align: top; }
.housing-compare-table thead th { color: var(--ink); font: 600 16px var(--serif); }
.housing-compare-table tbody th { width: 160px; color: var(--ink-soft); font-size: 12px; }
.housing-compare-table td b,
.housing-compare-table td small,
.housing-compare-table td em { display: block; }
.housing-compare-table td b { font-size: 14px; }
.housing-compare-table td small { color: var(--ink-mute); font-size: 10px; }
.housing-compare-table td em { width: fit-content; margin-top: 5px; padding: 2px 5px; border-radius: 999px; color: var(--jade); background: rgba(47,116,99,.08); font-size: 9px; font-style: normal; }
.housing-compare-table td.is-leader { background: rgba(47,116,99,.04); }
.housing-risk-row td .is-risk { color: var(--red); }
.housing-risk-row td .is-clear { color: var(--jade); }
.housing-comparison-guidance { margin-top: 24px; padding: 19px; border: 1px solid var(--panel-line); border-radius: 10px; background: rgba(47,116,99,.045); }
.housing-comparison-guidance ol { display: grid; gap: 7px; margin: 11px 0 0 20px; color: var(--ink-soft); font-size: 12px; }
.housing-sync-entry { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.housing-sync-entry a { flex: 0 0 auto; padding: 9px 12px; border: 1px solid rgba(47,116,99,.32); border-radius: 7px; color: var(--jade); font-size: 11px; font-weight: 700; text-decoration: none; }
.housing-footer { display: flex; position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 28px 20px 52px; border-top: 1px solid var(--panel-line); justify-content: space-between; gap: 20px; color: var(--ink-mute); }
.housing-footer > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.housing-footer b { color: var(--gold); font: 600 18px var(--serif); }
.housing-footer span,
.housing-footer a { color: var(--ink-mute); font-size: 12px; text-decoration: none; }
.housing-footer a:hover { color: var(--gold); }

html[data-theme="classic"] .housing-step-card,
html[data-theme="classic"] .housing-steps,
html[data-theme="classic"] .housing-hero-compass,
html[data-theme="classic"] .housing-orientation-grid article,
html[data-theme="classic"] .housing-profile-choice,
html[data-theme="classic"] .housing-saved-card { background: rgba(16,18,23,.78); }
html[data-theme="classic"] .housing-step-card input,
html[data-theme="classic"] .housing-step-card select,
html[data-theme="classic"] .housing-step-card textarea,
html[data-theme="classic"] .housing-marker-picker button,
html[data-theme="classic"] .housing-orientation-grid button,
html[data-theme="classic"] .housing-plan-actions button,
html[data-theme="classic"] .housing-primary-actions button:not(.btn-primary),
html[data-theme="classic"] .housing-score-grid article { color: var(--ink); background: rgba(255,255,255,.04); }

@media (max-width: 1040px) {
  .housing-hero { grid-template-columns: minmax(0,1fr) 220px; gap: 35px; }
  .housing-hero-compass { width: 210px; height: 210px; padding: 22px; }
  .housing-layout { grid-template-columns: 1fr; }
  .housing-steps { display: flex; position: sticky; z-index: 20; top: 70px; overflow-x: auto; }
  .housing-steps a { flex: 0 0 auto; min-height: 42px; }
  .housing-rating-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .housing-score-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .housing-nearby-results > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 780px) {
  .housing-nav-title, .housing-nav .policy-back { display: none; }
  .housing-hero { width: min(100% - 24px,1180px); padding: 112px 0 45px; grid-template-columns: 1fr; }
  .housing-hero-compass { display: none; }
  .housing-layout { width: min(100% - 24px,1280px); gap: 14px; }
  .housing-steps { top: 64px; margin-inline: -2px; padding: 6px; border-radius: 10px; }
  .housing-steps b { display: none; }
  .housing-steps a { display: flex; min-width: 42px; padding: 7px; justify-content: center; }
  .housing-step-card { padding: 24px 18px; border-radius: 14px; }
  .housing-form-grid.two,
  .housing-form-grid.four,
  .housing-profile-list,
  .housing-orientation-grid,
  .housing-risk-checks,
  .housing-score-grid,
  .housing-saved-list,
  .housing-member-results { grid-template-columns: 1fr; }
  .housing-location-grid,
  .housing-nearby-results > div,
  .housing-ai-suggestions,
  .housing-date-results,
  .housing-family-points { grid-template-columns: 1fr; }
  .housing-orientation-grid article { grid-template-columns: minmax(0,1fr) 110px; }
  .housing-plan-stage { height: min(92vw,520px); }
  .housing-compare-head { grid-template-columns: 1fr; gap: 10px; }
  .housing-result-head,
  .housing-plan-actions,
  .housing-compare-actions { align-items: flex-start; flex-direction: column; }
  .housing-orientation-summary { grid-template-columns: 1fr; }
  .housing-footer { align-items: flex-start; flex-direction: column; }
  .housing-sync-entry { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 430px) {
  .housing-hero { width: min(100% - 16px,1180px); }
  .housing-hero h1 { font-size: clamp(36px,12vw,52px); }
  .housing-hero-notes { align-items: stretch; flex-direction: column; }
  .housing-hero-notes span { border-radius: 8px; }
  .housing-layout { width: min(100% - 12px,1280px); }
  .housing-step-card { padding: 21px 14px; }
  .housing-step-head { grid-template-columns: 35px minmax(0,1fr); gap: 10px; }
  .housing-step-head > span { width: 33px; height: 33px; }
  .housing-rating-grid { grid-template-columns: 1fr; }
  .housing-file-input { align-items: stretch; flex-direction: column; }
  .housing-primary-actions button { width: 100%; }
}
