/* Newsroom composition. Shared tokens, chrome, and typography live in site.css. */
.newsroom .masthead { padding:32px 0 22px; }
.newsroom-logo { display:block; width:min(560px,100%); height:auto; }
.newsroom button:disabled { opacity:.55; cursor:wait; }
.newsroom [hidden] { display:none!important; }
.workspace { padding:0 0 24px; }
.news-error { margin:0 0 20px; font-size:12px; color:var(--muted); }
.browse-controls { position:relative; display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); margin-bottom:24px; }
.front-page-nav { flex-shrink:0; min-height:44px; padding:10px 12px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font:600 13px var(--sans); cursor:pointer; }
.front-page-nav[aria-pressed="true"] { border-bottom-color:var(--accent); color:var(--ink); }
.coverage-pulse summary::after { content:''; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); }
.coverage-pulse { margin-left:auto; flex-shrink:0; }
.coverage-pulse summary { display:flex; align-items:center; gap:7px; min-height:44px; padding:10px 4px 10px 8px; color:var(--ink); font:600 13px var(--sans); cursor:pointer; list-style:none; }
.pulse-icon { flex-shrink:0; width:24px; height:24px; padding:3px; color:#f7ff00; background:#151515; border-radius:50%; }
.coverage-pulse summary::-webkit-details-marker { display:none; }
.coverage-pulse summary::after { margin:0 3px 3px 2px; }
.coverage-pulse[open] summary { color:var(--ink); }
.coverage-pulse[open] summary::after { transform:rotate(225deg); margin-top:6px; }
.pulse-period { color:var(--muted); font-size:11px; font-weight:400; }
.coverage-pulse-panel { position:absolute; top:calc(100% + 8px); right:0; z-index:10; width:min(420px,100%); padding:18px; border:1px solid var(--line); border-radius:10px; background:var(--bg); box-shadow:0 12px 32px #0003; }
.coverage-pulse-title { margin:0; font:600 13px/1.4 var(--sans); }
.coverage-pulse-title span { font-weight:400; color:var(--muted); margin-left:10px; }
.coverage-pulse-lead,.coverage-pulse-note { margin:0; font-size:12px; color:var(--muted); }
.coverage-pulse-lead { margin-top:6px; }
.coverage-pulse-note { margin-top:12px; font-size:11px; line-height:1.5; }
.coverage-pulse-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; margin-top:12px; }
.coverage-pulse-chip { display:flex; align-items:center; gap:8px; min-width:0; min-height:44px; padding:8px 4px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--body); text-align:left; font:12px var(--sans); cursor:pointer; }
.coverage-pulse-chip:hover,.coverage-pulse-chip[aria-pressed="true"] { background:var(--panel); color:var(--accent); }
.coverage-pulse-chip-label { font-weight:700; }
.coverage-pulse-chip-count { font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; margin-left:auto; }
.pulse-all-coverage { display:block; width:100%; min-height:44px; margin-top:8px; padding:8px 4px; border:0; background:transparent; color:var(--ink); text-align:left; font:600 12px var(--sans); cursor:pointer; }
.pulse-all-coverage:hover { background:var(--panel); color:var(--accent); }
.coverage-pulse-placeholder { grid-column:1/-1; height:44px; background:var(--panel); border-radius:6px; }
.eyebrow { color:var(--muted); font:11px/1.5 var(--sans); letter-spacing:.08em; text-transform:uppercase; }
.front-page-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; border-bottom:2px solid var(--muted); padding-bottom:18px; }
.front-page h1,.section-heading h1 { margin:6px 0 0; font:400 clamp(36px,4vw,54px)/1.1 var(--serif); }
.front-page-date { color:var(--muted); font-size:12px; }
.description { color:var(--muted); margin:16px 0 22px; font-size:14px; }
.front-page-feed,.feed { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
.front-page-feed { margin-top:20px; }
.front-page-story,.story { min-width:0; padding:22px 0; border-bottom:1px solid var(--line); --topic-color:var(--accent); }
.front-page-story:first-child,.feed>.story:first-child { grid-column:1/-1; padding-top:4px; padding-bottom:26px; }
.story-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px; color:var(--muted); font-size:11px; }
.topic { color:var(--topic-color); }
.front-page-story h2,.story h2 { font:650 24px/1.2 var(--sans); letter-spacing:-.02em; margin:12px 0; overflow-wrap:anywhere; }
.front-page-story:first-child h2,.feed>.story:first-child h2 { font-size:clamp(28px,3vw,40px); max-width:900px; }
.front-page-story h2 a:hover,.story h2 a:hover,.story-footer a:hover { color:var(--topic-color); }
.front-page-story p,.story p { color:var(--body); font-size:14px; line-height:1.65; margin:0; }
.story ::selection,.story::selection { background:var(--topic-color); color:#151515; }
.story-footer { display:flex; justify-content:space-between; align-items:start; gap:14px; margin-top:20px; color:var(--muted); font-size:11px; }
.story-footer a { flex-shrink:0; min-height:28px; }
.story-media { aspect-ratio:16/9; overflow:hidden; border-radius:8px; margin-bottom:18px; background:var(--panel); }
.story-media img { display:block; width:100%; height:100%; object-fit:cover; }
.front-page-story:first-child:has(.story-media) { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
.front-page-story:first-child .story-media { grid-column:2; grid-row:1/5; margin:0; align-self:center; }
.stale-badge { display:inline-flex; gap:4px; padding:2px 6px; border:1px solid var(--line); border-radius:4px; color:var(--accent); font-size:10px; }
.message-center-story { padding:20px!important; border:1px solid #334763; border-radius:10px; background:linear-gradient(135deg,#202938,var(--panel)); margin:10px 0; }
.message-center-badge { display:inline-flex; align-items:center; gap:6px; color:#87bfff; }
.message-center-badge svg { width:15px; height:15px; }
.microsoft-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.microsoft-filter button { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:6px; color:var(--body); background:var(--panel); font:12px var(--sans); cursor:pointer; }
.microsoft-filter button[aria-pressed="true"] { border-color:#60a5fa; color:#87bfff; }
.tools { display:flex; gap:12px; margin-bottom:12px; }
.news-search { flex:1; min-width:0; }
.news-search input { width:100%; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--ink); padding:10px 14px; font:14px var(--sans); }
.briefing-status { margin:0 0 12px; font-size:12px; color:var(--muted); }
#load-more { display:flex; margin:24px auto; }
.empty { padding:36px 24px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.empty h2 { font:30px/1.2 var(--serif); margin:10px 0; }
.empty p { color:var(--muted); }
.empty-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.feed-note { color:var(--muted); font-size:12px; margin:24px 0 0; }
.newsroom-explore { display:flex; flex-wrap:wrap; align-items:center; gap:16px; border-top:1px solid var(--line); padding:24px 0; }
.newsroom-explore p { margin:0 auto 0 0; color:var(--body); font:24px var(--serif); }
.skeleton-line { height:10px; background:var(--hover); border-radius:4px; margin:12px 0; }
.skeleton-title .skeleton-line { height:24px; }
.newsroom :is(button,input,select,summary):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:700px) {
  .newsroom .masthead { padding:24px 0 16px; }
  .newsroom-logo { width:min(420px,100%); }
  .browse-controls { gap:8px; margin-bottom:20px; }
  .front-page-nav { font-size:14px; padding-inline:8px; }
  .coverage-pulse summary { font-size:13px; padding-left:2px; }
  .pulse-period { display:none; }
  .front-page-heading { flex-direction:column; align-items:start; gap:10px; }
  .front-page-feed,.feed { grid-template-columns:1fr; }
  .front-page-story:first-child:has(.story-media) { display:block; }
  .front-page-story:first-child .story-media { margin-bottom:18px; }
  .front-page-story h2,.story h2 { font-size:24px; }
  .tools { gap:8px; }
  #clear { font-size:12px; padding:10px; }
}
