:root { color-scheme:light; --ink:#1c2420; --muted:#68736d; --line:#dfe5e1; --paper:#f5f7f5; --surface:#fff; --surface-muted:#f8faf8; --card:var(--surface); --accent:#246b4a; --green:var(--accent); --amber:#986515; --red:#a23d3d; --status-good:#2f7653; --status-warn:#a16d1b; --status-bad:#ad4646; --radius:10px; --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px; --heat-0:#edf1ee; --heat-1:#d5e6dc; --heat-2:#9fc8b0; --heat-3:#5d9b79; --heat-4:#236646; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif; }
a { color:var(--green); }
.topbar { position:sticky; z-index:100; top:0; min-height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 4vw; background:rgba(245,247,245,.76); color:var(--muted); -webkit-backdrop-filter:blur(14px) saturate(125%); backdrop-filter:blur(14px) saturate(125%); }
.topbar::after { position:absolute; top:100%; right:0; left:0; height:12px; background:linear-gradient(to bottom,rgba(28,36,32,.035),transparent); content:""; pointer-events:none; }
.brand { display:inline-flex; align-items:center; flex:0 0 auto; color:var(--ink); text-decoration:none; }
.brand img { display:block; width:auto; height:38px; }
.topbar nav { display:flex; align-items:center; gap:24px; }.topbar nav a { color:#4f5c55; text-decoration:none; }.topbar nav a:hover { color:var(--accent); }
main { width:min(1240px,92vw); margin:36px auto 72px; }
.hero { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:24px; }
h1,h2,p { margin-top:0; } h1 { font-size:clamp(28px,4vw,44px); line-height:1.15; margin-bottom:10px; } h2 { font-size:19px; }
.eyebrow { color:var(--green); font-size:12px; letter-spacing:.14em; font-weight:800; }
.inbox { width:min(500px,45vw); } .inbox label { display:block; font-weight:700; margin-bottom:6px; }
.inbox div { display:flex; } input { flex:1; min-width:0; border:1px solid #bcc7c1; padding:11px 12px; border-radius:7px 0 0 7px; font:inherit; }
button { border:0; background:var(--green); color:white; padding:0 18px; border-radius:0 7px 7px 0; font-weight:700; cursor:pointer; }
button:disabled { opacity:.55; cursor:wait; }
.button { display:inline-flex; min-height:40px; align-items:center; justify-content:center; border:0; border-radius:7px; padding:9px 16px; background:var(--green); color:white; text-decoration:none; font:inherit; font-weight:700; cursor:pointer; }
.button.secondary { background:#e5eee9; color:#154d33; }.button.ghost { background:white; color:var(--ink); border:1px solid var(--line); }.button.warn-button { background:#9a6512; }.button.danger-button { background:#9f2f2f; color:white; }.button.danger-button:disabled { background:#d8cccc; color:#715d5d; cursor:not-allowed; }
.cards { display:grid; grid-template-columns:repeat(9,minmax(100px,1fr)); gap:10px; margin-bottom:24px; }
.cards article { background:var(--card); border:1px solid var(--line); border-top:3px solid #839189; border-radius:7px; padding:13px; }
.cards article.good { border-top-color:var(--green); } .cards article.warn { border-top-color:var(--amber); } .cards article.bad { border-top-color:var(--red); }
.cards span { display:block; color:var(--muted); font-size:12px; } .cards strong { font-size:25px; }
.panel,.detail { background:var(--card); border:1px solid var(--line); border-radius:9px; margin-top:18px; overflow:hidden; }
.panel-title { display:flex; justify-content:space-between; align-items:baseline; padding:18px 20px 10px; } .panel-title span { color:var(--muted); }
.table-wrap { overflow:auto; } table { border-collapse:collapse; width:100%; white-space:nowrap; } th,td { border-top:1px solid var(--line); padding:10px 13px; text-align:left; vertical-align:top; } th { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.05em; background:#fafbfa; }
.article-title { white-space:normal; min-width:300px; max-width:600px; } .article-title a { color:var(--ink); text-decoration:none; font-weight:600; } .article-title a:hover { color:var(--green); }
.article-filters { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:12px; padding:10px 20px 18px; border-top:1px solid var(--line); background:#fafbfa; }
.article-filters label { color:#46524c; font-size:12px; font-weight:700; }
.article-filters input,.article-filters select { display:block; width:100%; min-height:40px; margin-top:5px; border:1px solid #bcc7c1; border-radius:7px; padding:8px 10px; background:white; color:var(--ink); font:inherit; }
.article-filters .filter-keyword { grid-column:span 2; }.filter-actions { display:flex; align-items:end; gap:8px; }.filter-actions .button { flex:1; }
.article-result-summary { padding:0 20px 12px; color:var(--muted); font-size:12px; }
.pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; padding:16px 20px; border-top:1px solid var(--line); }
.pagination a,.pagination strong,.pagination .disabled { display:inline-flex; min-width:34px; min-height:34px; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:6px; padding:5px 10px; text-decoration:none; }
.pagination strong { border-color:var(--green); background:var(--green); color:white; }.pagination .disabled { color:#9aa39e; background:#f3f5f4; }.page-numbers { display:flex; align-items:center; gap:5px; }.page-gap { padding:0 3px; color:var(--muted); }.page-status { color:var(--muted); font-size:12px; }
.badge { display:inline-block; padding:2px 7px; border-radius:4px; background:#e8ece9; font-size:11px; font-weight:800; }
.badge.healthy,.badge.full,.badge.active,.badge.auto_configurable,.badge.primary { background:#dff1e7; color:var(--green); } .badge.stale,.badge.partial,.badge.degraded,.badge.testing,.badge.needs_adapter,.badge.fallback { background:#fff0cf; color:var(--amber); } .badge.error,.badge.failed { background:#fae1e1; color:var(--red); }.badge.disabled,.badge.archived,.badge.unknown,.badge.draft,.badge.section { background:#e8ece9; color:#4b5751; }
.back { text-decoration:none; }.detail { max-width:1000px; margin:10px auto; }.detail>header,.body { padding:30px clamp(20px,5vw,65px); }.detail>header { border-bottom:1px solid var(--line); }.subtitle { color:var(--muted); font-size:18px; }.source-link { margin:0; }.article-detail-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; margin-top:18px; }.article-save-form { margin:0; }
.metadata { display:grid; grid-template-columns:repeat(4,1fr); margin:0; border-bottom:1px solid var(--line); }.metadata div { padding:13px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.metadata .wide { grid-column:span 4; }.metadata dt { color:var(--muted); font-size:11px; text-transform:uppercase; }.metadata dd { margin:4px 0 0; overflow-wrap:anywhere; }.body p { font-family:Georgia,"Noto Serif SC",serif; font-size:17px; line-height:1.9; }.empty { color:var(--muted); }.extracted-meta { border-bottom:1px solid var(--line); }.extracted-meta pre { overflow:auto; background:#f5f7f5; padding:15px; border-radius:5px; }
code { overflow-wrap:anywhere; white-space:normal; }
.compact { align-items:center; }.narrow { width:min(100%,980px); margin:0 auto; }.card { background:var(--card); border:1px solid var(--line); border-radius:9px; }.form-card { padding:24px; }.form-card>label,.form-grid label,.endpoint-card>label { display:block; color:#46524c; font-weight:700; }.input-row { display:flex; margin-top:8px; }.input-row input { min-height:46px; }.help,small { color:var(--muted); }.hidden { display:none!important; }.panel-body { padding:20px; }.stars { color:#b47608; letter-spacing:.05em; }
.action-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }.notice { margin:12px 0; padding:12px 15px; border-radius:7px; }.good-notice { background:#dff1e7; color:var(--green); }.bad-notice { background:#fae1e1; color:var(--red); }
.source-cards { grid-template-columns:repeat(9,minmax(105px,1fr)); }.cards strong.small { font-size:14px; }.cards strong.date { font-size:14px; white-space:nowrap; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.form-grid input,.form-grid select,.form-grid textarea,.endpoint-card input,.endpoint-card select { display:block; width:100%; border:1px solid #bcc7c1; border-radius:7px; margin-top:6px; padding:10px 12px; background:white; font:inherit; }.form-grid .wide { grid-column:1/-1; }.compact-grid { margin:12px 0; }.check { display:flex!important; align-items:center; gap:8px; }.check input { display:inline-block; width:auto; margin:0; }
.endpoint-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.endpoint-card,.endpoint-review { border:1px solid var(--line); border-radius:8px; padding:16px; }.endpoint-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }.endpoint-card .action-row { margin-top:13px; }.endpoint-msg { min-height:22px; margin:10px 0 0; color:var(--muted); }
.endpoint-group-summary { display:flex; flex-wrap:wrap; gap:10px; }.endpoint-group-summary>div { display:flex; gap:16px; align-items:center; padding:10px 14px; border:1px solid var(--line); border-radius:7px; background:#fafbfa; }.endpoint-group-summary span { color:var(--muted); font-size:13px; }
.collection-tree { list-style:none; margin:10px 0 0; padding-left:0; }.collection-tree-root { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; margin-top:16px; }.collection-tree .collection-tree { margin:7px 0 0 13px; padding-left:12px; border-left:1px solid var(--line); }.collection-node { min-width:0; margin:7px 0; }.collection-tree-root>.collection-node { margin:0; }.collection-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:var(--surface-muted); }.collection-row>div:first-child { display:flex; min-width:0; align-items:center; gap:7px; }.collection-row small { white-space:nowrap; }.collection-endpoints { display:grid; gap:6px; margin:6px 0 0 13px; }.collection-actions { position:relative; flex:0 0 auto; }.collection-actions>summary { border-radius:5px; padding:3px 7px; color:var(--muted); cursor:pointer; font-size:11px; list-style:none; }.collection-actions>summary::-webkit-details-marker { display:none; }.collection-actions[open]>summary { background:#e7ece9; color:var(--ink); }.collection-actions>div { position:absolute; z-index:4; top:calc(100% + 5px); right:0; display:flex; width:max-content; gap:6px; padding:8px; border:1px solid var(--line); border-radius:7px; background:white; box-shadow:0 8px 24px rgba(24,45,35,.14); }.collection-node .button { min-height:29px; padding:4px 8px; font-size:11px; }.endpoint-disclosure { overflow:hidden; border:1px solid var(--line); border-radius:7px; background:white; }.endpoint-disclosure>summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; cursor:pointer; list-style:none; }.endpoint-disclosure>summary::-webkit-details-marker { display:none; }.endpoint-disclosure>summary::after { content:'展开'; flex:0 0 auto; color:var(--muted); font-size:10px; }.endpoint-disclosure[open]>summary { border-bottom:1px solid var(--line); background:#fafbf9; }.endpoint-disclosure[open]>summary::after { content:'收起'; }.endpoint-disclosure>summary>span { display:flex; align-items:center; gap:6px; }.endpoint-disclosure>summary>small { margin-left:auto; white-space:nowrap; }.compact-endpoint-card { border:0; border-radius:0; padding:13px; }.compact-endpoint-card .compact-grid { gap:10px; }.unassigned-endpoints { display:grid; gap:7px; margin-top:12px; }.simple-source-state { margin-top:16px; padding:16px; border:1px dashed #aebbb4; border-radius:8px; background:var(--surface-muted); }.simple-source-state p { margin:6px 0 0; color:var(--muted); }.discovery-panel>summary { display:flex; justify-content:space-between; gap:16px; }.discovery-panel>summary span { color:var(--muted); font-size:12px; font-weight:400; }
.wizard .steps { display:grid; grid-template-columns:repeat(5,1fr); padding:0; margin:24px 0; list-style:none; border-bottom:1px solid var(--line); }.steps li { padding:10px 5px; color:var(--muted); text-align:center; font-size:12px; }.steps li.current { color:var(--green); border-bottom:3px solid var(--green); font-weight:800; }.wizard-step { display:none; }.wizard-step.active { display:block; }.wizard-actions { display:flex; justify-content:space-between; margin-top:20px; }.check-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.check-grid p { padding:9px 12px; margin:0; background:#f4f6f3; border-radius:6px; }.metadata.simple { grid-template-columns:repeat(4,1fr); margin:18px 0; border:1px solid var(--line); }.endpoint-choices { display:grid; gap:8px; }.endpoint-choices label,.endpoint-review { display:block; background:#fafbfa; cursor:pointer; }.endpoint-choices label { border:1px solid var(--line); border-radius:7px; padding:12px; }.metric-row { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.metric-row div { padding:14px; background:#f4f6f3; border-radius:7px; }.metric-row span { display:block; color:var(--muted); font-size:12px; }.metric-row strong { font-size:22px; }.test-articles article { padding:12px 0; border-top:1px solid var(--line); }.test-articles article p { margin:4px 0 0; color:var(--muted); }.ai-panel { border-color:#cbdad2; }.ai-result { margin-top:14px; }.success-card { padding:50px 24px; text-align:center; border:1px solid #bcd7c8; border-radius:10px; background:#f5fbf7; }.success-icon { display:grid; width:60px; height:60px; place-items:center; margin:0 auto 18px; border-radius:50%; background:var(--green); color:white; font-size:32px; }
@media (max-width:1000px) { .cards { grid-template-columns:repeat(3,1fr); }.metadata { grid-template-columns:repeat(2,1fr); }.metadata .wide { grid-column:span 2; }.article-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .topbar { align-items:flex-start; gap:10px; padding-block:12px; }.topbar nav { gap:10px; flex-wrap:wrap; justify-content:flex-end; }.hero { display:block; }.hero .action-row,.hero>.button { margin-top:18px; }.inbox { width:100%; margin-top:22px; }.cards { grid-template-columns:repeat(2,1fr); }.metadata { display:block; }.form-grid,.endpoint-list,.article-filters,.collection-tree-root { grid-template-columns:1fr; }.collection-row { align-items:flex-start; }.collection-row>div:first-child { flex-wrap:wrap; }.endpoint-disclosure>summary { align-items:flex-start; flex-wrap:wrap; }.endpoint-disclosure>summary>small { width:100%; margin-left:0; }.article-filters .filter-keyword { grid-column:auto; }.pagination { justify-content:space-between; }.page-numbers { order:5; width:100%; justify-content:center; }.wizard .steps { grid-template-columns:1fr; }.steps li { display:none; }.steps li.current { display:block; }.check-grid,.metric-row { grid-template-columns:1fr 1fr; } main { width:94vw; margin-top:20px; } }

/* Dashboard activity */
.dashboard-intro,.page-intro { margin-bottom:var(--space-6); }.dashboard-intro { max-width:720px; }.dashboard-title { display:grid; gap:3px; margin:0; font-family:Georgia,"Noto Serif SC","Songti SC",STSong,serif; line-height:1.25; }.dashboard-title-cn { font-size:clamp(26px,3vw,34px); font-weight:600; letter-spacing:.02em; }.dashboard-title-en { font-size:clamp(16px,1.7vw,20px); font-weight:500; letter-spacing:.015em; }.page-intro h1 { letter-spacing:-.025em; }.dashboard-intro p:last-child,.page-intro p:last-child { color:var(--muted); font-size:15px; }
.section-heading,.result-heading,.group-heading,.overview-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-5); }.section-heading h2,.result-heading h2,.group-heading h2,.overview-heading h2 { margin-bottom:4px; }.section-heading p,.result-heading p,.group-heading p { margin:0; color:var(--muted); }.section-heading>a { align-self:center; text-decoration:none; font-weight:700; }
.today-source-activity { overflow:hidden; margin:0 0 var(--space-5); border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.today-source-activity-summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); padding:22px 24px; cursor:pointer; list-style:none; }.today-source-activity-summary::marker,.today-source-activity-summary::-webkit-details-marker { display:none; content:""; }.today-source-activity[open]>.today-source-activity-summary { border-bottom:1px solid var(--line); background:#f8faf8; }.today-source-activity-heading { min-width:220px; }.today-source-activity-heading h2 { margin:0 0 3px; font-size:20px; }.today-source-activity-heading p { margin:0 0 8px; color:var(--muted); }.today-source-activity-heading time { color:var(--muted); font-size:12px; }.today-source-activity-summary-meta { display:flex; align-items:center; gap:var(--space-4); }.today-source-totals { display:flex; align-items:baseline; justify-content:flex-end; flex-wrap:wrap; gap:4px 9px; color:var(--muted); white-space:nowrap; }.today-source-totals strong { color:var(--accent); font-size:24px; letter-spacing:-.03em; }.today-source-totals i { color:#a2aca6; font-style:normal; }.today-source-activity-body { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr); gap:0; padding:20px 24px 24px; }.today-source-activity-body h3 { margin:0 0 12px; color:var(--accent); font-size:15px; }.today-source-activity-body h3 span { font-weight:600; }.today-source-updated { min-width:0; padding-right:28px; }.today-source-quiet { min-width:0; padding-left:28px; border-left:1px solid var(--line); }.today-source-updated-list,.today-source-quiet-list { margin:0; padding:0; list-style:none; }.today-source-updated-list { display:grid; gap:1px; counter-reset:source-rank; }.today-source-updated-list li { display:grid; grid-template-columns:24px minmax(150px,1fr) minmax(90px,1.35fr) 54px; align-items:center; gap:10px; min-height:35px; border-bottom:1px solid #edf1ee; }.today-source-updated-list li:last-child { border-bottom:0; }.today-source-rank { color:var(--muted); font-size:12px; }.today-source-updated-list a { overflow:hidden; color:var(--ink); text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }.today-source-updated-list a:hover,.today-source-updated-list a:focus-visible { color:var(--accent); }.today-source-updated-list strong { text-align:right; font-size:12px; white-space:nowrap; }.today-source-bar { display:block; overflow:hidden; height:7px; border-radius:999px; background:#edf1ee; }.today-source-bar i { display:block; height:100%; min-width:2px; border-radius:inherit; background:var(--accent); }.today-source-quiet-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }.today-source-quiet-list li { display:grid; grid-template-columns:10px minmax(0,1fr) 18px; align-items:center; gap:8px; min-height:35px; border-bottom:1px solid #edf1ee; color:var(--muted); }.today-source-quiet-list li>a { display:block; min-width:0; overflow:hidden; padding:6px 0; color:inherit; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }.today-source-quiet-list a:hover,.today-source-quiet-list a:focus-visible { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }.today-source-quiet-list a:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:2px; }.today-source-quiet-list strong { text-align:right; color:var(--muted); font-size:12px; }.today-source-quiet-dot { width:9px; height:9px; border:1px solid #87948d; border-radius:50%; }.today-source-none { display:block!important; min-height:0!important; padding:18px 0; border:0!important; color:var(--muted); }.today-source-activity-summary:hover .collapse-control { border-color:#abc5b6; background:#fbfdfc; box-shadow:0 2px 7px rgba(31,62,46,.08); }.today-source-activity[open] .collapse-label::before { content:"收起"; }.today-source-activity[open] .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.today-source-activity-summary:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }
.activity-panel,.recent-section,.library-results,.source-overview { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }.activity-panel { padding:var(--space-5); }.activity-heading { align-items:center; }.year-select { display:flex; align-items:center; gap:8px; }.year-select label { color:var(--muted); font-size:12px; }.year-select select { min-height:38px; border:1px solid var(--line); border-radius:7px; padding:6px 28px 6px 10px; background:white; font:inherit; }
.activity-summary { margin:var(--space-4) 0 var(--space-5); color:var(--muted); font-size:13px; }.heatmap-scroll { overflow-x:auto; padding-bottom:5px; }.heatmap-months { display:grid; grid-template-columns:repeat(var(--weeks),12px); column-gap:3px; min-width:max-content; height:24px; margin-left:31px; color:var(--muted); font-size:11px; }.heatmap-months span { white-space:nowrap; }.heatmap-body { display:flex; gap:7px; min-width:max-content; }.heatmap-weekdays { display:grid; grid-template-rows:repeat(7,12px); row-gap:3px; width:24px; color:var(--muted); font-size:9px; line-height:12px; }.heatmap-grid { display:grid; grid-template-columns:repeat(var(--weeks),12px); grid-template-rows:repeat(7,12px); gap:3px; }.heat-cell { width:12px; height:12px; border-radius:2px; background:var(--heat-0); outline-offset:2px; }.heat-cell.level-0 { background:var(--heat-0); }.heat-cell.level-1 { background:var(--heat-1); }.heat-cell.level-2 { background:var(--heat-2); }.heat-cell.level-3 { background:var(--heat-3); }.heat-cell.level-4 { background:var(--heat-4); }.heat-cell.outside { background:transparent; }.heat-cell[href]:hover,.heat-cell[href]:focus { box-shadow:0 0 0 1px #173c2c; }
.heatmap-footer { display:flex; justify-content:space-between; gap:var(--space-4); margin-top:var(--space-4); color:var(--muted); font-size:12px; }.heatmap-legend { display:flex; align-items:center; gap:4px; white-space:nowrap; }.heatmap-legend i { width:12px; height:12px; border-radius:2px; }.heatmap-legend .level-0 { background:var(--heat-0); }.heatmap-legend .level-1 { background:var(--heat-1); }.heatmap-legend .level-2 { background:var(--heat-2); }.heatmap-legend .level-3 { background:var(--heat-3); }.heatmap-legend .level-4 { background:var(--heat-4); }.activity-tooltip { position:fixed; z-index:20; width:176px; padding:10px 12px; border:1px solid #31423a; border-radius:7px; background:#17231e; color:white; pointer-events:none; font-size:12px; box-shadow:0 6px 20px rgba(20,34,27,.18); }.activity-tooltip strong,.activity-tooltip span { display:block; }.activity-tooltip span { margin-top:2px; color:#d5dfd9; }
.recent-section { margin-top:var(--space-5); padding:var(--space-5); }.recent-list { margin-top:var(--space-3); }.recent-list article { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:14px 0; border-top:1px solid var(--line); }.recent-list h3 { margin:0 0 3px; font-size:15px; line-height:1.45; }.recent-list h3 a { color:var(--ink); text-decoration:none; }.recent-list p { margin:0; color:var(--muted); font-size:12px; }.coverage-label { display:inline-flex; align-items:center; min-height:24px; border-radius:5px; padding:3px 8px; background:#e9eeeb; color:#4c5b53; font-size:11px; font-weight:700; white-space:nowrap; }.coverage-label.full { background:#e1efe7; color:#236344; }.coverage-label.partial { background:#fff0d6; color:#875c12; }.coverage-label.failed { background:#f8e2e2; color:#923939; }
@media (max-width:1000px) { .today-source-activity-summary { align-items:flex-start; }.today-source-activity-summary-meta { align-items:flex-end; flex-direction:column; }.today-source-activity-body { grid-template-columns:1fr; }.today-source-updated { padding-right:0; }.today-source-quiet { margin-top:22px; padding:22px 0 0; border-top:1px solid var(--line); border-left:0; } }
@media (max-width:700px) { .today-source-activity-summary { flex-direction:column; padding:19px 17px; }.today-source-activity-summary-meta { width:100%; align-items:flex-start; flex-direction:row; justify-content:space-between; }.today-source-totals { justify-content:flex-start; white-space:normal; }.today-source-totals strong { font-size:20px; }.today-source-activity-body { padding:18px 17px 21px; }.today-source-updated-list li { grid-template-columns:20px minmax(110px,1fr) 54px; gap:8px; }.today-source-bar { display:none; }.today-source-quiet-list { grid-template-columns:1fr; } }

/* Article library */
.compact-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-5); }.library-count { display:flex; align-items:baseline; gap:8px; white-space:nowrap; }.library-count strong { font-size:30px; letter-spacing:-.04em; }.library-count span { color:var(--muted); }.filter-panel { overflow:hidden; margin-bottom:var(--space-5); border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.filter-grid { display:grid; gap:12px; padding:var(--space-4); background:var(--surface-muted); }.article-library-filters { grid-template-columns:2fr repeat(4,1fr); }.filter-grid label { color:#46524c; font-size:12px; font-weight:700; }.filter-grid input,.filter-grid select { display:block; width:100%; min-height:40px; margin-top:5px; border:1px solid #bcc7c1; border-radius:7px; padding:8px 10px; background:white; color:var(--ink); font:inherit; }.filter-grid .search-field { grid-column:span 2; }.filter-grid .filter-actions { min-height:40px; }.custom-date.is-hidden { display:none; }.library-results { overflow:hidden; }.result-heading { align-items:center; padding:18px 20px; border-bottom:1px solid var(--line); }.result-heading>span { color:var(--muted); font-size:12px; }.article-library-list { padding:0 20px; }.article-list-item { padding:18px 0; border-bottom:1px solid var(--line); }.article-list-item:last-child { border-bottom:0; }.article-list-item h3 { margin:0 0 7px; font-size:17px; line-height:1.45; }.article-list-item h3 a { color:var(--ink); text-decoration:none; }.article-list-item h3 a:hover { color:var(--accent); }.article-byline { margin:0 0 9px; color:var(--muted); font-size:13px; }.article-facts { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; color:var(--muted); font-size:12px; }.empty-state { padding:36px 20px; text-align:center; color:var(--muted); }.empty-state strong { display:block; margin-bottom:5px; color:var(--ink); font-size:16px; }.empty-state p { margin:0; }

/* Source overview and compact cards */
.source-overview { display:grid; grid-template-columns:minmax(330px,.8fr) minmax(420px,1.2fr); gap:var(--space-5); padding:var(--space-5); margin-bottom:var(--space-5); }.status-distribution { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--line); }.status-distribution a { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; min-height:54px; padding:10px 13px; background:var(--surface); color:var(--ink); text-decoration:none; }.status-distribution a:hover { background:var(--surface-muted); }.status-distribution strong { font-size:13px; }.status-distribution b { font-size:18px; }.status-dot { display:inline-block; flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:#89938e; }.status-dot.healthy { background:var(--status-good); }.status-dot.degraded,.status-dot.stale,.status-dot.needs_adapter { background:var(--status-warn); }.status-dot.error { background:var(--status-bad); }.overview-heading { align-items:baseline; }.overview-heading span { color:var(--muted); font-size:12px; }.role-bars { display:grid; gap:6px; margin-top:9px; }.role-bar { display:grid; grid-template-columns:74px 1fr 20px; align-items:center; gap:8px; font-size:12px; }.role-bar>span { color:var(--muted); }.role-bar>div,.mini-bar { overflow:hidden; height:6px; border-radius:999px; background:#e8eeea; }.role-bar i,.mini-bar i { display:block; height:100%; border-radius:inherit; background:var(--accent); }.role-bar b { text-align:right; }.source-filters { grid-template-columns:2fr repeat(4,1fr) auto; }.source-group { margin-top:var(--space-6); }.group-heading { align-items:baseline; margin-bottom:var(--space-3); }.group-heading>span { color:var(--muted); }.source-list { display:grid; gap:12px; }.source-card { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(200px,.65fr) auto; gap:var(--space-5); align-items:center; padding:20px; border:1px solid var(--line); border-left:3px solid var(--status-good); border-radius:var(--radius); background:var(--surface); }.source-card.status-abnormal,.source-card.status-needs_adapter { border-left-color:var(--status-warn); }.source-card.status-paused { border-left-color:#9ca49f; background:#fafbfa; }.source-title-row { display:flex; justify-content:space-between; gap:var(--space-4); }.source-title-row h3 { margin:0; font-size:17px; }.source-title-row h3 a { color:var(--ink); text-decoration:none; }.source-title-row p { margin:2px 0 0; color:var(--muted); font-size:12px; }.priority { color:var(--muted); font-size:11px; white-space:nowrap; }.source-taxonomy { display:flex; gap:8px; margin:10px 0; color:var(--muted); font-size:12px; }.source-taxonomy span+span::before { content:"·"; margin-right:8px; }.source-state { display:flex; align-items:center; gap:8px; }.source-state small { margin-left:5px; }.source-times { display:flex; gap:24px; margin:13px 0 0; }.source-times div { display:flex; gap:7px; }.source-times dt { color:var(--muted); }.source-times dd { margin:0; font-weight:600; }.source-performance { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.recent-volume>div:first-child,.quality-stat { display:flex; flex-direction:column; }.recent-volume span,.quality-stat span,.quality-stat small { color:var(--muted); font-size:11px; }.recent-volume strong,.quality-stat strong { margin-top:2px; font-size:18px; }.mini-bar { margin-top:9px; }.source-actions { display:flex; flex-direction:column; gap:8px; min-width:104px; }

.source-delete-dialog { width:min(620px,calc(100vw - 32px)); border:1px solid var(--line); border-radius:12px; padding:0; background:var(--surface); box-shadow:0 24px 70px rgba(25,39,31,.25); color:var(--ink); }.source-delete-dialog::backdrop { background:rgba(20,31,25,.42); backdrop-filter:blur(2px); }.source-delete-dialog form { padding:24px; }.source-delete-dialog h2 { margin:3px 0 10px; }.source-delete-dialog p:not(.eyebrow) { margin:0; color:var(--muted); line-height:1.7; }.source-delete-impact { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:18px 0 0; }.source-delete-impact div { padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:#f8faf8; }.source-delete-impact dt { color:var(--muted); font-size:.78rem; }.source-delete-impact dd { margin:3px 0 0; font-weight:700; }.source-delete-dialog .source-delete-warning { margin-top:14px; padding:10px 12px; border-radius:8px; background:#fbf3e7; color:#78521c; }.source-delete-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:22px; }.source-delete-dialog [hidden] { display:none; }

.source-title-row { align-items:flex-start; }.source-priority-control { display:flex; align-items:flex-end; gap:6px; flex:0 0 auto; }.source-priority-control label { display:grid; gap:3px; color:var(--muted); font-size:10px; }.source-priority-control select { min-width:112px; padding:6px 24px 6px 8px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); font-size:11px; }.source-priority-control .button { min-height:30px; padding:5px 9px; font-size:11px; }

/* Source detail hierarchy */
.source-domain { margin-bottom:5px!important; color:var(--ink)!important; font-weight:600; }.source-detail-summary { display:grid; grid-template-columns:minmax(220px,.6fr) 1.8fr; gap:var(--space-5); align-items:center; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.source-detail-state { display:flex; align-items:center; gap:12px; }.source-detail-state .status-dot { width:12px; height:12px; }.source-detail-state span:not(.status-dot) { display:block; color:var(--muted); font-size:12px; }.source-detail-state strong { display:block; margin-top:2px; font-size:16px; }.source-detail-summary dl { display:grid; grid-template-columns:repeat(3,1fr); gap:14px 20px; margin:0; }.source-detail-summary dt { color:var(--muted); font-size:11px; }.source-detail-summary dd { margin:2px 0 0; font-weight:650; }.advanced-panel { margin-top:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.advanced-panel>summary { cursor:pointer; padding:16px 20px; font-weight:700; }.advanced-content { border-top:1px solid var(--line); }.raw-config { padding:0 20px 20px; }.raw-config pre { overflow:auto; padding:14px; border-radius:7px; background:#f2f5f3; color:#34423b; }.source-article-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.source-article-summary div { padding:12px 14px; border-radius:7px; background:var(--surface-muted); }.source-article-summary span { display:block; color:var(--muted); font-size:11px; }.source-article-summary strong { display:block; margin-top:3px; font-size:19px; }.source-recent-list { padding:0 20px 8px; }

.source-card.status-archived { border-left-color:#b8b1a7; background:#f6f5f2; opacity:.88; }.status-dot.paused,.status-dot.archived { background:#89938e; }

@media (max-width:1000px) { .article-library-filters { grid-template-columns:repeat(3,1fr); }.source-overview { grid-template-columns:1fr; }.source-filters { grid-template-columns:repeat(3,1fr); }.source-card { grid-template-columns:1fr 1fr; }.source-actions { flex-direction:row; grid-column:1/-1; }.source-detail-summary { grid-template-columns:1fr; } }
@media (max-width:700px) { .compact-intro { display:block; }.compact-intro>.button,.library-count { margin-top:18px; }.article-library-filters,.source-filters { grid-template-columns:1fr; }.filter-grid .search-field { grid-column:auto; }.heatmap-footer,.section-heading,.result-heading { align-items:flex-start; flex-direction:column; }.source-overview { padding:16px; }.status-distribution { grid-template-columns:1fr; }.source-card { grid-template-columns:1fr; }.source-actions { grid-column:auto; }.source-times { display:grid; gap:5px; }.source-detail-summary dl,.source-article-summary { grid-template-columns:repeat(2,1fr); } }

/* Semantic Events and review */
.event-filters { grid-template-columns:2fr repeat(5,1fr) auto; }.event-list { padding:0 20px; }.event-list-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:center; padding:19px 0; border-bottom:1px solid var(--line); }.event-list-item:last-child { border-bottom:0; }.event-list-item h3 { margin:0 0 5px; font-size:17px; }.event-list-item h3 a { color:var(--ink); text-decoration:none; }.event-list-item p { margin:0; color:var(--muted); font-size:12px; }.event-list-item dl { display:flex; gap:26px; margin:0; }.event-list-item dt,.score-grid dt { color:var(--muted); font-size:11px; }.event-list-item dd { margin:2px 0 0; font-weight:700; }
.event-detail { max-width:1100px; }.event-articles h2 { margin-bottom:5px; }.event-article { padding:18px 0; border-top:1px solid var(--line); }.event-article.representative { border-left:3px solid var(--accent); padding-left:14px; }.event-article-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }.event-article h3 { margin:7px 0 4px; font-size:16px; }.event-article h3 a { color:var(--ink); text-decoration:none; }.event-article p { margin:0; color:var(--muted); font-family:inherit; font-size:12px; line-height:1.5; }.event-article details,.review-card details { margin-top:10px; }.event-article summary,.review-card summary { color:var(--muted); cursor:pointer; font-size:12px; }.score-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:10px 0 0; }.score-grid div { padding:9px 11px; border-radius:6px; background:var(--surface-muted); }.score-grid dd { margin:2px 0 0; font-weight:700; }.compact-button { min-height:32px; padding:5px 10px; font-size:12px; }.event-merge { margin:18px 30px 30px; }.merge-form { display:flex; align-items:end; gap:10px; padding:16px 20px; border-top:1px solid var(--line); }.merge-form label { flex:1; color:var(--muted); font-size:12px; font-weight:700; }.merge-form input { display:block; width:100%; margin-top:5px; border:1px solid #bcc7c1; border-radius:7px; padding:9px 10px; }
.review-list { display:grid; gap:16px; }.review-card { padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.review-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.review-pair>div { padding:14px; border-radius:8px; background:var(--surface-muted); }.review-pair span { color:var(--muted); font-size:11px; font-weight:800; }.review-pair h2 { margin:6px 0; font-size:16px; line-height:1.45; }.review-pair h2 a { color:var(--ink); text-decoration:none; }.review-pair p,.review-reason { margin:0; color:var(--muted); font-size:12px; }.review-reason { padding:12px 0 0; }.review-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }.review-actions button { border-radius:7px; }
.semantic-diagnostics { margin:20px clamp(20px,5vw,65px); }.diagnostic-content { padding:0 20px 18px; }.diagnostic-reasons { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0 0; padding:0; list-style:none; }.diagnostic-reasons li { padding:4px 7px; border-radius:5px; background:var(--surface-muted); color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
@media (max-width:1000px) { .event-filters { grid-template-columns:repeat(3,1fr); }.event-list-item { grid-template-columns:1fr; }.event-list-item dl { justify-content:flex-start; }.score-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px) { .event-filters,.review-pair { grid-template-columns:1fr; }.event-list-item dl { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.event-article-heading,.merge-form { display:block; }.event-article-heading form,.merge-form .button { margin-top:10px; width:100%; }.score-grid { grid-template-columns:1fr 1fr; } }

/* Top navigation database menu and review routing */
.nav-database { position:relative; color:#4f5c55; }.nav-database>summary { display:flex; align-items:center; gap:7px; cursor:pointer; list-style:none; }.nav-database>summary::-webkit-details-marker { display:none; }.nav-database>summary::after { content:""; width:6px; height:6px; margin-top:-3px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .16s ease,margin .16s ease; }.nav-database[open]>summary { color:var(--accent); }.nav-database[open]>summary::after { margin-top:3px; transform:rotate(225deg); }.nav-database>summary:focus-visible { border-radius:4px; outline:2px solid #9fc8b0; outline-offset:5px; }.nav-database>div { position:absolute; z-index:10; left:50%; top:calc(100% + 13px); display:grid; min-width:132px; padding:7px; border:1px solid rgba(190,201,194,.72); border-radius:8px; background:rgba(245,247,245,.88); box-shadow:0 10px 26px rgba(28,36,32,.12); -webkit-backdrop-filter:blur(14px) saturate(125%); backdrop-filter:blur(14px) saturate(125%); transform:translateX(-50%); }.nav-database>div a { padding:8px 10px; border-radius:5px; white-space:nowrap; }.nav-database>div a:hover,.nav-database>div a:focus-visible { background:rgba(36,107,74,.09); color:var(--accent); outline:none; }
.inbox-card { border-left:4px solid var(--accent); }.inbox-card>h2 { font-size:22px; }.inbox-card .review-pair h3 { margin:6px 0; font-size:16px; line-height:1.45; }.inbox-card .review-pair h3 a { color:var(--ink); text-decoration:none; }.inbox-explanation { margin-top:14px; padding:14px 16px; border-radius:8px; background:#f6f8f7; }.inbox-explanation p { margin:0 0 7px; }.inbox-explanation p:last-child { margin-bottom:0; }.diagnostic-routing { margin:12px 0 0; padding:9px 11px; border-radius:6px; background:#f2f5f3; color:var(--muted); font-size:12px; }
@media (max-width:700px) { .nav-database>div { right:0; left:auto; transform:none; } }

/* Phase 2B personal editorial digest */
.today-digest-card,.digest-index-card,.profile-card,.topic-editor,.rolling-summary,.digest-edition { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.today-digest-card { display:block; margin-bottom:var(--space-5); padding:26px 28px 22px; }.today-digest-link { color:inherit; text-decoration:none; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }.today-digest-link:hover { border-color:#b6cbbf; background:#fbfdfc; box-shadow:0 5px 16px rgba(31,62,46,.07); }.today-digest-link:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }.today-digest-card>.eyebrow { margin:0 0 7px; }.today-digest-card h2 { margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--line); }.today-digest-summary { margin-bottom:14px; }.today-digest-empty-copy { margin:0; color:var(--muted); line-height:1.78; }.today-digest-card small { color:var(--muted); }
.digest-card-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }.digest-card-actions form { margin:0; }.digest-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }.digest-intro>div:first-child { max-width:780px; }
.digest-index-list { display:grid; gap:16px; }.digest-index-card { overflow:hidden; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }.digest-index-card:hover { border-color:#b6cbbf; background:#fbfdfc; box-shadow:0 5px 16px rgba(31,62,46,.07); }.digest-index-link { display:block; padding:24px 24px 18px; color:inherit; text-decoration:none; }.digest-index-link:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }.digest-index-card h2 { margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--line); color:var(--accent); font-family:Georgia,"Noto Serif SC","Songti SC",STSong,serif; font-weight:650; }.digest-index-summary { display:grid; grid-template-columns:minmax(0,1fr); gap:11px; margin:0 0 12px; }.digest-index-summary section { display:grid; min-width:0; grid-template-columns:126px minmax(0,1fr); align-items:start; gap:16px; }.digest-index-summary h3 { margin:0; color:#40584b; font-size:14px; line-height:1.75; }.digest-index-summary p { min-width:0; margin:0; color:var(--muted); line-height:1.78; overflow-wrap:anywhere; text-align:justify; }.digest-summary-point+.digest-summary-point::before { content:" · "; color:#92a198; font-weight:800; }.digest-index-summary-legacy { gap:8px; }.digest-index-card small { color:var(--muted); }
.digest-day { max-width:1080px; margin:0 auto; }.digest-day-header { margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid var(--line); }.digest-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }.digest-title-row h1 { margin-bottom:0; font-family:Georgia,"Noto Serif SC","Songti SC",STSong,serif; font-weight:650; }.digest-live-clock { font-variant-numeric:tabular-nums; }
.rolling-summary { margin:22px 0; padding:24px 28px; background:#f5f8f6; }.rolling-summary>p:last-child,.rolling-summary-body p { color:#2f4038; font-family:Georgia,"Noto Serif SC",serif; font-size:18px; line-height:1.85; }.rolling-summary>p:last-child { margin:8px 0 0; }.rolling-summary-body { display:grid; gap:12px; margin-top:10px; }.rolling-summary-body p { margin:0; padding-left:14px; border-left:2px solid #b9cfc2; }.rolling-summary-sections { display:grid; grid-template-columns:minmax(0,1fr); gap:23px; margin-top:15px; }.rolling-summary-section { min-width:0; }.rolling-summary-section h2 { margin:0 0 8px; padding-bottom:8px; border-bottom:1px solid #c7d7ce; color:#20342a; font-family:Georgia,"Noto Serif SC",serif; font-size:18px; letter-spacing:.02em; }.rolling-summary-section ol { display:grid; min-width:0; gap:0; margin:0; padding-left:2.1em; }.rolling-summary-section li { min-width:0; padding:9px 0 10px 3px; border-bottom:1px dotted #cbd7d0; color:#2f4038; font-family:Georgia,"Noto Serif SC",serif; line-height:1.72; overflow-wrap:anywhere; }.rolling-summary-section li:last-child { border-bottom:0; }.rolling-summary-section li::marker { color:#536d60; font-weight:700; }.rolling-summary-section a { color:#213b2e; font-size:16px; overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:#9fb8aa; text-decoration-thickness:1px; text-underline-offset:4px; }.rolling-summary-section a:hover,.rolling-summary-section a:focus-visible { color:var(--accent); text-decoration-color:currentColor; }.rolling-summary-section small { display:block; min-width:0; margin-top:4px; color:#6b7a72; font-family:system-ui,-apple-system,"Noto Sans SC",sans-serif; font-size:11px; overflow-wrap:anywhere; }
.summary-point-row { display:flex; min-width:0; align-items:flex-start; justify-content:space-between; gap:14px; }.summary-point-row>a { min-width:0; flex:1; }.summary-save-form { flex:0 0 auto; margin:0; }.summary-save-form button { min-height:29px; border:1px solid #a9c1b3; border-radius:999px; padding:4px 10px; background:#fff; color:var(--accent); font:700 11px/1.2 system-ui,-apple-system,"Noto Sans SC",sans-serif; white-space:nowrap; }.summary-save-form button.is-active,.item-feedback button.is-active { border-color:var(--accent); background:#dff1e7; color:var(--accent); font-weight:750; }
.edition-order-note { margin:22px 0 8px; color:var(--muted); font-size:12px; font-weight:750; letter-spacing:.04em; }.edition-timeline { display:flex; gap:8px; overflow-x:auto; margin:0 0 22px; padding-bottom:5px; }.edition-timeline a { display:grid; min-width:128px; padding:11px 13px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); text-decoration:none; }.edition-timeline time { font-size:17px; font-weight:760; }.edition-timeline span,.edition-timeline small { color:var(--muted); font-size:11px; }.edition-timeline .status-success { color:var(--status-good); }.edition-timeline .status-partial { color:var(--status-warn); }.edition-timeline .status-failed { color:var(--status-bad); }
.digest-edition { margin:0 0 28px; overflow:hidden; background:#f4f7f5; }.digest-edition-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; padding:28px 32px; background:linear-gradient(180deg,#fcfdfc 0%,#f7faf8 100%); cursor:pointer; list-style:none; }.digest-edition-summary::marker,.digest-edition-summary::-webkit-details-marker,.supplement-area-summary::marker,.supplement-area-summary::-webkit-details-marker { display:none; content:""; }.digest-edition-summary>div:first-child { min-width:0; flex:1; }.digest-edition-summary .eyebrow { margin:0; }.digest-edition[open]>.digest-edition-summary { border-bottom:1px solid #d5e1da; background:#f2f7f4; box-shadow:0 7px 18px rgba(31,62,46,.06); }.digest-edition-summary h2 { max-width:820px; margin:10px 0 0; font-family:Georgia,"Noto Serif SC",serif; font-size:19px; font-weight:500; line-height:1.65; }.digest-edition-meta { display:flex; align-items:center; gap:16px; color:var(--muted); white-space:nowrap; }.collapse-control { display:inline-flex; align-items:center; gap:8px; min-height:34px; padding:6px 11px; border:1px solid #d4e0d9; border-radius:999px; background:#fff; color:var(--accent); box-shadow:0 1px 2px rgba(31,62,46,.05); transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }.digest-edition-summary:hover .collapse-control,.supplement-area-summary:hover .collapse-control { border-color:#abc5b6; background:#fbfdfc; box-shadow:0 2px 7px rgba(31,62,46,.08); }.collapse-label::before { content:"展开"; display:inline-block; min-width:2em; font-size:11px; font-weight:750; letter-spacing:.04em; text-align:right; }.digest-edition[open] .collapse-label::before,.daily-supplement-area[open] .collapse-label::before { content:"收起"; }.collapse-icon { width:8px; height:8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translate(-1px,-1px); transform-origin:center; transition:transform .18s ease; }.digest-edition[open] .collapse-icon,.daily-supplement-area[open] .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.digest-edition-summary:focus-visible,.supplement-area-summary:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }.digest-items { padding:0 32px; background:#fff; }.digest-edition[open]>.digest-items { margin:12px 14px 14px; padding:8px 18px 4px; border:1px solid #e2e9e5; border-radius:9px; box-shadow:0 1px 3px rgba(31,62,46,.04); }.digest-item { break-inside:avoid; padding:24px 0; border-bottom:1px solid var(--line); }.digest-item:last-child { border-bottom:0; }.digest-item-kicker { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; }.digest-item-kicker span:first-child { color:var(--accent); font-weight:800; }.digest-item h3 { margin:8px 0; font-family:Georgia,"Noto Serif SC",serif; font-size:23px; line-height:1.45; }.digest-item h3 a { color:var(--ink); text-decoration:none; }.digest-item>p { margin:0 0 10px; line-height:1.75; }.digest-item .why { padding:11px 13px; border-radius:7px; background:var(--surface-muted); color:#48574f; font-size:13px; }.digest-source { color:var(--muted); font-size:12px; }.digest-source a { color:var(--accent); }.item-feedback { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-top:13px; }.item-feedback form { display:flex; gap:6px; }.item-feedback button { border:1px solid var(--line); border-radius:999px; padding:5px 10px; background:white; color:var(--muted); cursor:pointer; }.item-feedback details { min-width:160px; color:var(--muted); font-size:11px; }.item-feedback summary { cursor:pointer; text-align:right; }.item-feedback dl { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.item-feedback dl div { padding:6px; border-radius:5px; background:var(--surface-muted); }.item-feedback dd { margin:2px 0 0; color:var(--ink); font-weight:800; }
.daily-supplement-area { margin:0 0 22px; overflow:hidden; border:1px solid #c9dace; border-left:4px solid var(--accent); border-radius:var(--radius); background:#f7fbf8; }.daily-supplement-area.overnight { border-color:#d9d2bd; border-left-color:#9b7628; background:#fcfaf3; }.supplement-area-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:22px 26px; cursor:pointer; list-style:none; }.daily-supplement-area[open]>.supplement-area-summary { border-bottom:1px solid rgba(87,112,98,.2); background:rgba(255,255,255,.34); }.supplement-area-summary>div:first-child { min-width:0; flex:1; }.supplement-area-summary .eyebrow { margin:0; }.supplement-area-summary h2 { margin:5px 0 0; font-family:Georgia,"Noto Serif SC",serif; font-size:22px; }.daily-supplement-area>.supplement-groups { display:grid; gap:16px; margin:0; padding:18px 22px 22px; }.supplement-group>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.supplement-group { padding:19px 20px; border:1px solid var(--line); border-radius:8px; background:white; }.supplement-group h3 { margin:3px 0 2px; font-size:19px; }.supplement-group header p,.supplement-summary { margin:0; color:var(--muted); }.supplement-group header time { color:var(--accent); font-size:12px; font-weight:800; }.supplement-summary { margin-top:12px; padding:10px 12px; border-radius:6px; background:var(--surface-muted); line-height:1.65; }.supplement-items { display:grid; gap:0; margin:14px 0 0; padding-left:1.7em; }.supplement-items li { padding:13px 4px; border-top:1px solid var(--line); }.supplement-items h4 { margin:0 0 5px; font-size:16px; line-height:1.5; }.supplement-items h4 a { color:var(--ink); text-decoration:none; }.supplement-items .badge { margin-left:7px; color:var(--accent); }.supplement-items p { margin:0 0 5px; line-height:1.7; }.supplement-items small { overflow-wrap:anywhere; }.nonfixed-editions { margin-top:36px; padding-top:22px; border-top:1px dashed var(--line); }.parent-segments ol { display:grid; gap:8px; }
.profile-card { padding:24px; }.profile-card textarea,.profile-card input,.topic-editor input,.topic-editor select { width:100%; border:1px solid #bcc7c1; border-radius:7px; padding:9px 10px; background:white; font:inherit; }.profile-card textarea { margin-top:5px; }.weight-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin:18px 0 8px; }.weight-grid label,.profile-card label { color:var(--muted); font-size:12px; font-weight:700; }.weight-grid input { display:block; margin-top:5px; }.form-help { color:var(--muted); font-size:12px; }.topic-editor { margin-top:22px; padding:24px; }.topic-group { margin-top:12px; border:1px solid var(--line); border-radius:8px; }.topic-group summary { display:flex; justify-content:space-between; padding:13px 15px; cursor:pointer; }.topic-group summary span { color:var(--muted); }.topic-group>div { padding:0 13px 13px; }.topic-row { display:grid; grid-template-columns:1fr 1.7fr 1.2fr 80px 118px; gap:8px; padding:8px 0; border-top:1px solid var(--line); }.topic-actions { display:flex; gap:4px; }.danger-link { color:var(--status-bad); }.topic-add { display:grid; grid-template-columns:1fr 1.5fr 1fr 80px auto; gap:8px; align-items:end; margin-top:22px; }.topic-add h3 { grid-column:1/-1; margin-bottom:2px; }
.print-meta { margin-top:25px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; }
@media (max-width:800px) { .digest-intro,.digest-title-row { align-items:flex-start; flex-direction:column; }.today-digest-card { padding:22px 18px 17px; }.digest-index-link { padding:22px 18px 17px; }.digest-index-summary section { grid-template-columns:minmax(0,1fr); gap:2px; }.weight-grid { grid-template-columns:1fr 1fr; }.topic-row,.topic-add { grid-template-columns:1fr; }.topic-add h3 { grid-column:auto; }.digest-card-actions { width:100%; }.digest-card-actions .button,.digest-card-actions form,.digest-card-actions button { width:100%; }.rolling-summary { padding:20px 18px; }.rolling-summary-section ol { padding-left:1.8em; }.summary-point-row { display:block; }.summary-save-form { margin-top:8px; }.digest-edition { margin-bottom:20px; }.digest-edition-summary,.supplement-area-summary { gap:14px; padding:22px 20px; }.digest-edition-summary h2 { margin-top:8px; font-size:17px; }.supplement-area-summary h2 { font-size:19px; }.digest-edition-meta { align-items:flex-end; flex-direction:column; gap:8px; }.collapse-control { min-height:32px; padding:5px 9px; }.digest-edition[open]>.digest-items { margin:10px; padding:4px 14px; }.item-feedback { display:block; }.item-feedback details { margin-top:12px; }.item-feedback summary { text-align:left; }.daily-supplement-area>.supplement-groups { padding:14px 12px 16px; }.supplement-group>header { display:block; }.supplement-group { padding:16px 14px; }.supplement-group header .button { width:100%; margin-top:12px; }.supplement-items { padding-left:1.3em; }.supplement-items h4 .badge { display:block; width:max-content; margin:6px 0 0; } }
@media print { @page { size:A4; margin:14mm 13mm 16mm; } body { background:white!important; color:#111; font-size:10pt; } .topbar,.no-print,.collapse-control { display:none!important; } main,.digest-day { width:auto!important; max-width:none!important; margin:0!important; }.rolling-summary,.digest-edition,.daily-supplement-area { border-color:#aaa; box-shadow:none; }.digest-edition:not([open])>:not(summary),.daily-supplement-area:not([open])>:not(summary) { display:block!important; }.rolling-summary>p:last-child { font-size:12pt; }.rolling-summary-section { break-inside:avoid-page; }.rolling-summary-section a { color:#111; text-decoration:underline; text-decoration-color:#888; }.digest-edition-summary,.supplement-area-summary { padding:12px 15px; }.digest-edition[open]>.digest-items { margin:0; padding:0 15px; border:0; box-shadow:none; }.daily-supplement-area>.supplement-groups { padding:0 15px 12px; }.digest-items { padding:0 15px; }.digest-item { padding:14px 0; }.digest-item h3 { font-size:15pt; }.digest-item a { color:#111; text-decoration:underline; text-decoration-color:#aaa; }.digest-item .why { background:#f4f4f4; }.digest-edition,.digest-item,.daily-supplement-area { break-inside:avoid-page; } }

/* Monthly Intelligence */
.monthly-index-list { display:grid; gap:18px; margin-top:24px; }.monthly-period { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.monthly-period-summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 28px; cursor:pointer; list-style:none; }.monthly-period-summary::marker,.monthly-period-summary::-webkit-details-marker { display:none; content:""; }.monthly-period-summary h2 { margin:3px 0 7px; font-family:Georgia,"Noto Serif SC",serif; font-size:25px; }.monthly-period-summary p:not(.eyebrow) { max-width:760px; margin:0; color:var(--muted); }.monthly-period[open]>.monthly-period-summary { border-bottom:1px solid #d5e1da; background:#f2f7f4; }.monthly-period[open]>.monthly-period-summary .collapse-label::before { content:"收起"; }.monthly-period[open]>.monthly-period-summary .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.monthly-period-content { padding:24px 28px 30px; }.monthly-action-row,.monthly-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }.monthly-action-row { margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--line); }.monthly-action-row h2,.monthly-section-heading h2 { margin:3px 0 0; }.monthly-generate-form { display:flex; align-items:center; gap:10px; }.monthly-submit-status { color:var(--muted); font-size:12px; }.monthly-summary,.monthly-recommendation-section { margin-top:28px; }.monthly-section-heading { margin-bottom:12px; }.monthly-article-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.monthly-recommendation-item { position:relative; padding:19px 20px; border:1px solid var(--line); border-radius:9px; background:#fff; }.monthly-recommendation-item h3 { font-size:18px; }.monthly-recommendation-item:last-child { border-bottom:1px solid var(--line); }.monthly-recommendation-reason { margin:0 0 10px; padding:10px 12px; border-left:3px solid #79a88d; border-radius:0 6px 6px 0; background:#f1f7f3; color:#344a3e; font-size:13px; line-height:1.65; }.monthly-recommendation-reason strong { display:block; margin-bottom:2px; color:var(--accent); font-size:11px; letter-spacing:.06em; }.monthly-article-excerpt { color:var(--muted); }.monthly-article-meta { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; }.monthly-save-form { margin-top:12px; }.monthly-save-form button { min-height:31px; border:1px solid var(--line); border-radius:999px; padding:5px 11px; background:white; color:var(--accent); }.saved-state { padding:1px 6px; border-radius:999px; background:#dff1e7; color:var(--accent); font-weight:750; }.monthly-summary-content { padding-top:14px!important; padding-bottom:16px!important; }.monthly-summary-content .rolling-summary-sections { margin-top:0; }
.monthly-detail-header { margin-bottom:0; }.monthly-lead-summary { margin:0; padding:22px 2px 2px; color:#2f4038; font-family:Georgia,"Noto Serif SC",serif; font-size:18px; line-height:1.85; }.monthly-information-section { margin-top:22px; }.monthly-summary-sections { margin-top:0; }.monthly-summary-sections .rolling-summary-section ol { padding-top:2px; }.monthly-recommendation-body { padding-top:20px; }
.save-button,.item-feedback button.save-button,.summary-save-form button.save-button,.monthly-save-form button.save-button { display:inline-flex; min-height:32px; align-items:center; justify-content:center; border:1px solid #a9c1b3; border-radius:999px; padding:5px 12px; background:#fff; color:var(--accent); font:750 12px/1.2 system-ui,-apple-system,"Noto Sans SC",sans-serif; white-space:nowrap; cursor:pointer; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }.save-button:hover,.save-button:focus-visible { border-color:var(--accent); background:#f4f9f6; box-shadow:0 2px 7px rgba(31,62,46,.09); }.save-button:focus-visible { outline:3px solid rgba(36,107,74,.22); outline-offset:2px; }.save-button.is-active,.item-feedback button.save-button.is-active,.summary-save-form button.save-button.is-active,.monthly-save-form button.save-button.is-active { border-color:var(--accent); background:#dff1e7; color:var(--accent); box-shadow:inset 0 0 0 1px rgba(36,107,74,.06); }
.supplement-item-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }.supplement-item-footer small { flex:1; }.supplement-item-footer .summary-save-form { flex:0 0 auto; }
@media (max-width:800px) { .monthly-period-summary,.monthly-action-row,.monthly-section-heading { align-items:flex-start; flex-direction:column; }.monthly-period-content { padding:20px 16px 24px; }.monthly-generate-form,.monthly-generate-form .button { width:100%; }.monthly-lead-summary { padding-top:18px; font-size:17px; }.monthly-article-grid { grid-template-columns:1fr; } }

/* Article reading experience */
.article-detail>header { padding-top:42px; padding-bottom:34px; }.article-detail>header>.eyebrow { margin-bottom:10px; }.article-detail>header h1 { max-width:820px; margin-bottom:14px; font-family:Georgia,"Noto Serif SC",serif; font-size:clamp(30px,3.5vw,42px); font-weight:650; letter-spacing:-.025em; line-height:1.3; }
.article-original-title { color:inherit; text-decoration:none; border-radius:3px; }.article-original-title:hover { color:var(--accent); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }.article-original-title:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:4px; }
.article-reading-meta { display:grid; gap:10px; margin-top:14px; color:var(--muted); font-size:12px; }.article-publication-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px; }.article-published-time { white-space:nowrap; }.article-key-facts { display:flex; flex-wrap:wrap; min-width:0; max-width:100%; gap:6px 12px; margin:0; }.article-key-facts>div { display:flex; align-items:baseline; gap:4px; min-width:0; max-width:100%; }.article-key-facts dt { flex:0 0 auto; white-space:nowrap; }.article-key-facts dd { min-width:0; margin:0; color:#43534a; overflow-wrap:anywhere; }.article-content-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }.article-content-stats { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }.article-content-meta .coverage-label { padding:2px 7px; }.article-content-meta .article-save-form { margin-left:auto; }
.article-reading-panels { display:grid; gap:12px; margin-top:20px; }.article-reading-panels>.article-disclosure { min-width:0; margin:0; }
.event-coverage-link { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 16px; overflow:hidden; border:1px solid #dbe5df; border-radius:9px; background:#fbfcfb; color:var(--ink); text-decoration:none; }.event-coverage-link:hover { border-color:#adc8b8; background:#f7faf8; }.event-coverage-link span { display:grid; gap:2px; }.event-coverage-link strong { font-size:14px; }.event-coverage-link small { color:var(--muted); font-size:11px; font-weight:400; }.event-coverage-link b { color:var(--accent); font-size:13px; white-space:nowrap; }
.same-copy-content { padding:16px 18px 6px; background:#fff; }.same-copy-content>p { margin:0 0 8px; color:var(--muted); font-size:12px; }.same-copy-content ul { margin:0; padding:0; list-style:none; }.same-copy-content li { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px 0; border-top:1px solid var(--line); }.same-copy-content h3 { margin:0 0 3px; font-size:14px; line-height:1.5; }.same-copy-content h3 a { color:var(--ink); text-decoration:none; }.same-copy-content h3 a:hover { color:var(--accent); }.same-copy-content li p { margin:0; color:var(--muted); font-size:11px; }.same-copy-original-link { flex:0 0 auto; font-size:11px; text-decoration:none; }
.article-disclosure { overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fbfcfb; }.related-articles-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 18px; cursor:pointer; list-style:none; }.related-articles-summary::marker,.related-articles-summary::-webkit-details-marker { display:none; content:""; }.related-articles-heading { min-width:0; }.related-articles-heading h2 { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin:0; font-family:Georgia,"Noto Serif SC",serif; font-size:20px; line-height:1.4; }.related-articles-summary .collapse-control { flex:0 0 auto; }.related-articles-summary:hover .collapse-control { border-color:#abc5b6; background:#fff; box-shadow:0 2px 7px rgba(31,62,46,.08); }.related-articles-summary:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }.article-disclosure[open]>.related-articles-summary { border-bottom:1px solid #d5e1da; background:#f2f7f4; }.article-disclosure[open] .collapse-label::before { content:"收起"; }.article-disclosure[open] .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.related-articles-content { padding:16px 18px 18px; background:#fff; }.related-article-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:11px; }.related-article-card { min-width:0; padding:16px 18px; border:1px solid var(--line); border-left:3px solid #9fc8b0; border-radius:8px; background:#fbfcfb; }.related-article-card h3 { margin:5px 0 7px; font-size:16px; line-height:1.5; }.related-article-card h3 a { color:var(--ink); text-decoration:none; }.related-article-card h3 a:hover { color:var(--accent); }.related-reason { margin:0; color:var(--accent); font-size:11px; font-weight:750; }.related-excerpt { display:-webkit-box; overflow:hidden; max-width:680px; margin:0 0 8px; color:#58645e; font-size:12px; line-height:1.65; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.related-byline { margin:0; color:var(--muted); font-size:11px; }
.article-detail>.body { padding-top:38px; padding-bottom:44px; border-bottom:1px solid var(--line); }.article-detail>.body h2 { width:100%; margin:0 0 16px; font-family:Georgia,"Noto Serif SC",serif; font-size:22px; }.article-detail>.body p { width:100%; max-width:none; margin-right:0; margin-left:0; }.article-detail>.parent-segments { margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.article-detail>.article-technical { margin:0; border:0; border-radius:0; }.article-detail>.article-technical>summary { padding:18px clamp(20px,5vw,65px); color:#4e5c55; }.article-detail>.article-technical .advanced-content { padding:20px clamp(20px,5vw,65px) 28px; background:#fbfcfb; }.technical-metadata { margin-top:14px; border:1px solid var(--line); }.raw-article-metadata { margin-top:14px; }.raw-article-metadata>summary { cursor:pointer; color:var(--muted); font-size:12px; font-weight:700; }.raw-article-metadata pre { overflow:auto; max-height:360px; margin:10px 0 0; padding:14px; border-radius:7px; background:#eef2ef; color:#34423b; font-size:12px; }
@media (max-width:700px) { .article-detail>header { padding-top:28px; }.related-article-grid { grid-template-columns:1fr; }.event-coverage-link,.same-copy-content li { align-items:flex-start; flex-direction:column; }.same-copy-original-link { margin-top:4px; } }

/* Article reading settings and durable highlights */
.article-reading-tools { display:flex; flex-wrap:wrap; width:100%; align-items:center; justify-content:flex-start; gap:12px 18px; margin:0 0 24px; padding:12px 14px; border:1px solid #dbe5df; border-radius:9px; background:#f7faf8; }.article-reading-tools-heading { flex:0 0 auto; min-width:0; }.article-reading-tools .eyebrow { margin:0 0 2px; color:var(--accent); font-size:11px; font-weight:800; letter-spacing:.08em; }.article-font-control,.article-font-size-control { display:flex; align-items:center; gap:5px; color:#43534a; font-size:12px; font-weight:700; white-space:nowrap; }.article-font-control>span,.article-font-size-control>span { margin-right:2px; color:var(--muted); font-size:11px; }.article-font-control button,.article-font-size-control button,.reading-settings-reset { min-height:31px; border:1px solid #b9ccc0; border-radius:999px; padding:5px 10px; background:white; color:var(--accent); font:700 12px/1.2 system-ui,-apple-system,"Noto Sans SC",sans-serif; cursor:pointer; }.article-font-control button:hover,.article-font-control button:focus-visible,.article-font-size-control button:hover,.article-font-size-control button:focus-visible,.reading-settings-reset:hover,.reading-settings-reset:focus-visible { border-color:var(--accent); background:#edf7f0; }.article-font-control button.is-active { border-color:var(--accent); background:#dff1e7; box-shadow:inset 0 0 0 1px rgba(36,107,74,.08); }.article-font-control button:focus-visible,.article-font-size-control button:focus-visible,.reading-settings-reset:focus-visible { outline:3px solid rgba(36,107,74,.2); outline-offset:2px; }.article-font-size-control button { min-width:42px; font-size:13px; }.article-font-size-control button:disabled { cursor:not-allowed; opacity:.45; }.article-font-size-control output { min-width:42px; color:var(--ink); font:750 12px/1 system-ui,-apple-system,"Noto Sans SC",sans-serif; text-align:center; }.reading-settings-reset { margin-left:auto; color:var(--muted); }
.article-highlight-capture { align-items:center; background:#fffaf0; border-color:#eadfbe; }.article-highlight-capture .eyebrow { color:#93691b; }.article-highlight-capture form { margin:0; }.article-highlight-capture button[disabled] { cursor:not-allowed; opacity:.45; }.article-highlights { overflow:hidden; margin-top:25px; border:1px solid #e5d8aa; border-radius:9px; background:#fffdf6; }.article-highlights-summary h2 span { color:#a47b2b; }.article-highlights-summary .collapse-control { border-color:#e5d8aa; background:#fffdf6; color:#a47b2b; }.article-highlights-summary:hover .collapse-control { border-color:#c7a64d; background:#fffdf6; box-shadow:0 2px 7px rgba(91,70,27,.08); }.article-highlights-summary:focus-visible { outline-color:rgba(164,123,43,.28); }.article-highlights[open] .collapse-label::before { content:"收起"; }.article-highlights[open] .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.article-highlight-list { display:grid; gap:0; margin:0; padding:4px 18px 8px; border-top:1px solid #eee4c7; list-style:none; }.article-highlight-list[hidden] { display:none; }.article-highlight-list li { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid #eee4c7; }.article-highlight-list li:first-child { border-top:0; }.article-highlight-text { flex:1; color:#5b461b; font-family:Georgia,"Noto Serif SC",serif; font-size:16px; line-height:1.75; text-decoration:none; text-decoration-color:#c7a64d; text-decoration-thickness:1px; text-underline-offset:4px; }.article-highlight-text::before { content:"“"; color:#c39a3f; font-size:22px; vertical-align:-2px; }.article-highlight-text:hover,.article-highlight-text:focus-visible { color:#895d0e; text-decoration:underline; }.highlight-delete { flex:0 0 auto; border:0; padding:4px 0; background:transparent; color:#987d4a; font:700 12px/1.4 system-ui,-apple-system,"Noto Sans SC",sans-serif; cursor:pointer; }.highlight-delete:hover,.highlight-delete:focus-visible { color:#8e3030; text-decoration:underline; }.highlight-delete:focus-visible { outline:3px solid rgba(142,48,48,.18); outline-offset:2px; }
.article-highlight-popover { position:fixed; z-index:80; width:min(300px,calc(100vw - 24px)); padding:13px 14px 12px; border:1px solid #d6bb69; border-radius:10px; background:#fffdf7; box-shadow:0 10px 32px rgba(55,45,19,.2); color:#493a18; transform:translateX(-50%); }.article-highlight-popover[hidden] { display:none; }.article-highlight-popover>p:first-child { margin:0; font:800 14px/1.4 system-ui,-apple-system,"Noto Sans SC",sans-serif; }.article-highlight-popover-preview { overflow:hidden; margin:5px 0 10px; color:#725b28; font-family:Georgia,"Noto Serif SC",serif; font-size:12px; line-height:1.55; text-overflow:ellipsis; white-space:nowrap; }.article-highlight-popover-actions { display:flex; justify-content:flex-end; gap:7px; }.article-highlight-popover-actions button { min-height:30px; border-radius:7px; padding:5px 11px; font:750 12px/1.2 system-ui,-apple-system,"Noto Sans SC",sans-serif; cursor:pointer; }.article-highlight-popover-confirm { border:1px solid #9f7621; background:#a77d26; color:#fff; }.article-highlight-popover-confirm:hover,.article-highlight-popover-confirm:focus-visible { background:#896317; }.article-highlight-popover-dismiss { border:1px solid #ddcfaa; background:#fff; color:#725e31; }.article-highlight-popover-dismiss:hover,.article-highlight-popover-dismiss:focus-visible { border-color:#bca15f; background:#fff9e9; }.article-highlight-popover-actions button:focus-visible { outline:3px solid rgba(164,123,43,.24); outline-offset:2px; }
.article-body-content p { font-size:var(--article-body-size,18px); }.article-detail[data-article-font="serif"] .article-body-content p { font-family:Georgia,"Noto Serif SC","Songti SC",serif; }.article-detail[data-article-font="sans"] .article-body-content p { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }.article-detail[data-article-font="system"] .article-body-content p { font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }.article-body-content mark { padding:0 .1em; border-radius:3px; background:#f7df83; color:inherit; cursor:pointer; box-decoration-break:clone; -webkit-box-decoration-break:clone; scroll-margin-top:80px; }.article-body-content mark:hover,.article-body-content mark:focus-visible { background:#f2d05d; outline:2px solid rgba(164,123,43,.28); outline-offset:2px; }.article-body-content mark:target { outline:3px solid rgba(164,123,43,.35); outline-offset:3px; }
@media (max-width:800px) { .article-reading-tools { align-items:flex-start; flex-wrap:wrap; }.article-reading-tools-heading { flex:1 1 100%; }.article-font-control { flex:1 1 auto; flex-wrap:wrap; }.article-font-size-control { flex-wrap:wrap; }.related-articles-summary { align-items:center; }.article-highlight-list li { gap:10px; }.article-highlight-text { font-size:15px; } }

.digest-highlight-collection { margin:26px 0; padding:22px 24px 24px; border:1px solid #e5d8aa; border-radius:var(--radius); background:#fffdf6; }.digest-highlight-collection .monthly-section-heading { margin-bottom:12px; }.digest-highlight-collection .monthly-section-heading h2 { color:#5d481f; font-family:Georgia,"Noto Serif SC",serif; }.digest-highlight-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:12px; }.digest-highlight-group { min-width:0; padding:15px 17px; border:1px solid #eee4c7; border-radius:8px; background:#fff; }.digest-highlight-group h3 { margin:0; font-size:15px; line-height:1.55; }.digest-highlight-group h3 a { color:#293b30; text-decoration:none; }.digest-highlight-group h3 a:hover,.digest-highlight-group h3 a:focus-visible { color:var(--accent); }.digest-highlight-source { margin:4px 0 8px; color:var(--muted); font-size:11px; }.digest-highlight-group ol { display:grid; gap:7px; margin:0; padding-left:1.4em; }.digest-highlight-group li { padding-left:3px; color:#5b461b; font-family:Georgia,"Noto Serif SC",serif; font-size:14px; line-height:1.65; }.digest-highlight-group li::marker { color:#b18b37; font-family:system-ui,-apple-system,"Noto Sans SC",sans-serif; font-weight:700; }.digest-highlight-group li a { color:#5b461b; text-decoration:underline; text-decoration-color:#d8bd72; text-underline-offset:3px; }.digest-highlight-group li a:hover,.digest-highlight-group li a:focus-visible { color:#895d0e; }.monthly-highlight-collection { margin-top:28px; }
@media (max-width:800px) { .digest-highlight-collection { padding:19px 16px 20px; }.digest-highlight-groups { grid-template-columns:1fr; } }

/* Daily overview disclosures */
.digest-overview-section { overflow:hidden; padding:0; box-shadow:0 4px 14px rgba(31,62,46,.06); }.digest-overview-summary { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:22px 28px; cursor:pointer; list-style:none; }.digest-overview-summary::marker,.digest-overview-summary::-webkit-details-marker { display:none; content:""; }.digest-overview-summary>div:first-child { min-width:0; flex:1; }.digest-overview-title { margin:0; color:var(--green); font:800 15px/1.4 system-ui,-apple-system,"Noto Sans SC",sans-serif; letter-spacing:.14em; }.digest-overview-summary .digest-edition-meta { white-space:normal; }.digest-overview-section[open]>.digest-overview-summary { border-bottom:1px solid #d5e1da; background:rgba(242,247,244,.72); box-shadow:0 7px 18px rgba(31,62,46,.05); }.digest-overview-summary:hover .collapse-control { border-color:#abc5b6; background:#fbfdfc; box-shadow:0 2px 7px rgba(31,62,46,.08); }.digest-overview-section[open]>.digest-overview-summary .collapse-label::before { content:"收起"; }.digest-overview-section[open]>.digest-overview-summary .collapse-icon { transform:rotate(225deg) translate(-1px,-1px); }.digest-overview-summary:focus-visible { outline:3px solid rgba(36,107,74,.24); outline-offset:-3px; }.digest-overview-body { padding:5px 28px 24px; }.digest-highlight-collection.digest-overview-section { padding:0; }.digest-highlight-summary .digest-overview-title { color:#5d481f; }.digest-highlight-body { padding:20px 24px 24px; }
@media (max-width:800px) { .rolling-summary.digest-overview-section,.digest-highlight-collection.digest-overview-section { padding:0; }.digest-overview-summary { align-items:flex-start; flex-direction:column; gap:12px; padding:19px 18px; }.digest-overview-summary .digest-edition-meta { width:100%; align-items:center; flex-direction:row; justify-content:space-between; }.rolling-summary .digest-overview-summary .digest-edition-meta { justify-content:flex-end; }.digest-overview-body { padding:3px 18px 20px; }.digest-highlight-body { padding:17px 16px 20px; } }
@media print { .digest-overview-section { box-shadow:none; }.digest-overview-section:not([open])>:not(summary) { display:block!important; }.digest-overview-summary { padding:12px 15px; }.digest-overview-body,.digest-highlight-body { padding:8px 15px 12px; } }

/* Multi-user authentication and administration */
.nav-account { display:grid; max-width:140px; overflow:hidden; color:var(--ink); font-size:12px; font-weight:750; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }.nav-account small { color:var(--accent); font-size:9px; font-weight:850; letter-spacing:.04em; }.nav-logout { margin:0; }.nav-logout button { border:1px solid var(--line); border-radius:7px; padding:6px 10px; background:#fff; color:var(--muted); font:inherit; font-size:12px; }.auth-page { min-height:100vh; background:radial-gradient(circle at 15% 10%,rgba(71,132,96,.16),transparent 35%),var(--paper); }.auth-shell { display:grid; min-height:100vh; place-items:center; margin:0 auto; padding:24px; }.auth-card { width:min(440px,100%); border:1px solid var(--line); border-radius:16px; padding:38px; background:#fff; box-shadow:0 24px 70px rgba(31,56,42,.12); }.auth-brand { width:auto; height:44px; margin-bottom:28px; }.auth-card h1 { font-size:34px; }.auth-form { display:grid; gap:18px; margin-top:26px; }.auth-form label { display:grid; gap:6px; color:#46524c; font-weight:700; }.auth-form input { width:100%; border-radius:7px; }.auth-form .button { width:100%; margin-top:6px; }.activation-result { margin-bottom:18px; padding:20px; }.activation-result code { display:block; padding:12px; border-radius:7px; background:#eef4f0; color:#174b32; user-select:all; }.admin-create-user { align-items:end; }.admin-role-options { display:flex; grid-column:span 2; flex-wrap:wrap; gap:10px 18px; border:0; margin:0; padding:0; }.admin-role-options legend { margin-bottom:8px; color:#46524c; font-weight:700; }.admin-role-options label { display:flex; align-items:center; gap:6px; font-weight:500; }.admin-role-options input { width:auto; margin:0; }.compact-options { display:grid; grid-template-columns:repeat(2,minmax(120px,1fr)); }.compact-options .button { grid-column:span 2; }.inline-admin-form { display:flex; gap:6px; margin-top:8px; }.inline-admin-form select { min-height:38px; border:1px solid var(--line); border-radius:7px; padding:6px; background:#fff; }.inline-admin-form .button { min-height:38px; padding:6px 10px; }.admin-security-actions { display:grid; gap:8px; }.admin-security-actions form { margin:0; }.admin-security-actions .button { width:100%; white-space:nowrap; }.admin-user-table td { white-space:normal; }

.activation-identity { display:grid; gap:3px; margin:18px 0; border:1px solid #cddfd3; border-radius:10px; padding:14px 16px; background:#f4f9f5; }.activation-identity small { color:var(--accent); font-size:11px; font-weight:850; letter-spacing:.05em; }.activation-identity strong { color:var(--ink); font-size:18px; }.activation-identity span { color:var(--muted); font-size:13px; }
.auth-choice-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.auth-choice-actions .button { margin:0; }.auth-back { display:block; color:var(--muted); font-size:13px; font-weight:700; text-align:center; }.registration-ready { display:inline-block; margin:14px 0 0; border-radius:999px; padding:5px 10px; background:#e7f2eb; color:var(--accent); font-size:11px; font-weight:800; }

.admin-subnav { display:flex; flex-wrap:wrap; gap:8px; margin:-10px 0 22px; }.admin-subnav a { border:1px solid var(--line); border-radius:999px; padding:7px 13px; background:#fff; color:var(--muted); font-size:12px; font-weight:750; text-decoration:none; }.admin-subnav a.active { border-color:#8daf9b; background:#edf5f0; color:var(--accent); }.account-type { display:inline-block; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:850; letter-spacing:.03em; }.account-type.admin { background:#173f34; color:#fff; }.account-type.personal { background:#e8eee9; color:#45564c; }.admin-data-link { display:inline-block; margin-top:7px; color:var(--accent); font-size:11px; font-weight:700; }.admin-data-hero { align-items:center; }.admin-view-badge { display:grid; flex:0 0 auto; gap:2px; border:1px solid #b8ccbf; border-radius:9px; padding:11px 14px; background:#f1f7f3; color:#315b45; }.admin-view-badge strong { font-size:12px; }.admin-view-badge span { font-size:10px; }.admin-owner-panel,.admin-data-filter-panel { margin-bottom:20px; }.admin-owner-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.admin-owner-card { border:1px solid var(--line); border-radius:10px; padding:15px; background:#fff; }.admin-owner-card.selected { border-color:#75a188; box-shadow:0 0 0 2px rgba(68,130,94,.12); }.admin-owner-card header { display:flex; justify-content:space-between; gap:12px; }.admin-owner-card header>div { min-width:0; }.admin-owner-card h3 { overflow:hidden; margin:7px 0 1px; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }.admin-owner-card header>strong { color:var(--accent); font-size:24px; }.admin-owner-card dl { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:13px 0; }.admin-owner-card dl div { border-radius:6px; padding:7px; background:var(--surface-muted); }.admin-owner-card dt { color:var(--muted); font-size:9px; }.admin-owner-card dd { margin:2px 0 0; font-size:14px; font-weight:800; }.admin-owner-card .button { width:100%; text-align:center; }.admin-data-filters { display:flex; align-items:end; gap:12px; }.admin-data-filters label { display:grid; flex:1; gap:5px; color:var(--muted); font-size:11px; font-weight:750; }.admin-data-filters select { min-height:42px; border:1px solid var(--line); border-radius:7px; padding:7px 10px; background:#fff; }.admin-private-records { display:grid; gap:10px; }.admin-private-record { border:1px solid var(--line); border-radius:9px; padding:15px 16px; background:#fff; }.admin-private-record>header { display:flex; align-items:center; gap:8px; border-bottom:1px solid #edf0ed; padding-bottom:9px; }.admin-private-record>header small { margin-left:auto; }.admin-private-record h3 { margin:12px 0 7px; font-size:16px; }.admin-private-record h3 a { color:var(--ink); }.admin-private-record p { margin:6px 0; line-height:1.65; }.admin-private-record blockquote { margin:12px 0; border-left:3px solid var(--accent); padding:8px 12px; background:#f7faf8; }.admin-private-record footer { margin-top:10px; color:var(--muted); }.admin-record-metadata { display:flex; gap:20px; }.admin-record-metadata div { display:flex; gap:6px; }.admin-record-metadata dd { margin:0; font-weight:700; }.admin-topic-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }.admin-topic-list span { border-radius:5px; padding:4px 7px; background:#edf2ef; font-size:10px; }.admin-data-table td { white-space:normal; }

@media (max-width:900px) { .admin-owner-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:700px) { .admin-data-hero,.admin-data-filters { align-items:stretch; flex-direction:column; }.admin-owner-grid { grid-template-columns:1fr; }.admin-private-record>header { align-items:flex-start; flex-wrap:wrap; }.admin-private-record>header small { width:100%; margin-left:0; } }
@media (max-width:900px) { .topbar { align-items:flex-start; flex-direction:column; padding-block:8px; }.topbar nav { width:100%; overflow-x:auto; gap:15px; }.admin-role-options { grid-column:span 1; }.auth-card { padding:28px 22px; } }

/* Discover: full-height article and highlight browsing */
.discover-page { display:flex; height:100dvh; min-height:540px; flex-direction:column; overflow:hidden; background:#eef2ef; }
.discover-page .topbar { position:fixed; top:0; right:0; left:0; flex:0 0 auto; }
.discover-main { width:100%; min-height:0; flex:1 1 auto; margin:0; }
.discover-shell { position:relative; display:flex; height:100%; min-height:0; flex-direction:column; }
.discover-controls { position:fixed; z-index:20; left:50%; bottom:max(16px,env(safe-area-inset-bottom)); display:flex; width:min(900px,calc(100vw - max(10vw,48px) - var(--discover-scrollbar-width,0px))); min-height:58px; align-items:center; justify-content:space-between; gap:18px; padding:8px; border:1px solid rgba(188,203,194,.9); border-radius:999px; background:rgba(245,247,245,.76); box-shadow:0 14px 42px rgba(20,42,30,.20),0 2px 8px rgba(20,42,30,.09); -webkit-backdrop-filter:blur(14px) saturate(125%); backdrop-filter:blur(14px) saturate(125%); transform:translateX(calc(-50% - var(--discover-scrollbar-half,0px))); }
.discover-tabs { display:flex; flex:0 0 auto; align-items:center; gap:4px; padding:4px; border:1px solid #d3dfd8; border-radius:999px; background:#edf2ef; }
.discover-tabs a { white-space:nowrap; flex:1 0 auto; min-width:68px; padding:7px 14px; border-radius:999px; color:#526159; font-size:12px; font-weight:750; text-align:center; text-decoration:none; }
.discover-tabs a:hover,.discover-tabs a:focus-visible { color:var(--accent); }
.discover-tabs a:focus-visible { outline:3px solid rgba(36,107,74,.2); outline-offset:1px; }
.discover-tabs a[aria-current="page"] { background:#fff; color:var(--accent); box-shadow:0 1px 5px rgba(30,54,41,.13); }
.discover-filter-actions { display:flex; min-width:0; align-items:center; gap:7px; }
.discover-date-trigger,.discover-source-trigger { display:inline-flex; max-width:180px; min-height:38px; align-items:center; justify-content:center; gap:7px; border:1px solid #c7d5cd; border-radius:999px; padding:7px 12px; background:#fff; color:#46564d; font:750 11px/1.2 system-ui,-apple-system,"Noto Sans SC",sans-serif; box-shadow:0 1px 5px rgba(30,54,41,.06); cursor:pointer; }
.discover-date-trigger { min-width:108px; }
.discover-source-trigger { min-width:104px; }
.discover-date-trigger svg,.discover-source-trigger svg { width:16px; height:16px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.discover-date-trigger span,.discover-source-trigger span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.discover-date-trigger:hover,.discover-date-trigger:focus-visible,.discover-source-trigger:hover,.discover-source-trigger:focus-visible { border-color:var(--accent); color:var(--accent); }
.discover-date-trigger:focus-visible,.discover-source-trigger:focus-visible { outline:3px solid rgba(36,107,74,.2); outline-offset:2px; }
.discover-date-trigger.is-active,.discover-source-trigger.is-active { border-color:#92b5a0; background:#e8f3ec; color:var(--accent); }
.discover-date-dialog { width:min(520px,calc(100vw - 28px)); max-height:min(760px,calc(100dvh - 28px)); overflow:auto; border:0; border-radius:20px; padding:0; background:#fff; color:var(--ink); box-shadow:0 32px 90px rgba(16,34,24,.28); }
.discover-date-dialog::backdrop { background:rgba(17,29,23,.48); backdrop-filter:blur(3px); }
.discover-date-dialog form { padding:25px 26px 22px; }
.discover-date-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.discover-date-dialog-header .eyebrow { margin:0 0 4px; color:var(--accent); font-size:10px; font-weight:850; letter-spacing:.12em; }
.discover-date-dialog-header h2 { margin:0; font-family:Georgia,"Noto Serif SC",serif; font-size:25px; }
.discover-date-close { display:grid; width:36px; height:36px; flex:0 0 auto; place-items:center; border:1px solid #d4dfd8; border-radius:50%; padding:0; background:#f7faf8; color:#5a6860; font:400 24px/1 system-ui,sans-serif; cursor:pointer; }
.discover-date-close:hover,.discover-date-close:focus-visible { border-color:#93b3a0; color:var(--accent); }
.discover-date-close:focus-visible { outline:3px solid rgba(36,107,74,.18); outline-offset:2px; }
.discover-date-help { margin:12px 0 16px; color:var(--muted); font-size:12px; line-height:1.6; }
.discover-date-mode { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border:1px solid #d7e1db; border-radius:10px; background:#f1f5f2; }
.discover-date-mode button { min-height:36px; border:0; border-radius:7px; background:transparent; color:#5c6962; font:750 12px/1 system-ui,-apple-system,"Noto Sans SC",sans-serif; cursor:pointer; }
.discover-date-mode button[aria-pressed="true"] { background:#fff; color:var(--accent); box-shadow:0 1px 5px rgba(30,54,41,.12); }
.discover-date-mode button:focus-visible { outline:3px solid rgba(36,107,74,.18); outline-offset:1px; }
.discover-calendar { margin-top:15px; padding:14px; border:1px solid #dce5df; border-radius:14px; background:#fbfcfb; }
.discover-calendar-header { display:grid; grid-template-columns:38px 1fr 38px; align-items:center; gap:8px; margin-bottom:11px; }
.discover-calendar-header h3 { margin:0; font-size:15px; text-align:center; }
.discover-calendar-header button { display:grid; width:34px; height:34px; place-items:center; border:1px solid #d6e0da; border-radius:50%; padding:0; background:#fff; color:var(--accent); font-size:16px; cursor:pointer; }
.discover-calendar-header button:hover,.discover-calendar-header button:focus-visible { border-color:var(--accent); background:#edf6f0; }
.discover-calendar-header button:focus-visible { outline:3px solid rgba(36,107,74,.18); outline-offset:1px; }
.discover-calendar-header button:last-child { justify-self:end; }
.discover-calendar-weekdays,.discover-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.discover-calendar-weekdays { margin-bottom:4px; }
.discover-calendar-weekdays span { padding:4px 0; color:#849087; font-size:10px; font-weight:750; text-align:center; }
.discover-calendar-spacer,.discover-calendar-day { min-height:39px; }
.discover-calendar-day { position:relative; z-index:1; border:0; border-radius:8px; padding:0; background:transparent; color:#35423b; font:700 12px/1 system-ui,-apple-system,"Noto Sans SC",sans-serif; cursor:pointer; }
.discover-calendar-day:hover,.discover-calendar-day:focus-visible { background:#eaf3ed; color:var(--accent); }
.discover-calendar-day:focus-visible { outline:3px solid rgba(36,107,74,.2); outline-offset:0; }
.discover-calendar-day.is-in-range { border-radius:3px; background:#e1eee6; color:#2d6847; }
.discover-calendar-day.is-start,.discover-calendar-day.is-end,.discover-calendar-day.is-single { border-radius:9px; background:var(--accent); color:#fff; box-shadow:0 3px 9px rgba(36,107,74,.25); }
.discover-date-selection { min-height:20px; margin:12px 2px 0; color:#426150; font-size:12px; font-weight:700; }
.discover-date-dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:15px; padding-top:17px; border-top:1px solid #e2e9e5; }
.discover-date-dialog-footer>div { display:flex; gap:8px; }
.discover-date-dialog-footer .button { min-height:38px; padding:8px 14px; font-size:12px; }
.discover-date-dialog-footer .button:disabled { background:#cbd5cf; color:#738078; cursor:not-allowed; }
.discover-date-clear { color:#65736b; font-size:12px; font-weight:750; text-decoration:none; }
.discover-date-clear:hover,.discover-date-clear:focus-visible { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.discover-source-dialog { width:min(460px,calc(100vw - 28px)); }
.discover-source-field { display:grid; gap:7px; color:#526159; font-size:11px; font-weight:750; }
.discover-source-field select { width:100%; min-height:44px; border:1px solid #cbd8d0; border-radius:10px; padding:8px 36px 8px 12px; background:#fbfcfb; color:#26372e; font:700 13px/1.3 system-ui,-apple-system,"Noto Sans SC",sans-serif; }
.discover-source-field select:focus-visible { border-color:var(--accent); outline:3px solid rgba(36,107,74,.18); outline-offset:2px; }
.discover-stream { position:relative; min-height:0; flex:1 1 auto; overflow-x:hidden; overflow-y:auto; scroll-behavior:smooth; scroll-snap-type:y mandatory; overscroll-behavior-y:contain; scrollbar-width:thin; scrollbar-color:#a9b8b0 transparent; }
.discover-card { display:flex; width:100%; min-height:100%; align-items:center; padding:clamp(28px,5vh,60px) max(5vw,24px) clamp(106px,13vh,132px); scroll-snap-align:start; scroll-snap-stop:always; background:radial-gradient(circle at 78% 12%,rgba(121,168,141,.12),transparent 31%),#f7f9f7; cursor:pointer; }
.discover-card:nth-of-type(even) { background:radial-gradient(circle at 18% 82%,rgba(89,140,112,.10),transparent 34%),#f1f5f2; }
.discover-card--highlight { background:radial-gradient(circle at 82% 16%,rgba(206,173,83,.18),transparent 32%),#fbf8ef; }
.discover-card--highlight:nth-of-type(even) { background:radial-gradient(circle at 16% 80%,rgba(193,155,55,.14),transparent 34%),#f8f3e6; }
.discover-card:focus-visible { outline:4px solid rgba(36,107,74,.32); outline-offset:-4px; }
.discover-card-inner { display:flex; width:min(900px,100%); min-height:min(620px,82%); flex-direction:column; justify-content:space-between; margin:auto; padding:clamp(30px,5vw,64px); border:1px solid rgba(184,199,190,.84); border-radius:20px; background:rgba(255,255,255,.90); box-shadow:0 24px 70px rgba(31,56,42,.11); }
.discover-card--highlight .discover-card-inner { border-color:#e5d6aa; background:rgba(255,253,246,.94); box-shadow:0 24px 70px rgba(84,67,24,.11); }
.discover-card-header,.discover-card-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.discover-kicker { margin:0; color:var(--accent); font-size:11px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.discover-card--highlight .discover-kicker { color:#93691b; }
.discover-meta { margin:5px 0 0; color:var(--muted); font-size:12px; }
.discover-favorite { display:inline-flex; min-height:40px; align-items:center; gap:7px; flex:0 0 auto; border:1px solid #b9cec1; border-radius:999px; padding:7px 14px; background:#fff; color:var(--accent); font:750 12px/1 system-ui,-apple-system,"Noto Sans SC",sans-serif; box-shadow:0 2px 8px rgba(31,62,46,.06); }
.discover-favorite span { font-size:18px; font-weight:400; }
.discover-favorite:hover,.discover-favorite:focus-visible { border-color:var(--accent); background:#f2f8f4; }
.discover-favorite:focus-visible { outline:3px solid rgba(36,107,74,.22); outline-offset:2px; }
.discover-favorite.is-active { border-color:var(--accent); background:#dff1e7; }
.discover-favorite:disabled { cursor:wait; }
.discover-card-body { margin:clamp(28px,6vh,58px) 0; }
.discover-card-body h1 { max-width:790px; margin:0 0 clamp(20px,4vh,36px); font-family:Georgia,"Noto Serif SC","Songti SC",serif; font-size:clamp(30px,4.6vw,52px); font-weight:650; letter-spacing:-.035em; line-height:1.3; }
.discover-card-body h1 a { color:#17231e; text-decoration:none; }
.discover-card-body h1 a:hover,.discover-card-body h1 a:focus-visible { color:var(--accent); }
.discover-excerpt { display:block; overflow:hidden; max-height:min(36vh,300px); color:#3f4d46; font-family:Georgia,"Noto Serif SC","Songti SC",serif; font-size:clamp(17px,2vw,22px); line-height:1.95; text-decoration:none; white-space:pre-wrap; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 64%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 64%,transparent 100%); }
.discover-highlights { display:grid; gap:16px; max-height:44vh; margin:0; padding:0 0 0 1.8em; overflow:auto; color:#a17b28; scrollbar-width:thin; }
.discover-highlights li { padding-left:5px; }
.discover-highlights li::marker { font-weight:800; }
.discover-highlights a { color:#57451e; font-family:Georgia,"Noto Serif SC","Songti SC",serif; font-size:clamp(16px,1.8vw,21px); line-height:1.75; text-decoration:underline; text-decoration-color:#d8bd72; text-underline-offset:5px; }
.discover-highlights a:hover,.discover-highlights a:focus-visible { color:#855c0c; }
.discover-card-footer { padding-top:20px; border-top:1px solid #e0e7e3; color:var(--muted); font-size:12px; }
.discover-card--highlight .discover-card-footer { border-top-color:#eee2bf; }
.discover-card-footer>a { color:var(--accent); font-weight:800; text-decoration:none; }
.discover-card-footer>a:hover,.discover-card-footer>a:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.discover-status { position:fixed; z-index:21; right:20px; bottom:88px; display:flex; align-items:center; gap:8px; min-height:0; border-radius:999px; background:rgba(23,35,30,.90); color:#fff; font-size:11px; box-shadow:0 7px 24px rgba(0,0,0,.18); }
.discover-status:not(:empty) { padding:8px 11px 8px 13px; }
.discover-status button { min-height:26px; border-radius:999px; padding:4px 9px; background:#fff; color:#234c36; font-size:11px; }
.discover-end,.discover-empty { text-align:center; }
.discover-end .discover-card-inner,.discover-empty .discover-card-inner { min-height:0; align-items:center; padding-block:72px; }
.discover-end h1,.discover-empty h1 { max-width:680px; margin:12px 0 25px; font-family:Georgia,"Noto Serif SC",serif; font-size:clamp(26px,4vw,42px); }
@media (max-width:700px) {
  .topbar { display:grid; grid-template-columns:1fr; padding:10px 4vw 8px; }
  .brand { padding:0 2px 4px; }
  .brand img { height:34px; }
  .topbar nav { width:100%; justify-content:flex-start; flex-wrap:nowrap; gap:17px; overflow-x:auto; padding:3px 2px 5px; scrollbar-width:none; }
  .topbar nav::-webkit-scrollbar { display:none; }
  .topbar nav>a,.nav-database { flex:0 0 auto; white-space:nowrap; }
  .discover-controls { flex-wrap:wrap; bottom:max(10px,env(safe-area-inset-bottom)); width:calc(100vw - 24px - var(--discover-scrollbar-width,0px)); min-height:54px; gap:7px; padding:6px; border-radius:22px; }
  .discover-tabs { flex:1 0 100%; gap:2px; padding:3px; }
  .discover-tabs a { min-width:0; padding:6px 8px; font-size:11px; }
  .discover-filter-actions { flex:1 0 100%; justify-content:stretch; gap:4px; }
  .discover-date-trigger,.discover-source-trigger { flex:1 1 0; min-width:0; max-width:none; min-height:34px; padding:6px 8px; font-size:10px; }
  .discover-date-trigger svg,.discover-source-trigger svg { width:14px; height:14px; }
  .discover-date-dialog form { padding:21px 17px 18px; }
  .discover-date-dialog-header h2 { font-size:22px; }
  .discover-calendar { padding:10px 8px; }
  .discover-calendar-weekdays,.discover-calendar-grid { gap:2px; }
  .discover-calendar-spacer,.discover-calendar-day { min-height:37px; }
  .discover-date-dialog-footer { align-items:stretch; flex-direction:column; }
  .discover-date-dialog-footer>div { display:grid; grid-template-columns:1fr 1fr; }
  .discover-date-clear { text-align:center; }
  .discover-card { align-items:stretch; padding:calc(var(--discover-topbar-height,96px) + 14px) 12px 118px; }
  .discover-card-inner { min-height:100%; margin:0 auto; padding:25px 20px 22px; border-radius:15px; }
  .discover-card-header { align-items:flex-start; gap:12px; }
  .discover-meta { max-width:210px; }
  .discover-favorite { min-height:37px; padding:6px 11px; }
  .discover-card-body { margin:28px 0; }
  .discover-card-body h1 { margin-bottom:20px; font-size:clamp(27px,9vw,38px); }
  .discover-excerpt { max-height:42vh; font-size:17px; line-height:1.9; }
  .discover-highlights { max-height:none; gap:13px; }
  .discover-highlights a { font-size:16px; }
  .discover-card-footer>span { display:none; }
  .discover-status { right:12px; bottom:116px; }
}
@media (prefers-reduced-motion:reduce) { .discover-stream { scroll-behavior:auto; } }

/* Profile setup: context to reviewed topics */
.profile-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; }
.profile-intro>div { max-width:760px; }
.profile-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:-10px 0 22px; padding:0; list-style:none; }
.profile-steps li { display:flex; min-width:0; align-items:center; gap:12px; padding:14px 16px; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.68); }
.profile-steps li>span { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:50%; background:#e2eee7; color:var(--accent); font-weight:850; }
.profile-steps li div { display:grid; min-width:0; gap:1px; }
.profile-steps li strong { font-size:13px; }
.profile-steps li small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notice.success { border:1px solid #bdd7c7; background:#e9f5ed; color:#235d3f; }
.notice-card { margin:0 0 var(--space-5); border:1px solid #c9dacf; border-left:4px solid var(--accent); border-radius:var(--radius); padding:20px 22px; background:#f4f9f6; }
.notice-card strong { display:block; margin-bottom:5px; color:#244d38; font-size:17px; }
.notice-card p { max-width:820px; margin:0; color:#53645a; }
.notice-card .button { margin-top:14px; }
.profile-context-card,.profile-bridge,.topic-editor { padding:28px; }
.profile-bridge { margin-top:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.profile-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; margin-bottom:20px; }
.profile-card-heading h2 { margin:0 0 5px; font-size:21px; }
.profile-card-heading p:last-child { max-width:760px; margin:0; color:var(--muted); }
.step-kicker { margin:0 0 4px!important; color:var(--accent)!important; font-size:11px!important; font-weight:850; letter-spacing:.12em; }
.local-analysis-badge { flex:0 0 auto; border:1px solid #bcd1c4; border-radius:999px; padding:6px 10px; background:#f1f7f3; color:#315b45; font-size:11px; font-weight:750; }
.profile-context-grid { grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr); }
.profile-context-grid label { display:grid; align-content:start; gap:5px; color:#3e4c45; font-size:13px; }
.profile-context-grid label:first-child { grid-column:1/-1; max-width:420px; }
.profile-context-grid label.wide { grid-column:auto; }
.profile-context-grid input,.profile-context-grid textarea { margin:0; line-height:1.65; }
.profile-context-grid small { font-weight:450; line-height:1.55; }
.profile-advanced { margin-top:20px; border:1px solid #dbe4de; border-radius:9px; background:#fafcfb; }
.profile-advanced>summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 15px; cursor:pointer; list-style:none; }
.profile-advanced>summary::marker,.profile-advanced>summary::-webkit-details-marker { display:none; content:""; }
.profile-advanced>summary>span:first-child { display:grid; gap:1px; }
.profile-advanced>summary strong { color:#415149; font-size:13px; }
.profile-advanced .disclosure-label { color:var(--accent); font-size:11px; font-weight:750; }
.profile-advanced[open] .disclosure-label::before { content:"收起"; font-size:0; }
.profile-advanced[open] .disclosure-label { font-size:0; }
.profile-advanced[open] .disclosure-label::after { content:"收起设置"; font-size:11px; }
.profile-advanced .weight-grid { margin:0; padding:8px 15px 15px; border-top:1px solid #e5ebe7; }
.profile-advanced .weight-grid label { display:grid; align-content:start; gap:4px; color:#4c5952; }
.profile-advanced .weight-grid input { margin:0; }
.profile-advanced .weight-grid small { font-weight:450; line-height:1.4; }
.profile-advanced .form-help { margin:0; padding:0 15px 14px; }
.profile-form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:20px; }
.profile-form-actions>span { color:var(--muted); font-size:12px; }
.profile-bridge-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:hidden; margin-bottom:24px; border:1px solid #dce5df; border-radius:9px; background:#f8faf8; }
.profile-bridge-stats>div { padding:16px 18px; border-right:1px solid #dce5df; }
.profile-bridge-stats>div:last-child { border-right:0; }
.profile-bridge-stats strong { display:block; color:var(--accent); font-size:23px; letter-spacing:-.03em; }
.profile-bridge-stats span { color:var(--muted); font-size:11px; }
.profile-covered-topics { padding-bottom:23px; border-bottom:1px solid var(--line); }
.profile-covered-topics h3,.profile-suggestions h3 { margin:0 0 10px; font-size:15px; }
.profile-topic-chips { display:flex; flex-wrap:wrap; gap:7px; }
.profile-topic-chips>span { display:inline-flex; align-items:center; gap:7px; border:1px solid #c8dacf; border-radius:999px; padding:6px 10px; background:#f1f7f3; color:#315b45; font-size:12px; font-weight:750; }
.profile-topic-chips small { color:#698075; font-size:10px; font-weight:600; }
.profile-covered-message { margin:0; border:1px dashed #c9d5ce; border-radius:8px; padding:13px 14px; background:#fafbfa; color:var(--muted); }
.profile-covered-message.success-state { border-color:#bdd7c7; background:#eef7f1; color:#37644c; }
.profile-suggestions { padding-top:23px; }
.profile-suggestion-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.profile-suggestion-heading p { margin:-5px 0 14px; color:var(--muted); font-size:12px; }
.profile-suggestion-heading>span { flex:0 0 auto; border-radius:999px; padding:5px 9px; background:#edf2ef; color:#53635a; font-size:11px; font-weight:750; }
.suggestion-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.suggestion-card { display:flex; min-width:0; align-items:flex-start; gap:10px; border:1px solid #dce5df; border-radius:9px; padding:12px 13px; background:#fbfcfb; cursor:pointer; }
.suggestion-card:hover { border-color:#adc6b7; background:#f7fbf8; }
.suggestion-card>input { width:auto; flex:0 0 auto; margin:3px 0 0; accent-color:var(--accent); }
.suggestion-card>span { display:grid; min-width:0; gap:3px; }
.suggestion-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suggestion-title { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.suggestion-title strong { font-size:13px; }
.suggestion-title em { border-radius:4px; padding:2px 5px; background:#e6eee9; color:#52665b; font-size:9px; font-style:normal; font-weight:750; }
.topic-editor { margin-top:22px; }
.topic-group { overflow:hidden; margin-top:9px; background:#fbfcfb; }
.topic-group summary { align-items:center; padding:14px 15px; list-style:none; }
.topic-group summary::marker,.topic-group summary::-webkit-details-marker { display:none; content:""; }
.topic-group summary>span:first-child { display:grid; gap:2px; }
.topic-group summary strong { color:#35483e; font-size:14px; }
.topic-group summary small { font-size:11px; font-weight:450; }
.topic-group .topic-count { flex:0 0 auto; border-radius:999px; padding:4px 8px; background:#edf2ef; font-size:10px; font-weight:700; }
.topic-group[open]>summary { border-bottom:1px solid var(--line); background:#f4f8f5; }
.topic-group>div { padding:0 15px 12px; }
.topic-row { grid-template-columns:minmax(140px,1fr) minmax(220px,1.7fr) minmax(130px,.9fr) 78px 116px; align-items:end; gap:9px; padding:11px 0; }
.topic-row label,.topic-add label { display:grid; gap:4px; color:var(--muted); font-size:10px; font-weight:700; }
.topic-row input,.topic-row select,.topic-add input,.topic-add select { min-height:37px; padding:7px 9px; }
.topic-actions { min-height:37px; align-items:stretch; }
.topic-actions button { border-radius:6px; padding:0 10px; }
.topic-actions .danger-link { background:#f4ecec; color:var(--status-bad); }
.topic-add { grid-template-columns:minmax(140px,1fr) minmax(220px,1.5fr) minmax(130px,.9fr) 78px auto; padding-top:21px; border-top:1px solid var(--line); }
.topic-add-heading { grid-column:1/-1; }
.topic-add-heading h3 { margin:0 0 2px; font-size:15px; }
.topic-add-heading p { margin:0; color:var(--muted); font-size:12px; }

@media (max-width:900px) {
  .profile-context-grid,.suggestion-list { grid-template-columns:1fr; }
  .profile-context-grid label:first-child,.profile-context-grid label.wide { grid-column:auto; max-width:none; }
  .profile-advanced .weight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topic-row,.topic-add { grid-template-columns:1fr 1fr; }
  .topic-actions,.topic-add .button { min-height:40px; }
  .topic-add-heading { grid-column:1/-1; }
}
@media (max-width:700px) {
  .profile-intro,.profile-card-heading,.profile-suggestion-heading { align-items:flex-start; flex-direction:column; }
  .profile-steps { grid-template-columns:1fr; }
  .profile-steps li small { white-space:normal; }
  .profile-context-card,.profile-bridge,.topic-editor { padding:20px 17px; }
  .profile-advanced .weight-grid,.profile-bridge-stats,.topic-row,.topic-add { grid-template-columns:1fr; }
  .profile-bridge-stats>div { border-right:0; border-bottom:1px solid #dce5df; }
  .profile-bridge-stats>div:last-child { border-bottom:0; }
  .profile-card-heading { gap:9px; }
  .local-analysis-badge { align-self:flex-start; }
  .profile-form-actions { align-items:stretch; flex-direction:column; }
  .profile-form-actions .button { width:100%; }
  .suggestion-card small { white-space:normal; }
  .topic-group summary { align-items:flex-start; }
  .topic-group summary small { display:block; margin-top:3px; }
  .topic-add-heading { grid-column:auto; }
}

/* Source catalog: Admin controls availability; personal accounts control subscriptions. */
.catalog-hero { align-items:center; }
.catalog-summary { display:grid; min-width:170px; justify-items:center; gap:2px; border:1px solid #cddbd2; border-radius:12px; padding:18px 24px; background:#f7faf8; }
.catalog-summary strong { color:var(--accent); font-size:36px; line-height:1; }
.catalog-summary span { font-weight:800; }
.catalog-summary small { color:var(--muted); }
.catalog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0 40px; }
.catalog-card { display:flex; min-height:250px; flex-direction:column; gap:14px; border:1px solid var(--line); border-radius:12px; padding:20px; background:#fff; box-shadow:0 5px 20px rgba(24,48,35,.04); }
.catalog-card.subscribed { border-color:#9fc5ad; box-shadow:inset 4px 0 0 var(--accent),0 5px 20px rgba(24,48,35,.05); }
.catalog-card header,.catalog-card footer { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.catalog-card h2 { margin:3px 0 4px; font-size:20px; }
.catalog-card>p { flex:1; margin:0; color:#4c5c53; line-height:1.7; }
.catalog-domain { margin:0; color:var(--muted); font-size:11px; }
.catalog-card footer { align-items:center; border-top:1px solid var(--line); padding-top:13px; }
.catalog-subscription-state { flex:0 0 auto; border-radius:999px; padding:5px 9px; background:#eef2ef; color:#637068; font-size:11px; font-weight:800; }
.catalog-subscription-state.active { background:#e6f3ea; color:#286443; }
.catalog-tags { display:flex; flex-wrap:wrap; gap:6px; }
.catalog-tags span { border-radius:999px; padding:4px 8px; background:#f0f4f1; color:#526159; font-size:10px; font-weight:750; }
.empty-catalog { grid-column:1/-1; padding:36px; text-align:center; }
.admin-catalog-intro { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:18px 0; }
.admin-catalog-intro article { display:grid; gap:7px; border:1px solid #d8e1db; border-radius:9px; padding:14px 16px; background:#f8faf8; }
.admin-catalog-intro span { color:var(--muted); font-size:12px; line-height:1.6; }
.admin-catalog-list { display:grid; gap:14px; margin-bottom:40px; }
.admin-catalog-card { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(440px,1.7fr); overflow:hidden; }
.admin-catalog-source { padding:20px; border-right:1px solid var(--line); background:#f8faf8; }
.admin-catalog-source h2 { margin:4px 0; font-size:18px; }
.admin-catalog-source>p { color:var(--muted); font-size:12px; }
.admin-catalog-source dl { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:18px 0; }
.admin-catalog-source dl div { display:grid; gap:2px; }
.admin-catalog-source dt { color:var(--muted); font-size:10px; font-weight:800; }
.admin-catalog-source dd { margin:0; font-size:12px; }
.admin-catalog-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:20px; }
.admin-catalog-form label { display:grid; align-content:start; gap:5px; color:var(--muted); font-size:11px; font-weight:750; }
.admin-catalog-form label.wide { grid-column:1/-1; }
.admin-catalog-form textarea { resize:vertical; }
.admin-catalog-actions { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.catalog-blocker { color:var(--status-bad); font-weight:750; }
@media (max-width:900px) {
  .catalog-grid,.admin-catalog-card { grid-template-columns:1fr; }
  .admin-catalog-source { border-right:0; border-bottom:1px solid var(--line); }
  .admin-catalog-form { grid-template-columns:1fr 1fr; }
}
@media (max-width:650px) {
  .catalog-hero { align-items:stretch; }
  .catalog-grid,.admin-catalog-intro,.admin-catalog-form { grid-template-columns:1fr; }
  .admin-catalog-form label.wide,.admin-catalog-actions { grid-column:auto; }
  .admin-catalog-actions { align-items:stretch; flex-direction:column; }
}

.auth-form .auth-remember { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:500; }
.auth-form .auth-remember input { flex:0 0 auto; width:auto; margin:0; }
.account-switcher { width:min(620px,100%); margin:36px auto; padding:28px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.account-switch-list { display:grid; gap:12px; margin:24px 0; }
.account-switch-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0; padding:18px; border:1px solid var(--line); border-radius:10px; }
.account-switch-row strong,.account-switch-row small { display:block; overflow-wrap:anywhere; }
.account-switch-row small { margin-top:4px; color:var(--muted); }
.account-current { color:var(--accent); font-size:13px; white-space:nowrap; }
.account-switcher > .help:last-child { margin-top:20px; }

.source-health-summary { margin:8px 0 0; color:var(--muted); font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.source-health-note p { margin:6px 0 0; line-height:1.7; }
