/* news.css: light "terminal" news theme layered on top of the site's styles.css.
   Colors come from styles.css (#1b5e20 menu, #2e7d32 accent, #39ff14 lime, #0d1f0e footer). */
body.news-page {
  --nw-bg: #f5f8f3;
  --nw-card: #ffffff;
  --nw-ink: #1d261d;
  --nw-muted: #55615a;
  --nw-line: #d4e4d4;
  --nw-green: #1b5e20;
  --nw-green-2: #2e7d32;
  --nw-lime: #39ff14;
  --nw-dark: #0d1f0e;
  --nw-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  background: var(--nw-bg);
  color: var(--nw-ink);
  font-size: 17px;
  line-height: 1.55;
}
.news-page a { color: var(--nw-green-2); }
.news-page a:hover, .news-page a:focus { color: var(--nw-green); text-decoration: underline; }
.news-page .site-nav a, .news-page .site-nav a:hover { text-decoration: none; }
.news-page .site-nav a[aria-current="page"] { text-decoration: underline; }
.nw-skip { position: absolute; left: -9999px; }
.nw-skip:focus { left: 1rem; top: 4.5rem; z-index: 2000; background: #fff; padding: .5rem 1rem; }
.nw-wrap { max-width: 1180px; margin: 0 auto; padding: 0 1.25rem; }
.nw-prompt { font-family: var(--nw-mono); color: var(--nw-green-2); font-weight: 700; }



/* Masthead */
.nw-masthead { background: linear-gradient(180deg, #ffffff 0%, #eef6ee 100%); border-bottom: 1px solid var(--nw-line); }
.nw-masthead__inner { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; padding-top: 1.6rem; padding-bottom: 1.3rem; }
.nw-wordmark { margin: 0; font: 700 clamp(2.4rem, 6vw, 3.6rem)/1 var(--nw-mono); color: var(--nw-dark); letter-spacing: -.01em; }
.nw-wordmark .nw-prompt { color: var(--nw-green-2); }
.nw-cursor { color: var(--nw-lime); text-shadow: 0 0 8px rgba(57,255,20,.7); animation: nw-blink 1.1s steps(1) infinite; margin-left: .05em; }
@keyframes nw-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .nw-cursor { animation: none; } }
.nw-tagline { margin: .55rem 0 0; color: var(--nw-muted); max-width: 34rem; }
.nw-stamp { text-align: right; font-family: var(--nw-mono); font-size: .82rem; color: var(--nw-muted); }
.nw-stamp p { margin: .1rem 0; }
.nw-stamp__date { font: 700 1rem/1.3 var(--font-heading); color: var(--nw-dark); }
.nw-stamp time { color: var(--nw-dark); font-weight: 700; }
.nw-live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--nw-lime); box-shadow: 0 0 0 3px rgba(57,255,20,.25); margin-right: .45rem; vertical-align: middle; }


