.forecast-page { background:#f5f8f7; color:#18392e; padding-bottom:32px; }
.forecast-container { max-width:1120px; margin:0 auto; padding-inline:24px; }
.forecast-hero { background:linear-gradient(115deg,#09232d,#123c32); padding:26px 0 38px; color:#fff; }
.forecast-back { display:inline-flex; min-height:44px; align-items:center; color:#b6d7ca; font-size:12px; margin-bottom:12px; }
.forecast-eyebrow { color:#59776a; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin-bottom:8px; }
.forecast-hero .forecast-eyebrow { color:#72d8b5; }
.public-design .forecast-hero h1 { color:#fff; font-size:36px; line-height:1.2; letter-spacing:-.035em; max-width:800px; margin-bottom:14px; }
.forecast-hero > div > p:last-of-type { color:#c0d4cc; font-size:14px; line-height:1.8; max-width:650px; }
.forecast-versus { color:#78a191; font-weight:400; font-size:.65em; }
.forecast-hero-links { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.forecast-hero-links a { display:inline-flex; align-items:center; min-height:44px; padding:8px 15px; border:1px solid #476b5e; border-radius:9px; color:#d8f0e6; font-size:12px; }
.forecast-content { display:flex; flex-direction:column; gap:28px; padding-top:28px; }
.forecast-intro { display:flex; align-items:flex-start; gap:12px; color:#637c6f; font-size:12px; line-height:1.8; }
.forecast-dot { width:7px; height:7px; border-radius:50%; background:#338766; flex:none; margin-top:7px; }
.forecast-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.forecast-page h2 { font-size:21px; line-height:1.3; letter-spacing:-.02em; color:#193c2e; font-weight:700; }
.forecast-section-heading > :is(span,a) { color:#627b6d; font-size:11px; }
.forecast-record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.forecast-record { min-width:0; display:block; padding:22px; border:1px solid #dfe8e2; border-radius:16px; background:white; box-shadow:0 3px 15px #153e2e04; transition:border-color .15s,box-shadow .15s; }
.forecast-record:hover { border-color:#99c6b0; box-shadow:0 8px 24px #153e2e0b; }
.forecast-record-top { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:10px; color:#82968a; }
.forecast-tag { display:inline-flex; padding:5px 9px; border:1px solid #d8e9de; background:#eff7f2; border-radius:24px; color:#3d7457; font-size:10px; font-weight:600; }
.forecast-record h3 { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:22px 0; color:#183c2c; font-size:19px; font-weight:650; line-height:1.4; }
.forecast-record h3 small { color:#92a398; font-size:11px; font-weight:400; }
.forecast-record-dates { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.forecast-record-dates dt,.forecast-timeline dt { color:#82958a; font-size:10px; margin-bottom:5px; }
.forecast-record-dates dd { font-size:12px; color:#466451; font-variant-numeric:tabular-nums; }
.forecast-record-footer { display:flex; justify-content:space-between; margin-top:20px; padding-top:14px; border-top:1px solid #edf2ef; font-size:12px; color:#2f7050; font-weight:600; }
.forecast-pagination { margin-top:22px; }
.forecast-empty { padding:28px; border:1px dashed #cddfd2; border-radius:16px; background:white; grid-column:1/-1; }
.forecast-empty p { margin-top:12px; color:#667e6e; font-size:13px; line-height:1.8; }
.forecast-page :is(#forecast-records,#forecast-calibration) { scroll-margin-top:140px; }
.forecast-timeline { display:grid; grid-template-columns:1fr 1fr auto; gap:24px; padding:20px 24px; border:1px solid #dfe8e2; border-radius:14px; background:white; }
.forecast-timeline dd { font-size:13px; color:#355b44; font-weight:600; }
.forecast-timeline small { font-size:10px; font-weight:400; color:#85988b; }
.forecast-detail-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; }
.forecast-panel { min-width:0; padding:26px; border:1px solid #dfe8e2; border-radius:16px; background:white; box-shadow:0 3px 16px #153e2e04; }
.forecast-probabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:24px 0 18px; }
.forecast-probabilities > div { min-width:0; padding:18px 12px; background:#f7faf8; border:1px solid #e4ece7; border-radius:12px; }
.forecast-probabilities > .is-leading { background:#eaf5ef; border-color:#bcdcc8; }
.forecast-probabilities dt { color:#6d8777; font-size:11px; }
.forecast-probabilities dd { color:#254e37; font-size:32px; font-weight:700; letter-spacing:-.04em; margin:7px 0 16px; font-variant-numeric:tabular-nums; }
.forecast-probabilities dd small { font-size:15px; margin-left:2px; font-weight:500; }
.forecast-meter { display:block; height:4px; background:#dce8df; border-radius:4px; overflow:hidden; }
.forecast-meter > span { display:block; height:100%; background:#5c9e79; border-radius:4px; }
.forecast-note { color:#728477; font-size:12px; line-height:1.8; margin-top:12px; }
.forecast-text-link { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; font-size:12px; color:#2c704a; font-weight:600; }
.forecast-final-score { display:flex; flex-direction:column; align-items:center; padding:20px 0; }
.forecast-final-score strong { font-size:48px; color:#224a32; font-weight:700; letter-spacing:-.04em; }
.forecast-final-score strong span { color:#a2b5a7; font-weight:400; }
.forecast-final-score > span { font-size:11px; color:#7c9283; }
.forecast-grade { display:grid; grid-template-columns:1fr 1fr; gap:16px; border-top:1px solid #e7eee9; padding-top:16px; }
.forecast-grade dt { font-size:11px; color:#809487; }
.forecast-grade dd { color:#365e43; font-size:23px; font-weight:600; font-variant-numeric:tabular-nums; }
.forecast-pending { padding:30px 0 12px; }
.forecast-pending > span { display:block; color:#95b49f; font-size:40px; margin-bottom:14px; }
.forecast-pending h3 { font-size:16px; font-weight:600; color:#41624c; }
.forecast-pending p { color:#7c8f80; font-size:12px; line-height:1.8; margin-top:10px; }
.forecast-record-info summary { cursor:pointer; min-height:36px; font-size:13px; color:#42684e; font-weight:600; }
.forecast-record-info dl { margin:18px 0; font-size:12px; }
.forecast-record-info dl > div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid #eef2ef; }
.forecast-record-info dt { color:#819286; }
.forecast-record-info dd { overflow-wrap:anywhere; }
.forecast-digest { font-family:monospace; font-size:11px; }
@media(max-width:639px) {
 .forecast-container { padding-inline:16px; }
 .forecast-hero { padding-bottom:26px; }
 .public-design .forecast-hero h1 { font-size:28px; }
 .forecast-record-grid,.forecast-detail-grid { grid-template-columns:minmax(0,1fr); }
 .forecast-section-heading { align-items:flex-start; flex-direction:column; gap:8px; }
 .forecast-record,.forecast-panel { padding:18px; }
 .forecast-timeline { grid-template-columns:1fr; gap:14px; padding:18px; }
 .forecast-timeline > div { display:flex; justify-content:space-between; align-items:center; gap:14px; }
 .forecast-timeline dd { text-align:right; font-size:12px; }
 .forecast-page h2 { font-size:19px; }
 .forecast-probabilities { gap:6px; }
 .forecast-probabilities > div { padding:14px 8px; }
 .forecast-probabilities dd { font-size:25px; }
 .forecast-probabilities dd small { font-size:12px; }
 .forecast-record-info dl > div { grid-template-columns:1fr; gap:4px; }
}
@media(prefers-reduced-motion:reduce) { .forecast-record { transition:none; } }
