/* One type system: editorial headlines, quiet body copy, clear UI labels.
   Uses installed Noto fonts, with Chinese system fallbacks; no remote font requests. */
:root {
  --font-ui: "Noto Sans SC","Microsoft YaHei","PingFang SC","Segoe UI",sans-serif;
  --font-editorial: "Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
}
body { font-family:var(--font-ui); font-size:17px; font-weight:400; }
button,input,select,textarea { font-family:var(--font-ui); }
button,.secondary { font-size:16px; letter-spacing:.015em; }
.eyebrow { font-family:var(--font-ui);font-size:12px;font-weight:650;letter-spacing:.14em; }
.topbar h1,.chat-topbar h1,.hero h1 { font-family:var(--font-editorial);font-size:46px;font-weight:750;line-height:1.35;letter-spacing:-.025em; }
.topbar p,.chat-topbar p,.hero p { font-size:17px;font-weight:400;line-height:1.8; }
.global-menu a,.side-menu a { font-size:16px;font-weight:550; }
.global-menu a.active,.side-menu a.active { font-weight:750; }
.card h2 { font-size:28px;line-height:1.45;font-weight:750; }
.card h3 { font-size:21px;line-height:1.6;font-weight:650; }
.card p { font-weight:400; }
.paper-title { font-family:var(--font-editorial);font-size:23px;font-weight:700;line-height:1.65;letter-spacing:.005em; }
.paper-meta,.paper-item-meta,.hint,.connection-help { font-size:14px;font-weight:400;line-height:1.8; }
.paper-abstract { font-size:17px;font-weight:400;line-height:1.9; }
.detail-title { font-family:var(--font-editorial);font-size:35px;font-weight:750;line-height:1.55;letter-spacing:-.015em; }
.paper-detail { font-size:17px;line-height:1.95; }
.detail-section h3,.report-section h3,.report-title,.related-title,.analysis-title { font-size:23px;font-weight:700; }
.connection-heading h3 { font-size:25px;font-weight:700; }
.daily-stages strong { font-size:18px;font-weight:700; }.daily-stages p { font-size:15px;font-weight:400; }
.daily-title,.hub-daily .daily-title { font-family:var(--font-editorial);font-size:32px;font-weight:750;line-height:1.6; }
.daily-original,.daily-hint { font-size:14px;line-height:1.85;font-weight:400; }
.daily-label { font-size:21px;font-weight:750; }.daily-label small { font-size:14px;font-weight:450; }
.daily-sections p { font-size:17px;font-weight:400;line-height:1.95; }

/* News: the main story is visibly different from the supporting headlines. */
.news-home .edition-heading h1 { font-family:var(--font-editorial);font-size:56px;line-height:1.24;font-weight:800;letter-spacing:-.045em; }
.news-home .edition-heading h1 span { font-family:var(--font-ui);font-size:18px;line-height:1.75;font-weight:400;letter-spacing:.015em; }
.news-home .edition-date { font-family:var(--font-ui);font-size:14px;font-weight:400; }
.news-home .edition-date span:first-child { font-size:15px;font-weight:550; }
.news-home .edition-status p { font-size:14px;font-weight:450;line-height:1.85; }
.news-home .focus-title h2 { font-family:var(--font-editorial);font-size:35px;line-height:1.5;font-weight:750;letter-spacing:-.015em;text-wrap:balance; }
.news-home .focus-heading { padding-top:23px;padding-bottom:23px; }
.news-home .focus-source { font-size:14px;font-weight:450;line-height:1.8;margin-bottom:12px; }
.news-home .focus-topline { font-size:13px;font-weight:500; }
.news-home .focus-badge { font-size:14px;font-weight:700;letter-spacing:.025em; }
.news-home .section-title h2 { font-family:var(--font-ui);font-size:30px;font-weight:750;line-height:1.45;letter-spacing:-.02em; }
.news-home .rail-heading h2 { font-size:25px;font-weight:750;line-height:1.5; }
.news-home .headline-item h3 { font-family:var(--font-ui);font-size:20px;line-height:1.7;font-weight:600;letter-spacing:0; }
.news-home .headline-top { font-size:14px;font-weight:400; }.news-home .headline-top strong { font-weight:500; }
.news-home .news-card h3 { font-family:var(--font-editorial);font-size:24px;font-weight:700;line-height:1.6;letter-spacing:0;text-wrap:pretty; }
.news-home .news-card p,.news-home .related-story p,.news-home .lead-dek p { font-family:var(--font-ui);font-size:17px;font-weight:400;line-height:1.9; }
.news-home .news-kicker { font-size:14px;line-height:1.8;font-weight:400; }.news-home .news-kicker strong { font-weight:600; }
.news-home .related-story h3 { font-family:var(--font-editorial);font-size:24px;font-weight:700;line-height:1.65; }
.news-home .related-match { font-size:14px;font-weight:500; }
.news-home .news-card-footer,.news-home .filter-note,.news-home .section-intro { font-size:14px;font-weight:400;line-height:1.85; }
.news-home .section-intro { font-size:16px; }
.news-home .sidebar-panel h2 { font-family:var(--font-ui);font-size:23px;font-weight:700;line-height:1.6; }
.news-home .routine-time { font-family:var(--font-ui);font-size:39px;font-weight:800;line-height:1.2;letter-spacing:-.035em;font-variant-numeric:tabular-nums; }
.news-home .routine-time small { font-size:14px;letter-spacing:0;font-weight:400;line-height:1.8; }
.news-home .routine-row { font-size:15px; }.news-home .routine-row>strong { font-weight:650; }
.news-home .sidebar-help { font-size:14px;line-height:1.9;font-weight:400; }
.news-home .archive-item { font-family:var(--font-editorial);font-size:18px;line-height:1.85;font-weight:600; }
.news-home .archive-item span { font-family:var(--font-ui);font-size:14px;font-weight:400; }
.news-home .tool-grid h3 { font-family:var(--font-editorial);font-size:29px;line-height:1.5;font-weight:750; }
.news-home .tool-grid p { font-size:17px;line-height:1.9;font-weight:400; }
.news-home .daily-panel .daily-title { font-family:var(--font-editorial);font-size:32px;font-weight:750;line-height:1.6; }
.news-home .daily-panel .daily-sections p { font-size:17px;line-height:1.95; }
.news-home .news-cta,.news-home .edition-status button.news-cta { font-size:16px;font-weight:750;letter-spacing:.025em; }
.news-home .news-filters button { font-size:15px;font-weight:600; }.news-home .news-filters button.active { font-weight:750; }