/* Section nav */
.nw-secnav { position: sticky; top: var(--header-height); z-index: 900; background: var(--nw-dark); border-bottom: 2px solid var(--nw-lime); }
.nw-secnav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; }
.nw-secnav ul::-webkit-scrollbar { display: none; }
.nw-secnav a { display: block; padding: .6rem .8rem; white-space: nowrap; font: 600 .82rem/1.2 var(--nw-mono); color: #d8f2d8 !important; text-decoration: none !important; }
.nw-secnav a:hover, .nw-secnav a:focus { color: var(--nw-lime) !important; }
.nw-secnav__members { color: #b9d9b9 !important; }

/* Sections */
.nw-main { padding-top: 1.5rem; padding-bottom: 3rem; }
.nw-section { padding: 1.6rem 0 1.4rem; border-bottom: 1px solid var(--nw-line); scroll-margin-top: calc(var(--header-height) + 50px); }
.nw-section__head { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.nw-section__head h2 { margin: 0; font: 700 1.45rem/1.2 var(--font-heading); color: var(--nw-dark); }
.nw-section__icon { width: 44px; height: 44px; flex: 0 0 auto; }
.nw-section__blurb { margin: .1rem 0 0; color: var(--nw-muted); font-size: .88rem; }


/* Cards */
.nw-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.nw-card {
  display: flex; flex-direction: column; background: var(--nw-card); border: 1px solid var(--nw-line); border-radius: 14px; overflow: hidden;
  box-shadow: 0 1px 2px rgba(13,31,14,.05), 0 6px 18px rgba(13,31,14,.05); transition: box-shadow .2s, transform .2s;
}
.nw-card:hover { box-shadow: 0 0 0 1px rgba(57,255,20,.6), 0 10px 26px rgba(13,31,14,.10); transform: translateY(-1px); }
.nw-card__art { aspect-ratio: 16 / 9; background: #e6f1e6; border-bottom: 1px solid var(--nw-line); }
.nw-card__art img { width: 100%; height: 100%; object-fit: cover; }
.nw-card__body { padding: .85rem 1rem 1rem; display: flex; flex-direction: column; flex: 1; }
.nw-card__meta { margin: 0 0 .45rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.nw-tag { font: 700 .68rem/1 var(--nw-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--nw-green); background: #e3f2e4; border: 1px solid #b9dcbb; padding: .3rem .45rem; border-radius: 4px; }
.nw-tag--members { color: var(--nw-lime); background: var(--nw-dark); border-color: var(--nw-dark); }
.nw-label { font: 700 .66rem/1 var(--nw-mono); letter-spacing: .08em; padding: .3rem .45rem; border-radius: 4px; color: #fff; }
.nw-label--breaking { background: #b3261e; }
.nw-label--developing { background: #a84f00; } /* 5.5:1 with white */
.nw-label--unconfirmed { background: #5d5d66; }
.nw-card__headline { margin: 0 0 .4rem; font: 700 1.08rem/1.3 var(--font-heading); color: var(--nw-dark); }
.nw-card__summary { margin: 0 0 .75rem; color: #3b463e; font-size: .93rem; }
.nw-card__foot { margin: auto 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .75rem; font: .76rem/1.4 var(--nw-mono); color: var(--nw-muted); padding-top: .55rem; border-top: 1px dashed var(--nw-line); }
.nw-card__foot a { font-weight: 700; }
.nw-correction { margin: .6rem 0 0; padding: .45rem .6rem; font-size: .82rem; background: #fff8e8; border-left: 3px solid #d39b00; color: #4d3a00; border-radius: 0 6px 6px 0; }
.nw-correction strong { font: 700 .68rem/1 var(--nw-mono); letter-spacing: .08em; text-transform: uppercase; margin-right: .3rem; }

/* Top stories: lead + briefing sidebar */
.nw-top { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1.4rem; align-items: start; }
.nw-top__main { display: grid; gap: 1.1rem; }
.nw-card--lead { display: grid; grid-template-columns: 1.25fr 1fr; }
.nw-card--lead .nw-card__art { aspect-ratio: auto; min-height: 300px; border-bottom: 0; border-right: 1px solid var(--nw-line); }
.nw-card--lead .nw-card__body { padding: 1.3rem 1.4rem; }
.nw-card--lead .nw-card__headline { font-size: 1.7rem; line-height: 1.2; }
.nw-card--lead .nw-card__summary { font-size: 1.02rem; }
.nw-briefing { position: sticky; top: calc(var(--header-height) + 60px); background: var(--nw-dark); color: #cfe5cf; border-radius: 14px; padding: 1.1rem 1.1rem 1rem; border: 1px solid rgba(57,255,20,.4); box-shadow: 0 0 22px rgba(57,255,20,.12); }
.nw-briefing h3 { margin: 0 0 .7rem; font: 700 1.1rem/1.2 var(--nw-mono); color: #fff; }
.nw-briefing .nw-prompt { color: var(--nw-lime); }
.nw-briefing ol { margin: 0; padding: 0; list-style: none; counter-reset: b; }
.nw-briefing li { counter-increment: b; padding: .6rem 0 .6rem 2rem; border-top: 1px solid rgba(255,255,255,.08); position: relative; }
.nw-briefing li::before { content: counter(b, decimal-leading-zero); position: absolute; left: 0; top: .65rem; font: 700 .85rem/1 var(--nw-mono); color: var(--nw-lime); }
.nw-briefing .nw-tag { display: inline-block; margin-bottom: .3rem; background: transparent; color: #8fd18f; border-color: rgba(143,209,143,.4); }
.nw-briefing li a { display: block; color: #f0f7f0 !important; font: 600 .92rem/1.35 var(--font-heading); }
.nw-briefing li a:hover { color: var(--nw-lime) !important; }
.nw-briefing__sched { margin: .75rem 0 0; font: .74rem/1.5 var(--nw-mono); color: #9cb89c; }

/* Markets strip (text only) */
.nw-markets { background: var(--nw-dark); border-radius: 12px; padding: .7rem 1rem; margin-bottom: 1rem; font-family: var(--nw-mono); }
.nw-markets ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.nw-markets li { font-size: .86rem; color: #e8f5e8; white-space: nowrap; }
.nw-mk__name { color: #9cc79c; }
.nw-mk__val { font-weight: 700; }
.nw-mk__chg--up { color: var(--nw-lime); }
.nw-mk__chg--down { color: #ff8a80; }
.nw-markets__asof { margin: .45rem 0 0; font-size: .72rem; color: #8aa68a; }

/* Ongoing stories strip */
.nw-ongoing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.nw-ongoing__item { display: grid; grid-template-columns: 110px 1fr; gap: .8rem; align-items: start; background: var(--nw-card); border: 1px solid var(--nw-line); border-left: 4px solid var(--nw-green-2); border-radius: 12px; padding: .8rem; }
.nw-ongoing__item img { width: 110px; height: 62px; object-fit: cover; border-radius: 8px; border: 1px solid var(--nw-line); }
.nw-ongoing__item h3 { margin: 0 0 .25rem; font: 700 1rem/1.25 var(--font-heading); color: var(--nw-dark); }
.nw-ongoing__item p { margin: 0 0 .4rem; font-size: .86rem; color: #3b463e; }
.nw-ongoing__item .nw-card__foot { grid-column: 1 / -1; }

/* Members-only Local (Option A) */
.nw-option-flag { margin: 0 0 .7rem; font: 700 .74rem/1.45 var(--nw-mono); color: #6a5600; background: #fff7d6; border: 1px dashed #d8bf5a; border-radius: 6px; padding: .45rem .7rem; }
.nw-local__card { display: grid; grid-template-columns: 340px 1fr; overflow: hidden; border-radius: 16px; border: 1px solid rgba(57,255,20,.45);
  background: linear-gradient(155deg, rgba(27,94,32,.95) 0%, #0d1f0e 55%, #0b120b 100%); color: #cfe5cf; box-shadow: 0 0 26px rgba(57,255,20,.15); }
.nw-local__art { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
.nw-local__body { padding: 1.3rem 1.5rem; }
.nw-local__body h2 { margin: .1rem 0 .4rem; font: 700 1.4rem/1.25 var(--font-heading); color: #fff; }
.nw-local__body .nw-prompt { color: var(--nw-lime); }
.nw-local__body p { margin: 0 0 .6rem; }
.nw-local__locked { display: grid; gap: .45rem; margin: .8rem 0 1rem; filter: blur(2px); opacity: .55; }
.nw-local__locked span { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #6fa36f, #2e5a2e); }
.nw-local__locked span:nth-child(2) { width: 82%; }
.nw-local__locked span:nth-child(3) { width: 64%; }
.nw-local__cta { display: flex; flex-wrap: wrap; gap: .6rem; }
.news-page .nw-local__cta a { text-decoration: none; }

/* Sourcing note */
.nw-sourcing { margin-top: 1.6rem; padding: 1.1rem 1.3rem; background: #fff; border: 1px solid var(--nw-line); border-radius: 14px; }
.nw-sourcing h2 { margin: 0 0 .5rem; font: 700 1.1rem/1.3 var(--font-heading); color: var(--nw-dark); }
.nw-sourcing ul { margin: 0 0 .75rem; padding-left: 1.2rem; font-size: .92rem; color: #3b463e; }
.nw-sourcing li { margin-bottom: .3rem; }
.nw-ai-note { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; padding-top: .7rem; border-top: 1px dashed var(--nw-line); font-size: .9rem; font-style: italic; color: var(--nw-muted); }
.nw-ai-note .nw-option-inline { margin-left: 0; font-style: normal; }
.nw-error { padding: 2rem; text-align: center; }

/* Responsive */
@media (max-width: 1024px) {
  .nw-top { grid-template-columns: 1fr; }
  .nw-briefing { position: static; }
  .nw-grid, .nw-ongoing { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .news-page .site-nav { background: var(--menu-bg-scroll); }
  .nw-masthead__inner { flex-direction: column; align-items: flex-start; padding-top: 1.2rem; }
  .nw-stamp { text-align: left; }
  .nw-card--lead { grid-template-columns: 1fr; }
  .nw-card--lead .nw-card__art { aspect-ratio: 12 / 5.2; min-height: 0; border-right: 0; border-bottom: 1px solid var(--nw-line); }
  .nw-card--lead .nw-card__headline { font-size: 1.35rem; }
  .nw-local__card { grid-template-columns: 1fr; }
  .nw-local__art { aspect-ratio: 16 / 9; height: auto; }
}
@media (max-width: 600px) {
  body.news-page { font-size: 16px; }
  .nw-grid, .nw-ongoing { grid-template-columns: 1fr; }
  .nw-section__head h2 { font-size: 1.25rem; }


}

/* Keep the site's white header links (beat .news-page a) */
.news-page .site-nav a:not(.nav-btn), .news-page .nav-help-details > summary { color: #fff; }
.news-page .site-nav .nav-help-links a { color: #c8f5c8 !important; }
.nw-local__art { object-position: left center; }

/* Byline / review status (Oct 9 approval model) */
.nw-byline { margin: 0 0 .7rem; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .45rem; font: 600 .74rem/1.35 var(--nw-mono); color: var(--nw-muted); }
.nw-byline__who::before { content: "✎ "; color: var(--nw-green-2); }
.nw-byline--pending .nw-byline__who { color: #4a564d; }
.nw-byline__sep { color: #9aa79d; }
.nw-byline__ok { display: inline-flex; align-items: center; gap: .3rem; color: var(--nw-green); background: #e6f6e3; border: 1px solid #b6deb3; padding: .15rem .45rem .15rem .25rem; border-radius: 999px; }
.nw-check { width: 14px; height: 14px; flex: 0 0 auto; }
.nw-check circle { fill: var(--nw-green-2); }
.nw-check path { fill: none; stroke: var(--nw-lime); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nw-credits { font-style: normal; border-top: 0; padding-top: .3rem; }
.nw-mk__chg--flat { color: #d8e6d8; }
.nw-markets__note { margin: .2rem 0 0; font-size: .72rem; color: #a9c2a9; font-style: italic; }

/* Adapt the grid to how many cards a section has (real feeds often have 1-2). */
.nw-grid--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nw-grid--n1 { grid-template-columns: 1fr; }
.nw-grid--n1 .nw-card { flex-direction: row; }
.nw-grid--n1 .nw-card__art { flex: 0 0 38%; aspect-ratio: auto; min-height: 200px; border-bottom: 0; border-right: 1px solid var(--nw-line); }
.nw-grid--n1 .nw-card__body { padding: 1rem 1.25rem; }
.nw-grid--n1 .nw-card__headline { font-size: 1.25rem; }
@media (max-width: 600px) {
  .nw-grid--n2 { grid-template-columns: 1fr; }
  .nw-grid--n1 .nw-card { flex-direction: column; }
  .nw-grid--n1 .nw-card__art { flex: none; aspect-ratio: 16 / 9; min-height: 0; border-right: 0; border-bottom: 1px solid var(--nw-line); }
}
/* Single-card rows: show the whole art (no crop) and center it in the art column. */
.nw-grid--n1 .nw-card__art { display: flex; align-items: center; background: linear-gradient(135deg, #eef7ee, #d6ead7); }
.nw-grid--n1 .nw-card__art img { height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
/* Long market entries (e.g. "$103 a barrel (just under)") must wrap on phones. */
.nw-markets li { white-space: normal; }
.nw-mk__name, .nw-mk__val, .nw-mk__chg { white-space: nowrap; }
@media (max-width: 600px) {
  .nw-markets ul { flex-direction: column; gap: .3rem; }
  .nw-mk__val, .nw-mk__chg { white-space: normal; }
}
.nw-error { padding: 1rem 1.2rem; border: 1px dashed #b7c4b8; border-radius: 8px; background: #f6faf6; color: #2b3a2c; }
.nw-error a { color: #1b5e20; font-weight: 700; }
.nw-empty { color: var(--nw-muted); font-style: italic; margin: .2rem 0 1rem; }
.nw-masthead { padding-top: var(--header-height); }
/* 043: unconfirmed stories */
.nw-label--unconfirmed { text-transform: none; letter-spacing: .04em; }
.nw-label--awaiting { color: #0d1f0e; background: #f3e2a0; text-transform: none; letter-spacing: .02em; }
.nw-label--analysis { color: #fff; background: var(--nw-green); text-transform: none; letter-spacing: .04em; }
.nw-label--opinion,
.nw-label--rereview { color: var(--nw-ink); background: transparent; border: 1px solid var(--nw-line); text-transform: none; letter-spacing: .02em; }
.news-page .footer-disclaimer { margin: 0 auto 0.85rem; max-width: 36rem; font-size: 0.82rem; line-height: 1.5; }
.nw-confirm-note { margin: -.1rem 0 .5rem; padding: .35rem .55rem; font-size: .82rem; color: #3e3e46; background: #f1f1f4; border-left: 3px solid #5d5d66; border-radius: 0 6px 6px 0; }
.nw-card[data-status="unconfirmed"] { border-style: dashed; border-color: #b9b9c2; }
/* 044: ongoing lines carry the review byline / status label */
.nw-ongoing__item .nw-byline { font-size: .74rem; margin: .1rem 0 .45rem; }
.nw-ongoing__item .nw-card__meta { margin: 0 0 .3rem; }

/* ===== 046: Upcoming Election box (own section right after Top Stories on all screens) ===== */
.nw-elx { background: var(--nw-card); border: 1px solid var(--nw-line); border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 1px rgba(57,255,20,.08); }
.nw-elx__bar { display: flex; align-items: center; gap: .4rem; background: var(--nw-dark); color: #cfe5cf; font: 700 .8rem/1 var(--nw-mono); padding: .55rem .8rem; border-bottom: 2px solid var(--nw-lime); }
.nw-elx__bar .nw-prompt { color: var(--nw-lime); }
.nw-elx__label { margin: 0; padding: .5rem .8rem; background: #fff4d6; border-bottom: 1px solid #f0d58a; color: #6a4a00; font: 700 .8rem/1.3 var(--nw-mono); }
.nw-elx__label::before { content: "⚠ "; }
.nw-elx__body { padding: .75rem .85rem .8rem; }
.nw-elx__head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.nw-elx h3 { margin: 0; font: 700 1.05rem/1.25 var(--font-heading); color: var(--nw-dark); }
.nw-elx__count { margin: 0; font: .78rem/1.2 var(--nw-mono); color: var(--nw-muted); }
.nw-elx__count span { font-weight: 700; color: var(--nw-green); background: #e3f2e4; border: 1px solid #b9dcbb; border-radius: 4px; padding: .12rem .35rem; }
.nw-elx__grid { margin: .6rem 0 .2rem; display: grid; gap: .5rem; }
.nw-elx__row { display: grid; grid-template-columns: 4.2rem minmax(0,1fr); gap: .5rem; padding-top: .5rem; border-top: 1px dashed var(--nw-line); }
.nw-elx__row dt { font: 700 .72rem/1.4 var(--nw-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--nw-green); }
.nw-elx__row dd { margin: 0; display: grid; gap: .15rem; }
.nw-elx__now { font: .76rem/1.35 var(--nw-mono); color: var(--nw-muted); }
.nw-elx__call { font: 600 .9rem/1.35 var(--font-heading); color: var(--nw-dark); }
.nw-elx__conf { font: 600 .7rem/1.3 var(--nw-mono); color: var(--nw-muted); }
.nw-elx__conf--low { color: #8a5a00; }
.nw-elx__conf--medium { color: #4a6a1a; }
.nw-elx__conf--high { color: var(--nw-green); }
.nw-elx__gov { margin: .5rem 0 0; padding-top: .5rem; border-top: 1px dashed var(--nw-line); font-size: .82rem; color: #3b463e; }
.nw-elx__sub { margin: .7rem 0 .3rem; font: 700 .7rem/1 var(--nw-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--nw-green-2); }
.nw-elx__races { margin: 0; padding: 0; list-style: none; display: grid; gap: .2rem; }
.nw-elx__races li { font-size: .8rem; line-height: 1.35; color: #3b463e; padding-left: 1rem; position: relative; }
.nw-elx__races li::before { content: ">"; position: absolute; left: 0; font: 700 .78rem/1.35 var(--nw-mono); color: var(--nw-green-2); }
.nw-elx__weekly p { margin: 0; font-size: .86rem; line-height: 1.45; color: var(--nw-ink); }
.nw-elx__weekly .nw-elx__upd { margin-top: .3rem; font: .72rem/1.3 var(--nw-mono); color: var(--nw-muted); }
.nw-elx .nw-byline { margin: .6rem 0 0; }
.nw-elx__src { margin: 0; padding-left: 1.2rem; font-size: .82rem; }
.nw-elx__src li { margin: .15rem 0; }
.nw-elx__date { font: .7rem/1 var(--nw-mono); color: var(--nw-muted); white-space: nowrap; }
.nw-elx__disc { margin: .7rem 0 0; padding-top: .55rem; border-top: 1px dashed var(--nw-line); font-size: .72rem; font-style: italic; color: var(--nw-muted); }
.nw-elx__cols { display: grid; gap: 0 1.2rem; }
/* Editor's forecast panel (staged Oct 9): visually separate from the ratings summary. */
.nw-elx__ed { margin: .8rem 0 0; padding: .6rem .75rem .65rem; border: 2px solid var(--nw-dark); border-left-width: 6px; border-radius: 10px; background: #f6f8f6; }
.nw-elx__ed-by { margin: 0 0 .4rem; font: 700 .8rem/1.3 var(--nw-mono); letter-spacing: .02em; color: var(--nw-dark); }
.nw-elx__ed-grid { margin: 0; display: grid; gap: .35rem; }
.nw-elx__ed-grid > div { display: grid; grid-template-columns: 4.2rem minmax(0,1fr); gap: .5rem; }
.nw-elx__ed-grid dt { font: 700 .72rem/1.4 var(--nw-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--nw-dark); }
.nw-elx__ed-grid dd { margin: 0; font: 600 .9rem/1.35 var(--font-heading); color: var(--nw-ink); overflow-wrap: anywhere; }
.nw-elx__ed-upd { margin: .4rem 0 0; font: .72rem/1.3 var(--nw-mono); color: var(--nw-muted); }

/* Forecast counts (Oct 12). Inline SVG bars from details.forecast_counts.
   Segment colors are original, not Fox or NBC map colors.
   Text is at least 13px so it holds at a 390px viewport. */
.nw-fc { margin: .9rem 0 .15rem; max-width: 100%; }
.nw-fc__chamber { margin: 0 0 .95rem; }
.nw-fc__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem .75rem; margin: 0 0 .3rem; }
.nw-fc__name { margin: 0; font: 700 15px/1.3 var(--font-heading, "Onest", "Inter", sans-serif); color: var(--nw-ink); }
.nw-fc__src { margin: 0; font: 400 13px/1.4 var(--font-body, "Inter", sans-serif); color: var(--nw-muted); overflow-wrap: anywhere; }
.nw-fc__scale { position: relative; padding-top: 1.2rem; }
.nw-fc__majnum { position: absolute; top: 0; transform: translateX(-50%); font: 700 13px/1 var(--nw-mono, "JetBrains Mono", ui-monospace, monospace); color: var(--nw-ink); white-space: nowrap; }
.nw-fc__track { position: relative; height: 36px; border-radius: 6px; overflow: hidden; background: #d5ddd4; }
.nw-fc__svg { display: block; width: 100%; height: 36px; }
.nw-fc__seg--solid-d { fill: #1a4e86; }
.nw-fc__seg--likely-d { fill: #3d6fa3; }
.nw-fc__seg--lean-d { fill: #8eb4d6; }
.nw-fc__seg--toss { fill: #9aa09a; }
.nw-fc__seg--lean-r { fill: #e0aaa4; }
.nw-fc__seg--likely-r { fill: #a85a54; }
.nw-fc__seg--solid-r { fill: #8a3834; }
.nw-fc__seg--rest { fill: transparent; }
.nw-fc__maj { fill: none; stroke: #102018; stroke-width: 4px; vector-effect: non-scaling-stroke; }
.nw-fc__maj--core { stroke: #f7faf7; stroke-width: 2px; }
.nw-fc__counts { position: absolute; inset: 0; display: flex; pointer-events: none; }
.nw-fc__n { display: flex; align-items: center; justify-content: center; min-width: 0; overflow: hidden; font: 700 13px/1 var(--nw-mono, "JetBrains Mono", ui-monospace, monospace); color: transparent; }
.nw-fc__n--solid { color: #f7faf7; }
.nw-fc__n--mid { color: #102018; }
.nw-fc__line { margin: .4rem 0 0; font: 400 13px/1.45 var(--font-body, "Inter", sans-serif); color: var(--nw-ink); }
.nw-fc__key { white-space: nowrap; }
.nw-fc__sep { color: var(--nw-muted); }
.nw-fc__key::before { content: ""; display: inline-block; width: .7em; height: .7em; margin-right: .35em; border-radius: 2px; vertical-align: -0.05em; }
.nw-fc__key--solid-d::before { background: #1a4e86; }
.nw-fc__key--likely-d::before { background: #3d6fa3; }
.nw-fc__key--lean-d::before { background: #8eb4d6; }
.nw-fc__key--toss::before { background: #9aa09a; }
.nw-fc__key--lean-r::before { background: #e0aaa4; }
.nw-fc__key--likely-r::before { background: #a85a54; }
.nw-fc__key--solid-r::before { background: #8a3834; }
.nw-fc__notes { margin-top: .35rem; padding-top: .7rem; border-top: 1px solid var(--nw-line); }
.nw-fc__calc, .nw-fc__caption { margin: 0; font: 400 13px/1.45 var(--font-body, "Inter", sans-serif); color: var(--nw-ink); overflow-wrap: anywhere; }
.nw-fc__caption { margin-top: .45rem; }
.nw-fc__mark { background: #fff4d6; color: #6a4a00; font-weight: 700; padding: 0 .2em; border-radius: 2px; }
.nw-ed { margin: .65rem 0 .75rem; padding: .6rem .75rem .65rem; border: 2px solid var(--nw-dark); border-left-width: 6px; border-radius: 10px; background: #f6f8f6; }
.nw-ed__by { margin: 0 0 .35rem; font: 700 .8rem/1.3 var(--nw-mono); letter-spacing: .02em; color: var(--nw-dark); }
.nw-ed__body { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .92rem; line-height: 1.45; color: var(--nw-ink); }
.nw-ed__upd { margin: .4rem 0 0; font: .72rem/1.3 var(--nw-mono); color: var(--nw-muted); }
/* Wide main column: compact horizontal layout (Senate | House side by side). */
@media (min-width: 769px) {
  .nw-elx__body { padding: .8rem 1rem .85rem; }
  .nw-elx__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1.2rem; }
  .nw-elx__cols { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .nw-elx__src { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; padding-left: 0; list-style: none; counter-reset: s; }
  .nw-elx__src li { margin: 0; counter-increment: s; }
  .nw-elx__src li::before { content: counter(s) ". "; color: var(--nw-muted); font: .78rem/1 var(--nw-mono); }
}
/* Election section: placed right after Top Stories in the markup on all screen sizes (no CSS reordering). */
/* Oct 10: bigger Ongoing thumbnails (desktop 192x108 above the text; phones full-width 16:9) */
.nw-ongoing__item { grid-template-columns: 1fr; }
.nw-ongoing__item img { width: 192px; height: 108px; }
@media (max-width: 768px) {
  .nw-ongoing__item img { width: 100%; height: auto; aspect-ratio: 16 / 9; }
}

/* 046c members-mode Local teaser */
.nw-local-lock { border: 1px dashed rgba(57,255,20,.45); border-radius: 14px; padding: 1rem 1.2rem; background: rgba(57,255,20,.04); }
.nw-local-lock p { margin: 0 0 .6rem; }

/* devnote-20261011: developing-story note, styled like the UNCONFIRMED confirm note */
.nw-dev-note { margin: .1rem 0 .55rem; padding: .35rem .55rem; font-size: .82rem; color: #4d3a00; background: #fff6e5; border-left: 3px solid #b26a00; border-radius: 0 6px 6px 0; }
