/* news.css - "The Wire": page-scoped stylesheet for the /news family only
   (front, day editions, take pages, section feeds). Loaded AFTER site.css via
   base.html.j2's extra_head block, hashed like every other asset. Budget <=8KB
   (test_news_css_under_budget). Every color comes from site.css :root tokens -
   dark mode is inherited, nothing redefined here. Rubrics: research = violet,
   packages/tools = green; AA rule holds (ink-on-tint, never raw accents on
   text). Structure is hairline rules and density, radii <= --r-sm: the news
   section reads as the terminal room of the same building.

   0.3.0 (S7 restyle): news-index/news-day/news-research/news-packages set
   main_class=feedcol and reuse site.css's shared feed vocabulary (.card,
   .cardmeta, .kicker, .newsgrid, .listhead, .rowlist, .rowi, .actions/.act)
   instead of duplicating card/grid/typography rules here - this file now
   holds only what's genuinely news-specific: the two-rubric stamp/accent
   system, mono masthead/meta lines, and news-item.html.j2's long-form
   reading styles. news-item stays on main_class=wrap (one document, not a
   feed) so it never needs .card/.kicker. Equal-specificity overrides here
   win ties against site.css by load order (see diff summary for the ones
   that matter: .card.nw-spot-r/.card.nw-card-r's border-left, .rowi's). */

/* --- masthead: the counts ARE the thesis ---------------------------------- */
.nw-masthead{border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:8px}
.nw-masthead h1{font-family:var(--serif);font-weight:700;letter-spacing:-.02em;font-size:clamp(1.5rem,3.4vw,2rem);margin:8px 0 4px}
.nw-counts{font:500 clamp(1.125rem,2.4vw,1.625rem)/1.35 var(--mono);color:var(--ink);letter-spacing:-0.01em;margin:10px 0 6px;text-wrap:balance}
.nw-counts b{font-weight:700}
.nw-counts .sep{color:var(--muted);padding:0 2px}
.nw-thesis{font-size:0.9375rem;color:var(--ink-soft);margin:0;max-width:46rem}

/* --- rubric stamps (the ONE badge vocabulary this family uses - the shared
   .badge's 4-way skill/pkg/res/blog taxonomy doesn't fit a 2-rubric r/p
   model, so front/day/item/section feeds all keep using this instead) ----- */
.nw-stamp{display:inline-flex;align-items:center;font:650 0.6875rem/1 var(--mono);text-transform:uppercase;letter-spacing:0.07em;padding:4px 9px;border-radius:5px}
.nw-stamp-r{background:var(--violet-t);color:var(--violet-ink)}
.nw-stamp-p{background:var(--green-t);color:var(--green-ink)}

/* --- spotlight duo: shared .newsgrid (2-col) + .card, tinted per rubric --- */
.newsgrid .card{margin-bottom:0}
.card.nw-spot-r{background:var(--violet-t);border-left:3px solid var(--violet)}
.card.nw-spot-p{background:var(--green-t);border-left:3px solid var(--green)}
/* spotlight tiles duplicate the nw-sig count line below them - hide (0.3.1) */
.nw-spot-r .tile,.nw-spot-p .tile{display:none}
.nw-sig{display:block;font:500 0.75rem/1.5 var(--mono);margin-top:10px}
.nw-spot-r .nw-sig{color:var(--violet-ink)}
.nw-spot-p .nw-sig{color:var(--green-ink)}

/* --- the river: shared .rowlist/.rowi, thin rubric accent on the left ----- */
.rowlist{list-style:none;margin:0;padding:0}
.nw-daterule{display:flex;align-items:center;gap:12px;font:650 0.75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:28px 0 2px}
.nw-daterule a{color:var(--ink-soft)}
.nw-daterule::after{content:"";flex:1;height:1px;background:var(--line)}
.rowi{border-left:2px solid transparent}
.nw-rowi-r{border-left-color:var(--violet)}
.nw-rowi-p{border-left-color:var(--green)}
.nw-meta{display:block;font:500 0.75rem/1.6 var(--mono);color:var(--muted);margin-top:3px}
.nw-meta time{color:inherit}
/* older-day condensation "read more" link (daily-cadence fix A) - one row, one rule */
.nw-more{display:block;margin:14px 0 0;font-weight:650;font-size:0.8125rem;color:var(--violet-d)}