/* Conversation: one input, readable responses, restrained context labels. */
.chat-topbar h1 { font-size:46px; }
.context-card h3 { font-size:21px;font-weight:700;line-height:1.5; }
.context-body { font-size:16px;font-weight:400;line-height:1.85; }
.paper-item-title { font-size:15px;font-weight:450;line-height:1.8; }.paper-item.selected .paper-item-title { font-weight:650; }
.chat-empty-title { font-family:var(--font-editorial);font-size:35px;font-weight:750;line-height:1.5; }
.chat-empty-text { font-size:17px;font-weight:400;line-height:1.9; }
.chat-empty { padding-top:38px;padding-bottom:38px; }
.chat-message { font-size:18px;line-height:1.9; }
.chat-message-content { font-family:var(--font-ui);font-size:18px;font-weight:400;line-height:1.95; }
.chat-message-content strong { font-weight:700; }
.chat-message-role { font-size:14px;font-weight:650;letter-spacing:.025em; }
.chat-meta { font-size:13px;font-weight:400; }
.chat-input-row textarea { font-size:17px;font-weight:400;line-height:1.8; }
.chat-input-row button { font-size:17px;font-weight:750; }

@media(min-width:1001px) {
  .chat-workspace { align-items:start;min-height:0; }
  .chat-main { height:clamp(390px,calc(100dvh - 330px),760px);min-height:0; }
  .chat-messages { min-height:0;padding:20px 24px; }
  .chat-empty { margin:auto 0;padding:12px 18px;gap:8px; }
  .chat-empty-icon { font-size:20px;padding:6px 13px; }
  .chat-empty-title { font-size:30px;line-height:1.5;margin-top:4px; }
  .chat-empty-text { font-size:16px;line-height:1.85; }
  .chat-input-area { padding:14px 20px 18px; }
  .chat-input-row textarea { max-height:110px; }
  .chat-workspace .paper-list { max-height:clamp(130px,calc(100dvh - 610px),340px); }
}

@media(max-width:1080px) {
  .news-home .edition-heading h1 { font-size:48px; }
  .news-home .edition-heading h1 span { display:block;margin:12px 0 0; }
  .news-home .focus-title h2 { font-size:31px; }
}
@media(max-width:700px) {
  .topbar h1,.chat-topbar h1,.hero h1 { font-size:35px; }
  .news-home .edition-heading h1 { font-size:43px; }
  .news-home .edition-heading h1 span { font-size:17px; }
  .news-home .focus-title h2 { font-size:28px;line-height:1.55; }
  .news-home .section-title h2 { font-size:26px; }
  .news-home .news-card h3,.news-home .related-story h3 { font-size:23px; }
  .news-home .headline-item h3 { font-size:19px; }
  .news-home .daily-panel .daily-title,.daily-title,.detail-title { font-size:28px; }
  .chat-empty-title { font-size:29px; }
  .chat-message,.chat-message-content { font-size:17px; }
}