/* --- section rails (front page) + cross-link row (section feeds) --------- */
.nw-rails{margin-top:30px}
.nw-rail{display:block;padding:15px 18px;border-radius:var(--r-sm);font-weight:650;font-size:0.9375rem}
.nw-rail:hover{text-decoration:none;outline:1px solid currentColor}
.nw-rail-r{background:var(--violet-t);color:var(--violet-ink)}
.nw-rail-p{background:var(--green-t);color:var(--green-ink)}
.nw-rail small{display:block;font:500 0.75rem/1.5 var(--mono);margin-top:3px;opacity:0.85}
.linkrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:0.8125rem;font-weight:600}
.linkrow a{color:var(--violet-d)}

/* --- section-feed masthead band -------------------------------------------- */
.nw-band{padding:16px 20px 14px;border-radius:var(--r-sm);margin:8px 0 6px}
.nw-band-r{background:var(--violet-t);border-left:3px solid var(--violet)}
.nw-band-p{background:var(--green-t);border-left:3px solid var(--green)}
.nw-band h1{font-family:var(--serif);font-weight:700;margin:4px 0 4px;font-size:clamp(1.375rem,3vw,1.75rem)}
.nw-band p{margin:0;font-size:0.9375rem}
.nw-band-r p{color:var(--violet-ink)}
.nw-band-p p{color:var(--green-ink)}

/* --- day edition: grouped .card excerpt cards, shared .listhead group heads */
.listhead.nw-ghead-r h2{color:var(--violet-ink)}
.listhead.nw-ghead-p h2{color:var(--green-ink)}
.nw-cards{list-style:none;margin:0;padding:0}
.card.nw-card-r{border-left:3px solid var(--violet)}
.card.nw-card-p{border-left:3px solid var(--green)}

/* --- take page (the product) ------------------------------------------------- */
.nw-take h1{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2rem);max-width:var(--read)}
.nw-byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:500 0.8125rem/1.6 var(--mono);color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0;margin:16px 0 10px;max-width:var(--read)}
.nw-byline a{color:var(--ink-soft)}
.nw-body{max-width:var(--read);font-size:1.0625rem;line-height:1.7;color:var(--ink)}
.nw-body p{margin:0 0 1em}
.nw-body h2{font-size:1.1875rem;margin:1.5em 0 0.4em}
.nw-verdict{max-width:var(--read);font-size:1.0625rem;font-weight:650;line-height:1.5;color:var(--ink);padding:10px 0 10px 16px;border-left:3px solid var(--line);margin:26px 0}
.nw-verdict-r{border-left-color:var(--violet)}
.nw-verdict-p{border-left-color:var(--green)}
.nw-limits{max-width:var(--read);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 18px 13px;margin:26px 0}
.nw-limits h2{font:650 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:0 0 7px}
.nw-limits p{font-size:0.875rem;line-height:1.6;color:var(--ink-soft);margin:0}
.nw-refs{max-width:var(--read);margin:26px 0 0}
.nw-refs h2{font:650 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:0 0 7px}
.nw-refs ul{list-style:none;margin:0;padding:0;font-size:0.9375rem}
.nw-refs li{padding:5px 0;border-bottom:1px solid var(--line)}
.nw-ring{display:flex;flex-wrap:wrap;gap:8px 20px;max-width:var(--read);border-top:2px solid var(--ink);padding-top:13px;margin-top:36px;font-weight:600;font-size:0.8125rem}
.nw-ring a{color:var(--ink-soft)}

/* --- pagination + scroll sentinel -------------------------------------------- */
.nw-pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:26px 0 0;font:500 0.8125rem/1 var(--mono)}
.nw-pager a,.nw-pager span[aria-current]{padding:6px 11px;border:1px solid var(--line);border-radius:6px;color:var(--ink-soft)}
.nw-pager a:hover{border-color:var(--violet);text-decoration:none}
.nw-pager span[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.nw-sentinel{height:1px}

/* --- responsive --------------------------------------------------------------- */
@media (max-width:680px){
.nw-counts{font-size:1.0625rem}
}
